diff options
42 files changed, 9144 insertions, 9035 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 6647c90..b0baa7c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,159 +1,208 @@ -0.32 -- added toolbar (just a list of framestein objects & filters for now) -- new plugins: lightspeed, merge_additive, merge_mod, ping, fader -- fs.frame: |title this is the main window( and |undock( commands -- fs.copy: transcolor <r> <g> <b> to set the transparent color -- better gol algo (Plugins\gol.c) -- added 1d cell automata where each iteration will add a new row: Plugins\rowca -- added arguments-class in pixels.h to ease parsing arguments in plugins. - example: - - void perform_effect(_frame f, _args a) - { - arguments ar(a.s); - - // ar.count() return the number of arguments - // ar[i] return i'th argument - ... - -- added line width setting to fs.draw -- fix: border_0 no longer alters frame dimensions -- poor lockup-preventing feature to fs.main.pd - -0.31 -- added plugins by Olaf Matthes: PeRColate and PixelPack. Thanks, Olaf! -- the console is back. It's good for printf():ing from plugins.. -- New filters: BitLeft, Picasso, PicChop, yage, zoomnoise -- Rewrote some examples, added a couple and numbered them -- Fs got CVS'd: http://sourceforge.net/projects/pure-data/cvs - -0.30 -- vframe supports plugin parameters -- doubleclicking the framestein-logo equals "reset" -- fs.frame "stayontop" OFF by default -- got rid of the console, "Show debug" in menu instead (right-click the framestein-logo) -- l2s from zexy included in Patches-dir, zexy no longer needed -- disconnecting pd from fs will cause a reset - -0.29 -- example-basics.pd is really just the basics now -- fs.event.pd: get more events from fs.frame (mousedown, mouseup, dropped filename) -- fs.waveform.pd: array display with selection capabilities, see example-waveformdisplay.pd -- new external vdrawarray for the previous: draw array contents on vframe -- the really cool fs.mask.pd and example-masking.pd -- the really cool fs.blend.pd and example-blending.pd -- fs.frame button widget. try "button <receivename> <x> <y> <buttoncaption>" - (no more widgets are planned) -- dragging fs.frame with <alt> down moves window, ignoring mousetrack_1 -- fs.sonogram made compatible with latest pd test-version -- cleaned up some examples.. - -0.28 -- finally, the ability to write AVIs! see example-avioutput.pd -- added searchpath, see example-searchpath.pd - - new in fs.frame: - -- "use <directory>" - like buffer, but no buffering (load on demand) -- new popupmenu commands: save image as, undock -- mousewheel functions as zoom (shift down to preserve aspect ratio) -- fix: borders/stayontop discarded the image -- dock <window title> string matching is now substring - -0.27 -- runs Adobe Photoshop Filter Plugins, see example-photoshopfilters.pd -- hide/show messed fs.frame positions -- vsnap~, wrapper for vsnapshot~ - -0.26 -- no more typing docked window positions! see example-docking2.pd -- easy loading of images from fs.frame popup-menu -- new fs.frame commands: minimize, maximize, bringtofront, hidecursor_1, bufferize (copy to image buffer) -- dock main window to pd on connect (out of the way) -- init.pd to load patches correctly - -0.25 -- vframeread~: read image with a control-signal -- vcolor~, merge r g and b channels (must be used with vrgb~) - -0.24 -- externals: vframe, vsig~, vsnapshot~, vrgb~, ... - in short, the ability to convert video to signal and back, - and run framestein plugins in pd. - see Patches\externals-documentation.pd - -0.23 -- fs.film -- fs.hist and example-hist.pd -- fs.sonogram and example-sonogram.pd -- mouserect_1 will report rectangle "drawn" in frame (mousetrack_1 must be on) - -0.22 -- add: drag and drop images/video to fs.frame -- add: videoscrub.pd - -0.21 -- add: dock frames to pd patches, see example-docking.pd -- add: fs.info, get information of images (width, height and framecount) -- add: fs.rgb, get rgb information of pixel at x, y -- add: fs.frame reports mouse x and y thru second outlet -- add: easy moving of frames (drag the window when mousetrack is off) -- improved fs.browser, see example-browser.pd - -0.20 -- add: send_auto to automate sending frames thru network. works like send but - keeps sending frames on each flip until you give it send_manual -- add: BETA of fs.browser, see example-browser.pd -- fix: execution order of events was reversed. what was i thinking? -- fix: most plugins now work on displays other than 16 bits -- more meaningless plugins: copy_vert - -0.19 -- major fix: bigger patches were not initialized correctly -- new plugins: rgbcopy -- fix: colors to fs.draw and fs.text are now given in r g b, - instead of impossible one number -- fix: more intelligent default positioning of fs.frames -- fix: banging fs.main's reset-inlet resets framestein before recreating fs.*-objects -- add: play.pd, really just |inlet|-|fps $1|-|next|-|outlet|, but i do that a lot - -0.18 -- add: sending frames thru network jpeg-compressed, see example-network.pd -- add: some plugins, notably xbend, bend, shuffle, tile -- add: pixels-class for easy iteration thru pixels in c++, see pixels.h and green.cpp -- fix: finally fixed the annoying "asynchronous socket error" when exiting pd before fs - -0.17 -- add: plugins, write effects with C without recompiling Framestein -- add: plugins colortv, noize and subtract - -0.16 -- add: effectsunit.pas shows how easy it is to add pixel level routines -- fix: alpha, sub and add modes of fs.copy had fixed values :( -- add: blend mode to fs.copy, same as alpha but i'm trying to make it faster -- add: some raster operations for fs.copy, see fs.copy.pd for info -- add: fs.draw for drawing boxes, lines and pixels -- add: some implementation on fs.text -- fix: access violation when closing a frame under copy operations -- loading video no longer sets display to 1:1 - -0.15 -- add: fs.frame accepts "SAVE <directory> <"BMP" or number for jpeg quality>" -- add: framestein-link.pd and framestein-demo.pd - -0.14 -- fix: occasional access violation with "SEEK" -- default copymodes are now "source_all" and "dest_all" -- add: "reset" inlet to fs.main - -0.13 -- add: "Reset" to main popup-menu (right-click the logo) -- "prev" for previous frame/buffered image -- "seek 0.5*" will seek to middle of video/buffered images -- updated documentation in fs.frame.pd - -0.12 -With source under GPL. - -0.1 -Initial version. +0.33 ()
+
+- closing a patch with a docked fs.frame will no longer kill the fs.frame.
+ use fs.vis to make a patch visible and redock any lost docked fs.frames
+
+
+0.32 (03-02-18)
+
+- added toolbar (just a list of framestein objects & filters for now)
+- new plugins: lightspeed, merge_additive, merge_mod, ping, fader
+- fs.frame: |title this is the main window( and |undock( commands
+- fs.copy: transcolor <r> <g> <b> to set the transparent color
+- better gol algo (Plugins\gol.c)
+- added row cell automata where each iteration will add a new row: Plugins\rowca
+- added arguments-class in pixels.h to ease parsing arguments in plugins.
+ example:
+
+ void perform_effect(_frame f, _args a)
+ {
+ arguments ar(a.s);
+
+ // ar.count() return the number of arguments
+ // ar[i] return i'th argument
+ ...
+
+- added line width setting to fs.draw
+- fix: border_0 no longer alters frame dimensions
+- poor lockup-preventing feature to fs.main.pd
+
+
+0.31
+
+- added plugins by Olaf Matthes: PeRColate and PixelPack. Thanks, Olaf!
+- the console is back. It's good for printf():ing from plugins..
+- New filters: BitLeft, Picasso, PicChop, yage, zoomnoise
+- Rewrote some examples, added a couple and numbered them
+- Fs got CVS'd: http://sourceforge.net/projects/pure-data/cvs
+
+
+0.30
+
+- vframe supports plugin parameters
+- doubleclicking the framestein-logo equals "reset"
+- fs.frame "stayontop" OFF by default
+- got rid of the console, "Show debug" in menu instead (right-click the framestein-logo)
+- l2s from zexy included in Patches-dir, zexy no longer needed
+- disconnecting pd from fs will cause a reset
+
+
+0.29
+
+- example-basics.pd is really just the basics now
+- fs.event.pd: get more events from fs.frame (mousedown, mouseup, dropped filename)
+- fs.waveform.pd: array display with selection capabilities, see example-waveformdisplay.pd
+- new external vdrawarray for the previous: draw array contents on vframe
+- the really cool fs.mask.pd and example-masking.pd
+- the really cool fs.blend.pd and example-blending.pd
+- fs.frame button widget. try "button <receivename> <x> <y> <buttoncaption>"
+ (no more widgets are planned)
+- dragging fs.frame with <alt> down moves window, ignoring mousetrack_1
+- fs.sonogram made compatible with latest pd test-version
+- cleaned up some examples..
+
+
+0.28
+
+- finally, the ability to write AVIs! see example-avioutput.pd
+- added searchpath, see example-searchpath.pd
+
+ new in fs.frame:
+
+- "use <directory>" - like buffer, but no buffering (load on demand)
+- new popupmenu commands: save image as, undock
+- mousewheel functions as zoom (shift down to preserve aspect ratio)
+- fix: borders/stayontop discarded the image
+- dock <window title> string matching is now substring
+
+
+0.27
+
+- runs Adobe Photoshop Filter Plugins, see example-photoshopfilters.pd
+- hide/show messed fs.frame positions
+- vsnap~, wrapper for vsnapshot~
+
+
+0.26
+
+- no more typing docked window positions! see example-docking2.pd
+- easy loading of images from fs.frame popup-menu
+- new fs.frame commands: minimize, maximize, bringtofront, hidecursor_1, bufferize (copy to image buffer)
+- dock main window to pd on connect (out of the way)
+- init.pd to load patches correctly
+
+
+0.25
+
+- vframeread~: read image with a control-signal
+- vcolor~, merge r g and b channels (must be used with vrgb~)
+
+
+0.24
+
+- externals: vframe, vsig~, vsnapshot~, vrgb~, ...
+ in short, the ability to convert video to signal and back,
+ and run framestein plugins in pd.
+ see Patches\externals-documentation.pd
+
+
+0.23
+
+- fs.film
+- fs.hist and example-hist.pd
+- fs.sonogram and example-sonogram.pd
+- mouserect_1 will report rectangle "drawn" in frame (mousetrack_1 must be on)
+
+
+0.22
+
+- add: drag and drop images/video to fs.frame
+- add: videoscrub.pd
+
+
+0.21
+
+- add: dock frames to pd patches, see example-docking.pd
+- add: fs.info, get information of images (width, height and framecount)
+- add: fs.rgb, get rgb information of pixel at x, y
+- add: fs.frame reports mouse x and y thru second outlet
+- add: easy moving of frames (drag the window when mousetrack is off)
+- improved fs.browser, see example-browser.pd
+
+
+0.20
+
+- add: send_auto to automate sending frames thru network. works like send but
+ keeps sending frames on each flip until you give it send_manual
+- add: BETA of fs.browser, see example-browser.pd
+- fix: execution order of events was reversed. what was i thinking?
+- fix: most plugins now work on displays other than 16 bits
+- more meaningless plugins: copy_vert
+
+
+0.19
+
+- major fix: bigger patches were not initialized correctly
+- new plugins: rgbcopy
+- fix: colors to fs.draw and fs.text are now given in r g b,
+ instead of impossible one number
+- fix: more intelligent default positioning of fs.frames
+- fix: banging fs.main's reset-inlet resets framestein before recreating fs.*-objects
+- add: play.pd, really just |inlet|-|fps $1|-|next|-|outlet|, but i do that a lot
+
+
+0.18
+
+- add: sending frames thru network jpeg-compressed, see example-network.pd
+- add: some plugins, notably xbend, bend, shuffle, tile
+- add: pixels-class for easy iteration thru pixels in c++, see pixels.h and green.cpp
+- fix: finally fixed the annoying "asynchronous socket error" when exiting pd before fs
+
+
+0.17
+
+- add: plugins, write effects with C without recompiling Framestein
+- add: plugins colortv, noize and subtract
+
+
+0.16
+
+- add: effectsunit.pas shows how easy it is to add pixel level routines
+- fix: alpha, sub and add modes of fs.copy had fixed values :(
+- add: blend mode to fs.copy, same as alpha but i'm trying to make it faster
+- add: some raster operations for fs.copy, see fs.copy.pd for info
+- add: fs.draw for drawing boxes, lines and pixels
+- add: some implementation on fs.text
+- fix: access violation when closing a frame under copy operations
+- loading video no longer sets display to 1:1
+
+
+0.15
+
+- add: fs.frame accepts "SAVE <directory> <"BMP" or number for jpeg quality>"
+- add: framestein-link.pd and framestein-demo.pd
+
+
+0.14
+
+- fix: occasional access violation with "SEEK"
+- default copymodes are now "source_all" and "dest_all"
+- add: "reset" inlet to fs.main
+
+
+0.13
+
+- add: "Reset" to main popup-menu (right-click the logo)
+- "prev" for previous frame/buffered image
+- "seek 0.5*" will seek to middle of video/buffered images
+- updated documentation in fs.frame.pd
+
+
+0.12
+
+With source under GPL.
+
+
+0.1
+
+Initial version.
diff --git a/Framestein.exe b/Framestein.exe Binary files differindex 190f01d..6b449b6 100755 --- a/Framestein.exe +++ b/Framestein.exe @@ -1,78 +1,78 @@ -Framestein is software for processing images and video with Miller Puckette's Pure Data. -For info on Pd, see http://www.pure-data.org. - - -REQUIREMENTS - -Windows with DirectX version 7 or later and Pure Data. - - -QUICKSTART - -Launch Framestein and Pd. From Pd, choose File|Open and try the examples in -Patches-directory, starting with example-basics.pd. - -Look inside fs.* objects for more documentation. - -Later on, you'll need to start Pd with "pd -path c:\Framestein\Patches" -to tell Pd where to find Framestein's abstractions and externals. - - -LICENCE - -Copyright (c) 2001-2003 Juha Vehviläinen. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - - -AUTHORS & CONTRIBUTORS - -Juha Vehviläinen, jusu@iki.fi - -"Framestein" name and logo: Vesa Vehviläinen - -Pink Twins (http://pinktwins.com) are using Framestein for all their videos. -Check that site! - -Plugins by Olaf Matthes: -http://www.akustische-kunst.de/puredata/framestein/framestein.html - -The girl in "virvezoom.jpg" and "head.avi" is Virve Lukka. -Pictures under "Reija" are poor reproductions of paintings by Reija Palo-oja. -Permission to use these pictures outside the included examples is denied. - -Framestein makes use of many fine components, namely: - -DelphiX by Hiroyuki Hori, http://www.yks.ne.jp/~hori/ <hori@ingjapan.ne.jp> -FastLib by G-Soft, http://gfody.com <gfody@home.com> -TDcAviPlay by Dream Company, http://www.dream-com.com <contact@dream-com.com> -Intel Image Processing Library version 1.5 (ijl15.dll) -C2PhotoShopHost by Antti Lukats, http://www.case2000.com -AviWriter by Elliott Shevin (with large pieces of code stolen from Anders Melander) -l2s from ZEXY by Johannes Zmoelnig, see ftp://iem.kug.ac.at/pd/Externals/ZEXY/. - -And, Pure Data by Miller Puckette and others, http://www.crca.ucsd.edu/~msp/software.html - - -OFFICIAL LINKS - -download site: -framestein.org - -List for receiving update information: -http://groups.yahoo.com/group/framestein - -Framestein is CVS'd at -http://sourceforge.net/projects/pure-data/cvs - -Send your feedback, ideas, plugins, ... -jusu@iki.fi -. +Framestein is software for processing images and video with Miller Puckette's Pure Data.
+For info on Pd, see http://www.pure-data.org.
+
+
+REQUIREMENTS
+
+Windows with DirectX version 7 or later and Pure Data.
+
+
+QUICKSTART
+
+Launch Framestein and Pd. From Pd, choose File|Open and try the examples in
+Patches-directory, starting with example-basics.pd.
+
+Look inside fs.* objects for more documentation.
+
+Later on, you'll need to start Pd with "pd -path c:\Framestein\Patches"
+to tell Pd where to find Framestein's abstractions and externals.
+
+
+LICENCE
+
+Copyright (c) 2001-2003 Juha Vehviläinen.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+
+AUTHORS & CONTRIBUTORS
+
+Juha Vehviläinen, jusu@iki.fi
+
+"Framestein" name and logo: Vesa Vehviläinen
+
+Pink Twins (http://pinktwins.com) are using Framestein for all their videos.
+Check that site!
+
+Plugins by Olaf Matthes:
+http://www.akustische-kunst.de/puredata/framestein/framestein.html
+
+The girl in "virvezoom.jpg" and "head.avi" is Virve Lukka.
+Pictures under "Reija" are poor reproductions of paintings by Reija Palo-oja.
+Permission to use these pictures outside the included examples is denied.
+
+Framestein makes use of many fine components, namely:
+
+DelphiX by Hiroyuki Hori, http://www.yks.ne.jp/~hori/ <hori@ingjapan.ne.jp>
+FastLib by G-Soft, http://gfody.com <gfody@home.com>
+TDcAviPlay by Dream Company, http://www.dream-com.com <contact@dream-com.com>
+Intel Image Processing Library version 1.5 (ijl15.dll)
+C2PhotoShopHost by Antti Lukats, http://www.case2000.com
+AviWriter by Elliott Shevin (with large pieces of code stolen from Anders Melander)
+l2s from ZEXY by Johannes Zmoelnig, see ftp://iem.kug.ac.at/pd/Externals/ZEXY/.
+
+And, Pure Data by Miller Puckette and others, http://www.crca.ucsd.edu/~msp/software.html
+
+
+OFFICIAL LINKS
+
+download site:
+framestein.org
+
+List for receiving update information:
+http://groups.yahoo.com/group/framestein
+
+Framestein is CVS'd at
+http://sourceforge.net/projects/pure-data/cvs
+
+Send your feedback, ideas, plugins, ...
+jusu@iki.fi
+.
diff --git a/Source/Filez.pas b/Source/Filez.pas index 1560a77..8d959a4 100644 --- a/Source/Filez.pas +++ b/Source/Filez.pas @@ -1,87 +1,87 @@ -unit Filez; -{$I-} - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; - -type - THandleFileEvent = procedure( const SearchRec:TSearchRec; - const FullPath: String ) of object; - // fullpath contains filepath+filename - - TScanDir = class(TComponent) - private - { Private declarations } - FOnHandleFile : THandleFileEvent; - protected - { Protected declarations } - public - { Public declarations } - procedure Scan( const Path : String ); - constructor Create( AOwner:TComponent ); override; - published - { Published declarations } - property OnHandleFile : THandleFileEvent read FOnHandleFile write FOnHandleFile; - end; - - function FileSizeByName( const FileName:String ):Longint; - -procedure Register; - -implementation - -uses - Strz; - -function FileSizeByName( const FileName:String ):Longint; -var - F:file of Byte; -begin - Result := 0; - AssignFile(F, FileName); - Reset(F); - if IoResult<>0 then Exit; - Result := FileSize(F); - Close(F); -end; - -constructor TScanDir.Create( AOwner:TComponent ); -begin - inherited Create( AOwner ); - - FOnHandleFile := nil; -end; - -procedure TScanDir.Scan( const Path : String ); -var - SearchRec : TSearchRec; - Result : Integer; - S : String; -begin - if not Assigned(FOnHandleFile) then - Exit; - - S := VerifyBackSlash(Path); - Result := FindFirst( S+'*.*', faAnyFile, SearchRec); - if Result=0 then - repeat - if (SearchRec.Name='.') or (SearchRec.Name='..') then - Continue; - - FOnHandleFile( SearchRec, - S+SearchRec.Name ); - - if SearchRec.Attr and faDirectory>0 then - Scan( S+SearchRec.Name ); - until FindNext(SearchRec)<>0; -end; - -procedure Register; -begin - RegisterComponents('Labrz', [TScanDir]); -end; - -end. - +unit Filez;
+{$I-}
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ THandleFileEvent = procedure( const SearchRec:TSearchRec;
+ const FullPath: String ) of object;
+ // fullpath contains filepath+filename
+
+ TScanDir = class(TComponent)
+ private
+ { Private declarations }
+ FOnHandleFile : THandleFileEvent;
+ protected
+ { Protected declarations }
+ public
+ { Public declarations }
+ procedure Scan( const Path : String );
+ constructor Create( AOwner:TComponent ); override;
+ published
+ { Published declarations }
+ property OnHandleFile : THandleFileEvent read FOnHandleFile write FOnHandleFile;
+ end;
+
+ function FileSizeByName( const FileName:String ):Longint;
+
+procedure Register;
+
+implementation
+
+uses
+ Strz;
+
+function FileSizeByName( const FileName:String ):Longint;
+var
+ F:file of Byte;
+begin
+ Result := 0;
+ AssignFile(F, FileName);
+ Reset(F);
+ if IoResult<>0 then Exit;
+ Result := FileSize(F);
+ Close(F);
+end;
+
+constructor TScanDir.Create( AOwner:TComponent );
+begin
+ inherited Create( AOwner );
+
+ FOnHandleFile := nil;
+end;
+
+procedure TScanDir.Scan( const Path : String );
+var
+ SearchRec : TSearchRec;
+ Result : Integer;
+ S : String;
+begin
+ if not Assigned(FOnHandleFile) then
+ Exit;
+
+ S := VerifyBackSlash(Path);
+ Result := FindFirst( S+'*.*', faAnyFile, SearchRec);
+ if Result=0 then
+ repeat
+ if (SearchRec.Name='.') or (SearchRec.Name='..') then
+ Continue;
+
+ FOnHandleFile( SearchRec,
+ S+SearchRec.Name );
+
+ if SearchRec.Attr and faDirectory>0 then
+ Scan( S+SearchRec.Name );
+ until FindNext(SearchRec)<>0;
+end;
+
+procedure Register;
+begin
+ RegisterComponents('Labrz', [TScanDir]);
+end;
+
+end.
+
diff --git a/Source/Framestein.cfg b/Source/Framestein.cfg index 42e96f3..80ee57d 100644 --- a/Source/Framestein.cfg +++ b/Source/Framestein.cfg @@ -1,40 +1,40 @@ --$A+ --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I- --$J+ --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cc --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --E"e:\fs\Framestein" --LE"c:\program files\borland\delphi5\Projects\Bpl" --LN"c:\program files\borland\delphi5\Projects\Bpl" --U"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source" --O"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source" --I"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source" --R"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source" +-$A+
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I-
+-$J+
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cc
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-E"e:\fs\Framestein"
+-LE"c:\program files\borland\delphi5\Projects\Bpl"
+-LN"c:\program files\borland\delphi5\Projects\Bpl"
+-U"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source"
+-O"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source"
+-I"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source"
+-R"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source"
diff --git a/Source/Framestein.dof b/Source/Framestein.dof index d3f985b..75376b1 100644 --- a/Source/Framestein.dof +++ b/Source/Framestein.dof @@ -1,97 +1,97 @@ -[Compiler] -A=1 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=0 -J=1 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=0 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir=e:\fs\Framestein -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source -Packages=Vcl50;Vclx50;VclSmp50;Qrpt50;Vcldb50;Vclbde50;ibevnt50;vcldbx50;TeeUI50;TeeDB50;Tee50;TeeQR50;VCLIB50;vclie50;Inetdb50;Inet50;NMFast50;dclocx50;dclaxserver50;DelphiX_for5;fspak -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -[Language] -ActiveLang= -ProjectLang=$0000040B -RootDir= -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1035 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=7 -Item0=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source -Item1=e:\lab\common\fastlib;e:\lab\common\pshost;e:\lab\common\G32;e:\fs\framestein\source -Item2=e:\lab\common\fastlib;e:\lab\common\pshost;e:\lab\common\G32 -Item3=g:\lab\common\fastlib;G:\lab\common\pshost;G:\lab\common\G32 -Item4=g:\lab\common\fastlib;G:\lab\common\pshost -Item5=g:\lab\common\fastlib -Item6=g:\lab\common;g:\lab\common\DelphiX2000_0717-2\Source;g:\lab\common\fastlib;g:\lab\common\pshost;g:\lab\common\G32;g:\lab\common\fastlib -[HistoryLists\hlOutputDirectorry] -Count=1 -Item0=e:\fs\Framestein +[Compiler]
+A=1
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=0
+J=1
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=0
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+[Directories]
+OutputDir=e:\fs\Framestein
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source
+Packages=Vcl50;Vclx50;VclSmp50;Qrpt50;Vcldb50;Vclbde50;ibevnt50;vcldbx50;TeeUI50;TeeDB50;Tee50;TeeQR50;VCLIB50;vclie50;Inetdb50;Inet50;NMFast50;dclocx50;dclaxserver50;DelphiX_for5;fspak
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+[Language]
+ActiveLang=
+ProjectLang=$0000040B
+RootDir=
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1035
+CodePage=1252
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=7
+Item0=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32;E:\fs\Framestein\Source
+Item1=e:\lab\common\fastlib;e:\lab\common\pshost;e:\lab\common\G32;e:\fs\framestein\source
+Item2=e:\lab\common\fastlib;e:\lab\common\pshost;e:\lab\common\G32
+Item3=g:\lab\common\fastlib;G:\lab\common\pshost;G:\lab\common\G32
+Item4=g:\lab\common\fastlib;G:\lab\common\pshost
+Item5=g:\lab\common\fastlib
+Item6=g:\lab\common;g:\lab\common\DelphiX2000_0717-2\Source;g:\lab\common\fastlib;g:\lab\common\pshost;g:\lab\common\G32;g:\lab\common\fastlib
+[HistoryLists\hlOutputDirectorry]
+Count=1
+Item0=e:\fs\Framestein
diff --git a/Source/Framestein.dpr b/Source/Framestein.dpr index 009543a..ebb7a0a 100644 --- a/Source/Framestein.dpr +++ b/Source/Framestein.dpr @@ -18,7 +18,8 @@ uses pluginunit in 'pluginunit.pas',
progressunit in 'progressunit.pas' {Progress},
configureunit in 'configureunit.pas' {configure},
- toolbarunit in 'toolbarunit.pas' {toolbar};
+ toolbarunit in 'toolbarunit.pas' {toolbar},
+ fsmemounit in 'fsmemounit.pas' {fsmemo};
{$R *.RES}
@@ -30,6 +31,7 @@ begin Application.CreateForm(Tconfigure, configure);
Application.CreateForm(Tlog, log);
Application.CreateForm(Ttoolbar, toolbar);
+ Application.CreateForm(Tfsmemo, fsmemo);
Application.Run;
end.
diff --git a/Source/FramesteinLib.cfg b/Source/FramesteinLib.cfg index 3416c26..7c67bba 100644 --- a/Source/FramesteinLib.cfg +++ b/Source/FramesteinLib.cfg @@ -1,40 +1,40 @@ --$A+ --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J+ --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi5\Projects\Bpl" --LN"c:\program files\borland\delphi5\Projects\Bpl" --U"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32" --O"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32" --I"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32" --R"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32" --DFSDLL +-$A+
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J+
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"c:\program files\borland\delphi5\Projects\Bpl"
+-LN"c:\program files\borland\delphi5\Projects\Bpl"
+-U"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32"
+-O"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32"
+-I"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32"
+-R"E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32"
+-DFSDLL
diff --git a/Source/FramesteinLib.dof b/Source/FramesteinLib.dof index f10a467..0d9044e 100644 --- a/Source/FramesteinLib.dof +++ b/Source/FramesteinLib.dof @@ -1,91 +1,91 @@ -[Compiler] -A=1 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=1 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32 -Packages=Vcl50;Vclx50;VclSmp50;Qrpt50;Vcldb50;Vclbde50;ibevnt50;vcldbx50;TeeUI50;TeeDB50;Tee50;TeeQR50;VCLIB50;vclie50;Inetdb50;Inet50;NMFast50;dclocx50;dclaxserver50;DelphiX_for5;fspak -Conditionals=FSDLL -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -[Language] -ActiveLang= -ProjectLang=$0000040B -RootDir= -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1035 -CodePage=1252 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[HistoryLists\hlConditionals] -Count=1 -Item0=FSDLL -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=1 -Item0=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32 +[Compiler]
+A=1
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=1
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+[Directories]
+OutputDir=
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32
+Packages=Vcl50;Vclx50;VclSmp50;Qrpt50;Vcldb50;Vclbde50;ibevnt50;vcldbx50;TeeUI50;TeeDB50;Tee50;TeeQR50;VCLIB50;vclie50;Inetdb50;Inet50;NMFast50;dclocx50;dclaxserver50;DelphiX_for5;fspak
+Conditionals=FSDLL
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+[Language]
+ActiveLang=
+ProjectLang=$0000040B
+RootDir=
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1035
+CodePage=1252
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+[HistoryLists\hlConditionals]
+Count=1
+Item0=FSDLL
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=1
+Item0=E:\lab\common\DelphiX2000_0717-2\Source;E:\lab\common\fastlib;E:\lab\common\pshost;E:\lab\common\G32
diff --git a/Source/FramesteinLib.dpr b/Source/FramesteinLib.dpr index 1f1c7d1..e3dbd7d 100644 --- a/Source/FramesteinLib.dpr +++ b/Source/FramesteinLib.dpr @@ -1,62 +1,62 @@ -{ Copyright (C) 2001-2002 Juha Vehviläinen - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details.} - -Library Framestein; - -{%ToDo 'Framestein.todo'} -{%ToDo 'FramesteinLib.todo'} - -uses - ActiveX, - Forms, - Classes, - Windows, - mainunit in 'mainunit.pas' {main}, - fsframeunit in 'fsframeunit.pas' {fsframe}, - fscopyunit in 'fscopyunit.pas' {fscopy}, - fstextunit in 'fstextunit.pas' {fstext}, - fsformunit in 'fsformunit.pas', - fsdrawunit in 'fsdrawunit.pas' {fsdraw}, - effectsunit in 'effectsunit.pas', - pluginunit in 'pluginunit.pas', - logunit in 'logunit.pas' {log}, - fsbrowserunit in 'fsbrowserunit.pas' {fsbrowser}, - fsinfounit in 'fsinfounit.pas' {fsinfo}, - configureunit in 'configureunit.pas' {configure}, - pshostunit in 'pshostunit.pas', - fsaviunit in 'fsaviunit.pas' {FsAvi}, - progressunit in 'progressunit.pas' {Progress}; - -{$R *.RES} - -function framesteinlib_setup: Longint; stdcall; -begin - mainunit.MainT := TMainThread.Create(False); - Result := 0; -end; - -exports - framesteinlib_setup; - -var - SaveExit: Pointer; - -procedure FSExit; -begin - Application.MessageBox('exitproc called!', '', 0); - ExitProc := SaveExit; -end; - -begin - SaveExit := ExitProc; - ExitProc := @FSExit; -end. - +{ Copyright (C) 2001-2002 Juha Vehviläinen
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.}
+
+Library Framestein;
+
+{%ToDo 'Framestein.todo'}
+{%ToDo 'FramesteinLib.todo'}
+
+uses
+ ActiveX,
+ Forms,
+ Classes,
+ Windows,
+ mainunit in 'mainunit.pas' {main},
+ fsframeunit in 'fsframeunit.pas' {fsframe},
+ fscopyunit in 'fscopyunit.pas' {fscopy},
+ fstextunit in 'fstextunit.pas' {fstext},
+ fsformunit in 'fsformunit.pas',
+ fsdrawunit in 'fsdrawunit.pas' {fsdraw},
+ effectsunit in 'effectsunit.pas',
+ pluginunit in 'pluginunit.pas',
+ logunit in 'logunit.pas' {log},
+ fsbrowserunit in 'fsbrowserunit.pas' {fsbrowser},
+ fsinfounit in 'fsinfounit.pas' {fsinfo},
+ configureunit in 'configureunit.pas' {configure},
+ pshostunit in 'pshostunit.pas',
+ fsaviunit in 'fsaviunit.pas' {FsAvi},
+ progressunit in 'progressunit.pas' {Progress};
+
+{$R *.RES}
+
+function framesteinlib_setup: Longint; stdcall;
+begin
+ mainunit.MainT := TMainThread.Create(False);
+ Result := 0;
+end;
+
+exports
+ framesteinlib_setup;
+
+var
+ SaveExit: Pointer;
+
+procedure FSExit;
+begin
+ Application.MessageBox('exitproc called!', '', 0);
+ ExitProc := SaveExit;
+end;
+
+begin
+ SaveExit := ExitProc;
+ ExitProc := @FSExit;
+end.
+
diff --git a/Source/FsAviWriter.pas b/Source/FsAviWriter.pas index 6373846..ec7e3bf 100644 --- a/Source/FsAviWriter.pas +++ b/Source/FsAviWriter.pas @@ -1,888 +1,888 @@ -unit FsAviWriter; - -// -// FSAviWriter - Framestein modified version of AviWriter. -// - -///////////////////////////////////////////////////////////////////////////// -// // -// AviWriter -- a component to create rudimentary AVI files // -// by Elliott Shevin, with large pieces of code // -// stolen from Anders Melander // -// version 1.0. Please send comments, suggestions, and advice // -// to shevine@aol.com. // -///////////////////////////////////////////////////////////////////////////// -// // -// AviWriter will build an AVI file containing one stream of any // -// number of TBitmaps, plus a single WAV file. // -// // -// Properties: // -// Bitmaps : A TList of pointers to TBitmap objects which become // -// frames of the AVI video stream. The component // -// allocates and frees the TList, but the caller // -// is responsible for managing the TBitmaps themselves. // -// Manipulate the list as you would any other TList. // -// At least one bitmap is required. // -// Height, Width: // -// The dimensions of the AVI video, in pixels. // -// FrameTime: // -// The duration of each video frame, in milliseconds. // -// Stretch: If TRUE, each TBitmap on the Bitmaps list is // -// stretches to the dimensions specified in Height // -// and Width. If FALSE, each TBitmap is copied from // -// its upper left corner without stretching. // -// FileName: The name of the AVI file to be written. // -// WAVFileName: // -// The name of a WAV file which will become the audio // -// stream for the AVI. Optional. // -// // -// Method: // -// Write: Creates the AVI file named by FileName. // -///////////////////////////////////////////////////////////////////////////// -// Wish List: // -// I'd like to be able to enhance this component in two ways, but // -// don't know how. Please send ideas to shevine@aol.com. // -// 1. So far, it's necessary to transform the video stream into // -// and AVI file on disk. I'd prefer to do this in memory. // -// 2. MIDI files for audio. // -///////////////////////////////////////////////////////////////////////////// - -interface - -uses - Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, DIB, -{$ifdef VER90} - ole2; -{$else} - ActiveX; -{$endif} - -//////////////////////////////////////////////////////////////////////////////// -// // -// Video for Windows // -// // -//////////////////////////////////////////////////////////////////////////////// -// // -// Adapted from Thomas Schimming's VFW.PAS // -// (c) 1996 Thomas Schimming, schimmin@iee1.et.tu-dresden.de // -// (c) 1998,99 Anders Melander // -// // -//////////////////////////////////////////////////////////////////////////////// -// // -// Ripped all COM/ActiveX stuff and added some AVI stream functions. // -// // -//////////////////////////////////////////////////////////////////////////////// - -type - - { TAVIFileInfoW record } - - LONG = Longint; - PVOID = Pointer; - -// TAVIFileInfo dwFlag values -const - AVIF_HASINDEX = $00000010; - AVIF_MUSTUSEINDEX = $00000020; - AVIF_ISINTERLEAVED = $00000100; - AVIF_WASCAPTUREFILE = $00010000; - AVIF_COPYRIGHTED = $00020000; - AVIF_KNOWN_FLAGS = $00030130; - - AVIERR_UNSUPPORTED = $80044065; // MAKE_AVIERR(101) - AVIERR_BADFORMAT = $80044066; // MAKE_AVIERR(102) - AVIERR_MEMORY = $80044067; // MAKE_AVIERR(103) - AVIERR_INTERNAL = $80044068; // MAKE_AVIERR(104) - AVIERR_BADFLAGS = $80044069; // MAKE_AVIERR(105) - AVIERR_BADPARAM = $8004406A; // MAKE_AVIERR(106) - AVIERR_BADSIZE = $8004406B; // MAKE_AVIERR(107) - AVIERR_BADHANDLE = $8004406C; // MAKE_AVIERR(108) - AVIERR_FILEREAD = $8004406D; // MAKE_AVIERR(109) - AVIERR_FILEWRITE = $8004406E; // MAKE_AVIERR(110) - AVIERR_FILEOPEN = $8004406F; // MAKE_AVIERR(111) - AVIERR_COMPRESSOR = $80044070; // MAKE_AVIERR(112) - AVIERR_NOCOMPRESSOR = $80044071; // MAKE_AVIERR(113) - AVIERR_READONLY = $80044072; // MAKE_AVIERR(114) - AVIERR_NODATA = $80044073; // MAKE_AVIERR(115) - AVIERR_BUFFERTOOSMALL = $80044074; // MAKE_AVIERR(116) - AVIERR_CANTCOMPRESS = $80044075; // MAKE_AVIERR(117) - AVIERR_USERABORT = $800440C6; // MAKE_AVIERR(198) - AVIERR_ERROR = $800440C7; // MAKE_AVIERR(199) - -type - TAVIFileInfoW = record - dwMaxBytesPerSec, // max. transfer rate - dwFlags, // the ever-present flags - dwCaps, - dwStreams, - dwSuggestedBufferSize, - - dwWidth, - dwHeight, - - dwScale, - dwRate, // dwRate / dwScale == samples/second - dwLength, - - dwEditCount: DWORD; - - szFileType: array[0..63] of WideChar; // descriptive string for file type? - end; - PAVIFileInfoW = ^TAVIFileInfoW; - -// TAVIStreamInfo dwFlag values -const - AVISF_DISABLED = $00000001; - AVISF_VIDEO_PALCHANGES= $00010000; - AVISF_KNOWN_FLAGS = $00010001; - -type - TAVIStreamInfoA = record - fccType, - fccHandler, - dwFlags, // Contains AVITF_* flags - dwCaps: DWORD; - wPriority, - wLanguage: WORD; - dwScale, - dwRate, // dwRate / dwScale == samples/second - dwStart, - dwLength, // In units above... - dwInitialFrames, - dwSuggestedBufferSize, - dwQuality, - dwSampleSize: DWORD; - rcFrame: TRect; - dwEditCount, - dwFormatChangeCount: DWORD; - szName: array[0..63] of AnsiChar; - end; - TAVIStreamInfo = TAVIStreamInfoA; - PAVIStreamInfo = ^TAVIStreamInfo; - - { TAVIStreamInfoW record } - - TAVIStreamInfoW = record - fccType, - fccHandler, - dwFlags, // Contains AVITF_* flags - dwCaps: DWORD; - wPriority, - wLanguage: WORD; - dwScale, - dwRate, // dwRate / dwScale == samples/second - dwStart, - dwLength, // In units above... - dwInitialFrames, - dwSuggestedBufferSize, - dwQuality, - dwSampleSize: DWORD; - rcFrame: TRect; - dwEditCount, - dwFormatChangeCount: DWORD; - szName: array[0..63] of WideChar; - end; - - PAVIStream = pointer; - PAVIFile = pointer; - TAVIStreamList = array[0..0] of PAVIStream; - PAVIStreamList = ^TAVIStreamList; - TAVISaveCallback = function (nPercent: integer): LONG; stdcall; - - TAVICompressOptions = packed record - fccType : DWORD; - fccHandler : DWORD; - dwKeyFrameEvery : DWORD; - dwQuality : DWORD; - dwBytesPerSecond : DWORD; - dwFlags : DWORD; - lpFormat : pointer; - cbFormat : DWORD; - lpParms : pointer; - cbParms : DWORD; - dwInterleaveEvery : DWORD; - end; - PAVICompressOptions = ^TAVICompressOptions; - -const - ICMF_CHOOSE_KEYFRAME = $0001; // show KeyFrame Every box - ICMF_CHOOSE_DATARATE = $0002; // show DataRate box - ICMF_CHOOSE_PREVIEW = $0004; // allow expanded preview dialog - -// Palette change data record -const - RIFF_PaletteChange: DWORD = 1668293411; -type - TAVIPalChange = packed record - bFirstEntry : byte; - bNumEntries : byte; - wFlags : WORD; - peNew : array[byte] of TPaletteEntry; - end; - PAVIPalChange = ^TAVIPalChange; - - APAVISTREAM = array[0..1] of PAVISTREAM; - APAVICompressOptions = array[0..1] of PAVICompressOptions; - PAPAVICompressOptions = ^APAVICompressOptions; - -procedure AVIFileInit; stdcall; -procedure AVIFileExit; stdcall; -function AVIFileOpen(var ppfile: PAVIFile; szFile: PChar; uMode: UINT; lpHandler: pointer): HResult; stdcall; -function AVIFileCreateStream(pfile: PAVIFile; var ppavi: PAVISTREAM; var psi: TAVIStreamInfo): HResult; stdcall; -function AVIStreamSetFormat(pavi: PAVIStream; lPos: LONG; lpFormat: pointer; cbFormat: LONG): HResult; stdcall; -function AVIStreamReadFormat(pavi: PAVIStream; lPos: LONG; lpFormat: pointer; var cbFormat: LONG): HResult; stdcall; -function AVIStreamWrite(pavi: PAVIStream; lStart, lSamples: LONG; lpBuffer: pointer; cbBuffer: LONG; dwFlags: DWORD; var plSampWritten: LONG; var plBytesWritten: LONG): HResult; stdcall; -function AVIStreamRelease(pavi: PAVISTREAM): ULONG; stdcall; -function AVIFileRelease(pfile: PAVIFile): ULONG; stdcall; -function AVIFileGetStream(pfile: PAVIFile; var ppavi: PAVISTREAM; fccType: DWORD; lParam: LONG): HResult; stdcall; -function CreateEditableStream(var ppsEditable: PAVISTREAM; psSource: PAVISTREAM): HResult; stdcall; -function AVISaveV(szFile: PChar; pclsidHandler: PCLSID; lpfnCallback: TAVISaveCallback; - nStreams: integer; pavi: APAVISTREAM; lpOptions: APAVICompressOptions): HResult; stdcall; -function AVISaveOptions(hwnd: HWND; uiFlags: UINT; nStreams: integer; - ppavi: APAVISTREAM; plpOptions: PAPAVICOMPRESSOPTIONS): Boolean; stdcall; external 'avifil32.dll'; -function AVIMakeCompressedStream(var ppaviCompressed: PAVISTREAM; - ppaviSource: PAVISTREAM; plpOptions: APAVICompressOptions; - pclsidHandler: PCLSID): HResult; stdcall; external 'avifil32.dll'; - -const - AVIERR_OK = 0; - - AVIIF_LIST = $01; - AVIIF_TWOCC = $02; - AVIIF_KEYFRAME = $10; - - streamtypeVIDEO = $73646976; // DWORD( 'v', 'i', 'd', 's' ) - streamtypeAUDIO = $73647561; // DWORD( 'a', 'u', 'd', 's' ) - - -type - TPixelFormat = (pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, - pf24bit, pf32bit, pfCustom); - -type - TAviWriter = class(TComponent) - private - TempFileName : string; - pFile : PAVIFile; - fHeight : integer; - fWidth : integer; - fStretch : boolean; - fFrameTime : integer; - fFileName : string; - fWavFileName : string; - VideoStream : PAVISTREAM; - AudioStream : PAVISTREAM; - - Pstream : PAVISTREAM; - StreamInfo : TAVIStreamInfo; - - CompOptions : APAVICompressOptions; - cmp1, cmp2 : TAviCompressOptions; - - procedure AddVideo; - procedure AddAudio; - procedure InternalGetDIBSizes(Bitmap: HBITMAP; var InfoHeaderSize: Integer; - var ImageSize: longInt; PixelFormat: TPixelFormat); - function InternalGetDIB(Bitmap: HBITMAP; Palette: HPALETTE; - var BitmapInfo; var Bits; PixelFormat: TPixelFormat): Boolean; - procedure InitializeBitmapInfoHeader(Bitmap: HBITMAP; var Info: TBitmapInfoHeader; - PixelFormat: TPixelFormat); - procedure SetWavFileName(value : string); - { Private declarations } - protected - { Protected declarations } - public - Bitmaps : TList; - FramePos : Longint; - Prepared : Boolean; - fps : Integer; - constructor Create(AOwner : TComponent); override; - destructor Destroy; override; - procedure Write; - procedure Prepare; - procedure AddFrame(const DIB: TDIB); - procedure Finish; - { Public declarations } - published - property Height : integer read fHeight write fHeight; - property Width : integer read fWidth write fWidth; - property FrameTime: integer read fFrameTime write fFrameTime; - property Stretch : boolean read fStretch write fStretch; - property FileName : string read fFileName write fFileName; - property WavFileName : string read fWavFileName write SetWavFileName; - { Published declarations } - end; - -procedure Register; - -implementation - -uses - mainunit, - progressunit; - -function MAKEFOURCC(ch0, ch1, ch2, ch3: Char): Cardinal; -begin - Result := - (DWORD(BYTE(ch0))) or (DWORD(BYTE(ch1)) shl 8) or - (DWORD(BYTE(ch2)) shl 16) or (DWORD(BYTE(ch3)) shl 24 ); -end; - -constructor TAviWriter.Create(AOwner : TComponent); -var - tempdir : string; - l : integer; -begin - inherited Create(AOwner); - fHeight := screen.height div 10; - fWidth := screen.width div 10; - fFrameTime := 1000; - fStretch := true; - fFileName := ''; - Bitmaps := TList.create; - AVIFileInit; - - setlength(tempdir,MAX_PATH + 1); - l := GetTempPath(MAX_PATH,pchar(tempdir)); - setlength(tempdir,l); - if copy(tempdir,length(tempdir),1) <> '\' - then tempdir := tempdir + '\'; - TempFileName := tempdir + '~AWTemp.avi'; - Prepared := False; - - CompOptions[0] := @cmp1; - CompOptions[1] := @cmp2; - - FillChar(cmp1, Sizeof(cmp1), 0); - FillChar(cmp2, Sizeof(cmp1), 0); - - cmp1.fccType := streamtypeVIDEO; - cmp1.fccHandler := MakeFourCC('m','j','p','g'); -// cmp1.dwQuality := - - fps := 25; -end; - -destructor TAviWriter.Destroy; -begin - Bitmaps.free; - AviFileExit; - inherited; -end; - -procedure TAviWriter.Write; -var - Bitmap : TBitmap; - ExtBitmap : TBitmap; - nstreams : integer; - i : integer; - Streams : APAVISTREAM; - CompOptions : APAVICompressOptions; - AVIERR : integer; - refcount : integer; -begin - AudioStream := nil; - VideoStream := nil; - - // If no bitmaps are on the list, raise an error. - if Bitmaps.count < 1 then - raise Exception.Create('No bitmaps on the Bitmaps list'); - - // If anything on the Bitmaps TList is not a bitmap, raise - // an error. - for i := 0 to Bitmaps.count - 1 do begin - ExtBitmap := Bitmaps[i]; - if not(ExtBitmap is TBitmap) - then raise Exception.Create('Bitmaps[' + inttostr(i) - + '] is not a TBitmap'); - end; - - try - AddVideo; - - if WavFileName <> '' - then AddAudio; - - // Create the output file. - if WavFileName <> '' - then nstreams := 2 - else nstreams := 1; - - Streams[0] := VideoStream; - Streams[1] := AudioStream; - CompOptions[0] := nil; - CompOptions[1] := nil; - - AVIERR := AVISaveV(pchar(FileName), - nil, // File handler - nil, // Callback - nStreams, // Number of streams
Streams,
CompOptions); // Compress options for VideoStream
if AVIERR <> AVIERR_OK then
raise Exception.Create('Unable to write output file');
finally
if assigned(VideoStream)
then AviStreamRelease(VideoStream);
if assigned(AudioStream) - then AviStreamRelease(AudioStream);
try
repeat - refcount := AviFileRelease(pFile); - until refcount <= 0; - except - end; - - DeleteFile(TempFileName); - end; -end; - -procedure TAviWriter.AddVideo; -var - Pstream : PAVISTREAM; - StreamInfo : TAVIStreamInfo; - BitmapInfo : PBitmapInfoHeader; - BitmapInfoSize : Integer; - BitmapSize : longInt; - BitmapBits : pointer; - Bitmap : TBitmap; - ExtBitmap : TBitmap; - Samples_Written : LONG; - Bytes_Written : LONG; - AVIERR : integer; - i : integer; - startpos : DWORD; - len : DWORD; -begin - - // Open AVI file for write - if (AVIFileOpen(pFile, pchar(TempFileName), - OF_WRITE or OF_CREATE OR OF_SHARE_EXCLUSIVE, nil) - <> AVIERR_OK) - then - raise Exception.Create('Failed to create AVI video work file'); - - // Allocate the bitmap to which the bitmaps on the Bitmaps Tlist - // will be copied. - Bitmap := TBitmap.create; - Bitmap.Height := self.Height; - Bitmap.Width := self.Width; - - // Write the stream header. - try - FillChar(StreamInfo, sizeof(StreamInfo), 0); - - // Set frame rate and scale - StreamInfo.dwRate := 1000; - StreamInfo.dwScale := fFrameTime; - StreamInfo.fccType := streamtypeVIDEO; - StreamInfo.fccHandler := 0; - StreamInfo.dwFlags := 0; - StreamInfo.dwSuggestedBufferSize := 0; - StreamInfo.rcFrame.Right := self.width; - StreamInfo.rcFrame.Bottom := self.height; - - // Open AVI data stream - if (AVIFileCreateStream(pFile, pStream, StreamInfo) <> AVIERR_OK) then - raise Exception.Create('Failed to create AVI video stream'); - - try - // Write the bitmaps to the stream. - for i := 0 to Bitmaps.count - 1 do begin - try - BitmapInfo := nil; - BitmapBits := nil; - - // Copy the bitmap from the list to the AVI bitmap, - // stretching if desired. If the caller elects not to - // stretch, use the first pixel in the bitmap as a - // background color in case either the height or - // width of the source is smaller than the output. - // If Draw fails, do a StretchDraw. - ExtBitmap := Bitmaps[i]; - if fStretch - then Bitmap.Canvas.StretchDraw - (Rect(0,0,self.width,self.height),ExtBitmap) - else try - with Bitmap.Canvas do begin - Brush.Color := ExtBitmap.Canvas.Pixels[0,0]; - Brush.Style := bsSolid; - FillRect(Rect(0,0,Bitmap.Width,Bitmap.Height)); - Draw(0,0,ExtBitmap); - end; - except - Bitmap.Canvas.StretchDraw - (Rect(0,0,self.width,self.height),ExtBitmap); - end; - - // Determine size of DIB - InternalGetDIBSizes(Bitmap.Handle, BitmapInfoSize, BitmapSize, pf8bit); - if (BitmapInfoSize = 0) then - raise Exception.Create('Failed to retrieve bitmap info'); - - // Get DIB header and pixel buffers - GetMem(BitmapInfo, BitmapInfoSize); - GetMem(BitmapBits, BitmapSize); - InternalGetDIB - (Bitmap.Handle, 0, BitmapInfo^, BitmapBits^, pf8bit); - - // On the first time through, set the stream format. - if i = 0 then - if (AVIStreamSetFormat(pStream, 0, BitmapInfo, BitmapInfoSize) <> AVIERR_OK) then - raise Exception.Create('Failed to set AVI stream format'); - - // Write frame to the video stream - AVIERR := - AVIStreamWrite(pStream, i, 1, BitmapBits, BitmapSize, AVIIF_KEYFRAME, - Samples_Written, Bytes_Written); - if AVIERR <> AVIERR_OK then - raise Exception.Create - ('Failed to add frame to AVI. Err=' - + inttohex(AVIERR,8)); - finally - if (BitmapInfo <> nil) then - FreeMem(BitmapInfo); - if (BitmapBits <> nil) then - FreeMem(BitmapBits); - end; - end; - - // Create the editable VideoStream from pStream. - if CreateEditableStream(VideoStream,pStream) <> AVIERR_OK then - raise Exception.Create - ('Could not create Video Stream'); - finally - AviStreamRelease(pStream); - end; - - finally - Bitmap.free; - end; -end; - -procedure TAviWriter.AddAudio; -var - InputFile : PAVIFILE; - hr : integer; - InputStream : PAVIStream; - avisClip : TAVISTREAMINFO; - l, selstart : DWORD; - pastecode : integer; -begin - // Open the audio file. - hr := AVIFileOpen(InputFile, pchar(WavFileName),OF_READ, nil); - case hr of - 0: ; - AVIERR_BADFORMAT : raise Exception.Create('The file could not be read, indicating a corrupt file or an unrecognized format.'); - AVIERR_MEMORY : raise Exception.Create('The file could not be opened because of insufficient memory.'); - AVIERR_FILEREAD : raise Exception.Create('A disk error occurred while reading the audio file.'); - AVIERR_FILEOPEN : raise Exception.Create('A disk error occurred while opening the audio file.'); - REGDB_E_CLASSNOTREG : raise Exception.Create('According to the registry, the type of audio file specified in AVIFileOpen does not have a handler to process it.'); - else raise Exception.Create('Unknown error opening audio file'); - end; - - // Open the audio stream. - try - if (AVIFileGetStream(InputFile, InputStream, 0, 0) <> AVIERR_OK) then - raise Exception.Create('Unable to get audio stream'); - - try - // Create AudioStream as a copy of InputStream - if (CreateEditableStream(AudioStream,InputStream) <> AVIERR_OK) then - raise Exception.Create('Failed to create editable AVI audio stream'); - finally - AviStreamRelease(InputStream); - end; - - finally - AviFileRelease(InputFile); - end; -end; - -// -------------- -// InternalGetDIB -// -------------- -// Converts a bitmap to a DIB of a specified PixelFormat. -// -// Parameters: -// Bitmap The handle of the source bitmap. -// Pal The handle of the source palette. -// BitmapInfo The buffer that will receive the DIB's TBitmapInfo structure. -// A buffer of sufficient size must have been allocated prior to -// calling this function. -// Bits The buffer that will receive the DIB's pixel data. -// A buffer of sufficient size must have been allocated prior to -// calling this function. -// PixelFormat The pixel format of the destination DIB. -// -// Returns: -// True on success, False on failure. -// -// Note: The InternalGetDIBSizes function can be used to calculate the -// nescessary sizes of the BitmapInfo and Bits buffers. -// -function TAviWriter.InternalGetDIB(Bitmap: HBITMAP; Palette: HPALETTE; - var BitmapInfo; var Bits; PixelFormat: TPixelFormat): Boolean; -// From graphics.pas, "optimized" for our use -var - OldPal : HPALETTE; - DC : HDC; -begin - InitializeBitmapInfoHeader(Bitmap, TBitmapInfoHeader(BitmapInfo), PixelFormat); - OldPal := 0; - DC := CreateCompatibleDC(0); - try - if (Palette <> 0) then - begin - OldPal := SelectPalette(DC, Palette, False); - RealizePalette(DC); - end; - Result := (GetDIBits(DC, Bitmap, 0, abs(TBitmapInfoHeader(BitmapInfo).biHeight), - @Bits, TBitmapInfo(BitmapInfo), DIB_RGB_COLORS) <> 0); - finally - if (OldPal <> 0) then - SelectPalette(DC, OldPal, False); - DeleteDC(DC); - end; -end; - - -// ------------------- -// InternalGetDIBSizes -// ------------------- -// Calculates the buffer sizes nescessary for convertion of a bitmap to a DIB -// of a specified PixelFormat. -// See the GetDIBSizes API function for more info. -// -// Parameters: -// Bitmap The handle of the source bitmap. -// InfoHeaderSize -// The returned size of a buffer that will receive the DIB's -// TBitmapInfo structure. -// ImageSize The returned size of a buffer that will receive the DIB's -// pixel data. -// PixelFormat The pixel format of the destination DIB. -// -procedure TAviWriter.InternalGetDIBSizes(Bitmap: HBITMAP; var InfoHeaderSize: Integer; - var ImageSize: longInt; PixelFormat: TPixelFormat); -// From graphics.pas, "optimized" for our use -var - Info : TBitmapInfoHeader; -begin - InitializeBitmapInfoHeader(Bitmap, Info, PixelFormat); - // Check for palette device format - if (Info.biBitCount > 8) then - begin - // Header but no palette - InfoHeaderSize := SizeOf(TBitmapInfoHeader); - if ((Info.biCompression and BI_BITFIELDS) <> 0) then - Inc(InfoHeaderSize, 12); - end else - // Header and palette - InfoHeaderSize := SizeOf(TBitmapInfoHeader) + SizeOf(TRGBQuad) * (1 shl Info.biBitCount); - ImageSize := Info.biSizeImage; -end; - -// -------------------------- -// InitializeBitmapInfoHeader -// -------------------------- -// Fills a TBitmapInfoHeader with the values of a bitmap when converted to a -// DIB of a specified PixelFormat. -// -// Parameters: -// Bitmap The handle of the source bitmap. -// Info The TBitmapInfoHeader buffer that will receive the values. -// PixelFormat The pixel format of the destination DIB. -// -{$IFDEF BAD_STACK_ALIGNMENT} - // Disable optimization to circumvent optimizer bug... - {$IFOPT O+} - {$DEFINE O_PLUS} - {$O-} - {$ENDIF} -{$ENDIF} - - -procedure TAviWriter.InitializeBitmapInfoHeader(Bitmap: HBITMAP; var Info: TBitmapInfoHeader; - PixelFormat: TPixelFormat); -// From graphics.pas, "optimized" for our use -var - DIB : TDIBSection; - Bytes : Integer; - function AlignBit(Bits, BitsPerPixel, Alignment: Cardinal): Cardinal; - begin - Dec(Alignment); - Result := ((Bits * BitsPerPixel) + Alignment) and not Alignment; - Result := Result SHR 3; - end; -begin - DIB.dsbmih.biSize := 0; - Bytes := GetObject(Bitmap, SizeOf(DIB), @DIB); - if (Bytes = 0) then - raise Exception.Create('Invalid bitmap'); -// Error(sInvalidBitmap); - - if (Bytes >= (sizeof(DIB.dsbm) + sizeof(DIB.dsbmih))) and - (DIB.dsbmih.biSize >= sizeof(DIB.dsbmih)) then - Info := DIB.dsbmih - else - begin - FillChar(Info, sizeof(Info), 0); - with Info, DIB.dsbm do - begin - biSize := SizeOf(Info); - biWidth := bmWidth; - biHeight := bmHeight; - end; - end; - case PixelFormat of - pf1bit: Info.biBitCount := 1; - pf4bit: Info.biBitCount := 4; - pf8bit: Info.biBitCount := 8; - pf24bit: Info.biBitCount := 24; - else -// Error(sInvalidPixelFormat); - raise Exception.Create('Invalid pixel foramt'); - // Info.biBitCount := DIB.dsbm.bmBitsPixel * DIB.dsbm.bmPlanes; - end; - Info.biPlanes := 1; - Info.biCompression := BI_RGB; // Always return data in RGB format - Info.biSizeImage := AlignBit(Info.biWidth, Info.biBitCount, 32) * Cardinal(abs(Info.biHeight)); -end; -{$IFDEF O_PLUS} - {$O+} - {$UNDEF O_PLUS} -{$ENDIF} - -procedure TAviWriter.SetWavFileName(value : string); -begin - if lowercase(fWavFileName) <> lowercase(value) - then if lowercase(ExtractFileExt(value)) <> '.wav' - then raise Exception.Create('WavFileName must name a file ' - + 'with the .wav extension') - else fWavFileName := value; -end; - - -procedure Register; -begin - RegisterComponents('Labrz', [TAviWriter]); -end; - - procedure AVIFileInit; stdcall; external 'avifil32.dll' name 'AVIFileInit'; - procedure AVIFileExit; stdcall; external 'avifil32.dll' name 'AVIFileExit'; - function AVIFileOpen; external 'avifil32.dll' name 'AVIFileOpenA'; - function AVIFileCreateStream; external 'avifil32.dll' name 'AVIFileCreateStreamA'; - function AVIStreamSetFormat; external 'avifil32.dll' name 'AVIStreamSetFormat'; - function AVIStreamReadFormat; external 'avifil32.dll' name 'AVIStreamReadFormat'; - function AVIStreamWrite; external 'avifil32.dll' name 'AVIStreamWrite'; - function AVIStreamRelease; external 'avifil32.dll' name 'AVIStreamRelease'; - function AVIFileRelease; external 'avifil32.dll' name 'AVIFileRelease'; - function AVIFileGetStream; external 'avifil32.dll' name 'AVIFileGetStream'; - function CreateEditableStream; external 'avifil32.dll' name 'CreateEditableStream'; - function AVISaveV; external 'avifil32.dll' name 'AVISaveV'; - -procedure TAviWriter.Prepare; -begin - if Prepared then begin - main.Post('Finishing previous file..'); - Finish; - end; - - AudioStream := nil; - VideoStream := nil; - - if (AVIFileOpen(pFile, pchar(TempFileName), - OF_WRITE or OF_CREATE or OF_SHARE_EXCLUSIVE, nil) <> AVIERR_OK) then - raise Exception.Create('Failed to create AVI video work file'); - - FillChar(StreamInfo, sizeof(StreamInfo), 0); - - // Set frame rate and scale - StreamInfo.dwRate := fps*1000; - StreamInfo.dwScale := fFrameTime; - StreamInfo.fccType := streamtypeVIDEO; - StreamInfo.fccHandler := 0; - StreamInfo.dwFlags := 0; - StreamInfo.dwSuggestedBufferSize := 0; - StreamInfo.rcFrame.Right := self.width; - StreamInfo.rcFrame.Bottom := self.height; - - // Open AVI data stream - if (AVIFileCreateStream(pFile, pStream, StreamInfo) <> AVIERR_OK) then - raise Exception.Create('Failed to create AVI video stream'); - - FramePos := 0; - Prepared := True; -end; - -procedure TAviWriter.AddFrame(const DIB: TDIB); -var - Samples_Written : LONG; - Bytes_Written : LONG; - AVIERR : integer; -begin - if not Prepared then begin - main.Post('fs.avi: internal error, not prepared to add frame.'); - Exit; - end; - - // On the first time through, set the stream format. - if FramePos = 0 then begin - if (AVIStreamSetFormat(pStream, 0, DIB.BitmapInfo, DIB.BitmapInfoSize) <> AVIERR_OK) then - raise Exception.Create('Failed to set AVI stream format'); - end; - - // Write frame to the video stream - AVIERR := AVIStreamWrite(pStream, FramePos, 1, DIB.PBits, DIB.Size, AVIIF_KEYFRAME, - Samples_Written, Bytes_Written); - - Inc(FramePos); - - if AVIERR <> AVIERR_OK then - raise Exception.Create('Failed to add frame to AVI. Err='+ - inttohex(AVIERR,8)); -end; - -function avisavecallback(nPercent: UINT): ULONG; stdcall; -begin -// Write('fs.avi: '+IntToStr(nPercent)+'%'+#13); - Progress.pb1.Position := nPercent; - Result := AVIERR_OK; -end; - -procedure TAviWriter.Finish; -var - nstreams: Integer; - Streams : APAVISTREAM; - AVIERR : integer; - refcount : integer; -begin - if not Prepared then begin - main.Post('fs.avi: nothing to write.'); - Exit; - end; - - if CreateEditableStream(VideoStream,pStream) <> AVIERR_OK then - raise Exception.Create('Could not create Video Stream'); - - AviStreamRelease(pStream); - - nstreams := 1; - - Streams[0] := VideoStream; - Streams[1] := nil;//AudioStream; - - if AVISaveOptions(0, ICMF_CHOOSE_PREVIEW, nStreams, Streams, @CompOptions) then begin - - Progress.Show; - - AVIERR := AVISaveV(pchar(FileName), - nil, // File handler - @avisavecallback, // Callback - nStreams, // Number of streams
Streams,
CompOptions); // Compress options for VideoStream
Progress.Hide;
// I get some strange error but the file is always ok so... screw it
{
if AVIERR <> AVIERR_OK then
raise Exception.Create('Error on write - check output file.');
}
if assigned(VideoStream)
then AviStreamRelease(VideoStream);
if assigned(AudioStream) - then AviStreamRelease(AudioStream);
try
repeat - refcount := AviFileRelease(pFile); - until refcount <= 0; - except - end; - - DeleteFile(TempFileName); - - Prepared := False; - end; -end; - -end. - +unit FsAviWriter;
+
+//
+// FSAviWriter - Framestein modified version of AviWriter.
+//
+
+/////////////////////////////////////////////////////////////////////////////
+// //
+// AviWriter -- a component to create rudimentary AVI files //
+// by Elliott Shevin, with large pieces of code //
+// stolen from Anders Melander //
+// version 1.0. Please send comments, suggestions, and advice //
+// to shevine@aol.com. //
+/////////////////////////////////////////////////////////////////////////////
+// //
+// AviWriter will build an AVI file containing one stream of any //
+// number of TBitmaps, plus a single WAV file. //
+// //
+// Properties: //
+// Bitmaps : A TList of pointers to TBitmap objects which become //
+// frames of the AVI video stream. The component //
+// allocates and frees the TList, but the caller //
+// is responsible for managing the TBitmaps themselves. //
+// Manipulate the list as you would any other TList. //
+// At least one bitmap is required. //
+// Height, Width: //
+// The dimensions of the AVI video, in pixels. //
+// FrameTime: //
+// The duration of each video frame, in milliseconds. //
+// Stretch: If TRUE, each TBitmap on the Bitmaps list is //
+// stretches to the dimensions specified in Height //
+// and Width. If FALSE, each TBitmap is copied from //
+// its upper left corner without stretching. //
+// FileName: The name of the AVI file to be written. //
+// WAVFileName: //
+// The name of a WAV file which will become the audio //
+// stream for the AVI. Optional. //
+// //
+// Method: //
+// Write: Creates the AVI file named by FileName. //
+/////////////////////////////////////////////////////////////////////////////
+// Wish List: //
+// I'd like to be able to enhance this component in two ways, but //
+// don't know how. Please send ideas to shevine@aol.com. //
+// 1. So far, it's necessary to transform the video stream into //
+// and AVI file on disk. I'd prefer to do this in memory. //
+// 2. MIDI files for audio. //
+/////////////////////////////////////////////////////////////////////////////
+
+interface
+
+uses
+ Windows,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ StdCtrls, DIB,
+{$ifdef VER90}
+ ole2;
+{$else}
+ ActiveX;
+{$endif}
+
+////////////////////////////////////////////////////////////////////////////////
+// //
+// Video for Windows //
+// //
+////////////////////////////////////////////////////////////////////////////////
+// //
+// Adapted from Thomas Schimming's VFW.PAS //
+// (c) 1996 Thomas Schimming, schimmin@iee1.et.tu-dresden.de //
+// (c) 1998,99 Anders Melander //
+// //
+////////////////////////////////////////////////////////////////////////////////
+// //
+// Ripped all COM/ActiveX stuff and added some AVI stream functions. //
+// //
+////////////////////////////////////////////////////////////////////////////////
+
+type
+
+ { TAVIFileInfoW record }
+
+ LONG = Longint;
+ PVOID = Pointer;
+
+// TAVIFileInfo dwFlag values
+const
+ AVIF_HASINDEX = $00000010;
+ AVIF_MUSTUSEINDEX = $00000020;
+ AVIF_ISINTERLEAVED = $00000100;
+ AVIF_WASCAPTUREFILE = $00010000;
+ AVIF_COPYRIGHTED = $00020000;
+ AVIF_KNOWN_FLAGS = $00030130;
+
+ AVIERR_UNSUPPORTED = $80044065; // MAKE_AVIERR(101)
+ AVIERR_BADFORMAT = $80044066; // MAKE_AVIERR(102)
+ AVIERR_MEMORY = $80044067; // MAKE_AVIERR(103)
+ AVIERR_INTERNAL = $80044068; // MAKE_AVIERR(104)
+ AVIERR_BADFLAGS = $80044069; // MAKE_AVIERR(105)
+ AVIERR_BADPARAM = $8004406A; // MAKE_AVIERR(106)
+ AVIERR_BADSIZE = $8004406B; // MAKE_AVIERR(107)
+ AVIERR_BADHANDLE = $8004406C; // MAKE_AVIERR(108)
+ AVIERR_FILEREAD = $8004406D; // MAKE_AVIERR(109)
+ AVIERR_FILEWRITE = $8004406E; // MAKE_AVIERR(110)
+ AVIERR_FILEOPEN = $8004406F; // MAKE_AVIERR(111)
+ AVIERR_COMPRESSOR = $80044070; // MAKE_AVIERR(112)
+ AVIERR_NOCOMPRESSOR = $80044071; // MAKE_AVIERR(113)
+ AVIERR_READONLY = $80044072; // MAKE_AVIERR(114)
+ AVIERR_NODATA = $80044073; // MAKE_AVIERR(115)
+ AVIERR_BUFFERTOOSMALL = $80044074; // MAKE_AVIERR(116)
+ AVIERR_CANTCOMPRESS = $80044075; // MAKE_AVIERR(117)
+ AVIERR_USERABORT = $800440C6; // MAKE_AVIERR(198)
+ AVIERR_ERROR = $800440C7; // MAKE_AVIERR(199)
+
+type
+ TAVIFileInfoW = record
+ dwMaxBytesPerSec, // max. transfer rate
+ dwFlags, // the ever-present flags
+ dwCaps,
+ dwStreams,
+ dwSuggestedBufferSize,
+
+ dwWidth,
+ dwHeight,
+
+ dwScale,
+ dwRate, // dwRate / dwScale == samples/second
+ dwLength,
+
+ dwEditCount: DWORD;
+
+ szFileType: array[0..63] of WideChar; // descriptive string for file type?
+ end;
+ PAVIFileInfoW = ^TAVIFileInfoW;
+
+// TAVIStreamInfo dwFlag values
+const
+ AVISF_DISABLED = $00000001;
+ AVISF_VIDEO_PALCHANGES= $00010000;
+ AVISF_KNOWN_FLAGS = $00010001;
+
+type
+ TAVIStreamInfoA = record
+ fccType,
+ fccHandler,
+ dwFlags, // Contains AVITF_* flags
+ dwCaps: DWORD;
+ wPriority,
+ wLanguage: WORD;
+ dwScale,
+ dwRate, // dwRate / dwScale == samples/second
+ dwStart,
+ dwLength, // In units above...
+ dwInitialFrames,
+ dwSuggestedBufferSize,
+ dwQuality,
+ dwSampleSize: DWORD;
+ rcFrame: TRect;
+ dwEditCount,
+ dwFormatChangeCount: DWORD;
+ szName: array[0..63] of AnsiChar;
+ end;
+ TAVIStreamInfo = TAVIStreamInfoA;
+ PAVIStreamInfo = ^TAVIStreamInfo;
+
+ { TAVIStreamInfoW record }
+
+ TAVIStreamInfoW = record
+ fccType,
+ fccHandler,
+ dwFlags, // Contains AVITF_* flags
+ dwCaps: DWORD;
+ wPriority,
+ wLanguage: WORD;
+ dwScale,
+ dwRate, // dwRate / dwScale == samples/second
+ dwStart,
+ dwLength, // In units above...
+ dwInitialFrames,
+ dwSuggestedBufferSize,
+ dwQuality,
+ dwSampleSize: DWORD;
+ rcFrame: TRect;
+ dwEditCount,
+ dwFormatChangeCount: DWORD;
+ szName: array[0..63] of WideChar;
+ end;
+
+ PAVIStream = pointer;
+ PAVIFile = pointer;
+ TAVIStreamList = array[0..0] of PAVIStream;
+ PAVIStreamList = ^TAVIStreamList;
+ TAVISaveCallback = function (nPercent: integer): LONG; stdcall;
+
+ TAVICompressOptions = packed record
+ fccType : DWORD;
+ fccHandler : DWORD;
+ dwKeyFrameEvery : DWORD;
+ dwQuality : DWORD;
+ dwBytesPerSecond : DWORD;
+ dwFlags : DWORD;
+ lpFormat : pointer;
+ cbFormat : DWORD;
+ lpParms : pointer;
+ cbParms : DWORD;
+ dwInterleaveEvery : DWORD;
+ end;
+ PAVICompressOptions = ^TAVICompressOptions;
+
+const
+ ICMF_CHOOSE_KEYFRAME = $0001; // show KeyFrame Every box
+ ICMF_CHOOSE_DATARATE = $0002; // show DataRate box
+ ICMF_CHOOSE_PREVIEW = $0004; // allow expanded preview dialog
+
+// Palette change data record
+const
+ RIFF_PaletteChange: DWORD = 1668293411;
+type
+ TAVIPalChange = packed record
+ bFirstEntry : byte;
+ bNumEntries : byte;
+ wFlags : WORD;
+ peNew : array[byte] of TPaletteEntry;
+ end;
+ PAVIPalChange = ^TAVIPalChange;
+
+ APAVISTREAM = array[0..1] of PAVISTREAM;
+ APAVICompressOptions = array[0..1] of PAVICompressOptions;
+ PAPAVICompressOptions = ^APAVICompressOptions;
+
+procedure AVIFileInit; stdcall;
+procedure AVIFileExit; stdcall;
+function AVIFileOpen(var ppfile: PAVIFile; szFile: PChar; uMode: UINT; lpHandler: pointer): HResult; stdcall;
+function AVIFileCreateStream(pfile: PAVIFile; var ppavi: PAVISTREAM; var psi: TAVIStreamInfo): HResult; stdcall;
+function AVIStreamSetFormat(pavi: PAVIStream; lPos: LONG; lpFormat: pointer; cbFormat: LONG): HResult; stdcall;
+function AVIStreamReadFormat(pavi: PAVIStream; lPos: LONG; lpFormat: pointer; var cbFormat: LONG): HResult; stdcall;
+function AVIStreamWrite(pavi: PAVIStream; lStart, lSamples: LONG; lpBuffer: pointer; cbBuffer: LONG; dwFlags: DWORD; var plSampWritten: LONG; var plBytesWritten: LONG): HResult; stdcall;
+function AVIStreamRelease(pavi: PAVISTREAM): ULONG; stdcall;
+function AVIFileRelease(pfile: PAVIFile): ULONG; stdcall;
+function AVIFileGetStream(pfile: PAVIFile; var ppavi: PAVISTREAM; fccType: DWORD; lParam: LONG): HResult; stdcall;
+function CreateEditableStream(var ppsEditable: PAVISTREAM; psSource: PAVISTREAM): HResult; stdcall;
+function AVISaveV(szFile: PChar; pclsidHandler: PCLSID; lpfnCallback: TAVISaveCallback;
+ nStreams: integer; pavi: APAVISTREAM; lpOptions: APAVICompressOptions): HResult; stdcall;
+function AVISaveOptions(hwnd: HWND; uiFlags: UINT; nStreams: integer;
+ ppavi: APAVISTREAM; plpOptions: PAPAVICOMPRESSOPTIONS): Boolean; stdcall; external 'avifil32.dll';
+function AVIMakeCompressedStream(var ppaviCompressed: PAVISTREAM;
+ ppaviSource: PAVISTREAM; plpOptions: APAVICompressOptions;
+ pclsidHandler: PCLSID): HResult; stdcall; external 'avifil32.dll';
+
+const
+ AVIERR_OK = 0;
+
+ AVIIF_LIST = $01;
+ AVIIF_TWOCC = $02;
+ AVIIF_KEYFRAME = $10;
+
+ streamtypeVIDEO = $73646976; // DWORD( 'v', 'i', 'd', 's' )
+ streamtypeAUDIO = $73647561; // DWORD( 'a', 'u', 'd', 's' )
+
+
+type
+ TPixelFormat = (pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit,
+ pf24bit, pf32bit, pfCustom);
+
+type
+ TAviWriter = class(TComponent)
+ private
+ TempFileName : string;
+ pFile : PAVIFile;
+ fHeight : integer;
+ fWidth : integer;
+ fStretch : boolean;
+ fFrameTime : integer;
+ fFileName : string;
+ fWavFileName : string;
+ VideoStream : PAVISTREAM;
+ AudioStream : PAVISTREAM;
+
+ Pstream : PAVISTREAM;
+ StreamInfo : TAVIStreamInfo;
+
+ CompOptions : APAVICompressOptions;
+ cmp1, cmp2 : TAviCompressOptions;
+
+ procedure AddVideo;
+ procedure AddAudio;
+ procedure InternalGetDIBSizes(Bitmap: HBITMAP; var InfoHeaderSize: Integer;
+ var ImageSize: longInt; PixelFormat: TPixelFormat);
+ function InternalGetDIB(Bitmap: HBITMAP; Palette: HPALETTE;
+ var BitmapInfo; var Bits; PixelFormat: TPixelFormat): Boolean;
+ procedure InitializeBitmapInfoHeader(Bitmap: HBITMAP; var Info: TBitmapInfoHeader;
+ PixelFormat: TPixelFormat);
+ procedure SetWavFileName(value : string);
+ { Private declarations }
+ protected
+ { Protected declarations }
+ public
+ Bitmaps : TList;
+ FramePos : Longint;
+ Prepared : Boolean;
+ fps : Integer;
+ constructor Create(AOwner : TComponent); override;
+ destructor Destroy; override;
+ procedure Write;
+ procedure Prepare;
+ procedure AddFrame(const DIB: TDIB);
+ procedure Finish;
+ { Public declarations }
+ published
+ property Height : integer read fHeight write fHeight;
+ property Width : integer read fWidth write fWidth;
+ property FrameTime: integer read fFrameTime write fFrameTime;
+ property Stretch : boolean read fStretch write fStretch;
+ property FileName : string read fFileName write fFileName;
+ property WavFileName : string read fWavFileName write SetWavFileName;
+ { Published declarations }
+ end;
+
+procedure Register;
+
+implementation
+
+uses
+ mainunit,
+ progressunit;
+
+function MAKEFOURCC(ch0, ch1, ch2, ch3: Char): Cardinal;
+begin
+ Result :=
+ (DWORD(BYTE(ch0))) or (DWORD(BYTE(ch1)) shl 8) or
+ (DWORD(BYTE(ch2)) shl 16) or (DWORD(BYTE(ch3)) shl 24 );
+end;
+
+constructor TAviWriter.Create(AOwner : TComponent);
+var
+ tempdir : string;
+ l : integer;
+begin
+ inherited Create(AOwner);
+ fHeight := screen.height div 10;
+ fWidth := screen.width div 10;
+ fFrameTime := 1000;
+ fStretch := true;
+ fFileName := '';
+ Bitmaps := TList.create;
+ AVIFileInit;
+
+ setlength(tempdir,MAX_PATH + 1);
+ l := GetTempPath(MAX_PATH,pchar(tempdir));
+ setlength(tempdir,l);
+ if copy(tempdir,length(tempdir),1) <> '\'
+ then tempdir := tempdir + '\';
+ TempFileName := tempdir + '~AWTemp.avi';
+ Prepared := False;
+
+ CompOptions[0] := @cmp1;
+ CompOptions[1] := @cmp2;
+
+ FillChar(cmp1, Sizeof(cmp1), 0);
+ FillChar(cmp2, Sizeof(cmp1), 0);
+
+ cmp1.fccType := streamtypeVIDEO;
+ cmp1.fccHandler := MakeFourCC('m','j','p','g');
+// cmp1.dwQuality :=
+
+ fps := 25;
+end;
+
+destructor TAviWriter.Destroy;
+begin
+ Bitmaps.free;
+ AviFileExit;
+ inherited;
+end;
+
+procedure TAviWriter.Write;
+var
+ Bitmap : TBitmap;
+ ExtBitmap : TBitmap;
+ nstreams : integer;
+ i : integer;
+ Streams : APAVISTREAM;
+ CompOptions : APAVICompressOptions;
+ AVIERR : integer;
+ refcount : integer;
+begin
+ AudioStream := nil;
+ VideoStream := nil;
+
+ // If no bitmaps are on the list, raise an error.
+ if Bitmaps.count < 1 then
+ raise Exception.Create('No bitmaps on the Bitmaps list');
+
+ // If anything on the Bitmaps TList is not a bitmap, raise
+ // an error.
+ for i := 0 to Bitmaps.count - 1 do begin
+ ExtBitmap := Bitmaps[i];
+ if not(ExtBitmap is TBitmap)
+ then raise Exception.Create('Bitmaps[' + inttostr(i)
+ + '] is not a TBitmap');
+ end;
+
+ try
+ AddVideo;
+
+ if WavFileName <> ''
+ then AddAudio;
+
+ // Create the output file.
+ if WavFileName <> ''
+ then nstreams := 2
+ else nstreams := 1;
+
+ Streams[0] := VideoStream;
+ Streams[1] := AudioStream;
+ CompOptions[0] := nil;
+ CompOptions[1] := nil;
+
+ AVIERR := AVISaveV(pchar(FileName),
+ nil, // File handler
+ nil, // Callback
+ nStreams, // Number of streams
Streams,
CompOptions); // Compress options for VideoStream
if AVIERR <> AVIERR_OK then
raise Exception.Create('Unable to write output file');
finally
if assigned(VideoStream)
then AviStreamRelease(VideoStream);
if assigned(AudioStream)
+ then AviStreamRelease(AudioStream);
try
repeat
+ refcount := AviFileRelease(pFile);
+ until refcount <= 0;
+ except
+ end;
+
+ DeleteFile(TempFileName);
+ end;
+end;
+
+procedure TAviWriter.AddVideo;
+var
+ Pstream : PAVISTREAM;
+ StreamInfo : TAVIStreamInfo;
+ BitmapInfo : PBitmapInfoHeader;
+ BitmapInfoSize : Integer;
+ BitmapSize : longInt;
+ BitmapBits : pointer;
+ Bitmap : TBitmap;
+ ExtBitmap : TBitmap;
+ Samples_Written : LONG;
+ Bytes_Written : LONG;
+ AVIERR : integer;
+ i : integer;
+ startpos : DWORD;
+ len : DWORD;
+begin
+
+ // Open AVI file for write
+ if (AVIFileOpen(pFile, pchar(TempFileName),
+ OF_WRITE or OF_CREATE OR OF_SHARE_EXCLUSIVE, nil)
+ <> AVIERR_OK)
+ then
+ raise Exception.Create('Failed to create AVI video work file');
+
+ // Allocate the bitmap to which the bitmaps on the Bitmaps Tlist
+ // will be copied.
+ Bitmap := TBitmap.create;
+ Bitmap.Height := self.Height;
+ Bitmap.Width := self.Width;
+
+ // Write the stream header.
+ try
+ FillChar(StreamInfo, sizeof(StreamInfo), 0);
+
+ // Set frame rate and scale
+ StreamInfo.dwRate := 1000;
+ StreamInfo.dwScale := fFrameTime;
+ StreamInfo.fccType := streamtypeVIDEO;
+ StreamInfo.fccHandler := 0;
+ StreamInfo.dwFlags := 0;
+ StreamInfo.dwSuggestedBufferSize := 0;
+ StreamInfo.rcFrame.Right := self.width;
+ StreamInfo.rcFrame.Bottom := self.height;
+
+ // Open AVI data stream
+ if (AVIFileCreateStream(pFile, pStream, StreamInfo) <> AVIERR_OK) then
+ raise Exception.Create('Failed to create AVI video stream');
+
+ try
+ // Write the bitmaps to the stream.
+ for i := 0 to Bitmaps.count - 1 do begin
+ try
+ BitmapInfo := nil;
+ BitmapBits := nil;
+
+ // Copy the bitmap from the list to the AVI bitmap,
+ // stretching if desired. If the caller elects not to
+ // stretch, use the first pixel in the bitmap as a
+ // background color in case either the height or
+ // width of the source is smaller than the output.
+ // If Draw fails, do a StretchDraw.
+ ExtBitmap := Bitmaps[i];
+ if fStretch
+ then Bitmap.Canvas.StretchDraw
+ (Rect(0,0,self.width,self.height),ExtBitmap)
+ else try
+ with Bitmap.Canvas do begin
+ Brush.Color := ExtBitmap.Canvas.Pixels[0,0];
+ Brush.Style := bsSolid;
+ FillRect(Rect(0,0,Bitmap.Width,Bitmap.Height));
+ Draw(0,0,ExtBitmap);
+ end;
+ except
+ Bitmap.Canvas.StretchDraw
+ (Rect(0,0,self.width,self.height),ExtBitmap);
+ end;
+
+ // Determine size of DIB
+ InternalGetDIBSizes(Bitmap.Handle, BitmapInfoSize, BitmapSize, pf8bit);
+ if (BitmapInfoSize = 0) then
+ raise Exception.Create('Failed to retrieve bitmap info');
+
+ // Get DIB header and pixel buffers
+ GetMem(BitmapInfo, BitmapInfoSize);
+ GetMem(BitmapBits, BitmapSize);
+ InternalGetDIB
+ (Bitmap.Handle, 0, BitmapInfo^, BitmapBits^, pf8bit);
+
+ // On the first time through, set the stream format.
+ if i = 0 then
+ if (AVIStreamSetFormat(pStream, 0, BitmapInfo, BitmapInfoSize) <> AVIERR_OK) then
+ raise Exception.Create('Failed to set AVI stream format');
+
+ // Write frame to the video stream
+ AVIERR :=
+ AVIStreamWrite(pStream, i, 1, BitmapBits, BitmapSize, AVIIF_KEYFRAME,
+ Samples_Written, Bytes_Written);
+ if AVIERR <> AVIERR_OK then
+ raise Exception.Create
+ ('Failed to add frame to AVI. Err='
+ + inttohex(AVIERR,8));
+ finally
+ if (BitmapInfo <> nil) then
+ FreeMem(BitmapInfo);
+ if (BitmapBits <> nil) then
+ FreeMem(BitmapBits);
+ end;
+ end;
+
+ // Create the editable VideoStream from pStream.
+ if CreateEditableStream(VideoStream,pStream) <> AVIERR_OK then
+ raise Exception.Create
+ ('Could not create Video Stream');
+ finally
+ AviStreamRelease(pStream);
+ end;
+
+ finally
+ Bitmap.free;
+ end;
+end;
+
+procedure TAviWriter.AddAudio;
+var
+ InputFile : PAVIFILE;
+ hr : integer;
+ InputStream : PAVIStream;
+ avisClip : TAVISTREAMINFO;
+ l, selstart : DWORD;
+ pastecode : integer;
+begin
+ // Open the audio file.
+ hr := AVIFileOpen(InputFile, pchar(WavFileName),OF_READ, nil);
+ case hr of
+ 0: ;
+ AVIERR_BADFORMAT : raise Exception.Create('The file could not be read, indicating a corrupt file or an unrecognized format.');
+ AVIERR_MEMORY : raise Exception.Create('The file could not be opened because of insufficient memory.');
+ AVIERR_FILEREAD : raise Exception.Create('A disk error occurred while reading the audio file.');
+ AVIERR_FILEOPEN : raise Exception.Create('A disk error occurred while opening the audio file.');
+ REGDB_E_CLASSNOTREG : raise Exception.Create('According to the registry, the type of audio file specified in AVIFileOpen does not have a handler to process it.');
+ else raise Exception.Create('Unknown error opening audio file');
+ end;
+
+ // Open the audio stream.
+ try
+ if (AVIFileGetStream(InputFile, InputStream, 0, 0) <> AVIERR_OK) then
+ raise Exception.Create('Unable to get audio stream');
+
+ try
+ // Create AudioStream as a copy of InputStream
+ if (CreateEditableStream(AudioStream,InputStream) <> AVIERR_OK) then
+ raise Exception.Create('Failed to create editable AVI audio stream');
+ finally
+ AviStreamRelease(InputStream);
+ end;
+
+ finally
+ AviFileRelease(InputFile);
+ end;
+end;
+
+// --------------
+// InternalGetDIB
+// --------------
+// Converts a bitmap to a DIB of a specified PixelFormat.
+//
+// Parameters:
+// Bitmap The handle of the source bitmap.
+// Pal The handle of the source palette.
+// BitmapInfo The buffer that will receive the DIB's TBitmapInfo structure.
+// A buffer of sufficient size must have been allocated prior to
+// calling this function.
+// Bits The buffer that will receive the DIB's pixel data.
+// A buffer of sufficient size must have been allocated prior to
+// calling this function.
+// PixelFormat The pixel format of the destination DIB.
+//
+// Returns:
+// True on success, False on failure.
+//
+// Note: The InternalGetDIBSizes function can be used to calculate the
+// nescessary sizes of the BitmapInfo and Bits buffers.
+//
+function TAviWriter.InternalGetDIB(Bitmap: HBITMAP; Palette: HPALETTE;
+ var BitmapInfo; var Bits; PixelFormat: TPixelFormat): Boolean;
+// From graphics.pas, "optimized" for our use
+var
+ OldPal : HPALETTE;
+ DC : HDC;
+begin
+ InitializeBitmapInfoHeader(Bitmap, TBitmapInfoHeader(BitmapInfo), PixelFormat);
+ OldPal := 0;
+ DC := CreateCompatibleDC(0);
+ try
+ if (Palette <> 0) then
+ begin
+ OldPal := SelectPalette(DC, Palette, False);
+ RealizePalette(DC);
+ end;
+ Result := (GetDIBits(DC, Bitmap, 0, abs(TBitmapInfoHeader(BitmapInfo).biHeight),
+ @Bits, TBitmapInfo(BitmapInfo), DIB_RGB_COLORS) <> 0);
+ finally
+ if (OldPal <> 0) then
+ SelectPalette(DC, OldPal, False);
+ DeleteDC(DC);
+ end;
+end;
+
+
+// -------------------
+// InternalGetDIBSizes
+// -------------------
+// Calculates the buffer sizes nescessary for convertion of a bitmap to a DIB
+// of a specified PixelFormat.
+// See the GetDIBSizes API function for more info.
+//
+// Parameters:
+// Bitmap The handle of the source bitmap.
+// InfoHeaderSize
+// The returned size of a buffer that will receive the DIB's
+// TBitmapInfo structure.
+// ImageSize The returned size of a buffer that will receive the DIB's
+// pixel data.
+// PixelFormat The pixel format of the destination DIB.
+//
+procedure TAviWriter.InternalGetDIBSizes(Bitmap: HBITMAP; var InfoHeaderSize: Integer;
+ var ImageSize: longInt; PixelFormat: TPixelFormat);
+// From graphics.pas, "optimized" for our use
+var
+ Info : TBitmapInfoHeader;
+begin
+ InitializeBitmapInfoHeader(Bitmap, Info, PixelFormat);
+ // Check for palette device format
+ if (Info.biBitCount > 8) then
+ begin
+ // Header but no palette
+ InfoHeaderSize := SizeOf(TBitmapInfoHeader);
+ if ((Info.biCompression and BI_BITFIELDS) <> 0) then
+ Inc(InfoHeaderSize, 12);
+ end else
+ // Header and palette
+ InfoHeaderSize := SizeOf(TBitmapInfoHeader) + SizeOf(TRGBQuad) * (1 shl Info.biBitCount);
+ ImageSize := Info.biSizeImage;
+end;
+
+// --------------------------
+// InitializeBitmapInfoHeader
+// --------------------------
+// Fills a TBitmapInfoHeader with the values of a bitmap when converted to a
+// DIB of a specified PixelFormat.
+//
+// Parameters:
+// Bitmap The handle of the source bitmap.
+// Info The TBitmapInfoHeader buffer that will receive the values.
+// PixelFormat The pixel format of the destination DIB.
+//
+{$IFDEF BAD_STACK_ALIGNMENT}
+ // Disable optimization to circumvent optimizer bug...
+ {$IFOPT O+}
+ {$DEFINE O_PLUS}
+ {$O-}
+ {$ENDIF}
+{$ENDIF}
+
+
+procedure TAviWriter.InitializeBitmapInfoHeader(Bitmap: HBITMAP; var Info: TBitmapInfoHeader;
+ PixelFormat: TPixelFormat);
+// From graphics.pas, "optimized" for our use
+var
+ DIB : TDIBSection;
+ Bytes : Integer;
+ function AlignBit(Bits, BitsPerPixel, Alignment: Cardinal): Cardinal;
+ begin
+ Dec(Alignment);
+ Result := ((Bits * BitsPerPixel) + Alignment) and not Alignment;
+ Result := Result SHR 3;
+ end;
+begin
+ DIB.dsbmih.biSize := 0;
+ Bytes := GetObject(Bitmap, SizeOf(DIB), @DIB);
+ if (Bytes = 0) then
+ raise Exception.Create('Invalid bitmap');
+// Error(sInvalidBitmap);
+
+ if (Bytes >= (sizeof(DIB.dsbm) + sizeof(DIB.dsbmih))) and
+ (DIB.dsbmih.biSize >= sizeof(DIB.dsbmih)) then
+ Info := DIB.dsbmih
+ else
+ begin
+ FillChar(Info, sizeof(Info), 0);
+ with Info, DIB.dsbm do
+ begin
+ biSize := SizeOf(Info);
+ biWidth := bmWidth;
+ biHeight := bmHeight;
+ end;
+ end;
+ case PixelFormat of
+ pf1bit: Info.biBitCount := 1;
+ pf4bit: Info.biBitCount := 4;
+ pf8bit: Info.biBitCount := 8;
+ pf24bit: Info.biBitCount := 24;
+ else
+// Error(sInvalidPixelFormat);
+ raise Exception.Create('Invalid pixel foramt');
+ // Info.biBitCount := DIB.dsbm.bmBitsPixel * DIB.dsbm.bmPlanes;
+ end;
+ Info.biPlanes := 1;
+ Info.biCompression := BI_RGB; // Always return data in RGB format
+ Info.biSizeImage := AlignBit(Info.biWidth, Info.biBitCount, 32) * Cardinal(abs(Info.biHeight));
+end;
+{$IFDEF O_PLUS}
+ {$O+}
+ {$UNDEF O_PLUS}
+{$ENDIF}
+
+procedure TAviWriter.SetWavFileName(value : string);
+begin
+ if lowercase(fWavFileName) <> lowercase(value)
+ then if lowercase(ExtractFileExt(value)) <> '.wav'
+ then raise Exception.Create('WavFileName must name a file '
+ + 'with the .wav extension')
+ else fWavFileName := value;
+end;
+
+
+procedure Register;
+begin
+ RegisterComponents('Labrz', [TAviWriter]);
+end;
+
+ procedure AVIFileInit; stdcall; external 'avifil32.dll' name 'AVIFileInit';
+ procedure AVIFileExit; stdcall; external 'avifil32.dll' name 'AVIFileExit';
+ function AVIFileOpen; external 'avifil32.dll' name 'AVIFileOpenA';
+ function AVIFileCreateStream; external 'avifil32.dll' name 'AVIFileCreateStreamA';
+ function AVIStreamSetFormat; external 'avifil32.dll' name 'AVIStreamSetFormat';
+ function AVIStreamReadFormat; external 'avifil32.dll' name 'AVIStreamReadFormat';
+ function AVIStreamWrite; external 'avifil32.dll' name 'AVIStreamWrite';
+ function AVIStreamRelease; external 'avifil32.dll' name 'AVIStreamRelease';
+ function AVIFileRelease; external 'avifil32.dll' name 'AVIFileRelease';
+ function AVIFileGetStream; external 'avifil32.dll' name 'AVIFileGetStream';
+ function CreateEditableStream; external 'avifil32.dll' name 'CreateEditableStream';
+ function AVISaveV; external 'avifil32.dll' name 'AVISaveV';
+
+procedure TAviWriter.Prepare;
+begin
+ if Prepared then begin
+ main.Post('Finishing previous file..');
+ Finish;
+ end;
+
+ AudioStream := nil;
+ VideoStream := nil;
+
+ if (AVIFileOpen(pFile, pchar(TempFileName),
+ OF_WRITE or OF_CREATE or OF_SHARE_EXCLUSIVE, nil) <> AVIERR_OK) then
+ raise Exception.Create('Failed to create AVI video work file');
+
+ FillChar(StreamInfo, sizeof(StreamInfo), 0);
+
+ // Set frame rate and scale
+ StreamInfo.dwRate := fps*1000;
+ StreamInfo.dwScale := fFrameTime;
+ StreamInfo.fccType := streamtypeVIDEO;
+ StreamInfo.fccHandler := 0;
+ StreamInfo.dwFlags := 0;
+ StreamInfo.dwSuggestedBufferSize := 0;
+ StreamInfo.rcFrame.Right := self.width;
+ StreamInfo.rcFrame.Bottom := self.height;
+
+ // Open AVI data stream
+ if (AVIFileCreateStream(pFile, pStream, StreamInfo) <> AVIERR_OK) then
+ raise Exception.Create('Failed to create AVI video stream');
+
+ FramePos := 0;
+ Prepared := True;
+end;
+
+procedure TAviWriter.AddFrame(const DIB: TDIB);
+var
+ Samples_Written : LONG;
+ Bytes_Written : LONG;
+ AVIERR : integer;
+begin
+ if not Prepared then begin
+ main.Post('fs.avi: internal error, not prepared to add frame.');
+ Exit;
+ end;
+
+ // On the first time through, set the stream format.
+ if FramePos = 0 then begin
+ if (AVIStreamSetFormat(pStream, 0, DIB.BitmapInfo, DIB.BitmapInfoSize) <> AVIERR_OK) then
+ raise Exception.Create('Failed to set AVI stream format');
+ end;
+
+ // Write frame to the video stream
+ AVIERR := AVIStreamWrite(pStream, FramePos, 1, DIB.PBits, DIB.Size, AVIIF_KEYFRAME,
+ Samples_Written, Bytes_Written);
+
+ Inc(FramePos);
+
+ if AVIERR <> AVIERR_OK then
+ raise Exception.Create('Failed to add frame to AVI. Err='+
+ inttohex(AVIERR,8));
+end;
+
+function avisavecallback(nPercent: UINT): ULONG; stdcall;
+begin
+// Write('fs.avi: '+IntToStr(nPercent)+'%'+#13);
+ Progress.pb1.Position := nPercent;
+ Result := AVIERR_OK;
+end;
+
+procedure TAviWriter.Finish;
+var
+ nstreams: Integer;
+ Streams : APAVISTREAM;
+ AVIERR : integer;
+ refcount : integer;
+begin
+ if not Prepared then begin
+ main.Post('fs.avi: nothing to write.');
+ Exit;
+ end;
+
+ if CreateEditableStream(VideoStream,pStream) <> AVIERR_OK then
+ raise Exception.Create('Could not create Video Stream');
+
+ AviStreamRelease(pStream);
+
+ nstreams := 1;
+
+ Streams[0] := VideoStream;
+ Streams[1] := nil;//AudioStream;
+
+ if AVISaveOptions(0, ICMF_CHOOSE_PREVIEW, nStreams, Streams, @CompOptions) then begin
+
+ Progress.Show;
+
+ AVIERR := AVISaveV(pchar(FileName),
+ nil, // File handler
+ @avisavecallback, // Callback
+ nStreams, // Number of streams
Streams,
CompOptions); // Compress options for VideoStream
Progress.Hide;
// I get some strange error but the file is always ok so... screw it
{
if AVIERR <> AVIERR_OK then
raise Exception.Create('Error on write - check output file.');
}
if assigned(VideoStream)
then AviStreamRelease(VideoStream);
if assigned(AudioStream)
+ then AviStreamRelease(AudioStream);
try
repeat
+ refcount := AviFileRelease(pFile);
+ until refcount <= 0;
+ except
+ end;
+
+ DeleteFile(TempFileName);
+
+ Prepared := False;
+ end;
+end;
+
+end.
+
diff --git a/Source/GPL.txt b/Source/GPL.txt index 14db8fc..03ccb06 100644 --- a/Source/GPL.txt +++ b/Source/GPL.txt @@ -1,340 +1,340 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. + GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Source/README.txt b/Source/README.txt index dd13ea8..056706d 100644 --- a/Source/README.txt +++ b/Source/README.txt @@ -1,43 +1,43 @@ -To compile: - - -- Install DelphiX by Hiroyuki Hori, http://www.yks.ne.jp/~hori/ <hori@ingjapan.ne.jp> - -The above link doesn't always work, try these: - -http://turbo.gamedev.net/DelphiX2000_0717a.zip -http://turbo.gamedev.net/delphix.asp - - -- Install FastLib by G-Soft, http://gfody.com <gfody@home.com> - - -- Install TScanDir in Filez.pas (in this directory). - - -- Correct your Search path and compile Framestein.dpr! - - -- Framestein needs ijl15.dll (included in Framestein-directory) to load/save jpegs - and to send jpeg-compressed frames thru network. - - ---- note to versions >= 0.27 --- - -The photoshop filter host functionality is based on commercial code from http://www.case2000.com. -Due to my modifications the original component won't compile with Framestein and -I don't have the permission to release my modified version. - -To compile Fs without the PSHost, ignore errors on C2PhotoShopHost, and comment out -the implementation in pshostunit.pas. - -I'm planning a .dll of my version of the component to rid of this problem. -Mail me for info. - - ---- versions > 0.31: - -Framestein.dpr is the Delphi-project to use. FramesteinLib.dpr is an experimental -project to compile Framestein as a Pure Data library, loaded with the -lib-parameter. -This seems to give a better response, but still crashes when quitting Pd, so no binary -is yet distributed. +To compile:
+
+
+- Install DelphiX by Hiroyuki Hori, http://www.yks.ne.jp/~hori/ <hori@ingjapan.ne.jp>
+
+The above link doesn't always work, try these:
+
+http://turbo.gamedev.net/DelphiX2000_0717a.zip
+http://turbo.gamedev.net/delphix.asp
+
+
+- Install FastLib by G-Soft, http://gfody.com <gfody@home.com>
+
+
+- Install TScanDir in Filez.pas (in this directory).
+
+
+- Correct your Search path and compile Framestein.dpr!
+
+
+- Framestein needs ijl15.dll (included in Framestein-directory) to load/save jpegs
+ and to send jpeg-compressed frames thru network.
+
+
+--- note to versions >= 0.27 ---
+
+The photoshop filter host functionality is based on commercial code from http://www.case2000.com.
+Due to my modifications the original component won't compile with Framestein and
+I don't have the permission to release my modified version.
+
+To compile Fs without the PSHost, ignore errors on C2PhotoShopHost, and comment out
+the implementation in pshostunit.pas.
+
+I'm planning a .dll of my version of the component to rid of this problem.
+Mail me for info.
+
+
+--- versions > 0.31:
+
+Framestein.dpr is the Delphi-project to use. FramesteinLib.dpr is an experimental
+project to compile Framestein as a Pure Data library, loaded with the -lib-parameter.
+This seems to give a better response, but still crashes when quitting Pd, so no binary
+is yet distributed.
diff --git a/Source/Strz.pas b/Source/Strz.pas index 85ad4a7..12cbf9a 100644 --- a/Source/Strz.pas +++ b/Source/Strz.pas @@ -1,182 +1,182 @@ -unit Strz; - -interface - -uses - Windows; - -type - CharSet = set of Char; - -// General -function MyStrToInt(const S: String): Integer; // some special checking, no exceptions -function MyStrToFloat(const S: String): Extended; // some special checking, no exceptions -function StrToRect(const S: String): TRect; -function Long2Str(L : LongInt) : string; -function SearchAndReplace( S, Old, New:String ):String; -function WordCount(S : string; WordDelims : CharSet) : Integer; - {-Given a set of word delimiters, return number of words in S} -function ExtractWord(N : Integer; S : string; WordDelims : CharSet) : string; - {-Given a set of word delimiters, return the N'th word in S} - -// Filez -function VerifyBackSlash( const FileName:String ):String; - -implementation - -uses - Classes, SysUtils; - -function StrToRect(const S: String): TRect; -var - i: Integer; -begin - Result := Rect(0, 0, 0, 0); - if S='' then Exit; - i := WordCount(S, [' ']); - Result.Left := MyStrToInt(ExtractWord(1, S, [' '])); - if i>1 then - Result.Top := MyStrToInt(ExtractWord(2, S, [' '])); - if i>2 then - Result.Right := MyStrToInt(ExtractWord(3, S, [' '])); - if i>3 then - Result.Bottom := MyStrToInt(ExtractWord(4, S, [' '])); -end; - -function MyStrToInt(const S: String): Integer; -var - St: String; -begin - Result := 0; - if (S='') or (S='-') or (S='0') then Exit; - try - Result := StrToInt(S); - except - St := S; - while Pos('.', St)>0 do - St[Pos('.', St)] := ','; - try Result := Trunc(StrToFloat(St)); except end; - end; -end; - -function MyStrToFloat(const S: String): Extended; -var - St: String; - i: Integer; -begin - Result := 0; - if (S='') or (S='-') or (S='0') then Exit; - St := S; - i := Pos('.', St); - if i>0 then - St[i] := ','; - try - Result := StrToFloat(St); - except - end; -end; - -function VerifyBackSlash( const FileName:String ):String; -begin - if FileName[Length(FileName)]='\' then - Result := FileName - else - Result := FileName + '\'; -end; - -function Long2Str(L : LongInt) : string; - {-Convert a long/word/integer/byte/shortint to a string} -var - S : string; -begin - Str(L, S); - Long2Str := S; -end; - -{-----} - - function WordCount(S : string; WordDelims : CharSet) : Integer; - {-Given a set of word delimiters, return number of words in S} - var - {I,} Count : Integer; {!!.12} - I, SLen : Word; {!!.12} - begin - Count := 0; - I := 1; - SLen:=Length(S); - - while I <= SLen do begin - {skip over delimiters} - while (I <= SLen) and (S[I] in WordDelims) do - Inc(I); - - {if we're not beyond end of S, we're at the start of a word} - if I <= SLen then - Inc(Count); - - {find the end of the current word} - while (I <= SLen) and not(S[I] in WordDelims) do - Inc(I); - end; - - WordCount := Count; - end; - - function ExtractWord(N : Integer; S : string; WordDelims : CharSet) : string; - {-Given a set of word delimiters, return the N'th word in S} - var - I : Word; {!!.12} - Count, Len : Integer; - SLen : Longint; - Str : String; - begin - Count := 0; - I := 1; - Len := 0; - Str := ''; - SLen := Length(S); - -// ExtractWord[0] := #0; - - while (I <= SLen) and (Count <> N) do begin - {skip over delimiters} - while (I <= SLen) and (S[I] in WordDelims) do - Inc(I); - - {if we're not beyond end of S, we're at the start of a word} - if I <= SLen then - Inc(Count); - - {find the end of the current word} - while (I <= SLen) and not(S[I] in WordDelims) do begin - {if this is the N'th word, add the I'th character to Tmp} - if Count = N then begin - Inc(Len); - SetLength(Str, Len); -// ExtractWord[0] := Char(Len); - Str[Len] := S[I]; -// ExtractWord[Len] := S[I]; - end; - - Inc(I); - end; - end; - ExtractWord := Str; - end; - -function SearchAndReplace( S, Old, New:String ):String; -var - Ts : String; - i : Integer; -begin - Ts := S; - i := Pos(Old, Ts); - while i>0 do begin - Delete(Ts, i, Length(Old)); - Insert(New, Ts, i); - i := Pos(Old, Ts); - end; - SearchAndReplace := Ts; -end; - -end. +unit Strz;
+
+interface
+
+uses
+ Windows;
+
+type
+ CharSet = set of Char;
+
+// General
+function MyStrToInt(const S: String): Integer; // some special checking, no exceptions
+function MyStrToFloat(const S: String): Extended; // some special checking, no exceptions
+function StrToRect(const S: String): TRect;
+function Long2Str(L : LongInt) : string;
+function SearchAndReplace( S, Old, New:String ):String;
+function WordCount(S : string; WordDelims : CharSet) : Integer;
+ {-Given a set of word delimiters, return number of words in S}
+function ExtractWord(N : Integer; S : string; WordDelims : CharSet) : string;
+ {-Given a set of word delimiters, return the N'th word in S}
+
+// Filez
+function VerifyBackSlash( const FileName:String ):String;
+
+implementation
+
+uses
+ Classes, SysUtils;
+
+function StrToRect(const S: String): TRect;
+var
+ i: Integer;
+begin
+ Result := Rect(0, 0, 0, 0);
+ if S='' then Exit;
+ i := WordCount(S, [' ']);
+ Result.Left := MyStrToInt(ExtractWord(1, S, [' ']));
+ if i>1 then
+ Result.Top := MyStrToInt(ExtractWord(2, S, [' ']));
+ if i>2 then
+ Result.Right := MyStrToInt(ExtractWord(3, S, [' ']));
+ if i>3 then
+ Result.Bottom := MyStrToInt(ExtractWord(4, S, [' ']));
+end;
+
+function MyStrToInt(const S: String): Integer;
+var
+ St: String;
+begin
+ Result := 0;
+ if (S='') or (S='-') or (S='0') then Exit;
+ try
+ Result := StrToInt(S);
+ except
+ St := S;
+ while Pos('.', St)>0 do
+ St[Pos('.', St)] := ',';
+ try Result := Trunc(StrToFloat(St)); except end;
+ end;
+end;
+
+function MyStrToFloat(const S: String): Extended;
+var
+ St: String;
+ i: Integer;
+begin
+ Result := 0;
+ if (S='') or (S='-') or (S='0') then Exit;
+ St := S;
+ i := Pos('.', St);
+ if i>0 then
+ St[i] := ',';
+ try
+ Result := StrToFloat(St);
+ except
+ end;
+end;
+
+function VerifyBackSlash( const FileName:String ):String;
+begin
+ if FileName[Length(FileName)]='\' then
+ Result := FileName
+ else
+ Result := FileName + '\';
+end;
+
+function Long2Str(L : LongInt) : string;
+ {-Convert a long/word/integer/byte/shortint to a string}
+var
+ S : string;
+begin
+ Str(L, S);
+ Long2Str := S;
+end;
+
+{-----}
+
+ function WordCount(S : string; WordDelims : CharSet) : Integer;
+ {-Given a set of word delimiters, return number of words in S}
+ var
+ {I,} Count : Integer; {!!.12}
+ I, SLen : Word; {!!.12}
+ begin
+ Count := 0;
+ I := 1;
+ SLen:=Length(S);
+
+ while I <= SLen do begin
+ {skip over delimiters}
+ while (I <= SLen) and (S[I] in WordDelims) do
+ Inc(I);
+
+ {if we're not beyond end of S, we're at the start of a word}
+ if I <= SLen then
+ Inc(Count);
+
+ {find the end of the current word}
+ while (I <= SLen) and not(S[I] in WordDelims) do
+ Inc(I);
+ end;
+
+ WordCount := Count;
+ end;
+
+ function ExtractWord(N : Integer; S : string; WordDelims : CharSet) : string;
+ {-Given a set of word delimiters, return the N'th word in S}
+ var
+ I : Word; {!!.12}
+ Count, Len : Integer;
+ SLen : Longint;
+ Str : String;
+ begin
+ Count := 0;
+ I := 1;
+ Len := 0;
+ Str := '';
+ SLen := Length(S);
+
+// ExtractWord[0] := #0;
+
+ while (I <= SLen) and (Count <> N) do begin
+ {skip over delimiters}
+ while (I <= SLen) and (S[I] in WordDelims) do
+ Inc(I);
+
+ {if we're not beyond end of S, we're at the start of a word}
+ if I <= SLen then
+ Inc(Count);
+
+ {find the end of the current word}
+ while (I <= SLen) and not(S[I] in WordDelims) do begin
+ {if this is the N'th word, add the I'th character to Tmp}
+ if Count = N then begin
+ Inc(Len);
+ SetLength(Str, Len);
+// ExtractWord[0] := Char(Len);
+ Str[Len] := S[I];
+// ExtractWord[Len] := S[I];
+ end;
+
+ Inc(I);
+ end;
+ end;
+ ExtractWord := Str;
+ end;
+
+function SearchAndReplace( S, Old, New:String ):String;
+var
+ Ts : String;
+ i : Integer;
+begin
+ Ts := S;
+ i := Pos(Old, Ts);
+ while i>0 do begin
+ Delete(Ts, i, Length(Old));
+ Insert(New, Ts, i);
+ i := Pos(Old, Ts);
+ end;
+ SearchAndReplace := Ts;
+end;
+
+end.
diff --git a/Source/cleanup.bat b/Source/cleanup.bat index df7bec4..f1dcaa4 100755 --- a/Source/cleanup.bat +++ b/Source/cleanup.bat @@ -1,4 +1,4 @@ -@echo off -echo Cleaning up... - -del *.dcu +@echo off
+echo Cleaning up...
+
+del *.dcu
diff --git a/Source/configureunit.dfm b/Source/configureunit.dfm index a3baf5f..6bb97de 100644 --- a/Source/configureunit.dfm +++ b/Source/configureunit.dfm @@ -1,211 +1,211 @@ -object configure: Tconfigure - Left = 317 - Top = 185 - Width = 443 - Height = 351 - BorderWidth = 4 - Caption = 'Configuration' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object PageControl1: TPageControl - Left = 0 - Top = 0 - Width = 427 - Height = 275 - ActivePage = TSConnections - Align = alClient - TabOrder = 0 - object TSFolders: TTabSheet - Caption = 'Folders' - ImageIndex = 2 - TabVisible = False - object Label6: TLabel - Left = 16 - Top = 36 - Width = 83 - Height = 13 - Caption = 'Framestein folder:' - end - object EditFSFolder: TEdit - Left = 152 - Top = 32 - Width = 225 - Height = 21 - Ctl3D = True - ParentCtl3D = False - TabOrder = 0 - Text = 'E:\' - end - object Memo1: TMemo - Left = 16 - Top = 200 - Width = 389 - Height = 33 - BorderStyle = bsNone - Enabled = False - Lines.Strings = ( - - 'Choose the folder where Framestein will find its Plugins and Fil' + - 'ters.' - '') - ReadOnly = True - TabOrder = 1 - end - object DirectoryListBox1: TDirectoryListBox - Left = 152 - Top = 88 - Width = 225 - Height = 97 - ItemHeight = 16 - TabOrder = 2 - OnChange = DirectoryListBox1Change - end - object DriveComboBox1: TDriveComboBox - Left = 152 - Top = 64 - Width = 225 - Height = 19 - TabOrder = 3 - OnChange = DriveComboBox1Change - end - end - object TSConnections: TTabSheet - Caption = 'Connections' - object Label1: TLabel - Left = 16 - Top = 36 - Width = 114 - Height = 13 - Caption = 'Host running Pure Data:' - end - object Label2: TLabel - Left = 16 - Top = 60 - Width = 95 - Height = 13 - Caption = 'Listen to Pd on port:' - end - object Label3: TLabel - Left = 16 - Top = 84 - Width = 103 - Height = 13 - Caption = 'Pd is listening on port:' - end - object Label4: TLabel - Left = 16 - Top = 112 - Width = 385 - Height = 13 - Caption = - 'NOTE: if you change the default ports, you need to modify fs.mai' + - 'n.pd accordingly.' - end - object Label5: TLabel - Left = 16 - Top = 164 - Width = 194 - Height = 13 - Caption = 'Listen to Framestein connections on port:' - end - object EditPdHost: TEdit - Left = 152 - Top = 32 - Width = 225 - Height = 21 - Ctl3D = True - ParentCtl3D = False - TabOrder = 0 - Text = 'localhost' - end - object EditPdReceivePort: TEdit - Left = 152 - Top = 56 - Width = 225 - Height = 21 - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - Text = '6001' - end - object EditPdSendPort: TEdit - Left = 152 - Top = 80 - Width = 225 - Height = 21 - Ctl3D = True - ParentCtl3D = False - TabOrder = 2 - Text = '6002' - end - object EditFsPort: TEdit - Left = 224 - Top = 160 - Width = 153 - Height = 21 - Ctl3D = True - ParentCtl3D = False - TabOrder = 3 - Text = '6010' - end - object CBEnableFSConns: TCheckBox - Left = 224 - Top = 184 - Width = 97 - Height = 17 - Caption = 'Enable' - TabOrder = 4 - end - end - object TSGeneral: TTabSheet - Caption = 'General' - ImageIndex = 1 - object CBDockMain: TCheckBox - Left = 26 - Top = 36 - Width = 377 - Height = 17 - Caption = 'Dock main window to Pd on connect' - TabOrder = 0 - end - end - end - object Panel1: TPanel - Left = 0 - Top = 275 - Width = 427 - Height = 41 - Align = alBottom - BevelOuter = bvNone - TabOrder = 1 - object ButtonOk: TButton - Left = 344 - Top = 8 - Width = 75 - Height = 25 - Caption = 'Ok' - Default = True - TabOrder = 0 - OnClick = ButtonOkClick - end - object ButtonCancel: TButton - Left = 256 - Top = 8 - Width = 75 - Height = 25 - Cancel = True - Caption = 'Cancel' - TabOrder = 1 - OnClick = ButtonCancelClick - end - end -end +object configure: Tconfigure
+ Left = 317
+ Top = 185
+ Width = 443
+ Height = 351
+ BorderWidth = 4
+ Caption = 'Configuration'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object PageControl1: TPageControl
+ Left = 0
+ Top = 0
+ Width = 427
+ Height = 275
+ ActivePage = TSConnections
+ Align = alClient
+ TabOrder = 0
+ object TSFolders: TTabSheet
+ Caption = 'Folders'
+ ImageIndex = 2
+ TabVisible = False
+ object Label6: TLabel
+ Left = 16
+ Top = 36
+ Width = 83
+ Height = 13
+ Caption = 'Framestein folder:'
+ end
+ object EditFSFolder: TEdit
+ Left = 152
+ Top = 32
+ Width = 225
+ Height = 21
+ Ctl3D = True
+ ParentCtl3D = False
+ TabOrder = 0
+ Text = 'E:\'
+ end
+ object Memo1: TMemo
+ Left = 16
+ Top = 200
+ Width = 389
+ Height = 33
+ BorderStyle = bsNone
+ Enabled = False
+ Lines.Strings = (
+
+ 'Choose the folder where Framestein will find its Plugins and Fil' +
+ 'ters.'
+ '')
+ ReadOnly = True
+ TabOrder = 1
+ end
+ object DirectoryListBox1: TDirectoryListBox
+ Left = 152
+ Top = 88
+ Width = 225
+ Height = 97
+ ItemHeight = 16
+ TabOrder = 2
+ OnChange = DirectoryListBox1Change
+ end
+ object DriveComboBox1: TDriveComboBox
+ Left = 152
+ Top = 64
+ Width = 225
+ Height = 19
+ TabOrder = 3
+ OnChange = DriveComboBox1Change
+ end
+ end
+ object TSConnections: TTabSheet
+ Caption = 'Connections'
+ object Label1: TLabel
+ Left = 16
+ Top = 36
+ Width = 114
+ Height = 13
+ Caption = 'Host running Pure Data:'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 60
+ Width = 95
+ Height = 13
+ Caption = 'Listen to Pd on port:'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 84
+ Width = 103
+ Height = 13
+ Caption = 'Pd is listening on port:'
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 112
+ Width = 385
+ Height = 13
+ Caption =
+ 'NOTE: if you change the default ports, you need to modify fs.mai' +
+ 'n.pd accordingly.'
+ end
+ object Label5: TLabel
+ Left = 16
+ Top = 164
+ Width = 194
+ Height = 13
+ Caption = 'Listen to Framestein connections on port:'
+ end
+ object EditPdHost: TEdit
+ Left = 152
+ Top = 32
+ Width = 225
+ Height = 21
+ Ctl3D = True
+ ParentCtl3D = False
+ TabOrder = 0
+ Text = 'localhost'
+ end
+ object EditPdReceivePort: TEdit
+ Left = 152
+ Top = 56
+ Width = 225
+ Height = 21
+ Ctl3D = True
+ ParentCtl3D = False
+ TabOrder = 1
+ Text = '6001'
+ end
+ object EditPdSendPort: TEdit
+ Left = 152
+ Top = 80
+ Width = 225
+ Height = 21
+ Ctl3D = True
+ ParentCtl3D = False
+ TabOrder = 2
+ Text = '6002'
+ end
+ object EditFsPort: TEdit
+ Left = 224
+ Top = 160
+ Width = 153
+ Height = 21
+ Ctl3D = True
+ ParentCtl3D = False
+ TabOrder = 3
+ Text = '6010'
+ end
+ object CBEnableFSConns: TCheckBox
+ Left = 224
+ Top = 184
+ Width = 97
+ Height = 17
+ Caption = 'Enable'
+ TabOrder = 4
+ end
+ end
+ object TSGeneral: TTabSheet
+ Caption = 'General'
+ ImageIndex = 1
+ object CBDockMain: TCheckBox
+ Left = 26
+ Top = 36
+ Width = 377
+ Height = 17
+ Caption = 'Dock main window to Pd on connect'
+ TabOrder = 0
+ end
+ end
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 275
+ Width = 427
+ Height = 41
+ Align = alBottom
+ BevelOuter = bvNone
+ TabOrder = 1
+ object ButtonOk: TButton
+ Left = 344
+ Top = 8
+ Width = 75
+ Height = 25
+ Caption = 'Ok'
+ Default = True
+ TabOrder = 0
+ OnClick = ButtonOkClick
+ end
+ object ButtonCancel: TButton
+ Left = 256
+ Top = 8
+ Width = 75
+ Height = 25
+ Cancel = True
+ Caption = 'Cancel'
+ TabOrder = 1
+ OnClick = ButtonCancelClick
+ end
+ end
+end
diff --git a/Source/configureunit.pas b/Source/configureunit.pas index 321efc5..f030c73 100644 --- a/Source/configureunit.pas +++ b/Source/configureunit.pas @@ -1,160 +1,160 @@ -unit configureunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, ExtCtrls, ComCtrls, Buttons, FileCtrl; - -type - Tconfigure = class(TForm) - PageControl1: TPageControl; - TSConnections: TTabSheet; - Panel1: TPanel; - ButtonOk: TButton; - ButtonCancel: TButton; - Label1: TLabel; - EditPdHost: TEdit; - Label2: TLabel; - EditPdReceivePort: TEdit; - Label3: TLabel; - EditPdSendPort: TEdit; - Label4: TLabel; - Label5: TLabel; - EditFsPort: TEdit; - CBEnableFSConns: TCheckBox; - TSGeneral: TTabSheet; - CBDockMain: TCheckBox; - TSFolders: TTabSheet; - Label6: TLabel; - EditFSFolder: TEdit; - Memo1: TMemo; - DirectoryListBox1: TDirectoryListBox; - DriveComboBox1: TDriveComboBox; - procedure ButtonCancelClick(Sender: TObject); - procedure ButtonOkClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure DriveComboBox1Change(Sender: TObject); - procedure DirectoryListBox1Change(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - procedure Execute; - end; - -var - configure: Tconfigure; - -implementation - -uses - Registry, - mainunit; - -{$R *.DFM} - -procedure Tconfigure.ButtonOkClick(Sender: TObject); -var - Reg: TRegistry; -begin - Reg := TRegistry.Create; - Reg.RootKey := HKEY_CURRENT_USER; - - main.PdHost := EditPdHost.Text; - main.PdReceivePort := StrToInt(EditPdReceivePort.Text); - main.PdSendPort := StrToInt(EditPdSendPort.Text); - main.FSPort := StrToInt(EditFsPort.Text); - main.EnableFSConns := CBEnableFSConns.Checked; - main.DockMain := CBDockMain.Checked; -{$IFDEF FSDLL} - if main.FSFolder <> EditFSFolder.Text then begin - main.FSFolder := EditFSFolder.Text; - main.Plugins.Clear; - main.Plugins.ReLoad; - main.SearchPath.Add(main.FSFolder); - end; -{$ENDIF} - - try - if Reg.OpenKey('\Software\Framestein', True) then begin - Reg.WriteString('PdHost', main.PdHost); - Reg.WriteInteger('PDReceivePort', main.PDReceivePort); - Reg.WriteInteger('PDSendPort', main.PDSendPort); - Reg.WriteInteger('FSPort', main.FSPort); - Reg.WriteBool('EnableFSConns', main.EnableFSConns); - Reg.WriteBool('DockMain', main.DockMain); -{$IFDEF FSDLL} - Reg.WriteString('FSFolder', main.FSFolder); -{$ENDIF} - end; - except - end; - - Reg.CloseKey; - Reg.Free; - - main.ss1.Active := False; - main.ss1.Port := main.PDReceivePort; - main.ss1.Active := True; - - main.csToPd.Active := False; - main.csToPd.Host := main.PdHost; - main.csToPd.Port := main.PdSendPort; - main.csToPd.Active := True; - - main.ssfs.Active := False; - main.ssfs.Port := main.FSPort; - main.ssfs.Active := main.EnableFSConns; - - ModalResult := mrOk; -end; - -procedure Tconfigure.ButtonCancelClick(Sender: TObject); -begin - ModalResult := mrCancel; -end; - -procedure Tconfigure.Execute; -begin -{$IFDEF FSDLL} - TSFolders.TabVisible := True; - TSFolders.Visible := True; -{$ELSE} - TSFolders.TabVisible := False; - TSFolders.Visible := False; -{$ENDIF} - - // load values from main - EditPdHost.Text := main.PdHost; - if EditPdHost.Text='' then EditPdHost.Text:='localhost'; - EditPdReceivePort.Text := IntToStr(main.PdReceivePort); - EditPdSendPort.Text := IntToStr(main.PdSendPort); - EditFsPort.Text := IntToStr(main.FSPort); - CBEnableFSConns.Checked := main.EnableFSConns; - CBDockMain.Checked := main.DockMain; - EditFSFolder.Text := main.FSFolder; - // show - ShowModal; -end; - -procedure Tconfigure.FormCreate(Sender: TObject); -begin - if main.RunConfig then - Execute; -end; - -procedure Tconfigure.DriveComboBox1Change(Sender: TObject); -begin - DirectoryListBox1.Drive := - (Sender as TDriveComboBox).Drive; -end; - -procedure Tconfigure.DirectoryListBox1Change(Sender: TObject); -begin - EditFSFolder.Text := - (Sender as TDirectoryListBox).Directory; -end; - -end. - +unit configureunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ StdCtrls, ExtCtrls, ComCtrls, Buttons, FileCtrl;
+
+type
+ Tconfigure = class(TForm)
+ PageControl1: TPageControl;
+ TSConnections: TTabSheet;
+ Panel1: TPanel;
+ ButtonOk: TButton;
+ ButtonCancel: TButton;
+ Label1: TLabel;
+ EditPdHost: TEdit;
+ Label2: TLabel;
+ EditPdReceivePort: TEdit;
+ Label3: TLabel;
+ EditPdSendPort: TEdit;
+ Label4: TLabel;
+ Label5: TLabel;
+ EditFsPort: TEdit;
+ CBEnableFSConns: TCheckBox;
+ TSGeneral: TTabSheet;
+ CBDockMain: TCheckBox;
+ TSFolders: TTabSheet;
+ Label6: TLabel;
+ EditFSFolder: TEdit;
+ Memo1: TMemo;
+ DirectoryListBox1: TDirectoryListBox;
+ DriveComboBox1: TDriveComboBox;
+ procedure ButtonCancelClick(Sender: TObject);
+ procedure ButtonOkClick(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure DriveComboBox1Change(Sender: TObject);
+ procedure DirectoryListBox1Change(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ procedure Execute;
+ end;
+
+var
+ configure: Tconfigure;
+
+implementation
+
+uses
+ Registry,
+ mainunit;
+
+{$R *.DFM}
+
+procedure Tconfigure.ButtonOkClick(Sender: TObject);
+var
+ Reg: TRegistry;
+begin
+ Reg := TRegistry.Create;
+ Reg.RootKey := HKEY_CURRENT_USER;
+
+ main.PdHost := EditPdHost.Text;
+ main.PdReceivePort := StrToInt(EditPdReceivePort.Text);
+ main.PdSendPort := StrToInt(EditPdSendPort.Text);
+ main.FSPort := StrToInt(EditFsPort.Text);
+ main.EnableFSConns := CBEnableFSConns.Checked;
+ main.DockMain := CBDockMain.Checked;
+{$IFDEF FSDLL}
+ if main.FSFolder <> EditFSFolder.Text then begin
+ main.FSFolder := EditFSFolder.Text;
+ main.Plugins.Clear;
+ main.Plugins.ReLoad;
+ main.SearchPath.Add(main.FSFolder);
+ end;
+{$ENDIF}
+
+ try
+ if Reg.OpenKey('\Software\Framestein', True) then begin
+ Reg.WriteString('PdHost', main.PdHost);
+ Reg.WriteInteger('PDReceivePort', main.PDReceivePort);
+ Reg.WriteInteger('PDSendPort', main.PDSendPort);
+ Reg.WriteInteger('FSPort', main.FSPort);
+ Reg.WriteBool('EnableFSConns', main.EnableFSConns);
+ Reg.WriteBool('DockMain', main.DockMain);
+{$IFDEF FSDLL}
+ Reg.WriteString('FSFolder', main.FSFolder);
+{$ENDIF}
+ end;
+ except
+ end;
+
+ Reg.CloseKey;
+ Reg.Free;
+
+ main.ss1.Active := False;
+ main.ss1.Port := main.PDReceivePort;
+ main.ss1.Active := True;
+
+ main.csToPd.Active := False;
+ main.csToPd.Host := main.PdHost;
+ main.csToPd.Port := main.PdSendPort;
+ main.csToPd.Active := True;
+
+ main.ssfs.Active := False;
+ main.ssfs.Port := main.FSPort;
+ main.ssfs.Active := main.EnableFSConns;
+
+ ModalResult := mrOk;
+end;
+
+procedure Tconfigure.ButtonCancelClick(Sender: TObject);
+begin
+ ModalResult := mrCancel;
+end;
+
+procedure Tconfigure.Execute;
+begin
+{$IFDEF FSDLL}
+ TSFolders.TabVisible := True;
+ TSFolders.Visible := True;
+{$ELSE}
+ TSFolders.TabVisible := False;
+ TSFolders.Visible := False;
+{$ENDIF}
+
+ // load values from main
+ EditPdHost.Text := main.PdHost;
+ if EditPdHost.Text='' then EditPdHost.Text:='localhost';
+ EditPdReceivePort.Text := IntToStr(main.PdReceivePort);
+ EditPdSendPort.Text := IntToStr(main.PdSendPort);
+ EditFsPort.Text := IntToStr(main.FSPort);
+ CBEnableFSConns.Checked := main.EnableFSConns;
+ CBDockMain.Checked := main.DockMain;
+ EditFSFolder.Text := main.FSFolder;
+ // show
+ ShowModal;
+end;
+
+procedure Tconfigure.FormCreate(Sender: TObject);
+begin
+ if main.RunConfig then
+ Execute;
+end;
+
+procedure Tconfigure.DriveComboBox1Change(Sender: TObject);
+begin
+ DirectoryListBox1.Drive :=
+ (Sender as TDriveComboBox).Drive;
+end;
+
+procedure Tconfigure.DirectoryListBox1Change(Sender: TObject);
+begin
+ EditFSFolder.Text :=
+ (Sender as TDirectoryListBox).Directory;
+end;
+
+end.
+
diff --git a/Source/dc.inc b/Source/dc.inc index a90d6f3..f1da15d 100644 --- a/Source/dc.inc +++ b/Source/dc.inc @@ -1,42 +1,42 @@ -{$O+,A+,W-,R-,Q-,B-,X+,T-,P+,H+,J+,C-} - -//--------------- Dream Company section ---------------------------- - -{$IFDEF VER93} -{$DEFINE BCB} -{$DEFINE CPB1} -{$ENDIF} - -{$IFNDEF VER80} - {$IFNDEF VER90} - {$IFNDEF VER93} - {$IFDEF VER110} - {$DEFINE CPB3} { C++ Builder 3.0 or higher} - {$DEFINE BCB} - {$ENDIF} - {$DEFINE D3} { Delphi 3.0 or higher } - {$ENDIF} - {$ENDIF} -{$ENDIF} - -{$IFDEF VER120} - {$DEFINE D4} - {$DEFINE D3} - {$DEFINE CPB3} -{$ENDIF} - -{$IFDEF VER125} -{$DEFINE CPB4} -{$DEFINE D4} -{$DEFINE D3} -{$DEFINE CPB3} -{$DEFINE BCB} -{$ENDIF} - -{$IFDEF VER130} -{$DEFINE CPB4} -{$DEFINE D4} -{$DEFINE D3} -{$DEFINE CPB3} -{$DEFINE D5} -{$ENDIF} +{$O+,A+,W-,R-,Q-,B-,X+,T-,P+,H+,J+,C-}
+
+//--------------- Dream Company section ----------------------------
+
+{$IFDEF VER93}
+{$DEFINE BCB}
+{$DEFINE CPB1}
+{$ENDIF}
+
+{$IFNDEF VER80}
+ {$IFNDEF VER90}
+ {$IFNDEF VER93}
+ {$IFDEF VER110}
+ {$DEFINE CPB3} { C++ Builder 3.0 or higher}
+ {$DEFINE BCB}
+ {$ENDIF}
+ {$DEFINE D3} { Delphi 3.0 or higher }
+ {$ENDIF}
+ {$ENDIF}
+{$ENDIF}
+
+{$IFDEF VER120}
+ {$DEFINE D4}
+ {$DEFINE D3}
+ {$DEFINE CPB3}
+{$ENDIF}
+
+{$IFDEF VER125}
+{$DEFINE CPB4}
+{$DEFINE D4}
+{$DEFINE D3}
+{$DEFINE CPB3}
+{$DEFINE BCB}
+{$ENDIF}
+
+{$IFDEF VER130}
+{$DEFINE CPB4}
+{$DEFINE D4}
+{$DEFINE D3}
+{$DEFINE CPB3}
+{$DEFINE D5}
+{$ENDIF}
diff --git a/Source/fsDcAvi.pas b/Source/fsDcAvi.pas index 889ed82..ddb7028 100644 --- a/Source/fsDcAvi.pas +++ b/Source/fsDcAvi.pas @@ -1,1615 +1,1615 @@ -{*******************************************************} -{ } -{ TDCAVIPlayer component } -{ } -{ Copyright (c) 1997-1999 Dream Company } -{ http://www.dream-com.com } -{ e-mail: contact@dream-com.com } -{ } -{*******************************************************} -{Modified for Framestein, look for '_FS'} - -unit fsdcAVI; - -interface -{$I dc.inc} -uses - Windows, Messages, Graphics, Classes, Controls, mmSystem - {$IFNDEF D3},SysUtils{$ENDIF}; - -const - WM_NEXTFRAME = WM_USER + 1; - - cBufSize = 2048; {audio buffer size} - CAheadBuffers = 8; - -type - TAudioPlay = class - private - fBufferSize : integer; - fAVI : pointer; - fSampleSize : integer; - fEnd : integer; - fPlaying : boolean; - fWaveOut : HWAVEOUT; - fBegin : integer; - fCurrent : integer; - - function OpenDevice(W : HWND; pAvi : pointer) : boolean; - function FillBuffer : boolean; - public - destructor Destroy; override; - procedure AudioPlayMessage(W : PWAVEHDR); - procedure Stop; - function Play(W : HWND; pAvi : Pointer; lStart, lEnd : longint) : boolean; - end; - - - TDCAVIPlayer = class(TCustomControl) - private - _dc : THandle; - fActive : boolean; - fAutoSize : boolean; - fCenter : boolean; - fFileName : string; - fOpen : boolean; - fRepetitions : integer; - fStartFrame : integer; - fStopFrame : integer; - fTransparent : boolean; - fSkipFrames : boolean; - fStretch : boolean; - fLength : integer; - fFrameWidth : integer; - fFrameHeight : integer; - fPlaySound : boolean; - - fOnClose : TNotifyEvent; - fOnOpen : TNotifyEvent; - fOnStart : TNotifyEvent; - fOnStop : TNotifyEvent; - - favifile : pointer; - faudiostream : pointer; - fvideostream : pointer; - fFrame : integer; - fTimer : THandle; - fgetframe : pointer; - fdrawing : boolean; - fdrawcontrol : integer; - ftempdc : THandle; - ftempbitmap : THandle; - foldbitmap : THandle; - frepeatcount : integer; - fdelay : integer; - fbackchanged : boolean; - fBlockChanges : boolean; - faudioplay : TAudioPlay; - hdrawdib : THandle; - - fxstart : integer; - fystart : integer; - fofs : integer; - fxofs : integer; - fyofs : integer; - fiwidth : integer; - fiheight : integer; - - procedure PlayNextFrame(var Msg : TMessage); message WM_NEXTFRAME; - procedure SaveBackground; - procedure AdjustControlsize; - procedure ShowRect; - procedure KillTempDC; - procedure HookWndProc; - procedure UnHookWndProc; - procedure MMWOM_DONE(var M:TMessage); message MM_WOM_DONE; - procedure PlayAudio(startframe, endframe : integer); - procedure CalcFrameLayout; - procedure DisplayChange(var Msg : TMessage); message WM_DISPLAYCHANGE; - procedure ValidateFrameNumber(var val : integer); - procedure UpdateFrameNumber; - function ZOrder : integer; - procedure StartDrawing; - function GetFrameRate: integer; - protected - procedure UpdateOtherAVIPlayers; - function PaintDisabled : boolean; - procedure CreateParams (var Params: TCreateParams); override; - procedure ShowFrame; - procedure WMPaint(var Msg : TWMPaint); message WM_PAINT; - procedure WMEraseBkgnd(var Msg : TMessage); message WM_ERASEBKGND; - procedure WMMove (var Msg : TMessage); message WM_MOVE; - procedure WMSize (var Msg : TMessage); message WM_SIZE; - - procedure Loaded; override; - procedure SetActive (val : boolean); virtual; - procedure SetAutoSize (val : boolean); virtual; - procedure SetCenter (val : boolean); virtual; - procedure SetFileName (val : string); virtual; - procedure SetRepetitions (val : integer); virtual; - procedure SetStartFrame (val : integer); virtual; - procedure SetStopFrame (val : integer); virtual; - procedure SetTransparent (val : boolean); virtual; - procedure SetStretch (val : boolean); virtual; - procedure SetPlaySound(val : boolean); virtual; - - procedure OpenFile; virtual; - procedure CloseFile; virtual; - - procedure DoOpen; virtual; - procedure DoClose; virtual; - procedure DoStart; virtual; - procedure DoStop; virtual; - public - procedure DrawFrameToDC(dc : THandle); {_FS - This was private} - constructor Create (AOwner : TComponent); override; - destructor Destroy; override; - procedure Play (FromFrame, ToFrame: Word; Count: Integer); - procedure Reset; - procedure Seek (Frame : integer); - procedure Stop; - - {_FS - add: property FrameRate} - property FrameRate : integer read GetFrameRate; - property FrameCount : integer read fLength; - property FrameHeight: Integer read FFrameHeight; - property FrameWidth : Integer read FFrameWidth; - - property Open : boolean read fOpen; - - published - property Active : boolean read fActive write SetActive default false; - property AutoSize : boolean read fAutoSize write SetAutoSize default true; - property Center : boolean read fCenter write SetCenter default true; - property FileName : string read fFileName write SetFileName; - property PlaySound : boolean read fPlaySound write SetPlaySound default true; - property Repetitions : integer read fRepetitions write SetRepetitions default 0; - property StartFrame : integer read fStartFrame write SetStartFrame default 1; - property StopFrame : integer read fStopFrame write SetStopFrame default 0; - property Stretch : boolean read fStretch write SetStretch default false; - property Transparent : boolean read fTransparent write SetTransparent default true; - - property Position : integer read fFrame write Seek; - - property OnOpen: TNotifyEvent read fOnOpen write fOnOpen; - property OnClose: TNotifyEvent read fOnClose write fOnClose; - property OnStart: TNotifyEvent read fOnStart write fOnStart; - property OnStop: TNotifyEvent read fOnStop write fOnStop; - - property Align; - property Color; - property ParentColor; - property ParentShowHint; - property ShowHint; - property Visible; - - property OnMouseDown; - property OnClick; - end; - -type - TAVIStream = record - fccType : longint; - fccHandler : longint; - dwFlags : longint; - dwCaps : longint; - wPriority : word; - wLanguage : word; - dwScale : longint; - dwRate : longint; - dwStart : longint; - dwLength : longint; - dwInitialFrames : longint; - dwSuggestedBufferSize : longint; - dwQuality : longint; - dwSampleSize : longint; - rcFrame : TRect; - dwEditCount : longint; - dwFormatChangeCount : longint; - Name : array [0..64] of char; - end; - - PAVIStream = ^TAVIStream; - - PAVIFile = pointer; - - TAVIFileInfo = record - dwMaxBytesPerSec : longint; // max. transfer rate - dwFlags : longint; // the ever-present flags - dwCaps : longint; - dwStreams : longint; - dwSuggestedBufferSize : longint; - - dwWidth : longint; - dwHeight : longint; - - dwScale : longint; - dwRate : longint; // dwRate / dwScale == samples/second - dwLength : longint; - - dwEditCount : longint; - - szFileType : array[0..63] of char; // descriptive string for file type? - end; - - PAVIFileInfo = ^TAVIFileInfo; - - TAVIStreamInfo = record - fccType : longint; - fccHandler : longint; - dwFlags : longint; // Contains AVITF_* flags - dwCaps : longint; - wPriority : word; - wLanguage : word; - dwScale : longint; - dwRate : longint; // dwRate / dwScale == samples/second - dwStart : longint; - dwLength : longint; // In units above... - dwInitialFrames : longint; - dwSuggestedBufferSize : longint; - dwQuality : longint; - dwSampleSize : longint; - rcFrame : TRect; - dwEditCount : longint; - dwFormatChangeCount : longint; - szName : array[0..63] of char; - end; - - PAVIStreamInfo = ^TAVIStreamInfo; - - -//BeginSkipConst -procedure AVIFileInit; stdcall; external 'avifil32.dll' name 'AVIFileInit'; - -procedure AVIFileExit; stdcall; external 'avifil32.dll' name 'AVIFileExit'; - -function AVIFileOpen(avifile : pointer; filename : pchar; mode : integer; - CLSID : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIFileOpen'; - -function AVIFileRelease(avifile : pointer) : longint; stdcall; external 'avifil32.dll' name 'AVIFileRelease'; - -function AVIFileGetStream(avifile : pointer; avistream : PAVIStream; - streamtype : longint; lParam : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIFileGetStream'; - -function AVIStreamGetFrameOpen(avistream : PAVIStream; bitmapwanted : pointer) : pointer; stdcall; external 'avifil32.dll' name 'AVIStreamGetFrameOpen'; - -procedure AVIStreamGetFrameClose(pget : pointer); stdcall; external 'avifil32.dll' name 'AVIStreamGetFrameClose'; - -function AVIStreamGetFrame(getframe : pointer; position : longint) : pointer; stdcall; external 'avifil32.dll' name 'AVIStreamGetFrame'; - -function AVIStreamOpenFromFile(avistream : PAVIStream; filename : pchar; - streamtype : word; lParam : longint; - mode : longint; clsid : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamOpenFromFile'; - -procedure AVIStreamRelease(avistream : PAVIStream); stdcall; external 'avifil32.dll' name 'AVIStreamRelease'; -function AVIFileInfo(pfile : PAVIFile; pfi : PAVIFileInfo; lSize : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIFileInfo'; - -function AVIStreamInfo(pstream : PAVIStream; psi : PAVISTREAMINFO; lsize : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamInfo'; -function AVIStreamRead(pavi : PAVIStream; lStart, lSamples : longint; - lpBuffer : pointer; cbBuffer : longint; - plBytes, plSamples : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamRead'; - -function AVIStreamReadFormat(pavi : PAVIStream; lPos : longint; - lpFormat : pointer; lpcbFormat : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamReadFormat'; - -function AVIStreamBeginStreaming(pavi : PAVIStream; lStart, lEnd, lRate : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamBeginStreaming'; -function AVIStreamEndStreaming(pavi : PAVIStream) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamEndStreaming'; -function AVIStreamStart(pavi : PAVIStream) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamStart'; -function AVIStreamLength(pavi: PAVIStream) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamLength'; -function AVIStreamSampleToTime(pavi : PAVIStream; lSample : longint) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamSampleToTime'; -function AVIStreamTimeToSample(pavi : PAVIStream; Time : longint) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamTimeToSample'; - -function DrawDIBOpen : THandle; stdcall; external 'msvfw32.dll' name 'DrawDibOpen'; -procedure DrawDIBClose (h : THandle); stdcall; external 'msvfw32.dll' name 'DrawDibClose'; -procedure DrawDibDraw (hdib, dc : THandle; xDst, yDst, dxDst, dyDst : integer; - lpbi, lpBits : pointer; xSrc, ySrc, dxSrc, dySrc, wFlags : integer); stdcall; external 'msvfw32.dll' name 'DrawDibDraw'; -//EndSkipConst - -const - streamtypeAUDIO : longint = $73647561; - streamtypeVIDEO : longint = $73646976; - - AVISTREAMREAD_CONVENIENT = -1; - - DDF_HALFTONE = $1000; - -{-----------------------------------------------------------------------} - -implementation - -function Min(A, B: Integer): Integer; -begin - if A < B then - Result := A - else - Result := B; -end; - -function Max(A, B: Integer): Integer; -begin - if A > B then - Result := A - else - Result := B; -end; - -function RectWidth(const R: TRect): Integer; -begin - with R do - Result := Right - Left; -end; - -function RectHeight(const R: TRect): Integer; -begin - with R do - Result := Bottom - Top; -end; - -{$IFNDEF D3} -function TransparentStretchBlt(DstDC: HDC; DstX, DstY, DstW, DstH: Integer; - SrcDC: HDC; SrcX, SrcY, SrcW, SrcH: Integer; MaskDC: HDC; MaskX, - MaskY: Integer): Boolean; -const - ROP_DstCopy = $00AA0029; -var - MemDC : THandle; - MemBmp : THandle; - Save : THandle; - crText : TColorRef; - crBack : TColorRef; -begin - Result := True; - if (Win32Platform = VER_PLATFORM_WIN32_NT) and (SrcW = DstW) and (SrcH = DstH) then - begin - MemBmp := CreateCompatibleBitmap(SrcDC, 1, 1); - MemBmp := SelectObject(MaskDC, MemBmp); - MaskBlt(DstDC, DstX, DstY, DstW, DstH, SrcDC, SrcX, SrcY, MemBmp, MaskX, - MaskY, MakeRop4(ROP_DstCopy, SrcCopy)); - MemBmp := SelectObject(MaskDC, MemBmp); - DeleteObject(MemBmp); - exit; - end; - - MemDC := CreateCompatibleDC(0); - MemBmp := CreateCompatibleBitmap(SrcDC, SrcW, SrcH); - Save := SelectObject(MemDC, MemBmp); - StretchBlt(MemDC, 0, 0, SrcW, SrcH, MaskDC, MaskX, MaskY, SrcW, SrcH, SrcCopy); - StretchBlt(MemDC, 0, 0, SrcW, SrcH, SrcDC, SrcX, SrcY, SrcW, SrcH, SrcErase); - crText := SetTextColor(DstDC, $0); - crBack := SetBkColor(DstDC, $FFFFFF); - StretchBlt(DstDC, DstX, DstY, DstW, DstH, MaskDC, MaskX, MaskY, SrcW, SrcH, SrcAnd); - StretchBlt(DstDC, DstX, DstY, DstW, DstH, MemDC, 0, 0, SrcW, SrcH, SrcInvert); - SetTextColor(DstDC, crText); - SetTextColor(DstDC, crBack); - SelectObject(MemDC, Save); - DeleteObject(MemBmp); - DeleteDC(MemDC); -end; -{$ENDIF} - -Procedure TransparentBitBltEx(sourcedc, destdc: THandle; SrcRect,DstRect: TRect; - atranscolor: longint); -Var - monobitmap: THandle; - oldbkcolor: longint; - monodc: THandle; - width: integer; - height: integer; - oldbitmap: THandle; -Begin - With SrcRect do - Begin - width := RectWidth(SrcRect); - height := RectHeight(SrcRect); - monodc := CreateCompatibleDC(sourcedc); - monobitmap := CreateCompatibleBitmap(monodc, width, height); - oldbitmap := SelectObject(monodc, monobitmap); - Try - oldbkcolor := SetBkColor(sourcedc, atranscolor); - BitBlt(monodc, 0, 0, width, height, sourcedc, Left, Top, SRCCOPY); - SetBkColor(sourcedc, oldbkcolor); - TransparentStretchBlt(destdc, DstRect.Left, DstRect.Top, RectWidth(DstRect), - RectHeight(DstRect), SourceDC, left, top, width, height, monodc, 0, 0); - Finally - SelectObject(monodc, oldbitmap); - DeleteDC(monodc); - DeleteObject(monobitmap); - End; - End; -End; - -Procedure TransparentBitBlt(sourcedc, destdc: THandle; arect: TRect; - atranscolor: longint; aoriginX,aoriginY: Integer); -begin - TransparentBitBltEx(sourcedc, destdc,arect, - Rect(aoriginX,aoriginY,aoriginX+RectWidth(arect),aoriginY+RectHeight(arect)), - atranscolor); -end; - -Function GetTransparentColor(dc: THandle; const arect: TRect): longint; -Begin - Result := GetPixel(dc, arect.left, arect.bottom); -End; - -{-----------------------------------------------------------------------} - -function AVIStreamEnd (pavi : PAVIStream) : longint; -begin - result := AVIStreamStart(pavi) + AVIStreamLength(pavi); -end; - -{-----------------------------------------------------------------------} - -function AVIStreamFormatSize (pavi : PAVIStream; lPos : longint; plSize : pointer) : longint; -begin - result := AVIStreamReadFormat(pavi, lPos, nil, plSize); -end; - -{-----------------------------------------------------------------------} - -constructor TDCAVIPlayer.Create (AOwner : TComponent); -begin - inherited Create(AOwner); - width := 100; - height := 50; - - fAutoSize := true; - fCenter := true; - fStartFrame := 1; - fTransparent := true; - fSkipFrames := true; - fAutoSize := true; - fBackChanged := true; - fblockchanges := true; - fPlaySound := true; - - AVIFileInit; - faudioplay := TAudioPlay.Create; - HookWndProc; - hdrawdib := DrawDIBOpen; -end; - -{------------------------------------------------------------------} - -destructor TDCAVIPlayer.Destroy; -begin - Stop; - UnHookWndProc; - DrawDIBClose(hdrawdib); - KillTempDC; - CloseFile; - faudioplay.Free; - AVIFileExit; - inherited Destroy; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.CreateParams(var Params: TCreateParams); -begin - inherited CreateParams(Params); - Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; -end; - -{------------------------------------------------------------------} - -function TDCAVIPlayer.ZOrder : integer; -begin - if Parent <> nil then - with Parent do - for result := 0 to ControlCount - 1 do - if Controls[result] = self then - exit; - - result := -1 -end; - -{------------------------------------------------------------------} - -procedure Timer(uID, uMsg, dwUser, dw1, dw2 : longint); stdcall; -begin - PostMessage(TDCAVIPlayer(dwUser).Handle, WM_NEXTFRAME, 0, 0); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.PlayAudio(startframe, endframe : integer); -var - astart : integer; - aend : integer; -begin - if (faudiostream = nil) or not fPlaySound then - exit; - - astart := AVIStreamTimeToSample(faudiostream, AVIStreamSampleToTime(fvideostream, startFrame)); - aend := AVIStreamTimeToSample(faudiostream, AVIStreamSampleToTime(fvideostream, endFrame)); - faudioplay.play(handle, faudiostream, astart, aend); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.Play (FromFrame, ToFrame: Word; Count: Integer); -var - info : TAVIStreamInfo; - ainfo : TAVIStreamInfo; -begin - Stop; - if not Assigned(fvideostream) then - exit; - - fFrame := FromFrame; - fStartFrame := FromFrame; - fStopFrame := ToFrame; - frepeatCount := Count; - AVIStreamInfo(fvideostream, @info, sizeof(info)); - fdelay := MulDiv(info.dwScale, 1000, info.dwRate); - - DoStart; - fActive := true; - if Assigned(faudiostream) then - begin - AVIStreamInfo(fvideostream, @ainfo, sizeof(info)); - PlayAudio(fFrame, fStopFrame); - end; - - fTimer := timeSetEvent(fdelay, 0, @Timer, integer(self), TIME_PERIODIC); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.Stop; -begin - if ftimer <> 0 then - begin - timeKillEvent(fTimer); - fTimer := 0; - end; - - if not fActive then - exit; - - faudioplay.stop; - fActive := false; - DoStop; - ShowFrame; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.Seek (Frame : integer); -begin - if Frame = fFrame then - exit; - - Stop; - ValidateFrameNumber(Frame); - fFrame := Frame; - Invalidate; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.Loaded; -var - _startframe : integer; - _stopframe : integer; -begin - inherited Loaded; - - if ffilename <> '' then - begin - fBlockChanges := false; - _startframe := fstartframe; - _stopframe := fStopFrame; - OpenFile; - fstartframe := _startframe; - fStopFrame := _stopframe; - fBlockChanges := true; - end; - - - if fActive then - if fOpen then - Play(fStartFrame, fStopFrame, fRepetitions) - else - fActive := false; - -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetActive(val : boolean); -begin - if val = fActive then - exit; - - if not (csReading in ComponentState) then - if val then - begin - Play(fStartFrame, fStopFrame, fRepetitions) - end - else - begin - Stop; - if csDesigning in ComponentState then - begin - fFrame := 0; - ShowFrame; - end; - end; - -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetAutoSize(val : boolean); -begin - if val = fAutoSize then - exit; - - fAutoSize := val; - AdjustControlsize; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetCenter(val : boolean); -begin - if val = fCenter then - exit; - - fCenter := val; - if not fTransparent then - Invalidate; - - ShowFrame; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetFileName(val : string); -var - wasactive : boolean; -begin - if val = fFileName then - exit; - - ffilename := val; - if csReading in ComponentState then - exit; - - wasactive := fActive; - - Reset; - - Invalidate; - ShowFrame; - - if val = '' then - begin - fbackchanged := true; - Parent.Invalidate; - UpdateWindow(Parent.Handle); - end; - - if wasActive then - if not (csReading in ComponentState) then - Active := true - else - fActive := true; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetRepetitions(val : integer); -begin - if val = fRepetitions then - exit; - - fRepetitions := val; - if csDesigning in ComponentState then - begin - Stop; - fFrame := 0; - ShowFrame; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.ValidateFrameNumber(var val : integer); -begin - if fOpen then - if val > fLength - 1 then - val := fLength - 1 - else - if val < 0 then - val := 0; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetStartFrame(val : integer); -begin - if (val = fStartFrame) then - exit; - - ValidateFrameNumber(val); - fStartFrame := val; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetStopFrame(val : integer); -begin - if val = fStopFrame then - exit; - - ValidateFrameNumber(val); - fStopFrame := val; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetTransparent(val : boolean); -begin - if val = fTransparent then - exit; - - fTransparent := val; - Invalidate; - ShowFrame; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetStretch (val : boolean); -begin - if val = fStretch then - exit; - - fStretch := val; - if not (csReading in ComponentState) then - begin - if not val then - invalidate; - - if not fActive then - ShowFrame; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SetPlaySound (val : boolean); -begin - if val = fPlaySound then - exit; - - fPlaySound := val; - if fActive then - if val then - PlayAudio(fFrame, fStopFrame) - else - faudioplay.Stop; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.AdjustControlsize; -var - info : TAVIStreamInfo; - r : TRect; - r2 : TRect; - i : integer; - crect : TRect; -begin - if fautosize and fOpen then - begin - AVIStreamInfo(fvideostream, @info, sizeof(info)); - if fblockchanges then - Parent.Perform(WM_SETREDRAW, 0, 0); - r := Rect(left, top, left + width, top + height); - with info.rcframe do - SetBounds(self.left, self.top, right - left, bottom - top); - if fblockchanges then - begin - Parent.Perform(WM_SETREDRAW, 1, 0); - r2 := Rect(left, top, left + width, top + height); - SubtractRect(r, r, r2); - InvalidateRect(Parent.Handle, @r, true); - with Parent do - for i := 0 to ControlCount - 1 do - begin - with Controls[i] do - crect := Rect(left, top, left + width, top + height); - - if (Controls[i] is TWinControl) and (Controls[i] <> self) and - InterSectRect(r2, r, crect) then - Controls[i].Invalidate; - end; - end; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.OpenFile; -var - info : TAVIStreamInfo; -begin - if ffilename = '' then - exit; - - if (AVIFileOpen(@favifile, @(ffilename[1]), 0, nil) <> 0) then - exit; - - if (AVIFileGetStream(favifile, @fvideostream, streamtypeVIDEO, 0) <> 0) then - begin - AVIFileRelease(favifile); - exit; - end; - - fgetframe := AVIStreamGetFrameOpen(fvideostream, nil); - - if fgetframe = nil then - begin - AVIStreamRelease(fvideostream); - AVIFileRelease(favifile); - exit; - end; - - AVIFileGetStream(favifile, @faudiostream, streamtypeAUDIO, 0); - - AVIStreamInfo(fvideostream, @info, sizeof(info)); - with info do - begin - fLength := dwlength; - fFrameWidth := rcframe.right - rcframe.left; - fFrameHeight := rcframe.bottom - rcframe.top; - fStartFrame := dwStart; - fStopFrame := fLength - 1; - end; - fFrame := fStartFrame; - fOpen := true; - SetWindowLong(handle, GWL_EXSTYLE, GetWindowLong(handle, GWL_EXSTYLE) and (not WS_EX_TRANSPARENT)); - AdjustControlsize; - fbackchanged := true; - Invalidate; -{ ShowFrame; - Parent.Invalidate;} - DoOpen; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.CloseFile; -begin - if not fOpen then - exit; - - if fActive then - Stop; - - if Assigned(fgetframe) then - AVIStreamGetFrameClose(fgetframe); - - if Assigned(faudiostream) then - AVIStreamRelease(faudiostream); - - if Assigned(fvideostream) then - AVIStreamRelease(fvideostream); - - if Assigned(favifile) then - AVIFileRelease(favifile); - - faudiostream := nil; - fvideostream := nil; - favifile := nil; - fgetframe := nil; - fOpen := false; - fLength := 0; - DoClose; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.CalcFrameLayout; -begin - fxstart := 0; - fystart := 0; - if csDesigning in ComponentState then - fofs := 1 - else - fofs := 0; - - if fOpen then - begin - fiwidth := FrameWidth; - fiheight := FrameHeight; - end - else - begin - fiwidth := self.width; - fiheight := self.height; - end; - - if not Stretch and fCenter then - begin - fxstart := (self.width - fiwidth) div 2; - fystart := (self.height - fiheight) div 2; - end; - - if not Transparent then - begin - if fxstart > 0 then - fxofs := 0 - else - fxofs := fofs; - - if fystart > 0 then - fyofs := 0 - else - fyofs := fofs; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.StartDrawing; -begin - fdrawing := true; - fdrawcontrol := ZOrder; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.DrawFrameToDC(dc : THandle); -var - memdc : THandle; - formdc : THandle; - image : pointer; - imagestart : integer; - bitmap : THandle; - fbitmap : THandle; - oldmemobject : THandle; - oldfobject : THandle; - width : integer; - height : integer; - -begin -{_FS - We're not using your window anyway...} -// if PaintDisabled then -// exit; - - if fTransparent and (fBackChanged or not fActive) then - begin - SaveBackGround; - fBackChanged := false; - end; - - StartDrawing; - memdc := CreateCompatibleDC(dc); - formdc := CreateCompatibleDC(dc); - try - image := AVIStreamGetFrame(fgetframe, fFrame); - CalcFrameLayout; - - if fStretch then - begin - width := self.width; - height := self.height; - end - else - begin - width := fiwidth; - height := fiheight; - end; - - imagestart := 0; - - if Assigned(image) then - begin - SetStretchBltMode(memdc, HALFTONE); - imagestart := TBitmapInfoHeader(image^).biSize + TBitmapInfoHeader(image^).biClrUsed * 4; - end; - - if fTransparent then - begin - bitmap := CreateCompatibleBitmap(dc, width, height); - oldmemobject := SelectObject(memdc, bitmap); - - StretchDIBits(memdc, 0, 0, width, height, 0, 0, fiwidth, fiheight, pchar(image) + imagestart, - TBitmapInfo(image^), 0, SRCCOPY); - - fbitmap := CreateCompatibleBitmap(dc, self.width, self.height); - oldfobject := SelectObject(formdc, fbitmap); - - BitBlt(formdc, 0, 0, self.width, self.height, ftempdc, 0, 0, SRCCOPY); - - if Assigned(image) then - TransparentBitBlt(memdc, formdc, Rect(0, 0, width, height), - GetTransparentColor(memdc, Rect(0, 0, width - 1, height - 1)), - fxstart, fystart); - - BitBlt(dc, fofs, fofs, self.width - fofs * 2, self.height - fofs * 2, formdc, fofs, fofs, SRCCOPY); - - SelectObject(formdc, oldfobject); - DeleteObject(fbitmap); - SelectObject(memdc, oldmemobject); - DeleteObject(bitmap); - end - else - DrawDibDraw(hdrawdib, dc, fxstart, fystart, width - fxofs * 2, height - fyofs * 2, - image, pchar(image) + imagestart, 0, 0, fiwidth, fiheight, DDF_HALFTONE); - - finally - DeleteDC(memdc); - DeleteDC(formdc); - fdrawing := false; - end; -end; - -{------------------------------------------------------------------} - -function TDCAVIPlayer.PaintDisabled : boolean; -begin - result := fDrawing or ([csReading, csLoading] * ComponentState <> []) or (Parent = nil) - or ([csReading, csLoading] * Parent.ComponentState <> []) - or not HandleAllocated or not ({_FS-visible or }(csDesigning in ComponentState)); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.ShowFrame; -var - dc : THandle; - brush : THandle; -begin - if PaintDisabled then - exit; - - if _dc = 0 then - dc := GetDC(handle) - else - dc := _dc; - - if not (fTransparent or fOpen) then - begin - brush := CreateSolidBrush(ColorToRGB(Color)); - FillRect(dc, ClientRect, brush); - DeleteObject(brush); - end - else - DrawFrameToDC(dc); - - if _dc = 0 then - ReleaseDC(handle, dc); - - ShowRect; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.UpdateFrameNumber; -begin - if (fFrame >= fStopFrame) then - begin - if frepeatcount > 0 then - begin - dec(fRepeatCount); - if fRepeatCount = 0 then - begin - Stop; - exit; - end; - end; - - fFrame := fStartFrame - 1; - PlayAudio(fStartFrame, fStopFrame); - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.UpdateOtherAVIPlayers; -var - r : TRect; - i : integer; -begin - with Parent do - for i := ControlCount - 1 downto 0 do - begin - if (Controls[i] = self) then - break; - - if (Controls[i].Visible) and (Controls[i] is TDCAVIPlayer) then - with TDCAVIPlayer(Controls[i]) do - if [csDestroying, csLoading] * ComponentState = [] then - begin - fbackchanged := true; - r := ClientRect; - InvalidateRect(Handle, @r, true); - end; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.PlayNextFrame(var Msg : TMessage); -begin - UpdateFrameNumber; - inc(fFrame); - if fActive and not fDrawing then - begin - ShowFrame; - UpdateOtherAVIPlayers; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.SaveBackground; -var - dc : THandle; - formdc : THandle; - oldfbitmap : THandle; - fbitmap : THandle; - fdc : THandle; -begin - if Parent = nil then - exit; - - StartDrawing; - dc := GetDC(handle); - fdc := GetDC(parent.handle); - formdc := CreateCompatibleDC(fdc); - fbitmap := CreateCompatibleBitmap(fdc, parent.width, parent.height); - oldfbitmap := SelectObject(formdc, fbitmap); - - if ftempdc = 0 then - begin - ftempdc := CreateCompatibleDC(dc); - ftempbitmap := CreateCompatibleBitmap(dc, width, height); - foldbitmap := SelectObject(ftempdc, ftempbitmap); - end; - IntersectClipRect(formdc, left, top, left + width + 1, top + height + 1); - - - with parent do - PaintTo(formdc, 0, 0); - - SetViewPortOrgEx(formDC, 0, 0, nil); - BitBlt(ftempdc, 0, 0, width, height, formdc, left + 1, top + 1, SRCCOPY); - SelectObject(formdc, oldfbitmap); - DeleteObject(fbitmap); - DeleteDC(formdc); - ReleaseDC(Parent.Handle, fdc); - ReleaseDC(handle, dc); - - fdrawing := false; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.WMPaint(var Msg : TWMPaint); -var - ps : TPaintStruct; -begin - _dc := Msg.DC; - if _dc = 0 then - _dc := BeginPaint(handle, ps); - - try - Msg.result := 0; - -{ if name = 'DCAVIPlay3' then - asm nop end;} - - ShowFrame; - - finally - if Msg.DC = 0 then - EndPaint(handle, ps); - _dc := 0; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.WMEraseBkgnd(var Msg : TMessage); -var - brush : THandle; - r : TRect; - dc : THandle; - width : integer; - height : integer; -begin - if PaintDisabled then - exit; - - if not (fTransparent or fStretch) then - begin - CalcFrameLayout; - if fStretch then - begin - width := self.width; - height := self.height; - end - else - begin - width := fiwidth; - height := fiheight; - end; - - dc := GetDC(handle); - brush := CreateSolidBrush(ColorToRGB(Color)); - r := rect(fofs, fofs, self.width, fystart); - FillRect(dc, r, brush); - - r := rect(fofs, fystart, fxstart, self.height); - FillRect(dc, r, brush); - - r := rect(fxstart, fystart + height, self.width - fofs * 2, self.height - fofs * 2); - FillRect(dc, r, brush); - - r := rect(fxstart + width, fystart, self.width - fofs * 2, fystart + height); - FillRect(dc, r, brush); - - DeleteObject(brush); - ReleaseDC(handle, dc); - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.WMMove (var Msg : TMessage); -begin - inherited; - fbackchanged := true; - ShowFrame; - UpdateOtherAVIPlayers; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.KillTempDC; -begin - if ftempdc <> 0 then - begin - SelectObject(ftempdc, foldbitmap); - DeleteObject(ftempbitmap); - DeleteDC(ftempdc); - ftempdc := 0; - end; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.WMSize (var Msg : TMessage); -begin - StartDrawing; - KillTempDC; - inherited; - fBackChanged := true; - fdrawing := false; - AdjustControlsize; - if not Active then - ShowFrame; - UpdateOtherAVIPlayers; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.ShowRect; -var - DC : THandle; - Pen : THandle; - SavePen : THandle; - SaveBrush : THandle; -begin - if not (csDesigning in ComponentState) then - exit; - - dc := GetDC(Handle); - Pen := CreatePen(PS_DOT, 1, clBlack); - SavePen := SelectObject(dc, Pen); - SaveBrush := SelectObject(dc, GetStockobject(HOLLOW_BRUSH)); - Rectangle(dc, 0, 0, width, height); - SelectObject(DC, SavePen); - DeleteObject(Pen); - SelectObject(DC, SaveBrush); - ReleaseDC(Handle, DC); -end; - -{------------------------------------------------------------------} - -var - WHook : HHook; - hooks : TList; - -type TCWPStruct = packed record - lParam : LPARAM; - wParam : WPARAM; - message : integer; - wnd : HWND; -end; - -function CallWndProcHook(nCode : integer; wParam : Longint; var Msg : TCWPStruct) : longint; stdcall; -var - i : integer; - r : TRect; - r2 : TRect; - - function IsPaintMsg : boolean; - var - c : TWinControl; - begin - result := false; - c := FindControl(msg.wnd); - if (c <> nil) and not (c is TDCAVIPlayer) and - TDCAVIPlayer(hooks[i]).HandleAllocated and - (TDCAVIPlayer(hooks[i]).owner = c.owner) or - (TDCAVIPlayer(hooks[i]).owner = c) then - begin - GetWindowRect(msg.wnd , r); - GetWindowRect(TDCAVIPlayer(hooks[i]).handle, r2); - result := IntersectRect(r, r, r2); - end; - end; - -begin - Result := CallNextHookEx(WHook, nCode, wParam, Longint(@Msg)); - - if ((msg.message > CN_BASE) and (msg.message < CN_BASE + 500)) or - (msg.message = WM_PAINT) or (msg.message = WM_SIZE) -{ or (msg.message = WM_ERASEBKGND)} then - for i := 0 to hooks.Count - 1 do - with TDCAVIPlayer(hooks[i]) do - if HandleAllocated and Transparent and IsPaintMsg then - begin - fbackchanged := true; - r := ClientRect; - InvalidateRect(Handle, @r, true); - end; -end; - -{------------------------------------------------------------------} - -procedure AddHook(o : TDCAVIPlayer); -begin - if hooks.Count = 0 then - WHook := SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProcHook, 0, GetCurrentThreadId); - hooks.Add(o); -end; - -{------------------------------------------------------------------} - -procedure RemoveHook(o : TDCAVIPlayer); -begin - hooks.Remove(o); - if hooks.Count = 0 then - UnHookWindowsHookEx(WHook); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.HookWndProc; -begin - AddHook(self); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.UnHookWndProc; -begin - RemoveHook(self); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.Reset; -begin - CloseFile; - OpenFile; -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.DoOpen; -begin - if Assigned(fOnOpen) then - fOnOpen(self); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.DoClose; -begin - if Assigned(fOnClose) then - fOnClose(self); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.DoStart; -begin - if Assigned(fOnStart) then - fOnStart(self); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.MMWOM_DONE(var M:TMessage); -begin - faudioplay.AudioPlayMessage(PWAVEHDR(M.lParam)); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.DoStop; -begin - if Assigned(fOnStop) then - fOnStop(Self); -end; - -{------------------------------------------------------------------} - -procedure TDCAVIPlayer.DisplayChange(var Msg : TMessage); -begin - DrawDIBClose(hdrawdib); - hdrawdib := DrawDIBOpen; -end; - -{------------------------------------------------------} - -destructor TAudioPlay.Destroy; -begin - Stop; - inherited; -end; - -{--------------------------------------------------------------} - -procedure TAudioPlay.AudioPlayMessage(W : PWAVEHDR); -begin - waveOutUnprepareHeader(FWaveOut, W, sizeof(TWAVEHDR)); - FreeMem(W, FBufferSize + sizeof(TWAVEHDR)); - if FPlaying then - FillBuffer; -end; - -{--------------------------------------------------------------} - -function TAudioPlay.FillBuffer : Boolean; -var - AudioBuf : PWAVEHDR; - SamplesToPlay : integer; - lRead : integer; -begin - Result := false; - GetMem(AudioBuf, fBufferSize + sizeof(TWAVEHDR)); - with AudioBuf^ do - begin - dwuser := integer(Self); - dwFlags := WHDR_DONE; - lpData := pointer(integer(AudioBuf) + sizeof(TWAVEHDR)); - dwBufferLength := fBufferSize; - end; - if waveOutPrepareHeader(FWaveOut, AudioBuf, - sizeof(TWAVEHDR)) <> MMSYSERR_NOERROR then - begin - FreeMem(AudioBuf, fBufferSize + sizeof(TWAVEHDR)); - exit; - end; - - SamplesToPlay := Min(fEnd - fCurrent, fBufferSize div fSampleSize); - if SamplesToPlay > 0 then - begin - AVIStreamRead(fAvi, fCurrent, SamplesToPlay, AudioBuf.lpData, - fBufferSize, @AudioBuf.dwBufferLength, @lRead); - if LRead = SamplesToPlay then - begin - inc(fCurrent, lRead); - waveOutWrite(fWaveOut, AudioBuf, sizeof(TWAVEHDR)); - end; - end; - fPlaying := true; - result := true; -end; - -{--------------------------------------------------------------} - -function TAudioPlay.OpenDevice(W : HWND; pAvi : pointer) : boolean; -var - strhdr : TAVISTREAMINFO; - lpFormat : pointer; - cbFormat : longint; -begin - result := false; - fAVI := pAvi; - AVIStreamInfo(pAvi, @StrHdr, sizeof(StrHdr)); - fSampleSize := StrHdr.dwSampleSize; - if (fSampleSize <= 0) then - exit; - - fBufferSize := Max(fSampleSize, cBufSize); - AVIStreamFormatSize(pavi, 0, @cbFormat); - GetMem(lpFormat, cbFormat); - FillChar(lpFormat^, cbFormat, 0); - AVIStreamReadFormat(pAvi, 0, lpFormat, @cbFormat); - sndPlaySound(nil, 0); - if waveOutOpen(@FWaveOut, WAVE_MAPPER, lpFormat, - W, 0, CALLBACK_WINDOW) = 0 then - result := true; - - FreeMem(lpFormat, cbFormat); -end; - -{--------------------------------------------------------------} - -procedure TAudioPlay.Stop; -begin - if fWaveOut <> 0 then - begin - FPlaying := false; - waveOutReset(FWaveOut); - waveOutClose(FWaveOut); - fWaveOut := 0; - end; -end; - -{--------------------------------------------------------------} - -function TAudioPlay.Play(W : HWND; pAvi : Pointer; lStart, lEnd : longint) : boolean; -var - i : integer; -begin - if fPlaying then - Stop; - - Result := false; - if lStart < 0 then - lStart := AVIStreamStart(pavi); - - if lEnd < 0 then - lEnd := AVIStreamEnd(pavi); - - if lStart >= lEnd then - exit; - - if not OpenDevice(W, pAvi) then - exit; - - waveOutPause(fWaveOut); - fBegin := lStart; - FCurrent := lStart; - fEnd := lEnd; - fPlaying := true; - for i := 1 to CAheadBuffers do - FillBuffer; - - waveOutRestart(FWaveOut); - result := true; -end; - -{---------------------------------------------------------------------} -{_FS: add} -function TDCAVIPlayer.GetFrameRate: integer; -var - info: TAviStreamInfo; -begin - Result:=0; - if not Assigned(fvideostream) then Exit; - AVIStreamInfo(fvideostream, @info, sizeof(info)); - Result := info.dwRate div info.dwScale; -end; -{_FS: end add} - -initialization - hooks := TList.Create; -finalization - if hooks.Count > 0 then - UnHookWindowsHookEx(WHook); - hooks.Free; -end. +{*******************************************************}
+{ }
+{ TDCAVIPlayer component }
+{ }
+{ Copyright (c) 1997-1999 Dream Company }
+{ http://www.dream-com.com }
+{ e-mail: contact@dream-com.com }
+{ }
+{*******************************************************}
+{Modified for Framestein, look for '_FS'}
+
+unit fsdcAVI;
+
+interface
+{$I dc.inc}
+uses
+ Windows, Messages, Graphics, Classes, Controls, mmSystem
+ {$IFNDEF D3},SysUtils{$ENDIF};
+
+const
+ WM_NEXTFRAME = WM_USER + 1;
+
+ cBufSize = 2048; {audio buffer size}
+ CAheadBuffers = 8;
+
+type
+ TAudioPlay = class
+ private
+ fBufferSize : integer;
+ fAVI : pointer;
+ fSampleSize : integer;
+ fEnd : integer;
+ fPlaying : boolean;
+ fWaveOut : HWAVEOUT;
+ fBegin : integer;
+ fCurrent : integer;
+
+ function OpenDevice(W : HWND; pAvi : pointer) : boolean;
+ function FillBuffer : boolean;
+ public
+ destructor Destroy; override;
+ procedure AudioPlayMessage(W : PWAVEHDR);
+ procedure Stop;
+ function Play(W : HWND; pAvi : Pointer; lStart, lEnd : longint) : boolean;
+ end;
+
+
+ TDCAVIPlayer = class(TCustomControl)
+ private
+ _dc : THandle;
+ fActive : boolean;
+ fAutoSize : boolean;
+ fCenter : boolean;
+ fFileName : string;
+ fOpen : boolean;
+ fRepetitions : integer;
+ fStartFrame : integer;
+ fStopFrame : integer;
+ fTransparent : boolean;
+ fSkipFrames : boolean;
+ fStretch : boolean;
+ fLength : integer;
+ fFrameWidth : integer;
+ fFrameHeight : integer;
+ fPlaySound : boolean;
+
+ fOnClose : TNotifyEvent;
+ fOnOpen : TNotifyEvent;
+ fOnStart : TNotifyEvent;
+ fOnStop : TNotifyEvent;
+
+ favifile : pointer;
+ faudiostream : pointer;
+ fvideostream : pointer;
+ fFrame : integer;
+ fTimer : THandle;
+ fgetframe : pointer;
+ fdrawing : boolean;
+ fdrawcontrol : integer;
+ ftempdc : THandle;
+ ftempbitmap : THandle;
+ foldbitmap : THandle;
+ frepeatcount : integer;
+ fdelay : integer;
+ fbackchanged : boolean;
+ fBlockChanges : boolean;
+ faudioplay : TAudioPlay;
+ hdrawdib : THandle;
+
+ fxstart : integer;
+ fystart : integer;
+ fofs : integer;
+ fxofs : integer;
+ fyofs : integer;
+ fiwidth : integer;
+ fiheight : integer;
+
+ procedure PlayNextFrame(var Msg : TMessage); message WM_NEXTFRAME;
+ procedure SaveBackground;
+ procedure AdjustControlsize;
+ procedure ShowRect;
+ procedure KillTempDC;
+ procedure HookWndProc;
+ procedure UnHookWndProc;
+ procedure MMWOM_DONE(var M:TMessage); message MM_WOM_DONE;
+ procedure PlayAudio(startframe, endframe : integer);
+ procedure CalcFrameLayout;
+ procedure DisplayChange(var Msg : TMessage); message WM_DISPLAYCHANGE;
+ procedure ValidateFrameNumber(var val : integer);
+ procedure UpdateFrameNumber;
+ function ZOrder : integer;
+ procedure StartDrawing;
+ function GetFrameRate: integer;
+ protected
+ procedure UpdateOtherAVIPlayers;
+ function PaintDisabled : boolean;
+ procedure CreateParams (var Params: TCreateParams); override;
+ procedure ShowFrame;
+ procedure WMPaint(var Msg : TWMPaint); message WM_PAINT;
+ procedure WMEraseBkgnd(var Msg : TMessage); message WM_ERASEBKGND;
+ procedure WMMove (var Msg : TMessage); message WM_MOVE;
+ procedure WMSize (var Msg : TMessage); message WM_SIZE;
+
+ procedure Loaded; override;
+ procedure SetActive (val : boolean); virtual;
+ procedure SetAutoSize (val : boolean); virtual;
+ procedure SetCenter (val : boolean); virtual;
+ procedure SetFileName (val : string); virtual;
+ procedure SetRepetitions (val : integer); virtual;
+ procedure SetStartFrame (val : integer); virtual;
+ procedure SetStopFrame (val : integer); virtual;
+ procedure SetTransparent (val : boolean); virtual;
+ procedure SetStretch (val : boolean); virtual;
+ procedure SetPlaySound(val : boolean); virtual;
+
+ procedure OpenFile; virtual;
+ procedure CloseFile; virtual;
+
+ procedure DoOpen; virtual;
+ procedure DoClose; virtual;
+ procedure DoStart; virtual;
+ procedure DoStop; virtual;
+ public
+ procedure DrawFrameToDC(dc : THandle); {_FS - This was private}
+ constructor Create (AOwner : TComponent); override;
+ destructor Destroy; override;
+ procedure Play (FromFrame, ToFrame: Word; Count: Integer);
+ procedure Reset;
+ procedure Seek (Frame : integer);
+ procedure Stop;
+
+ {_FS - add: property FrameRate}
+ property FrameRate : integer read GetFrameRate;
+ property FrameCount : integer read fLength;
+ property FrameHeight: Integer read FFrameHeight;
+ property FrameWidth : Integer read FFrameWidth;
+
+ property Open : boolean read fOpen;
+
+ published
+ property Active : boolean read fActive write SetActive default false;
+ property AutoSize : boolean read fAutoSize write SetAutoSize default true;
+ property Center : boolean read fCenter write SetCenter default true;
+ property FileName : string read fFileName write SetFileName;
+ property PlaySound : boolean read fPlaySound write SetPlaySound default true;
+ property Repetitions : integer read fRepetitions write SetRepetitions default 0;
+ property StartFrame : integer read fStartFrame write SetStartFrame default 1;
+ property StopFrame : integer read fStopFrame write SetStopFrame default 0;
+ property Stretch : boolean read fStretch write SetStretch default false;
+ property Transparent : boolean read fTransparent write SetTransparent default true;
+
+ property Position : integer read fFrame write Seek;
+
+ property OnOpen: TNotifyEvent read fOnOpen write fOnOpen;
+ property OnClose: TNotifyEvent read fOnClose write fOnClose;
+ property OnStart: TNotifyEvent read fOnStart write fOnStart;
+ property OnStop: TNotifyEvent read fOnStop write fOnStop;
+
+ property Align;
+ property Color;
+ property ParentColor;
+ property ParentShowHint;
+ property ShowHint;
+ property Visible;
+
+ property OnMouseDown;
+ property OnClick;
+ end;
+
+type
+ TAVIStream = record
+ fccType : longint;
+ fccHandler : longint;
+ dwFlags : longint;
+ dwCaps : longint;
+ wPriority : word;
+ wLanguage : word;
+ dwScale : longint;
+ dwRate : longint;
+ dwStart : longint;
+ dwLength : longint;
+ dwInitialFrames : longint;
+ dwSuggestedBufferSize : longint;
+ dwQuality : longint;
+ dwSampleSize : longint;
+ rcFrame : TRect;
+ dwEditCount : longint;
+ dwFormatChangeCount : longint;
+ Name : array [0..64] of char;
+ end;
+
+ PAVIStream = ^TAVIStream;
+
+ PAVIFile = pointer;
+
+ TAVIFileInfo = record
+ dwMaxBytesPerSec : longint; // max. transfer rate
+ dwFlags : longint; // the ever-present flags
+ dwCaps : longint;
+ dwStreams : longint;
+ dwSuggestedBufferSize : longint;
+
+ dwWidth : longint;
+ dwHeight : longint;
+
+ dwScale : longint;
+ dwRate : longint; // dwRate / dwScale == samples/second
+ dwLength : longint;
+
+ dwEditCount : longint;
+
+ szFileType : array[0..63] of char; // descriptive string for file type?
+ end;
+
+ PAVIFileInfo = ^TAVIFileInfo;
+
+ TAVIStreamInfo = record
+ fccType : longint;
+ fccHandler : longint;
+ dwFlags : longint; // Contains AVITF_* flags
+ dwCaps : longint;
+ wPriority : word;
+ wLanguage : word;
+ dwScale : longint;
+ dwRate : longint; // dwRate / dwScale == samples/second
+ dwStart : longint;
+ dwLength : longint; // In units above...
+ dwInitialFrames : longint;
+ dwSuggestedBufferSize : longint;
+ dwQuality : longint;
+ dwSampleSize : longint;
+ rcFrame : TRect;
+ dwEditCount : longint;
+ dwFormatChangeCount : longint;
+ szName : array[0..63] of char;
+ end;
+
+ PAVIStreamInfo = ^TAVIStreamInfo;
+
+
+//BeginSkipConst
+procedure AVIFileInit; stdcall; external 'avifil32.dll' name 'AVIFileInit';
+
+procedure AVIFileExit; stdcall; external 'avifil32.dll' name 'AVIFileExit';
+
+function AVIFileOpen(avifile : pointer; filename : pchar; mode : integer;
+ CLSID : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIFileOpen';
+
+function AVIFileRelease(avifile : pointer) : longint; stdcall; external 'avifil32.dll' name 'AVIFileRelease';
+
+function AVIFileGetStream(avifile : pointer; avistream : PAVIStream;
+ streamtype : longint; lParam : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIFileGetStream';
+
+function AVIStreamGetFrameOpen(avistream : PAVIStream; bitmapwanted : pointer) : pointer; stdcall; external 'avifil32.dll' name 'AVIStreamGetFrameOpen';
+
+procedure AVIStreamGetFrameClose(pget : pointer); stdcall; external 'avifil32.dll' name 'AVIStreamGetFrameClose';
+
+function AVIStreamGetFrame(getframe : pointer; position : longint) : pointer; stdcall; external 'avifil32.dll' name 'AVIStreamGetFrame';
+
+function AVIStreamOpenFromFile(avistream : PAVIStream; filename : pchar;
+ streamtype : word; lParam : longint;
+ mode : longint; clsid : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamOpenFromFile';
+
+procedure AVIStreamRelease(avistream : PAVIStream); stdcall; external 'avifil32.dll' name 'AVIStreamRelease';
+function AVIFileInfo(pfile : PAVIFile; pfi : PAVIFileInfo; lSize : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIFileInfo';
+
+function AVIStreamInfo(pstream : PAVIStream; psi : PAVISTREAMINFO; lsize : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamInfo';
+function AVIStreamRead(pavi : PAVIStream; lStart, lSamples : longint;
+ lpBuffer : pointer; cbBuffer : longint;
+ plBytes, plSamples : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamRead';
+
+function AVIStreamReadFormat(pavi : PAVIStream; lPos : longint;
+ lpFormat : pointer; lpcbFormat : pointer) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamReadFormat';
+
+function AVIStreamBeginStreaming(pavi : PAVIStream; lStart, lEnd, lRate : longint) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamBeginStreaming';
+function AVIStreamEndStreaming(pavi : PAVIStream) : integer; stdcall; external 'avifil32.dll' name 'AVIStreamEndStreaming';
+function AVIStreamStart(pavi : PAVIStream) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamStart';
+function AVIStreamLength(pavi: PAVIStream) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamLength';
+function AVIStreamSampleToTime(pavi : PAVIStream; lSample : longint) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamSampleToTime';
+function AVIStreamTimeToSample(pavi : PAVIStream; Time : longint) : longint; stdcall; external 'avifil32.dll' name 'AVIStreamTimeToSample';
+
+function DrawDIBOpen : THandle; stdcall; external 'msvfw32.dll' name 'DrawDibOpen';
+procedure DrawDIBClose (h : THandle); stdcall; external 'msvfw32.dll' name 'DrawDibClose';
+procedure DrawDibDraw (hdib, dc : THandle; xDst, yDst, dxDst, dyDst : integer;
+ lpbi, lpBits : pointer; xSrc, ySrc, dxSrc, dySrc, wFlags : integer); stdcall; external 'msvfw32.dll' name 'DrawDibDraw';
+//EndSkipConst
+
+const
+ streamtypeAUDIO : longint = $73647561;
+ streamtypeVIDEO : longint = $73646976;
+
+ AVISTREAMREAD_CONVENIENT = -1;
+
+ DDF_HALFTONE = $1000;
+
+{-----------------------------------------------------------------------}
+
+implementation
+
+function Min(A, B: Integer): Integer;
+begin
+ if A < B then
+ Result := A
+ else
+ Result := B;
+end;
+
+function Max(A, B: Integer): Integer;
+begin
+ if A > B then
+ Result := A
+ else
+ Result := B;
+end;
+
+function RectWidth(const R: TRect): Integer;
+begin
+ with R do
+ Result := Right - Left;
+end;
+
+function RectHeight(const R: TRect): Integer;
+begin
+ with R do
+ Result := Bottom - Top;
+end;
+
+{$IFNDEF D3}
+function TransparentStretchBlt(DstDC: HDC; DstX, DstY, DstW, DstH: Integer;
+ SrcDC: HDC; SrcX, SrcY, SrcW, SrcH: Integer; MaskDC: HDC; MaskX,
+ MaskY: Integer): Boolean;
+const
+ ROP_DstCopy = $00AA0029;
+var
+ MemDC : THandle;
+ MemBmp : THandle;
+ Save : THandle;
+ crText : TColorRef;
+ crBack : TColorRef;
+begin
+ Result := True;
+ if (Win32Platform = VER_PLATFORM_WIN32_NT) and (SrcW = DstW) and (SrcH = DstH) then
+ begin
+ MemBmp := CreateCompatibleBitmap(SrcDC, 1, 1);
+ MemBmp := SelectObject(MaskDC, MemBmp);
+ MaskBlt(DstDC, DstX, DstY, DstW, DstH, SrcDC, SrcX, SrcY, MemBmp, MaskX,
+ MaskY, MakeRop4(ROP_DstCopy, SrcCopy));
+ MemBmp := SelectObject(MaskDC, MemBmp);
+ DeleteObject(MemBmp);
+ exit;
+ end;
+
+ MemDC := CreateCompatibleDC(0);
+ MemBmp := CreateCompatibleBitmap(SrcDC, SrcW, SrcH);
+ Save := SelectObject(MemDC, MemBmp);
+ StretchBlt(MemDC, 0, 0, SrcW, SrcH, MaskDC, MaskX, MaskY, SrcW, SrcH, SrcCopy);
+ StretchBlt(MemDC, 0, 0, SrcW, SrcH, SrcDC, SrcX, SrcY, SrcW, SrcH, SrcErase);
+ crText := SetTextColor(DstDC, $0);
+ crBack := SetBkColor(DstDC, $FFFFFF);
+ StretchBlt(DstDC, DstX, DstY, DstW, DstH, MaskDC, MaskX, MaskY, SrcW, SrcH, SrcAnd);
+ StretchBlt(DstDC, DstX, DstY, DstW, DstH, MemDC, 0, 0, SrcW, SrcH, SrcInvert);
+ SetTextColor(DstDC, crText);
+ SetTextColor(DstDC, crBack);
+ SelectObject(MemDC, Save);
+ DeleteObject(MemBmp);
+ DeleteDC(MemDC);
+end;
+{$ENDIF}
+
+Procedure TransparentBitBltEx(sourcedc, destdc: THandle; SrcRect,DstRect: TRect;
+ atranscolor: longint);
+Var
+ monobitmap: THandle;
+ oldbkcolor: longint;
+ monodc: THandle;
+ width: integer;
+ height: integer;
+ oldbitmap: THandle;
+Begin
+ With SrcRect do
+ Begin
+ width := RectWidth(SrcRect);
+ height := RectHeight(SrcRect);
+ monodc := CreateCompatibleDC(sourcedc);
+ monobitmap := CreateCompatibleBitmap(monodc, width, height);
+ oldbitmap := SelectObject(monodc, monobitmap);
+ Try
+ oldbkcolor := SetBkColor(sourcedc, atranscolor);
+ BitBlt(monodc, 0, 0, width, height, sourcedc, Left, Top, SRCCOPY);
+ SetBkColor(sourcedc, oldbkcolor);
+ TransparentStretchBlt(destdc, DstRect.Left, DstRect.Top, RectWidth(DstRect),
+ RectHeight(DstRect), SourceDC, left, top, width, height, monodc, 0, 0);
+ Finally
+ SelectObject(monodc, oldbitmap);
+ DeleteDC(monodc);
+ DeleteObject(monobitmap);
+ End;
+ End;
+End;
+
+Procedure TransparentBitBlt(sourcedc, destdc: THandle; arect: TRect;
+ atranscolor: longint; aoriginX,aoriginY: Integer);
+begin
+ TransparentBitBltEx(sourcedc, destdc,arect,
+ Rect(aoriginX,aoriginY,aoriginX+RectWidth(arect),aoriginY+RectHeight(arect)),
+ atranscolor);
+end;
+
+Function GetTransparentColor(dc: THandle; const arect: TRect): longint;
+Begin
+ Result := GetPixel(dc, arect.left, arect.bottom);
+End;
+
+{-----------------------------------------------------------------------}
+
+function AVIStreamEnd (pavi : PAVIStream) : longint;
+begin
+ result := AVIStreamStart(pavi) + AVIStreamLength(pavi);
+end;
+
+{-----------------------------------------------------------------------}
+
+function AVIStreamFormatSize (pavi : PAVIStream; lPos : longint; plSize : pointer) : longint;
+begin
+ result := AVIStreamReadFormat(pavi, lPos, nil, plSize);
+end;
+
+{-----------------------------------------------------------------------}
+
+constructor TDCAVIPlayer.Create (AOwner : TComponent);
+begin
+ inherited Create(AOwner);
+ width := 100;
+ height := 50;
+
+ fAutoSize := true;
+ fCenter := true;
+ fStartFrame := 1;
+ fTransparent := true;
+ fSkipFrames := true;
+ fAutoSize := true;
+ fBackChanged := true;
+ fblockchanges := true;
+ fPlaySound := true;
+
+ AVIFileInit;
+ faudioplay := TAudioPlay.Create;
+ HookWndProc;
+ hdrawdib := DrawDIBOpen;
+end;
+
+{------------------------------------------------------------------}
+
+destructor TDCAVIPlayer.Destroy;
+begin
+ Stop;
+ UnHookWndProc;
+ DrawDIBClose(hdrawdib);
+ KillTempDC;
+ CloseFile;
+ faudioplay.Free;
+ AVIFileExit;
+ inherited Destroy;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.CreateParams(var Params: TCreateParams);
+begin
+ inherited CreateParams(Params);
+ Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;
+end;
+
+{------------------------------------------------------------------}
+
+function TDCAVIPlayer.ZOrder : integer;
+begin
+ if Parent <> nil then
+ with Parent do
+ for result := 0 to ControlCount - 1 do
+ if Controls[result] = self then
+ exit;
+
+ result := -1
+end;
+
+{------------------------------------------------------------------}
+
+procedure Timer(uID, uMsg, dwUser, dw1, dw2 : longint); stdcall;
+begin
+ PostMessage(TDCAVIPlayer(dwUser).Handle, WM_NEXTFRAME, 0, 0);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.PlayAudio(startframe, endframe : integer);
+var
+ astart : integer;
+ aend : integer;
+begin
+ if (faudiostream = nil) or not fPlaySound then
+ exit;
+
+ astart := AVIStreamTimeToSample(faudiostream, AVIStreamSampleToTime(fvideostream, startFrame));
+ aend := AVIStreamTimeToSample(faudiostream, AVIStreamSampleToTime(fvideostream, endFrame));
+ faudioplay.play(handle, faudiostream, astart, aend);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.Play (FromFrame, ToFrame: Word; Count: Integer);
+var
+ info : TAVIStreamInfo;
+ ainfo : TAVIStreamInfo;
+begin
+ Stop;
+ if not Assigned(fvideostream) then
+ exit;
+
+ fFrame := FromFrame;
+ fStartFrame := FromFrame;
+ fStopFrame := ToFrame;
+ frepeatCount := Count;
+ AVIStreamInfo(fvideostream, @info, sizeof(info));
+ fdelay := MulDiv(info.dwScale, 1000, info.dwRate);
+
+ DoStart;
+ fActive := true;
+ if Assigned(faudiostream) then
+ begin
+ AVIStreamInfo(fvideostream, @ainfo, sizeof(info));
+ PlayAudio(fFrame, fStopFrame);
+ end;
+
+ fTimer := timeSetEvent(fdelay, 0, @Timer, integer(self), TIME_PERIODIC);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.Stop;
+begin
+ if ftimer <> 0 then
+ begin
+ timeKillEvent(fTimer);
+ fTimer := 0;
+ end;
+
+ if not fActive then
+ exit;
+
+ faudioplay.stop;
+ fActive := false;
+ DoStop;
+ ShowFrame;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.Seek (Frame : integer);
+begin
+ if Frame = fFrame then
+ exit;
+
+ Stop;
+ ValidateFrameNumber(Frame);
+ fFrame := Frame;
+ Invalidate;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.Loaded;
+var
+ _startframe : integer;
+ _stopframe : integer;
+begin
+ inherited Loaded;
+
+ if ffilename <> '' then
+ begin
+ fBlockChanges := false;
+ _startframe := fstartframe;
+ _stopframe := fStopFrame;
+ OpenFile;
+ fstartframe := _startframe;
+ fStopFrame := _stopframe;
+ fBlockChanges := true;
+ end;
+
+
+ if fActive then
+ if fOpen then
+ Play(fStartFrame, fStopFrame, fRepetitions)
+ else
+ fActive := false;
+
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetActive(val : boolean);
+begin
+ if val = fActive then
+ exit;
+
+ if not (csReading in ComponentState) then
+ if val then
+ begin
+ Play(fStartFrame, fStopFrame, fRepetitions)
+ end
+ else
+ begin
+ Stop;
+ if csDesigning in ComponentState then
+ begin
+ fFrame := 0;
+ ShowFrame;
+ end;
+ end;
+
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetAutoSize(val : boolean);
+begin
+ if val = fAutoSize then
+ exit;
+
+ fAutoSize := val;
+ AdjustControlsize;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetCenter(val : boolean);
+begin
+ if val = fCenter then
+ exit;
+
+ fCenter := val;
+ if not fTransparent then
+ Invalidate;
+
+ ShowFrame;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetFileName(val : string);
+var
+ wasactive : boolean;
+begin
+ if val = fFileName then
+ exit;
+
+ ffilename := val;
+ if csReading in ComponentState then
+ exit;
+
+ wasactive := fActive;
+
+ Reset;
+
+ Invalidate;
+ ShowFrame;
+
+ if val = '' then
+ begin
+ fbackchanged := true;
+ Parent.Invalidate;
+ UpdateWindow(Parent.Handle);
+ end;
+
+ if wasActive then
+ if not (csReading in ComponentState) then
+ Active := true
+ else
+ fActive := true;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetRepetitions(val : integer);
+begin
+ if val = fRepetitions then
+ exit;
+
+ fRepetitions := val;
+ if csDesigning in ComponentState then
+ begin
+ Stop;
+ fFrame := 0;
+ ShowFrame;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.ValidateFrameNumber(var val : integer);
+begin
+ if fOpen then
+ if val > fLength - 1 then
+ val := fLength - 1
+ else
+ if val < 0 then
+ val := 0;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetStartFrame(val : integer);
+begin
+ if (val = fStartFrame) then
+ exit;
+
+ ValidateFrameNumber(val);
+ fStartFrame := val;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetStopFrame(val : integer);
+begin
+ if val = fStopFrame then
+ exit;
+
+ ValidateFrameNumber(val);
+ fStopFrame := val;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetTransparent(val : boolean);
+begin
+ if val = fTransparent then
+ exit;
+
+ fTransparent := val;
+ Invalidate;
+ ShowFrame;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetStretch (val : boolean);
+begin
+ if val = fStretch then
+ exit;
+
+ fStretch := val;
+ if not (csReading in ComponentState) then
+ begin
+ if not val then
+ invalidate;
+
+ if not fActive then
+ ShowFrame;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SetPlaySound (val : boolean);
+begin
+ if val = fPlaySound then
+ exit;
+
+ fPlaySound := val;
+ if fActive then
+ if val then
+ PlayAudio(fFrame, fStopFrame)
+ else
+ faudioplay.Stop;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.AdjustControlsize;
+var
+ info : TAVIStreamInfo;
+ r : TRect;
+ r2 : TRect;
+ i : integer;
+ crect : TRect;
+begin
+ if fautosize and fOpen then
+ begin
+ AVIStreamInfo(fvideostream, @info, sizeof(info));
+ if fblockchanges then
+ Parent.Perform(WM_SETREDRAW, 0, 0);
+ r := Rect(left, top, left + width, top + height);
+ with info.rcframe do
+ SetBounds(self.left, self.top, right - left, bottom - top);
+ if fblockchanges then
+ begin
+ Parent.Perform(WM_SETREDRAW, 1, 0);
+ r2 := Rect(left, top, left + width, top + height);
+ SubtractRect(r, r, r2);
+ InvalidateRect(Parent.Handle, @r, true);
+ with Parent do
+ for i := 0 to ControlCount - 1 do
+ begin
+ with Controls[i] do
+ crect := Rect(left, top, left + width, top + height);
+
+ if (Controls[i] is TWinControl) and (Controls[i] <> self) and
+ InterSectRect(r2, r, crect) then
+ Controls[i].Invalidate;
+ end;
+ end;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.OpenFile;
+var
+ info : TAVIStreamInfo;
+begin
+ if ffilename = '' then
+ exit;
+
+ if (AVIFileOpen(@favifile, @(ffilename[1]), 0, nil) <> 0) then
+ exit;
+
+ if (AVIFileGetStream(favifile, @fvideostream, streamtypeVIDEO, 0) <> 0) then
+ begin
+ AVIFileRelease(favifile);
+ exit;
+ end;
+
+ fgetframe := AVIStreamGetFrameOpen(fvideostream, nil);
+
+ if fgetframe = nil then
+ begin
+ AVIStreamRelease(fvideostream);
+ AVIFileRelease(favifile);
+ exit;
+ end;
+
+ AVIFileGetStream(favifile, @faudiostream, streamtypeAUDIO, 0);
+
+ AVIStreamInfo(fvideostream, @info, sizeof(info));
+ with info do
+ begin
+ fLength := dwlength;
+ fFrameWidth := rcframe.right - rcframe.left;
+ fFrameHeight := rcframe.bottom - rcframe.top;
+ fStartFrame := dwStart;
+ fStopFrame := fLength - 1;
+ end;
+ fFrame := fStartFrame;
+ fOpen := true;
+ SetWindowLong(handle, GWL_EXSTYLE, GetWindowLong(handle, GWL_EXSTYLE) and (not WS_EX_TRANSPARENT));
+ AdjustControlsize;
+ fbackchanged := true;
+ Invalidate;
+{ ShowFrame;
+ Parent.Invalidate;}
+ DoOpen;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.CloseFile;
+begin
+ if not fOpen then
+ exit;
+
+ if fActive then
+ Stop;
+
+ if Assigned(fgetframe) then
+ AVIStreamGetFrameClose(fgetframe);
+
+ if Assigned(faudiostream) then
+ AVIStreamRelease(faudiostream);
+
+ if Assigned(fvideostream) then
+ AVIStreamRelease(fvideostream);
+
+ if Assigned(favifile) then
+ AVIFileRelease(favifile);
+
+ faudiostream := nil;
+ fvideostream := nil;
+ favifile := nil;
+ fgetframe := nil;
+ fOpen := false;
+ fLength := 0;
+ DoClose;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.CalcFrameLayout;
+begin
+ fxstart := 0;
+ fystart := 0;
+ if csDesigning in ComponentState then
+ fofs := 1
+ else
+ fofs := 0;
+
+ if fOpen then
+ begin
+ fiwidth := FrameWidth;
+ fiheight := FrameHeight;
+ end
+ else
+ begin
+ fiwidth := self.width;
+ fiheight := self.height;
+ end;
+
+ if not Stretch and fCenter then
+ begin
+ fxstart := (self.width - fiwidth) div 2;
+ fystart := (self.height - fiheight) div 2;
+ end;
+
+ if not Transparent then
+ begin
+ if fxstart > 0 then
+ fxofs := 0
+ else
+ fxofs := fofs;
+
+ if fystart > 0 then
+ fyofs := 0
+ else
+ fyofs := fofs;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.StartDrawing;
+begin
+ fdrawing := true;
+ fdrawcontrol := ZOrder;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.DrawFrameToDC(dc : THandle);
+var
+ memdc : THandle;
+ formdc : THandle;
+ image : pointer;
+ imagestart : integer;
+ bitmap : THandle;
+ fbitmap : THandle;
+ oldmemobject : THandle;
+ oldfobject : THandle;
+ width : integer;
+ height : integer;
+
+begin
+{_FS - We're not using your window anyway...}
+// if PaintDisabled then
+// exit;
+
+ if fTransparent and (fBackChanged or not fActive) then
+ begin
+ SaveBackGround;
+ fBackChanged := false;
+ end;
+
+ StartDrawing;
+ memdc := CreateCompatibleDC(dc);
+ formdc := CreateCompatibleDC(dc);
+ try
+ image := AVIStreamGetFrame(fgetframe, fFrame);
+ CalcFrameLayout;
+
+ if fStretch then
+ begin
+ width := self.width;
+ height := self.height;
+ end
+ else
+ begin
+ width := fiwidth;
+ height := fiheight;
+ end;
+
+ imagestart := 0;
+
+ if Assigned(image) then
+ begin
+ SetStretchBltMode(memdc, HALFTONE);
+ imagestart := TBitmapInfoHeader(image^).biSize + TBitmapInfoHeader(image^).biClrUsed * 4;
+ end;
+
+ if fTransparent then
+ begin
+ bitmap := CreateCompatibleBitmap(dc, width, height);
+ oldmemobject := SelectObject(memdc, bitmap);
+
+ StretchDIBits(memdc, 0, 0, width, height, 0, 0, fiwidth, fiheight, pchar(image) + imagestart,
+ TBitmapInfo(image^), 0, SRCCOPY);
+
+ fbitmap := CreateCompatibleBitmap(dc, self.width, self.height);
+ oldfobject := SelectObject(formdc, fbitmap);
+
+ BitBlt(formdc, 0, 0, self.width, self.height, ftempdc, 0, 0, SRCCOPY);
+
+ if Assigned(image) then
+ TransparentBitBlt(memdc, formdc, Rect(0, 0, width, height),
+ GetTransparentColor(memdc, Rect(0, 0, width - 1, height - 1)),
+ fxstart, fystart);
+
+ BitBlt(dc, fofs, fofs, self.width - fofs * 2, self.height - fofs * 2, formdc, fofs, fofs, SRCCOPY);
+
+ SelectObject(formdc, oldfobject);
+ DeleteObject(fbitmap);
+ SelectObject(memdc, oldmemobject);
+ DeleteObject(bitmap);
+ end
+ else
+ DrawDibDraw(hdrawdib, dc, fxstart, fystart, width - fxofs * 2, height - fyofs * 2,
+ image, pchar(image) + imagestart, 0, 0, fiwidth, fiheight, DDF_HALFTONE);
+
+ finally
+ DeleteDC(memdc);
+ DeleteDC(formdc);
+ fdrawing := false;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+function TDCAVIPlayer.PaintDisabled : boolean;
+begin
+ result := fDrawing or ([csReading, csLoading] * ComponentState <> []) or (Parent = nil)
+ or ([csReading, csLoading] * Parent.ComponentState <> [])
+ or not HandleAllocated or not ({_FS-visible or }(csDesigning in ComponentState));
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.ShowFrame;
+var
+ dc : THandle;
+ brush : THandle;
+begin
+ if PaintDisabled then
+ exit;
+
+ if _dc = 0 then
+ dc := GetDC(handle)
+ else
+ dc := _dc;
+
+ if not (fTransparent or fOpen) then
+ begin
+ brush := CreateSolidBrush(ColorToRGB(Color));
+ FillRect(dc, ClientRect, brush);
+ DeleteObject(brush);
+ end
+ else
+ DrawFrameToDC(dc);
+
+ if _dc = 0 then
+ ReleaseDC(handle, dc);
+
+ ShowRect;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.UpdateFrameNumber;
+begin
+ if (fFrame >= fStopFrame) then
+ begin
+ if frepeatcount > 0 then
+ begin
+ dec(fRepeatCount);
+ if fRepeatCount = 0 then
+ begin
+ Stop;
+ exit;
+ end;
+ end;
+
+ fFrame := fStartFrame - 1;
+ PlayAudio(fStartFrame, fStopFrame);
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.UpdateOtherAVIPlayers;
+var
+ r : TRect;
+ i : integer;
+begin
+ with Parent do
+ for i := ControlCount - 1 downto 0 do
+ begin
+ if (Controls[i] = self) then
+ break;
+
+ if (Controls[i].Visible) and (Controls[i] is TDCAVIPlayer) then
+ with TDCAVIPlayer(Controls[i]) do
+ if [csDestroying, csLoading] * ComponentState = [] then
+ begin
+ fbackchanged := true;
+ r := ClientRect;
+ InvalidateRect(Handle, @r, true);
+ end;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.PlayNextFrame(var Msg : TMessage);
+begin
+ UpdateFrameNumber;
+ inc(fFrame);
+ if fActive and not fDrawing then
+ begin
+ ShowFrame;
+ UpdateOtherAVIPlayers;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.SaveBackground;
+var
+ dc : THandle;
+ formdc : THandle;
+ oldfbitmap : THandle;
+ fbitmap : THandle;
+ fdc : THandle;
+begin
+ if Parent = nil then
+ exit;
+
+ StartDrawing;
+ dc := GetDC(handle);
+ fdc := GetDC(parent.handle);
+ formdc := CreateCompatibleDC(fdc);
+ fbitmap := CreateCompatibleBitmap(fdc, parent.width, parent.height);
+ oldfbitmap := SelectObject(formdc, fbitmap);
+
+ if ftempdc = 0 then
+ begin
+ ftempdc := CreateCompatibleDC(dc);
+ ftempbitmap := CreateCompatibleBitmap(dc, width, height);
+ foldbitmap := SelectObject(ftempdc, ftempbitmap);
+ end;
+ IntersectClipRect(formdc, left, top, left + width + 1, top + height + 1);
+
+
+ with parent do
+ PaintTo(formdc, 0, 0);
+
+ SetViewPortOrgEx(formDC, 0, 0, nil);
+ BitBlt(ftempdc, 0, 0, width, height, formdc, left + 1, top + 1, SRCCOPY);
+ SelectObject(formdc, oldfbitmap);
+ DeleteObject(fbitmap);
+ DeleteDC(formdc);
+ ReleaseDC(Parent.Handle, fdc);
+ ReleaseDC(handle, dc);
+
+ fdrawing := false;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.WMPaint(var Msg : TWMPaint);
+var
+ ps : TPaintStruct;
+begin
+ _dc := Msg.DC;
+ if _dc = 0 then
+ _dc := BeginPaint(handle, ps);
+
+ try
+ Msg.result := 0;
+
+{ if name = 'DCAVIPlay3' then
+ asm nop end;}
+
+ ShowFrame;
+
+ finally
+ if Msg.DC = 0 then
+ EndPaint(handle, ps);
+ _dc := 0;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.WMEraseBkgnd(var Msg : TMessage);
+var
+ brush : THandle;
+ r : TRect;
+ dc : THandle;
+ width : integer;
+ height : integer;
+begin
+ if PaintDisabled then
+ exit;
+
+ if not (fTransparent or fStretch) then
+ begin
+ CalcFrameLayout;
+ if fStretch then
+ begin
+ width := self.width;
+ height := self.height;
+ end
+ else
+ begin
+ width := fiwidth;
+ height := fiheight;
+ end;
+
+ dc := GetDC(handle);
+ brush := CreateSolidBrush(ColorToRGB(Color));
+ r := rect(fofs, fofs, self.width, fystart);
+ FillRect(dc, r, brush);
+
+ r := rect(fofs, fystart, fxstart, self.height);
+ FillRect(dc, r, brush);
+
+ r := rect(fxstart, fystart + height, self.width - fofs * 2, self.height - fofs * 2);
+ FillRect(dc, r, brush);
+
+ r := rect(fxstart + width, fystart, self.width - fofs * 2, fystart + height);
+ FillRect(dc, r, brush);
+
+ DeleteObject(brush);
+ ReleaseDC(handle, dc);
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.WMMove (var Msg : TMessage);
+begin
+ inherited;
+ fbackchanged := true;
+ ShowFrame;
+ UpdateOtherAVIPlayers;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.KillTempDC;
+begin
+ if ftempdc <> 0 then
+ begin
+ SelectObject(ftempdc, foldbitmap);
+ DeleteObject(ftempbitmap);
+ DeleteDC(ftempdc);
+ ftempdc := 0;
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.WMSize (var Msg : TMessage);
+begin
+ StartDrawing;
+ KillTempDC;
+ inherited;
+ fBackChanged := true;
+ fdrawing := false;
+ AdjustControlsize;
+ if not Active then
+ ShowFrame;
+ UpdateOtherAVIPlayers;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.ShowRect;
+var
+ DC : THandle;
+ Pen : THandle;
+ SavePen : THandle;
+ SaveBrush : THandle;
+begin
+ if not (csDesigning in ComponentState) then
+ exit;
+
+ dc := GetDC(Handle);
+ Pen := CreatePen(PS_DOT, 1, clBlack);
+ SavePen := SelectObject(dc, Pen);
+ SaveBrush := SelectObject(dc, GetStockobject(HOLLOW_BRUSH));
+ Rectangle(dc, 0, 0, width, height);
+ SelectObject(DC, SavePen);
+ DeleteObject(Pen);
+ SelectObject(DC, SaveBrush);
+ ReleaseDC(Handle, DC);
+end;
+
+{------------------------------------------------------------------}
+
+var
+ WHook : HHook;
+ hooks : TList;
+
+type TCWPStruct = packed record
+ lParam : LPARAM;
+ wParam : WPARAM;
+ message : integer;
+ wnd : HWND;
+end;
+
+function CallWndProcHook(nCode : integer; wParam : Longint; var Msg : TCWPStruct) : longint; stdcall;
+var
+ i : integer;
+ r : TRect;
+ r2 : TRect;
+
+ function IsPaintMsg : boolean;
+ var
+ c : TWinControl;
+ begin
+ result := false;
+ c := FindControl(msg.wnd);
+ if (c <> nil) and not (c is TDCAVIPlayer) and
+ TDCAVIPlayer(hooks[i]).HandleAllocated and
+ (TDCAVIPlayer(hooks[i]).owner = c.owner) or
+ (TDCAVIPlayer(hooks[i]).owner = c) then
+ begin
+ GetWindowRect(msg.wnd , r);
+ GetWindowRect(TDCAVIPlayer(hooks[i]).handle, r2);
+ result := IntersectRect(r, r, r2);
+ end;
+ end;
+
+begin
+ Result := CallNextHookEx(WHook, nCode, wParam, Longint(@Msg));
+
+ if ((msg.message > CN_BASE) and (msg.message < CN_BASE + 500)) or
+ (msg.message = WM_PAINT) or (msg.message = WM_SIZE)
+{ or (msg.message = WM_ERASEBKGND)} then
+ for i := 0 to hooks.Count - 1 do
+ with TDCAVIPlayer(hooks[i]) do
+ if HandleAllocated and Transparent and IsPaintMsg then
+ begin
+ fbackchanged := true;
+ r := ClientRect;
+ InvalidateRect(Handle, @r, true);
+ end;
+end;
+
+{------------------------------------------------------------------}
+
+procedure AddHook(o : TDCAVIPlayer);
+begin
+ if hooks.Count = 0 then
+ WHook := SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProcHook, 0, GetCurrentThreadId);
+ hooks.Add(o);
+end;
+
+{------------------------------------------------------------------}
+
+procedure RemoveHook(o : TDCAVIPlayer);
+begin
+ hooks.Remove(o);
+ if hooks.Count = 0 then
+ UnHookWindowsHookEx(WHook);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.HookWndProc;
+begin
+ AddHook(self);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.UnHookWndProc;
+begin
+ RemoveHook(self);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.Reset;
+begin
+ CloseFile;
+ OpenFile;
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.DoOpen;
+begin
+ if Assigned(fOnOpen) then
+ fOnOpen(self);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.DoClose;
+begin
+ if Assigned(fOnClose) then
+ fOnClose(self);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.DoStart;
+begin
+ if Assigned(fOnStart) then
+ fOnStart(self);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.MMWOM_DONE(var M:TMessage);
+begin
+ faudioplay.AudioPlayMessage(PWAVEHDR(M.lParam));
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.DoStop;
+begin
+ if Assigned(fOnStop) then
+ fOnStop(Self);
+end;
+
+{------------------------------------------------------------------}
+
+procedure TDCAVIPlayer.DisplayChange(var Msg : TMessage);
+begin
+ DrawDIBClose(hdrawdib);
+ hdrawdib := DrawDIBOpen;
+end;
+
+{------------------------------------------------------}
+
+destructor TAudioPlay.Destroy;
+begin
+ Stop;
+ inherited;
+end;
+
+{--------------------------------------------------------------}
+
+procedure TAudioPlay.AudioPlayMessage(W : PWAVEHDR);
+begin
+ waveOutUnprepareHeader(FWaveOut, W, sizeof(TWAVEHDR));
+ FreeMem(W, FBufferSize + sizeof(TWAVEHDR));
+ if FPlaying then
+ FillBuffer;
+end;
+
+{--------------------------------------------------------------}
+
+function TAudioPlay.FillBuffer : Boolean;
+var
+ AudioBuf : PWAVEHDR;
+ SamplesToPlay : integer;
+ lRead : integer;
+begin
+ Result := false;
+ GetMem(AudioBuf, fBufferSize + sizeof(TWAVEHDR));
+ with AudioBuf^ do
+ begin
+ dwuser := integer(Self);
+ dwFlags := WHDR_DONE;
+ lpData := pointer(integer(AudioBuf) + sizeof(TWAVEHDR));
+ dwBufferLength := fBufferSize;
+ end;
+ if waveOutPrepareHeader(FWaveOut, AudioBuf,
+ sizeof(TWAVEHDR)) <> MMSYSERR_NOERROR then
+ begin
+ FreeMem(AudioBuf, fBufferSize + sizeof(TWAVEHDR));
+ exit;
+ end;
+
+ SamplesToPlay := Min(fEnd - fCurrent, fBufferSize div fSampleSize);
+ if SamplesToPlay > 0 then
+ begin
+ AVIStreamRead(fAvi, fCurrent, SamplesToPlay, AudioBuf.lpData,
+ fBufferSize, @AudioBuf.dwBufferLength, @lRead);
+ if LRead = SamplesToPlay then
+ begin
+ inc(fCurrent, lRead);
+ waveOutWrite(fWaveOut, AudioBuf, sizeof(TWAVEHDR));
+ end;
+ end;
+ fPlaying := true;
+ result := true;
+end;
+
+{--------------------------------------------------------------}
+
+function TAudioPlay.OpenDevice(W : HWND; pAvi : pointer) : boolean;
+var
+ strhdr : TAVISTREAMINFO;
+ lpFormat : pointer;
+ cbFormat : longint;
+begin
+ result := false;
+ fAVI := pAvi;
+ AVIStreamInfo(pAvi, @StrHdr, sizeof(StrHdr));
+ fSampleSize := StrHdr.dwSampleSize;
+ if (fSampleSize <= 0) then
+ exit;
+
+ fBufferSize := Max(fSampleSize, cBufSize);
+ AVIStreamFormatSize(pavi, 0, @cbFormat);
+ GetMem(lpFormat, cbFormat);
+ FillChar(lpFormat^, cbFormat, 0);
+ AVIStreamReadFormat(pAvi, 0, lpFormat, @cbFormat);
+ sndPlaySound(nil, 0);
+ if waveOutOpen(@FWaveOut, WAVE_MAPPER, lpFormat,
+ W, 0, CALLBACK_WINDOW) = 0 then
+ result := true;
+
+ FreeMem(lpFormat, cbFormat);
+end;
+
+{--------------------------------------------------------------}
+
+procedure TAudioPlay.Stop;
+begin
+ if fWaveOut <> 0 then
+ begin
+ FPlaying := false;
+ waveOutReset(FWaveOut);
+ waveOutClose(FWaveOut);
+ fWaveOut := 0;
+ end;
+end;
+
+{--------------------------------------------------------------}
+
+function TAudioPlay.Play(W : HWND; pAvi : Pointer; lStart, lEnd : longint) : boolean;
+var
+ i : integer;
+begin
+ if fPlaying then
+ Stop;
+
+ Result := false;
+ if lStart < 0 then
+ lStart := AVIStreamStart(pavi);
+
+ if lEnd < 0 then
+ lEnd := AVIStreamEnd(pavi);
+
+ if lStart >= lEnd then
+ exit;
+
+ if not OpenDevice(W, pAvi) then
+ exit;
+
+ waveOutPause(fWaveOut);
+ fBegin := lStart;
+ FCurrent := lStart;
+ fEnd := lEnd;
+ fPlaying := true;
+ for i := 1 to CAheadBuffers do
+ FillBuffer;
+
+ waveOutRestart(FWaveOut);
+ result := true;
+end;
+
+{---------------------------------------------------------------------}
+{_FS: add}
+function TDCAVIPlayer.GetFrameRate: integer;
+var
+ info: TAviStreamInfo;
+begin
+ Result:=0;
+ if not Assigned(fvideostream) then Exit;
+ AVIStreamInfo(fvideostream, @info, sizeof(info));
+ Result := info.dwRate div info.dwScale;
+end;
+{_FS: end add}
+
+initialization
+ hooks := TList.Create;
+finalization
+ if hooks.Count > 0 then
+ UnHookWindowsHookEx(WHook);
+ hooks.Free;
+end.
diff --git a/Source/fsaviunit.dfm b/Source/fsaviunit.dfm index 761db79..8f7e602 100644 --- a/Source/fsaviunit.dfm +++ b/Source/fsaviunit.dfm @@ -1,23 +1,23 @@ -object FsAvi: TFsAvi - Left = 243 - Top = 106 - Width = 226 - Height = 103 - Caption = 'FsAvi' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - OnDestroy = FormDestroy - PixelsPerInch = 96 - TextHeight = 13 - object sd1: TSaveDialog - Filter = 'AVI files|*.avi' - Left = 8 - Top = 8 - end -end +object FsAvi: TFsAvi
+ Left = 243
+ Top = 106
+ Width = 226
+ Height = 103
+ Caption = 'FsAvi'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ OnCreate = FormCreate
+ OnDestroy = FormDestroy
+ PixelsPerInch = 96
+ TextHeight = 13
+ object sd1: TSaveDialog
+ Filter = 'AVI files|*.avi'
+ Left = 8
+ Top = 8
+ end
+end
diff --git a/Source/fsaviunit.pas b/Source/fsaviunit.pas index 6f81e0b..edda003 100644 --- a/Source/fsaviunit.pas +++ b/Source/fsaviunit.pas @@ -1,103 +1,103 @@ -unit fsaviunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - fsformunit, - fsaviwriter, ExtCtrls, StdCtrls, Buttons; - -type - TFsAvi = class(TFsForm) - sd1: TSaveDialog; - procedure FormCreate(Sender: TObject); - procedure FormDestroy(Sender: TObject); - procedure BitBtn1Click(Sender: TObject); - procedure Button1Click(Sender: TObject); - procedure Button2Click(Sender: TObject); - private - { Private declarations } - a: TAviWriter; - public - { Public declarations } - procedure Parse(const S: String); override; - end; - -var - FsAvi: TFsAvi; - -implementation - -uses - fsframeunit, strz, mainunit; - -{$R *.DFM} - -{ Tavi } - -procedure TFsAvi.Parse(const S: String); -var - s1: String; - f: TFsFrame; -begin - if S='' then Exit; - - s1 := UpperCase(ExtractWord(1, S, [' '])); - - if s1='WRITE' then begin - a.FileName := Copy(S, Length(s1)+2, 255); - if a.Filename='' then - if sd1.Execute then begin - a.Filename := sd1.Filename; - if UpperCase(ExtractFileExt(a.Filename))<>'.AVI' then - a.Filename := a.Filename+'.avi'; - end else - Exit; - a.Finish; - Exit; - end else - if s1='FPS' then begin - a.fps := MyStrToInt(Copy(S, Length(s1)+2, 255)); - Exit; - end; - - if not a.Prepared then - a.Prepare; - - f := FindFrame(S); - if f=nil then Exit; - - a.Width := f.d1.SurfaceWidth; - a.Height := f.d1.SurfaceHeight; - - f.dDib.DIB.Assign(f.d1.Surface); - a.AddFrame(f.dDib.DIB); - main.SendReturnValues(PdName+'pos='+IntToStr(a.FramePos)); -end; - -procedure TFsAvi.FormCreate(Sender: TObject); -begin - a := TAviWriter.Create(Self); -end; - -procedure TFsAvi.FormDestroy(Sender: TObject); -begin - a.Free; -end; - -procedure TFsAvi.BitBtn1Click(Sender: TObject); -begin - a.Write; -end; - -procedure TFsAvi.Button1Click(Sender: TObject); -begin - a.Prepare; -end; - -procedure TFsAvi.Button2Click(Sender: TObject); -begin - a.Finish; -end; - -end. +unit fsaviunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ fsformunit,
+ fsaviwriter, ExtCtrls, StdCtrls, Buttons;
+
+type
+ TFsAvi = class(TFsForm)
+ sd1: TSaveDialog;
+ procedure FormCreate(Sender: TObject);
+ procedure FormDestroy(Sender: TObject);
+ procedure BitBtn1Click(Sender: TObject);
+ procedure Button1Click(Sender: TObject);
+ procedure Button2Click(Sender: TObject);
+ private
+ { Private declarations }
+ a: TAviWriter;
+ public
+ { Public declarations }
+ procedure Parse(const S: String); override;
+ end;
+
+var
+ FsAvi: TFsAvi;
+
+implementation
+
+uses
+ fsframeunit, strz, mainunit;
+
+{$R *.DFM}
+
+{ Tavi }
+
+procedure TFsAvi.Parse(const S: String);
+var
+ s1: String;
+ f: TFsFrame;
+begin
+ if S='' then Exit;
+
+ s1 := UpperCase(ExtractWord(1, S, [' ']));
+
+ if s1='WRITE' then begin
+ a.FileName := Copy(S, Length(s1)+2, 255);
+ if a.Filename='' then
+ if sd1.Execute then begin
+ a.Filename := sd1.Filename;
+ if UpperCase(ExtractFileExt(a.Filename))<>'.AVI' then
+ a.Filename := a.Filename+'.avi';
+ end else
+ Exit;
+ a.Finish;
+ Exit;
+ end else
+ if s1='FPS' then begin
+ a.fps := MyStrToInt(Copy(S, Length(s1)+2, 255));
+ Exit;
+ end;
+
+ if not a.Prepared then
+ a.Prepare;
+
+ f := FindFrame(S);
+ if f=nil then Exit;
+
+ a.Width := f.d1.SurfaceWidth;
+ a.Height := f.d1.SurfaceHeight;
+
+ f.dDib.DIB.Assign(f.d1.Surface);
+ a.AddFrame(f.dDib.DIB);
+ main.SendReturnValues(PdName+'pos='+IntToStr(a.FramePos));
+end;
+
+procedure TFsAvi.FormCreate(Sender: TObject);
+begin
+ a := TAviWriter.Create(Self);
+end;
+
+procedure TFsAvi.FormDestroy(Sender: TObject);
+begin
+ a.Free;
+end;
+
+procedure TFsAvi.BitBtn1Click(Sender: TObject);
+begin
+ a.Write;
+end;
+
+procedure TFsAvi.Button1Click(Sender: TObject);
+begin
+ a.Prepare;
+end;
+
+procedure TFsAvi.Button2Click(Sender: TObject);
+begin
+ a.Finish;
+end;
+
+end.
diff --git a/Source/fsbrowserunit.dfm b/Source/fsbrowserunit.dfm index 97c5299..0378434 100644 --- a/Source/fsbrowserunit.dfm +++ b/Source/fsbrowserunit.dfm @@ -1,35 +1,35 @@ -inherited fsbrowser: Tfsbrowser - Left = 266 - Top = 377 - Width = 237 - Height = 257 - Caption = 'fsbrowser' - FormStyle = fsNormal - OldCreateOrder = True - PixelsPerInch = 96 - TextHeight = 13 - inherited d1: TDXDraw [1] - Width = 229 - Height = 230 - TabOrder = 2 - end - inherited PanelMute: TPanel [2] - Width = 229 - Height = 230 - end - object br: TWebBrowser [3] - Left = 0 - Top = 0 - Width = 229 - Height = 230 - Align = alClient - TabOrder = 0 - OnBeforeNavigate2 = brBeforeNavigate2 - ControlData = { - 4C000000AB170000C51700000000000000000000000000000000000000000000 - 000000004C000000000000000000000001000000E0D057007335CF11AE690800 - 2B2E126208000000000000004C0000000114020000000000C000000000000046 - 8000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000100000000000000000000000000000000000000} - end -end +inherited fsbrowser: Tfsbrowser
+ Left = 266
+ Top = 377
+ Width = 237
+ Height = 257
+ Caption = 'fsbrowser'
+ FormStyle = fsNormal
+ OldCreateOrder = True
+ PixelsPerInch = 96
+ TextHeight = 13
+ inherited d1: TDXDraw [1]
+ Width = 229
+ Height = 230
+ TabOrder = 2
+ end
+ inherited PanelMute: TPanel [2]
+ Width = 229
+ Height = 230
+ end
+ object br: TWebBrowser [3]
+ Left = 0
+ Top = 0
+ Width = 229
+ Height = 230
+ Align = alClient
+ TabOrder = 0
+ OnBeforeNavigate2 = brBeforeNavigate2
+ ControlData = {
+ 4C000000AB170000C51700000000000000000000000000000000000000000000
+ 000000004C000000000000000000000001000000E0D057007335CF11AE690800
+ 2B2E126208000000000000004C0000000114020000000000C000000000000046
+ 8000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000100000000000000000000000000000000000000}
+ end
+end
diff --git a/Source/fsbrowserunit.pas b/Source/fsbrowserunit.pas index b507902..aa1375c 100644 --- a/Source/fsbrowserunit.pas +++ b/Source/fsbrowserunit.pas @@ -1,113 +1,113 @@ -unit fsbrowserunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - fsframeunit, Filez, DIB, Menus, DXDraws, ExtCtrls, OleCtrls, SHDocVw, - C2PhotoShopHost, ExtDlgs, StdCtrls; - -type - Tfsbrowser = class(Tfsframe) - br: TWebBrowser; - procedure FormCreate(Sender: TObject); - procedure brBeforeNavigate2(Sender: TObject; const pDisp: IDispatch; - var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; - var Cancel: WordBool); - private - { Private declarations } - public - { Public declarations } - PdName: String; - procedure Parse(const S: String); override; - procedure CopyToSurface; - end; - -var - fsbrowser: Tfsbrowser; - -implementation - -uses - ActiveX, - Strz, mainunit; - -{$R *.DFM} - -{ Tfsbrowser } - -procedure Tfsbrowser.Parse(const S: String); -var - s1, s2: String; -begin - s1 := Trim(UpperCase(ExtractWord(1, S, [' ']))); - if s1='' then Exit; - if (s1[1] in ['0'..'9']) and - (Pos('X', s1)>0) then begin - Width := MyStrToInt(ExtractWord(1, s1, ['X'])); - Height := MyStrToInt(ExtractWord(2, s1, ['X'])); - end else - if s1='OPEN' then begin - s2 := Copy(S, Length(s1)+2, 255); - br.Navigate(s2); - end else - if s1='STOP' then begin - br.Stop; - end else - if s1='REFRESH' then begin - br.Refresh; - end else begin - if - (UpperCase(Copy(S, 1, 4))='HTTP') or - (UpperCase(Copy(S, 1, 4))='FILE') - then - br.Navigate(S) - else - inherited Parse(S); - end; -end; - -procedure Tfsbrowser.FormCreate(Sender: TObject); -begin - inherited; - ClientWidth := 480; - ClientHeight := 360; -end; - -procedure Tfsbrowser.CopyToSurface; -var - DrawRect: TRect; -begin - if (br.ClientWidth<>d1.Surface.Width) or - (br.ClientHeight<>d1.Surface.Height) then - d1.SetSize(br.ClientWidth, br.ClientHeight); - - DrawRect := Rect(0, 0, d1.Surface.Width, d1.Surface.Height); - (br.Document as IViewObject).Draw( - DVASPECT_CONTENT, 1, nil, nil, 0, - d1.Surface.Canvas.Handle, @DrawRect, nil, nil, 0); - - d1.Surface.Canvas.Release; -end; - -procedure Tfsbrowser.brBeforeNavigate2(Sender: TObject; - const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, - Headers: OleVariant; var Cancel: WordBool); -var - St: String; -begin - if UpperCase(Copy(URL, 1, 3))='FS:' then begin - St := Copy(URL, 4, 255); - - St := SearchAndReplace(St, '%exepath', - ExtractFilePath(Application.ExeName)); - St := SearchAndReplace(St, '//', '/'); - St := SearchAndReplace(St, '\/', '/'); - - main.SendReturnValuesString(PdName+'link', St); - Cancel:=True; - end; -end; - -end. - +unit fsbrowserunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ fsframeunit, Filez, DIB, Menus, DXDraws, ExtCtrls, OleCtrls, SHDocVw,
+ C2PhotoShopHost, ExtDlgs, StdCtrls;
+
+type
+ Tfsbrowser = class(Tfsframe)
+ br: TWebBrowser;
+ procedure FormCreate(Sender: TObject);
+ procedure brBeforeNavigate2(Sender: TObject; const pDisp: IDispatch;
+ var URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
+ var Cancel: WordBool);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ PdName: String;
+ procedure Parse(const S: String); override;
+ procedure CopyToSurface;
+ end;
+
+var
+ fsbrowser: Tfsbrowser;
+
+implementation
+
+uses
+ ActiveX,
+ Strz, mainunit;
+
+{$R *.DFM}
+
+{ Tfsbrowser }
+
+procedure Tfsbrowser.Parse(const S: String);
+var
+ s1, s2: String;
+begin
+ s1 := Trim(UpperCase(ExtractWord(1, S, [' '])));
+ if s1='' then Exit;
+ if (s1[1] in ['0'..'9']) and
+ (Pos('X', s1)>0) then begin
+ Width := MyStrToInt(ExtractWord(1, s1, ['X']));
+ Height := MyStrToInt(ExtractWord(2, s1, ['X']));
+ end else
+ if s1='OPEN' then begin
+ s2 := Copy(S, Length(s1)+2, 255);
+ br.Navigate(s2);
+ end else
+ if s1='STOP' then begin
+ br.Stop;
+ end else
+ if s1='REFRESH' then begin
+ br.Refresh;
+ end else begin
+ if
+ (UpperCase(Copy(S, 1, 4))='HTTP') or
+ (UpperCase(Copy(S, 1, 4))='FILE')
+ then
+ br.Navigate(S)
+ else
+ inherited Parse(S);
+ end;
+end;
+
+procedure Tfsbrowser.FormCreate(Sender: TObject);
+begin
+ inherited;
+ ClientWidth := 480;
+ ClientHeight := 360;
+end;
+
+procedure Tfsbrowser.CopyToSurface;
+var
+ DrawRect: TRect;
+begin
+ if (br.ClientWidth<>d1.Surface.Width) or
+ (br.ClientHeight<>d1.Surface.Height) then
+ d1.SetSize(br.ClientWidth, br.ClientHeight);
+
+ DrawRect := Rect(0, 0, d1.Surface.Width, d1.Surface.Height);
+ (br.Document as IViewObject).Draw(
+ DVASPECT_CONTENT, 1, nil, nil, 0,
+ d1.Surface.Canvas.Handle, @DrawRect, nil, nil, 0);
+
+ d1.Surface.Canvas.Release;
+end;
+
+procedure Tfsbrowser.brBeforeNavigate2(Sender: TObject;
+ const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
+ Headers: OleVariant; var Cancel: WordBool);
+var
+ St: String;
+begin
+ if UpperCase(Copy(URL, 1, 3))='FS:' then begin
+ St := Copy(URL, 4, 255);
+
+ St := SearchAndReplace(St, '%exepath',
+ ExtractFilePath(Application.ExeName));
+ St := SearchAndReplace(St, '//', '/');
+ St := SearchAndReplace(St, '\/', '/');
+
+ main.SendReturnValuesString(PdName+'link', St);
+ Cancel:=True;
+ end;
+end;
+
+end.
+
diff --git a/Source/fscopyunit.dfm b/Source/fscopyunit.dfm index 922152d..2af5650 100644 --- a/Source/fscopyunit.dfm +++ b/Source/fscopyunit.dfm @@ -1,26 +1,26 @@ -object fscopy: Tfscopy - Left = 231 - Top = 103 - Width = 257 - Height = 93 - Caption = 'fscopy' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - WindowState = wsMinimized - OnClose = FormClose - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object copypsh: TC2PhotoShopHost - SerialNumber = 0 - BackColor = clBlack - ForeColor = clBlack - Left = 8 - Top = 8 - end -end +object fscopy: Tfscopy
+ Left = 231
+ Top = 103
+ Width = 257
+ Height = 93
+ Caption = 'fscopy'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ WindowState = wsMinimized
+ OnClose = FormClose
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object copypsh: TC2PhotoShopHost
+ SerialNumber = 0
+ BackColor = clBlack
+ ForeColor = clBlack
+ Left = 8
+ Top = 8
+ end
+end
diff --git a/Source/fsdrawunit.dfm b/Source/fsdrawunit.dfm index 9a73308..1982d55 100644 --- a/Source/fsdrawunit.dfm +++ b/Source/fsdrawunit.dfm @@ -1,17 +1,17 @@ -object fsdraw: Tfsdraw - Left = 245 - Top = 177 - Width = 247 - Height = 106 - Caption = 'fsdraw' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 -end +object fsdraw: Tfsdraw
+ Left = 245
+ Top = 177
+ Width = 247
+ Height = 106
+ Caption = 'fsdraw'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+end
diff --git a/Source/fsformunit.pas b/Source/fsformunit.pas index 3f71db8..25b044b 100644 --- a/Source/fsformunit.pas +++ b/Source/fsformunit.pas @@ -1,18 +1,18 @@ -unit fsformunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; - -type - TFsForm = class(TForm) - public - PdName: String; - procedure Parse(const S: String); virtual; abstract; - end; - -implementation - -end. +unit fsformunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ TFsForm = class(TForm)
+ public
+ PdName: String;
+ procedure Parse(const S: String); virtual; abstract;
+ end;
+
+implementation
+
+end.
\ No newline at end of file diff --git a/Source/fsframeunit.dfm b/Source/fsframeunit.dfm index 3e38f21..1604420 100644 --- a/Source/fsframeunit.dfm +++ b/Source/fsframeunit.dfm @@ -1,146 +1,146 @@ -object fsframe: Tfsframe - Left = 583 - Top = 507 - Width = 277 - Height = 198 - Caption = 'fs.frame' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - PopupMenu = PopupMenu1 - Position = poDefaultSizeOnly - OnClose = FormClose - OnCreate = FormCreate - OnDestroy = FormDestroy - OnMouseWheel = FormMouseWheel - PixelsPerInch = 96 - TextHeight = 13 - object LabelFoo: TLabel - Left = 8 - Top = 136 - Width = 44 - Height = 13 - Caption = 'LabelFoo' - Visible = False - end - object PanelMute: TPanel - Left = 0 - Top = 0 - Width = 269 - Height = 171 - Align = alClient - BevelOuter = bvNone - Caption = 'mute' - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - end - object d1: TDXDraw - Left = 0 - Top = 0 - Width = 269 - Height = 171 - AutoInitialize = True - AutoSize = False - Color = clBtnFace - Display.FixedBitCount = False - Display.FixedRatio = False - Display.FixedSize = False - Options = [doStretch, doDirectX7Mode, doHardware, doSelectDriver] - SurfaceHeight = 171 - SurfaceWidth = 269 - Align = alClient - PopupMenu = PopupMenu1 - TabOrder = 0 - OnMouseDown = d1MouseDown - OnMouseMove = d1MouseMove - OnMouseUp = d1MouseUp - end - object PopupMenu1: TPopupMenu - OnPopup = PopupMenu1Popup - Left = 8 - Top = 8 - object MiBufferImages: TMenuItem - Caption = 'Buffer images' - OnClick = MiBufferImagesClick - end - object MiSaveFrame: TMenuItem - Caption = 'Save this image as ..' - OnClick = MiSaveFrameClick - end - object Mi11: TMenuItem - Caption = 'zoom 1:&1' - OnClick = Mi11Click - end - object Mi12: TMenuItem - Caption = 'zoom 1:&2' - OnClick = Mi12Click - end - object Mi176x144: TMenuItem - Caption = 'zoom 176x144' - OnClick = Mi176x144Click - end - object MiMute: TMenuItem - Caption = 'Mute' - OnClick = MiMuteClick - end - object MiBorders: TMenuItem - Caption = 'Borders' - Checked = True - OnClick = MiBordersClick - end - object MiStayOnTop: TMenuItem - Caption = 'StayOnTop' - OnClick = MiStayOnTopClick - end - object MiMouseTrack: TMenuItem - Caption = 'MouseTrack' - OnClick = MiMouseTrackClick - end - object MiHideCursor: TMenuItem - Caption = 'HideCursor' - OnClick = MiHideCursorClick - end - object MiUndock: TMenuItem - Caption = 'Undock' - OnClick = MiUndockClick - end - end - object dDib: TDXDIB - Left = 8 - Top = 40 - end - object dirBuffer: TScanDir - OnHandleFile = dirBufferHandleFile - Left = 8 - Top = 72 - end - object opd1: TOpenPictureDialog - Filter = 'All (*.jpg;*.bmp;*.avi)|*.jpg;*.bmp;*.avi' - Options = [ofHideReadOnly, ofAllowMultiSelect, ofFileMustExist, ofEnableSizing] - Left = 8 - Top = 104 - end - object framepsh: TC2PhotoShopHost - SerialNumber = 0 - BackColor = clBlack - ForeColor = clBlack - Left = 40 - Top = 8 - end - object svd1: TSaveDialog - Filter = '*.bmp|BMP files' - Options = [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing] - Left = 40 - Top = 104 - end - object dirUse: TScanDir - OnHandleFile = dirUseHandleFile - Left = 40 - Top = 72 - end -end +object fsframe: Tfsframe
+ Left = 583
+ Top = 507
+ Width = 277
+ Height = 198
+ Caption = 'fs.frame'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PopupMenu = PopupMenu1
+ Position = poDefaultSizeOnly
+ OnClose = FormClose
+ OnCreate = FormCreate
+ OnDestroy = FormDestroy
+ OnMouseWheel = FormMouseWheel
+ PixelsPerInch = 96
+ TextHeight = 13
+ object LabelFoo: TLabel
+ Left = 8
+ Top = 136
+ Width = 44
+ Height = 13
+ Caption = 'LabelFoo'
+ Visible = False
+ end
+ object PanelMute: TPanel
+ Left = 0
+ Top = 0
+ Width = 269
+ Height = 171
+ Align = alClient
+ BevelOuter = bvNone
+ Caption = 'mute'
+ Ctl3D = True
+ ParentCtl3D = False
+ TabOrder = 1
+ end
+ object d1: TDXDraw
+ Left = 0
+ Top = 0
+ Width = 269
+ Height = 171
+ AutoInitialize = True
+ AutoSize = False
+ Color = clBtnFace
+ Display.FixedBitCount = False
+ Display.FixedRatio = False
+ Display.FixedSize = False
+ Options = [doStretch, doDirectX7Mode, doHardware, doSelectDriver]
+ SurfaceHeight = 171
+ SurfaceWidth = 269
+ Align = alClient
+ PopupMenu = PopupMenu1
+ TabOrder = 0
+ OnMouseDown = d1MouseDown
+ OnMouseMove = d1MouseMove
+ OnMouseUp = d1MouseUp
+ end
+ object PopupMenu1: TPopupMenu
+ OnPopup = PopupMenu1Popup
+ Left = 8
+ Top = 8
+ object MiBufferImages: TMenuItem
+ Caption = 'Buffer images'
+ OnClick = MiBufferImagesClick
+ end
+ object MiSaveFrame: TMenuItem
+ Caption = 'Save this image as ..'
+ OnClick = MiSaveFrameClick
+ end
+ object Mi11: TMenuItem
+ Caption = 'zoom 1:&1'
+ OnClick = Mi11Click
+ end
+ object Mi12: TMenuItem
+ Caption = 'zoom 1:&2'
+ OnClick = Mi12Click
+ end
+ object Mi176x144: TMenuItem
+ Caption = 'zoom 176x144'
+ OnClick = Mi176x144Click
+ end
+ object MiMute: TMenuItem
+ Caption = 'Mute'
+ OnClick = MiMuteClick
+ end
+ object MiBorders: TMenuItem
+ Caption = 'Borders'
+ Checked = True
+ OnClick = MiBordersClick
+ end
+ object MiStayOnTop: TMenuItem
+ Caption = 'StayOnTop'
+ OnClick = MiStayOnTopClick
+ end
+ object MiMouseTrack: TMenuItem
+ Caption = 'MouseTrack'
+ OnClick = MiMouseTrackClick
+ end
+ object MiHideCursor: TMenuItem
+ Caption = 'HideCursor'
+ OnClick = MiHideCursorClick
+ end
+ object MiUndock: TMenuItem
+ Caption = 'Undock'
+ OnClick = MiUndockClick
+ end
+ end
+ object dDib: TDXDIB
+ Left = 8
+ Top = 40
+ end
+ object dirBuffer: TScanDir
+ OnHandleFile = dirBufferHandleFile
+ Left = 8
+ Top = 72
+ end
+ object opd1: TOpenPictureDialog
+ Filter = 'All (*.jpg;*.bmp;*.avi)|*.jpg;*.bmp;*.avi'
+ Options = [ofHideReadOnly, ofAllowMultiSelect, ofFileMustExist, ofEnableSizing]
+ Left = 8
+ Top = 104
+ end
+ object framepsh: TC2PhotoShopHost
+ SerialNumber = 0
+ BackColor = clBlack
+ ForeColor = clBlack
+ Left = 40
+ Top = 8
+ end
+ object svd1: TSaveDialog
+ Filter = '*.bmp|BMP files'
+ Options = [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing]
+ Left = 40
+ Top = 104
+ end
+ object dirUse: TScanDir
+ OnHandleFile = dirUseHandleFile
+ Left = 40
+ Top = 72
+ end
+end
diff --git a/Source/fsframeunit.pas b/Source/fsframeunit.pas index f5a3e1f..d195b19 100644 --- a/Source/fsframeunit.pas +++ b/Source/fsframeunit.pas @@ -1,4 +1,4 @@ -{ Copyright (C) 2001-2002 Juha Vehviläinen
+{ Copyright (C) 2001-2003 Juha Vehviläinen
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
@@ -18,7 +18,7 @@ uses Menus, Jpeg, DXDraws,
FastDIB, fsDcAvi,
fsformunit, ExtCtrls, DIB, Filez, ExtDlgs, C2PhotoShopHost, Buttons,
- StdCtrls;
+ StdCtrls, ComCtrls;
type
TFastDIBList = TList;
@@ -83,8 +83,8 @@ type AutoSend_Address: String;
AutoSend_jpegqualitynet: Integer;
AutoSend_sendjpg: Boolean;
- MouseTrack: Boolean; // report mouse x y
- MouseRect: Boolean; // report dragged rectangle
+ MouseTrack: Boolean; // report mouse x y
+ MouseRect: Boolean; // report dragged rectangle
FHideCursor: Boolean; // hide cursor in this frame
jpgquality: Integer;
jpegqualitynet: Integer;
@@ -92,6 +92,7 @@ type prevmute: Boolean;
filelist: TStringList;
filelistIndex: Integer;
+ lastdockedtitle: String; // title of last dock-command
procedure ClearPicBuf;
procedure StayOnTop(const Yes: Boolean);
@@ -109,6 +110,8 @@ type { Public declarations }
avi: TDcAviPlayer;
NameTag: String;
+ doRedock: Boolean;
+
procedure Borders(const Yes: Boolean);
procedure Parse(const S: String); override;
procedure FlipRequest;
@@ -172,8 +175,17 @@ var R: TRect;
begin
if S='' then Exit;
- if (ParentWindow>0) and not
- IsWindow(ParentWindow) then Exit;
+ if (doRedock or ((ParentWindow>0) and
+ not IsWindow(ParentWindow))) and
+ (LastDockedTitle<>'') then begin
+ // Attempt to redock fs.frame
+ doRedock := False;
+ ParentWindow := 0;
+ x := Left; y := Top;
+ Parse('DOCK '+LastDockedTitle);
+ Left := x; Top := y;
+ if S='REDOCK' then Exit;
+ end;
s1 := UpperCase(ExtractWord(1, S, [' ']));
Ext := UpperCase(ExtractFileExt(S));
@@ -598,8 +610,14 @@ begin d1.Initialize;
BringToFront;
DragAcceptFiles(Handle, True);
+ doRedock := False;
end;
+ end else begin
+ // Docking failed, likely patch not open.
+ // Set a flag to say, try redocking later
+ doRedock := True;
end;
+ LastDockedTitle := DockTitle;
end else
if s1='UNDOCK' then begin
MiUndock.Click;
@@ -846,6 +864,8 @@ begin prevmute := False;
filelist := TStringList.Create;
filelistIndex := -1;
+ doRedock := False;
+ LastDockedTitle := '';
DragAcceptFiles(Handle, True);
end;
diff --git a/Source/fsinfounit.dfm b/Source/fsinfounit.dfm index 3079d24..f115e3f 100644 --- a/Source/fsinfounit.dfm +++ b/Source/fsinfounit.dfm @@ -1,16 +1,16 @@ -object fsinfo: Tfsinfo - Left = 242 - Top = 103 - Width = 356 - Height = 122 - Caption = 'fsinfo' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - PixelsPerInch = 96 - TextHeight = 13 -end +object fsinfo: Tfsinfo
+ Left = 242
+ Top = 103
+ Width = 356
+ Height = 122
+ Caption = 'fsinfo'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+end
diff --git a/Source/fsinfounit.pas b/Source/fsinfounit.pas index d8de65d..892c964 100644 --- a/Source/fsinfounit.pas +++ b/Source/fsinfounit.pas @@ -1,53 +1,53 @@ -unit fsinfounit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - fsformunit; - -type - Tfsinfo = class(TFsForm) - private - { Private declarations } - public - { Public declarations } - procedure Parse(const S: String); override; - end; - -var - fsinfo: Tfsinfo; - -implementation - -uses - mainunit, fsframeunit, - Strz; - -{$R *.DFM} - -{ Tfsinfo } - -procedure Tfsinfo.Parse(const S: String); -var - s1: String; - f: TFsFrame; -begin - if (S='') or - (WordCount(S, [' '])<5) or - (not main.cstoPd.Active) then Exit; - - s1 := ExtractWord(1, S, [' ']); - f := FindFrame(s1); - if f=nil then Exit; - - main.SendReturnValues( - ExtractWord(5, S, [' '])+'='+IntToStr(f.Avi.FrameRate)+';'+ - ExtractWord(4, S, [' '])+'='+IntToStr(f.Avi.FrameCount)+';'+ - ExtractWord(3, S, [' '])+'='+IntToStr(f.d1.Surface.Height)+';'+ - ExtractWord(2, S, [' '])+'='+IntToStr(f.d1.Surface.Width) - ); -end; - -end. - +unit fsinfounit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ fsformunit;
+
+type
+ Tfsinfo = class(TFsForm)
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ procedure Parse(const S: String); override;
+ end;
+
+var
+ fsinfo: Tfsinfo;
+
+implementation
+
+uses
+ mainunit, fsframeunit,
+ Strz;
+
+{$R *.DFM}
+
+{ Tfsinfo }
+
+procedure Tfsinfo.Parse(const S: String);
+var
+ s1: String;
+ f: TFsFrame;
+begin
+ if (S='') or
+ (WordCount(S, [' '])<5) or
+ (not main.cstoPd.Active) then Exit;
+
+ s1 := ExtractWord(1, S, [' ']);
+ f := FindFrame(s1);
+ if f=nil then Exit;
+
+ main.SendReturnValues(
+ ExtractWord(5, S, [' '])+'='+IntToStr(f.Avi.FrameRate)+';'+
+ ExtractWord(4, S, [' '])+'='+IntToStr(f.Avi.FrameCount)+';'+
+ ExtractWord(3, S, [' '])+'='+IntToStr(f.d1.Surface.Height)+';'+
+ ExtractWord(2, S, [' '])+'='+IntToStr(f.d1.Surface.Width)
+ );
+end;
+
+end.
+
diff --git a/Source/fsspeedbutton.pas b/Source/fsspeedbutton.pas index da3d53a..d680a19 100644 --- a/Source/fsspeedbutton.pas +++ b/Source/fsspeedbutton.pas @@ -1,48 +1,48 @@ -unit fsspeedbutton; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - Buttons; - -type - TFSSpeedButton = class(TSpeedButton) - private - { Private declarations } - procedure MyOnClick(Sender: TObject); - protected - { Protected declarations } - public - { Public declarations } - Receivename: String; - constructor Create(AOwner: TComponent); override; - published - { Published declarations } - end; - -procedure Register; - -implementation - -uses - mainunit; - -procedure Register; -begin -end; - -{ TFSSpeedButton } - -constructor TFSSpeedButton.Create(AOwner: TComponent); -begin - inherited; - OnClick := MyOnClick; -end; - -procedure TFSSpeedButton.MyOnClick(Sender: TObject); -begin - main.SendReturnValues(Receivename+'=1'); -end; - -end. +unit fsspeedbutton;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ Buttons;
+
+type
+ TFSSpeedButton = class(TSpeedButton)
+ private
+ { Private declarations }
+ procedure MyOnClick(Sender: TObject);
+ protected
+ { Protected declarations }
+ public
+ { Public declarations }
+ Receivename: String;
+ constructor Create(AOwner: TComponent); override;
+ published
+ { Published declarations }
+ end;
+
+procedure Register;
+
+implementation
+
+uses
+ mainunit;
+
+procedure Register;
+begin
+end;
+
+{ TFSSpeedButton }
+
+constructor TFSSpeedButton.Create(AOwner: TComponent);
+begin
+ inherited;
+ OnClick := MyOnClick;
+end;
+
+procedure TFSSpeedButton.MyOnClick(Sender: TObject);
+begin
+ main.SendReturnValues(Receivename+'=1');
+end;
+
+end.
diff --git a/Source/fstextunit.dfm b/Source/fstextunit.dfm index c8ff138..95f2630 100644 --- a/Source/fstextunit.dfm +++ b/Source/fstextunit.dfm @@ -1,18 +1,18 @@ -object fstext: Tfstext - Left = 231 - Top = 103 - Width = 236 - Height = 79 - Caption = 'fstext' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - WindowState = wsMinimized - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 -end +object fstext: Tfstext
+ Left = 231
+ Top = 103
+ Width = 236
+ Height = 79
+ Caption = 'fstext'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ WindowState = wsMinimized
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+end
diff --git a/Source/logunit.dfm b/Source/logunit.dfm index 4cc93c4..da7051d 100644 --- a/Source/logunit.dfm +++ b/Source/logunit.dfm @@ -1,102 +1,102 @@ -object log: Tlog - Left = 239 - Top = 39 - Width = 603 - Height = 666 - BorderStyle = bsSizeToolWin - Caption = 'Debug log' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poDesktopCenter - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object PanelLog: TPanel - Left = 0 - Top = 221 - Width = 595 - Height = 418 - Align = alClient - BevelOuter = bvNone - TabOrder = 0 - object Panel2: TPanel - Left = 0 - Top = 400 - Width = 595 - Height = 18 - Align = alBottom - AutoSize = True - BevelOuter = bvNone - TabOrder = 0 - object ButtonClear: TButton - Left = 75 - Top = 0 - Width = 75 - Height = 18 - Caption = 'Clear' - TabOrder = 1 - OnClick = ButtonClearClick - end - object ButtonClose: TButton - Left = 0 - Top = 0 - Width = 75 - Height = 18 - Caption = 'Close' - Default = True - TabOrder = 0 - OnClick = ButtonCloseClick - end - end - object RELog: TRichEdit - Left = 0 - Top = 0 - Width = 595 - Height = 400 - Align = alClient - BorderStyle = bsNone - Ctl3D = True - ParentCtl3D = False - PlainText = True - ScrollBars = ssVertical - TabOrder = 1 - WordWrap = False - end - end - object Panel1: TPanel - Left = 0 - Top = 203 - Width = 595 - Height = 18 - Align = alTop - BevelOuter = bvLowered - Caption = 'Log' - TabOrder = 2 - end - object PanelConsole: TPanel - Left = 0 - Top = 18 - Width = 595 - Height = 185 - Align = alTop - BevelOuter = bvNone - TabOrder = 1 - Visible = False - end - object Panel3: TPanel - Left = 0 - Top = 0 - Width = 595 - Height = 18 - Align = alTop - BevelOuter = bvLowered - Caption = 'Console' - TabOrder = 3 - Visible = False - end -end +object log: Tlog
+ Left = 239
+ Top = 39
+ Width = 603
+ Height = 666
+ BorderStyle = bsSizeToolWin
+ Caption = 'Debug log'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poDesktopCenter
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object PanelLog: TPanel
+ Left = 0
+ Top = 221
+ Width = 595
+ Height = 418
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Panel2: TPanel
+ Left = 0
+ Top = 400
+ Width = 595
+ Height = 18
+ Align = alBottom
+ AutoSize = True
+ BevelOuter = bvNone
+ TabOrder = 0
+ object ButtonClear: TButton
+ Left = 75
+ Top = 0
+ Width = 75
+ Height = 18
+ Caption = 'Clear'
+ TabOrder = 1
+ OnClick = ButtonClearClick
+ end
+ object ButtonClose: TButton
+ Left = 0
+ Top = 0
+ Width = 75
+ Height = 18
+ Caption = 'Close'
+ Default = True
+ TabOrder = 0
+ OnClick = ButtonCloseClick
+ end
+ end
+ object RELog: TRichEdit
+ Left = 0
+ Top = 0
+ Width = 595
+ Height = 400
+ Align = alClient
+ BorderStyle = bsNone
+ Ctl3D = True
+ ParentCtl3D = False
+ PlainText = True
+ ScrollBars = ssVertical
+ TabOrder = 1
+ WordWrap = False
+ end
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 203
+ Width = 595
+ Height = 18
+ Align = alTop
+ BevelOuter = bvLowered
+ Caption = 'Log'
+ TabOrder = 2
+ end
+ object PanelConsole: TPanel
+ Left = 0
+ Top = 18
+ Width = 595
+ Height = 185
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 1
+ Visible = False
+ end
+ object Panel3: TPanel
+ Left = 0
+ Top = 0
+ Width = 595
+ Height = 18
+ Align = alTop
+ BevelOuter = bvLowered
+ Caption = 'Console'
+ TabOrder = 3
+ Visible = False
+ end
+end
diff --git a/Source/logunit.pas b/Source/logunit.pas index 187684f..5357b08 100644 --- a/Source/logunit.pas +++ b/Source/logunit.pas @@ -1,60 +1,60 @@ -unit logunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, ComCtrls, ExtCtrls; - -type - Tlog = class(TForm) - PanelLog: TPanel; - Panel2: TPanel; - ButtonClear: TButton; - RELog: TRichEdit; - PanelConsole: TPanel; - Panel1: TPanel; - Panel3: TPanel; - ButtonClose: TButton; - procedure ButtonClearClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure ButtonCloseClick(Sender: TObject); - private - { Private declarations } - public - { Public declarations } - procedure add(const s: String); - end; - -var - log: Tlog; - -implementation - -uses mainunit; - -{$R *.DFM} - -procedure Tlog.add(const s: String); -begin - RELog.Lines.Add(s); -end; - -procedure Tlog.ButtonCloseClick(Sender: TObject); -begin - main.MiLog.Click; -end; - -procedure Tlog.ButtonClearClick(Sender: TObject); -begin - main.REConsole.Lines.Clear; - RELog.Lines.Clear; -end; - -procedure Tlog.FormCreate(Sender: TObject); -begin - main.REConsole.Parent := PanelConsole; - main.REConsole.Align := alClient; -end; - -end. +unit logunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ StdCtrls, ComCtrls, ExtCtrls;
+
+type
+ Tlog = class(TForm)
+ PanelLog: TPanel;
+ Panel2: TPanel;
+ ButtonClear: TButton;
+ RELog: TRichEdit;
+ PanelConsole: TPanel;
+ Panel1: TPanel;
+ Panel3: TPanel;
+ ButtonClose: TButton;
+ procedure ButtonClearClick(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure ButtonCloseClick(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ procedure add(const s: String);
+ end;
+
+var
+ log: Tlog;
+
+implementation
+
+uses mainunit;
+
+{$R *.DFM}
+
+procedure Tlog.add(const s: String);
+begin
+ RELog.Lines.Add(s);
+end;
+
+procedure Tlog.ButtonCloseClick(Sender: TObject);
+begin
+ main.MiLog.Click;
+end;
+
+procedure Tlog.ButtonClearClick(Sender: TObject);
+begin
+ main.REConsole.Lines.Clear;
+ RELog.Lines.Clear;
+end;
+
+procedure Tlog.FormCreate(Sender: TObject);
+begin
+ main.REConsole.Parent := PanelConsole;
+ main.REConsole.Align := alClient;
+end;
+
+end.
diff --git a/Source/mainunit.dfm b/Source/mainunit.dfm index db5836a..8567fa7 100644 --- a/Source/mainunit.dfm +++ b/Source/mainunit.dfm @@ -1,3554 +1,3554 @@ -object main: Tmain - Left = 31 - Top = 502 - Width = 239 - Height = 223 - Caption = 'Framestein' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - OnClose = FormClose - OnCreate = FormCreate - OnDestroy = FormDestroy - PixelsPerInch = 96 - TextHeight = 13 - object ImageLogo: TImage - Left = 0 - Top = 0 - Width = 231 - Height = 196 - Align = alClient - Picture.Data = { - 07544269746D617086AE0100424D86AE0100000000003600000028000000D700 - 0000AA000000010018000000000050AE0100120B0000120B0000000000000000 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CED - EB325C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5CBDADAF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C6D05BB5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CF56EED5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C2F - E8ED5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C4D6FF85C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00 - D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2 - FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00 - D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF - 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2 - FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF - 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2 - FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00 - D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF - 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2 - FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00 - 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2 - FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00 - D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF - 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5CEDEB325C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CBDADAF5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C6D05BB5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CF5 - 6EED5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C2FE8ED5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C - 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C4D6FF8} - PopupMenu = PopupMenu1 - Stretch = True - OnDblClick = ImageLogoDblClick - end - object REConsole: TRichEdit - Left = 136 - Top = 104 - Width = 81 - Height = 73 - BorderStyle = bsNone - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 0 - end - object ss1: TServerSocket - Active = False - Port = 6001 - ServerType = stNonBlocking - OnClientConnect = ss1ClientConnect - OnClientDisconnect = ss1ClientDisconnect - OnClientRead = ss1ClientRead - OnClientError = ss1ClientError - Top = 96 - end - object PopupMenu1: TPopupMenu - Left = 64 - Top = 96 - object MiConfig: TMenuItem - Caption = 'Configure' - OnClick = MiConfigClick - end - object MiReset: TMenuItem - Caption = 'Reset' - OnClick = MiResetClick - end - object MiReloadPlugins: TMenuItem - Caption = 'Reload plugins' - OnClick = MiReloadPluginsClick - end - object MiToolbar: TMenuItem - Caption = 'Show Tools && Filters' - OnClick = MiToolbarClick - end - object MiLog: TMenuItem - Caption = 'Show Debug' - OnClick = MiLogClick - end - object MiExit: TMenuItem - Caption = 'E&xit' - OnClick = MiExitClick - end - end - object ssfs: TServerSocket - Active = False - Port = 6002 - ServerType = stNonBlocking - OnClientConnect = ssfsClientConnect - OnClientDisconnect = ssfsClientDisconnect - OnClientRead = ssfsClientRead - OnClientError = ssfsClientError - Top = 56 - end - object csfs: TClientSocket - Active = False - ClientType = ctNonBlocking - Port = 6010 - OnConnect = csfsConnect - OnDisconnect = csfsDisconnect - OnError = csfsError - Left = 32 - Top = 56 - end - object csToPd: TClientSocket - Active = False - ClientType = ctNonBlocking - Host = 'localhost' - Port = 6002 - OnConnect = csToPdConnect - OnDisconnect = csToPdDisconnect - OnError = csToPdError - Left = 32 - Top = 96 - end -end +object main: Tmain
+ Left = 31
+ Top = 502
+ Width = 239
+ Height = 223
+ Caption = 'Framestein'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ OnClose = FormClose
+ OnCreate = FormCreate
+ OnDestroy = FormDestroy
+ PixelsPerInch = 96
+ TextHeight = 13
+ object ImageLogo: TImage
+ Left = 0
+ Top = 0
+ Width = 231
+ Height = 196
+ Align = alClient
+ Picture.Data = {
+ 07544269746D617086AE0100424D86AE0100000000003600000028000000D700
+ 0000AA000000010018000000000050AE0100120B0000120B0000000000000000
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CED
+ EB325C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5CBDADAF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C6D05BB5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CF56EED5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C2F
+ E8ED5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C4D6FF85C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00
+ D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2
+ FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00
+ D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF
+ 00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2
+ FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF
+ 00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2
+ FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00
+ D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF
+ 00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2
+ FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0000005C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00
+ 00005C5C5C5C5C5C5C5C5C5C5C5C5C5C5C00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2
+ FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00
+ D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF
+ 00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF00D2FF5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5CEDEB325C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CBDADAF5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C6D05BB5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5CF5
+ 6EED5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C2FE8ED5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C
+ 5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C4D6FF8}
+ PopupMenu = PopupMenu1
+ Stretch = True
+ OnDblClick = ImageLogoDblClick
+ end
+ object REConsole: TRichEdit
+ Left = 136
+ Top = 104
+ Width = 81
+ Height = 73
+ BorderStyle = bsNone
+ ReadOnly = True
+ ScrollBars = ssVertical
+ TabOrder = 0
+ end
+ object ss1: TServerSocket
+ Active = False
+ Port = 6001
+ ServerType = stNonBlocking
+ OnClientConnect = ss1ClientConnect
+ OnClientDisconnect = ss1ClientDisconnect
+ OnClientRead = ss1ClientRead
+ OnClientError = ss1ClientError
+ Top = 96
+ end
+ object PopupMenu1: TPopupMenu
+ Left = 64
+ Top = 96
+ object MiConfig: TMenuItem
+ Caption = 'Configure'
+ OnClick = MiConfigClick
+ end
+ object MiReset: TMenuItem
+ Caption = 'Reset'
+ OnClick = MiResetClick
+ end
+ object MiReloadPlugins: TMenuItem
+ Caption = 'Reload plugins'
+ OnClick = MiReloadPluginsClick
+ end
+ object MiToolbar: TMenuItem
+ Caption = 'Show Tools && Filters'
+ OnClick = MiToolbarClick
+ end
+ object MiLog: TMenuItem
+ Caption = 'Show Debug'
+ OnClick = MiLogClick
+ end
+ object MiExit: TMenuItem
+ Caption = 'E&xit'
+ OnClick = MiExitClick
+ end
+ end
+ object ssfs: TServerSocket
+ Active = False
+ Port = 6002
+ ServerType = stNonBlocking
+ OnClientConnect = ssfsClientConnect
+ OnClientDisconnect = ssfsClientDisconnect
+ OnClientRead = ssfsClientRead
+ OnClientError = ssfsClientError
+ Top = 56
+ end
+ object csfs: TClientSocket
+ Active = False
+ ClientType = ctNonBlocking
+ Port = 6010
+ OnConnect = csfsConnect
+ OnDisconnect = csfsDisconnect
+ OnError = csfsError
+ Left = 32
+ Top = 56
+ end
+ object csToPd: TClientSocket
+ Active = False
+ ClientType = ctNonBlocking
+ Host = 'localhost'
+ Port = 6002
+ OnConnect = csToPdConnect
+ OnDisconnect = csToPdDisconnect
+ OnError = csToPdError
+ Left = 32
+ Top = 96
+ end
+end
diff --git a/Source/mainunit.pas b/Source/mainunit.pas index de1ef70..1985c19 100644 --- a/Source/mainunit.pas +++ b/Source/mainunit.pas @@ -16,7 +16,7 @@ interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp,
- pluginunit, fsformunit, fsframeunit,
+ pluginunit, fsformunit, fsframeunit, fsmemounit,
FastDIB,
ExtCtrls, Menus, C2PhotoShopHost, Filez, ComCtrls, Buttons;
@@ -77,6 +77,7 @@ type function ItemCount( const ClassName: String ): Integer;
procedure Reset;
procedure minimizeall;
+ procedure ReDock;
procedure DropFileHandler(const h: HWND; const DroppedFileName: String);
procedure AppMessage(var Msg: Tmsg; var Handled: Boolean);
procedure ExceptionHandler(Sender: TObject; E: Exception);
@@ -115,11 +116,11 @@ type const
{$IFDEF FSDLL}
- STARTMSG = 'FramesteinLib 0.32 DLL running...';
+ STARTMSG = 'FramesteinLib 0.33 DLL running...';
{$ELSE}
- STARTMSG = 'Framestein 0.32 running...';
+ STARTMSG = 'Framestein 0.33 running...';
{$ENDIF}
- MCAPTION = 'Framestein 0.32';
+ MCAPTION = 'Framestein 0.33';
SocketBufferSize = 100000;
var
@@ -247,6 +248,7 @@ var fsbrowser: TFsBrowser;
fsinfo: TFsInfo;
fsavi: TFsAvi;
+ fsmemo: TFsMemo;
f: TFsForm;
begin
if logstate then
@@ -319,9 +321,23 @@ begin fsavi.Name := CompName(s2);
fsavi.Caption := s2;
end else
+ if S1='MEMO' then begin
+ FreeIfCompExists(CompName(s2));
+ fsmemo := TFsMemo.Create(Self);
+ fsmemo.PdName := s2;
+ fsmemo.Name := CompName(s2);
+ fsmemo.Caption := s2;
+ i := ItemCount('TFsMemo')-1;
+ fsmemo.Left := fsmemo.Width*(i div 4);
+ fsmemo.Top := fsmemo.Height*(i mod 4);
+ fsmemo.Show;
+ end else
if S1='MINIMIZEALL' then begin
minimizeall;
end else
+ if S1='REDOCK' then begin
+ ReDock;
+ end else
if s1='PATH' then begin
SearchPath.Add(Copy(S, Length(s1)+2, 255));
end else
@@ -342,7 +358,8 @@ procedure Tmain.Parse(const S: String); (s1='DRAW') or
(s1='BROWSER') or
(s1='INFO') or
- (s1='AVI');
+ (s1='AVI') or
+ (s1='MEMO');
end;
var
@@ -837,6 +854,9 @@ begin if Pos('1400', E.Message)>0 then begin // invalid window handle
// check any fs.frames with invalid window handles
// (due to closing a patch with docked fs.frames)
+
+(* // Do nothing - fs.frames can be redocked
+
if ComponentCount=0 then Exit;
for i:=ComponentCount-1 downto 0 do
if Components[i] is TFsFrame then begin
@@ -847,11 +867,13 @@ begin // A: this will not happed immediately when a patch is closed,
// so closing the frame is more intuitive than popping it up
// after a while.
- f.Free;
-{ f.ParentWindow := 0;
- f.Borders(True);}
+// A2: Nonetheless, let's see how popping it up feels.
+// f.Free;
+ f.ParentWindow := 0;
+ f.Borders(True);
end;
end else
+*)
end else
ShowMessage(E.Message);
end;
@@ -908,6 +930,22 @@ begin TForm(Components[i]).WindowState := wsMinimized;
end;
+procedure Tmain.ReDock;
+var
+ i: Integer;
+ f: TFsFrame;
+begin
+ if ComponentCount=0 then Exit;
+ for i:=ComponentCount-1 downto 0 do
+ if Components[i] is TFsFrame then begin
+ f := Components[i] as TFsFrame;
+ if f.doRedock or ((f.ParentWindow>0) and
+ not IsWindow(f.ParentWindow)) then begin
+ f.Parse('REDOCK');
+ end;
+ end;
+end;
+
procedure Tmain.MiExitClick(Sender: TObject);
begin
Application.Terminate;
diff --git a/Source/progressunit.dfm b/Source/progressunit.dfm index 297d4cd..ff69485 100644 --- a/Source/progressunit.dfm +++ b/Source/progressunit.dfm @@ -1,28 +1,28 @@ -object Progress: TProgress - Left = 262 - Top = 330 - Width = 618 - Height = 53 - BorderStyle = bsSizeToolWin - Caption = 'Progress' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - PixelsPerInch = 96 - TextHeight = 13 - object pb1: TProgressBar - Left = 0 - Top = 0 - Width = 610 - Height = 26 - Align = alClient - Min = 0 - Max = 100 - TabOrder = 0 - end -end +object Progress: TProgress
+ Left = 262
+ Top = 330
+ Width = 618
+ Height = 53
+ BorderStyle = bsSizeToolWin
+ Caption = 'Progress'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object pb1: TProgressBar
+ Left = 0
+ Top = 0
+ Width = 610
+ Height = 26
+ Align = alClient
+ Min = 0
+ Max = 100
+ TabOrder = 0
+ end
+end
diff --git a/Source/progressunit.pas b/Source/progressunit.pas index 6859957..d68a9cf 100644 --- a/Source/progressunit.pas +++ b/Source/progressunit.pas @@ -1,25 +1,25 @@ -unit progressunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - ComCtrls; - -type - TProgress = class(TForm) - pb1: TProgressBar; - private - { Private declarations } - public - { Public declarations } - end; - -var - Progress: TProgress; - -implementation - -{$R *.DFM} - -end. +unit progressunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ ComCtrls;
+
+type
+ TProgress = class(TForm)
+ pb1: TProgressBar;
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ Progress: TProgress;
+
+implementation
+
+{$R *.DFM}
+
+end.
diff --git a/Source/pshostunit.pas b/Source/pshostunit.pas index 720e24c..b0d493b 100644 --- a/Source/pshostunit.pas +++ b/Source/pshostunit.pas @@ -1,140 +1,140 @@ -unit pshostunit; - -interface - -uses - Forms, SysUtils, DirectX, DxDraws, - fsframeunit, C2PhotoShopHost; - -function IsFilter(const S: String): Boolean; - -function Filter_effect(const psh: TC2PhotoShopHost; - const d: TDirectDrawSurface; - const procname: String; const args: String): Boolean; - -function Filter_copy(const psh: TC2PhotoShopHost; - const d1, d2: TDirectDrawSurface; - const procname: String; const args: String): Boolean; - -implementation - -uses - Windows, Graphics, DIB, - mainunit; - -function FullFilterPath(const S: String): String; -begin - Result := main.FSFolder+'\Filters\'+S; - if Uppercase(ExtractFileExt(S))<>'.8BF' then - Result := Result+'.8BF'; -end; - -function IsFilter(const S: String): Boolean; -begin - Result := FileExists(FullFilterPath(S)); -end; - -function Filter_effect(const psh: TC2PhotoShopHost; - const d: TDirectDrawSurface; - const procname: String; const args: String): Boolean; -const - Active: Boolean = False; -var - sd: TDDSurfaceDesc; - dib: TDxDib; -begin - Result := False; - if Active then Exit; // disable recursion - Active := True; - if not psh.LoadFilterDLL(FullFilterPath(procname)) then begin - main.Post('Filter load error: '+procname+'. Requires Adobe''s Plugin.dll?'); - Active := False; - Exit; - end; - - d.Lock(sd); - psh.Surface := @sd; - - if d.BitCount=24 then begin - psh.SrcPtr := sd.lpSurface; - psh.DstPtr := sd.lpSurface; - end else begin - // DIB will ensure we're @ 24 bits per pixel... - dib := TDxDib.Create(main); - dib.DIB.Assign(d); - - psh.DIB := dib; - psh.SrcPtr := dib.DIB.PBits; - psh.DstPtr := dib.DIB.PBits; - end; - - psh.CallDialog := (args=''); - psh.args := args; - psh.RunFilter; - - d.UnLock; - - if d.BitCount<>24 then begin - d.Assign(dib.DIB); - dib.Free; - end; - Result := True; - Active := False; -end; - -function Filter_copy(const psh: TC2PhotoShopHost; - const d1, d2: TDirectDrawSurface; - const procname: String; const args: String): Boolean; -const - Active: Boolean = False; -var - sd1, sd2: TDDSurfaceDesc; - dib1, dib2: TDxDib; -begin - Result := False; - if Active then Exit; // disable recursion - Active := True; - if not psh.LoadFilterDLL(FullFilterPath(procname)) then begin - main.Post('Filter load error: '+procname+'. Requires Adobe''s Plugin.dll?'); - Active := False; - Exit; - end; - - d1.Lock(sd1); - d2.Lock(sd2); - - psh.Surface := @sd1; - - if d1.BitCount=24 then begin - psh.SrcPtr := sd1.lpSurface; - psh.DstPtr := sd2.lpSurface; - end else begin - // DIB will ensure we're @ 24 bits per pixel... - dib1 := TDxDib.Create(main); - dib2 := TDxDib.Create(main); - dib1.DIB.Assign(d1); - dib2.DIB.SetSize(dib1.DIB.Width, dib1.DIB.Height, 24); - - psh.DIB := dib1; - psh.SrcPtr := dib1.DIB.PBits; - psh.DstPtr := dib2.DIB.PBits; - end; - - psh.CallDialog := (args=''); - psh.args := args; - psh.RunFilter; - - d1.UnLock; - d2.UnLock; - - if d1.BitCount<>24 then begin - d2.Assign(dib2.DIB); - dib1.Free; - dib2.Free; - end; - Result := True; - Active := False; -end; - -end. - +unit pshostunit;
+
+interface
+
+uses
+ Forms, SysUtils, DirectX, DxDraws,
+ fsframeunit, C2PhotoShopHost;
+
+function IsFilter(const S: String): Boolean;
+
+function Filter_effect(const psh: TC2PhotoShopHost;
+ const d: TDirectDrawSurface;
+ const procname: String; const args: String): Boolean;
+
+function Filter_copy(const psh: TC2PhotoShopHost;
+ const d1, d2: TDirectDrawSurface;
+ const procname: String; const args: String): Boolean;
+
+implementation
+
+uses
+ Windows, Graphics, DIB,
+ mainunit;
+
+function FullFilterPath(const S: String): String;
+begin
+ Result := main.FSFolder+'\Filters\'+S;
+ if Uppercase(ExtractFileExt(S))<>'.8BF' then
+ Result := Result+'.8BF';
+end;
+
+function IsFilter(const S: String): Boolean;
+begin
+ Result := FileExists(FullFilterPath(S));
+end;
+
+function Filter_effect(const psh: TC2PhotoShopHost;
+ const d: TDirectDrawSurface;
+ const procname: String; const args: String): Boolean;
+const
+ Active: Boolean = False;
+var
+ sd: TDDSurfaceDesc;
+ dib: TDxDib;
+begin
+ Result := False;
+ if Active then Exit; // disable recursion
+ Active := True;
+ if not psh.LoadFilterDLL(FullFilterPath(procname)) then begin
+ main.Post('Filter load error: '+procname+'. Requires Adobe''s Plugin.dll?');
+ Active := False;
+ Exit;
+ end;
+
+ d.Lock(sd);
+ psh.Surface := @sd;
+
+ if d.BitCount=24 then begin
+ psh.SrcPtr := sd.lpSurface;
+ psh.DstPtr := sd.lpSurface;
+ end else begin
+ // DIB will ensure we're @ 24 bits per pixel...
+ dib := TDxDib.Create(main);
+ dib.DIB.Assign(d);
+
+ psh.DIB := dib;
+ psh.SrcPtr := dib.DIB.PBits;
+ psh.DstPtr := dib.DIB.PBits;
+ end;
+
+ psh.CallDialog := (args='');
+ psh.args := args;
+ psh.RunFilter;
+
+ d.UnLock;
+
+ if d.BitCount<>24 then begin
+ d.Assign(dib.DIB);
+ dib.Free;
+ end;
+ Result := True;
+ Active := False;
+end;
+
+function Filter_copy(const psh: TC2PhotoShopHost;
+ const d1, d2: TDirectDrawSurface;
+ const procname: String; const args: String): Boolean;
+const
+ Active: Boolean = False;
+var
+ sd1, sd2: TDDSurfaceDesc;
+ dib1, dib2: TDxDib;
+begin
+ Result := False;
+ if Active then Exit; // disable recursion
+ Active := True;
+ if not psh.LoadFilterDLL(FullFilterPath(procname)) then begin
+ main.Post('Filter load error: '+procname+'. Requires Adobe''s Plugin.dll?');
+ Active := False;
+ Exit;
+ end;
+
+ d1.Lock(sd1);
+ d2.Lock(sd2);
+
+ psh.Surface := @sd1;
+
+ if d1.BitCount=24 then begin
+ psh.SrcPtr := sd1.lpSurface;
+ psh.DstPtr := sd2.lpSurface;
+ end else begin
+ // DIB will ensure we're @ 24 bits per pixel...
+ dib1 := TDxDib.Create(main);
+ dib2 := TDxDib.Create(main);
+ dib1.DIB.Assign(d1);
+ dib2.DIB.SetSize(dib1.DIB.Width, dib1.DIB.Height, 24);
+
+ psh.DIB := dib1;
+ psh.SrcPtr := dib1.DIB.PBits;
+ psh.DstPtr := dib2.DIB.PBits;
+ end;
+
+ psh.CallDialog := (args='');
+ psh.args := args;
+ psh.RunFilter;
+
+ d1.UnLock;
+ d2.UnLock;
+
+ if d1.BitCount<>24 then begin
+ d2.Assign(dib2.DIB);
+ dib1.Free;
+ dib2.Free;
+ end;
+ Result := True;
+ Active := False;
+end;
+
+end.
+
diff --git a/Source/toolbarunit.dfm b/Source/toolbarunit.dfm index 814fc8e..c02f08a 100644 --- a/Source/toolbarunit.dfm +++ b/Source/toolbarunit.dfm @@ -1,129 +1,129 @@ -object toolbar: Ttoolbar - Left = 188 - Top = 106 - Width = 572 - Height = 496 - BorderStyle = bsSizeToolWin - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - OldCreateOrder = False - Position = poScreenCenter - OnClose = FormClose - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object bar: TStatusBar - Left = 0 - Top = 450 - Width = 564 - Height = 19 - Panels = <> - SimplePanel = False - end - object Panel3: TPanel - Left = 0 - Top = 0 - Width = 564 - Height = 450 - Align = alClient - BevelOuter = bvNone - Caption = 'Panel3' - TabOrder = 1 - object PageControl1: TPageControl - Left = 0 - Top = 0 - Width = 565 - Height = 451 - ActivePage = TabSheet1 - Anchors = [akLeft, akTop, akRight, akBottom] - TabOrder = 0 - OnChange = PageControl1Change - object TabSheet1: TTabSheet - Caption = 'Tools' - object Panel2: TPanel - Left = 0 - Top = 0 - Width = 557 - Height = 423 - Align = alClient - BevelOuter = bvNone - Caption = 'Panel2' - TabOrder = 0 - object LVTools: TListView - Left = 0 - Top = 0 - Width = 557 - Height = 423 - Align = alClient - BorderStyle = bsNone - Color = clBtnFace - Columns = <> - ReadOnly = True - TabOrder = 0 - ViewStyle = vsList - OnChange = LVFiltersChange - OnCustomDrawItem = LVFiltersCustomDrawItem - OnSelectItem = LVToolsSelectItem - end - object m1: TMemo - Left = 16 - Top = 8 - Width = 129 - Height = 33 - TabOrder = 1 - Visible = False - WordWrap = False - end - end - end - object TabSheet2: TTabSheet - Caption = 'Filters' - ImageIndex = 1 - object Panel1: TPanel - Left = 0 - Top = 0 - Width = 557 - Height = 423 - Align = alClient - BevelOuter = bvNone - Caption = 'Panel1' - TabOrder = 0 - object LVFilters: TListView - Left = 0 - Top = 0 - Width = 557 - Height = 423 - Align = alClient - BorderStyle = bsNone - Color = clBtnFace - Columns = < - item - AutoSize = True - Caption = 'Name' - end - item - AutoSize = True - Caption = 'Info' - end> - ReadOnly = True - SortType = stText - TabOrder = 0 - ViewStyle = vsList - OnChange = LVFiltersChange - OnCustomDrawItem = LVFiltersCustomDrawItem - OnSelectItem = LVFiltersSelectItem - end - end - end - end - end - object sd: TScanDir - OnHandleFile = sdHandleFile - Left = 104 - Top = 7 - end -end +object toolbar: Ttoolbar
+ Left = 188
+ Top = 106
+ Width = 572
+ Height = 496
+ BorderStyle = bsSizeToolWin
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnClose = FormClose
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object bar: TStatusBar
+ Left = 0
+ Top = 450
+ Width = 564
+ Height = 19
+ Panels = <>
+ SimplePanel = False
+ end
+ object Panel3: TPanel
+ Left = 0
+ Top = 0
+ Width = 564
+ Height = 450
+ Align = alClient
+ BevelOuter = bvNone
+ Caption = 'Panel3'
+ TabOrder = 1
+ object PageControl1: TPageControl
+ Left = 0
+ Top = 0
+ Width = 565
+ Height = 451
+ ActivePage = TabSheet1
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ TabOrder = 0
+ OnChange = PageControl1Change
+ object TabSheet1: TTabSheet
+ Caption = 'Tools'
+ object Panel2: TPanel
+ Left = 0
+ Top = 0
+ Width = 557
+ Height = 423
+ Align = alClient
+ BevelOuter = bvNone
+ Caption = 'Panel2'
+ TabOrder = 0
+ object LVTools: TListView
+ Left = 0
+ Top = 0
+ Width = 557
+ Height = 423
+ Align = alClient
+ BorderStyle = bsNone
+ Color = clBtnFace
+ Columns = <>
+ ReadOnly = True
+ TabOrder = 0
+ ViewStyle = vsList
+ OnChange = LVFiltersChange
+ OnCustomDrawItem = LVFiltersCustomDrawItem
+ OnSelectItem = LVToolsSelectItem
+ end
+ object m1: TMemo
+ Left = 16
+ Top = 8
+ Width = 129
+ Height = 33
+ TabOrder = 1
+ Visible = False
+ WordWrap = False
+ end
+ end
+ end
+ object TabSheet2: TTabSheet
+ Caption = 'Filters'
+ ImageIndex = 1
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 557
+ Height = 423
+ Align = alClient
+ BevelOuter = bvNone
+ Caption = 'Panel1'
+ TabOrder = 0
+ object LVFilters: TListView
+ Left = 0
+ Top = 0
+ Width = 557
+ Height = 423
+ Align = alClient
+ BorderStyle = bsNone
+ Color = clBtnFace
+ Columns = <
+ item
+ AutoSize = True
+ Caption = 'Name'
+ end
+ item
+ AutoSize = True
+ Caption = 'Info'
+ end>
+ ReadOnly = True
+ SortType = stText
+ TabOrder = 0
+ ViewStyle = vsList
+ OnChange = LVFiltersChange
+ OnCustomDrawItem = LVFiltersCustomDrawItem
+ OnSelectItem = LVFiltersSelectItem
+ end
+ end
+ end
+ end
+ end
+ object sd: TScanDir
+ OnHandleFile = sdHandleFile
+ Left = 104
+ Top = 7
+ end
+end
diff --git a/Source/toolbarunit.pas b/Source/toolbarunit.pas index 39bd20a..5627e64 100644 --- a/Source/toolbarunit.pas +++ b/Source/toolbarunit.pas @@ -1,205 +1,205 @@ -unit toolbarunit; - -interface - -uses - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - ComCtrls, ToolWin, Buttons, ExtCtrls, StdCtrls, ImgList, - SendKeys, Filez; - -type - Ttoolbar = class(TForm) - bar: TStatusBar; - sd: TScanDir; - Panel3: TPanel; - PageControl1: TPageControl; - TabSheet1: TTabSheet; - TabSheet2: TTabSheet; - Panel2: TPanel; - LVTools: TListView; - m1: TMemo; - Panel1: TPanel; - LVFilters: TListView; - procedure FormCreate(Sender: TObject); - procedure LVFiltersCustomDrawItem(Sender: TCustomListView; - Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); - procedure LVFiltersChange(Sender: TObject; Item: TListItem; - Change: TItemChange); - procedure LVFiltersSelectItem(Sender: TObject; Item: TListItem; - Selected: Boolean); - procedure LVToolsSelectItem(Sender: TObject; Item: TListItem; - Selected: Boolean); - procedure sdHandleFile(const SearchRec: TSearchRec; - const FullPath: String); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure PageControl1Change(Sender: TObject); - private - { Private declarations } - SendKey: TSendKey; - public - { Public declarations } - procedure UpdateLists; - end; - -var - toolbar: Ttoolbar; - -implementation - -uses - mainunit, strz; - -{$R *.DFM} - -procedure Ttoolbar.sdHandleFile(const SearchRec: TSearchRec; - const FullPath: String); -begin - if ExtractFileExt(UpperCase(FullPath))<>'.8BF' then Exit; - - with LVFilters.Items.Add do begin - Caption := ExtractFileName(FullPath); - Caption := Copy(Caption, 1, Length(Caption)-4); - Data := Pointer(-1); - end; -end; - -procedure Ttoolbar.UpdateLists; -var - i: Integer; -begin - // Load tools - if FileExists(main.FSFolder+'\toolbar.txt') then begin - LVTools.Items.Clear; - m1.Lines.LoadFromFile(main.FSFolder+'\toolbar.txt'); - if m1.Lines.Count>0 then - for i:=0 to m1.Lines.Count-1 do begin - with LVTools.Items.Add do begin - Caption := ExtractWord(1, m1.Lines[i], [';']); - Data := Pointer(i); - end; - end; - end; - - // Load plugins - if main.Plugins.Names.Count>0 then begin - LVFilters.Items.Clear; - for i:=0 to main.Plugins.Names.Count-1 do begin - with LVFilters.Items.Add do begin - Caption := main.Plugins.Names[i]; - SubItems.Add(main.Plugins.Info(i)); - Data := Pointer(i); - end; - end; - end; - - // Load photoshop-filters - sd.Scan(main.FSFolder+'\Filters'); -end; - -procedure Ttoolbar.FormCreate(Sender: TObject); -begin - UpdateLists; - SendKey := TSendKey.Create(Self); -// Show; -end; - -const - it: TListItem = nil; - -procedure Ttoolbar.LVFiltersChange(Sender: TObject; Item: TListItem; - Change: TItemChange); -begin - -(* Trying to provide "paste objects to patches" feature, - real toolbar-style, but: - - disabled together with CustomDrawItem - - doesn't work well enough, might introduce new bugs etc. - - if Item.Selected then - it := item; - if Item.ListView.Selected=nil then it:=nil; -*) - -end; - -procedure Ttoolbar.LVFiltersCustomDrawItem(Sender: TCustomListView; - Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); -var - Title: array[0..255] of Char; - s: String; - h: THandle; -begin - -(* NOT GOOD ENOUGH - - if (it=nil) or (Item.Caption='') then Exit; - if it.Caption=item.Caption then begin - Sleep(50); // wait for pd window to get focus - h := GetForegroundWindow; - if GetWindowText(h, Title, SizeOf(Title))>0 then begin - s := StrPas(@Title); - if Pos(' - ', S)>0 then begin - Delete(S, Pos(' - ', S), 255); - if Pos('*', S)>0 then Delete(S, Pos('*', S), 255); -// main.Post(Item.Caption+' -> '+S); - if Item.ListView=LVFilters then - main.SendReturnValues('obj pd-'+S+'=msg 10 10 '+Item.Caption+';') - else begin - SendKey.Delay := 100; - SendKey.TitleText := S; - SendKey.Keys := '{^1}'+Item.Caption; - SendKey.execute; -// Self.Hide; - end; - Item.ListView.Selected := nil; - end; - end; - end; -*) - -end; - -procedure Ttoolbar.LVFiltersSelectItem(Sender: TObject; Item: TListItem; - Selected: Boolean); -var - i: Longint; - S: String; -begin - i := Longint(Item.Data); - if i=-1 then bar.SimpleText := Item.Caption+': Photoshop-filter' - else begin - S := main.Plugins.Info(i); - if S='' then - bar.SimpleText := Item.Caption+': <no info available>' - else - bar.SimpleText := Item.Caption+': '+S; - end; -end; - -procedure Ttoolbar.LVToolsSelectItem(Sender: TObject; Item: TListItem; - Selected: Boolean); -var - S: String; - i: Integer; -begin - i := Integer(Item.Data); - if (i>=0) and (i<m1.Lines.Count) then begin - S := m1.Lines[i]; - if Pos(';', S)>0 then Delete(S, 1, Pos(';', S)); - bar.SimpleText := S; - end; -end; - -procedure Ttoolbar.FormClose(Sender: TObject; var Action: TCloseAction); -begin - main.MiToolbar.Checked := False; -end; - -procedure Ttoolbar.PageControl1Change(Sender: TObject); -begin - bar.SimpleText := ''; -end; - -end. - +unit toolbarunit;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ ComCtrls, ToolWin, Buttons, ExtCtrls, StdCtrls, ImgList,
+ SendKeys, Filez;
+
+type
+ Ttoolbar = class(TForm)
+ bar: TStatusBar;
+ sd: TScanDir;
+ Panel3: TPanel;
+ PageControl1: TPageControl;
+ TabSheet1: TTabSheet;
+ TabSheet2: TTabSheet;
+ Panel2: TPanel;
+ LVTools: TListView;
+ m1: TMemo;
+ Panel1: TPanel;
+ LVFilters: TListView;
+ procedure FormCreate(Sender: TObject);
+ procedure LVFiltersCustomDrawItem(Sender: TCustomListView;
+ Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
+ procedure LVFiltersChange(Sender: TObject; Item: TListItem;
+ Change: TItemChange);
+ procedure LVFiltersSelectItem(Sender: TObject; Item: TListItem;
+ Selected: Boolean);
+ procedure LVToolsSelectItem(Sender: TObject; Item: TListItem;
+ Selected: Boolean);
+ procedure sdHandleFile(const SearchRec: TSearchRec;
+ const FullPath: String);
+ procedure FormClose(Sender: TObject; var Action: TCloseAction);
+ procedure PageControl1Change(Sender: TObject);
+ private
+ { Private declarations }
+ SendKey: TSendKey;
+ public
+ { Public declarations }
+ procedure UpdateLists;
+ end;
+
+var
+ toolbar: Ttoolbar;
+
+implementation
+
+uses
+ mainunit, strz;
+
+{$R *.DFM}
+
+procedure Ttoolbar.sdHandleFile(const SearchRec: TSearchRec;
+ const FullPath: String);
+begin
+ if ExtractFileExt(UpperCase(FullPath))<>'.8BF' then Exit;
+
+ with LVFilters.Items.Add do begin
+ Caption := ExtractFileName(FullPath);
+ Caption := Copy(Caption, 1, Length(Caption)-4);
+ Data := Pointer(-1);
+ end;
+end;
+
+procedure Ttoolbar.UpdateLists;
+var
+ i: Integer;
+begin
+ // Load tools
+ if FileExists(main.FSFolder+'\toolbar.txt') then begin
+ LVTools.Items.Clear;
+ m1.Lines.LoadFromFile(main.FSFolder+'\toolbar.txt');
+ if m1.Lines.Count>0 then
+ for i:=0 to m1.Lines.Count-1 do begin
+ with LVTools.Items.Add do begin
+ Caption := ExtractWord(1, m1.Lines[i], [';']);
+ Data := Pointer(i);
+ end;
+ end;
+ end;
+
+ // Load plugins
+ if main.Plugins.Names.Count>0 then begin
+ LVFilters.Items.Clear;
+ for i:=0 to main.Plugins.Names.Count-1 do begin
+ with LVFilters.Items.Add do begin
+ Caption := main.Plugins.Names[i];
+ SubItems.Add(main.Plugins.Info(i));
+ Data := Pointer(i);
+ end;
+ end;
+ end;
+
+ // Load photoshop-filters
+ sd.Scan(main.FSFolder+'\Filters');
+end;
+
+procedure Ttoolbar.FormCreate(Sender: TObject);
+begin
+ UpdateLists;
+ SendKey := TSendKey.Create(Self);
+// Show;
+end;
+
+const
+ it: TListItem = nil;
+
+procedure Ttoolbar.LVFiltersChange(Sender: TObject; Item: TListItem;
+ Change: TItemChange);
+begin
+
+(* Trying to provide "paste objects to patches" feature,
+ real toolbar-style, but:
+
+ disabled together with CustomDrawItem -
+ doesn't work well enough, might introduce new bugs etc.
+
+ if Item.Selected then
+ it := item;
+ if Item.ListView.Selected=nil then it:=nil;
+*)
+
+end;
+
+procedure Ttoolbar.LVFiltersCustomDrawItem(Sender: TCustomListView;
+ Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
+var
+ Title: array[0..255] of Char;
+ s: String;
+ h: THandle;
+begin
+
+(* NOT GOOD ENOUGH
+
+ if (it=nil) or (Item.Caption='') then Exit;
+ if it.Caption=item.Caption then begin
+ Sleep(50); // wait for pd window to get focus
+ h := GetForegroundWindow;
+ if GetWindowText(h, Title, SizeOf(Title))>0 then begin
+ s := StrPas(@Title);
+ if Pos(' - ', S)>0 then begin
+ Delete(S, Pos(' - ', S), 255);
+ if Pos('*', S)>0 then Delete(S, Pos('*', S), 255);
+// main.Post(Item.Caption+' -> '+S);
+ if Item.ListView=LVFilters then
+ main.SendReturnValues('obj pd-'+S+'=msg 10 10 '+Item.Caption+';')
+ else begin
+ SendKey.Delay := 100;
+ SendKey.TitleText := S;
+ SendKey.Keys := '{^1}'+Item.Caption;
+ SendKey.execute;
+// Self.Hide;
+ end;
+ Item.ListView.Selected := nil;
+ end;
+ end;
+ end;
+*)
+
+end;
+
+procedure Ttoolbar.LVFiltersSelectItem(Sender: TObject; Item: TListItem;
+ Selected: Boolean);
+var
+ i: Longint;
+ S: String;
+begin
+ i := Longint(Item.Data);
+ if i=-1 then bar.SimpleText := Item.Caption+': Photoshop-filter'
+ else begin
+ S := main.Plugins.Info(i);
+ if S='' then
+ bar.SimpleText := Item.Caption+': <no info available>'
+ else
+ bar.SimpleText := Item.Caption+': '+S;
+ end;
+end;
+
+procedure Ttoolbar.LVToolsSelectItem(Sender: TObject; Item: TListItem;
+ Selected: Boolean);
+var
+ S: String;
+ i: Integer;
+begin
+ i := Integer(Item.Data);
+ if (i>=0) and (i<m1.Lines.Count) then begin
+ S := m1.Lines[i];
+ if Pos(';', S)>0 then Delete(S, 1, Pos(';', S));
+ bar.SimpleText := S;
+ end;
+end;
+
+procedure Ttoolbar.FormClose(Sender: TObject; var Action: TCloseAction);
+begin
+ main.MiToolbar.Checked := False;
+end;
+
+procedure Ttoolbar.PageControl1Change(Sender: TObject);
+begin
+ bar.SimpleText := '';
+end;
+
+end.
+
diff --git a/toolbar.txt b/toolbar.txt index aa3886d..66604b6 100644 --- a/toolbar.txt +++ b/toolbar.txt @@ -1,23 +1,23 @@ -fs.main;fs.main: connect Pd and Framestein - -fs.frame;fs.frame: Load, display and process images and video -fs.framed;fs.framed: a docked version of fs.frame -fs.copy;fs.copy: Perform operations on two fs.frames -fs.fx;fs.fx: image effects -fs.blend;fs.blend: Blend two images -fs.mask;fs.mask: Copy frame to another using a mask -fs.layermode;fs.layermode: Mix two images with difference layer mode - -fs.draw;fs.draw: Draw lines and rectangles -fs.text;fs.text: Insert text - -fs.info;fs.info: Get info on fs.frame, such as width, height, framecount, ... -fs.event;fs.event: Get mouse and drag & drop information from fs.frame -fs.rgb;fs.rgb: Get red, green and blue of a pixel -fs.hist;fs.hist: Calculate image color intensities -fs.sonogram;fs.sonogram: Show a graphical spectogram - -fs.browser;fs.browser: View webpages and convert them to images -fs.waveform;fs.waveform: Display a waveform in fs.frame - -fs.grid;fs.grid: Easy to use XY-control +fs.main;fs.main: connect Pd and Framestein
+
+fs.frame;fs.frame: Load, display and process images and video
+fs.framed;fs.framed: a docked version of fs.frame
+fs.copy;fs.copy: Perform operations on two fs.frames
+fs.fx;fs.fx: image effects
+fs.blend;fs.blend: Blend two images
+fs.mask;fs.mask: Copy frame to another using a mask
+fs.layermode;fs.layermode: Mix two images with difference layer mode
+
+fs.draw;fs.draw: Draw lines and rectangles
+fs.text;fs.text: Insert text
+
+fs.info;fs.info: Get info on fs.frame, such as width, height, framecount, ...
+fs.event;fs.event: Get mouse and drag & drop information from fs.frame
+fs.rgb;fs.rgb: Get red, green and blue of a pixel
+fs.hist;fs.hist: Calculate image color intensities
+fs.sonogram;fs.sonogram: Show a graphical spectogram
+
+fs.browser;fs.browser: View webpages and convert them to images
+fs.waveform;fs.waveform: Display a waveform in fs.frame
+
+fs.grid;fs.grid: Easy to use XY-control
|