--- /dev/null
+[Settings]
+Layout=0
+Output=16
+Preview=1
+InitialDir1=C:\
+InitialDir2=C:\
+InitialDir3=C:\
+binPath=C:\Program Files\Graphviz2.20\bin
+PrePath=C:\Program Files\Graphviz2.16\bin
+PreCmd=
+
--- /dev/null
+#ifndef UApplicationH
+#define UApplicationH
+#define SOFTWARE_SHORT_NAME "Graphviz Editor v:0.99"
+#endif
--- /dev/null
+[Attributes]
+1=Graph
+2=Edge
+3=Node
+[Graph]
+1=URL
+2=bb
+3=bgcolor
+4=center
+5=clusterrank
+6=comment
+7=compound
+8=concentrate
+[Node]
+1=URL
+2=bottomlabel
+3=color
+4=comment
+5=distortion
+6=fillcolor
+7=fixedsize
+8=fontcolor
+[Edge]
+1=URL
+2=arrowhead
+3=arrowsize
+4=arrowtail
+5=color
+6=comment
+7=constraint
+8=decorate
+
+
+
+
+
+
--- /dev/null
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.06.00"/>
+ <PROJECT value="GraphX.exe"/>
+ <OBJFILES value="GraphX.obj Umain.obj UEditor.obj USettings.obj UPreview.obj UAbout.obj
+ USettings.obj GraphX.obj UAbout.obj UEditor.obj Umain.obj UPreview.obj
+ UPreProcess.obj"/>
+ <RESFILES value="GraphX.res"/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES) Umain.dfm UEditor.dfm USettings.dfm UPreview.dfm UAbout.dfm
+ UPreProcess.dfm"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value="adortl.lib dbrtl.lib rtl.lib vcl.lib"/>
+ <SPARELIBS value="vcl.lib rtl.lib dbrtl.lib adortl.lib"/>
+ <PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
+ vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
+ teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
+ dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
+ inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
+ bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
+ indy.bpi bcb2kaxserver.bpi"/>
+ <PATHCPP value=".;"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT"/>
+ <MAINSOURCE value="GraphX.cpp"/>
+ <INCLUDEPATH value="C:\MyProjects\access;cgraph;"C:\Program Files\Borland\CBuilder6\Projects";C:\Projects\ATT\GraphvizEditor;$(BCB)\include;$(BCB)\include\vcl;C:\Projects\ATT\GTK\GTKTest2\lib\cdt"/>
+ <LIBPATH value="C:\MyProjects\access;cgraph;"C:\Program Files\Borland\CBuilder6\Projects";C:\Projects\ATT\GraphvizEditor;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <OTHERFILES value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-IC:\MyProjects\access -Icgraph
+ -I"C:\Program Files\Borland\CBuilder6\Projects"
+ -IC:\Projects\ATT\GraphvizEditor -I$(BCB)\include -I$(BCB)\include\vcl
+ -IC:\Projects\ATT\GTK\GTKTest2\lib\cdt -src_suffix cpp -D_DEBUG -boa"/>
+ <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
+ -tW -tWM"/>
+ <PFLAGS value="-$YD -$W -$O- -$I- -$A8 -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-D"" -aa -Tpe -x -Gn"/>
+ <OTHERFILES value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+ <OTHERFILES value=""/>
+ </LINKER>
+ <FILELIST>
+ <FILE FILENAME="GraphX.res" FORMNAME="" UNITNAME="GraphX.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="GraphX.cpp" FORMNAME="" UNITNAME="GraphX" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="Umain.cpp" FORMNAME="frmMain" UNITNAME="Umain" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UEditor.cpp" FORMNAME="frmEditor" UNITNAME="UEditor" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="USettings.cpp" FORMNAME="frmSettings" UNITNAME="USettings" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UPreview.cpp" FORMNAME="frmPreview" UNITNAME="UPreview" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UAbout.cpp" FORMNAME="frmAbout" UNITNAME="UAbout" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="USettings.obj" FORMNAME="" UNITNAME="USettings.obj" CONTAINERID="OBJTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="GraphX.obj" FORMNAME="" UNITNAME="GraphX.obj" CONTAINERID="OBJTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UAbout.obj" FORMNAME="" UNITNAME="UAbout.obj" CONTAINERID="OBJTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UEditor.obj" FORMNAME="" UNITNAME="UEditor.obj" CONTAINERID="OBJTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="Umain.obj" FORMNAME="" UNITNAME="Umain.obj" CONTAINERID="OBJTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UPreview.obj" FORMNAME="" UNITNAME="UPreview.obj" CONTAINERID="OBJTool" DESIGNCLASS="" LOCALCOMMAND=""/>
+ <FILE FILENAME="UPreProcess.cpp" FORMNAME="frmPre" UNITNAME="UPreProcess" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
+ </FILELIST>
+ <BUILDTOOLS>
+ </BUILDTOOLS>
+
+ <IDEOPTIONS>
+[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=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[Excluded Packages]
+c:\program files\borland\cbuilder6\Projects\Bpl\TMSUnicodeDEC6.bpl=TMS Unicode Component Pack
+
+[HistoryLists\hlIncludePath]
+Count=5
+Item0=C:\MyProjects\access;cgraph;C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\include;$(BCB)\include\vcl;C:\Projects\ATT\GTK\GTKTest2\lib\cdt
+Item1=C:\MyProjects\access;cgraph;C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\include;$(BCB)\include\vcl;C:\Projects\ATT\Graphviz Editor\cgraph;C:\Projects\ATT\GTK\GTKTest2\lib\cdt
+Item2=C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\include;$(BCB)\include\vcl;C:\Projects\ATT\Graphviz Editor\cgraph;C:\Projects\ATT\GTK\GTKTest2\lib\cdt
+Item3=C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\include;$(BCB)\include\vcl;C:\Projects\ATT\Graphviz Editor\cgraph
+Item4=C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=2
+Item0=C:\MyProjects\access;cgraph;C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib
+Item1=C:\Program Files\Borland\CBuilder6\Projects;C:\Projects\ATT\GraphvizEditor;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+Launcher=
+UseLauncher=0
+DebugCWD=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteLauncher=
+RemoteCWD=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT>
\ No newline at end of file
--- /dev/null
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+USEFORM("Umain.cpp", frmMain);
+USEFORM("UEditor.cpp", frmEditor);
+USEFORM("USettings.cpp", frmSettings);
+USEFORM("UPreview.cpp", frmPreview);
+USEFORM("UAbout.cpp", frmAbout);
+USEFORM("UPreProcess.cpp", frmPre);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TfrmMain), &frmMain);
+ Application->CreateForm(__classid(TfrmSettings), &frmSettings);
+ Application->CreateForm(__classid(TfrmPreview), &frmPreview);
+ Application->CreateForm(__classid(TfrmAbout), &frmAbout);
+ Application->CreateForm(__classid(TfrmPre), &frmPre);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ catch (...)
+ {
+ try
+ {
+ throw Exception("");
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
--- /dev/null
+//---------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "UAbout.h"
+//---------------------------------------------------------------------
+#pragma resource "*.dfm"
+TfrmAbout *frmAbout;
+//---------------------------------------------------------------------
+__fastcall TfrmAbout::TfrmAbout(TComponent* AOwner)
+ : TForm(AOwner)
+{
+}
+//---------------------------------------------------------------------
--- /dev/null
+object frmAbout: TfrmAbout
+ Left = 358
+ Top = 296
+ BorderStyle = bsDialog
+ Caption = 'About GVedit'
+ ClientHeight = 150
+ ClientWidth = 281
+ Color = clBtnFace
+ DefaultMonitor = dmPrimary
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = True
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 281
+ Height = 121
+ BevelInner = bvRaised
+ BevelOuter = bvLowered
+ ParentColor = True
+ TabOrder = 0
+ object ProgramIcon: TImage
+ Left = 5
+ Top = 5
+ Width = 82
+ Height = 110
+ Picture.Data = {
+ 0A544A504547496D6167658BFE0000FFD8FFE000104A46494600010201004800
+ 480000FFE116E94578696600004D4D002A000000080007011200030000000100
+ 010000011A00050000000100000062011B0005000000010000006A0128000300
+ 0000010002000001310002000000140000007201320002000000140000008687
+ 690004000000010000009C000000C80000004800000001000000480000000141
+ 646F62652050686F746F73686F7020372E3000323030373A30333A3134203134
+ 3A34373A30370000000003A001000300000001FFFF0000A00200040000000100
+ 000096A003000400000001000000DA0000000000000006010300030000000100
+ 060000011A00050000000100000116011B0005000000010000011E0128000300
+ 000001000200000201000400000001000001260202000400000001000015BB00
+ 00000000000048000000010000004800000001FFD8FFE000104A464946000102
+ 01004800480000FFED000C41646F62655F434D0002FFEE000E41646F62650064
+ 8000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518
+ 131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+ 0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14
+ 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+ 0C0C0C0C0C0C0C0C0C0C0CFFC00011080080005803012200021101031101FFDD
+ 00040006FFC4013F000001050101010101010000000000000003000102040506
+ 0708090A0B010001050101010101010000000000000001000203040506070809
+ 0A0B1000010401030204020507060805030C3301000211030421123105415161
+ 1322718132061491A1B14223241552C16233347282D14307259253F0E1F16373
+ 3516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A4
+ 85B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7
+ B7C7D7E7F7110002020102040403040506070706053501000211032131120441
+ 51617122130532819114A1B14223C152D1F0332462E1728292435315637334F1
+ 250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F346
+ 94A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747576777
+ 8797A7B7C7FFDA000C03010002110311003F00F4D199597583DC4D6E0D21A0B8
+ C91BB86CA5F6A67EEDBFF6DBBFF22B3B11E1B959A5D67A63D668DD00FF008377
+ 8872967F55C5C0C77E55D945CD616C3435A0B9D061BAB3F3BE9A3A0049D00EA8
+ 02729C6101C5291118C46E645BA735BD9B69FF00AD3FBFF6508F512013B2C813
+ AFA4FEDA1ECB8CC7EA1F5AFEB18F5B12FABA574D90D664DCD2E7D825C37E362D
+ 7B7D4ADAEFF0D63EAFF8245B3A17D63A6B75B8FF00599975A262ABF18B1860C6
+ B6576DCFADBFF5AB13412751035F633CB0E381E19F310131F308C659231978CE
+ 3FF70F58FEA6E6FE6593AFF827F6E505DD62D06056EF0D6A7F31BBFEA573183F
+ 59736BCE774AEBE061E5301DB7376BEB787FB599155CF69F52877F9F57F85FF4
+ 6B6B2EFC3C41EBE5E7B31EA0F8DF6EC6027646D6EE67BDDBBF3588C4895D5823
+ E60778ACCD8A788C6EA51C9AE3C91F93247FABFDDFD26E8EB3691FCDBBB7F827
+ F7E159C6EA22EA45A410D92D24B4B608FDE6BBE8AC6B1F5B011F6AD4067E6B7F
+ 95FF0006A1F57F3DA73ACC275BEA0BAB2F634803DCC277F0D6FD3ADDFF004112
+ 1884ADE9D96070D14D66B8BF11FB86B8E4EBE2CFFD46AFD7607B6420B99A4924
+ 929FFFD0EF709C5B979A43DB5FE99BABF8FE6DDFCA62E67FC65596BF170ABF55
+ AF63ECB01F4F41BB6376E9BECFCDF576AE9B09A5D979A031AF3EB3747981FCDB
+ BF9362C9EB986CEB01FD2F2DCCC775B796D6C63585D4FA55BECA73373DB55DF9
+ BEAFAD5EFC7FB37AD81FA3B7F48864871E331BAB0CDC9F30397E6B1E631E28E3
+ 97AA3AEB1947825FF49DDC57555E3D35E35D4578EDAAA14B034802B1FCDB5A3D
+ 6FF46A66D7FA4EFD629FCFEC7F7BFE39701D3FEB5F50FAB98D4E3F5BC56E4E2D
+ 90DC5CDA22DADE7E9FA7A7E92BBBF7F1EEFD2AD077F8C6E9766EAB170AEBDEFD
+ C195D7438D927DDFBA7F9490CA2BD4083DB86FEC44F929D938E70C98CDF0CCE4
+ 8C3D3FEB2392719424BFF8CAF40E0E1DD6595BEFAADB3D32C0411596FE99A4FA
+ 967E7B68589D6FEA3F5CB7ABE267E37507E57ACEAC8C8BDE6CBB0EC03D56976B
+ EEC5AEE1EDB2BFE6BFC257FE11FA3D2FA6753FACFD56BEA1D6EA6D3898F53323
+ 1B02D734597025DE8DB94CA5A5B5D1EA56F7595FA7FA47FF0082F4FF009CE9B3
+ F36FA3A8EE6B2B38F8A18FCE6CD65AD16CB1AF7BEC6577B1EC66FBBF47EB7ABF
+ CDFE7A10893294CE9C5400F08F764E6734461C1CB40F19C2672C93F5187B99F8
+ 7D18FF00AB0E08BCB62FD70EAFD33359D27EB7B6BC7B6C03D0EA8C1BA9B0027D
+ F6FA2F657B1DBBFA452CFD0FFDA9C6AD6A31F663F57C1B7D5AC8F55AD3B7BB6D
+ 73AAD3F4AFFA4DB15FCBE898FD66BEA383D4316B7D6EB2A6361E43ABDB530B2F
+ C578A7F4766EB1EF6FFDB777E8D719D31F9FF573ABD5F56BAB066457BD96F48C
+ A276870166F6E3FA9B1CE6FAAF1E9ECFFB4D95FA3FE66EAD3DA80F5FE2FA939B
+ C83A8E08551A5D87686EBE83CC309FCD3FE8DDFF00A2D67B7EB76331DB73B16E
+ C732417B07AAC001893B365DFF0080AD4A6FC2EA3438E3DADBEA7087961923FA
+ C3E956FF00EB20B9B8C70709092A5876595B8D16997B3BF88FCD7FF692494FFF
+ D1EF311A1D959A0B5CFF00D337461DA7F9B777DD5AB618DDD1E8DE356E9EA1F0
+ FF008FFCD553123ED59B2E7B7F4CDD6B049FE6DDFBAD7AB6DDBEA0FD2E472DE5
+ AE8E3BFE8BFCE4E1B31CAAFF00F45786B6FA3AAFF8C8A9B92DB0E0F40ADB5B01
+ 717B465DBFA56BAD7BAC3E96DF77BF7FF39855AEC710E3E4637DBB1E9CA0DCA6
+ 97FBAC7B49D4359BEA7E47B2CD8D6AE33FC5DE2D5D4D9D63AA653AD7372FA897
+ 39AD6970B1A0585ACBBF46FF006B7EDAE77B3D35D955858B556D717E459754D7
+ B5B739877C17389F7329637F3FF75117F8AA55B787F555939983556CB9EDB5D4
+ D961A7D56D85ED0E32D97BABBDDE9D7EDDB63FFC17F85F494E9BE8B856EF4AFA
+ CBED7D6C6596ED717561ECB031BF68F76DF4ECFA1FF99A0BFA5E29B4DC6ECA75
+ D63F75CF2C9F51AC6D8C6D165471FD0F47D3BECAFF0045532DFF008552A30598
+ EEC6AEBC8C934E39B21B630BDEE75837B2C37BEADFFA26BEE67FC27A9FA5B3D8
+ 96BFCAD1E9FC47EEA5AF1696DAFB1B8F7875A2B2FF00D2989682C6BB6FDA36FB
+ 59ED72E77EBAFD5E6F57E84F14536B73F101BF05E5E0BB7874D94D7BAE7BBF4E
+ C6FE67F86F46C5A9D77AD63F46C139565B717B835B535F2D0480F7B9CEDF5B7D
+ B5B1BBDEB9CC1E87D67EB152DEA5D733B270B1721A2CC7C2C56B85AE639D15D9
+ 9593E9D8CAFD4FA7F67A99FCDBFF00C1FD0530C3E8F72678604F0C68714E647C
+ DC31FEAAD12D686E3FBB41BB818EECEE918D919F8B6D19D6524E4D4F716B85A3
+ DAE2EAECB9AF67ADB7D5D8E4D674838D94DC8C7AEEAAD6B896D8C7C1D1B3CFAD
+ EE6FF592B7EA17466B776265F53C4B981E5B6B2CB1FAB74F7D7754E6BFFB3E9A
+ A15752EABF57FA8B3A5F5FB9D762D9B9F8D9D5B4D62C60FD1D8F3558D77A77D1
+ B99EB5294708C9E9C52919D1A84E3C3C7FDCF54BD4933E1D4D569AC6BD2F5785
+ 9D7643983259B2FAE1BBA00DE08DDAB585CD63DA926C7A8372590E7BBF48DD6C
+ 041FA07F79B5FB5255D96F47FFD2EF311DB72B34FA829FD337DCE88FE6DDFBCA
+ C5B91B5963DB98C2E6B65B019CEC739BF9DFDA41C1F53ED79BE9ED0EF59BF4A6
+ 3F9B77EEA239D987A89A4BDA5B763925A3716B5CD76CDDFF0007EA7ADFF5CF4B
+ FE0D386CB25BBC37F8BAC575FF0054B10D590CC7B6BCFB2E169DA4D67D33435F
+ B1EE6FABBF7B6BD8BB0E9D5D98B85463B72E8A28A6B730D1B5AF70873834FACD
+ B5ADFF0047BFF44B9CFF0014965FFF00362EA18580D198F6383A67E8D2EFCD5D
+ 99397E9BB5ABF3BF7BF7BE29044AECF97F2FD272EEAF32D65ADC8CBAAFC7166E
+ 662D86B2F731BBBD5AAEBD9E951B7DD5D95D0FA5FF00CD7EB3956D76FE8C98FF
+ 00A0B71EAC778C6A5D65B6D8C61A8D6D25BED65BF4BDF73ACFB4555633EBFE6E
+ DFD2BEBFD1D978D99CE746EA606E9FA5C7DEA4EB32058017553BB8F77EE946BF
+ 251BBFA8EFFF007CF13FE3287AB8DD31C6E6DF51B1F5B88DA06EB18D7D4C76D3
+ FE15B45ABB066555750DBABCC60AEC6B5EC05AC90D2EF68DA5DF9BF410BA8F4E
+ ABAD615DD3F38576517319BB69735CD209732CA9FEED96B1FEF63972B89FF3DB
+ EACB4D15E37EDDE9ADD6BBB1C816813005B88F3EA7A9A7F80F519FCB5678E393
+ 0C3112212C265C065F2CE397D4624FE8C98F8489190B22435FF07FC27B07DA36
+ BBF5CAF8B3B33B1D7F3971BFE336EA4E063D66D6DD736D7BDA5A1A0806BF4457
+ ED27F9DB2C67FDB68D57D7DEB9D45B657D2FA0E55B6D6F7D3638B4358CB1A7F4
+ B5596BCFA6CB2AFE527E99F573ABE5752675BFAC6FAACCDACEEC4C06B8BEBA5E
+ 06E6DF7DA3D976455FE0AB67E86AFA7EA7EE1E5C8C190659189942CC211225C5
+ 2E9C5287CB18AA40C8708BD6AC9BFF00BA7A3A3DAEAB758DB0B1F5B5CE11008A
+ FE8FB652499EA18F5087385AC82D98FA0FFDF4955AD7F97666FD1FE5DDFFD3EF
+ 70DA5D959A3D36DBFA66FB5D007F36EFDE0E451416E67ACDC566EDACAF6EE6ED
+ 681BACF64561DBBFADFD8D8838801CACD963ACFD33746183FCDBBF955A39ADA2
+ DDC31AEE5BF9C0910D23FD3A7C766396FF00CBFEF5E2FEA0D6703EB07D63E86E
+ A18E75790DC8AEB711A30BDFAB7734FF0082B31D76E693E9B8FD8EAFCEEEDFDE
+ FF008B5E7BF59BA857F56FEBB51D6EBA9CF665E13ABCAC41606DA5EC1B2AF536
+ D8F7D4CB1CCC3FD259FE86DFE7176DD272D9D43A2E2679C77CE5E3B6E76C77B4
+ 3AC0DB1ED66EB83FE99F6A43B78FF2FD254875EE3F97E8B64D445A47D92AD77F
+ 76EB31FF00069CD2E16C8C6A812FF16CFD03FF0004A373582D9FB35D30F3F4B9
+ D23FD329FA7539C09C6B6777770FDC3FF0C9D7D7C3F97E92DAD7EA3F97C8B555
+ BFD4DA712A2006776C08DDA88AC2C7FACEEC9C5FABB9F7D029C175753B7653A1
+ CE6B7739A5B406319FACD93E9637BFF9E5B35D75830DC6B468CFCE1FCAFF0086
+ 5E7BF5973ACFADDD768FAABD18BC6163BF7F50BDA644B1DB6D7EAF731F5626ED
+ B57BFF004F9BFF00148196FE3FCBF79311FB7F97CACBFC58F48EB14635B9FE85
+ 4FE91D418F60A9EE1EA0B2996332581CC7B7D2B3F498FF004FFE1177CEC5B37F
+ F45AB6B899D5BAFB63FD128D1898B8B895E2E3E2595D18F5BAAA98D700035B0D
+ 03F9E467359BBFA3DDAB8FE70FDDFF008E481A14A3A9BF2FE5F2A2F43D27563D
+ 3156EB5A3636088D8FD7DAD624A6F001A4063ABFD337DAF327E83FF956249B67
+ 8977E8FF002EEFFFD4EF310B46566EE2F03D66FF00361C4FF36EFF00461CE56C
+ 3AADDF4F2396FE6DBE1FF16AA6239ADCACD2EB4523D66FBCEDFF0046ED3F48AD
+ 0BAADFFD39BCB759AFC0F9278D98E475FE5FF7CE1FD61E8DF553328764F56C72
+ EB9AC04643B7D16C37E9176486D4F7B58DFF0049EA2CDE8F91F588F4BA713EAF
+ E2FA1D27199B71F2FA91B375AC9DCD7D34E352FB5F56D77E8DF636967A7FCDAB
+ 3D6D94751EB3898775E2EC4DB43AFF00A25A5BBEC73AB701FA3D963ABADAF5D1
+ 3722B34B89CE6CFBF935FEF2AF1072E4C964886397B7C313C366B8B8A462D584
+ CE59E4122630C52E08C227878BD3C5C73971717E93CFDB97F5E709A6CBA8A3A8
+ D62773313D6AEF8FCF753565D4DAADFECDDBD6874DFAC3D333714E5D990FC76D
+ 45C6EF55CE66CD8D732D6DC1C3F40FA9FF00CEB2C5A1916D51FD35A637FF00A2
+ F0F82E53EB174CE9F91D57D17BC598BD57D0AF336968F7EFF4BD696FB1B6FA6D
+ 67BBFE0D2CB784467132A321094244CAF8CF0FA78BF4919A5ECF0CE2491C7084
+ A123C62426787D3C5297AA2D0EB1F5B7A87D62CA3D03EA77AD636C0D66575171
+ 7868619DC5A4337E363FEFE4ECF5ADFE6F16AFF08BA2FAB9F57BA7FD5CE9BF67
+ C675AEC8B435D95922BB1A6C734ED6B40F4DDE9D356E7369ABFF00467E915CE9
+ 989D23A663B717A7D9562D23612DAFD21B9C67DEF7BB759658E8FE72C7AB2EBE
+ A75208CD69F23E94FD2568468EADA3215436D7F97CC91F6500387A990347FE6D
+ BE3FF17F9A9ECB296B87BF22493036DBFBBFF168565B4FA448CC64C593FCDF8A
+ 9BF21836C67379749FD1690D4B87CFAFF2F9517E5D3F97CCB3EC8349F796FACD
+ D6CDC1DF41FF00E91AC724A3639967A46BB3D7FD3326C1B7F71FEDFD1FB52428
+ 5AFF00D1FE5FBCFF00FFD5EFB03D4FB666FA65AD3EB37570247F36EF02D574FD
+ AE48F52B9D3F35DE1AFF00845430D9BF2B347A6DB7F4CDF6BF8FE6DDFC97AABF
+ 58BAFF0049FAB587F6DEA98EC0D739ACA69A435F658F8FA35B1CCA9BB6A6FB9F
+ 63EC67FDB9E9D6F70D961DFEBE2D6EBDD2FA8DC71FAB74F2CB33B0D81AEC704B
+ 7D7A5CEDDE931EF7FB3229B07A98DFF6DA5D37EBB74BCA6BA8B32598994C916E
+ 36535D5DCC7CFBD9654F7D6E6ED55BA2FD73E91D4FAB37A3D9D2AEE9DD42C607
+ D156654181E1B36FE6B1CEADDE987D95EFAFD2B367F39EA2D9C8C5E8DD4035B9
+ 387D3F31FB5EFA8586AB0ED6BB6B9CCDF53BD8DFDE4C963F519E33C329571581
+ C12F38B0CB09123381E09487AF4338CEB6E28FEF7F84D7EA3F5C3A361545F775
+ 1C6DB0746CEE33C6D68B0B9CE547A3E3F51EB9D56BEBB96C389874B8FD871EF6
+ 9165AF2D735B976D24B5D4E3D6CFE8B5FF003967F3FF00E8FD5D2C1C0FAB82C7
+ 5BD2F03A58B2A077598DE8EE688F6973AAA7D9B95B63F0DF915B5A315F65C4BA
+ B02D6173C35AE6BDEC68AF759B1CDF7203119112C9212E1D63103863C5FBCAF6
+ 8CA40E43C7C26E31E19421C5FBFF00A7EAFF0009B2C6E76E836D5A864FB5C7F7
+ BFE1130664FA3B7D4AE3E0EE777FC62C5E8FF593A4F54C8CEA2BC56631E9F90D
+ C37BB20D6C63ED9B5BB71DC1AFDEEFD17D05A6D7639659156293409BA1ECF600
+ E74FA9FA2FD1FD1FCF52DFF2D1935F1EBFBCD8737276386FAE22CD0B5DE3FF00
+ 18A67ED41C06FAF931ED77EEFF00C62C4775AC43D54F4B6F4FDE0D2FBFEDE033
+ EC9B7573A7276FF2367D0FA6B4596625D686535E258F249DACB18491B79DA2BD
+ C97F6A75F1E9FBC96FF537D3EA16B9DEB37568207D07F8B9C9267B363A96FA6D
+ ABF4CDF6B351F41FAFD16249BD577E8FF2EEFF00FFD6EF31003959BEC759FA66
+ E8C3B4FF0036EEFBEB5CBFF8C8E89D4F32BE99D53A661D992FE8F77A96623BF4
+ 85ED7FA2FF006B1965AF7EC7636CB18CFF0049FC85D2BEE3819190E7D37D9EB3
+ DAF69A034910DD9EEF51CC4C3ACB419FB37509D3F36AEDFF005C47A52D20DDD3
+ C574AC9FAC3D5BEB7D59D453D629E8E5B6DB9F8F9B638520B996EDC7C7A3F455
+ BE8AEC7319557FA4B1FF00CE6CAD67FD5AFAB4FC4FA8DD57A8D9D1ADC9EB0F73
+ E96D56FAD59763CE2BACAFD2A6DC7BDCDFE7ACFD0FE92DFD263EFF004FD8BD0D
+ DD69834FB3E78E3B55D8FF00C6288EB2CED4F503CC88ABB99FF48888F8AACF67
+ CDBEAFF4CEA35FD61C0CBFB0DF8D87674FC8AEF3F65FB2D41C31B237D2E87D8F
+ C8636DF4FF005BCE7FAF9377FD6964FD5DE97919B57471D37A6E40EA43A87A87
+ AA3771A3D1ACD476977D063F1EC6BAC7FD0D9FF09EBFE8FD86DEAD55D5BEBB71
+ 33DD5D8D735ED2DAA0B5E36BDBA5BFBAA9F4C774AE8F8E313A6F4FCEC4C70F36
+ 0A9A1846F70D8E74DB758FF737F94801E29B3D9F38EB1F566FC9AFEB2E70E9B9
+ 2ECBFDA83EC245764FA36D992FB1D5D4DF6DAC735B57BF6D8B4FEB4F40EBECEA
+ 4C774AC6B5CCFACF87463673B6B88AEE0FC7375D79ABF9AF57D267AB6E47D3F5
+ B357A03BAC30107ECFD40180262AEDFF005C516F57AF86D1D43EEABC777FA447
+ 8456E8B3D9E2BA8747FD9BF5AAD657D36FCCE9785D19D8C2A6B1C05C5B59AFD1
+ F5E8FA36DCF76FB5D5FE97F9CFF0885FE2E7031B1FAE3B273FA3E751D4F28DDE
+ 845069C3C766D7BCD75596DA2EF51ECFD033D4FF00D4CBBCFDAEDDD3F67EA1AC
+ E9157E773FE1123D5DA5FBBECFD43998DB5771B7FD22142F756B5B376C68DD50
+ 15D8DFD33747BA4FD07FD176FB1243C6BFED8581B5E457B6C0F71BC34681AE66
+ D1E9B9FF00BC9237AAABD34FFFD9FFED1BCA50686F746F73686F7020332E3000
+ 3842494D04040000000000071C020000020002003842494D0425000000000010
+ 460CF28926B856DAB09C01A1B0A790773842494D03ED00000000001000480000
+ 0001000100480000000100013842494D042600000000000E0000000000000000
+ 00003F8000003842494D040D0000000000040000005A3842494D041900000000
+ 00040000001E3842494D03F3000000000009000000000000000001003842494D
+ 040A00000000000100003842494D271000000000000A00010000000000000001
+ 3842494D03F5000000000048002F66660001006C66660006000000000001002F
+ 6666000100A1999A0006000000000001003200000001005A0000000600000000
+ 0001003500000001002D000000060000000000013842494D03F8000000000070
+ 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D040000000000000200053842
+ 494D040200000000001600000000000000000000000000000000000000000000
+ 3842494D0408000000000010000000010000024000000240000000003842494D
+ 041E000000000004000000003842494D041A0000000003490000000600000000
+ 00000000000000DA000000960000000A004D00610069006E0020004C006F0067
+ 006F003200000001000000000000000000000000000000000000000100000000
+ 0000000000000096000000DA0000000000000000000000000000000001000000
+ 0000000000000000000000000000000010000000010000000000006E756C6C00
+ 00000200000006626F756E64734F626A63000000010000000000005263743100
+ 00000400000000546F70206C6F6E6700000000000000004C6566746C6F6E6700
+ 0000000000000042746F6D6C6F6E67000000DA00000000526768746C6F6E6700
+ 00009600000006736C69636573566C4C73000000014F626A6300000001000000
+ 000005736C6963650000001200000007736C69636549446C6F6E670000000000
+ 00000767726F757049446C6F6E6700000000000000066F726967696E656E756D
+ 0000000C45536C6963654F726967696E0000000D6175746F47656E6572617465
+ 640000000054797065656E756D0000000A45536C696365547970650000000049
+ 6D672000000006626F756E64734F626A63000000010000000000005263743100
+ 00000400000000546F70206C6F6E6700000000000000004C6566746C6F6E6700
+ 0000000000000042746F6D6C6F6E67000000DA00000000526768746C6F6E6700
+ 0000960000000375726C54455854000000010000000000006E756C6C54455854
+ 000000010000000000004D7367655445585400000001000000000006616C7454
+ 6167544558540000000100000000000E63656C6C54657874497348544D4C626F
+ 6F6C010000000863656C6C546578745445585400000001000000000009686F72
+ 7A416C69676E656E756D0000000F45536C696365486F727A416C69676E000000
+ 0764656661756C740000000976657274416C69676E656E756D0000000F45536C
+ 69636556657274416C69676E0000000764656661756C740000000B6267436F6C
+ 6F7254797065656E756D0000001145536C6963654247436F6C6F725479706500
+ 0000004E6F6E6500000009746F704F75747365746C6F6E67000000000000000A
+ 6C6566744F75747365746C6F6E67000000000000000C626F74746F6D4F757473
+ 65746C6F6E67000000000000000B72696768744F75747365746C6F6E67000000
+ 00003842494D041100000000000101003842494D04140000000000040000001C
+ 3842494D040C0000000015D70000000100000058000000800000010800008400
+ 000015BB00180001FFD8FFE000104A46494600010201004800480000FFED000C
+ 41646F62655F434D0002FFEE000E41646F626500648000000001FFDB0084000C
+ 08080809080C09090C110B0A0B11150F0C0C0F1518131315131318110C0C0C0C
+ 0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C01
+ 0D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14110C0C0C0C0C11110C0C0C
+ 0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+ FFC00011080080005803012200021101031101FFDD00040006FFC4013F000001
+ 0501010101010100000000000000030001020405060708090A0B010001050101
+ 0101010100000000000000010002030405060708090A0B100001040103020402
+ 0507060805030C33010002110304211231054151611322718132061491A1B142
+ 23241552C16233347282D14307259253F0E1F163733516A2B283264493546445
+ C2A3743617D255E265F2B384C3D375E3F3462794A485B495C4D4E4F4A5B5C5D5
+ E5F55666768696A6B6C6D6E6F637475767778797A7B7C7D7E7F7110002020102
+ 04040304050607070605350100021103213112044151617122130532819114A1
+ B14223C152D1F0332462E1728292435315637334F1250616A2B283072635C2D2
+ 449354A317644555367465E2F2B384C3D375E3F34694A485B495C4D4E4F4A5B5
+ C5D5E5F55666768696A6B6C6D6E6F62737475767778797A7B7C7FFDA000C0301
+ 0002110311003F00F4D199597583DC4D6E0D21A0B8C91BB86CA5F6A67EEDBFF6
+ DBBFF22B3B11E1B959A5D67A63D668DD00FF0083778872967F55C5C0C77E55D9
+ 45CD616C3435A0B9D061BAB3F3BE9A3A0049D00EA802729C6101C5291118C46E
+ 645BA735BD9B69FF00AD3FBFF6508F512013B2C813AFA4FEDA1ECB8CC7EA1F5A
+ FEB18F5B12FABA574D90D664DCD2E7D825C37E362D7B7D4ADAEFF0D63EAFF824
+ 5B3A17D63A6B75B8FF00599975A262ABF18B1860C6B6576DCFADBFF5AB134127
+ 51035F633CB0E381E19F310131F308C659231978CE3FF70F58FEA6E6FE6593AF
+ F827F6E505DD62D06056EF0D6A7F31BBFEA573183F59736BCE774AEBE061E530
+ 1DB7376BEB787FB599155CF69F52877F9F57F85FF46B6B2EFC3C41EBE5E7B31E
+ A0F8DF6EC6027646D6EE67BDDBBF3588C4895D5823E60778ACCD8A788C6EA51C
+ 9AE3C91F93247FABFDDFD26E8EB3691FCDBBB7F827F7E159C6EA22EA45A410D9
+ 2D24B4B608FDE6BBE8AC6B1F5B011F6AD4067E6B7F95FF0006A1F57F3DA73ACC
+ 275BEA0BAB2F634803DCC277F0D6FD3ADDFF0041121884ADE9D96070D14D66B8
+ BF11FB86B8E4EBE2CFFD46AFD7607B6420B99A4924929FFFD0EF709C5B979A43
+ DB5FE99BABF8FE6DDFCA62E67FC65596BF170ABF55AF63ECB01F4F41BB6376E9
+ BECFCDF576AE9B09A5D979A031AF3EB3747981FCDBBF9362C9EB986CEB01FD2F
+ 2DCCC775B796D6C63585D4FA55BECA73373DB55DF9BEAFAD5EFC7FB37AD81FA3
+ B7F48864871E331BAB0CDC9F30397E6B1E631E28E397AA3AEB1947825FF49DDC
+ 57555E3D35E35D4578EDAAA14B034802B1FCDB5A3D6FF46A66D7FA4EFD629FCF
+ EC7F7BFE39701D3FEB5F50FAB98D4E3F5BC56E4E2D90DC5CDA22DADE7E9FA7A7
+ E92BBBF7F1EEFD2AD077F8C6E9766EAB170AEBDEFDC195D7438D927DDFBA7F94
+ 90CA2BD4083DB86FEC44F929D938E70C98CDF0CCE48C3D3FEB2392719424BFF8
+ CAF40E0E1DD6595BEFAADB3D32C0411596FE99A4FA967E7B68589D6FEA3F5CB7
+ ABE267E37507E57ACEAC8C8BDE6CBB0EC03D56976BEEC5AEE1EDB2BFE6BFC257
+ FE11FA3D2FA6753FACFD56BEA1D6EA6D3898F533231B02D734597025DE8DB94C
+ A5A5B5D1EA56F7595FA7FA47FF0082F4FF009CE9B3F36FA3A8EE6B2B38F8A18F
+ CE6CD65AD16CB1AF7BEC6577B1EC66FBBF47EB7ABFCDFE7A10893294CE9C5400
+ F08F764E6734461C1CB40F19C2672C93F5187B99F87D18FF00AB0E08BCB62FD7
+ 0EAFD33359D27EB7B6BC7B6C03D0EA8C1BA9B0027DF6FA2F657B1DBBFA452CFD
+ 0FFDA9C6AD6A31F663F57C1B7D5AC8F55AD3B7BB6D73AAD3F4AFFA4DB15FCBE8
+ 98FD66BEA383D4316B7D6EB2A6361E43ABDB530B2FC578A7F4766EB1EF6FFDB7
+ 77E8D719D31F9FF573ABD5F56BAB066457BD96F48CA276870166F6E3FA9B1CE6
+ FAAF1E9ECFFB4D95FA3FE66EAD3DA80F5FE2FA939BC83A8E08551A5D87686EBE
+ 83CC309FCD3FE8DDFF00A2D67B7EB76331DB73B16EC732417B07AAC001893B36
+ 5DFF0080AD4A6FC2EA3438E3DADBEA7087961923FAC3E956FF00EB20B9B8C707
+ 09092A5876595B8D16997B3BF88FCD7FF692494FFFD1EF311A1D959A0B5CFF00
+ D337461DA7F9B777DD5AB618DDD1E8DE356E9EA1F0FF008FFCD553123ED59B2E
+ 7B7F4CDD6B049FE6DDFBAD7AB6DDBEA0FD2E472DE5AE8E3BFE8BFCE4E1B31CAA
+ FF00F45786B6FA3AAFF8C8A9B92DB0E0F40ADB5B01717B465DBFA56BAD7BAC3E
+ 96DF77BF7FF39855AEC710E3E4637DBB1E9CA0DCA697FBAC7B49D4359BEA7E47
+ B2CD8D6AE33FC5DE2D5D4D9D63AA653AD7372FA89739AD6970B1A0585ACBBF46
+ FF006B7EDAE77B3D35D955858B556D717E459754D7B5B739877C17389F732963
+ 7F3FF75117F8AA55B787F555939983556CB9EDB5D4D961A7D56D85ED0E32D97B
+ ABBDDE9D7EDDB63FFC17F85F494E9BE8B856EF4AFACBED7D6C6596ED717561EC
+ B031BF68F76DF4ECFA1FF99A0BFA5E29B4DC6ECA75D63F75CF2C9F51AC6D8C6D
+ 165471FD0F47D3BECAFF0045532DFF008552A30598EEC6AEBC8C934E39B21B63
+ 0BDEE75837B2C37BEADFFA26BEE67FC27A9FA5B3D896BFCAD1E9FC47EEA5AF16
+ 96DAFB1B8F7875A2B2FF00D2989682C6BB6FDA36FB59ED72E77EBAFD5E6F57E8
+ 4F14536B73F101BF05E5E0BB7874D94D7BAE7BBF4EC6FE67F86F46C5A9D77AD6
+ 3F46C139565B717B835B535F2D0480F7B9CEDF5B7DB5B1BBDEB9CC1E87D67EB1
+ 52DEA5D733B270B1721A2CC7C2C56B85AE639D15D99593E9D8CAFD4FA7F67A99
+ FCDBFF00C1FD0530C3E8F72678604F0C68714E647CDC31FEAAD12D686E3FBB41
+ BB818EECEE918D919F8B6D19D6524E4D4F716B85A3DAE2EAECB9AF67ADB7D5D8
+ E4D674838D94DC8C7AEEAAD6B896D8C7C1D1B3CFADEE6FF592B7EA17466B7762
+ 65F53C4B981E5B6B2CB1FAB74F7D7754E6BFFB3E9AA15752EABF57FA8B3A5F5F
+ B9D762D9B9F8D9D5B4D62C60FD1D8F3558D77A77D1B99EB5294708C9E9C52919
+ D1A84E3C3C7FDCF54BD4933E1D4D569AC6BD2F57859D7643983259B2FAE1BBA0
+ 0DE08DDAB585CD63DA926C7A8372590E7BBF48DD6C041FA07F79B5FB5255D96F
+ 47FFD2EF311DB72B34FA829FD337DCE88FE6DDFBCAC5B91B5963DB98C2E6B65B
+ 019CEC739BF9DFDA41C1F53ED79BE9ED0EF59BF4A63F9B77EEA239D987A89A4B
+ DA5B763925A3716B5CD76CDDFF0007EA7ADFF5CF4BFE0D386CB25BBC37F8BAC5
+ 75FF0054B10D590CC7B6BCFB2E169DA4D67D33435FB1EE6FABBF7B6BD8BB0E9D
+ 5D98B85463B72E8A28A6B730D1B5AF70873834FACDB5ADFF0047BFF44B9CFF00
+ 14965FFF00362EA18580D198F6383A67E8D2EFCD5D99397E9BB5ABF3BF7BF7BE
+ 29044AECF97F2FD272EEAF32D65ADC8CBAAFC7166E662D86B2F731BBBD5AAEBD
+ 9E951B7DD5D95D0FA5FF00CD7EB3956D76FE8C98FF00A0B71EAC778C6A5D65B6
+ D8C61A8D6D25BED65BF4BDF73ACFB4555633EBFE6EDFD2BEBFD1D978D99CE746
+ EA606E9FA5C7DEA4EB32058017553BB8F77EE946BF251BBFA8EFFF007CF13FE3
+ 287AB8DD31C6E6DF51B1F5B88DA06EB18D7D4C76D3FE15B45ABB066555750DBA
+ BCC60AEC6B5EC05AC90D2EF68DA5DF9BF410BA8F4EABAD615DD3F38576517319
+ BB69735CD209732CA9FEED96B1FEF63972B89FF3DBEACB4D15E37EDDE9ADD6BB
+ B1C816813005B88F3EA7A9A7F80F519FCB5678E3930C3112212C265C065F2CE3
+ 97D4624FE8C98F8489190B22435FF07FC27B07DA36BBF5CAF8B3B33B1D7F3971
+ BFE336EA4E063D66D6DD736D7BDA5A1A0806BF4457ED27F9DB2C67FDB68D57D7
+ DEB9D45B657D2FA0E55B6D6F7D3638B4358CB1A7F4B5596BCFA6CB2AFE527E99
+ F573ABE5752675BFAC6FAACCDACEEC4C06B8BEBA5E06E6DF7DA3D976455FE0AB
+ 67E86AFA7EA7EE1E5C8C190659189942CC211225C52E9C5287CB18AA40C8708B
+ D6AC9BFF00BA7A3A3DAEAB758DB0B1F5B5CE11008AFE8FB652499EA18F508738
+ 5AC82D98FA0FFDF4955AD7F97666FD1FE5DDFFD3EF70DA5D959A3D36DBFA66FB
+ 5D007F36EFDE0E451416E67ACDC566EDACAF6EE6ED681BACF64561DBBFADFD8D
+ 8838801CACD963ACFD33746183FCDBBF955A39ADA2DDC31AEE5BF9C0910D23FD
+ 3A7C766396FF00CBFEF5E2FEA0D6703EB07D63E86EA18E75790DC8AEB711A30B
+ DFAB7734FF0082B31D76E693E9B8FD8EAFCEEEDFDEFF008B5E7BF59BA857F56F
+ EBB51D6EBA9CF665E13ABCAC41606DA5EC1B2AF536D8F7D4CB1CCC3FD259FE86
+ DFE7176DD272D9D43A2E2679C77CE5E3B6E76C77B43AC0DB1ED66EB83FE99F6A
+ 43B78FF2FD254875EE3F97E8B64D445A47D92AD77F76EB31FF00069CD2E16C8C
+ 6A812FF16CFD03FF0004A373582D9FB35D30F3F4B9D23FD329FA7539C09C6B67
+ 77770FDC3FF0C9D7D7C3F97E92DAD7EA3F97C8B555BFD4DA712A2006776C08DD
+ A88AC2C7FACEEC9C5FABB9F7D029C175753B7653A1CE6B7739A5B406319FACD9
+ 3E9637BFF9E5B35D75830DC6B468CFCE1FCAFF00865E7BF5973ACFADDD768FAA
+ BD18BC6163BF7F50BDA644B1DB6D7EAF731F5626EDB57BFF004F9BFF00148196
+ FE3FCBF79311FB7F97CACBFC58F48EB14635B9FE854FE91D418F60A9EE1EA0B2
+ 996332581CC7B7D2B3F498FF004FFE1177CEC5B37FF45AB6B899D5BAFB63FD12
+ 8D1898B8B895E2E3E2595D18F5BAAA98D700035B0D03F9E467359BBFA3DDAB8F
+ E70FDDFF008E481A14A3A9BF2FE5F2A2F43D27563D3156EB5A3636088D8FD7DA
+ D624A6F001A4063ABFD337DAF327E83FF956249B678977E8FF002EEFFFD4EF31
+ 0B46566EE2F03D66FF00361C4FF36EFF00461CE56C3AADDF4F2396FE6DBE1FF1
+ 6AA6239ADCACD2EB4523D66FBCEDFF0046ED3F48AD0BAADFFD39BCB759AFC0F9
+ 278D98E475FE5FF7CE1FD61E8DF553328764F56C72EB9AC04643B7D16C37E917
+ 6486D4F7B58DFF0049EA2CDE8F91F588F4BA713EAFE2FA1D27199B71F2FA91B3
+ 75AC9DCD7D34E352FB5F56D77E8DF636967A7FCDAB3D6D94751EB3898775E2EC
+ 4DB43AFF00A25A5BBEC73AB701FA3D963ABADAF5D13722B34B89CE6CFBF935FE
+ F2AF1072E4C964886397B7C313C366B8B8A462D584CE59E4122630C52E08C227
+ 878BD3C5C73971717E93CFDB97F5E709A6CBA8A3A8D62773313D6AEF8FCF7535
+ 65D4DAADFECDDBD6874DFAC3D333714E5D990FC76D45C6EF55CE66CD8D732D6D
+ C1C3F40FA9FF00CEB2C5A1916D51FD35A637FF00A2F0F82E53EB174CE9F91D57
+ D17BC598BD57D0AF336968F7EFF4BD696FB1B6FA6D67BBFE0D2CB784467132A3
+ 21094244CAF8CF0FA78BF4919A5ECF0CE2491C7084A123C62426787D3C5297AA
+ 2D0EB1F5B7A87D62CA3D03EA77AD636C0D665751717868619DC5A4337E363FEF
+ E4ECF5ADFE6F16AFF08BA2FAB9F57BA7FD5CE9BF67C675AEC8B435D95922BB1A
+ 6C734ED6B40F4DDE9D356E7369ABFF00467E915CE9989D23A663B717A7D9562D
+ 23612DAFD21B9C67DEF7BB759658E8FE72C7AB2EBEA75208CD69F23E94FD2568
+ 468EADA3215436D7F97CC91F6500387A990347FE6DBE3FF17F9A9ECB296B87BF
+ 22493036DBFBBFF168565B4FA448CC64C593FCDF8A9BF21836C67379749FD169
+ 0D4B87CFAFF2F9517E5D3F97CCB3EC8349F796FACDD6CDC1DF41FF00E91AC724
+ A3639967A46BB3D7FD3326C1B7F71FEDFD1FB524285AFF00D1FE5FBCFF00FFD5
+ EFB03D4FB666FA65AD3EB37570247F36EF02D574FDAE48F52B9D3F35DE1AFF00
+ 845430D9BF2B347A6DB7F4CDF6BF8FE6DDFC97AABF58BAFF0049FAB587F6DEA9
+ 8EC0D739ACA69A435F658F8FA35B1CCA9BB6A6FB9F63EC67FDB9E9D6F70D961D
+ FEBE2D6EBDD2FA8DC71FAB74F2CB33B0D81AEC704B7D7A5CEDDE931EF7FB3229
+ B07A98DFF6DA5D37EBB74BCA6BA8B32598994C916E36535D5DCC7CFBD9654F7D
+ 6E6ED55BA2FD73E91D4FAB37A3D9D2AEE9DD42C607D156654181E1B36FE6B1CE
+ ADDE987D95EFAFD2B367F39EA2D9C8C5E8DD4035B9387D3F31FB5EFA8586AB0E
+ D6BB6B9CCDF53BD8DFDE4C963F519E33C329571581C12F38B0CB09123381E094
+ 87AF4338CEB6E28FEF7F84D7EA3F5C3A361545F7751C6DB0746CEE33C6D68B0B
+ 9CE547A3E3F51EB9D56BEBB96C389874B8FD871EF69165AF2D735B976D24B5D4
+ E3D6CFE8B5FF003967F3FF00E8FD5D2C1C0FAB82C75BD2F03A58B2A077598DE8
+ EE688F6973AAA7D9B95B63F0DF915B5A315F65C4BAB02D6173C35AE6BDEC68AF
+ 759B1CDF7203119112C9212E1D63103863C5FBCAF68CA40E43C7C26E31E19421
+ C5FBFF00A7EAFF0009B2C6E76E836D5A864FB5C7F7BFE1130664FA3B7D4AE3E0
+ EE777FC62C5E8FF593A4F54C8CEA2BC56631E9F90DC37BB20D6C63ED9B5BB71D
+ C1AFDEEFD17D05A6D7639659156293409BA1ECF600E74FA9FA2FD1FD1FCF52DF
+ F2D1935F1EBFBCD8737276386FAE22CD0B5DE3FF0018A67ED41C06FAF931ED77
+ EEFF00C62C4775AC43D54F4B6F4FDE0D2FBFEDE033EC9B7573A7276FF2367D0F
+ A6B4596625D686535E258F249DACB18491B79DA2BDC97F6A75F1E9FBC96FF537
+ D3EA16B9DEB37568207D07F8B9C9267B363A96FA6DABF4CDF6B351F41FAFD162
+ 49BD577E8FF2EEFF00FFD6EF31003959BEC759FA66E8C3B4FF0036EEFBEB5CBF
+ F8C8E89D4F32BE99D53A661D992FE8F77A96623BF485ED7FA2FF006B1965AF7E
+ C7636CB18CFF0049FC85D2BEE3819190E7D37D9EB3DAF69A034910DD9EEF51CC
+ 4C3ACB419FB37509D3F36AEDFF005C47A52D20DDD3C574AC9FAC3D5BEB7D59D4
+ 53D629E8E5B6DB9F8F9B638520B996EDC7C7A3F455BE8AEC7319557FA4B1FF00
+ CE6CAD67FD5AFAB4FC4FA8DD57A8D9D1ADC9EB0F73E96D56FAD59763CE2BACAF
+ D2A6DC7BDCDFE7ACFD0FE92DFD263EFF004FD8BD0DDD69834FB3E78E3B55D8FF
+ 00C6288EB2CED4F503CC88ABB99FF48888F8AACF67CDBEAFF4CEA35FD61C0CBF
+ B0DF8D87674FC8AEF3F65FB2D41C31B237D2E87D8FC8636DF4FF005BCE7FAF93
+ 77FD6964FD5DE97919B57471D37A6E40EA43A87A87AA3771A3D1ACD476977D06
+ 3F1EC6BAC7FD0D9FF09EBFE8FD86DEAD55D5BEBB7133DD5D8D735ED2DAA0B5E3
+ 6BDBA5BFBAA9F4C774AE8F8E313A6F4FCEC4C70F360A9A1846F70D8E74DB758F
+ F737F94801E29B3D9F38EB1F566FC9AFEB2E70E9B92ECBFDA83EC245764FA36D
+ 992FB1D5D4DF6DAC735B57BF6D8B4FEB4F40EBECEA4C774AC6B5CCFACF874636
+ 73B6B88AEE0FC7375D79ABF9AF57D267AB6E47D3F5B357A03BAC30107ECFD401
+ 80262AEDFF005C516F57AF86D1D43EEABC777FA4478456E8B3D9E2BA8747FD9B
+ F5AAD657D36FCCE9785D19D8C2A6B1C05C5B59AFD1F5E8FA36DCF76FB5D5FE97
+ F9CFF0885FE2E7031B1FAE3B273FA3E751D4F28DDE845069C3C766D7BCD75596
+ DA2EF51ECFD033D4FF00D4CBBCFDAEDDD3F67EA1ACE9157E773FE1123D5DA5FB
+ BECFD43998DB5771B7FD22142F756B5B376C68DD5015D8DFD33747BA4FD07FD1
+ 76FB1243C6BFED8581B5E457B6C0F71BC34681AE66D1E9B9FF00BC9237AAABD3
+ 4FFFD9003842494D042100000000005500000001010000000F00410064006F00
+ 620065002000500068006F0074006F00730068006F0070000000130041006400
+ 6F00620065002000500068006F0074006F00730068006F007000200037002E00
+ 3000000001003842494D04060000000000070008000000010100FFE112486874
+ 74703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061
+ 636B657420626567696E3D27EFBBBF272069643D2757354D304D704365686948
+ 7A7265537A4E54637A6B633964273F3E0A3C3F61646F62652D7861702D66696C
+ 74657273206573633D224352223F3E0A3C783A7861706D65746120786D6C6E73
+ 3A783D2761646F62653A6E733A6D6574612F2720783A786170746B3D27584D50
+ 20746F6F6C6B697420322E382E322D33332C206672616D65776F726B20312E35
+ 273E0A3C7264663A52444620786D6C6E733A7264663D27687474703A2F2F7777
+ 772E77332E6F72672F313939392F30322F32322D7264662D73796E7461782D6E
+ 73232720786D6C6E733A69583D27687474703A2F2F6E732E61646F62652E636F
+ 6D2F69582F312E302F273E0A0A203C7264663A4465736372697074696F6E2061
+ 626F75743D27757569643A66636436633363642D643235622D313164622D3965
+ 38382D383365316563616466623862270A2020786D6C6E733A7861704D4D3D27
+ 687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F6D6D2F27
+ 3E0A20203C7861704D4D3A446F63756D656E7449443E61646F62653A646F6369
+ 643A70686F746F73686F703A35613861356666372D643235612D313164622D39
+ 6538382D3833653165636164666238623C2F7861704D4D3A446F63756D656E74
+ 49443E0A203C2F7264663A4465736372697074696F6E3E0A0A3C2F7264663A52
+ 44463E0A3C2F783A7861706D6574613E0A202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020200A20202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020200A2020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020202020202020200A
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020200A202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020200A20202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020200A2020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020200A202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020200A20202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020202020200A2020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20200A2020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020200A202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020200A20202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020200A2020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020200A202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020200A20202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 0A20202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020200A2020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020200A202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020200A20202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020200A2020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020200A202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020200A20
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020200A20202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020200A2020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020200A202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020200A20202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020200A2020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020202020200A202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 200A202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020200A20202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020200A2020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020200A202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020200A20202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020200A2020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020202020202020200A
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020200A202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020200A20202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020200A2020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020200A202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020200A20202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020200A3C3F787061636B657420656E643D27
+ 77273F3EFFEE000E41646F626500644000000001FFDB00840001010101010101
+ 0101010101010101010101010101010101010101010101010101010101010101
+ 0101010102020202020202020202020303030303030303030301010101010101
+ 0101010102020102020303030303030303030303030303030303030303030303
+ 0303030303030303030303030303030303030303030303030303FFC000110800
+ DA009603011100021101031101FFDD00040013FFC401A2000000060203010000
+ 0000000000000000070806050409030A0201000B010000060301010100000000
+ 0000000000060504030702080109000A0B100002010304010303020303030206
+ 0975010203041105120621071322000831144132231509514216612433175271
+ 811862912543A1B1F02634720A19C1D13527E1533682F192A244547345463747
+ 63285556571AB2C2D2E2F2648374938465A3B3C3D3E3293866F3752A393A4849
+ 4A58595A6768696A767778797A85868788898A9495969798999AA4A5A6A7A8A9
+ AAB4B5B6B7B8B9BAC4C5C6C7C8C9CAD4D5D6D7D8D9DAE4E5E6E7E8E9EAF4F5F6
+ F7F8F9FA110002010302040403050404040606056D0102031104211205310600
+ 22134151073261147108428123911552A162163309B124C1D14372F017E18234
+ 259253186344F1A2B226351954364564270A7383934674C2D2E2F25565755637
+ 8485A3B3C3D3E3F3291A94A4B4C4D4E4F495A5B5C5D5E5F52847576638768696
+ A6B6C6D6E6F667778797A7B7C7D7E7F7485868788898A8B8C8D8E8F839495969
+ 798999A9B9C9D9E9F92A3A4A5A6A7A8A9AAABACADAEAFAFFDA000C0301000211
+ 0311003F00DF81F334A2BA0C7A3A3555419162467B063144F33F2031B08E327E
+ 9F8F7EEBDD4DD55BFF001C69BFEA7C9FF5E3DFBAF75D192B47D61A6FFA9F27FD
+ 78F7EEBDD4692B6A63E5A083FD84EFFEDF9887BF75EE9AEA3720A6BF929C1B7F
+ A9909FF7B51FD7DFBAF74CD3760D1426CD4739FF008294FE97FCB8E3DFBAF751
+ 4F66634123ECAAB8FAFF009AB7FD6DF7EEBDD7097B3F1912EA6A2ABB7F87849F
+ FADC3DFBAF74D151DD580A6D5E4A0C89D3F5D094EDFEDAF5238F7EEBDD30CDF2
+ 2F69C0CCAD8CCDB15172521A022DFEBB6457DFBAF751D3E4A6D0918AAE2B3C48
+ BFFBA282DC7E07FB92E7E9EFDD7BA923E41ED990D86373038BFAA2A30A3EB6FA
+ 571E7DFBAF74ADC176761B3F124D4E65A5F2193C715624713C8B14862778F449
+ 2A3AAC8349B35D4DAE05C5FDD7BA5C536620982E97520FF436FF0078FA7BF75E
+ E9E63956400837BFE7FDF7D0FBF75EEB2FBF75EEBDEFDD7BAF7BF75EEBDEFDD7
+ BAFFD0DC3C764551F93DD63B3BCCDE0CC56EEE8DE3BF0C28761EEAC9ADC7F83D
+ 103EFDD7BA1DB1FB577C67A928B303BBBB1713FC56BAB657C6E3705D3AF8EA1A
+ 7F2E41A3A1C79C9F5664724B0C090A223D454D4CA557D6CCC757B3D96E6C6DDE
+ 487F72DBB685192D71527B72693019A9E000F4A740EB4B2DDEFADEDAECF355EC
+ 6657625563B3D2A2AFDABAAD59A828002CCC7D4926BD35CFB4F7FAFF007CF4F7
+ D7667FB808D1B1FAB6FF0048B5D9B0306489ABFF008C443CC3EEA43C278FD1C5
+ EFEAF6E2DCD81FA0FF007456DFA873DF71FC6571FAF8C7DB9FD9D276B4DE47EF
+ C039B6FBFC597B3F4ECBFDF21FBBFC533DC7CA98C7CFAC992D93BEA0CC632823
+ EF8ECD3055D0E6EA26F26DEE8C7975E3E6C3A5388DFF00D0E855422BE4D60AB6
+ A3A6C56C6ECA5ED8B5BCD29D8ADB52B281DD73F88357FE247C853A5B26D9BB25
+ F5ADBAF36DFF0086F1C8C7F4EC6B55318143F47C3B8D706B8E14C823B9F235D8
+ 1C7B499CF931BB28326B97ACA56A29B09D0E6A568A9774546319CD045D44F58A
+ E3134E5CB9E0C80B05B7A3DA1BDDF797AC2731DD5859A0F0C1A192E6B53186E0
+ 27AFC469C3863E7D0A7973DB8F72B9A2C45CEC53EF17359D9752DBD9787A5673
+ 19EF6B30B5118A93AB8E694C740DD476061DF2591865F945BC568A3A7C7FF0D9
+ 46D4E9EF2CB5521C80C92C96E9537484253E9F427EA6B16FEC943F3AF28848E9
+ 6F6BE2D5B50ADE70C69A7EAF9E7CCFE5E63B8BEEEBEFAC935C56CF7316BA10A3
+ 7FBA9A9275EBA8F06B8A2530389C9F2C54199AACA643034B8EF925BB2A56B855
+ 264D9F03D254DE278F1924D4E20353D470AC225AE40963E4D40E906E41F6B2DF
+ 99F962E84FE0DB59EB14D00C972B5AB50FC538AE3D29D07B76F673DDFD8FE85F
+ 71B6DE16021BC665B7B19425232C0D62B570A350A54D45315F3E9F370E077ED0
+ E0F279087BBF7FCB353D414A7D7B67A4DA1F11CAC546A5D53A990CA7C2E4EA0C
+ A0B1BDADC7B3886E2C259E28CECD06865AE1EE3F86B8FD7FF50EA3DBBB3DE6DA
+ CEEE6FEB3DE78D1B9143159629204A11F480D40E3919F2F2E91F94DAFBD8E56A
+ A84F74F60F823A3A1990FF0077BA584BE4A9AACA4330675EA60A53451A690141
+ 0755C9B80193776621593F735BD4B30F8EE3C829FF007FFCCF4AD76FDD0DECB0
+ 1E67BCF0C46847E9D956ACD203FF001138514797AFE410B6037DCF0ED999FB87
+ 7D1398AB9A9EB186DDE9D5508986CCD7A9800EAE3E3267C7C7FA8BDD750B5C82
+ 1D79AC835D81B441445A8EFB8FE2519FD6F427F3A748E18376921DA9DB996EB5
+ 4EE43522B3E02395F1FE2B8CA0E35C57D6A3856EDDDF38FC6EE5AC83B8B7C897
+ 11493D451F936E74EBA7922C4475CA2A42F5721957CEC6E14A7A78BDF9F7A826
+ B2796D11B68874BB007BEE3F888C7EB631F6F56BD8376B7B5DD678F992EB5C08
+ 4A83159D2A230D9FF15CE7D08C63E7D3A66303BC6826551DCFBFFC7E2A8621B6
+ F74D96D71C91A2B7917AA400A11DAE349B9FCFE0B02EED0A16FDCF056A3F15C7
+ CFFE1FD2E6DB77259B40E66BCD343FE8765E4479FD27F93A11FE2C6EFADCD499
+ DD8DBAF79E6772D7E525CC647015B91A3DA58FAAC54D86C8E4719511E2936E6D
+ AC0D2F9A7A086399CCD1CFA9E2636084A7B6AF9A1330F06D1234555242990D6A
+ AA4D75BB1E268294C7AF1E956CAB746D1CDE6E324F23BB8059615D3A5DD46911
+ C482B40092C1B3C2831D1B49F72663655641065E43518CA8904749955461196B
+ DC53D581A960A8205D79D2E3F4FD080881AF468CA57ECE86DDB1BBA9F2314652
+ 6560C07171637FF5BFD6F7BEABD0990CCB2A8653707E87FE20FF008FBF75EEB3
+ FBF75EEBDEFDD7BAF7BF75EEBFFFD1DA9149FF00679FA3793FF173EC2FFDF4FB
+ FBDFBAF7477303B17375F85C04F176B76462A2395ABAE8A8B19FE8F569624151
+ 979571C5ABBAFABAB6A718AAFA424B33C842AEA72579105C5FC11CF70A769B67
+ 3A00AB78D538515C4C006F980071A0E805B76C7773D8D848BCD1B8C4A65660A8
+ 6DB4AE643A7BAD598AF951989A52A491D3655EC3CD98FB4B5F6F766C4AF4CBE5
+ 9633D6D0BC6A367D2217A790F5BB2D232A0D4180367F57D7DB8BB8403F751FDD
+ 16B83E7E353FB43C7F5B3F9FD9D30DB15F3B733A0E68DC8B500C7D2D4D6DD694
+ A5AE0F90D34F5E3D502FF329FE6E9B3BE34CB5D0EC9EE4DE9B96876FE3B35B7A
+ 6CA4F55B3E27DD591A8971FF007C36FCBB7B6A606AE0A0A29316A86BFCA7CC64
+ 7F10D0CA64C75E79F770CF2B72D729EDB11B99641DF1789ADCAD410ACF238488
+ 6AEE7A024D029E1ABB07F75CFEEFF82C767FF5E5F7FB98AE2DF64B3B6D621BDF
+ 07C1B74934B219628A089AE2F65F0FF4AD896541A9A551473152E7546C1FE77B
+ FCCFE8A2EC1E9ADAD47F19FE3D6E1AB8570BDADDBB92AEDA14FB968F2392FE1E
+ 993DBB898E8729D83B9E9CCCD715D4D40B4321BDA6D42DEC9369F6DB98B7DA4F
+ BF6ED2A0752DE1C4C634029AB2F43239A0E23483D485CFFF007D3F673DAD7936
+ 7F697DBDB1B992091631777D12DE5C310FE1F6DAEA4B2B742C41F0E4F1A44A50
+ F0209AFC7FFC2723E77E566CB7F79BF9AF6431DBA71D4788ADFB4C2F4F6E5CE6
+ 1259F2A727783F8C57F6CE07229153B638DA4FB125C3DF4ADAC4503D9AE5E4B7
+ 89DDE46762C2A649C9EDD39D465F3D5E9E5D41137F793FBC371BADDC36D6F671
+ 5BC6236D2965B54684485F0225DBC80068E1AB35F96401ECAFE5D9FCF4BE12C5
+ 47BB3AC3B376B7CCFD991A4F5B36DADA791C9D2F614B45454C2B6AEDB2F79C74
+ CF929569033AD3627215B55215B223136F64F7DED1DDDA473CDB0EEF711B4792
+ 0C8655353400A4B56A57F81C1EA47E53FEF0ED8B98EEB6FDBFDD8F6EB66BDB7B
+ A50A1D6D63B09D6803B325C58848B585AD0CF6EC84FC5E5D0A9F0BBF9C2653B6
+ 5EA7A87B3AAB7A7576F1C3645319BCB62D543478BDC38EC862AB227C8D150D1E
+ F1C264E7C2E46967A63E7A19218CB0D4B7BDD814F2DFB87BEF216F706DDCD360
+ 935AB542D759461420B44432B248067C363439A548A8937DDAFBA27B4DF7A8F6
+ E773E7BF6279865B2DFA150F228F096E606A8648EF5047247716AEF441791207
+ 5254B690EB1C9B1FEDDC053F60FDAEF2DA7DC7BFF33B7B3DB770F518DADA53D7
+ CD4B2C3264F3DAF5D3FF00A3D534F5F4D3C6D0CA1ACF1B294600AFBC90B2DEF6
+ EDCB6AB5BDB2B0B592D642C55878DFC2808FEDAA287041E0475C5CE68F6F39A7
+ 9279CF7BE56E67DD775B4DF6C82472C6FF004B83AE52187F8AE96565A323AE1D
+ 18104823A48D2F5665D71DD7EA7B37B19B464E408F236C177711ED7DD17350DF
+ E8FEF506500EA07824DFEA07B3596F61326E44ED56DF0FA4BFEFC8F87EAE3F2E
+ 8176DB45D7D372F0FEB1EE1FDA1A66DB14827F3FA6CD69435AF1AF1A522EE7EB
+ 1CB53607B049ECCEC661263EB242AEFB06D096DB34A9E2A529B011A962012E00
+ 248625AFCD86ADEF6133EDDFEEAAD8770E1E2FF19E3FAB93D5F71DA2E52C7980
+ 9E64DC58786C4826DA87F4571FEE36053D29E678F48BEC0D9399A5A8FB83D9BD
+ 8ADE3A4AB84D2AB6C214ED7A8A793CD240BB0417A8509657D40056616E7DA217
+ B0F8447EEBB6E20FFA2D781C7F6BC3A386D9EE85D293CC9B81ED6F3B6A711C47
+ D371F9F967A23FB5B78663A9B7F75D6F8937D6F4ACA2DB7D853D6E528EAA5DAA
+ 21C8E25B3F9B8B33415468F6A52D5494D578E96546549233C8D2CB6043975711
+ BBCCA2CA152635C8F12A3B53856423F91F9F4C6D9613C50D9C8778BB75171276
+ 930D0D24978D215620F980471C118A6C5F5D8FC4EE7C2859638B2388CC50C53C
+ 46F78EA296AA35A8A79E2716656642AE8E086536208207B28F3AF42EE229E47A
+ 2D9354E7BA873F051E4279EBB69E42A3461F34F726063CAE2F2AE0048AB6351E
+ 87E1674171621956C0D7EDE99642BF6746DF66EF1A7CA5342E92AB8751F9BDF8
+ 07FDE3DEFAA742B4332CAA194DC1FA1FF883FE3EFDD7BACFEFDD7BAF7BF75EEB
+ FFD2DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8E760BA870795C562F232
+ EEAED8A596BABF215751062FB7BB27178F532D4E4E76829B1D41B9A0A1A1A259
+ 08090C31C71A280AA00E3D88AE7769A29A68C5ADA90AA002D0424F051524A549
+ F9927A02ED9CBD6D3D8D94C770DC159DDC90B7770AB92E6815640AA2B4A05000
+ 1818EAABBF9BAF61A7C4BF899D93BB76BEECED34DC7BFF00B2760F5061A7AEED
+ CEC9C8D353C5BA36A56E777099A82B7734F4B90FBBDAFB5F21068995D479AF6B
+ 285F7147BDDCEF7FB07B78D25AC16E93DD30B7D49044ACA1D9CB95654054E846
+ 008208AD41AF59F9FDD8FF0077CE5CF793EF7165B6EFF73772ED3B15AC9BB18A
+ 5B99DE39A4B64B78EDD645690ABA8BAB98642AE19582682349EB5E6FE4E7F057
+ 6FFF00328F97DBE3BC7E4A62EB3747447C70A7A08B6AECD96AAAA9713BAFB62B
+ 1E2ACC147926A69A392A313B23183F88CF4E182CD5B5147AF543E48DE23F6176
+ 24BB5BEE6BBB89249919140750C2ADA8AAE96A821402482082585453ACF6FEF5
+ EF75EEF9626E57F62F976EE6B5DBE68A695CC2ED1B11198D669B526965796475
+ 48DC10CB1C6C01A8AF5BA6527486062DB48906ECEE28161DCF3C11470774768C
+ 51470C5BFE5A748A3853742C48894A028B28200BFEAE7DE5B3EEF38B9D3F4969
+ 4F047FC4787FDF35FE0F5FF370C75C0B8B972D4D8173B86E3AFEB187FB9973FF
+ 00296470F1695A79D2B5EEAEACF5DD3F48E21F73EE54FEF8F7380B8CDAFA4AF7
+ 676A2C83CAFB8C3FAD774F91B49516D4485FC5AE6EC49BBCFF00496A7E92CFE3
+ 7FF88F0FF43FA1D28B7E5BB43BB6E717D7EE2008A020FD65CD7266AD4F8B53C0
+ 60D40F2E26ACB59D238AFE29B150EF2EE76F22E5848CFDD5DA4642576E4EE183
+ 1DD00C6E5C73A74DFE9F4E3DD937694C3B81FA3B3C69FF0088F0FF0018FE867F
+ 3E9B7E5EB7173B003B8EE5DC1EBFE3973FEF9271FAB8CFF0D3D3863AD753F9F2
+ 7F2C2DA54BD4392FE609D290EE3C6F7D746E7B1B5FD9F99AFDC59DDC191EC7EA
+ 79F3B4FB7E56CBD5E66B6B2AA7CC6C0AAADA6ACA5A92E586356AA29358583C50
+ DFBC1B341CC5CBB3DD3DAC29736F186AC71A4668003ABB00155390695A023853
+ AE88FF007797BB3BC7B55EF4EC7B0C7BADD4BB3EED70F018E79A4994B3965F0B
+ F5198F873AEA8CA5685D94FC44935F1F07FF009AD758FC74D89D9B53F23AB7BD
+ EBF6CC5B7B6D67B6761FA77726F3C74DFDEA92BE5C6E568EBA9F0BB970381C4E
+ 3F326BA99BEFEBA48E38E78D625669674468CBEEF3CE9B835C6FDCAF71143242
+ 89E3A99228E4D2C1962934975620356334069515E24F59CBFDF03F776E54DB36
+ 1F6A3DF2D965B8B6DC2EAECED73886796132432432DEDA789E13206780C5749A
+ 88248702A1554755E7F273F9EFFCA7ED39E4DBFD0794DDFF001FB62524B510E1
+ ABA2ED4EC7DE3D95352B53D651A55E4370663733E03195B3D2553864C7E3A231
+ 6BD2267B176CA69F769653714B5B555714348210695078E8AF103AE105972D5B
+ 5B2597897F7CF2C26A2B7773A6BA594F6F8B4E0C470E1F691D6D13F023B4BE32
+ FC86F8A588C3F547CA3ECEED7DF7B47ABF191F6250E7BB9FB2B1BD891EEC3B5A
+ 1937665B3DB4F25B869ABFECEBB733553C72C714D46519556422C3DBD65B8B47
+ 26DD1ADB5A9A301530C44FC7E64AD6BF9F4877AD995ED3986E5AF6F813133002
+ E6754C423F08902D2A08A11F2E1D1C7EC2E9CC78799BFBD9DB64786A974BF6E7
+ 644A8CDE58886224DC8CC5801606E45BF1F4F6946E72143FE29695C7FA045FF4
+ 07468DB1442E05371DC6943FF12EE4F98FF8657F9F5543DBBD51143878A44DC1
+ D8EDFEE67360EBEC6DF1270998CE20BABE6980BE9173C13C924DCFB7AE2F9BC6
+ 97FC5EDFFB35FF00428FF853FA3D24B1DAA3FA5B73F5979FDBC9FF001227F292
+ 51FC7F2C9E24D4F99AEC19F083792F60FC58EA4C93D5D55757E0B6F2ECACB4F5
+ D3CB575AD5FB3A797001EAAAAA0BCD533CF45450CAD233333792E4937F64EE75
+ 333500A9F2141F901C3ECE85310D08A809340054924FDA49C93F3393D185DC1B
+ 7B1B9EC7566272D47156D056C461A9A6957D0CA6C559596D2472C6C0323A90C8
+ C0153717F75E1D3D82287A2C54D2E5FA7F734185AFA9A8ABDB59190FF77B2F3F
+ EA60BEA7C5D6C82D1AD7D20FCF0268FD6003A956C0F4CBAE93F2E8E36D1DD306
+ 4A9A164955B52A9FAFF85FFD87D7DEFAA742647209143037FF001FEBFF001BF7
+ EEBDD64F7EEBDD7FFFD3DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8EF60
+ 7AAB6BE5B0B81ABABA8DF025FE275993D345D9FD9B8CA586ABEE32D2878A8B1B
+ BBA928E1A6124E40804629C02004E16C21B8DDEEE19EE11160A69033040C48A2
+ F12D1924FCEB5F9F404DBB9676DBAB1DBE595EF351959FB6F2ED14356438549D
+ 540A9F840D23801C3AD7EBFE146DB12876D7C2AC6EE6C41DD151061BE5DF4F54
+ E726CC6F4DE9B8E8E971557D39D97808EADA8F70E7B29410CA72D93A3816558D
+ 645F2E90C03B06843EF07F5BBC7B7BB7402388F87761FB628D08A2DC2F144534
+ AB8C569FCBAE9E7F7466E7B1F21FDEDF98EFAEAEA745BAE5F9AD97C4B89E50C5
+ A7DAE6234CB2BAD7440C4102A00201A13542FF00C272717B1B2DD77DC7B0EAE7
+ CE41B8E9F7BD6F65D34D84DE7BC76D0C8ED9DE5B67616DE8CBD1EDDCFE3286AD
+ F1994D92EB24AF134A9F728BAB4B05F617FBB5730C9072AF316C9FA3F511DE47
+ 300F1C6EC51E329C5D18D11928403405AB4A9EA75FEFABF6BE19FDEEF697DCD8
+ 16EFF745E6C375B7C862B89E28E3BAB7BBFA9E10CA895B88AE432311A9D6122A
+ 447D6C5F4DD3DB49F6E88CD46FE2177AD4D508FF00D2BF6B0FDE5EC59AA04C74
+ EF30E5757AF493E33F952BC7BC9B6DE2F05D7C36FF00D80FF88F07FBE787F67F
+ 975C498B95B6B3B70EFBDFF7389FF736F78FD61CFF00B91F9FA5734EA752751E
+ D497746EA8A4AADFDA27C2ED88A465ED5ED2469232DB951903A6F01A4AACA6C5
+ 6CCA4FD7E9661F78BC16B68C12DEA1DFFD020FE87FC2FA530F2C6D6FBBEEB1B4
+ B7DA7C083FE26DE03933573E3FECF4F2E9B6A7A7B69D3E4FAF618E7DFEA94C99
+ 482357ED5ED491E045DB3344AA649B78C92BB695D25A42CEC7EA49B92E26F178
+ D16E2C56DEA749FEC20FE31FF0BE997E58DB12E7975564BDA51C7FB9B798FD13
+ C099C9FE75F5AF445BF9A1ECCEBED85FCBF7E53CF5B3EED7AADE3B433DB37078
+ FCB765F64E529B27BA77C64A0DBF8D031B94DD9574756B4C2735AD032353F8A9
+ 9D8C6543031E7BA1CD53EDFC8DCC6F32DBD64B278100820525A68CC6A0158C10
+ 4162D506A0026B8EB2F7EE35ED143CEFF7A7F662C2C9AF85BD9F31C1B95CB7D5
+ DDBAA5BEDD3ADDCA5D5E72856458445A58686691569DDD6B2DFC827A3B60F7B7
+ CC0F91BD63D8BB569B7DF57D37C4FCFEDADE382AD9F211E1725539BED6EA77A1
+ C665A1C755537DE5354C383AC952294B20929D64035C68CB8E1F77182EED77DD
+ EB73D0A55ECDD2AC8AE2A6588E0386009D0684669C0E7AEC97F7CEEFDB1EE9ED
+ 57B69C971DC3A5CC1CC76D701239A48D82C7B7EE0875189909D22E230CA7B751
+ C8A8146DF9D1FF0009BADC7D5DDBBD4DDA9F18715B93B37E36F60F6BEC8C2F61
+ F4F51CF96ABECAEAEDBB9DCDC4BB96AF019206A2AF73ECDA0C2455520A862725
+ 8C45532AD4A2BCCB9733C749AE7401A1327870A81FE123AF9DBB1B90F65B734E
+ C7C6945071CB0566F9F92939E807F9FBFC847E547C0BCC67FE42FC2EDDBD81D9
+ 5D67B3A4A9CA54D4EDBA8C8613BAFADF17F631642A67ADA7C0C94C375EDFA4A5
+ 91967AAA1092F8E3267A50859BDB68ED1BDBC91C83C4AD470A821881FE0E9548
+ 915C457B04F1136E0696AD6841404D4F90A1A1E8C47F2DBFE715B1BBB73182E8
+ EF9B596CEECEED6A843B6B67774FFA44EC0C1ECFDE55951534EB4D84DF58DFEF
+ 5C589DA7BA2AEAA2548EBD51282A643A1852B1B4AB46ED742331E9829507FB08
+ 7D08E3E1D7A2A6E59DBDA759BC4BCD4148FF0072EEFCC83C3C6A797A57D3CFAB
+ 50EDAE94C3C9B7699917784910CF66A5849DF1BFA48EF166F3F24722BFF78DB5
+ A9297B12CAC0F208F6FCFB9CFE3CDFD8D7C35FF4287CD53FA1D22B0D86D0D9DA
+ FF00B954FA893FE245CF94B2D3FD17E5F9E6BC7A3FBFCA4E67A3EA5EDAD88457
+ 78769F699C8528C857643213AD3EE7DB58895956A3255353521055E2A53A7504
+ 04DC724FB2B9A432E876D35A118000E3E8A00FE5D08AD615B633409AE8083DCC
+ CE72079B963E5EB4EAD36A69BFDA7FD85BFA7F5F6C74B81FDBD07FBC768E2F77
+ 61AB3099780C94D54A19254212A28EA63E69AB6925D24C5534CFCA9FA7E082A4
+ 83EE1D58E41078745D36867B39D79B95F666E792F3C3A65C6640294A6CBE34B3
+ 2435B016242B1285658EE4C525C1E2C4DBA6082A687A3B1B6F3D157D3C6C1C1B
+ A8FA11FEC2DFEC3DFBAD74B6D434EAFF00915FFE29EFDD7BAFFFD4DA8D7FECB9
+ FA37FED67D85FF00BE9F7F7BF75EE8E360FA3FA7B318AC56572BB1F015790C96
+ 47215B5B573F9C4B555B5155959659A52B54824925A86248B104FE381611DCEF
+ 3BB4534D1457B208D54000790017E5E9D00B6EE59E5CB8B2B29EE36D85A691DC
+ B135A924C84D73E67F9F5547F36767FC5EEFEF8AFF0031F6ABFC6AEE3DC1D3D4
+ FB7773508F905D6385EB6ADC3ED7DC7D79898268B7DECFC0EE8EDFDADBFF0075
+ 60F66EF4C1ACCF92A3C2C985ADA6A69A6156D41E5AA52ADF9EEB987674DA3729
+ DDED26421AA01C89090C3E6A40F4E14E86FED9EE89ED6F3EA73D72BDBC516F3B
+ 7CCAD1E9665ED6802C91B11C16446607070DAA95A75AA2FC5EEE4EC4FE567F33
+ 33BF14FE5E613078DDE3D759A8F1E9575F20C9ECBDEBB4F311C35989CB52D643
+ 2472D4ED5DDD86A882B29E4062ABA3775322472A32A624FD17307B43CD677EDA
+ 75AEDCE4872A090A18F706038C4F4049E28C0379557E812CF9CFDABFEF06F618
+ 7B59CEB3C079E2DD11AD965654799E0522268246344BEB70C51518E9B8858C5E
+ 6165DD53A3FB4BE12F71EC1C765A9F17B1F6F642A7274D95A8A7CB643C78D8E9
+ 2BB74AE50C947B89AAE2C6D4D1C1473D8B48F0B8553740BEF26F60F75E0E6058
+ AE23DE4C4CD0D34B32D2A23A76B5349048C7039E1D7153DDAFB95F397B497D7D
+ B65F72635EDB4576692C3149AC21B8D5492027C542A868D40E9834723A1CAA31
+ FF000AF059F7A8CFE7BA370D8DDDBB7A8F21B4AA72FBF76DE3A9372D16022CE5
+ 66E4AEDB93D66E0862CC52E128658E5AD9694C894D132BCA55483EC58DCC5BA3
+ 595ABA6E6C46B7C823FA1D63E2722ECF16F5B9DA5C72E84222868AC8E0824CD5
+ A03435C0AF40F774EE8F8BFB1B6360F7CF5A6DEE8CED5C8E2A2AB9D3009D9F2E
+ 2B1595A76C43C32C1FDE9DABB7FB2C526419980A75A8A35A792523CB3C09AA55
+ 29BFF7006D76D7ED79BED1CD28A082C68D5C00318F5A0F9F43FE4FFBB773273E
+ 6E5B05B72FF2048D0B13AE5911A388563A02CCE416C9E081DABC17AD537F9BBF
+ F315EBCDE7B8B1BD27F1D766D1D5EE7CC66DF05B3F626C8826DC1B8329B933D5
+ 8D4346F5828DEAE6C96E4AA7A85A7A5A3A6063A656206A6625F17F9E79B798BD
+ DDDCED397F6F9246DA217153C554D349248146948A8502BA0135353DDDC7FBB2
+ FB25ED87DC0B91F7BF7679F5AD97DC0DC6D48863601269901F152358D89782C2
+ 360B24B23E96B96440A02A561BDAFE49FF00CA5E93E1DF42E6739F27B6F60F70
+ FC99EF21B737DF62E36A6715B0F5AE295B3906DAEB3A3ABA4AB34D5D5B848649
+ 2A329511DE27C955490A349153C523CF1C87B01E47D9120DB5CC73CA68E57D11
+ 574AD69E5A98FDA7E5D7267EF4BEF75E7DE4FDC8B9DDF9948B8DAED14B5BAB92
+ 46B9E47F1A5A571A8471A8F4541E6C4746BF2BBCFE37ED7EE2EAFE8CDDDF1CF7
+ 8EDBACCB65B06B07635653EC5CAF5BCD47BDE9F7C6CFEBBACC9D66D9ED5CF6F1
+ C0D2F606FDC59C3E206530B472CF91501D238D5E459166DF778136E23EB65F87
+ 1C31DE99E1E951F9F589967CA9CB725AEC121DB60A99096AD7BBF466C71CE687
+ EC04F90EA67CC2EA1EBCDA3D2BBEABF65ED9C06DACFE637EF49EC1837052D152
+ 64EBB0543D9FDA1D5FD719FC9E328B3BFC5708D97A3C1EEDAA9294D552D453C7
+ 5211E48A45051A96FBCEF2D3EDCA6FE515603CBCDCFCBA7AFF0096796A3B2DFE
+ 44DA602D1C6C464F9421A986A8CFA107AA09FE723FC8476AEFFC4E67E42FC2ED
+ B94986ED6C463EAF2BD83D5142D49498CED1A6A0890D76E1DAF414C94D4188DF
+ B2906596969A2828B22C488E38A623590BB4B2EA9A424B922A694AFEC03A1B46
+ 96D6C52D6155112A9A0AD6801E19271D54DFF2B8F9B5B372F518AF873F297094
+ 033B1E627C4755F61EE7F3D0E429F21135541FE8CB79C9512D3C82AFEF898F1B
+ 513FEE097FC96537F110B5376DC55593EB1E81683CF853FC83A2A979776591D2
+ 61B645ACC9A98F0AD75127040C935EB71AFE55BB376DF5ED7FC8EC6E3131785A
+ 6C8E73AF2A1281268E232D4458ADC71B5422CD50CEC591954D85BD23F3ED8B99
+ A69E381E772CDDDC7EDE94D85ADA5A4F791DA46A91F612070E07AB789E9EF720
+ 7E2FFEBFFBC7F4F68CFF002E8D81E98AA29BEBC1FF008DF1FE1C7BAD3AB834E8
+ 1DED0D8037960648297C706E0C696AEDBD5ED653057228269E49073F695EABE3
+ 957E9C86FAA8F7BE07AD9018741D74F6FF00A89D3F87E4965A4C8D04D25157D2
+ 547A26A6ABA67686786553C878E4423FD6F76E98E1D1C04CAC67153546B1E88D
+ 4FD78E5D56D7FA7D4FBF75EEBFFFD5DA8D7FECB9FA37FED67D85FF00BE9F7F7B
+ F75EE8EFE03A87AB72F85C157653AE765E4AB24C956E4E4AAADDB388AAA83906
+ 9F2D29C879A6A4775AC696663E5043DDCF3C9B882E379DDA19EE238B739D5028
+ 5003B014A2E280F0F970E807B772972BDDD958DC5D72F59493BC8CECCD0C6496
+ 2643AAA56BAAB9D5C72739EAAEF727C7FEDBD99D03BCBA0F637C7FDC72EF7EB7
+ D9536C4D95DA9D638EF86B96EB1ECCC660BADE2DAFD7B90EDFC47C89ABABDEF4
+ B16471D4F4753BAE8F1382339AAFB94A2ADA885E31EFCBBBEEE23DB638F709C0
+ 181DED4F8CD299C75E6E56E567B9E639E7D8ECD9AA198F82951FA2A49274E49E
+ 35A93D207F98DFF2CDE98F999BC7AB3AD3B2BE23F727616CEEBAE9AED9C1E2FB
+ B7A7B70FC65EB8EC25ECCDCB92E83ABDA7BE76F8CA76BF5853560C0506D8DC14
+ F94A1C960A970E6AF22BF65412C2CB35310EEB136FD6920DD2479B4900163A8A
+ EAAD695AE0D32320F9F523F246F73FB6DBD5BDCF27A45652480B3A46BA164F0C
+ AE92C134D193576B02196A749C9EB4C7F935D3FF002E7F9667CE2A2F853F127E
+ 4F65BE48EE0CBE4B6EE236FEDFA3C4C983CEE33736F4DC3598BDABD7FB8B135B
+ 96C86DF7DCF538CFE1F5B2544351F6EB0E410C820B30587377F686C92E9E6DA2
+ E24B79D806AC2DE1825806A98CEA8C915E341D7467903FBC4799DF66B5DABDC3
+ DA6D37ADB2263184DCA0176CAB13346163BC8DA1BD4434A84D6C0540C900F566
+ 390EBFFF008532ECECAED6D8F98F8CBB6E7CF6F1DC0DB476AB1EF0F8C129CD67
+ 1367EF5DF7E08E787B6452D0ABED3EBCCC55892ACD3C7FE49E2244D2C31C855F
+ EB6BCDD1C6857992E3C224804ADB92694AF023D47E1E87A7EFB3F777BBBA97C6
+ F64B6717C8159952E376541AF569C34721A12AD812122993C3A4D6EEFE589FF0
+ A38F9138BACA7ED0A3DA9D53475A192836AAF73754D7EE2DC8244479E3C48D91
+ BBB23B563868A96469A7FE2B95A0BC5138884D2F8E2914DAFB417177E249BD6E
+ 9717291904ABC81532694D10801867831A744DBE7F78A6D5B12416DED8721ECF
+ B2CF7085525B5B4927B805575EB5B8DC6491A16A0F8A28C303C00C8EADFBE047
+ F235EADF831D95D67DA3BA3A7FB4BE467606E1EAADEF47DA5DC9DC6DD073E17A
+ B7B13706F8EB46D9D43B63AE697B7B745660A6DBDB7F6AEE38B2191C436E39DD
+ 73F491C159346D591D0CC1CA5B058F2CDCDA0DB1047222E0A009A6A87E10387D
+ B5A91FB3AE797BDDEF1737FBCD6FBC5CF38EE125CC13CA0C8B33B4CD29128A19
+ 5DFE2C8A8401501CE9A807AD9162E9BEA63B8F2339EB5D8E66184C34426FEEBE
+ 1FCA626C867E5684CBF69ADA2F200DA09D20F36B9F6286DEF78FA5887EF4B8A7
+ 88FF00E88DFC29F3EA124E4EE543B9DC93CB7638823A7E8C7E6F2D7F0F0C0C70
+ EAA29FE11647B7F6976B6F4DE9D75DBBD319CEC0DE3F69B63A8B66613E13E7D2
+ BB696C1D859EA0EA5AEDA997CE2EF5A9DBFB968E5A1FE275B1B6F1DB505266AB
+ AA8D0CB17EDD73BB36EBBA4926EACFB84FA8A827BC9AD248E95C9AD38F1C1E92
+ DA72DF2E436DCB0916C966544AC0111280BAADE6D5A4505355349A8A15F2E141
+ 1FBFBA670D9FF8F1D5DDAFD87D1581EAEED9DABDC9F1E66DE3D7D2E3F636736F
+ CFB8FB0B796C5E8ADF14D98836CE4F74ED2DD188FE1BBEAAB2BB76B1AA24C850
+ 4B0D04E7ED2A12A2907A0DDF7592E36AD7B94EDA5D6957634FD43C338FCBD7AD
+ 5F72B72D5BEDDCD0D6FB059A3185EA5618C13FA0B5AD1735A0AD7881438E8F1E
+ 6FA07AB9F262A47566CE6A91495B04552BB5318D5094AF55492C90C537DA9956
+ 0791119941D2CC1491703DA21BE6EFE1329DD67D35069E2371A1F2AF1FF67A39
+ 3C9DCAC6E959396ACB50561510C75A55700E9AD3CE831C3E5D6975FCFCFF0094
+ BD16D5DACFF3B7E3AECD1838F1B9CCD41DF5B4F6D6364A3A6A58E0DCB9A8717D
+ A989A6A18962A16A134A9065C461001E2ABE34CEC58BD95E4BB9243293269424
+ D735289535E3524F1E976CB6F0C1B55BC0B005844B322A814501659405038001
+ 568079014E9A3F96DF69ED3F9ADF1FB7862F72EDEC0C9DE1D4BB7F0F86DEF341
+ 8BA28EBF7661E3C6E629B6FEFA9960A78CC9356434E29EB9AC40AC8CB702651E
+ DF1B9DDBFD2235EC9A83D32C7812B4F3FB7A47272EED50FEF59E3DA6DC298411
+ 48D4508592BC07D9D585D26E5F963D1B5D898FAB7B77B2F6DE3A28EA561DBEF9
+ 7AFCD6D9094D04734710DB59F193C178D40FC538205C5C03ED0B49E2899DDEAC
+ 08CD7D4F470908B77B38A18B42306C01418514C74733A5BF9B8F6C6DE8D317F2
+ 4BAAA0DD7454D91ABC7CDBD7AE69FF0081E7163A5CB4B8FF00B9C86D8C94ED84
+ C95408D353FDAD463D6E3D31FE3DD595432A83C541FDAA0F4F452B98E491D784
+ 8EBFEF32141FE0EADD3A7FE49F47F7FD397EB3DF38ECB6522A48AB2BF6B57A4D
+ 86DDB8C86533207ACDBD934A6C878564A5917CD124B4EC50E991873EDBA6011C
+ 334FCA9FE71D290C353257BC0048F91A807F320D3EC3D257B53674BB6F71D3F6
+ 1616231D356CB0526E882152144E5921A2CB955161E51682736173E363C963EF
+ C0F5A715CF427536E5D5B2B2351E41E8A481B55FE97A8A717BFF00B1F7BE9BEB
+ FFD6DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8D7627AF7E365763F1F59
+ B836974C55666A32792A9CAD465F17B324C94B9396AF28D51355C95911A96C83
+ D5312ECDFBA589BFE7D8AA7BEE644964582EAF4421542853252945A5298A53F2
+ EA37B0DB391A5B4B592F6CB6B374647321758356AD4F52DAB3AB5712735E9A26
+ EB6F8C05BB141D9BD1C4086214E0E2363E9FF8F5A96DA6F16920BDEF7E0FB797
+ 70E66FF759FE377DC73DD2FF00BF0F491F6AE44D5CC7FE23B4E1468ED83FDF0B
+ F0FF00B6FE7D21FBE6BBE1E7456C0DE9DC9B9F667483ED9EAFEAFEC8DF796820
+ C46C8F35643B6F1F8AC9C78FA50B4EEED57917A71042AA0EA924500127DA71B9
+ 732A59DCBC97B7A28C992D20C51EBE7D191D9790E6DD76F861DBB6A6D51CB854
+ 80D5AB1530064F1A7E7D6973FC817A476CFCD4FE613DEFF33BBE715B3AA701D7
+ 392A8DF14984CEC187876CCBDA1DBBBC26A4C163A8B1B5BE1A0928367ED44C9B
+ D3C2B195A764A56001553ECB2D24DCA7BD7BC4699EE40625C6A2C0E8343A866B
+ F9F47FB9C5B1D9ED716D7325AC562CF1A889BC35429E2A6A010D015A1C8A53AD
+ D873FF001CFE0E6FDDCF931BF7A4FE2E6F4A7C462B0A711FDEED85D5BB8D318D
+ 5F265FF897F0F399C6567D90AD5A283CDE3D224F0A6ABE85B2FB99F982E2D6D3
+ C692EDD83C94D5E21A5747AF445B7DBF26D9EEBBA8B64DBA285A283E1F054120
+ CD5E14AD2BD3EAF54FC52C5D4F5E63719B0BA131F8CA0A7ABA1A7A0C7E0760D2
+ E3E8A86976DC9052D25252D2D3A535351D2C51A2451C6AB1C68A028000F6A22B
+ EE655B7BD51737A000A0664C778E1F9748A7DB7915EF36567B3DA8B3173212B0
+ 1A9311356F9D739F3EB3EE2EB5F8BA9B6B3061D99D18B31AF04F8F11B1755DB3
+ 54E416D30DBC8D115B93EAB7D7DDADB70E673750EABBBED3A7F8A5FE13FE5EAB
+ B86D3C82BB6DD94B0DA449E2628B6F5A7883D3E5FCBA7D8BADBE2D7F1EAF2766
+ F465BF85623C7FEE2363DF57DEE70C961E2B9172B7FC7B61B70E68FA68FF00C6
+ EFABADBF14BE89FECF4B936AF6FF00F785C56C768F0FC28E9DB6F4AEA96BFE4F
+ E5D25A8BADFE2FFD875EDF66F47739598547FB88D8E418FF00BAFBA34EAFDAB6
+ 9F368B5BF36F6AA4DC399BC4DCBFC6EFBE014EE978F891FF0092BD15DBED7C89
+ F4FCBC5AC76AD4653AFB60E1E04FC7FDB69FCE9D25FB5FA13E206F9EBEECEDB1
+ B8361F49D5E2B238F3298E8936CE16BA3ABC5E331D95C656E3F2F83A8C6E6717
+ 93C6E5E861A8A7A9A6A886A209A2478DD4AA90D4577CC72CDB7C72DC5E98CBAD
+ 4132F93D47ECE23D0E78F4A6F2C7926DACF7E9ED6D76B5B8589F4155B7AE6002
+ 8319AD482320D4820834E95B53D43F1629A5A6A7A7DA1D1CC94B42F4D0C9574F
+ B2EB2B8C113D2A279EB6B9E6C8D53B8506492591DE47F53B3372520DC39A0464
+ 1BABEE23CE5F43D1A9DABDBFF194FD0ED14A1FC36E3351D17FCD7477C59DC5B4
+ 3F8366B64744E431798CAEE8C564E86AF1DB11A9EB31B5B99DCF4B252CA0D894
+ 9A95C2716241163EDFBABCE617967479EF4A18571FA841AA25453F6D474876CD
+ BB92A3B6B3992DB6B59D6EA435FD00C292CDA483C45069A1FB3AD0ABB13AC707
+ FCA7FF009B0546D5A9A5C16E7F8F7B8F3422C68AFF00E1FB830F92E92ED0F252
+ C3E79A6FBAA49B2FD775F30D5212D289B19726D29049ADE4BDDBEE219034B0B9
+ 23F894915CFA1A63A165EC3B56F36377169B7B945534F82450FA0D3D4039EB6F
+ 4DC9F1C7E3A64AA3053526DDE9E929EAA96BE68A4A78766B472C4F410490C91B
+ 258189D5D482383ED78BADF8C73932DDF11FEFCF5E895EC79416E2C40876D0B4
+ 7D5FD8FF0008A573EBD167DC9F14BA2A4C5E51D36F7558719FCDA2698B698B22
+ 6E8AC8A1D22E011E351A4FD48B5BDFA49F79F1631E25D53C35FE3FF7D827F9F5
+ EB7B6E55FA69CF87B7EAF1E40330F013B01E7C29C3E5D04189E8BEBFEBFEC11B
+ 9B67FF007376BEE0C0526072584CF602B70988CB62ABD2BB722FDE63B278F9E0
+ ABA3A8558C7AD195AC6D7B1E59924DD5EDA35737054BB8208735144E229C3A57
+ 047CBB16E33BC3F44A56288A9062146D5356841E3402B4F975729D09F2F68F7A
+ 62687ABFB9F2F89CAE473D4726231DBCF19558D9A4A874C654D4197735150CA5
+ 6078D290B0AE85027934F9516E64F65CF6B3AACB2342EA8BE6548E2400323E7D
+ 1E45B9D9C8F6D02DD46F2C95002B2B1C2B3924035028A734E341E7D197A08722
+ FB3F37800E9FC462A8A4C417D6BE012B65A8E945497D5E3FB6D2DE4D57D3A0DE
+ F6E7DB1D2BF3A75FFFD7DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8DE62
+ 3727C78871785A6DC19FE968B2B4399AE7A8A7CD6536226468F3715465C3BBC5
+ 5F38AAA7CBC53BB863613862F7FAB7B13CF073099A76B786F7C264142A25A15A
+ 2FA60AD3F2E1D473633F247D1D825F4DB4FD4A4AC58486DF507064C9D590E0D7
+ 3F156BF3E9AAA7757C6E75ED049771F46BC5594E8B324B97D80D1D546DB42920
+ 65A857A8293C6D0AE821EE0A0D3F4E3DBC96FCC60ED24417D507D25C7EA13F97
+ AF4964B9E463FD690D3ED2559452A6DE8DFE2EA3F3F4F3F4EA89FF00E149FF00
+ 21BA87AF7E00546CCEBACCF5A566ECEECDD18BEB188ED3A9DAB5D95A3DAD4F95
+ C0EF6DCC11F1324B5747415549B462A496DA5184EAA6FC7B2D9C6F1058DC2DE8
+ B948DE44F8F580480FFC5827A115947CAD73BCD94BB4AEDF24B0C12E62F05990
+ 16840CA54A8C7CB875583FCA4FA67AF3A7BE29FC5EF9298DC7ECADC7DCE727F2
+ 5FE45556D235BB5A6DD5BDF69EC2EF1F899D40BD7A28B232BD4D4E56BFABF29B
+ C2AB6F52BC723AE5EB566A78CC9CFB6EC6D7780EB259DBDC7746E41457CAE921
+ A8546450D0F966878F4A378BFE59789A0DD6F2C4F87344196568BB5BC40C950E
+ 706ABA8540382470AF5B097C311D41D1947F301F7050F5B767F66CFDA5D5798D
+ FB8EDAFB97A3A3CFEF6DE9BD3E3D74AEEFECC382CDEFFDDDB0B68D46D7C6762E
+ FADC55D4F0D56560820A56A88E1F2D4378E6542D77F16F17856D782412BD68B2
+ 56B48C8AD071CD7D735E8A8DEF263EE3762E6EF6B36C6D610BA9A02A5754EAC1
+ 6A684628698C53A38FB73B3FA6B7B6176BD43617AFBA4F3549FDE3C2EDEA1DF9
+ 9AF8EDB86AA8D3FB928319B9A868FAAFB477E6DB9F6FAD455089291F27475527
+ DA488F1450B432C8A56DF990C5B91782FB51D35AACB52758E3EA7A40F71C88B7
+ 1CBA23B8DA3C340E306DE8078240E1803C870F4E8A86DBF95BD33BCF77EECF8D
+ DD8387F8A3DCF82DC2BB99B72772F434BB7B39D314E16BE491B6F778EDADD2B9
+ 9DBFB0F70EE6C7D1353263A1DD3BBAA2A6A192399628CB3A37669BF5C5D46025
+ DBA04D2712100682349E341C71C38F4A773FEA6D8EDD70E3F764333CC2407F41
+ 096F154EB1C093804371C035E88AEC5C67C67D93D31F16BAB7B331DD1FD89B4F
+ B728BE03F60F4F6E8DE98FD81BBF27D7FBA777775F4856FC9AE88C865B2CB92A
+ CC3E0F7962B2397DC7474D37820ABC5D46771F26AA7A18E2289EDB7AFA4B60D6
+ F73E0191B4F6C9425827C2294A914A5327A368AEF9506E9B8491DDD87D52C09E
+ 210D0D42A34B5D641A8D249AEAC2FCABD5BBEE1EC7EABC76FDF8AFB6F6B6F8F8
+ 6345B2B2994DFD55BEB0DBBB76ED8A3ECBACA4C175FE506DC97A6F0B8D9C622B
+ D31790C8BFF1C92AAC29292583C42F2B58C678F9885C6E0A63BCD722F9896AD4
+ 74269E64F027E553D07EC5B91DAC3617D5B618E190548FA7D284C3305D7E4A0E
+ 42F0EEA01E7D0BDB9F73FC6B3B73B2D22DC5D17AAB71F907A954CB75F5EAE66D
+ AD4B4FAEA80A8BCF2B431A25E4D4C51557F481EED6D6FCC9F53B59682FA8AC3C
+ A5C0F109C7A7AF54DCEE39106DBCCDE14DB4788F1B9C1B6AB1F014038E270079
+ 9C01D282BB74FC6B6CA4351FDE6E84FBD4A0AC8639E4CD75CAD74746F534524D
+ 147349522A5291A78D19D41085D5491703DA25B5E6631322DBDFE92C30166A13
+ 4206294AFA79F4766E7907EAA390CFB378811856B6DAA84A9201E34240A8E150
+ 2B9A755A1DFDF39BE27F476DCFB6ADA5EB6AC4C0EE0CE6465CCE431FB6E2DB51
+ 549CFE76B685B112252BC9979F4D6A4A92D3154B9F448C6FEF253903EEDBEE3F
+ 3BCA6F2E9AEADAD5E1525416F1020440CD29621215A035F12A40F894751EEE7C
+ E1C95B259416FF00BB2CA49A3B89181314654932CAC9A00525CD194AE9FC8D7A
+ D5FF00E76FF332FE55FF0026B79EDCCDF7275053F6966F620AEA6C0D7ECE39DD
+ 8D0430563513CD49907DA99FDB95B99A6F263E2644ACF3A47EAD200760D2ECBF
+ 771F69767416DCDDEE6EDE2FA12418C4F73772027246AB3578B8F96B1D125B73
+ DF313C93CFB07294A90CF4258450C08748A03494AB70C574FF0093A1CB69FF00
+ C288BE28E4B2386A7C96C0A7C1418AA76C7632A6A3626CF4A5C6D0C90414AD4F
+ 1F82861963A5305346BA145AC8BFD3DD97D8CF64370867876DF75ED5266A6256
+ DCA1D441C774A8631C78B103E7D30DCCBCC704B6F35D721AB786080522B47A02
+ 00228A4310401800F01D59DF437F301F879F20308F4985A6EBDCBC35D939B335
+ 268B0F858F254957599B39892AAAF015749E69BC356C4A491D9D74291A985FD8
+ 2F9D7EEA1CE1B55AAEF3CB7BBB5D58140A8E9309E070128156E2162AADA69557
+ E15218AF0E8DB65E7FE56BAF136EDC765B78E7329760D02A3AB1975926374048
+ 06BA587A0A57A37991C2FC7BC9E7B335F49B8BA70D3D56D7DB1346F3E5F63D2C
+ A627AFDE4DE1A8A6ABA882A609630C0BC322AC9196B3283C7BC4ADC765E69DA9
+ 86DFB8EDD7D15E453C8194A4B50691E6A01041F26048232091D4990DF727C9B8
+ DE48B75B608DADA022AD02FE3B8A820906A052A0E454547492C4EDCEAA19CD8F
+ 4FB2323D71575B154559A6A4DA191DA55559163D369678398297073C93C740AA
+ 63074A8887A41FC7B2D9A2DCD62BF6BD8EE42102A641252BE22F12D8AF1F9F4A
+ EDA5E5E6BAD8D36A96C0CC1DB10B42582FD3CDC0466A1787CB8746C3075754FD
+ 53BD2232BEB873D8AC486F2B5C40FBE3138931EBBDF4781F45BF4E8E3E9C7B28
+ E855D7FFD0DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8E3E17B13A6B1B8
+ 9C2D366737B529ABDB2D5D8C952B2890CD53943539656A2491A8DBEEAB1A685C
+ E852CCDA188BD8FB12CFB6EF32CD3BC36F2B47A030A1E0B45CF1C0A79FCFA8F7
+ 6FE60E55B7B2B18AEAFAD967F15D0EA192F59069AE9EE6A8E02A707D3A6D9FB1
+ FA523FF49B2499CDA31253411BC92C9451A474489B4692632543B5105A44488F
+ 9097D2027ABE9CFB7576CDE89DA80B798927D78FEA1E19CFE5D267E61E55079A
+ 18DF5B050A2848A05FF175E274F6FAE698CF0EB4F3FF0085687716CFDC39DF85
+ DD63B32BB1553414186EDBEC1CBAE329169D1E6CAD5ECBDBF839A4614F019408
+ 7195BA0F22CC6DEC8AEE0BEB6FD2BC5704E40635E151EA7A1AED97BB3DFEAB8D
+ B248DD14509514E343E82B815EB619FE5DFB23E2FF0059FC1EF858D9FC3F53CF
+ D9BB07A7BAF36BD36F9C9ED4C1D66F2C355E732A2B770EDEC7EEEA8C3CB98A2F
+ BDCB67AB629A921A8559659E54284BB026E9B4EEE26431DA4BA7E9C114F430D6
+ BC7866B5E14CF4179799F963E92559F72B7D7F5C50D7D45DE9D24D285B14D3C6
+ B8A571D1E1DAB90F8C1B3F7B7656576DE2BAB36C566E78B6EEE3DE35D82DA188
+ C356EE0CBC926E8926CFEE79F1F86A6A8CAE42606426AEACC9237AFD679F756D
+ AB7AFA5B6D16D2EB691F81E27B3CEB93FE7EB7173272B7EF4DCFC5DC20F05608
+ 48046173354D34F68C71C0C7CBA70CB6F8E84CEC9B3286B6BF636670D9DA1CDD
+ 3D651D56229B218CCEE2ABF6B54AD5432D34D8E969B2B8FADA39CF914AC91CB0
+ B9B82A7DB8BB5EF4B0EE2AF6D282348A13C3BC60E71E9D266E62E546BAE5E74B
+ FB620873502BABF44E410BDC3CEA2BEBD3267F3DF18DBABB70EC8A683AB3FB99
+ 12546D0ADDA90ED9C40DA91626A725063EAF6AD5E1171230E9412D1560A79685
+ E2F1B47278D92CD63BB7DA77A17302BDA4DA192B43E6341C815C839CF0EB77FC
+ CDCA8DB75EBA6E56DE2ACD4A8E2ADE2AF6934C30A8ED241150295EA3E076EFC3
+ 1DB750368603AFFA230383C3D7ED9EC1C46D6C3759ED4C662F13BC71993CB2E3
+ F7CE3F0743B720A4C7EE4A1A8A48441948E24A98DE15D128282C98ED5BC8B488
+ 8B5974F88D9AE2B44F9F1E8C17997958EE9721B718359B78F1435A6B94134D35
+ A7015E07879748CA1C5FC6CA8ED8EB0EFD9374E36AF75FF71E7EA7C5523B52C9
+ B4E0DB95E9BA778E42BB118D5C30966DC39CC852D2AD4540A8915E92821548D3
+ 4C8CEB64DAF7AF1B74ADB4DA827AE47EA475AE71D145AF31F2AFD272DFFBB0B7
+ 2866A9C5435609E943A68D5C5295F5F2E858DC9D93D2326DDEC811E7B6796A4C
+ 7E462988A28C7D84C36BD2CFA2A9BECAD46EB14AB2D9F4908E1BE841F75B6DAF
+ 7B173B616B79A85879F1EF3C339F4C7D9D5B73E62E537DBB994477F6DAC46E30
+ 3E13E029A1EDED39AE69820F035EA92BF9BE7F336D85D374599EA1EADACC38A8
+ C5E01321D8B9EC5D253D356495196892A713B2B1F3FDB45514AD2D114A8AF957
+ 930CE91836F2839D7F74CFBB949BED8FFAE8F3BA326D11BB9B6592A51520244B
+ 74C09A310E0C70AF9BA93C745233F743DC6B08A54E5FE5BD0F3BA80EC8A01667
+ 3DB1A9A0231DCEDE869FC5D5187C17FE58F97FE66F2E1FE57FCF3EEDCB7597C6
+ 9DC1B8A4A2EAEE9CDB75F5589DE7DA78E8ABAAA8D72757976A4A9A7DA1B32BEB
+ A89A9E95608E5CA65023C919A78FC351296FDE03DFEE61DCEFEFF92790ACA4B5
+ E56B5C6843412151FDA4E4106572092757E9A54802981AE49E5EE59DAE3B6DDB
+ 9977681F779640A4B1AE92491E1C78217B869D22AE48CE475B3E7507C35FE595
+ F1BB17BD703D37D19F1F36B4584DB38C54CCD56C7A2DCBBBA39130D9B99EAB27
+ BD37662B35BAE49E6D2B2B495159636D438516C35B9939B6F8EDF25CBDCB334A
+ 6A03501EE4C055201F4C0F9752936F7CA51FF58238EFADF425BAD2A09D24C729
+ 392B55AE0D4D3C8F9742A764F4EFC0FEDE5C0EDFECCEACF8EDBFB1597C7E598D
+ 16E7EAEDAF983574698EA5659E8DEAF6CC9563EDFCF1B2CB03068B5060CB707D
+ A2B78B9A2D92EA485AE91D59721C8A1A9C1EEFB7078F4B24DFF9424B8DAD45FD
+ A9474734D3F10D0B9034F70048C8AD2A0F98EB5CDF9BDFC8E3A130188DCBF21F
+ F96C76BC5D29DAFB5770EE4A9FF4195FB873353D61BEDE877357D0D26DCDA398
+ CC79721B0F7555C623A7A586A2A67C6CF3B240CB4819A513E7B53EF5FB89EDD6
+ F76DA565976B9123F1A3203472A1456712C552922F13A82865A6A04D07404E64
+ DB791B98B6DB9927DCE04BA4B89551B2A50F8CC91847A02AD42A02939274D2A7
+ A0DFF9667F333FE1B5D0ED9EEFA08E8C43948367F666333F8E48F25B6B254557
+ 538B7CF7DAD653B5450D6E0B21248B90A6080B22B82A24096CD3F783D90D97DF
+ 6F6F61E7FF006FEDBC2DFD6069238D0D4F88AA1DED18D6AC92815B776CAB5054
+ 80F58CB9479CE5E48E609366E6129258BB2AB48CA0D52A42CA306852A7581822
+ A695D34D939737D6DB8B35B23FBA193DBB92A8ABA8AEADA697114A17EEE80ECE
+ CFC8F514F569471C7534CEB2236A4721810791CFBE4F5C58EE76916E02F6DE54
+ 0A0021BC9BC541422B838228463AC95B6DDB63BFBBD8576CBC824959D98681F1
+ 2FD34D521A8030C83504D707A11B6FD08FF469BF174F3FDF9C3ADADC7FCCD0C2
+ 8FF7DCFB26E859D7FFD1DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8E760
+ BBAFADB0F8AC5633219DAF86B287215F43570C7B5778552C7510D46520911A6A
+ 3C04F4E624956DE4D5E2FA59B95B88AE365DC669A6923814A32823BE318A29F3
+ 60787971E80BB6F336CB6D636304D74E254765602298D08320E2B1914AF9D69F
+ 3E1D364DDEBD621BB1FF00DFC190FDD86230DB696F362D7DAB4A078C2EDE2CC7
+ 50FA2826FC7D7DBABB26E5FEEAFF00417073FA91FF00BF0FF4FA4CFCD1B2D799
+ 8FD5BF728D3FA5367F41463F4FD7AD13FF00E1509D9981ED6FE61BD25B670591
+ A8AEC46DEE84D9B8A67971F95A03156EE6EC0DE35356A94D90A3A4A9E69CC075
+ 2A598FD09B70437167716B27833A012100D2AA78FCC123F9F436B2DCACEFE037
+ 36929684122A55972295C3283FCBADA4FB4BE5AFFB2F3B8FE23AE03B3B2945D0
+ 783DABBA64EFAD9759B0B56363DA7B5BB5FA63ACB07BD31F98A9D8277BE365DA
+ 757DC8B97C9AD3641A8E6C5E0C22D3ABBC8D39BCFB5DF457019A05D3E00FC69F
+ EFA553F8BC8B0FF503D05ECB7EDA6E6C5A38EE9B50BC63FD9CA3FE24BB81941C
+ 421FF0798AAFFE22FCD8A29B1BF243B43E52F7153EDBC5516FAEBCABC0526E9D
+ AF06D0DB5D51B1BB0BAB761F696D9D855F99A4D93B7E5ABCDEDCAFEDA182A9A9
+ CA5555D455D4D1C3E3763209276CED1B8359C27C350048DC5E314AAC647161C6
+ A3FC1C6BD3F1F30ED11EEF7BFACE4BC11534C53313A5E7068150F0D3E433C722
+ 9D1A9C57CBFF008FFBFF0019B7775F5576261FB5A8F0E771D2DF638C966692AB
+ 70516CE3914DB736629B1F2E2B1797A84ADA6BA55CB11856A237902AB03EDE87
+ 66DC1A0DC34468C3B4624888F8C7987A748EE3993688EEF97C4B3CAA54393AA1
+ 9D4FF644643460F1C70E3D21B17F3E3E3FEF04ACEBECE54EFF00EA9ED2AEABC9
+ CD41D6BDA7D77BA703B8F314D88CD24D90A9DA597C4516E1D8BBFE96968E369E
+ 4936F6632B1C54E8F239544622B69B55F7D7C286001B4F9BA0AF61E04B50FE5D
+ 39B9F306D5FB9AEE5174CC864F28E534ACA08A80955FCC0F97403E2BB67B8FB8
+ BA6F2BDCFB23E576E8EBFED0ECDEAAC6F6275475962BA7B6565BA8B6B47BA71B
+ 98CDEC3D91B832DBB3A4737BEB3D95A1C7D653C191CCAE6E0A6FE2723552D035
+ 122D0CAD0D93727B585D6152A598FC71F021287E2AE7E7FE7E951E68D922DCEE
+ D1EE58308E35AF8531C8794115D14C7CBD78914E8D2E57E58759EDEDCBF1FB67
+ 0C5F66E7BFBEF98DD66A375EDDEB4DDF90D9BB222DB9B1F3B5424EC1CD4B8EA4
+ 936FA67A6AF5831A04350D55511BAD90216F6AA6D9F7149AFD3E9AA5D6828C84
+ 61D0E486A0C0F3E271D15D9F316CCF67B139BEA783255814941358665A282956
+ 35604800D0549E843DCBDEDD5EFB7BB051770644B498CAF5887F7477AFA89DB9
+ 001E3BEDDB480B1B5D2E355C7D411EED6BB1EE62E76D2605A071FE891FF19FE9
+ F5ADCF9A7647DB798D12EDF5B44E07E94D9AC000A7E9FAF5F3E7F98917FB33FF
+ 00CCC7B97616E1CF56FF0074FB0BE79673AD6BB2812BD25A2D9955DCEDB0A927
+ 482481AB617C7ED686309198BC89E3D212E34FBEEAF2EC32ED7F730E5B9B68B5
+ 0B3D9F29433385A7732597D4C80D30434A49635A126A4F9F587DB85DDBDDFBC1
+ B8CB773136D36E8E15886C2197429A11AB094A0A5470A7975BF975EF6774A6C9
+ D83B2B676D8AF9B03B6B6AD7D56DEDBD85C76CCDE90D0E230388C8E731B86C7D
+ 2D3C3B72D4F4345430451C77011114736B7BE176E1B56EF777B77733461A6911
+ 5989923A962A8589EFE24D7ACC2DB399F6282C2CE2170E02DCCB40219B0BE2CD
+ 4E11E0529F2E9C321DD9D66D53D8646E4C8912EDCC7AC646D4DECDA9C62B3AA5
+ 500DBA4BB5D8702E7F1F5B7B65363DCB46DBFE2EB5129FC71FF127F4FADDC735
+ ECA5F98B4DDBF75B281FA5364E897FE17F67536AFBAFABDB27B659773D769583
+ 2BADBFBA7BE02AAB63E00A1C8DB7E91723836BFB61762DCC45743E9978AFE38F
+ D4FF004FA5B27366CBF55B51FAD9280495FD29B15414FC1D25C775F58A607280
+ EE9AE05B756E2D29FDD3DF8CD6937CD7BC6FA63DB2F7531B06245C2AF37B73ED
+ C9763DCBEA223F4CA40853FD122FF7D0FE9F4D5B7356CBF4374A6F24A9BA98D3
+ C29CF1B9620E233E59EB46DFE735B0F64F5AFF00312ED0DEFD4F54B1607B9FAF
+ 768F6AEE1868F1F93C4D3C1BCB2B366F6CEE898D1E4A831D5293E66BB6A0C94E
+ FA0896A6B5DF512C40ECFF00F77D4BBACDED26E92EE91136D67772C03510C0F8
+ 6B1CA841048ED59B47A855A758A1EFD5C6DB73CD56EDB74FA8CD1AB93A5D4D58
+ B2B0A3AA9C95D55A52A78F5B547C5BEC9C37647C7DF878EF9CA8CA6EDC9F4A75
+ 7E733D14D8CCFC37C8CFD1BE7CC4EF5D90C6418F9DBF885537293BF9355D4B0E
+ 7DF24FDDADA4EDDEE5FBB02DED963DB937DBF58C02940837070802A9A80140F2
+ 14A797594BCADBD5ADFED1C876A2ED9EF96DA22E0AC8322C640C7532853DC7C8
+ 9AF115E8CC6DF8C7F7137DC56E3FD22E1E3B5B8B7FA56C2ADADEE2AEA41EBFFF
+ D2DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8EEE07B3B138BC2E0A926DB
+ BD8D50EB93ACC709B1DD6FBDB274934E27CB461D2AA870B3C1F624C45854B32D
+ 3E9B1D7EA5B882E36C9A59EE1C5C5B0EC07334608145F22C0D7E5C7E5C7A02ED
+ DCC5696D63B7C4F637EC448CB54B4B87526B20C32C6469F3D55D34F3C8AB74FD
+ A5884FF49CE76DF65811411B4853AC77DC8F181B469253A238B04F2D4305E42C
+ 22462DE900B7A7DB8BB5CDFEEABFC66DB8FF00BFA2FF007E1FE963F3A7ECE934
+ 9CC56ABFD696361B850A8FF889738FF175E20475FD95F967AD083FE14679FA6C
+ BFF37CEB7CB0C7E7E8A8DBAABE3FC829B3780CB616BCC30EF1DCC25618DC9D2D
+ 3566872840BA0D4C08FA83EC8E6B76824313491B1C655D587ED5247F3E86F677
+ F1DEDBFD4C704E899C4913C6F8A7E0750DF6633C38F5BB7E6305B0F7CE736876
+ 3EE4A6EE9C9E370781DFFD4753D6755D38D98EB3DD5B5BB3BB2B6F55EF0A4DD7
+ 89CC755E5774E423CA56ECAC35DE3C9D3E3D62C6A029F6F3D68A93B6DAE6375F
+ EE45B7F600FF006F17FBE47F4FF971F957A0645CCB68BB77FB81B87FB9A457E8
+ EE78FD61C622FCABF0FCE99E96FD68FB7BAF3B33BFF73C32F7B6E4AAED7DC3B4
+ FB173B419FEB1AE7A4C164A976AAEC6A4A0DAF1EDAEBBC055B62E9B696C9C5D1
+ A45573E4AB1BEC964791A79A592665F6998DA5AD2EADB323FF00A345E89FD2C7
+ E78FE7D2A8B996D5775DCD9B6EBFA0821E169724D0198E4787FB2993F3C74B6C
+ CF6563B28FB320A3C676C61E7C95066E3A3CB51F56EEB5CA63A4A9DAB5220C8D
+ 2D2E7B69E431F164689A512C716429258BCA816585C6A8CB8BB54CB0EE4A6E6D
+ AA348FEDA23F8C7A350FDA2A3F2E933731DAB5C72EB8B0DC294739B4B904FE89
+ F231023EC2011E601C7403EDAEBDE8FEBCA7CDEFA8365774EFAED282AFF84557
+ 6FF6CECEED5EC2EC90AD965A7ABA5C06E0DD387AB6DA783AD8B20C9351EDAA7C
+ 660E4048583427A6D6BB4CCB776FFE336D94AFF6F11FC07FA78E1C0D0FCBADEE
+ 3CCB6926D77A0586E18969FEE1DC815F157D6215E3F10AA935C9A1EB051755E0
+ F079CCE6D9D89DA3F317AD7AEEAD287391755EC9D938D8368E121C8673355B91
+ C2ED6DD59DE93CF7656CFDBD599112C90E3711B968D31F14CF151474B4BE2891
+ 2B6D537D346DF556D4F1187F6D17A2796AAFE7C3F3AF4BD3996D06E370BFBBB7
+ 0D5E0467FDC4B9E1AE5E27C3D3F60F88E7C80EA51CBEF1CC77DF48763CD91ED1
+ A4E9ADABD7DB8B058BEBDC6ECAEDBC654EE0ED3DDB06725AFDD1BCF074D80A4C
+ 2E5F11B7B66E121A7C52E49A76A3ACADAB9122824D2F2AC976A9BC5DCFFC66DA
+ A13FDFF17FBF23FE9D0FE55E8A6D3992D45A72DD2C2FC8329FF887719FD09F85
+ 62A83EB5A62A0FA743D6E4ED5C3B6DDEC8036D766AF831D918E467EAFDFA8108
+ DAF4B29688B6047DDC7A2407541E552D75BEB56515B5DAA6173B5FF8CDAE587F
+ A3C5FEFC3FD2C7E74F5E143D5F73E63B4936DE654161B857C2719B4B9001F017
+ CCC7C3CEA2A3E750475A05FCEAC6E63E3B7F373EFBA2CE52E636B3EFDEE7FF00
+ 6653AA335B830D91C249549BF3729DFF008CCC5252E5E9A9A768717BC9AB681D
+ B4E8F3D1B8FA0F7DA2FBAA7B8FB4F3AFB3169EDDDE4D149770ED5F46F10756F1
+ 238E136F244082412D0D1C0E3C00C91D62CFB9BB1DCEDDCDD2F33DB433470497
+ 7E30678DE365667F1158AB80C007A8AD29E7C3ADE5BE3BFCAED93DBDD49B0F78
+ 63315BD2A32194C8C93EE0C6EDFD93BAB71C383CFE52B72B5359879AAF0B8BAE
+ 87C549356022762B1780A48CCAAC3DF25BDC9F6CB79E42E6EDF361BE78441112
+ 2191E48D3C5854284900661F128CAF10D55A5475931CB9CE76179B2ED973F497
+ 6D235C31611DBCD28567791B4EA8D186350C9A003248E85AAFECEC4FDCF6437F
+ 777B2478F6D63F583D67BEAE96C4E6E4D496C19FB8BA9FA45E46D434DB571EC0
+ F1ED7368DB3FC62DB32B7FA345FC4A3F8BFC34E975C7315A99398FFC43701FE2
+ CA3FDC4B8C76499FECF87D95F4E3D38D4F6A62DF2BB502ED9ED00D3D2E5A78C3
+ 757EFB5BA2E3E98DA466C204A6947985A394A48790012AD64E36A9BC1BCFF19B
+ 6C151FDBC5EA7FA59FB463F6F4B5F996D0DDED27F77EE394723FC4EE457B07FC
+ 2F045781A1F960D10194EE4DBF83D9DB8B2F96C4F65E3F118EDD1B9E4AEC8D4F
+ 5AEFC868A8625DF35E649EA26FE0A0454706BFDC9C8F046A0BB388D5982B8760
+ BEBFDCACACECCC12DDCB1C6A88B3445998C4A0281AB2C4F05E27000AE3A4F173
+ 458DB6D97924B69B8242B75355BE92E348ADCB713E1E00AD0B7C233520024686
+ 7FCE07E421F919F2EB70576CEA3C8673726FECB6D7EB2EB1DB74D4F2D466EA70
+ 54138C1ED8A28A8A212D50C86E6CD56CB59E0177492AF47E3DF6C7DA55B1FBBA
+ FDDBF6ADA778B88E3DCE559669723BAE26A3CEC3D520409006E0DA2A3CFAC50E
+ 6D92E3DC5F71EEEF6D2291ADD34AA8A1244698414153A9D8B3E91522B4F4EB71
+ 8F8FD4F45B4BA8FE2FF53C145BBC7FA3CEB8D93B2464733B3F73E071B39D95D3
+ B55B79ED519BC7518A7A998516A48650931171A6E08F7C5DE70B8B8DDB9939D3
+ 982E0C425BEBD9EE0A89119819EEBC4E0A4D455B88A8F9F596BB3DE43F4FC9FB
+ 6C36D76A90A050D2C1344A4259CABC6445A1F45346E38C1E84DC16429D30BBDF
+ 1056533CBDA38950C153C402F6BE224E58B03CAA11C29E7D850594A6D0DE557C
+ 21F3CF1A7A7F97A1A6A1A82F9F5FFFD3DA8D7FECB9FA37FED67D85FF00BE9F7F
+ 7BF75EE8E8E0BB4E9F1989C4D09D85DAB5ED4790AEA496A717B0B2B5B42C12A3
+ 2901AC82AD0AC55542CD62AF16B2CAC08522E408AE36B692699FEBED57528346
+ 9541E0A684791F91A7404DB77F482CAC61FDCFB83947604A40CCBC641A837065
+ F4D35241A81C685C72DDEBB9B15F2772DB5E3C5F7157EC6DFBD17DA7B9A5D935
+ 7D61488B88DD3D6B59D0785C56636EE429B0F43B99A2CBE3FB3EBE2C9C790AEA
+ AA44961A368169EF219AEBB5B07DA94DFDAF99FED5682927A8F5AE066B9F4E9A
+ 7DF90A733B8DA2FEA748A780FA8D6DC71078014A126805457883D695BFF0A72C
+ D31FE665D59BF1709B9F0B4B51F1F7ABE7860DC981ACC1D6C926DCEC0EC033CD
+ 152D622BCB059D007171A811F8F647736C6D9FC33344F515AA3061FB479F433B
+ 0BF5BE89A65B59E20091496368DBC8D406C91F3EB7ABEBEEECA4CBF55ED0CA45
+ B03B6671959B11944783AFF2D2452435DBAA2AD59A3994F85E26825D62CC4953
+ 600B7A7D9E1DAD8DC06FAFB503C01FE8ABFEF91E5FEAFD99E81C9CC08B6063FD
+ CFB81617AC716EE47FB964F1E1C3CAB5F2A571D2DA8BB72953746E59BFD1F76E
+ 30388DB41517AEF3464731C9B858AAA900A9370016D2093C1FAD9A7DA58DA5AA
+ FEF0B4F8DFFD157FA1D3B073146BBB6E927EE7DC4830C029F4EF5C19BCBCB8E0
+ 9A03F91E9AB2DDC9494957B22AE4EBBEDE414C320D3452F5F65A39232D81963F
+ 1B9D4D197577B1D0641706C48E7DA9B5D91E7FAD85771B3AB5287C55A7C55FF5
+ 569D332730A7D4F2F93B3EE23487A836EFFEF92314A83FED491E75A67A49EE6F
+ 90A936DACC430F5A768C27F887A1EA765E548950E6A09165408AA8B1B06E033A
+ B706E01E3D9DD9F2852EA069376B63DBE4EB8EC23CFF00C829D6AFF9895F6DBC
+ 8FF73DF8FD4F381B23C407EC15F9D0FA8AF421617BA20ADC8D4D4CBD7FDAFAA6
+ C46255DE0EBBCE3538921C96E14755FF003928B2956E45883C12410086F76336
+ F485770B5D21DA95956B42A87E43A5F1F31C7FBC2E18ECFB8D0C310C5BB9E0D3
+ 7E7E7E94F4AD0D19A87B669BEC3AEEFD7DDB80C59699DC1EBCCC1201DABBAA3B
+ 7A75073A9C70858F37FA0245A4DA9BC4DCFF00C7ED3283FD157FDF91FF00AB3D
+ 155B73022DBF2E03B46E3559493FE2EF9FD09C63D78F95719E00D336E4EDBA79
+ 36FF006120EBCEDE064C6D7AC45BAF32EAB25F6DD3AEA56240450F75BC9A3904
+ FE9B31ADAED2C2E76D3FBC2D30C3FD157F8CFF00AB15FDBD39BA730A36DBCC69
+ FB9B711AA27A136EE06610327C857F8A9EBC287AAA0FE723F02B607F326E9FC5
+ CD86D9BDA3B03E4A7515265329D29DB8FD6B9A8E8229AAA7A57AAEBDDEF2C31B
+ 646B765EE4A98D1FD11C9263AA57EE61E4CB0540F7DADE6AE60F6FB982DB74D9
+ B7DB78D848ADA56715AAD4861E5514A1C8A8C7CC31CCADB7731DB3D95E6C1B81
+ 428C351B67A648C1F3CE48C103D6B407585F87BFCD53E40FF2D8ECE6E89F973B
+ 2F7CF536F0DBD50B8FA99770E22B21A1CDE3696A5E929B2069F211478FDD5809
+ CA3FDBD7D333965BF8DCB6A233E37BDEBDA7FBC4ECF1DB735DC5B6D5CE0140D6
+ E74DACAE47C714E9536F239A5518784C4D7B5405EA17DBED79A7906E05C6D114
+ D77B2D6A0007C540091A5E36A6B0BDC2A3BC70A1353D6D03D4FF00CEE3E2D768
+ 6232D90A8DEDB260AFDCD83A4A1658B70C58C68A48692BA1F29C665D92AA1D66
+ B412A646D36FAF3EE06DEFEE65CF96AD1CBCBD1C97DB6C5216124212E5082411
+ 496DD991B860D057A1ADB7BB7B05C0DC57709560BAB8842697AC6410ACB52920
+ 0DF8B3E94E858EC2FE717F1236B53E372C9BE36C3BE328F205A9EBF76E160F24
+ F534D1431F8FECA6AF9A58E30ACC4040CDC5ADCFB0EECFF735F762F5A65BBDAE
+ 78ACC91A9FC0900500F12D26855FB49A0E8D6F7DDEE538A4B3961BC479630C34
+ EB5AB165A602EA27F675AE07CFAFE7E78FEC886AFA8FA1866BB0F37B97375F4F
+ 83DA3B3B1992AAA3AECDE772D59574D4B0E328E39B31BA2BCE42B34D344CACAC
+ 74E81AB8390BCA5EDBFB47EC37FBBDE6FDEADAF79A21896905BC91DC4E74A800
+ 3CC84C16A840A390C64A82ACBE6001B8F3073673B23EDDB2D94B0ED524AEC649
+ 15A34ABC8CE74A1A3CA433768202D2841F5157F9507F2D0DF9D77D835DF353E7
+ 775F768BFC87971D4B9FEA0EA9AAEBFCC6429BABE9B70B6728DF72EE68E78E1D
+ 3D85251D114A48047E2C3C529B9FBB0452E3CFBC7EF5EFDEEC6EC860BBB58B60
+ 526348926558E38D02954519A8EEEE24EA73526B5AB0DF92B97AC3945EE6D5F6
+ 8BF96FD511CC9F4EE4B3B9901635029F0769A69A1207C38D8BB686EF7CB6EDD8
+ B43FDD7DF7841515F5CF34BB976B5761685586D0DC2A90B564CF253B5679251A
+ 5159B500DA4D813EE04DE36D0BB76E52FD4C0EC8A08D0E18FF006895C71A538F
+ E55EA41B7DC45D5EEC71FD05DC47C463596228BFEE34C29AAA4139C004F9D0D0
+ 74A4C5C0567DCC78FDCED2C7C7FE1AE3ED9C7A9FF61661EC270BD767BB4F3571
+ FCCAFF0098F4293FDAA7D9D7FFD4DA8D7FECB9FA37FED67D85FF00BE9F7F7BF7
+ 5EE8EEE077A6E7A2C2E060A6EA4DF99781727594915763F29D671D3CB0F9F2C8
+ B9231E4BB0682B21A06440DEA884E0328310370A7F71656AF3DC336EF0236806
+ 8566AFE1C622209FCE9F3E80BB76EFB8C363B7A47CB17B2A0919432BDA508AC8
+ 3551EE9582D33950DC2ABE8507B6729B8375FCACEADA3AEEADEC5A48B6375FFC
+ 85EDCA1831198EB2A0CE65F37B7B6CF4475DD262A4CCD3F61435136CE6C776ED
+ 64F5F8B3554D064F214D8F33A4D0D332FBBAD9DAEADA17F7B41424E74CD41FA9
+ E7FA55CF1C0381F602CBEEB7E139AE43CB57BAA8B55D7685A9F4E2A47F8D50D2
+ 831A813A85071A6A9DFF000ADCC2E4EB3BC7E1AF6164B6267B6BB6E1EB1EC7DA
+ 80E6ABB6C54355C9B3773E0B343C726D9DC39E8C3D126F5B32CAC80971A750B9
+ 04D7104509022BC8E507CD438A7FBDA2F1F2A57E74E863B7DE5CDD87373B4CF6
+ A47012342C5BECF0A5940A79D48E38AF5B5E7C11EEECF7627C10F8A9BDF1DD5B
+ BEB354BB8BACBAB2A3F8951657ACD62ACA815B8BA4ACAE8E3AFEC3A3AB5A335B
+ 03B132224E1393106BAFB374B4B57995CEED02B1B7182B3547E8F0A8888AFD84
+ 8AF9F4169374DC20B59225E59BD9105F90195AD287FC70D080D74AC14FA95069
+ 92BD1B8A3DF1BB13756E971D3BBFA478F0BB65FC6998EACBCB69372308E167EC
+ 6556958ADACDA54123D5F5B51EC6D0DA5A0FDF36E0191FF0CFFD0E3FA3D6E1DE
+ 3725DDB7571CAB7C5BC08301ECEB8337FCBD52A7CBF9D3A66CCEF1DD55AFB291
+ BA77B0206A8A3CBB2C73E57AB04B0C876C543A475421EC79923951CD982348BA
+ 810188B12AECAD2D227BB61BC5B90AE9C167E1E20AD3F47FCDD3126EDB93CFCB
+ C4F2B5F0C3D017B3AFF6278D2E8D08F3C9F913D05555BCF714B8AC82547506FB
+ 685731F6BE39727D637AAD798A7559E05FF487A5A9BC937A4BB239D06E838045
+ F259C284347BC401FC3AD409B145FF009A5C683ECCF1E9ABEDDB703B6DE0FEAC
+ DE8025A65ED33FA8323FC68E33F6E0E3A1C4EFADC589CB65FC5D31BEA1A78303
+ 879CB4795EAB8A9357F10CF46915D3B0CCA67919B51FDBB05E75126DEC14B610
+ DE2DBABEF90976958656727E14FF0085701F6F4669BC6E29B95C81CA97DFD847
+ F8ECE828F2F9FD57135E14F2E816C76FEDFB9C8BAEA21D69BEA1F26526748066
+ 7AD299601FDD6DCE596541D8413546A48243C8C4F02E0DC0BE6DB36ADBD7737F
+ AE81885009D33313FA91F9F85FE403A27B7DDB7236DCB8072DDE9FD534EFB41F
+ E813F1ADC8A62BC4FCBCFA979FCA7604587EC568BAAF7C4620C7D7AFDC0CFF00
+ 57ABD420DB34D26BA648BB1E492652AFA6CFE33AC116B598B3049B433EDBAF72
+ 8492C3B7C39B1DE78D61007F9B3D5F72DD3726DBB98C1E59BD03C3706AF67FEF
+ 85C8A5D1A8A7E7C453A18B21BC77ACB035054F4EEFD9A56C357CAF908F2BD562
+ 87CD0CD49E389C7FA47352B532F0EA12264D2AC75290AA42D6F6B609729345BC
+ 4023F15680ACF5A1AD7FD06941F33E9C727A3C6DE37433A21E53BFCC6D9D765A
+ 78AF13F575AF981438AE7C8D7D773FC7EE95F969B030BB13E467C441DC1B7A5D
+ D79CA6A38373C1D5B5397C0BD7E7F390545660B702761516736DCB1A9D6F3E3E
+ B219885045CF0245663633DCCF6BBE448EB029E1350D114F0F08D6BC323A0FDB
+ DF5D49656E9272B5E48A6EA5186B4AE6596BC6E4500F33F2C57AD4F7F9D0FF00
+ 2C4FE585F013ADB319CD89B53E51F547786FD969297A53ACE9FBBFAFF35B42A2
+ 52249F71EE8CF5154B7606F46DA1B72129195FBCA46A8AB96381275D4597769E
+ E9F346C9651C961BFC66762D4117D4466A08C9A78429424F1A9FDBD7ADF66B6D
+ DF72BDB6BEE5BB88208D108690DAB8EE0D51DB2CCC780A76E335391D233F9347
+ F29FF823FCC33A89371F64C9F31B7876B6C8DC19CC0F696D4DA7DC9D4382D848
+ 9A4653686471F47B830188DE34B479AC34BE396D5D54BF734B385953D2A17CBE
+ EE739EEFB3CB3DEF33012AB856591EEDF0D5A103548A463CCFE5D3777CBFB7ED
+ 5B959DBD8F2CCF34722B1D51FD220AA8AD2AF244C0F9F020F91EB685F8CFFCBF
+ FE227C21A1C8567C70F84151B5777D0E772B8393B2F3794EBBDEDDAB25341BAA
+ 5C606A7DE7BBBB372B97C3502D3448264C7CB4692223398C93A491BB4FBB9824
+ DCF98A278DA2560949963158C1CAAC203127235569503A7ED2F6E60B49DE3E53
+ BBD62E1D356AB42D459CA819B9E0A00048F4273E67703EE36CEEE1C964BAC37A
+ 4C0ED4DB15408DC5D5C22225C8EF6F12F99FB13CB3D4318FFCDD9483606F7F64
+ 57124423B6B4B4DC205A4F20F827AE0455C086807CF38CE3A328F72DC8EE7B81
+ 3CB5764FD3407FB4B3E1AEE6873759AE71C719F2E91F87C9676BB39B024C8EC4
+ DC7B661FE253567DC666BF66557DBC91ED3CF4AB45534FB7B76672AE3AA2A48B
+ AA34419082FF004B9A5C5AC02D77448EFE39494D345120AD6451505E3514FCEB
+ 9E1D5E0BEBCB8BAD87C7D9AE2DE33231AC8D01CFD3CDDA445348C0E7D08C1A9E
+ 1D2931B4E09DC4F61E8EECA3A727F1697B67184026F6B7ECFB8EADDC8B5BF8BC
+ CAA9FD8E07F97A1730EF43F6FF0083AFFFD5DA8D7FECB9FA37FED67D85FF00BE
+ 9F7F7BF75EE8E860F7B6FDA3C4E229A83A5F75662969B235D0C792A7DD9D6B49
+ 4D5B48B51948857D1C15FBBE9EB8ACA96758A58A190293A82952088AE2CAC1E6
+ 99A4DE62462A31E1CC48345C122323E55048E809B6EE9BC4563631C3CB13CB1A
+ BB00C26B650C2B20AA869836464060A695AD2942056732B92A3EC8ECDEC7A2E8
+ 4DDEDD8551B486C819EC97616CEC84787DB55187C2E52BF0987C3D5761566DCD
+ B70E572B8AA49F212D0D3472D7351D3B54991A9E2119FEDDCBDB74A9B65C5C6F
+ 3194AE0049B23C439FECFF00963EDE9349BBEEE4F322FF0056A71A80E32DB76F
+ E828EE2263F6E3563CAB8EB5DAFF0085436D1EC5ECBF897D27DAD97EB6DD381A
+ 2EA5ED7AE8AB32F95CC6CFAFA58B13BFF1347847090E0B70E4EA52393378EA08
+ CC9E311876552D761ECBB7AB0DA6DAC49B3BF8649D65505556406843F12C83D0
+ 62B5E84361B96E371B9430DD6CF35BC6619082EF0B0255A2C011C8E7CCE69E9F
+ 91D2FF0084FBFC92DF3BF7F95FF4A6D5C6F5AEE1DEB1F51EF1DC7D5F5F95C767
+ B64E3A9E8DB19D8E77462A95866F71E3EB4345B737451A2ABC615D8008C16F66
+ 2CEC76CB9B34B997768A1BB0AEA50AC849010807B508E1E60FDA2BD33BBDEEE3
+ 6B582D7629A787C689B5AC902A92665623BE456AD702A2849E34CF579345BF7B
+ 09774EE6917A3378BB9C46DA090FF7BBAB03DD24DC247909DEFA63576202905B
+ F3702DCA77B0DBFE92D41DF21A6B7CF873FF0043FE17D17DBEEFBC0DDB7461CA
+ B725CC3076F8D6B51433649F1E943E54AF035A62B12AB7DF611C9EC3F2F466EE
+ 474FE25AE35DE1D5930673B7A75294F20DEAAB5081AFEA3E3BAFAADFD9F6E258
+ EDE21DC34EF9153B7FD0E714EF1C7F4FFC15CFEDE999375DE3EA797F572B5C06
+ 50F8135A9AFE89F84F8C2A3CEA74E3CAB8E81DDC3BD37F5262B311BF4C6E985A
+ 9334DE32776F5B3AE8873D0B2995D377378A516219407D2C2D73F5F637B6B3B0
+ 9DA03FBE623AE2FF007DCDE69E5FA7C3F67D9D357DB9EEDFBBEED5B96A71FA9C
+ 7C6B623FB407349707C8800E7CCF1E8777DEBBF2B32D95825E8BDE6D4D5584C3
+ C4C53777557997FCB73DEBF19DF3600AB8646D46EC08205AE408969650C703A6
+ F90EB5918FF673D38263FB2FDBD19AEEDBC1DC2E8FF552EA8608853C6B4AFC53
+ 67FB7A50D719F23503150569EB3B363A3D8017A677295FE2D288F56F1EAF5699
+ 9B6CEE61E386FBD34C920D57FAA82A09FAD8117FD5ED0EFB896DD9036815A473
+ 103BD327F4F87FABE7D135BEE3BC7D3F2FFF00C862E3129A7EADAF77E8CF81FA
+ DF9E69807CE80E0DDB9AECDA1DBBBEA5ABE94DCF045251D642921DE3D6320567
+ DBB0906A162DE2F2402EADF40FE900FE6DEDFDBDB68B9BBB04877B8CB820FF00
+ 6730FC7E5FA7FE1A7F97A7372DC7773B7EFE1F96675531B0AF8B6DDB5847C549
+ 89C71C571F3C01576BF63F644F3CB46FD25BC6B6920A4934CA777F582CD119A6
+ 89441E1977A299217442756BF411A6C750203BBBED5B5C5E1CC9BD42B23367F4
+ E6A63CF11F1CFA67FC272BBBEF3E32D3956E59749FF46B50788F2F1B87CEB838
+ A1AD403787DE5BFA971F8F54E9BDD2D2D3EEACE96FF7F5F5B2052B9ECF0608E7
+ 777EE4D15C5D6CA090406E0122C9AD36F95A463BC45A5A04FC1379A27FC2F81F
+ F50E89AC773DD96D6DF4F2DCE7FC6653FDADB0E32CB503F5B247A70241A1A509
+ D0A7FE143BB2FE4162FE654FD8DF25F7F6DFCB6F5ECDC4BE4BAE7AA76C7D94D4
+ 3D51D278AABA8C7ECDC7D554D26E2CBC4B5990904CF3398D1EBAB855545C2685
+ F717DE5A456BE108EFE398D58515641A687CF5A2F135E1E9D0C36DBFB9BB96F1
+ 67D9E6B6D3A72ED0B6B241E1E14927014E34E3C3A3ABFC837E2BFF00310F8AFD
+ CFD1BF2E76FF00436477DFC64F933B532BB5F7663309BD367E3F74536D3AF6AA
+ 3B737DD56D9CFE6F133454F8ACC51C555148492F8EA891C695914B2886C9C5A1
+ 91AEE358240035755546AC315D39E1F8751A1E1D6EEEED966555B091E74A9400
+ C63C43A685549714343F8C28C71EB72BAEADEC5C86332B5745D27BAB5CFBAB70
+ B4AB3EF3EAD8A0E77AD796712FF7CD992548F868CA90640406B10DEC4D6D3EDD
+ 03C30CFBC47A5624A111CC4FF64388F0F87A1AF0F2AE3A09C1B96F1F4571A395
+ AE4D6EA6CF8D6A07FB92F51FDB56A3870A5781A67A6FA48FB11B75E6FEF7A637
+ 63469B776C134D0EF2EAC0E7FDC96F3235C92EF658E247636BAEB6BAB702C09B
+ 5C5E6DBF4708B7DD62D4647EE31CDFC317908F3F9D3CBA7E3DCF773BADFD795A
+ E6BF4D063C5B5A8EFB9A13FAF4A1C81424E0D40C55498CC66632FB8F64C59FEA
+ CDC5B3A965AFAE965ACAEDD5B132F8D8AA23D97B8B4D0D3C7B677164B29234CD
+ 76590C4B1594DCADD5495C97860B4BEFA7DD6299C28E11C8188F153275A85C7A
+ 56BF6E4F4A62BCBFB8BED863BBD8A6B64F15AACD2C0EB5FA69BB47872331AF10
+ 4A81406B4341D217078E85C6F5A12ADE187BD311005F249AFC67BA31549A7C9A
+ FCB7F1CA45F55FFC7D86167915DE5A8D6DF21C6A0F0A5388F4E86141403CBAFF
+ D6DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8EEE032BDB10E1702B8AD89
+ B072144727590C1515BDA39DC5D58C799F2A16BAAA8A2EA6C9C2951E200B53C7
+ 512D99AC2560B7220B98B6933DC78B7F70AFA05408158568B807C718AF9903EC
+ 1D01F6EB9E644B0DB85B6CD67243E23005AEE446D3593B99459B8069C5559B27
+ 89A740765725DAA95BDA3AF64EC47992494BC7FE93B3A9E5906DC80948E57EA7
+ B47A9BD3A9C581E6D6E3D8F2D63DA4C1B369BE9F4E914FD04E1AFF00E6BFF83A
+ 452CFCC00F329FDD5665A991F5527FBE1781369FCCD3F6745DBF9A3F45F687CB
+ 1F837DEFD303AFFAF9AAF3DD23BBF72ED99287B233D94ABA6DD5D7D5DB3F7E6D
+ A86831D37546385656D465B6E47022F9E0075152EBAAE005710EDA96FB8817B7
+ 06612AE1A15153FA9C489DA80FAD0F1C03D1C2DCF30B6F1B509F69B3588C32D4
+ ADD48C40D50D68A6CD2A7D06A00E6A463AD6C7FE12CBF29772ED85F935F16E93
+ 0B83CDD4E5331D79DCFB731B9EDE591DAEF4FF00C3F3D43B337B363E38368EE7
+ 5AA9234A8C44B2C5A2172A86C49FA37B2D8DBDEDC4C935DB44446C45103D7B5A
+ BC5D29FCFF002E8C37E9B7386DADCEDF6304C4CF1EAF12668A9FAA94234C136A
+ F983A71C2A4D3ADD231D9CEDA9773EEA929B6375BCF24787DBABA17B6B70686A
+ 88A6DC8AD4ACE9D3CE619A2993449A87A4FF00AC47BBC90ECFF4B6A0EE171A7C
+ 47CF809FD0CFFB91D13C373CCE376DD4A6CD6264F020C7D64A0719A943F45FB6
+ A3F6F582A32DDBCD93EBD6976075DC323AE459A21DB3B8665A790EDC999A2794
+ 74E46270AD75D68A0122F6B7BBA43B3887720370B823B7FD01057BC70FF18FF0
+ F4CBDCF331B8E5D2766B20D46A0FAC90FF00A09C122CBCBD40353F2E827DFD90
+ ED84A2DCC2A361EC1A71FC5F546B1F69E76A0CF0C995A57352AE7A8E158B5C8E
+ FF00B6C2EBA6C49BDFD8C7654DA592C4ADFDC13E1D3FB05142148A7FB91E94CF
+ 4CEE173CC676FBDF1366B351E29FF89721AFEA0C8FF131E7E4687A1931399EDD
+ AAAF982EC5EBCF14BB63041EAC76C6E489FCA2AF3D178D214E9E79629000CC5F
+ 5100D80B904FB085DC1B4444837D7189DE83E9D0F921CFF8C508E1D19C775CCE
+ 772B80366B1A7D3C59FAC97F8E5A63E889AF127CB8509CF411C38DEEE349D733
+ 0D97B0A7925CB3943FE9633AF2D3BFF75F744844B34BD531793C6148063FA9B1
+ E05FD8A16FF972BB9AB5E4E944C8FA75A1FD48C62939E3F3A74516D2F319B5E5
+ B6FDD3675329A0FAB9307C09F8FF0089FA5785734F2A9137725177A56EDFEC26
+ C8ED1D82129B1F90D026ED9DC350F3A0DB54CFE48517A95A3824624A5A46FAAD
+ C9B1166AD6F79660B8DBBE9AE2E35330E16E8BF8CF13E3D7F603F674E6E73732
+ 9DBB993C4DA6CC2AC6F5FF001B90D4780B91FE27E98CD323D29D0B78D6EDBC4D
+ 541494FB03AE6485E8EAA6A8C83F6DEE3591AA567A34483ED3FD0D1728F192C1
+ 83054D362096BFB0CDD4BB55DEA964DC2E410400BF4E98143E7F53FB7D7EC1D1
+ C89F9A12E5146C961A7C363ABEB65E355C53E86B9E35E0294E27A2E1DADDBD51
+ F1E7A4377F7C76A6D2EB5C3EC8EBEACDE7BAF75646B3B8771C3F6F43439ADC72
+ 4F1D145FE884475F5F5920115252ADA5A89E548C1527D994F7966AEF10DD6E15
+ 16DD00A5BC79A225057EA2B5F2AF451B7CDCCBF496A5364B26ADDCA3FDCC9053
+ F565D47FDC2A5064FA9C703D7CEFB1145DE5FCF2FF009A267335FC296087B073
+ 953B97298FA9CAD64786EB3E84EBEA50D4F80399871757250A516DBA48A8209B
+ EDDBCB93AC0FA09723D85E258EE2EA249A5611BC8016D209A13934D4339AD357
+ E7D0C6F66B8B4DBEF6E61811AE521660A5CAA9655269AB41A0C52BA4FAD3AFA5
+ 2ED6C46FFD8589EAED8BB53AB7AC307B5B68ED64DB580C4D176AEE14A3C2E270
+ 581C7E37178C8625E9A43243051C01032816D1723D5ECCD61D9843774DC2E680
+ AFFA0270A9FF00978E83725D7341BCDA4B6CB6352AE7FDCC930748C1FF0011FB
+ 723D3A9B4394EE05DBB91687AFFAEA6BEEFCFA18DBB7370C2DE27DF95CB3D407
+ 3D352460440B4813F532A85B863C3D243B39BA8EBB85C0FD14FF0088E87FD045
+ 07FB91E7C3E47E5D25B7BAE671B75C15D92C987D64BFF132407FDCA6A9FF0070
+ A94193EA40F2269D4D8B23DB5FDEFDC43FB89D7448DABB4CDCF6B6E408DFEE53
+ 7CE945FF008C36CEAD7BEA2469B116BF3ED968768FA2B6FF001FB9A78D27FA02
+ 7F0C5FF2F1D2A4B9E66FDF1B8D367B1D7F4B0547D64B4A6BB9A50FD156BC6B51
+ 418A139A4CA0ABEC1AACB75F7F7AB696CFC0523E46ADE56C16FF00CB6E9ADA7A
+ D3B2772E9A434D59D73B5292A29C5DC34EB50082A2D1B06255B78F6E48B71FA5
+ BB9A47D03E2895011E2A66A269083F223F3F5BC73EF72DD72DFEF2DB2DA088CC
+ 7FB3B9799837D34F820DB42A471AB06E2050107004EDF1FEE437D8FC7FA7EC38
+ FF00D8EB85F64DD0C3CE9D7FFFD7DA8D7FECB9FA37FED67D85FF00BE9F7F7BF7
+ 5EE8EA60B23DCE988C3261B677575563A2C9570A5AACA765EEEA0ADACC70A8CA
+ AA3C94149D4B91831F5F240558A7DCD4448432877E0FB10DC47B319A7335E5D0
+ 90A8A85863201A2F999C122BFD104FA0E80DB6CDCCE2C6C05AEDDB7B40246D25
+ EE665665AC9C556D1823119F89C0208CE0F41F6E1C7776D6D4F64D6D26CCEAA8
+ E492184CF0FF00A50DDAE2393FBA946AD2827A7E013836D65414247172DC9106
+ DB7FB1C31ED504F7975A413A4F809C3C4383FE3069E95CF4924939999B994FEE
+ CB00748D5FE3531A7E82FF00CB98D58CFE1F4F9F5072D55DED8CAFA19B27B4BA
+ CF198AA6C0EE79F232643B6F71D1E2A1A147C13D65456555575641454B470C6A
+ 4CAD2FA0A9B92029BAAF1B950DBDC4AD7F3121D33E021230F4FF004624FF0093
+ A5D2C9CD1FBC6CBFDD65887F0A5A0FAA9722B1573F498A63C8D6BE54CFCD4FB3
+ BBAF74FF002ECFE645DFBD87F10F7FF5B65FF836EEED0C66CADC7B1F3B1760EC
+ 3C761FB0E3AC99B134192FE158CC767E7D8191C8A2425A034C2BF191B159116C
+ C07B99A0B5BEB96DBA766B7208562A14E975A10402C01152389A538F426B6171
+ 77630FD7C0B1CE1C165562C01492A28C55490748352AB507875B837FC26C7BFB
+ BBBB8FE0CEEFF30DB3D85B9F65772EF6C36E0DC9D83D9BBB69773E4327BA7279
+ 1ECD93219468FAFF00771AB4ACADDF32DA4354AE4C6F751707DB90AED8F656E2
+ EEE6747123E1224714A279B4C841FCBA27B96DF62DEB703B6D85A491B5BC1992
+ 792320869C705B79411FED81FDB8BECA9C9F780C9EC2F2EC9EA63220C88FD9ED
+ 4DE4229E4FEEECEA5A2F274CEBA78B55D807D6DA7D3F5E7DAC48B64F0771D37B
+ 774EDE30478EF1FF002F19FE5D153CFCD22E797B56D9B79601E94BA9A8DFA27D
+ 6CEAA3CE9DC7CBE7D07BD9755DD7FC2F23254ECCEAB45A8A8610BD2F666F19F4
+ A479D8DB4CC92750C0F24E9ACA315B29B0238E3D89B97BF72D5156F6EAABEB0C
+ 638A7FCD73418AF54DC65E67FDDF77E26DBB7D0C86845CCC69FAA3041B41520E
+ 2A280F1A7974E785ACEFE5DCE5E3D8DB05E961A1C196A793B3B79451A46B91CD
+ B93E57EA23008A4466E0292ACA4F370056F472C9B170DB84A2562F910C44D74A
+ FA5C57D3CFF674B629B9A3F78CE46D7624F831E3EAA618D52D33F47E79C5314A
+ D4D681454192EED141D740EC9EA76299698A15ED4DE4AB3B9DA9BA94AA86E992
+ D0008C5AEDAEFA74D8160407E48F65F1373FF1DBAF8057F423C7EA47FF002F19
+ F4F2F5F2A745D6D3F338B6E5B036BDBC8129A7F8D4C2A7C09F88FA3EDC54FE2E
+ 14F3A8CDB9325DE276F76209365752A2BE36BFD6BDA7BCDCD3A7F76A9D49910F
+ 4D20A970417B2141A485FA827DD6D63D93EA76DA5EDDD750FF00408F3DE7FE5E
+ 31E9E7EBF2EAFB9CFCD476DE650FB66DC10C4F5A5D4C4A8F00571F46351F3E2B
+ E9F3E95B5199EF082AC5449B27A820A18686B2499A7EDBDE29246125A6733354
+ 1E985A68E9A1855B5EA17B9041001F68845B1786C3EBAEF5547FA0474E07CBEA
+ 2BFCFA3A33F367D4211B4EDBA74363EAE7AF15CD7E8A941E6295248C8A107E7E
+ 9FCF53F9B46F0F979B9E97E17F4E3E25BA7FADBB03387776476167F2FB9A83B8
+ FB2FFBCB968F1D0626AA6DB5B7EB325B676DC95BE0A48D699D6BAB8B4EA4A884
+ 04FB935A35D13672C8D0E8415650A6A1541C0771C47AFF00B2B36087718B6E55
+ DCEDE18EE7C695A88ECEB4791D81AB4719AD1BF87E7E741B087F23CFE5AFDB5F
+ 00BE3BEFDDD7BD7AEBAE9BBFFBBF6760B3FBD1F726FCDC389CFF005FED7A8C66
+ 66BB03D7D53458EEB0CFC34D5947E55A8CA431563DEB078D9AF128559676FB58
+ 4DBE59EE6E166694D42C48C30568013329FCCAF9F0C64A777BDE606937EB6B4B
+ 0B36B34B61467B8951BB924A92AB6D203C0603F01C738BE6A8CA7781CAED92DB
+ 1BA9C158727E81DAFBC58C8C68610343FF00A1602354E49D40922C05BDD922D9
+ 3C1BAA5F5DF15FF408F19FF9E8CF55927E6AFABDACFEEADBB01E83EAE6CF68F3
+ FA2C53EC35F974D98FC9778FF00C82C3B27A9749DD7B85BC9376A6F3D2AA77C6
+ 41E588C71F4CEA69106A8D583056601C80A74FB7A48F64FA98CB5EDDD7C14E10
+ 47FEFA1435FA8FCE9F957CFA4D6F3F357EEFB809B66DD4FAB9B26EA6FF009497
+ 245059FDA01AFA353F0F53A0CA7777F7B77091B1BAA3C876C6D5531B76B6F0D3
+ 1A8C9EF529219074C7EE090B11A42A95D17B9D402B6D16CBF476DFE3D754F164
+ FF00408FF862FF00978FF557E597A39F9A7F7C6E246D5B7EBFA582A3EAE6A01A
+ EE686BF459AE6A28294E26B874C756767D466F60C5BCB6CF5FE271EB93AA2F5B
+ B5F7C6E3DC3552570D9BB8D522871997EBBDB11C547282EC646AB6740A17436A
+ 255A9136B583713677370D268187891053C54E2CB33E7FDAD0FA8E9E4977E7BD
+ E5D5DCECACE3804CDDD14F2C84B7D34F4A23DBC54539352E48C0A1AD4015B7FF
+ 00E2E7BEFF00F16070FF00FBFDB0BEC93A18F9FE7D7FFFD0DA8D7FECB9FA37FE
+ D67D85FF00BE9F7F7BF75EE8ED60B1FDBEF86C1BE1F76F5A5350C993AC315365
+ 3AEB7556D5D2630CF963A0D752769D0415F918E10AA58D3D3C4E4B3694F48F62
+ 0B8936813DC09AD2E4B8419599002D45F23012057E6C47CFA036DD0F339B1DBC
+ DAEE3B7884C8D40F6D31654AC9F896ED43B018F8514E4E303A6FA8C777201D9A
+ 63DE3D5CD2253A1412F59EEE58EA1FFBA54AC16731F6EB3D347AFD24A791B4FA
+ BEBC7B7124D9EBB556CEEA95FF007F478FD43FF2EF9FCE9E9D26920E671FD68D
+ 3B9EDE5828AD6D6601BFC5D7D2F3B4797E2F5F974D5D95D59BC3B56864EB8ECA
+ ADE97DEBB1F786D3DD187DD5B673FD49BA6BB0F99C74D53B65A6C75663E5EDF3
+ 0D651543ADDB5952A516C0DCD9849766FA4B9A595D53C44FF478FD1FFE5DFA30
+ 960E6AFDE7B783BAEDFABC19B3F4936330E29F5B9AFAD4529C0D71ADCFCA4FF8
+ 4BD7C79ED1C4E737FF004B769E27E36EE139CAF85B6FE2B6AEE5CDF53C54F0EE
+ EA9C5355C945BAFB1F3DB8B08131C048C94D5C2951D02AC6ABA9D935FBECB009
+ 5C24B0C690EB2EF2A15148C39AFE9A5071CEAF9D3CBAB5B5FEF763612EE3BD6E
+ 9626CA39DC391149085413B47ACC8D712001568D42A06285BF17597F957F5EEF
+ 0FE4C9D77F2236A77477AF43EEAD9FBF3B0B0FBA36F643050EEE10474F80C3D7
+ 60EAB312546E29B69BD0D4E7697ED09A514954B17DB7F9F70C2D8E3CD9F782E5
+ 6D8C358EDF1B5C5D6A3A082496341511C0A86592B41420AFFA53D6357B89F7B0
+ E55E57DCFC0D8268AE6565D198A592498A1623E9E189C4AE06A6E284B6080071
+ 13BB13FE146DF13F6AE5E9E183B0D737538396A22A46DB5806CA5353BBC2D453
+ 0122515624DFB0C57D6CF6FAFD79F6075F793DD2BE321DAF936F3E9A400EA75B
+ 684115A8A099BC41F9A8EA35FF008203DEBDDE6B59F64F6CB72FA68C5637956C
+ ED968CBA70B7120972BFC69F3E3D70D97FF0A33F89FBF65183C97628C34590A8
+ 4046E2DBFF00C221699EAD2A45EA5B1F48503D42836D607E3E9EF69EF37BA5B6
+ 4C27DC7936F3C1519645B699400299585B59C7A29EBD37DE03DEBB04963DFF00
+ DB3DCBE80F733C4B6770A287513A6DE43371CF6A9EAD67A97E7561BB8AB62CF6
+ D4EC9EAB8F6EE568282963CA536CFCE6EAF0BC13D5CB1CB58F8FECEC378A9C8A
+ E6B94818A9173C7D242E4DFBC2F256F68961BD5A4F15DABF71593C3D0580C490
+ 49034A9C066A7EC1D0E791FEF57B4F34EE8F0DE6E36763295447125ACE648882
+ C478D0B5CC52C7F19A9D04FF00440CF46A3114BDBF5588EB1A9877BF54CA9539
+ 3774929BADB76CD4CA1B68EEB732D2CBFE9741AA460348D5A0598B5EEA01C904
+ BBD82E46E1716D05C496CF1065659E22194C91D0822022878D413D6476DFFD61
+ B9B0E55B8B7DE36D782492AA56DA565CDBCE6A185E77822A07C3C6B5C50FB792
+ F6CE2768F69E4F31BF7A8683198DC365AB2A6B6B3AEF7550D1C58FA6DA94F3D4
+ 54E4EB2A7B7C418E8E10AFADC6A4489439E6E05ADA5D945C6DA7E92E8770A933
+ 478EF3FF002EF9F5CD3D3E7D29DCADF9A9B6EE6456DCB6F23C371416B3D58780
+ BFF2F87493C301BC8F1341A627F3A7FE7E5BCFB1C6F1F87DF0FF00B1B6DE6B62
+ 574557B63B3FBD7626D5CE6D8ABDDB1CD20A7C96CDEBCAEAADF3B9E49B6E5585
+ F155E4A24864AB178E9DBC4CCEE4F71258B2816B6F321AE7548AE0FD948929FB
+ 4F42DB18377495DF71BCB69574D17C3824888CE6BAAE260780F21F6F4237F22E
+ FE4ABD81B1075D7CFEF91B8ADB38ADCEB9FA7AEE84EA4EC1DA398CF361B8AB95
+ 3B677662E9B74ED796877351BD2BFF0001A0A9F28A790FDECAA932D298CC369B
+ 2B5B89EE22BD8E4A88B50D2EAA73A695AC6F50750F4A7CFA4BB9CFBA4B15AB6C
+ D776CB59CAB9962790514B06D3A268A8415232483C31E7B6ED35777065ABFB22
+ 1FEF475842F16D6A39D3575C6ED6152AB8FCBA78E60BDB2A699448E06A4F21D2
+ DF4B8173CB9B2DA2CE0DA64F02E981988FED6314CA9FF7C67F3A74199A3E662D
+ CC44EE7B7D7E996BFE2B36468931FEE676FDBDDC6B4C50AEA7C6F747F16DA81F
+ 7A7561D54B94F332F586EED514E28298A8814F6FE996263AC3172AC06922E6E3
+ D92AC9B2F83774B2BAE2BFE8D1F0A9E3FE2F8F2F5E973C1CD5F57B4EADD36EA9
+ 57CFD2CD83A0701F59DC0E78D298343C0365063BBA7FBBD9068378F5512377E7
+ D4473759EF1F1B4037D5724F2B4B1F6E7916A1A3D722A052824B2162B76F6F49
+ 26CBF53186B3BAFEC532268F8F842829F4FC38027F3A79749A0839AFF77CE63D
+ CF6E3FE392E0DACFC3EA9AA6A2F38F1205295A296A77753451F6E53EEBDC4F2E
+ F9EAD842ED6DA87CF3F59EE94472D93DF1A63743DC0AB1AA69BEA0CCCFAC8B0D
+ 20B501DAE4B4B554DBEE98F8D2604C84FC317FCBBFFC57AE70A120E681BC6E3F
+ EED76FD5F4B067E926A1EFB9A0A7D6E299CD4D6BC053BA3D266378D265F6049B
+ C777EC2CBD28C8D47DCD16D3D8FBA30B2C75CDB377169969B2B94DF5B9229A8A
+ 362CBE37A5591C303A94A9565276F8A4877116761708DA450C92C6D8F1138AAC
+ 6841F986207A1EAC837B4BBE5D6DCEFACE48BC56AAC304B190DF4D37077B892A
+ A32285013506A294208EDDCAD03D56FF00AB5A853045DFB85964215F5A23F7AE
+ 14AB345A7CB66BF1C7B216B1BB59520684891B870A1A0A9CD69C3E7D0CB5AE4D
+ 715EBFFFD1DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8EC60313DBF361F
+ 0CF89DFDD75418F391AE928E96BFA9F71E56B5287CF9531D1D657C1DC98A827A
+ 858480D3C74D08665B8894358082E65DA04F3896C2E1A4D22A44E8A2B45C81F4
+ EC40AF9127ED3D01B6DB6E657B1B036DBCD9243E23150D6723B69AC9DACC2F50
+ 134E2CAAB539A018E9B66C477313D943FD21759A930C62461D3FB9DB47FBF529
+ 06A855BBBC062179B3920B7F87B7566D9FFDD5FF00BAFB9E38FF00184FF7E1E3
+ FE2DFE0E93C96DCCC7FAD03F7CD883A46AFF001397FE51D7E1FF001EC63D7567
+ E58E9F6AF11DD3FDE6C16AEC1EB0D7FC1F71016E9EDD5E33FE51B7B5137EF02E
+ A411C006D626F7E3DA749766FA4B8A6DF754D69FF1213D1FFE5DBA309ADB9A7F
+ 79D8577AB0D7E0CDFF0010E5A7186B5FF1EAD78533EB5AE294A5F3D3E7B663A6
+ F66F61EDACE6E9DBF98C56C8CEEE58AAA5DB1B7ABB6B26E1CFFF0019C8D57F0D
+ 9E9AB7776EF92A693175926842B346AF2216642555BDE08FBFFEF149CC1CD2FE
+ DF7236B58A275824264127893A2A890B1548E91404692BF8A4539A15039A3F78
+ 2F7FB99F7FE64BCF66B94B7086668B70960768A368D659C4ACD2B483C694982D
+ 98D000CBAE4146A9D07A209F15FF0093476E7F301ABA4F921F3FFB2EBF01B7B2
+ D4986DDBB07E29C78FDC5263A9F6AEE13919F0159DAD5D80DEBB23378EC957D2
+ D02D41C451D4453C31488B513C737969D263F6B3D8FD8F9476CB2DE7996CA6B9
+ DDEE96ACE5C24AC46926AED1C8553BBB6340B4F5CD3AC8DF65FEEDFB7F2A58A5
+ F5CCD149CDB2411493DCDC42D34B2789AC85AACD0189574922342000D4C64757
+ F1D4FF00053ABBE3EA75DE0FA73ABFE24EC0A7816B97EEF6F7C5A34996C84B1E
+ DE9BFCAB319C9BB7EAF3D93A96B16D73D5CD26A3CB9FCE41DAD9F2B5B417E2DB
+ 62951469E134751DE381FA6AFE67AC878762DDACA7D812D6F36C4AEBC8B19013
+ FA472FFE3C493F98A1EA1FC8CF843D6BDCFD77BA20EE0EAFF895D8F03D73B2D4
+ E6FE2D68CFD1A4D99829E518DDCB4FDBA3398E9911DC09E9EA2294A9FA83CFB5
+ 16DB6F2A6EB7F6D6B77B1CA51D686B3467F0120FFB8C083C381C75BDDB64DE27
+ DB2F1AE6FB6C93F54E7E81C30AC805037D69A0E39E34EB5F1F913FCA13B8BE0D
+ D76E8F929FCBFB7EE432FB5768D345BB7B03E29FD96E596826DAA25C84B99ABE
+ ADC867B78EF4CE646BF154942F3FF0AAC9A49E7895C53CEF2F8E9DA0AF78BEEF
+ DCBFCC3B54BBD72CC335BEF502B9472CAD282A0376BAC71EA53E71B86AD307C8
+ E3BFBC5F770DBB9CEC371DC6CDE2879AED61F120B8B789A2952BAFB6AD2CCD2A
+ 1D03546E48614E34A746E7A2BF9AEAED3F8E31F7254D4D464F646C7C2E677E64
+ F0549B3E6DF9B8A8EAA836C6669AAF1385C547BE7612C34F533644CB33BD6324
+ 0B19915082E1A04F617DE49397B9864F6EB9E16478A77104656411F87397568D
+ 94BA49FA53E9D3A69DAEC287E2AE3B7DDD7DFAE66D8B9CB68F6879BB738206FA
+ F3146F346D224771247247118C09A1221BA67029AC84948A7E3AEB63F34BF9BD
+ 7F306FE6C9B9EBFE3EF51E0331B6FAC373D7934DD35D3584CCC59ADE74705345
+ 48955D93988B3595AAABC62C310927A692AA3C440C49935850E337CA8BB9A28A
+ C6DA4A70552C1D8924F1215479D3E11D752A149AC6DAEAE371BB899F2EECA863
+ 401540345324840016A6AEC6B5F90EAF4FF94E7FC27A60F8E99DD9DF21BE54EE
+ BEABDD7DDF474EB98DB1D439ED8B98DF9B0FAD32893524D4194CA6528F7F6D0C
+ 6EE6DE38F37B218AA71D4B21063692450FED6C160B14523DE6DD3BE45344A894
+ 19E20C5213F6E3A66F8EED24D12EDBB85B44BA4D44903CB53514A15B9869F651
+ BEDEB6539703DC726CDA309D81D6A129F7666A6555E9FDCBA9BC7B8F3E26407F
+ D35948A231B369214B2802F7E7D9E59DCECE9BA106C2E7BA151FEE427FBED29F
+ F11B8D69D05AC6D7998D8DBE9DE6C828BB9BFE21C9527C59AB53F5BC0E694150
+ 282A724A0A9E3EDBC764B7ECE37CF5DDDB6C431496EA8DC6E02BE37306311AFF
+ 00A658C963228B962547F4F622B98F6ABAB6DBA216571FDB547EBA7F12D7FE23
+ FA7A53EDE9A9E0E630FBFF00FBB7B207E996BFE2921C689380FADE3F6923863A
+ 51D7647BD67CBEDC90F6275D42561C8E88A9FA9770A4573470DC92DDC5248000
+ 0D81663CFD6DF5490D872E25BDCAFEEBB86CAD499D49E3FF003CE07F2E974B1F
+ 329BADB49DE2CAA03D2969253E11C7FC77A7DDA3FE9A72BB6B291FFA42EB3865
+ A6DD59A691DFA7B72CF24892EF4AF924E13BB29A01E4915D059414520F2DF528
+ DD60D96D2F6065DBEE4C6D0AD3FC61314897FE5DC9E143C727A62DA0E677DBEE
+ 026F562A3EAA5FF887213FEE4B13FF001340A1351C2A079939E9BEB76B77E653
+ 7B6E491F7875E315DBBB6963BF586723823A6FE27BC56068617EE9D619B4B17B
+ B1BF1F9BDD7DB6E1CB16BB6D9A0B6B8A991EBFAC2A4E98AB53F4DFB3A796D799
+ 9F77BFFF0076D65E27D34153F492529AEE2941F5B5AD6B5C9F2C0A1AE67DB9BB
+ 7095FB23FBD5BF3686E402BEA50D1EDCEBFCB6DAAD6AFF00EE8E7F44F2D6D5F6
+ 3EEBA3829574BEB8453F909652AE0290DE86F92EFEB8DAED92C5169E2F2871A7
+ C44E00431927D0D69EA3D2C2DF7986EF603B86E76D341E2B623B7789EBF4D350
+ 963752AD3D404E27040192E78191D2BF7CAAB10B2F77625241FEA90775E16500
+ FF00ACF183FEC3DB6555B41232323F653FC04F42AF3EBFFFD2DA8D7FECB9FA37
+ FED67D85FF00BE9F7F7BF75EE8EB60B66EF7ACC3E12A283B877562209F275B39
+ C7C1B5FAE2AE9A9A89A7CB4871F452D7ED19EB6208BA5166965A8934A9D5A8B1
+ 204171796493DC2C9B444EC14675CC09345C9A4807CE8001E94A7404DBB6BDDE
+ 5B1B0920E67B8891A463A4456AC156B21D2A5A12C3D033339A56A0D70DF3ECAD
+ F5FF00192FC7DCFBBD5E3823F1349B57AC2552FF00DD3A43AAA93FB931FDCA79
+ 39D20C5E8F4DFF00B5EDD5BCB1FF007555D9E2A13FC737FBF0F0FD4C7F3CFECE
+ 93C9B56ED5E67D3CD375A954718AD486FF001753DC3C015F4A295C62B5CF4F75
+ 7B237C2EE5C0AB7756F223F836E2323B6D8EAED7A927DBB6647FEE305890DD8B
+ 2956D5E9E469F53097B646D6E69B343FDA27E39BD1FF00E19D184DB46EE373B0
+ 53CD7755F066CF85695E30F0FF0017A007CEA09C0A119AE9FDD7BB06ABE57F7F
+ FC79DBDBC6BA5A9C0EE0ED6FEF56EA966868EB62C84982FBFDDF51055D257C13
+ E3AAD327558AF13C72C5244E25219181D27927F771B6B7DF3DFBDA6CB7902679
+ EEA595839347F0D25BA75AD6BDE528686A41A56B9EB853F76187F7E7DE2F6EDB
+ 777BB2D7F797B23976A3357F52E6523582A4B9535A820D4541E076BAD89B437A
+ 1DE1BB28E1EE2DDD48F26036F3432C7B6BAD1C8923973AAA2559365324A91F93
+ 52A8096008B9BF1D91DF6E6CBF77584A76784812B8A6B9B810BC3F53E5F3F2C7
+ 5DCEB5DAB756DCF728D39A2E95FC1873E15A9F39695060A103CA943C6A78516B
+ 51B277D8C9EC013774EEF96475C889E44DA9D5F0032FF7726264A5886C991691
+ 1A504E8265B21D37FED7B0F25ED8F83B8E9D9A103B69DF31FC638FEA67F9673F
+ 2EA8FB4EEFF53CBDAB9A6E4B307C886D053F44FC23C0341F23AB18AD73D42DDD
+ B137E3ECCDCAB3774EEDA8F2564CB4F19DA7D61144907F18A748E19D5365EBA8
+ 941562D2868CB335F48B58BFB76E1629B95930D9A214A13FA937F0F97EA607CB
+ 3F6F5EDC369DE06D97ACFCD572C3C5C0F06D40A78A06690549E24905413F8470
+ E91982D9FBC7FBE455BB7B760A77A0C3C250EDAEB4790BD556E6E125E4976549
+ 1BC623202A18FD2496B9B8004BB85DD9B6D7253688B5558FC7379043FEFCAFF3
+ F974A22DAF743B94EBFD67B903C18F3E15AD72D2F998294F41A6B524D4F01A9D
+ F7774B50FC76EDAF937D5B452FDF6C4ABDCE3214D4FF006F478FA36A0EC4DB98
+ CDD191C6D3D063A1871D414B4E772CB4EB0431AC50A20455005BDF173EF0B141
+ B4FBEBBB5A6CE042F05E248AA849D1A825C22D78F66AA0A9A8038F5C27FBCAC2
+ DB1FDE0A5B0DAAF08DCAD67B7935AD14EA648AEA3345A0050BE00E1420757F9F
+ 1DBF97FF00477C3BEBFDFBB4BA1A69BAEB1670B5D1D56568367F5FE4F74E70C5
+ B7E19A25DD3BAF29B56BB7167C3D5BBB9F2542A00C15556DABDF6A2DDECAD4ED
+ EB61B1C1E2975A92F2D4F79A9AF88334A71AFAFCBAEE66EB61BBC9B7F30349CC
+ D7055627A2F856F4A7820E93FA553524E415C1A71EE2799F60D73656275EF5DF
+ 11D01A4A80D4A767F5DBD479BCF4C525190FEE4FA6248C9531F8096241D434D8
+ 968DCAE05BB03CBB6E66A8CF8B2D2943F87C5E3F3D5F97468769DCBEA140E6AB
+ AF0F49C7836B5AD453BBC0E14E234E4D0D452872E0F62EF1ABD9B8F8683BB376
+ B44DB8771C218ED7EB39E39218B3BB8CB46A1B6609A09E58D42993531537212C
+ 4282F9EFEDA2DD5E4B8D8E212688C91AE61C553FE19423FC3EBE7D16586D3BBB
+ 58DB18F9A6E17FC6A5047836A4504B3569FA350C40E249009274D28005B36CFD
+ DE6BF7B23F6D6EAB0C2E34866DB9D70DC350E5C113AFF73D44F10600E9F41B5C
+ 5F9B8171BCB5105932ED51575B7E39BD5787EA71FDBF674C5C6D9B986DFBFE44
+ 973516EBFE856D9EC930DFA191F66934A8AF9814B78F5EEF289F69CBFE98375C
+ 9E14AF8E4FF7EAF5844D67A08155A17876547E04122F2A4480836E2D7217D977
+ 4B4692F50ED3151803FDA4E721BCEB2671E78E8C27DA7775B9DAF5734DCB02AF
+ FE856B50748E14831E75043796453294D8FB4B7C1A3C9C74FDC9BAE91A5CFE76
+ DFEFD6EB5A88D920DEF525E368A5D9DCCB2D387FDCD434C87585B0D1ECCF7CB9
+ B122166D9E26D289F8E61C62FF009A9E4698F4C57CFA4B6DB5EEE6CA7F0F99EE
+ 14FD4C9FE836A4505C3038F06B523CEB40D9D34EDEA767305BFDB7B6E6A01DC9
+ BC560836EED84046DEEB659263F7FBC09FB868B65469342AC7D29A45B9B9371A
+ 69B71DB576CB39CECB0991A490FC536311F0FD4C1F53D3E36CDD86EDB827F59E
+ EB50B6833E15AD4F7DC60D20A5079500393527147AC2ED1A9DBD3EC0CCEE3ECB
+ CBEF4924ABAB8A7C4E430DB2F1D466B25D9BB8996A20A6C160683234F3432A69
+ 556A8789439B8365609AEAFE6BB9371B5B3DAD6DE3005183484D04A9C5998A90
+ 47A004FF002E9D4B0BDB5BBE5E9AEF7C96E54CAC0AB47022D4DB4C75011C6AC2
+ 845002E450E6B83D164C1FFC5C77AFFE271C57FEFE8C47B73CBA1579F5FFD3DA
+ 8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8EC607636EAADC461AA69BB97B1
+ 31104D91AFA9871D8FC4F52CB4949134F9575C7C52653AC3255F2D1468DA0196
+ 779C8504CA4DC9105CDF5AA4F3AB6CF6EEC14024B4F53F0E7B66515FB001F2E8
+ 0DB6ED3B84B6361247CCF7D1219188555B42AB990E905ED598AD31DCC5BCCB57
+ A6C9B616ED27B287FA6CECA5B431072B88E9D0CDFEFD3A4B952DD50CB1B7F4E0
+ 807F07DBAB7F69FEEAFF00DD2DB71FE2B8C7EA1FF87F49A4DA3702799C7F5A6F
+ B0A2BD9679FF00175FF974C7A63FC3D227736DCDE559BB71703F74F634904141
+ B8A2835E23A952EB1D4E0559E48E1EB0863792465BDEC348E2DEC4FB6358C1B7
+ CAE365B6F119A327BA7F30F8A9989A0FE7D2B9F6BDC7F78D9A9E67BD27C29725
+ 2CFD62F216A067ECEB550F8E5B9ABBA5BE506FCE87DC9595381EC9E84ED6CA53
+ 631CAE3D32590C2D264A438FCA63532747598F963CEEDDA88EA21692096268EA
+ 012845C7BE3A6EDB16E5ECA7BDBB47312DA6A86CB720C95A85914310632C0821
+ 6E2DD8806A38E0D48EB891CD5C99BC7B11EFD6C9CCB0A48B05A6EA0C72285153
+ 139564AB2B20F1E125575295AE286A075B47F5962B2FB9771CD9AC2777F60BD0
+ 66705B724A7AE8313D4BE509549B8156368A7EB19A28AA69E6B2BAB292AEA411
+ 71EFAF10F32EC9CC9CA5B76F7B56DF6B36DF3A9910EA9F8761208135430CAB29
+ CA9041EBB37CAD731F34C637BD939C2F24DBEEAD60749152CEB46F17B4836A42
+ B21A86522AAD5078743054EC1DDC994D82A7BBBB32536C92AC92623A73C971B7
+ A7F5C9E3EA78A391DADCD9556E7803E80A12FED0C3B89FDC96C3E1FC5714F8C7
+ FC3FA377DA371173CBC3FAD37C6A1E954B3A8FD13E96801FCC7ECEB86E3D81BB
+ 936BE699BBC3B36556C96B092623A6878FFDCE538F1C6D1F53211082A480DA98
+ 5EDA8F1EF76D7F686EE01FB92D81D1FC571FC07FE1FD6B70D9F715DAEF49E6AB
+ F2BE2F02967FEFD1E62D01A79D3FC9D049B8F0797D9794DCB9CCB775F605163F
+ 018CA1A8A895B13D4DEA4A5C8E75A25863FF00465A9AA6429A2355275B30005E
+ DECEB79E68D8F64E599F7BDDEC2DA2DBA28DDDD8B4FF00C09803C6EE66345551
+ 92D40327A2FDFAE63E56B7DEB7DDE79BEF21DBAD2D55DD8A59F00D2D1547D2E5
+ C9C2819666000E1D6AF3DFF9FC9F7AFCA8EB7F8FDB7F2555B87B2BBE3B3F0941
+ 97AB93F859C9E3B6DC534232B9BCB8C5D0E3F170C5B6F686366AAA978E9A1816
+ 2A56611AAF1EF8F9B5EC5B97BC9EF36F5CC42CB4C379B8B3B01A8AA076016252
+ 4962208405AEA271C6B5EB8BDC99C8BBD7BF1EFBEE9BEC8923C371B8FEA48C14
+ D3510A16AAAA87E9EDD4062AA170700823ADA7B75F5D18B0DBF8277A765C8CD4
+ 35A742E2BA965805F6ED38B2CB1F55C6B14371CFA9D8124DED603B1D63BADE34
+ BB76AE5EB5A02325A707E33E5E3E4FE43AED66E7B4DE26DDCC27FACF7AD489F0
+ 52D33FA20D316A283CB19F3AF4A0CDF58E66827A69A8FBE7B06AA4686A13ECD7
+ 15D41244636929DBCEE62EB3690489A42A9D414827D24F21BB2DE45C09126E5D
+ B74414CEAB819CE333746D26CF7CB3A11CD37BF09C68B3A711FF002EBC7E75FC
+ BA6CEB4D87BC66C2C063EE7EC9A4806EBCAE930E27A89C493C799DC4D306FBAE
+ ACA81A648EC1C2E92030B11616AF31DFD92DC00767B6693C11C5A7E0563A709C
+ 79D69D15EDDB46E2F696FA799EF907D5CBC16CF88925AF1B43C7CC7CF14A0E91
+ B96D87BAA0CA761D30EDDEC36783114F19D38AEA9D4C23A3CD200A17AC88520A
+ DEE01F6776FB85ABDB6D529DAADC2B357E29FCCA7FC3BA6AE36ABE5937F0798E
+ F4D2DD6BDB699EC93FE5DB1F97432663AF3796423DB8BFE9A7B2A79A7C7D6CA9
+ 0C986E9D8C3CBF614B328902755C4DAC32716641726E2DEC1B69B9595B5C5C13
+ B3DB0457009D57071523FDFE7A309B67DC8DCED75E69BE24ABD3B2CFF847A5A7
+ 48BDB1D4FBFE1C7D4563771760D0C51EE9DC21FC58FEA1927B2EF0C84522AEBE
+ AEAB899657041047009D241B1073B96FDB54BFA2BB4C0CE614A66E29FD9A91FE
+ 8E0E3FD55E92DB6CDB8B58CE47335EAAFD54BC16D2B8B96AF1B53C48CFDB414C
+ 514F5BD43B9723BC770CABDD9D8B0D51DB1B55A599F09D4922CA0E43794683C7
+ 1F59C0B1B20887A85EF7E41B7B2DB5E6182D6C2D636D8EDDA2F1A4A0D538A622
+ F3F18D78F0E94A6CDB836EFB829E67BDD42D6035D1675357B9C62D40C538D2B9
+ CD7149586EA9C96DFCE6C1ABCE7666F1DEF00CA54C1FC333B8CD834146F29D9F
+ B8A44AB9E4DB1B37035F25447E222C26485B59D519E2DEB9E631756FB8C76BB5
+ 436EDA0772B4AC7FB44C0D72328FD84FA1E9C4DB2EAD6F397A49F7BB9B943330
+ D322DB81FEE34C6A4C5046C48A7AD326A385021DBF8CA0FE35BEEA7ED63337FB
+ 30187018DC803FD3A6153D3193E35F4F1C0F617FADBA31087C73E18FF571E3FC
+ FA18E85D55A66BD7FFD4DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8EAE0
+ BAC29F2788C2D69DF3DA340D5392ADAC9A9F17BEF2B4744CAD519599A8529175
+ C34D8FD440090889942285602E0882E37368E79D3E86D580500168949E0A2B5E
+ 24FDB5FB3A026DDCBE97163612FEF8DC232F231212E1D569590E90B90ABFE974
+ 90060815AB74FD574C4F6584DF9DAD1B2411885E3EC0CD1785BFBA74843A791A
+ 4491C39D5FBA245D5C5B4FA7DBABBA37FBABAD8DA904E7F497FDF87F67E54FDB
+ 9E9349CBD1D799E9BBEE20A28A1172FF00F28EA6A6B5073FC408F2A531D0759C
+ EAC829378D052BEF4ECDF4516E3D5AB7DE649947DCE09A299D8B990318DAE34B
+ 2A9D66E0FA6C30B2DD8CBB69956CADB8C7FE84BE8F51FB7FC1D2A9B97E35DCAC
+ D3F7ADFD3C297FE243D4E62F3AD7F6501F31814A95FE65BFCAEAA3BE769633E5
+ 67C5DDE799C3FCD2EB1ACC8515052EE7DC1F738DEE7DB749BBF25152EC1DC75F
+ 5890FF000FCB63854B2E1F252BF8954FDBD4931B2CB0411EEDFB5969EE4C5716
+ 571B644B70215D2E8A12A1630C0EA070E08ED3820E2A0529147B93EC9F2CFB89
+ CA37F65B9F8D35EBCD228677D4F5FA87542AE6855909055AB5A8A9353ABAAECF
+ 89FF00CE1303B3F373F46FCA9A5DF3F1B3BA36AD74785DCFB7B72CD9ED933C59
+ 8A22F18792D35090C4EA92267D48E8C1D4B2B02713796F7FF74BD89BBBADBE5B
+ 19370E5B04EAA45E36381F1AD88D6AF4A0F160CB7A00075869B34FEF07DDF6E6
+ EB6CBBB4BFDC794D0E67B4F10CAAAB5A7D4DAC6449AD46049086D44D7401C6F7
+ 7637CB1F8F5BDE9F6A65A0EEDDE75B16323A83535345DC75354D92FB9C53D12C
+ E51A6A45A79BCCE24611945B9207A7D3EE68DABEF57C917115C43B8DBD8DBDDB
+ 8154D28A57BAB94942B01E54624FCEB9EA66D97EF45ED6DEBED8BBC733DE5B5E
+ C20F888F7AC921AA15AF872F84D19AE48C0F2E18EBBEC9F95FF1DB6BEDBCBFDE
+ 7786F8A759AAA4AC5ACCBF714B14743025645571D3454F04AEB2C4890681E42D
+ 27A892EC6C7DFB71FBD6724D9BAFEECB7B19EE8250205466634A57447AD8E4F0
+ 523D31D6F987EF43ED5C3697367B5734DEDDDFBB12A82F4C8F4D4080B1421D9F
+ 853CDAA72C4D3AA25F96BFCE2303BD3707FA12F8A743BDFE467736F2AF186DB7
+ B676A4FB8B7AB4996999E283C6B254E49DBEDBEE19DDC10B1C659D995412215E
+ 62DF7DD2F7D2E6D36D8ACE5B0E5CAF6D62F04907CE1B603533918F126155F423
+ A86B79B8F77FEF05770EDD65677FB6F294AC3F5AEBC41232F97D3DAC85A42D42
+ C049385D07F0904D2C97F95AFF002A7C9748C3B63E56FCA1DE19BCCFCC0EE5AC
+ C945918B6C6E1FB2C3F506CEC9EDBDCD5326C0DBF90A357972198AD92921397A
+ F86458DDA35A682F4EB23D4E53FB61EDBEDDED86DB77656DB744D7F1C00333A8
+ 90A92F196353505DABDCD9AE687CCE657B5DECA72D7B7BB0F2C59ED4D3433B4A
+ C19E3728E418272C59C77333328676D5938A915ADB9EEBE83C6FF04EC39E97B0
+ 7B4E009415F2C3149BDB27511D3DB6DD3378A0BBC64C7AC16B4DE63A98F3A6CA
+ 26CB1E6DB8136D892EDB68C7500488D413DE727073F653F6E7A93B72E5D8E3DB
+ B989C6EDB81D11B900CEC78420D3E62BFC5A8E69C2802C63F8F9875C8432CFD8
+ 1DB32C7F6B521A923DF995868DDFCF4CCB2B8265ABF2C69755D332AE9637526C
+ 550BF37DD344CB1EDB66AD519F0949E078701FB41FF39C1E598BEA17FDDC6E3A
+ 341C7D43D2B55CFF00154701DD4CE4134220EDDEA4A14C0E1E1837D76B52A26E
+ CCF29FB6EC0CC47E4861DC3B85FC1229D51F8E5550AECAA92B28BEBD44B162EF
+ 7895EE67924B3B56630A718978944FF0790E03D298E8A2C39751ECAD48DE7715
+ 3F572834B87150259B14C815A0A900379EAA924F75BD55451D576288F7C769A1
+ 1B72824465DFF9AD4923633360C8A599BC8DA806B4BE45D43F4D8906A9BAC853
+ 6C2D676C7F548FEC9786A4FD9F953AADC72F46B27315377DC7B6D948FF001893
+ 8E8978FAFD8D51F2A5417A9FA9E9572BB597FBFBDB05453E4D2453D879B2263F
+ 610699253AF5AC885491E328B7637045804EBBB3186ECFD05A56ABFE84B8C9FF
+ 00566BD2D939723177B58FDF3B950ABD7FC65F3DA335E23FDA900F9838A36507
+ 54D349B7F20EBBFF00B66171BB37010F0F61660308E2DF35E3C0164F245E2922
+ 4F1B128642849D5AFD7EDE93756173183616847829C625F38867D7ECF2F9531D
+ 27B7E5C46B09D977ADC9585DCBC2E1F80B9714A1A8C8C134D5E75D5DDD3841D5
+ 548776EE041BEBB542AED7DAAC9A7B0B3B7477C9EF60CEAE652ECC42AF0C5946
+ 91602EDA9B6DD5FE8ED8FD0DAFF6B27FA12FF0C5FEAFF50E9E8F97623BBEE09F
+ BDF71005AC06BF532572F73E75A9E0280D40F2193573C7EC3876CE6B6056AEED
+ DFF9E9864EAA9244DD3BB7219BA7A8326CDDC6CD553D14C23A215A5A2BEB8E38
+ F49660A00247B6A4BF3730EE29F496F1AE807B230A47EAA601E34FB49E9E8F67
+ 5B0BDE5D9FF79DECCE66607C699A406B6D39D454D143638AAAD334001A7404ED
+ FF00F8B9EFBFFC581C3FFEFF006C2FB24E867E7F9F5FFFD5DA8D7FECB9FA37FE
+ D67D85FF00BE9F7F7BF75EE8EBE07AAB0D94C3E16B66DC9D9B4F24D91AEAF30E
+ 37B477F62E8E095E7CAC9A21A2A0CFD3D347440C85569F4F802D868F4AD84173
+ BA4D14F3A0B6B620281986224E17892A4D7E7C7E7C7A02EDDCBB6B73636133DF
+ 5FAB348CD44BBB84506B21C2AC8001E5A69A69E5C3A6D9FA970AE7B294EE6ED2
+ 20C11290BDAFD868D28FEE9D2291AA3DC4922311C5E32AD7E41BF3EDD4DD661F
+ BAFF00C5AD78FF00BE22C7EA1FE87F87A4D272E5A93CCE0DFEE14551FF0012EE
+ 73FE2EBC69254F5D6E2E89C26437260A4A7DD3D991D4AE1F3E8679FB3B7ECEAE
+ AB3EDF091CACD9E6F55870C433707FC7DAADBB99AE2D6D6E51ED2D8C5E226043
+ 10A61EB4EDFE58E8C26E5AB5FDE362A2FEFF00FB29726EEE09E3162A64FF0055
+ 3A4962BE3DE30E191EBF75F63789377CEC60A6ECEEC0D5295DFB28D4D2B67227
+ 58CFEB23D484716D3C7B35B8E6F7F18ADBD95BEB307130C38FD1F4D27ECF2E91
+ 47CB56C6C016BDBEA7D5914FAAB81FF1288AFF0069F9FA7CA98E807EFCFE565F
+ 0ABE5A6E1CF52FC87EAEABED0A8A1C36063C467B706EDDD0DBA307154CF9E2F0
+ 6177453E4E0CEE3A9D4C6A7C51D408DC81AD5B81EC23BDDCDBEF9B6DA45B96D3
+ 66E41701842AB26027E34D2C3F234F97553C99B35F6EDB825E1B9974430905E7
+ 95C8A996B9663E83AAD1CDFF00C261FF0097E2E6B6E2ED1ECDF991D6B419A92B
+ 8D462364F74ED78E868D61C64B5D1C548DB9FABB73641156640BFBB3C8C578BD
+ F9F71C5CFB67CA7B82DDCD7363A99294A88DB8B533AD18F0F9F418DC7DA4E4AD
+ C6E76A17DB62CBF51AB56B485C8A465850BC4C78FAD71D70A8FF0084C37F2FEC
+ 6E3AB32FB97B3FE64F64A52D624630FBEFBA36ACD8B9E21948E9744E36C7566D
+ 7C9159216B9295286E6E08F7BDB3DB3E52B5BB884363A548AF688D3F0D78A229
+ E3F3EB4BED1F25ECD673DE6DBB688A647A0D090A63585FC1129E1F3E3D58F748
+ FF002BEF883F127315747F19FA8AB3AD26ACDB98AA6CAE7B6D6E8DE0FB9F2E0E
+ 4332645CCEE7A8CC54E66B11FC69E879FC62C0050000255E586DAF65DB996DAC
+ 2CE37F11BB9A28D9C8D298D6E19C8AD715A7CBA165B7266D165B8DC2D97D547F
+ A319AA4F32D6AD256BA5C0FC23CBA1C701D1E638FAD65399ECA8224CE5F53F69
+ EF7591123DB7B96462186E17A82CC8845DEF7BFF005B1029BEE648197778C25B
+ 3318BCA08FCDD07F0538F49ADB97A03072F1FACBE01A523FDCAB8C7E84E71FA9
+ 8E1D095B93A8B08BB7BB108DCDDA8C64C7641D95FB67B164595BFBB54C96556D
+ C67C484201A62D0B7B9B6A2490ADAEEF39B9DB3FC5AD70C3FD021C779FE87F87
+ A7B73E5BB54DB798DC5FEE24889CE6F2E483FA038832FE54141F9F4B17EA0C23
+ 57C551FDEAED7D4B4B5310D3DB7D8A29C2BCF4B2106986E214AD2929E9764322
+ A8214852C0A21BBCFE1B2FD2DA52A3FD021AF03E7A2BFCE9FCBA396E58B43708
+ FF00BC772AE86FF899754E2B8A78B4FCC8AF9034AF48EC0F51E125C2E295B73F
+ 6A284DD99F71E2ED9EC688868B706E1757768F71AB48AE7F523968DC1B1522C3
+ DAEB8DDA713CD4B6B5FEC53FD0213C513FA1FE0C8E89F6FE5AB37B3B526FF701
+ FE37370BCB91C259B389471F3AE0D4D475C6BFA9F0DF73D86BFDE6ED16076DD0
+ 73FE95BB0AEF7C666D0A02BB8414E3FD4693737BDEDEFD1EEB368DB4FD35AFF6
+ A7FD022FE24FE8755B9E5CB50FCC5FE3FB81A5B2FF00C4BB9CF64B83FA9C3A7A
+ 9FA8B08B95DB16DD1DAADA20C9A063DB3D86DA4350403D60EE2D1239D02CCE19
+ 87363726EC2EEF3986EBFC56D78AFF00A045EA7FA1FE0E96C9CB5682EB6BFF00
+ 761B8FC2FF00F132E71DA3FE1BFE1A9E9B283A8B09360321AB73F6A807766E07
+ D1176D76343CC5BE2BD94868771A4BA18A02CB7D0E09520A12BEDD93769D6E63
+ A5B5AFF629C6084F1887AA7ECF31F6F49ADF96AD1F6FB826FF0071A7D5CD8179
+ 72385CBE71283F339A1F30454753E0EA5C29DDDB817FBD1DA5FF001EBED5F58E
+ D5EC00CD7C9EF61A2E3700034FE0A80C2FF5FA59B6DDA6FA3B63F4B6BFDAC9FE
+ 8117F0C5FD1E9F8F96ED0EEFB8A7EF0DC3FDC580D7EAEE2A6AF73827C4E0298F
+ 4A9E9CE83AFB1BB5737B06AE8F39BF322F164EAE88536E6DFF00BC374D2AC6DB
+ 3771DE4929B70663211CD589E2004D206945DBD576376A4DC25BA87714782050
+ 501AA451A1FED13CD1463E431D3D1ECB6FB75EF2ECB15D5E39F19974CB713CCA
+ 07D34FE52BB64529A8D5B8E73D00FB7FFE2E7BEFFF0016070FFF00BFDB0BEC97
+ A1979FE7D7FFD6DA8D7FECB9FA37FED67D85FF00BE9F7F7BF75EE8E9E0BA67AE
+ B3188C36472182AC9AB2AB235D90A99A3DCBBAE944B53254656677962A3CE410
+ BC2F2C8498994C37B7A385B086E379DC619A78E39D4205007646683B785549AF
+ CF8FCFA026DBCAFB25D58D8CF35A3995E4666225996A6B21C85900A57F0D34F0
+ C60754F9FCEBFE69756FF2A5F869DADDF185D8347BBBB7B7C6F4DB3D3BD0FB5B
+ 3DB9F79FF77EA3B0B736CC9F26F9FDC31516756B5F6E6CCDB383C865278616A7
+ 35D514D0D17DC533D5AD4475977ADCBC2B10B70356963F027939FE8FD9D5AD39
+ 4F6292F77B47B36D1AD00FD59B00C295A7EA7CFAD2A7E2EEC8FF00851C7F35AD
+ 83BE7E5374F7CCEEF5DB9B471B97DC38DC4D2E2FE41F667406137A6530AB473E
+ 7F17D6FB1FA6B1F8CD95478FC4D455C1486AAB62C5638D487852A1E4A7AA1090
+ DC6E3223C9D93494A162B4216B5A56AC334A9A28269E591515C763B7C462856D
+ E20C54E904024814AE4827CC5493D5E57FC27FBB37F9C6663B426E88FE64BD07
+ DEBBDBE3A6631F5B93DB3DEDDDF26476B76875A6F6C365B1793A5C5E6339599F
+ C36F7EC0D97BAA38AAE9A45ADA6C8D55356CB0BAD4A51ACD115761BFBACCD1DA
+ 5EEA3A1AB550C07691C594814F4AFD9D156EBCB9B45DC48F359807C58FE1674F
+ F455A8A232D6B9AD78F9F56AD90FE795FC85303BBBBA31795F9654D4F94EB1C4
+ 4B0EECC154F5DFCB8C5E412BF68EE7A8D9F9CC3EDA932BD7D8DA1DD59E19FCFD
+ 3C51536227AAA89A11255A83494D3D44262DBF6E260B7559C6B0CC7E08F35D34
+ FC3F23D218F9336517D7D2BD9B7D3BC7185FD59AB55F1357092A3E219C7F2E84
+ CDD1FCD5FF009396CFF8BDD1DF353717C81A7C2742F63D7EF5C075F57E5717DF
+ 91EFCDF99FD9B4753B7B7661B6F75A55631BB133F26DBDC318A2AFC90A097154
+ D54C865AD0B224AD65DFF702978A6E175B52802478EED5E4B418FB07974D3F26
+ 6D1E3ED2459B148C36B3E2CC6B58F48A932127BBCC927CFD7A2F9D6FFCFB3F90
+ FF0077EE5A4EAADABF23723B5F756F4CBC50602BFB3B6BFC83D81B4AA3295398
+ A36A5C5D4EF6DD1434DB676BFDC443F69ABAAE8680152824577447B41BF6E2B3
+ C4F24CA230B4F823FE123345CE7CCE7D7AD5EF25ECED61751C566E6667A8FD69
+ 8E3583415930028C01403C874797E6B7F301FE54FF00CB9BB1B6BED1F997DC95
+ 1D3DB97B1B6643B8F656297687C99EC48F2D85C566F2B4592C879BAAB69EF9C4
+ E31E3ACA98D34D53D3D448B62AAC82E19FDFBB8B4091ADC2EA0C49EC8F810A06
+ 74FC8F4A979436417B34A6C9BC231201FAB352A1A4271E253815CD3A2978EFE7
+ 61FC8BCF79ECBF8D51FCAAC0C9BE31BBE65D995BB9BED7BD4F519DCC68F3FB6D
+ 318DDCB363C75E55E39F2F59105CC7F119302C0AC82B481A83CFCC1B8335E389
+ 86975C7E9C7FC4A7869C601E9141C93B48836857B36D71392FFAB3647852AFFB
+ F33DCCBFEA1D6BD5FF000AB6F97DF29BE1CFCDCE9BEB7F8B3F227B9FA2F616E6
+ F8E18BDCF9EDB1D79D93BB70D88CD676AF7B6EEC5CD97ADA75CAC8B355498DC7
+ C3016B81A221C5EE4963EE179732869673A940A528BE64FE1A67E7D1FDA6C7B5
+ 5AADCC315929899B21897E28A29572C40F9034AD4D2A4F5B14D07F3CCFE44D90
+ EFBC1F433FCABC157EFF00AECD45B066DDD4343DE83A55B78D657414269FFD2B
+ C78F8BAB67C4CF94802479E8AB24C188E50EB5E206760FC7BDEEA2DD54CC00C1
+ CA475E07CCAEAF3E1FB7A4AFCA3B0BDC78C6CDB811FDB4C054906BA449A6B8C1
+ A547004027A16339FCCC3F94375D7CA3C37C0CDFFDED59B67E55CBDCB81EB6A7
+ EAFC96C5F95D4C93EF4EC8CDC751D7F841D810EC93D6D351EE34DDD8D30553E6
+ 9B18C95281E50A0E95936FF7E649644B85D06351F046721541FC38E073D15D97
+ 26ECE6D60592D1F5ADC48C6934C3B7C490A834932284541C7A8C752BE67FF31D
+ FE549F043BA725F1FF00E4AF74BEC1EE6DEDB176A6E2DB7B0719B3BE50F66652
+ A313B8EA3746DDC24DF71D43B377D6331B95CB6571D2470D0CB514F9175F1CDE
+ 2F1CB048EF5BEFB7045AFD45DE954625888E33E6A73DBE80FAFF003EB52F266D
+ 464DDCC764D4922554FD597E20AE0D3F5319619C7F2EB5D8C7774F68D47F3F6A
+ 0EA06FE6D910EBC7F94F16017E06B45F331624C0498346FF00468725374DFF00
+ A155269BFCA4BB6E5FB0D5C1A8F271EC392EE57EB7123A6B2BAEBE26A5D34AFF
+ 000D7F2A69A57E5D099366DAFE992DCD9A787A694A1D5C3F8BE2AFCEB5F9F572
+ BB83F9F27F201D9392DDDB1376FCB8AAC66ECDB1BF776E2F3B411F4E7CE5A934
+ 194C4EF7C97DDD10C9623A9AA28AA63A5780C64C13C94F22AE952D19B13D3BFE
+ E0658E449D7C3F0D47C11F94614F15F5F3FCFA0EC5C95B38B596292CDC4A6791
+ 852698769999D72241F848047A76914A8E8EBFC1BF9CDFCAF3F98F6F8ED7C67C
+ 32EDB9FB96B7ADF68EC4ABDE743FDD5F923D74F83A7CD6577D458EA98DBB576B
+ EC58723F7AF4CEA7EC5A7923F18F269052EDB6FDB888208FEA07882473F047C0
+ 8403F0FC8FFA8F4EAF26ECC2FEEE6364DF4ED044ABFAB2FC4AD316FF0044A8C3
+ A67F670EAC731DD61B2B66E6F60D7EDFC4D550D6C793ABA0F354E77716564FB6
+ 7D9BB8CC91CBFC632D5FE7919A052649354848B96B927DD64DCEF6F20DC63B89
+ 414D00D02A2E7C44E1A5453EC18EB51EC3B5ED97BCBB3D9DBB2CDE332926495C
+ D0DB4F5AEB76A9A8193535F3AF403EDF923393DF967436F9018727D4BC0FF4ED
+ 85E4F3C0E7D9368714AA1CFCBA1954578F5FFFD7DA8D7FECB9FA37FED67D85FF
+ 00BE9F7F7BF75EE8E0E1BAEBA53258BC45566B0FB4EA323FC52BF2152D599155
+ 9A0C97DCE559EAC44D5E9F6B56B3CAC352AAB2EB205AE47B134FB96F714D3243
+ 34A23D000A0C1145C70C8A751EEDFB0F2ADC5958C975676ED3F88CC753643564
+ EEA6AED6A9E2284548F3EB522FF857C7C7A5DC1F07B64764F54E2E9EA305D37F
+ 2376DE73B0E93059096AA1A4DB1BABADEB367D2EE8C8D2254D4254AE37736471
+ D4493302D0257BD884327B2DDC6E2F66FDDAF7ACE4786EA2A29425C9A7014AD3
+ A3AD86D76AB3BDDEE2DB5225ACB1FC26A48F053E649A7550DF03FE52FC39EFAF
+ E45F2FC00DCDF343AFBE027C9EEABEC9DC597A9ED0DEE37361323B93AF331DD3
+ 8FEDFA7CAECEC9EDBC8E166DD191AD8F215184A8C7D2D6AE5123A1567A76A6F1
+ 3B207B8B986DAE61881657915B4D681A8A5726878638F46F26DF6D26E76DB834
+ 0A66489D351C91A8A1007C8E935A7E7E5D147FE457D97BBB23FCF4BE35754CBF
+ 27FB0FE43F4AD26F7F9138AC56E8DC7B83B1B19B4BB2B0983F8F1DD755B7377C
+ 9B0F7D65A6AFC3C75F59414F90A5A7AF8855D24CB1B3059505A914934712CA89
+ E14E57201AD2B822A38E0907D7A76F2DED6784C77112343AD4E40A61C107E441
+ C83E47A0A7F95BFC31EA1F9DDFCEEF73743F7BE3E2CC75137687C9BDE7BC3072
+ E6325838B3106D8C9EED6C252495F88A9A0AE34D06E5ADA2A99A25A9A759E181
+ E37764668E46184AF6D6F142CCB23E915001231534AD78814E18AF4ACB24619D
+ D8041EA683F6F571BFF0A3BC9FF2E1F81B3FC4AF869B67E146DAF905BC763FC7
+ 77CD6C6C96F4EE7EEDD9FD7BD41B0739BD77163F13478FC17556F7DB198DE3B8
+ 773EE4C1E5AA72124B9AA3745A5A66A9FBBF245E0DC9693072897324454E70A4
+ 9AE73A94FEDA7D9D27B578E58D2742A4B805A86B9A0F9E29E9D6BC3FCD93ACFB
+ 97ADB76F4041DE3B4BE06F536EBCF7541CAE1BA2FE0FE336C53A757ECA35B4AB
+ B757B8733B71F703EE0DD1B8CB4F2D04F59B9771D4494B04931A91E7BC89F6C3
+ 1959BC25B8D151DD292751F5504D40F5C2F118C74A9BED1F975699FF000A8D6A
+ 5A8AAFE55D928275ABAACBFC10DB393CA571AA7AD9EBF2756DB7E4AAACABA992
+ 599E5AAA863A9D8B5D89B9E4FB556F24B21D52925BC3402BE9DD4E93C30DBC1E
+ 22DBA800B1269FC478F55FDFCD8B64FF002BEDB5D0FF00CB8F3BFCBFB756D9CB
+ 765EEEE87C9E4BE516DEDBF98CFE733780DC6B8DEBE6C10ED2FE3397AEA4DB9D
+ 9126E6A8DCA951434C819E18C315828931BF71686278CB169D9F5004D69456A9
+ A85A01DB4A7ECF527A781246450D4FECF2E857FE7D757BA32580FE51597DF91C
+ A37F663F9507C6DC8EF8A9AC9A7A8CBE4B734C738B5D93DC32552A557F792B92
+ 3492BD641AE3AB2E9C8504DA395E677666240000FF004A2A053E54E1D2782182
+ 13388114069096A79B102A4FCFA9DFF0A3AF809F197F97A7C9EF8EBD55F17F6D
+ 7F7676C6E4F8AFB47746F041B8F706E439DDEF16F0DE786AFDCB5B51B8B359DA
+ 8A4CC64F1D414C9550D3CB0D26A8559208DDA46766CE3B98D596E656766A302C
+ 00C30E028076E31F6F1E946B8DF319040C60D723FCBD58EFFC29C3E2AD6EC483
+ E127F323EA096A319B824DB5B37ACFB3B398868A4AEC36FEDA7255EF2EA4DF35
+ 2636A99BF884CF4992A49EB6A9422BD2E361B92E8BED649673DAF80D32FE8DC4
+ 48C0FCF42EA15C648A1C7A1E8BF6F92168648A365D4B2CA08AF01E23D31D035F
+ CBAE8B35FCF03F9EB6F7F9B3D81B5A1DBBD49D370EDBEEAC96DC9E60D81C0CBD
+ 71B7309B37A436452BD4CB511D3D5D7EE2DBCDB89A125854FF000BAED4E65935
+ 37AD6092EEEACECA425E49641A8F1ED1F17E5C17EC3D5AE9A0B1DBEE4C615234
+ 8DB48AD05684D07CEBD22E929A8DBFE15894D490AC5F62FF0038628224590F87
+ C0DB3551144A1F578F491C86BDBF3ED995452446C0F1883F2FD4E94A2C660450
+ 0785A07D94A7AF457BF9BF764FC1AEF0F96D37C56FE5EDD3BD1DB070B8EEE4DC
+ 58EEC2F969BCB736DDD8D41DA1BFB29B8F234F907A6EC1DE39EC7ECED97D2BB6
+ 2A6A65926CD55CD1CD99A8433AC894690AD5FA68ADE19A4B8B7798C01000B52D
+ E42A42FCCF01E43D3CB7009047A65235EA6FD9A8E91F92D2BF3EB745FF0084F6
+ 7C1AFE5CFF0015BAD7B0363F577CA4F8B7F2CFE40EE1DADB3771F7A6ECEA0EF7
+ EB9EC89236FBCDC3494D8B8315B2B77652B36FEC6C0D54FE1A1FB98E37A996A1
+ E698F9651144B6D0DD5BA41796F39178E581451528A3491E4726A6A7D453CBA2
+ 9DC2DACEFA59ADB74810D8AA2152C4805C99030E201A0098F9FCFAD86E87ADFA
+ B307B8B64D4EDD4DBF8F10646AA8A9A830D5F145151637FB9D9F1241E24AC955
+ 29D1E2441A5542AD80201B7B107EF8DD65B5BD8DE37690A025994925BC54C8C7
+ 1F3E8860D9F60B0BEE5F6DB2DE08E412B2D10FC2BF4D35401520004018000E1D
+ 01983A5DB272BBD57CD0204EFCC4AE91552E8969CF776214ABC8643E8543A830
+ 6078FAFB2C13EF4158947351FC22A3EC14F4C70F3E86948B50C8E3D7FFD0DA8D
+ 7FECB9FA37FED67D85FF00BE9F7F7BF75EE8E1E236D7414D8AC0CFB8301D3D2E
+ 4EA73358649B358AD94F5F519A927CC312D257406A65CB492873F53313A8FF00
+ AAF6269AE37F135C2DBCF7822083E16928168BE869A7F970EA3DB1B4E4C365B6
+ BDF5AED7F50D336645835190993F8854B935FE91CFCFA426FDEA8F8BDBF36AF7
+ 66D0DD7B4FA5EB36EE670F36373949518AD8EB4D2E36AF64D3A55D3D7AC90085
+ E8A7A2959658E6062920621C14247B6EE1378BF836DB5BA37524321A693E21AF
+ EA1181EB5E1E75EAD6E79636CB8E65BDB45DBA19A201959442BA696EADC45283
+ CCE463AD6DFB57FE1277FCAF377F6252D6ED0DE99AEBEC666FF8F67DF6FEDBED
+ 095318F143598776A7A7A4CE4FB9A5A5C7C6725644A3969A28524D2A157C6108
+ D76ADD84334AAD3695655A3475A54379D067B7CEA4FEDE850DBF6D22EED6D85F
+ DB9F1637707C54E086318CE41D7C7ECEACA3E08FF270FE5ADF00F133EF0EA9DB
+ 1D772F6055E664DB551D87BB33F45BA7717A777C7829A969B3FBB72D98AEC7C5
+ 5668632F4344F4948D511AB783CA357B596FB3EE31DE28F0AE64984258511853
+ 5445AA15401E7C695A79D3A2EB8DF366BDDB834F7B686337623A19232095B911
+ 81934A9D3C3D7A073E1F7F244FE5F7F0F7E67EEAF955B3F7A0CC6F37A4DD95F9
+ 6A2DCBBBDB71EDDC8C1DAB579AAADC30E4B0B9135188FB68DE94B47E8554B71C
+ 29F6FC1CB9CC10ADB5D450CE0EB2100014A95000A1146AF774A25DDF64BB9AFF
+ 006FBC9ED5ED122466D6C8CA43EBA86049141A2B914FD9D09BFCCB3F93A7C05F
+ E672DD2959BDABB6DED0CFED4C4E5B0DB5F73F5B6E5C66D39E9707578DA4CC55
+ 51252E2246C26428E738C89E31554353E15D4D018C49217ADFED7BDC935EDC5D
+ 2DC8BB4A54BAB313DD4A12C09C12781E383D25B1DCF61DBA2D96CAC25B38ED26
+ 53411B46AB88F5540421720711E5D102CCFF00C2587F955C1D3B8DDB74D9856C
+ F6D3DD195A9CDEF68BB3B20773672AEBE5C7617F85E6F2899C30C549411C30C9
+ 0D0C34F490433BB4822124D2B3A18B65DD5EE23467B80CE80FF678A50B540D3F
+ 6E735F5C74B2E39976986CEEAE5370B56F0A4287F55307585A1EEC1C8C1A1C8C
+ 67AA45FF008540FC27EC6C3F61FC01E95F8CDD57DB7DEBB47A0BE2441D6736E4
+ EBCD83BA3B26A29E8B6EE76970BB75776E6F6760B231C99D9B0F8850F3559155
+ 53E33239762CC539592D9CFD5928080175F6D695C0AFA5780E15E8CA0B8DBD9A
+ 45B59A12DF13682BE648D469EA41C9E34EAD5BE3AFFC26EBF96667329F1A7BDF
+ 73E22A6862DDBB7FAF739BA3A8B3DBF336FB5A3DE2FB51371671B25B7337947C
+ 97EE67315379F133D49C722C9240D47E151129DDB72B6E72D84D712CF392B0EB
+ D3E1D0E4A8D350B81DDC78FCEBD17CDCC1B7472D8A0BB834CD314AF88BE49238
+ 2339AE8FE7D5907F32AFE483F043E7DEF44EE0EC4DC54B89C974D759D375F61B
+ 0BB3F7B536DAC753E1F0B049BA2F594785A98626CA4B2662477927058C4C9C69
+ 00FB62DB66BFBABBDAE02278E3974AFC04F6EA2A29A81C790A63A4726F9B3D8D
+ AEFD3DADDDA6A84B310AF18EF1123F750F13826B9A107D3A69FE603FC963E0FF
+ 00F313EDDD89D89DDDBA1A87706CCEB3A6D898DA2DA5BD69F6CAC987C5E66A32
+ 53649B198BAAA74ABAA9B259A97CB3C8AD62E8A7900139BFE5CDCAEC25C42F32
+ 950A84942C2801A0A9534C701D2B8375D9AD65FA58EEAD519833E9578D49C805
+ B48209C9156A71A0273D1BAF91FF000B7E1C7CB3F88553F173B360DBB16D4DCD
+ 578FDB7579EC7E436E6333D24FB4B75D4D6E0AB69B354B3D3E4865FF0089E0A9
+ DB524BADD9596C43302B6FF63DFAE6DD36F67768A0891930E74D113802080284
+ D71C0E7A27DB2FF61B544BD12DA473CD752AB3868D4B5659401AAA09248000A9
+ CF484FE5CFFCACBE0EFF002E6D81F21B6875036D5DC69BF21C7EE1CFE4F7C65F
+ 17BA7294F3526DACC5263A84D46E09EAA7A4A1C6C2934D0270AAF553B824486C
+ 4D63B6EF3B45EEDB39FA8170F281550CB550EB81A40A8249AFEC3D39BAEE3B16
+ E30EF76D772D9C91416FA80731B692C92127B89A600CE319E8ACD3FF0024BF84
+ D4FF003FB01F3CE9B78CB0F6FE47B32A3B6A97C5BE5460A2CBD2E2A1A454A5DB
+ 8952312F878292745F124651574F22E3DABB8E53BD98DF5C319F40352BA0FC4C
+ 49CB52B5AFCFA304DF76A8CEDF689776BE1C886803A534AA8F845684508E0280
+ 53A2A3B9FF00E12B9FCB22BA0DC7BCEB37A6665AAACDEB9F82ABCBDB793814D4
+ CFBBEBB1611843948A18EA25A865023017D6C140BD87B25B5E5FDD2E2F63B459
+ 675568838FD207FD0C3FF0F002B9F41D5939976A3692DCBDFDB0D370F17F6A9C
+ 5663101F1713418E3534E8FF007F2C3FE4E9F08FF974F747696E5EAFC8E3F32F
+ BEBADB0383CE6377B6EAA7DDD897A4FE379CAEA798516E39EB21A69E09710FA6
+ 4502EACC3F1ECD1F61DD36BB58EFE2B8B833990AD554A100043C500AD4B0E9AB
+ 8DCB63DC6E2E76FBE36725B2451BD2468D855CCABC1891809C7E67AB91C0EDFE
+ 9B93786CC9B6862BADA9A78ABDA2C4C7B3E8B6C5279B0F26C9DC333CD4B260A3
+ 8DAA28242B11BA1311057EA34FB5F7173BDC1B65D78D25CE965ABB485CD184A8
+ 003AB8119E39E3E75E8A6D6DF9656F39725D9A0B00CD21D260584553E9663831
+ F14E1C3B787CBA0A306D8A4CD6F6C78A7A5769BBFB12AD1A43132450A778E20D
+ E62174A21B0500FD4B0F61802FDA36B932481578124D4938C7AE32698A0E873D
+ 9A82D071EBFFD1DAE7B28275877D6C3EE4C9E17399BC46CBABDCB3D6506DFA7A
+ 4A8CBD4266B67EE2DB918A38B215B8DA3768E7CCABB079E31A15AC6F607DD7BA
+ 61CAFF00311F8ED1642ACD6FC64EE4AEAC9A5924AAABFF00473D5151254CB239
+ 69259A79FB096699E57E496B92793ED52DF5EAAAAADE4A147001DA83ECCF45CF
+ B3ED123BC926D76CD2312493121249E2492B524F9D7A6E1FCC5BE368D36F8B3D
+ C8347296EB3EA2F49BEABAFF00C644F4FAB9E3F3EEDFBC2FFF00E53A6FF7B6FF
+ 003F55FDC9B363FDD45AE3FE149FF40F5EFF008715F8D9623FD958EE4B12091F
+ E8CFA8AC48BD891FE913922E7FDBFBD7EF0BFF00F94E9BFDEDBFCFD6BF726CBC
+ 3F745AD3FE6947FF0040F488CD7F307E80C9563BC7F1ABB661A78C78A187FD1D
+ F55A3040BA18C8137E152EDF4FA9016C3E9EC63B74B7705BC64DDCBE2B0A93AD
+ BCF34E3E5FE1CF49DF68D9CB1236BB61E5FD927FD03D74DF3C3E32AD1853F1B7
+ BA4572A6B563D77D43F6C252012A23FF0048465119200D57D5C5FF00C3DA44DF
+ 77B7B8A299BE9EB4E2F5A7AD6B4AFCBF2F9F573B26CC14576DB6AFFCD34FFA07
+ A8F8CFE605D0341591D41F8D7DB0F117515311EBCEAC6134458170CADBF34B38
+ FAA93F4600FB31BB9AF2E6078FEAE5D74ED3ADB07CBCFF0023F2E9B1B46CF5CE
+ D76C47FCD24FFA07A107FE1C5FE36DC1FF006567B96EA34A9FF469D4770B622C
+ 0FFA44E058FB04FEF0BFFF0094D9BFDEDBFCFD2AFDC9B360FEE8B5FF009C51FF
+ 00D03D37D57F301F8B35C51ABBE23F6AD6325F435575474D5414BDAFA0CDD80E
+ 56F61F4F746BDBC7357BB949F9B31FF2F575DA76A41A536CB703E51A0FF27486
+ A8F9E9F1ED2AA734FF001A3B6218BCF218A23D75D568522F2EB8919177E141A0
+ 01C0245C7B1D5AEE17925A407EB25A141F89BD287CFA46FB3ED3A9ABB6DBD7FE
+ 69A7FD03D08E3F98C7C6DD28FF00ECAD7727A541523AD3A8C851FAFD07FD21DC
+ 0B9B8B7B059BCDC048D17D6CBAB553E36E3C3D7FC3D28FDCBB3501FDD16BFF00
+ 3893FE81E93953FCC0BE2A4CDA97E2C77226B70D208BAFFAAA041F8D6912F623
+ C5A80FC00A3D88E1B9E6554EEDCDEA0601724FD95FF64F4D1DA363FF00A355BD
+ 3FE6927FD03D36E43E7C7C637881C6FC66EE78AA0B00ED51D7FD526368749565
+ 3A7B0646B8B0B7E2DED459EE3BF33B7D5DCC82203F8CD6BF937557D9F65FC3B6
+ 5BD7FE69A7FD03D4FDB9FCC0BE3CE3FEE1EA7E3176FD4249E2F078BAE3AA2408
+ D1B485D8197B0230A6E47E9BDC8FF0F65DBDEE9765A1896FA5D62B5EF6F3A501
+ CF578B65DA0E4ED56C4797E927FD03D304BF3BBA09E69FC3F19BB7444D339553
+ D73D5D70BAD8A07037E32EA507FA9E7F3ECDE3DEA5F0217937370C541CC86BC3
+ 3E7D36764DAAAC06D56FC7FDF49FF40F4B5AEFE617F1CEB319252FFB2BBDC6B5
+ 2F4D1C625FF46DD4A1564454B7AC7617904775B7D2F6FC7E3D85A1DD6EEDEF44
+ 82FA6312B9E0ED9191EBE9D3FF00B93672B8DA6D8353FDF49FF40F49DC57CF1F
+ 8F945574F5551F1A3B85840EEC618FAD3AA2456D7194600C9D89180581FAE9FC
+ 7B31BCE65B89E19218E79FB8712E479D7C89FF000F545D8B69046ADAED88FF00
+ 9A49FF0040F433ECDF9BFD01BAB2B1FF0007F8EFDB5B7F232AB538C8B6C9EBAC
+ 44E2395D4BC72D56237EC950F117504A9D42E2F6F6509BB6E489E1FD6C863AD7
+ 4B31615FB1AA3A550ED9B6DBBF896F610C7252954455343F3001E85DC2E231F4
+ FB5F78EE9186AD5C657EFAC5EF738CD0832B263E1EC5C56E81444FDCF8CD6AD3
+ 43A40F3E8F20FD76F57B60DEDD34A931989917870A0AE38529FCBA59A572298E
+ BFFFD2DD3BB87FCC4DFF00163FA3FF00C5C3FD63F5F7EEBDD112CA7FC0B93FE6
+ 5D7EA6FF0039FABEBF9F7EEBDD377FE8B7F7EEBDD7BFF45BFBF75EE83A9FFCFC
+ DFF1E07F9D93E9F4FD67E9FE1EC7D0FF0063171F847F83A46789E3D62FFD007D
+ BBFB7AD7EDE9E31FF8FF009955F5FF0094EFD7F41F4FF1FE9FE3ECB2F7CFFDC9
+ E1F83874EA7E5F9F4B11F41FF32DBE83E9F4FF0061FE1EC20789E9475DFF00E8
+ B7F7AEBDD2172BFF00170A9FF997DFA93FCDFE9FF369F4FF0089FF001F634DB3
+ FDC1B7E3C0FF0084F4964F8DB8F4B0A1FF0080549FF32E7FE03C3FAFF57F9B5F
+ AFB0A5E7FB9775FF00351BFC27A50BF0AFD9D226B7FE05CFFF0032EBFCE1FF00
+ 80DFE67FE40FF0FEBFE3EC6569FEE343F1FC3F8B8FE7FEAE1D266F88F5C29BFC
+ FC7FF32EBF50FF00813FE63FE9E7FB4FBBCFFD93FC7C3F0FC5F97CFAD0E23A10
+ 22FF00369FF32D3F42FF009AFF0037F41FA3FDA3FA7F87B02CBFDA3FC5C4FC5C
+ 7F3F9FAF4AC701D73FFD16FEDBEB7D7BFF0045BFBF75EEBDFF00A2DFDFBAF742
+ 3EC2FF0081F0FF00C789FAD7FE027EBFF61FE3FF0013EFDD7BA3EF4DFF001E46
+ 47FE2DBFF0120FA7FC05FF0081307EAFF0FE9FE3EFDD7BAFFFD9}
+ Stretch = True
+ IsControl = True
+ end
+ object ProductName: TLabel
+ Left = 154
+ Top = 16
+ Width = 48
+ Height = 16
+ Caption = 'GVedit'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -13
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ IsControl = True
+ end
+ object Version: TLabel
+ Left = 138
+ Top = 40
+ Width = 86
+ Height = 13
+ Caption = 'Version: 0.99 beta'
+ IsControl = True
+ end
+ object Label1: TLabel
+ Left = 116
+ Top = 55
+ Width = 134
+ Height = 13
+ Caption = 'Graphviz Editor for Windows'
+ IsControl = True
+ end
+ end
+ object OKButton: TButton
+ Left = 201
+ Top = 124
+ Width = 75
+ Height = 25
+ Caption = 'OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 1
+ end
+end
--- /dev/null
+//----------------------------------------------------------------------------
+#ifndef UAboutH
+#define UAboutH
+//----------------------------------------------------------------------------
+#include <vcl\System.hpp>
+#include <vcl\Windows.hpp>
+#include <vcl\SysUtils.hpp>
+#include <vcl\Classes.hpp>
+#include <vcl\Graphics.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <jpeg.hpp>
+//----------------------------------------------------------------------------
+class TfrmAbout : public TForm
+{
+__published:
+ TPanel *Panel1;
+ TImage *ProgramIcon;
+ TLabel *ProductName;
+ TLabel *Version;
+ TButton *OKButton;
+ TLabel *Label1;
+private:
+public:
+ virtual __fastcall TfrmAbout(TComponent* AOwner);
+};
+//----------------------------------------------------------------------------
+extern PACKAGE TfrmAbout *frmAbout;
+//----------------------------------------------------------------------------
+#endif
--- /dev/null
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "UEditor.h"
+#include "Umain.h"
+#include "Application.h"
+
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TfrmEditor *frmEditor;
+//---------------------------------------------------------------------------
+__fastcall TfrmEditor::TfrmEditor(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmEditor::RSelectionChange(TObject *Sender)
+{
+ int LineNumber = SendMessage(R->Handle, EM_LINEFROMCHAR, R->SelStart, 0);
+ int ColNumber = (R->SelStart - SendMessage(R->Handle, EM_LINEINDEX, LineNumber, 0));
+ StatusBar1->Panels->Items[0]->Text=IntToStr(LineNumber+1)+":"+IntToStr(ColNumber+1);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ if (!isEditor) //if preview
+ {
+ this->Editor->Editor=NULL;
+ delete this;
+ }
+ else
+ {
+ if (!modified)
+ {
+ delete this->Editor;
+ delete this;
+
+ }
+ else
+ {
+ int a=MessageDlg(FileName+" has changed , do you want to save changes?",mtInformation, TMsgDlgButtons() << mbYes<<mbNo << mbCancel, 0);
+ if(a==mrYes)
+ {
+ if(Save())
+ {
+ delete this->Editor;
+ delete this;
+ }
+ else
+ Abort();
+
+
+ }
+ if(a==mrNo)
+ delete this;
+ if(a==mrCancel)
+ Abort();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmEditor::FormActivate(TObject *Sender)
+{
+/* frmMain->Caption=SOFTWARE_SHORT_NAME;
+ frmMain->Caption = frmMain->Caption + " editing "+FileName;*/
+ R->Color=clWhite;
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::FormDeactivate(TObject *Sender)
+{
+ R->Color=clSilver;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::RChange(TObject *Sender)
+{
+ modified=true;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::BitBtn5Click(TObject *Sender)
+{
+ Image1->Align=alNone;
+ Image1->Width=Image1->Picture->Width ;
+ Image1->Height=Image1->Picture->Height;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::BitBtn4Click(TObject *Sender)
+{
+ Image1->Align=alClient;
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmEditor::FormCreate(TObject *Sender)
+{
+ Engine=-1;
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmEditor::SB1Click(TObject *Sender)
+{
+ Image1->Align=alNone;
+ Image1->Width=Image1->Picture->Width ;
+ Image1->Height=Image1->Picture->Height;
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::SB2Click(TObject *Sender)
+{
+ Image1->Align=alClient;
+
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TfrmEditor::BitBtn2Click(TObject *Sender)
+{
+ if(Image1->Picture)
+ {
+ if(SDB->Execute())
+ {
+ try{
+ Image1->Picture->SaveToFile(SDB->FileName);
+ }
+ catch(...)
+ {
+ ShowMessage ("File could not be saved, disk might be read only");
+
+ }
+
+
+ }
+
+
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::FindDialog1Find(TObject *Sender)
+{
+ int FoundAt, StartPos, ToEnd;
+ // begin the search after the current selection
+ // if there is one
+ // otherwise, begin at the start of the text
+ if (R->SelLength)
+ StartPos = R->SelStart + R->SelLength;
+ else
+ StartPos = 0;
+
+ // ToEnd is the length from StartPos
+ // to the end of the text in the rich edit control
+
+ ToEnd = R->Text.Length() - StartPos;
+ FoundAt = R->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);
+ if (FoundAt != -1)
+ {
+ R->SetFocus();
+ R->SelStart = FoundAt;
+ R->SelLength = FindDialog1->FindText.Length();
+ }
+ else
+ {
+ if (R->SelLength)
+ {
+ int a=MessageDlg("There is no more "+FindDialog1->FindTextA+" in the document , do you want to start over?",mtInformation, TMsgDlgButtons() << mbYes<<mbNo << mbCancel, 0);
+ if(a==mrYes)
+ {
+ R->SelLength=0;
+ FindDialog1->Execute();
+ }
+ }
+ else
+ ShowMessage ("Could not find specified text in the document");
+
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::ReplaceDialog1Find(TObject *Sender)
+{
+ int FoundAt, StartPos, ToEnd;
+ // begin the search after the current selection
+ // if there is one
+ // otherwise, begin at the start of the text
+ if (R->SelLength)
+ StartPos = R->SelStart + R->SelLength;
+ else
+ StartPos = 0;
+
+ // ToEnd is the length from StartPos
+ // to the end of the text in the rich edit control
+
+ ToEnd = R->Text.Length() - StartPos;
+ FoundAt = R->FindText(ReplaceDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase);
+ if (FoundAt != -1)
+ {
+ R->SetFocus();
+ R->SelStart = FoundAt;
+ R->SelLength = ReplaceDialog1->FindText.Length();
+ }
+ else
+ {
+ if (R->SelLength)
+ {
+ int a=MessageDlg("There is no more "+ReplaceDialog1->FindTextA+" in the document , do you want to start over?",mtInformation, TMsgDlgButtons() << mbYes<<mbNo << mbCancel, 0);
+ if(a==mrYes)
+ {
+ R->SelLength=0;
+ ReplaceDialog1->Execute();
+ }
+ }
+ else
+ ShowMessage ("Could not find specified text in the document");
+
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmEditor::Timer1Timer(TObject *Sender)
+{
+ long GENERIC_ACCESS = 268435456; // &H10000000
+ long EXCLUSIVE_ACCESS = 0;
+ long OP= 3;
+ void* ll_handle;
+ static int counter=0;
+ AnsiString filename=tempFolder+"__temp.jpg";
+ counter++;
+
+ if ((FileExists(filename)) || (counter == 10000))
+ {
+ if (counter==10000) //could not create the preview
+ {
+ frmMain->Memo1->Lines->Add("preview file for "+FileName+" could not be created!!");
+ frmMain->Memo1->SelStart=frmMain->Memo1->Text.Length()-1;
+ SendMessage(frmMain->Memo1->Handle, EM_SCROLLCARET,0,0);
+ counter=0;
+ }
+ else
+ {
+ Timer1->Enabled=false;
+ try {
+ Image1->Picture->LoadFromFile(filename);
+ }
+ catch(...)
+ {
+ Timer1->Enabled=true;
+ counter=0;
+ }
+
+ }
+
+ }
+}
+//---------------------------------------------------------------------------
+
--- /dev/null
+object frmEditor: TfrmEditor
+ Left = 566
+ Top = 254
+ Width = 734
+ Height = 509
+ Caption = 'frmEditor'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsMDIChild
+ OldCreateOrder = False
+ Position = poDefault
+ Visible = True
+ OnActivate = FormActivate
+ OnClose = FormClose
+ OnCreate = FormCreate
+ OnDeactivate = FormDeactivate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 726
+ Height = 456
+ Align = alClient
+ Caption = 'Panel1'
+ TabOrder = 2
+ object ScrollBox1: TScrollBox
+ Left = 1
+ Top = 34
+ Width = 724
+ Height = 421
+ Align = alClient
+ BevelInner = bvNone
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Image1: TImage
+ Left = 0
+ Top = 0
+ Width = 720
+ Height = 417
+ Align = alClient
+ Proportional = True
+ end
+ end
+ object Panel3: TPanel
+ Left = 1
+ Top = 1
+ Width = 724
+ Height = 33
+ Align = alTop
+ BevelOuter = bvSpace
+ BorderStyle = bsSingle
+ TabOrder = 1
+ DesignSize = (
+ 720
+ 29)
+ object SB1: TSpeedButton
+ Left = 545
+ Top = 3
+ Width = 81
+ Height = 22
+ Anchors = [akTop, akRight]
+ GroupIndex = 1
+ Caption = 'Real Size'
+ OnClick = SB1Click
+ end
+ object SB2: TSpeedButton
+ Left = 631
+ Top = 3
+ Width = 81
+ Height = 22
+ Anchors = [akTop, akRight]
+ GroupIndex = 1
+ Down = True
+ Caption = 'Fit To Screen'
+ OnClick = SB2Click
+ end
+ object BitBtn2: TBitBtn
+ Left = 4
+ Top = 2
+ Width = 65
+ Height = 25
+ Caption = 'Save'
+ TabOrder = 0
+ OnClick = BitBtn2Click
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000130B0000130B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333330070
+ 7700333333337777777733333333008088003333333377F73377333333330088
+ 88003333333377FFFF7733333333000000003FFFFFFF77777777000000000000
+ 000077777777777777770FFFFFFF0FFFFFF07F3333337F3333370FFFFFFF0FFF
+ FFF07F3FF3FF7FFFFFF70F00F0080CCC9CC07F773773777777770FFFFFFFF039
+ 99337F3FFFF3F7F777F30F0000F0F09999937F7777373777777F0FFFFFFFF999
+ 99997F3FF3FFF77777770F00F000003999337F773777773777F30FFFF0FF0339
+ 99337F3FF7F3733777F30F08F0F0337999337F7737F73F7777330FFFF0039999
+ 93337FFFF7737777733300000033333333337777773333333333}
+ NumGlyphs = 2
+ end
+ end
+ end
+ object StatusBar1: TStatusBar
+ Left = 0
+ Top = 456
+ Width = 726
+ Height = 19
+ Panels = <
+ item
+ Text = '1:1'
+ Width = 100
+ end
+ item
+ Width = 50
+ end>
+ SimplePanel = False
+ end
+ object Panel2: TPanel
+ Left = 0
+ Top = 0
+ Width = 726
+ Height = 456
+ Align = alClient
+ Caption = 'Panel2'
+ TabOrder = 0
+ object R: TRichEdit
+ Left = 1
+ Top = 1
+ Width = 724
+ Height = 454
+ Align = alClient
+ Font.Charset = ANSI_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -13
+ Font.Name = 'Courier New'
+ Font.Style = []
+ HideSelection = False
+ ParentFont = False
+ PlainText = True
+ ScrollBars = ssBoth
+ TabOrder = 0
+ WantTabs = True
+ WordWrap = False
+ OnChange = RChange
+ OnSelectionChange = RSelectionChange
+ end
+ end
+ object SDB: TSaveDialog
+ Filter = 'Bitmap File|*.bmp'
+ Left = 120
+ end
+ object FindDialog1: TFindDialog
+ OnFind = FindDialog1Find
+ Left = 176
+ Top = 128
+ end
+ object ReplaceDialog1: TReplaceDialog
+ Options = [frDown, frHideUpDown, frReplace, frReplaceAll]
+ OnFind = ReplaceDialog1Find
+ Left = 224
+ Top = 128
+ end
+ object Timer1: TTimer
+ Enabled = False
+ OnTimer = Timer1Timer
+ Left = 160
+ Top = 296
+ end
+ object SDB2: TSaveDialog
+ Filter = 'Dot File|*.dot'
+ Left = 64
+ Top = 104
+ end
+end
--- /dev/null
+//---------------------------------------------------------------------------
+
+#ifndef UEditorH
+#define UEditorH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <Dialogs.hpp>
+#include <Buttons.hpp>
+#include <jpeg.hpp>
+//---------------------------------------------------------------------------
+class TfrmEditor : public TForm
+{
+__published: // IDE-managed Components
+ TStatusBar *StatusBar1;
+ TSaveDialog *SDB;
+ TPanel *Panel2;
+ TRichEdit *R;
+ TPanel *Panel1;
+ TScrollBox *ScrollBox1;
+ TImage *Image1;
+ TPanel *Panel3;
+ TSpeedButton *SB1;
+ TBitBtn *BitBtn2;
+ TSpeedButton *SB2;
+ TFindDialog *FindDialog1;
+ TReplaceDialog *ReplaceDialog1;
+ TTimer *Timer1;
+ TSaveDialog *SDB2;
+ void __fastcall RSelectionChange(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall FormActivate(TObject *Sender);
+ void __fastcall FormDeactivate(TObject *Sender);
+ void __fastcall RChange(TObject *Sender);
+ void __fastcall BitBtn5Click(TObject *Sender);
+ void __fastcall BitBtn4Click(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall SB1Click(TObject *Sender);
+ void __fastcall SB2Click(TObject *Sender);
+ void __fastcall BitBtn2Click(TObject *Sender);
+ void __fastcall FindDialog1Find(TObject *Sender);
+ void __fastcall ReplaceDialog1Find(TObject *Sender);
+ void __fastcall Timer1Timer(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TfrmEditor(TComponent* Owner);
+ bool isEditor; //I use same class for preview , false for preview window
+ bool modified;
+ bool NeedFileName;
+ AnsiString FileName;
+ TfrmEditor *Editor; //for preview windows this stores the editor file of preview
+ //Setting Window values
+ int Engine;
+ AnsiString OutputFile;
+ int OutputType;
+ bool Preview;
+ AnsiString Options;
+ AnsiString tempFolder;
+
+ bool TfrmEditor::ChangeFileName(AnsiString NewFileName,bool newfile=false);
+ bool TfrmEditor::SaveAs();
+ bool TfrmEditor::Save();
+ bool SwitchToPreview();
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TfrmEditor *frmEditor;
+//---------------------------------------------------------------------------
+bool TfrmEditor::SwitchToPreview()
+{
+ StatusBar1->Visible=false;
+ Panel2->Visible=false;
+ Timer1->Enabled=true;
+ Image1->Picture=NULL;
+}
+
+bool TfrmEditor::ChangeFileName(AnsiString NewFileName,bool newfile)
+{
+ //if newfile is true even save commands runs like save as..
+
+ FileName=NewFileName;
+ Caption="Graphviz Layout("+NewFileName+")";
+ NeedFileName=newfile;
+ isEditor=true;
+ return true;
+
+
+}
+bool TfrmEditor::SaveAs()
+{
+ SDB2->FileName=FileName;
+ if(SDB2->Execute())
+ {
+ try{
+ R->Lines->SaveToFile(SDB2->FileName);
+ ChangeFileName(SDB2->FileName,false);
+ modified=false;
+ return true;
+ }
+ catch(...)
+ {;}
+ }
+ else
+ return false;
+
+}
+bool TfrmEditor::Save()
+{
+ if (NeedFileName)
+ return SaveAs();
+ else
+ {
+ try{
+ R->Lines->SaveToFile(FileName);
+ modified=false;
+ return true;
+ }
+ catch(...)
+ {
+ ShowMessage("Unexpected error, could not save the file");
+ return false;
+ }
+ }
+}
+
+
+
+#endif
--- /dev/null
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "UPreProcess.h"
+#include <SysUtils.hpp>
+#include <windows.hpp>
+#include <stdio.h>
+#include <IniFiles.hpp>
+
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TfrmPre *frmPre;
+//---------------------------------------------------------------------------
+__fastcall TfrmPre::TfrmPre(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TfrmPre::FormShow(TObject *Sender)
+{
+ TIniFile *ini;
+ AnsiString FileName=ExtractFilePath( Application->ExeName)+"Settings.ini" ;
+ if(FileExists(FileName))
+ {
+ ini = new TIniFile(FileName);
+ PreprocCmd=ini->ReadString( "Settings", "PreCmd", "");
+ PreprocPath=ini->ReadString( "Settings", "PrePath", "");;
+ PreprocPathEdit->Text=PreprocPath;
+ PreprocEdit->Text=PreprocCmd;
+ delete ini;
+ }
+ else
+ {
+ ShowMessage ("Settings.ini could not be located!");
+ Close();
+
+ }
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmPre::Button3Click(TObject *Sender)
+{
+ TIniFile *ini;
+ AnsiString FileName=ExtractFilePath( Application->ExeName)+"Settings.ini" ;
+ if(FileExists(FileName))
+ {
+ ini = new TIniFile(FileName);
+ ini->WriteString( "Settings", "PreCmd", PreprocEdit->Text);
+ ini->WriteString( "Settings", "PrePath", PreprocPathEdit->Text);
+ delete ini;
+ }
+ Close();
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmPre::Button4Click(TObject *Sender)
+{
+ Close();
+}
+//---------------------------------------------------------------------------
+
--- /dev/null
+object frmPre: TfrmPre
+ Left = 399
+ Top = 288
+ BorderStyle = bsSingle
+ Caption = 'Preprocessor Settings'
+ ClientHeight = 103
+ ClientWidth = 383
+ Color = clBtnFace
+ DefaultMonitor = dmPrimary
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ OnShow = FormShow
+ DesignSize = (
+ 383
+ 103)
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel2: TPanel
+ Left = -3
+ Top = 0
+ Width = 384
+ Height = 72
+ BevelInner = bvRaised
+ BevelOuter = bvLowered
+ TabOrder = 0
+ DesignSize = (
+ 384
+ 72)
+ object Label9: TLabel
+ Left = 17
+ Top = 23
+ Width = 22
+ Height = 13
+ Caption = 'Path'
+ end
+ object Label8: TLabel
+ Left = 16
+ Top = 44
+ Width = 70
+ Height = 13
+ Caption = 'Command Line'
+ end
+ object Label10: TLabel
+ Left = 6
+ Top = 4
+ Width = 66
+ Height = 13
+ Caption = 'Pre-Processor'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsUnderline]
+ ParentFont = False
+ end
+ object PreprocEdit: TEdit
+ Left = 111
+ Top = 42
+ Width = 266
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 0
+ end
+ object PreprocPathEdit: TEdit
+ Left = 111
+ Top = 19
+ Width = 266
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 1
+ end
+ end
+ object Button4: TButton
+ Left = 229
+ Top = 74
+ Width = 75
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = 'Cancel'
+ TabOrder = 1
+ OnClick = Button4Click
+ end
+ object Button3: TButton
+ Left = 305
+ Top = 74
+ Width = 75
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = 'OK'
+ Default = True
+ TabOrder = 2
+ OnClick = Button3Click
+ end
+end
--- /dev/null
+//---------------------------------------------------------------------------
+
+#ifndef UPreProcessH
+#define UPreProcessH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TfrmPre : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel2;
+ TLabel *Label9;
+ TLabel *Label8;
+ TLabel *Label10;
+ TEdit *PreprocEdit;
+ TEdit *PreprocPathEdit;
+ TButton *Button4;
+ TButton *Button3;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall Button3Click(TObject *Sender);
+ void __fastcall Button4Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TfrmPre(TComponent* Owner);
+ AnsiString PreprocCmd;
+ AnsiString PreprocPath;
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TfrmPre *frmPre;
+//---------------------------------------------------------------------------
+#endif
--- /dev/null
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "UPreview.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TfrmPreview *frmPreview;
+//---------------------------------------------------------------------------
+__fastcall TfrmPreview::TfrmPreview(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+
+
--- /dev/null
+object frmPreview: TfrmPreview
+ Left = 586
+ Top = 326
+ Width = 696
+ Height = 480
+ Caption = 'Preview'
+ 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
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 688
+ Height = 30
+ Align = alTop
+ TabOrder = 0
+ object BitBtn1: TBitBtn
+ Left = 3
+ Top = 3
+ Width = 75
+ Height = 25
+ Caption = 'Save'
+ TabOrder = 0
+ end
+ object BitBtn2: TBitBtn
+ Left = 450
+ Top = 3
+ Width = 32
+ Height = 25
+ TabOrder = 1
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000130B0000130B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 33033333333333333F7F3333333333333000333333333333F777333333333333
+ 000333333333333F777333333333333000333333333333F77733333333333300
+ 033333333FFF3F777333333700073B703333333F7773F77733333307777700B3
+ 33333377333777733333307F8F8F7033333337F333F337F3333377F8F9F8F773
+ 3333373337F3373F3333078F898F870333337F33F7FFF37F333307F99999F703
+ 33337F377777337F3333078F898F8703333373F337F33373333377F8F9F8F773
+ 333337F3373337F33333307F8F8F70333333373FF333F7333333330777770333
+ 333333773FF77333333333370007333333333333777333333333}
+ NumGlyphs = 2
+ end
+ object BitBtn3: TBitBtn
+ Left = 484
+ Top = 3
+ Width = 32
+ Height = 25
+ TabOrder = 2
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000130B0000130B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 33033333333333333F7F3333333333333000333333333333F777333333333333
+ 000333333333333F777333333333333000333333333333F77733333333333300
+ 033333333FFF3F777333333700073B703333333F7773F77733333307777700B3
+ 333333773337777333333078F8F87033333337F3333337F33333778F8F8F8773
+ 333337333333373F333307F8F8F8F70333337F33FFFFF37F3333078999998703
+ 33337F377777337F333307F8F8F8F703333373F3333333733333778F8F8F8773
+ 333337F3333337F333333078F8F870333333373FF333F7333333330777770333
+ 333333773FF77333333333370007333333333333777333333333}
+ NumGlyphs = 2
+ end
+ object BitBtn4: TBitBtn
+ Left = 162
+ Top = 3
+ Width = 97
+ Height = 25
+ Caption = 'Fit To Screen'
+ TabOrder = 3
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000120B0000120B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00330000000000
+ 033333777777777773333330777777703333333773F333773333333330888033
+ 33333FFFF7FFF7FFFFFF0000000000000003777777777777777F0FFFFFFFFFF9
+ FF037F3333333337337F0F78888888887F037F33FFFFFFFFF37F0F7000000000
+ 8F037F3777777777F37F0F70AAAAAAA08F037F37F3333337F37F0F70ADDDDDA0
+ 8F037F37F3333337F37F0F70A99A99A08F037F37F3333337F37F0F70A99A99A0
+ 8F037F37F3333337F37F0F70AAAAAAA08F037F37FFFFFFF7F37F0F7000000000
+ 8F037F3777777777337F0F77777777777F037F3333333333337F0FFFFFFFFFFF
+ FF037FFFFFFFFFFFFF7F00000000000000037777777777777773}
+ NumGlyphs = 2
+ end
+ end
+ object StatusBar1: TStatusBar
+ Left = 0
+ Top = 427
+ Width = 688
+ Height = 19
+ Panels = <>
+ SimplePanel = False
+ end
+ object ScrollBox1: TScrollBox
+ Left = 0
+ Top = 30
+ Width = 688
+ Height = 397
+ Align = alClient
+ TabOrder = 2
+ end
+end
--- /dev/null
+//---------------------------------------------------------------------------
+
+#ifndef UPreviewH
+#define UPreviewH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TfrmPreview : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TStatusBar *StatusBar1;
+ TScrollBox *ScrollBox1;
+ TBitBtn *BitBtn1;
+ TBitBtn *BitBtn2;
+ TBitBtn *BitBtn3;
+ TBitBtn *BitBtn4;
+private: // User declarations
+public: // User declarations
+ __fastcall TfrmPreview(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TfrmPreview *frmPreview;
+//---------------------------------------------------------------------------
+#endif
--- /dev/null
+//---------------------------------------------------------------------------
+
+#include <shlobj.h>
+
+#define NO_WIN32_LEAN_AND_MEAN 1
+#include <vcl.h>
+#pragma hdrstop
+
+#include "USettings.h"
+#include "Umain.h"
+#include "UEditor.h"
+#include "windows.h"
+#include "SysUtils.hpp"
+
+#include <stdio.h>
+#define countof( array ) ( sizeof( array )/sizeof( array[0] ) )
+
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TfrmSettings *frmSettings;
+
+#define BUFSIZE 4096
+
+HANDLE hChildStdinRd, hChildStdinWr,
+ hChildStdoutRd, hChildStdoutWr,
+ hInputFile, hStdout;
+bool preprocflag=false;
+
+BOOL CreateChildProcess();
+VOID WriteToPipe(VOID);
+VOID ReadFromPipe(VOID);
+VOID ErrorExit(LPSTR);
+bool preproc();
+
+
+//---------------------------------------------------------------------------
+__fastcall TfrmSettings::TfrmSettings(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+int TfrmSettings::Init(bool silent)
+{
+
+ DeleteFile(ExtractFilePath(Application->ExeName)+"__temp.dot");
+ DeleteFile(ExtractFilePath(Application->ExeName)+"__temp2.dot");
+ DeleteFile(ExtractFilePath(Application->ExeName)+"__temp.jpg");
+
+ int Engine;
+ AnsiString OutputFile;
+ int OutputType;
+ bool Preview;
+ AnsiString Options;
+
+ TfrmEditor* Ed=((TfrmEditor*)frmMain->ActiveMDIChild);
+ if(Ed)
+ {
+
+ ComboBox2Change(NULL);
+ if(!Ed->isEditor) //if preview window is highlighted make teditor the active
+ {
+ Ed->Editor->Show();
+ Ed=((TfrmEditor*)frmMain->ActiveMDIChild);
+ }
+
+
+
+ if((Ed) && (Ed->isEditor))
+ {
+ Edit1->Text=ChangeFileExt(Ed->FileName,"."+ComboBox2->Items->Strings[ComboBox2->ItemIndex]);
+ //load editor window values
+ if (Ed->Engine != -1)
+ {
+ ComboBox1->ItemIndex=Ed->Engine;
+ Edit1->Text=Ed->OutputFile;
+ ComboBox2->ItemIndex=Ed->OutputType;
+ CheckBox1->Checked=Ed->Preview;
+ Memo1->Text=Ed->Options;
+ }
+ if(!silent)
+ return ShowModal();
+
+ else
+ {
+ if (Ed->Engine != -1)
+ Button3->Click();
+ else
+ return ShowModal();
+ }
+
+ }
+ }
+}
+
+void __fastcall TfrmSettings::Button6Click(TObject *Sender)
+{
+ AnsiString FileName="http://www.graphviz.org/doc/info/attrs.html";
+ AnsiString action="open";
+ ShellExecute(NULL, action.c_str(),FileName.c_str(), NULL, NULL, SW_SHOW); //read me file, if exists it shows
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmSettings::Button2Click(TObject *Sender)
+{
+ AnsiString Scope[]={"G","N","E"};
+ if(Edit3->Text.Trim()!="")
+ {
+ Memo1->Lines->Add("-"+Scope[ComboBox3->ItemIndex]+ComboBox4->Items->Strings[ComboBox4->ItemIndex]+"=\""+Edit3->Text+"\"");
+
+ }
+ else
+ {
+ ShowMessage ("You need to specify a value");
+ Edit3->SetFocus();
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmSettings::BitBtn2Click(TObject *Sender)
+{
+ if(Memo1->Text.Trim() !="")
+ {
+ int a=MessageDlg("Are you sure that you want to clear attributes?",mtInformation, TMsgDlgButtons() << mbYes<<mbNo << mbCancel, 0);
+ if(a==mrYes)
+ {
+ Memo1->Lines->Clear();
+ }
+ }
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmSettings::FormCreate(TObject *Sender)
+{
+ LoadAttrs(ComboBox1->Items->Strings[ComboBox1->ItemIndex],ComboBox3->Items->Strings[ComboBox3->ItemIndex]);
+ //load Graphviz bin Folder
+
+ AnsiString binPath;
+ AnsiString FileName=ExtractFilePath( Application->ExeName)+"Settings.ini" ;
+ TIniFile *ini;
+ ini = new TIniFile(FileName);
+ preprocflag=false;
+ if(FileExists(FileName))
+ binPath=ini->ReadString( "Settings", "binPath", "");
+ if(!FileExists(binPath+"\\dot.exe"))
+ {
+ binPath=frmMain->ReadFromRegistry("\\SOFTWARE\\ATT\\GRAPHVIZ","InstallPath")+"\\bin";
+ if(!FileExists(binPath+"\\dot.exe"))
+ {
+ if(!FileExists(ExtractFilePath(Application->ExeName) + "\\dot.exe"))
+ {
+ ShowMessage ("Gvedit could not locate dot.exe.please modify graphviz bin folder manually");
+ }
+ else
+ Edit2->Text=ExtractFilePath(Application->ExeName);
+ }
+ else
+ Edit2->Text=binPath;
+ }
+ else
+ Edit2->Text=binPath;
+
+
+ //get default settings
+ preprocflag=false;
+ if(FileExists(FileName))
+ {
+ ComboBox1->ItemIndex=ini->ReadInteger( "Settings", "Layout", 0);
+ ComboBox2->ItemIndex=ini->ReadInteger( "Settings", "Output", 0);
+ CheckBox1->Checked=(ini->ReadInteger( "Settings", "Preview", 0) > 0);
+ SD1->InitialDir=ini->ReadString( "Settings", "InitialDir1", "");
+ SD2->InitialDir=ini->ReadString( "Settings", "InitialDir2", "");
+ OD1->InitialDir=ini->ReadString( "Settings", "InitialDir3", "");
+ }
+ //fix graphviz fontconfig file
+ AnsiString path= ExtractFilePath(Application->ExeName);
+ path=StringReplace(path,"\\bin","\\etc\\fonts",TReplaceFlags () << rfReplaceAll);
+ path=path+"fonts.conf";
+ if(!ini->ReadBool("Settings","init",false))
+ {
+ if(FileExists(path))
+ {
+
+ char a[512];
+ char bf[512];
+ char fontFolder[512];
+ LPITEMIDLIST pidl;
+ if (SHGetSpecialFolderLocation(Handle,CSIDL_FONTS,&pidl) == NOERROR)
+ {
+ SHGetPathFromIDList(pidl,fontFolder) ;
+ Memo2->Lines->LoadFromFile(path);
+ Memo2->Text=StringReplace(Memo2->Text,"#WINDOWSFONTDIR#",AnsiString(fontFolder),TReplaceFlags () << rfReplaceAll);
+ Memo2->Lines->SaveToFile(path);
+ ini->WriteBool("Settings","init",true);
+ }
+ }
+ }
+ delete ini;
+
+
+
+
+
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmSettings::ComboBox3Change(TObject *Sender)
+{
+ LoadAttrs(ComboBox1->Items->Strings[ComboBox1->ItemIndex],ComboBox3->Items->Strings[ComboBox3->ItemIndex]);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmSettings::Button1Click(TObject *Sender)
+{
+ //set extensions for save dialog
+ // JPG|*.jpg|JPEG|*.jpeg
+ SD1->Filter=ComboBox2->Items->Strings[ComboBox2->ItemIndex]+" Files |*."+ComboBox2->Items->Strings[ComboBox2->ItemIndex]+"|All Files|*.*";
+ if(frmMain->ActiveMDIChild)
+ SD1->FileName=ChangeFileExt(((TfrmEditor*)frmMain->ActiveMDIChild)->FileName,"."+ComboBox2->Items->Strings[ComboBox2->ItemIndex]);
+ if(SD1->Execute())
+ {
+ Edit1->Text=SD1->FileName;
+
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmSettings::ComboBox2Change(TObject *Sender)
+{
+ AnsiString FileExtension;
+ if(frmMain->ActiveMDIChild)
+ {
+ FileExtension="."+ComboBox2->Items->Strings[ComboBox2->ItemIndex];
+ if(FileExtension.UpperCase().Trim()==".XDOT")
+ FileExtension=".dot";
+ if(FileExtension.UpperCase().Trim()==".PS2")
+ FileExtension=".ps";
+ Edit1->Text=ChangeFileExt(Edit1->Text,FileExtension);
+ }
+ //set cairo check box ,enable disable according to file type
+ //cairo supports
+ if(
+ (ComboBox2->Items->Strings[ComboBox2->ItemIndex].UpperCase()=="PS")
+ ||
+ (ComboBox2->Items->Strings[ComboBox2->ItemIndex].UpperCase()=="PS2")
+ ||
+ (ComboBox2->Items->Strings[ComboBox2->ItemIndex].UpperCase()=="PNG")
+ ||
+ (ComboBox2->Items->Strings[ComboBox2->ItemIndex].UpperCase()=="PDF")
+ ||
+ (ComboBox2->Items->Strings[ComboBox2->ItemIndex].UpperCase()=="SVG") )
+ {
+ CheckBox2->Enabled=true;
+
+ }
+ else
+ CheckBox2->Enabled=false;
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmSettings::BitBtn1Click(TObject *Sender)
+{
+ SD1->Filter="";
+ if(SD1->Execute())
+ {
+ try
+ {
+ Memo1->Lines->SaveToFile(SD1->FileName);
+ }
+ catch(...)
+ {
+ ShowMessage ("File could not be saved! , make sure that disk is not read only");
+ }
+
+ }
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmSettings::BitBtn3Click(TObject *Sender)
+{
+ if(OD1->Execute())
+ {
+ try
+ {
+ Memo1->Lines->LoadFromFile(OD1->FileName);
+ }
+ catch(...)
+ {
+ ShowMessage ("File could not be opened!");
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+bool runproc(AnsiString szExeName,AnsiString szCommandLine,AnsiString tempFile,AnsiString engine,AnsiString outFile,bool silent)
+{
+/* AnsiString tempfile="";
+ if (!preprocflag)
+ tempfile="\""+ExtractFilePath(Application->ExeName)+"__temp.dot"+"\""; //to replace with real name in error messages
+ else
+ tempfile="\""+ExtractFilePath(Application->ExeName)+"__temp2.dot"+"\""; //to replace with real name in error messages*/
+
+ szCommandLine =szCommandLine+" "+tempFile;
+ AnsiString szTempFile="tempfile.txt";
+ SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES) };
+ sa.bInheritHandle = TRUE;
+ //creating pipe
+ HANDLE hStdoutRd, hStdoutWr;
+ if ( !CreatePipe ( &hStdoutRd, &hStdoutWr, &sa, 0 ))
+ return 0;
+
+ STARTUPINFO si = { sizeof(STARTUPINFO) };
+ PROCESS_INFORMATION pi;
+ si.dwFlags = STARTF_USESTDHANDLES+STARTF_USESHOWWINDOW;
+ si.hStdError = hStdoutWr;
+ si.wShowWindow=SW_HIDE ;
+ if ( !CreateProcess ( szExeName.c_str(), szCommandLine.c_str(), NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS,
+ NULL, NULL, &si, &pi ))
+ return 0;
+
+ CloseHandle ( hStdoutWr );
+ //create temp file
+ if (!silent) //for preview we dont need stdioerr
+ return 0;
+ HANDLE hTempFile;
+ hTempFile = CreateFile ( szTempFile.c_str(), GENERIC_WRITE, 0, NULL,
+ CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
+ if ( INVALID_HANDLE_VALUE == hTempFile )
+ return 0;
+ BYTE buff[1024];
+ DWORD dwRead, dwWritten;
+ //write to temp file
+ while ( ReadFile ( hStdoutRd, buff, countof(buff), &dwRead, NULL ) && dwRead != 0 )
+ WriteFile ( hTempFile, buff, dwRead, &dwWritten, NULL );
+
+ CloseHandle(hStdoutRd);
+ CloseHandle(hTempFile);
+ //now read the ouptput and delete the temp file
+ if (FileExists(szTempFile))
+ {
+ TStringList* tmpString=new TStringList();
+ tmpString->LoadFromFile(szTempFile);
+ if(tmpString->Text.Trim() !="")
+ {
+ tmpString->Text=StringReplace(tmpString->Text,tempFile,((TfrmEditor*)frmMain->ActiveMDIChild)->FileName,TReplaceFlags () << rfReplaceAll);
+ frmMain->Memo1->Text=frmMain->Memo1->Text+tmpString->Text;
+ frmMain->Memo1->SelStart=frmMain->Memo1->Text.Length()-1;
+ SendMessage(frmMain->Memo1->Handle, EM_SCROLLCARET,0,0);
+ DeleteFile(szTempFile);
+
+ }
+ else
+ {
+ frmMain->Memo1->Lines->Add(engine+" has created "+outFile+" sucessfully.");
+ frmMain->Memo1->SelStart=frmMain->Memo1->Text.Length()-1;
+ SendMessage(frmMain->Memo1->Handle, EM_SCROLLCARET,0,0);
+ DeleteFile(szTempFile);
+ }
+ if (preprocflag)
+ DeleteFile(tempFile);
+ delete tmpString;
+ }
+}
+
+void __fastcall TfrmSettings::Button3Click(TObject *Sender)
+{
+/*
+WIN32 API for getting temporary file folder
+
+DWORD WINAPI GetTempPath(
+ __in DWORD nBufferLength,
+ __out LPTSTR lpBuffer
+
+)
+
+WIN32 get unique file name
+UINT WINAPI GetTempFileName(
+ __in LPCTSTR lpPathName,
+ __in LPCTSTR lpPrefixString,
+ __in UINT uUnique,
+ __out LPTSTR lpTempFileName
+);
+
+
+*/
+
+ char tempPath[1024];
+ char tempFileIn[1024];
+ char tempFileOut[1024];
+ GetTempPath(1024,tempPath);
+ AnsiString tempFolder=AnsiString(tempPath);
+ AnsiString filter="";
+ if((CheckBox2->Enabled) && (CheckBox2->Checked))
+ filter=":cairo";
+
+ //need to create a temp dot file to get the final changes without saving it
+// AnsiString tempfile="\""+ExtractFilePath(Application->ExeName)+"__temp.dot"+"\"";
+// ((TfrmEditor*)frmMain->ActiveMDIChild)->R->Lines->SaveToFile(ExtractFilePath(Application->ExeName)+"__temp.dot");
+ AnsiString tempfile=tempFolder+"__temp.dot";
+ ((TfrmEditor*)frmMain->ActiveMDIChild)->R->Lines->SaveToFile(tempfile);
+
+ AnsiString ExeFileName=Edit2->Text+"\\"+ComboBox1->Items->Strings[ComboBox1->ItemIndex]+".exe";
+ AnsiString Params=" -T"+ComboBox2->Items->Strings[ComboBox2->ItemIndex]+filter;
+ AnsiString Params2=" -Tjpg";
+
+ Params=Params+" -o\""+Edit1->Text+"\""+" -K"+ComboBox1->Items->Strings[ComboBox1->ItemIndex];
+ Params2=Params2+" -o\""+tempFolder+"__temp.jpg\""+" -K"+ComboBox1->Items->Strings[ComboBox1->ItemIndex];
+ Memo1->Text=Memo1->Text.Trim();
+ for (int ind=0; ind < Memo1->Lines->Count;ind ++)
+ {
+ Params = Params +" " +Memo1->Lines->Strings[ind];
+ Params2 = Params2 +" " +Memo1->Lines->Strings[ind];
+
+ }
+
+// ShowMessage(Params);
+// ShowMessage(Params2);
+ frmMain->Memo1->Lines->Add("executing->"+ExeFileName+" "+Params);
+ preproc();
+
+//bool runproc(AnsiString szExeName,AnsiString szCommandLine,AnsiString tempFile,AnsiString engine,AnsiString outFile,bool silent)
+ runproc(ExeFileName,Params,tempFolder+"__temp.dot",ComboBox1->Items->Strings[ComboBox1->ItemIndex],Edit1->Text,true);
+ runproc(ExeFileName,Params2,tempFolder+"__temp.dot",ComboBox1->Items->Strings[ComboBox1->ItemIndex],Edit1->Text,false);
+
+
+
+ TfrmEditor* Ed=((TfrmEditor*)frmMain->ActiveMDIChild);
+ if (CheckBox1->Checked) //need preview
+ {
+ if (!Ed->Editor) //if preview window is already created
+ {
+ Ed->Editor=new TfrmEditor(Application);
+ Ed->Editor->Editor=Ed;
+ }
+ Ed->Editor->tempFolder=tempFolder;
+ Ed->Editor->SwitchToPreview();
+ Ed->Editor->Caption="Preview:"+Ed->FileName;
+ Ed->Editor->Show();
+ Ed->SB2->Click();
+ Ed->SB1->Click();
+
+
+
+
+ }
+ //update Editor Setting values
+ Ed->Engine=ComboBox1->ItemIndex;
+ Ed->OutputFile=Edit1->Text;
+ Ed->OutputType=ComboBox2->ItemIndex;
+ Ed->Preview=CheckBox1->Checked;
+ Ed->Options=Memo1->Text;
+ //updating settings file
+ TIniFile *ini;
+ AnsiString FileName=ExtractFilePath( Application->ExeName)+"Settings.ini" ;
+ if(FileExists(FileName))
+ {
+ ini = new TIniFile(FileName);
+ ini->WriteInteger( "Settings", "Layout", ComboBox1->ItemIndex);
+ ini->WriteInteger( "Settings", "Output", ComboBox2->ItemIndex);
+ ini->WriteInteger( "Settings", "Preview", CheckBox1->Checked);
+ ini->WriteString( "Settings", "InitialDir1", SD1->InitialDir);
+ ini->WriteString( "Settings", "InitialDir2", SD2->InitialDir);
+ ini->WriteString( "Settings", "InitialDir3", OD1->InitialDir);
+ ini->WriteString( "Settings", "binPath", Edit2->Text);
+
+ delete ini;
+ }
+
+ ModalResult=1;
+}
+
+
+
+
+void __fastcall TfrmSettings::Button4Click(TObject *Sender)
+{
+ ModalResult=-1;
+
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TfrmSettings::Button5Click(TObject *Sender)
+{
+ preproc();
+}
+//---------------------------------------------------------------------------
+
+
+
+bool preproc()
+{
+ //check if anything defined
+
+
+
+ TIniFile *ini;
+ AnsiString FileName=ExtractFilePath( Application->ExeName)+"Settings.ini" ;
+ preprocflag=false;
+ if(FileExists(FileName))
+ {
+ ini = new TIniFile(FileName);
+ frmSettings->PreprocCmd=ini->ReadString( "Settings", "PreCmd", "");
+ frmSettings->PreprocPath=ini->ReadString( "Settings", "PrePath", "");;
+ delete ini;
+ }
+ else
+ {
+ ShowMessage ("Settings.ini could not be located!");
+ return false;
+
+ }
+ if (frmSettings->PreprocCmd.Trim() =="")
+ return false;
+
+ SECURITY_ATTRIBUTES saAttr;
+ BOOL fSuccess;
+ AnsiString hinputfile=ExtractFilePath(Application->ExeName)+"__temp.dot";
+// Set the bInheritHandle flag so pipe handles are inherited.
+
+ if (!FileExists(hinputfile))
+ {
+ ErrorExit("Temporary file is missing!");
+ return 0;
+ }
+ saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
+ saAttr.bInheritHandle = TRUE;
+ saAttr.lpSecurityDescriptor = NULL;
+
+ if (! CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0))
+ ErrorExit("Stdout pipe creation failed\n");
+
+// Ensure the read handle to the pipe for STDOUT is not inherited.
+
+ SetHandleInformation( hChildStdoutRd, HANDLE_FLAG_INHERIT, 0);
+
+// Create a pipe for the child process's STDIN.
+
+ if (! CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0))
+ ErrorExit("Stdin pipe creation failed\n");
+
+// Ensure the write handle to the pipe for STDIN is not inherited.
+
+ SetHandleInformation( hChildStdinWr, HANDLE_FLAG_INHERIT, 0);
+
+// Now create the child process.
+
+ fSuccess = CreateChildProcess();
+ if (! fSuccess)
+ ErrorExit("Create process failed with");
+
+// Get a handle to the parent's input file.
+
+ if (hinputfile.Trim() =="")
+ ErrorExit("Please specify an input file");
+
+ hInputFile = CreateFile(hinputfile.c_str(), GENERIC_READ, 0, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
+
+ if (hInputFile == INVALID_HANDLE_VALUE)
+ ErrorExit("CreateFile failed");
+
+// Write to pipe that is the standard input for a child process.
+
+ WriteToPipe();
+
+// Read from pipe that is the standard output for child process.
+
+ ReadFromPipe();
+
+ return 0;
+}
+BOOL CreateChildProcess()
+{
+ AnsiString Line=frmSettings->PreprocCmd;
+ Line=Line.Trim();
+ //need to parse the line assuming first word is the exe name , left is command line
+ int ind=1;
+ AnsiString szExeName="";
+ AnsiString szCommandLine="";
+ while ((ind <= Line.Length()) && (Line.SubString(ind,1)!=" "))
+ {
+ szExeName = szExeName + Line.SubString(ind,1);
+ ind ++;
+ }
+ //if preproc exe path is specified use it
+ if (frmSettings->PreprocPath.Trim() !="")
+ szExeName =frmSettings->PreprocPath+"\\"+szExeName;
+ //else use application path
+ else
+ szExeName =ExtractFilePath(Application->ExeName)+szExeName;
+ szCommandLine=Line.SubString (ind+1,Line.Length()-ind);
+
+ PROCESS_INFORMATION piProcInfo;
+ STARTUPINFO siStartInfo;
+ BOOL bFuncRetn = FALSE;
+
+// Set up members of the PROCESS_INFORMATION structure.
+
+ ZeroMemory( &piProcInfo, sizeof(PROCESS_INFORMATION) );
+
+// Set up members of the STARTUPINFO structure.
+
+ ZeroMemory( &siStartInfo, sizeof(STARTUPINFO) );
+ siStartInfo.cb = sizeof(STARTUPINFO);
+// siStartInfo.hStdError = hChildStdoutWr;
+ siStartInfo.hStdOutput = hChildStdoutWr;
+ siStartInfo.hStdInput = hChildStdinRd;
+ siStartInfo.dwFlags |= STARTF_USESTDHANDLES;
+
+// Create the child process.
+
+ bFuncRetn = CreateProcess(szExeName.c_str(),
+ szCommandLine.c_str(), // command line
+ NULL, // process security attributes
+ NULL, // primary thread security attributes
+ TRUE, // handles are inherited
+ 0, // creation flags
+ NULL, // use parent's environment
+ NULL, // use parent's current directory
+ &siStartInfo, // STARTUPINFO pointer
+ &piProcInfo); // receives PROCESS_INFORMATION
+
+ if (bFuncRetn == 0)
+ ErrorExit("CreateProcess failed\n");
+ else
+ {
+ CloseHandle(piProcInfo.hProcess);
+ CloseHandle(piProcInfo.hThread);
+ return bFuncRetn;
+ }
+}
+
+VOID WriteToPipe(VOID)
+{
+ DWORD dwRead, dwWritten;
+ CHAR chBuf[BUFSIZE];
+
+// Read from a file and write its contents to a pipe.
+
+ for (;;)
+ {
+ if (! ReadFile(hInputFile, chBuf, BUFSIZE, &dwRead, NULL) ||
+ dwRead == 0) break;
+ if (! WriteFile(hChildStdinWr, chBuf, dwRead,
+ &dwWritten, NULL)) break;
+ }
+
+
+// Close the pipe handle so the child process stops reading.
+
+ if (! CloseHandle(hChildStdinWr))
+ ErrorExit("Close pipe failed\n");
+ if (! CloseHandle(hInputFile))
+ ErrorExit("Close pipe failed for temporary file\n");
+}
+
+VOID ReadFromPipe(VOID)
+{
+ DWORD dwRead, dwWritten;
+ CHAR chBuf[BUFSIZE];
+ preprocflag=false;
+// Close the write end of the pipe before reading from the
+// read end of the pipe.
+
+ if (!CloseHandle(hChildStdoutWr))
+ ErrorExit("Closing handle failed");
+
+// Read output from the child process, and write to parent's STDOUT.
+
+ TStringList* tmpString=new TStringList();
+ for (;;)
+ {
+ if( !ReadFile( hChildStdoutRd, chBuf, BUFSIZE, &dwRead,
+ NULL) || dwRead == 0) break;
+ tmpString->Text=tmpString->Text+chBuf;
+ /* if (! WriteFile(hStdout, chBuf, dwRead, &dwWritten, NULL))
+ break;*/
+
+ }
+
+ if(!CloseHandle(hChildStdoutRd))
+ ErrorExit("Closing handle failed");
+
+ if (tmpString->Text.Trim() !="")
+ {
+ preprocflag=true;
+ tmpString->SaveToFile(ExtractFilePath(Application->ExeName)+"__temp2.dot");
+ }
+/* if (frmSettings->CheckBox3->Checked)
+ {
+ TfrmEditor* Editor=new TfrmEditor(Application);
+ Editor->ChangeFileName("Untitled"+IntToStr(frmMain->FileSeq++),true);
+ Editor->R->Text=tmpString->Text;
+ Editor->modified=true;
+ }*/
+ delete tmpString;
+}
+
+VOID ErrorExit (LPSTR lpszMessage)
+{
+ ShowMessage(lpszMessage);
+}
+void __fastcall TfrmSettings::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+/* AnsiString tempfile="";
+ tempfile=ExtractFilePath(Application->ExeName)+"__temp.dot";
+ DeleteFile(tempfile);
+ tempfile=ExtractFilePath(Application->ExeName)+"__temp2.dot";
+ DeleteFile(tempfile);*/
+
+
+}
+//---------------------------------------------------------------------------
+
+
+
--- /dev/null
+object frmSettings: TfrmSettings
+ Left = 362
+ Top = 229
+ BorderIcons = []
+ BorderStyle = bsSingle
+ Caption = 'Graphviz Settings'
+ ClientHeight = 465
+ ClientWidth = 372
+ Color = clBtnFace
+ DefaultMonitor = dmPrimary
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poDesktopCenter
+ OnClose = FormClose
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 372
+ Height = 465
+ Align = alClient
+ TabOrder = 0
+ DesignSize = (
+ 372
+ 465)
+ object Bevel2: TBevel
+ Left = 4
+ Top = 134
+ Width = 364
+ Height = 51
+ Anchors = [akLeft, akTop, akRight]
+ end
+ object Bevel1: TBevel
+ Left = 4
+ Top = 2
+ Width = 364
+ Height = 129
+ Anchors = [akLeft, akTop, akRight]
+ end
+ object Label1: TLabel
+ Left = 16
+ Top = 8
+ Width = 68
+ Height = 13
+ Caption = 'Layout Engine'
+ end
+ object Label2: TLabel
+ Left = 16
+ Top = 35
+ Width = 82
+ Height = 13
+ Caption = 'Output File Name'
+ end
+ object Label3: TLabel
+ Left = 16
+ Top = 58
+ Width = 78
+ Height = 13
+ Caption = 'Output File Type'
+ end
+ object Label4: TLabel
+ Left = 16
+ Top = 83
+ Width = 92
+ Height = 13
+ Caption = 'Graphviz Bin Folder'
+ end
+ object Label5: TLabel
+ Left = 7
+ Top = 139
+ Width = 31
+ Height = 13
+ Caption = 'Scope'
+ end
+ object Label6: TLabel
+ Left = 136
+ Top = 139
+ Width = 28
+ Height = 13
+ Caption = 'Name'
+ end
+ object Label7: TLabel
+ Left = 8
+ Top = 164
+ Width = 27
+ Height = 13
+ Caption = 'Value'
+ end
+ object ComboBox1: TComboBox
+ Left = 111
+ Top = 4
+ Width = 58
+ Height = 21
+ Style = csDropDownList
+ Anchors = [akLeft, akTop, akRight]
+ ItemHeight = 13
+ ItemIndex = 0
+ TabOrder = 0
+ Text = 'dot'
+ Items.Strings = (
+ 'dot'
+ 'neato'
+ 'twopi'
+ 'circo'
+ 'fdp')
+ end
+ object Edit1: TEdit
+ Left = 111
+ Top = 31
+ Width = 201
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 1
+ end
+ object ComboBox2: TComboBox
+ Left = 111
+ Top = 55
+ Width = 201
+ Height = 21
+ Style = csDropDownList
+ Anchors = [akLeft, akTop, akRight]
+ ItemHeight = 13
+ TabOrder = 2
+ OnChange = ComboBox2Change
+ Items.Strings = (
+ 'cmapx'
+ 'dot'
+ 'xdot'
+ 'fig'
+ 'gd'
+ 'gd2'
+ 'gif'
+ 'hpgl'
+ 'imap'
+ 'jpg'
+ 'mif'
+ 'mp'
+ 'pcl'
+ 'pic'
+ 'plain'
+ 'plain-ext'
+ 'png'
+ 'ps'
+ 'ps2'
+ 'svg'
+ 'svgz'
+ 'vrml'
+ 'vtx'
+ 'wbmp')
+ end
+ object Button1: TButton
+ Left = 317
+ Top = 31
+ Width = 45
+ Height = 21
+ Anchors = [akTop, akRight]
+ Caption = '...'
+ TabOrder = 3
+ OnClick = Button1Click
+ end
+ object CheckBox1: TCheckBox
+ Left = 40
+ Top = 107
+ Width = 145
+ Height = 17
+ Caption = 'Preview Output File'
+ Checked = True
+ State = cbChecked
+ TabOrder = 4
+ end
+ object Button3: TButton
+ Left = 293
+ Top = 438
+ Width = 75
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = 'OK'
+ Default = True
+ TabOrder = 5
+ OnClick = Button3Click
+ end
+ object Button4: TButton
+ Left = 213
+ Top = 438
+ Width = 75
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = 'Cancel'
+ TabOrder = 6
+ OnClick = Button4Click
+ end
+ object Edit2: TEdit
+ Left = 111
+ Top = 79
+ Width = 201
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 7
+ end
+ object ComboBox3: TComboBox
+ Left = 43
+ Top = 136
+ Width = 85
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ ItemIndex = 0
+ TabOrder = 8
+ Text = 'Graph'
+ OnChange = ComboBox3Change
+ Items.Strings = (
+ 'Graph'
+ 'Node'
+ 'Edge')
+ end
+ object ComboBox4: TComboBox
+ Left = 168
+ Top = 136
+ Width = 109
+ Height = 21
+ Style = csDropDownList
+ Anchors = [akLeft, akTop, akRight]
+ ItemHeight = 13
+ ItemIndex = 0
+ TabOrder = 9
+ Text = 'URL'
+ Items.Strings = (
+ 'URL'
+ 'bb'
+ 'bgColor')
+ end
+ object Memo1: TMemo
+ Left = 4
+ Top = 188
+ Width = 364
+ Height = 246
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ TabOrder = 10
+ end
+ object Button2: TButton
+ Left = 285
+ Top = 137
+ Width = 75
+ Height = 22
+ Anchors = [akTop, akRight]
+ Caption = 'Add'
+ TabOrder = 11
+ OnClick = Button2Click
+ end
+ object Button6: TButton
+ Left = 285
+ Top = 161
+ Width = 75
+ Height = 22
+ Anchors = [akTop, akRight]
+ Caption = 'Help'
+ TabOrder = 12
+ OnClick = Button6Click
+ end
+ object Edit3: TEdit
+ Left = 42
+ Top = 160
+ Width = 233
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 13
+ end
+ object BitBtn1: TBitBtn
+ Left = 90
+ Top = 438
+ Width = 41
+ Height = 25
+ Hint = 'Save Attributes'
+ Anchors = [akLeft, akBottom]
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 14
+ OnClick = BitBtn1Click
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000120B0000120B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 333333FFFFFFFFFFFFF33000077777770033377777777777773F000007888888
+ 00037F3337F3FF37F37F00000780088800037F3337F77F37F37F000007800888
+ 00037F3337F77FF7F37F00000788888800037F3337777777337F000000000000
+ 00037F3FFFFFFFFFFF7F00000000000000037F77777777777F7F000FFFFFFFFF
+ 00037F7F333333337F7F000FFFFFFFFF00037F7F333333337F7F000FFFFFFFFF
+ 00037F7F333333337F7F000FFFFFFFFF00037F7F333333337F7F000FFFFFFFFF
+ 00037F7F333333337F7F000FFFFFFFFF07037F7F33333333777F000FFFFFFFFF
+ 0003737FFFFFFFFF7F7330099999999900333777777777777733}
+ NumGlyphs = 2
+ end
+ object BitBtn2: TBitBtn
+ Left = 6
+ Top = 438
+ Width = 41
+ Height = 25
+ Hint = 'Clear Attributes'
+ Anchors = [akLeft, akBottom]
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 15
+ OnClick = BitBtn2Click
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000130B0000130B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0033333333B333
+ 333B33FF33337F3333F73BB3777BB7777BB3377FFFF77FFFF77333B000000000
+ 0B3333777777777777333330FFFFFFFF07333337F33333337F333330FFFFFFFF
+ 07333337F33333337F333330FFFFFFFF07333337F33333337F333330FFFFFFFF
+ 07333FF7F33333337FFFBBB0FFFFFFFF0BB37777F3333333777F3BB0FFFFFFFF
+ 0BBB3777F3333FFF77773330FFFF000003333337F333777773333330FFFF0FF0
+ 33333337F3337F37F3333330FFFF0F0B33333337F3337F77FF333330FFFF003B
+ B3333337FFFF77377FF333B000000333BB33337777777F3377FF3BB3333BB333
+ 3BB33773333773333773B333333B3333333B7333333733333337}
+ NumGlyphs = 2
+ end
+ object BitBtn3: TBitBtn
+ Left = 48
+ Top = 438
+ Width = 41
+ Height = 25
+ Hint = 'Load from file'
+ Anchors = [akLeft, akBottom]
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 16
+ OnClick = BitBtn3Click
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 04000000000000010000130B0000130B00001000000000000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0033333333B333
+ 333B33FF33337F3333F73BB3777BB7777BB3377FFFF77FFFF77333B000000000
+ 0B3333777777777777333330FFFFFFFF07333337F33333337F333330FFFFFFFF
+ 07333337F3FF3FFF7F333330F00F000F07333337F77377737F333330FFFFFFFF
+ 07333FF7F3FFFF3F7FFFBBB0F0000F0F0BB37777F7777373777F3BB0FFFFFFFF
+ 0BBB3777F3FF3FFF77773330F00F000003333337F773777773333330FFFF0FF0
+ 33333337F3FF7F37F3333330F08F0F0B33333337F7737F77FF333330FFFF003B
+ B3333337FFFF77377FF333B000000333BB33337777777F3377FF3BB3333BB333
+ 3BB33773333773333773B333333B3333333B7333333733333337}
+ NumGlyphs = 2
+ end
+ object CheckBox2: TCheckBox
+ Left = 244
+ Top = 107
+ Width = 97
+ Height = 17
+ Caption = 'Apply cairo filter'
+ Enabled = False
+ TabOrder = 17
+ end
+ object Memo2: TMemo
+ Left = 336
+ Top = 72
+ Width = 177
+ Height = 57
+ Lines.Strings = (
+ 'Memo2')
+ TabOrder = 18
+ Visible = False
+ WordWrap = False
+ end
+ end
+ object SD1: TSaveDialog
+ Filter = 'JPG|*.jpg|JPEG|*.jpeg'
+ Options = [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing]
+ OptionsEx = [ofExNoPlacesBar]
+ Left = 232
+ Top = 64
+ end
+ object SD2: TSaveDialog
+ Left = 256
+ Top = 64
+ end
+ object OD1: TOpenDialog
+ Left = 184
+ Top = 176
+ end
+end
--- /dev/null
+//---------------------------------------------------------------------------
+
+#ifndef USettingsH
+#define USettingsH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <Buttons.hpp>
+#include <Inifiles.hpp>
+#include <StrUtils.hpp>
+#include <Dialogs.hpp>
+struct prop
+{
+ AnsiString Name;
+ AnsiString Default;
+ AnsiString Scope;
+ AnsiString Engine;
+};
+
+//---------------------------------------------------------------------------
+class TfrmSettings : public TForm
+{
+__published: // IDE-managed Components
+ TSaveDialog *SD1;
+ TSaveDialog *SD2;
+ TOpenDialog *OD1;
+ TPanel *Panel1;
+ TBevel *Bevel2;
+ TBevel *Bevel1;
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ TLabel *Label4;
+ TLabel *Label5;
+ TLabel *Label6;
+ TLabel *Label7;
+ TComboBox *ComboBox1;
+ TEdit *Edit1;
+ TComboBox *ComboBox2;
+ TButton *Button1;
+ TCheckBox *CheckBox1;
+ TButton *Button3;
+ TButton *Button4;
+ TEdit *Edit2;
+ TComboBox *ComboBox3;
+ TComboBox *ComboBox4;
+ TMemo *Memo1;
+ TButton *Button2;
+ TButton *Button6;
+ TEdit *Edit3;
+ TBitBtn *BitBtn1;
+ TBitBtn *BitBtn2;
+ TBitBtn *BitBtn3;
+ TCheckBox *CheckBox2;
+ TMemo *Memo2;
+ void __fastcall Button6Click(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall BitBtn2Click(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall ComboBox3Change(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall ComboBox2Change(TObject *Sender);
+ void __fastcall BitBtn1Click(TObject *Sender);
+ void __fastcall BitBtn3Click(TObject *Sender);
+ void __fastcall Button3Click(TObject *Sender);
+ void __fastcall Button4Click(TObject *Sender);
+ void __fastcall Button5Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+private: // User declarations
+public: // User declarations
+ __fastcall TfrmSettings(TComponent* Owner);
+ int TfrmSettings::Init(bool silent=false);
+ bool LoadAttrs(AnsiString Engine,AnsiString Scope);
+ bool DeleteIniKeys(TComboBox*);
+ void TfrmSettings::RunDosInMemo(String DosApp,TMemo* AMemo) ;
+// bool TfrmSettings::runproc(AnsiString szExeName,AnsiString szCommandLine,bool silent);
+ AnsiString PreprocCmd;
+ AnsiString PreprocPath;
+
+// bool TfrmSettings::preproc(AnsiString Line,bool silent);
+
+};
+//---------------------------------------------------------------------------
+bool TfrmSettings::LoadAttrs(AnsiString Engine,AnsiString Scope)
+{
+ ComboBox4->Items->Clear();
+ TStringList* props=new TStringList();
+ props->LoadFromFile(ExtractFilePath(Application->ExeName)+"props.txt");
+ for(int ind=0;ind <props->Count;ind++)
+ {
+ int tokenindex=0;
+ AnsiString a="";
+ AnsiString DATA[4];
+ for(int ind2=1;ind2 <=props->Strings[ind].Length();ind2++)
+ {
+ a=props->Strings[ind].SubString(ind2,1);
+ if(a !=",")
+ {
+ if (a != "\"")
+ DATA[tokenindex]=DATA[tokenindex]+a;
+ }
+ else
+ tokenindex++;
+ }
+
+ if ( AnsiContainsText(DATA[2],Scope) || AnsiContainsText(DATA[2],"ANY_ELEMENT"))
+ {
+ if ( AnsiContainsText(DATA[3],Scope) || AnsiContainsText(DATA[3],"ALL_ENGINES"))
+ {
+ ComboBox4->Items->Add(DATA[0]);
+ }
+ }
+
+
+ }
+ ComboBox4->ItemIndex=0;
+
+
+
+}
+bool TfrmSettings::DeleteIniKeys(TComboBox* A)
+{
+ bool go;
+ AnsiString a="";
+ AnsiString data="";
+ AnsiString data2="";
+ for (int ind=0;ind < A->Items->Count;ind++)
+ {
+ data=A->Items->Strings[ind];
+ go=false;
+ data2="";
+ for (int ind2=1;ind2 <=data.Length();ind2++)
+ {
+ a=data.SubString(ind2,1);
+ if (go)
+ data2=data2+a;
+ if(a=="=")
+ go=true;
+ }
+ A->Items->Strings[ind]=data2;
+ }
+
+}
+
+
+
+extern PACKAGE TfrmSettings *frmSettings;
+//---------------------------------------------------------------------------
+#endif
--- /dev/null
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "Umain.h"
+#include "UEditor.h"
+#include "Application.h"
+#include "USettings.h"
+#include "UAbout.h"
+#include "cgraph.h"
+#include "UPreProcess.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+#define SoftNAME "GVexec"
+TfrmMain *frmMain;
+//---------------------------------------------------------------------------
+__fastcall TfrmMain::TfrmMain(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TfrmMain::New1Click(TObject *Sender)
+{
+ TfrmEditor* Editor=new TfrmEditor(Application);
+ Editor->ChangeFileName("Untitled"+IntToStr(FileSeq++),true);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Label1Click(TObject *Sender)
+{
+ this->ActiveMDIChild->Caption="this is active";
+
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TfrmMain::FormCreate(TObject *Sender)
+{
+ FileSeq=1;
+ AnsiString g=SoftNAME;
+// ODB->InitialDir=ReadFromRegistry("\\SOFTWARE\\ATT\\GRAPHVIZ\\","InstallPath")+"\\graphs";
+/* if (!FileExists(ODB->InitialDir+"\\dot.exe"))
+ {
+ ShowMessage (ODB->InitialDir+"\\dot.exe");
+ ShowMessage ("Could not locate dot.exe , please make sure that dot.exe is in the same folder with GVedit");
+ Application->Terminate();
+ }*/
+// ODB->InitialDir=ExtractFilePath(Application->ExeName);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Open1Click(TObject *Sender)
+{
+ if(ODB->Execute())
+ {
+ if(FileExists(ODB->FileName))
+ {
+ TfrmEditor* Editor=new TfrmEditor(Application);
+ Editor->ChangeFileName(ODB->FileName,false);
+ FileSeq++;
+ Editor->R->Lines->LoadFromFile(ODB->FileName);
+ Editor->modified=false;
+ }
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmMain::SaveAs1Click(TObject *Sender)
+{
+ if(this->ActiveMDIChild)
+ {
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if(Ed->isEditor)
+ Ed->SaveAs();
+ else
+ Ed->Editor->SaveAs();
+
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Save1Click(TObject *Sender)
+{
+ ToolButton5->Click();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::ToolButton1Click(TObject *Sender)
+{
+ frmSettings->Init(true);
+}
+//---------------------------------------------------------------------------
+AnsiString TfrmMain::ReadFromRegistry(AnsiString RBKey,AnsiString RKey)
+{
+
+/* example
+ RBKey="\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"
+ RKey="Path"
+*/
+ AnsiString S="";
+ TRegistry *Registry = new TRegistry();
+ try
+ {
+ Registry->RootKey = HKEY_LOCAL_MACHINE;
+ // False because we do not want to create it if it doesn't exist
+ if(Registry->OpenKey(RBKey,false))
+ {
+ S=Registry->ReadString(RKey);
+ }
+ Registry->CloseKey();
+ delete Registry;
+ return S;
+ }
+ catch(...)
+ {
+ delete Registry;
+ return S;
+ }
+}
+void __fastcall TfrmMain::Undo1Click(TObject *Sender)
+{
+
+ TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if (Ed)
+ {
+ if (Ed->isEditor)
+ Ed->R->Undo();
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmMain::Cut1Click(TObject *Sender)
+{
+ TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if (Ed)
+ {
+ if (Ed->isEditor)
+ Ed->R->CutToClipboard();
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Copy1Click(TObject *Sender)
+{
+ TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if (Ed)
+ {
+ if (Ed->isEditor)
+ Ed->R->CopyToClipboard();
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Paste1Click(TObject *Sender)
+{
+
+
+ TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if (Ed)
+ {
+ if (Ed->isEditor)
+ Ed->R->PasteFromClipboard();
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmMain::SaveCommandlogtofile1Click(TObject *Sender)
+{
+ if( (Memo1->Text.Trim() !="")&& (SDB->Execute()))
+ Memo1->Lines->SaveToFile(SDB->FileName);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Clear1Click(TObject *Sender)
+{
+ Memo1->Lines->Clear();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Cascade1Click(TObject *Sender)
+{
+ this->Cascade();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Tile1Click(TObject *Sender)
+{
+ this->Tile();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::DotProcess1Click(TObject *Sender)
+{
+ frmSettings->Init(true);
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Settings1Click(TObject *Sender)
+{
+ frmSettings->Init();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::ToolButton2Click(TObject *Sender)
+{
+ frmSettings->Init();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmMain::ToolButton3Click(TObject *Sender)
+{
+ TfrmEditor* Editor=new TfrmEditor(Application);
+ Editor->ChangeFileName("Untitled"+IntToStr(FileSeq++),true);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::ToolButton6Click(TObject *Sender)
+{
+ if(ODB->Execute())
+ {
+ if(FileExists(ODB->FileName))
+ {
+ TfrmEditor* Editor=new TfrmEditor(Application);
+ Editor->ChangeFileName(ODB->FileName,false);
+ FileSeq++;
+ Editor->R->Lines->LoadFromFile(ODB->FileName);
+ Editor->modified=false;
+ }
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::ToolButton5Click(TObject *Sender)
+{
+ if(this->ActiveMDIChild)
+ {
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if(Ed->isEditor)
+ Ed->Save();
+ else
+ Ed->Editor->Save();
+
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::AboutGraphvizEditor1Click(TObject *Sender)
+{
+ frmAbout->ShowModal();
+}
+//---------------------------------------------------------------------------
+void TfrmMain::UpdateMainForm()
+{
+ //Updates buttons enabled/disabled respectively to active editor
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if(Ed)
+ {
+ ToolButton1->Enabled=true;
+ ToolButton2->Enabled=true;
+
+ ToolButton5->Enabled=Ed->modified;
+ Save1->Enabled=Ed->modified;
+ SaveAs1->Enabled=Ed->modified;
+ }
+ else
+ {
+ ToolButton1->Enabled=false;
+ ToolButton2->Enabled=false;
+
+ ToolButton5->Enabled=false;
+ Save1->Enabled=false;
+ SaveAs1->Enabled=false;
+
+ }
+
+
+}
+
+void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ //check all editors before closing
+ TfrmEditor* EdStart=((TfrmEditor*)this->ActiveMDIChild);
+ if(EdStart)
+ {
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ do
+ {
+ Ed->Close();
+ Ed=((TfrmEditor*)this->ActiveMDIChild);
+ }while (Ed);
+
+
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Find1Click(TObject *Sender)
+{
+ if(this->ActiveMDIChild)
+ {
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if(!Ed->isEditor)
+ Ed=Ed->Editor;
+ Ed->FindDialog1->Position = Point(0, 0);
+ Ed->FindDialog1->Execute();
+
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Replace1Click(TObject *Sender)
+{
+ if(this->ActiveMDIChild)
+ {
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if(!Ed->isEditor)
+ Ed=Ed->Editor;
+ Ed->ReplaceDialog1->Position = Point(0, 0);
+ Ed->ReplaceDialog1->Execute();
+
+ }
+
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Timer1Timer(TObject *Sender)
+{
+ static int ct=0;
+ Panel1->Color= (Panel1->Color==clRed)? clBtnFace:clRed;
+ ct++;
+ if(ct==10)
+ {
+ ct=0;
+ Timer1->Enabled=false;
+ Panel1->Color=clBtnFace;
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Close1Click(TObject *Sender)
+{
+ if(this->ActiveMDIChild)
+ {
+ TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
+ if(Ed->isEditor)
+ Ed->Close();
+ else
+ Ed->Editor->Close();
+
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Help2Click(TObject *Sender)
+{
+ AnsiString FileName="GVedit.html";
+ AnsiString action="open";
+ ShellExecute(NULL, action.c_str(),FileName.c_str(), NULL, NULL, SW_SHOW); //read me file, if exists it shows
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TfrmMain::Graphvizonnet1Click(TObject *Sender)
+{
+ AnsiString FileName="http://www.graphviz.org";
+ AnsiString action="open";
+ ShellExecute(NULL, action.c_str(),FileName.c_str(), NULL, NULL, SW_SHOW); //read me file, if exists it shows
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmMain::PreprocessorSettings1Click(TObject *Sender)
+{
+ frmPre->ShowModal();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TfrmMain::Button1Click(TObject *Sender)
+{
+ try{
+ Image1->Picture->LoadFromFile("c:/gg.jpg");
+ }
+ catch(...)
+ {
+ ;
+ }
+}
+//---------------------------------------------------------------------------
+
+
--- /dev/null
+object frmMain: TfrmMain
+ Left = 457
+ Top = 111
+ Width = 1138
+ Height = 855
+ Caption = 'GVedit v:0.99 beta'
+ Color = clGray
+ DefaultMonitor = dmPrimary
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsMDIForm
+ Menu = MainMenu1
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnClose = FormClose
+ OnCreate = FormCreate
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Splitter1: TSplitter
+ Left = 0
+ Top = 710
+ Width = 1130
+ Height = 3
+ Cursor = crVSplit
+ Align = alBottom
+ end
+ object Image1: TImage
+ Left = 0
+ Top = 37
+ Width = 1130
+ Height = 673
+ Align = alClient
+ Center = True
+ Picture.Data = {
+ 0A544A504547496D6167652C9E0000FFD8FFE000104A46494600010201004800
+ 480000FFE111F94578696600004D4D002A000000080007011200030000000100
+ 010000011A00050000000100000062011B0005000000010000006A0128000300
+ 00000100020000013100020000001B0000007201320002000000140000008D87
+ 69000400000001000000A4000000D00000004800000001000000480000000141
+ 646F62652050686F746F73686F702043532057696E646F777300323030383A30
+ 333A32352031303A35323A3433000000000003A001000300000001FFFF0000A0
+ 02000400000001000000E5A0030004000000010000014D000000000000000601
+ 0300030000000100060000011A0005000000010000011E011B00050000000100
+ 00012601280003000000010002000002010004000000010000012E0202000400
+ 000001000010C30000000000000048000000010000004800000001FFD8FFE000
+ 104A46494600010201004800480000FFED000C41646F62655F434D0002FFEE00
+ 0E41646F626500648000000001FFDB0084000C08080809080C09090C110B0A0B
+ 11150F0C0C0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C
+ 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E
+ 0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C
+ 0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC000110800A0006E03012200
+ 021101031101FFDD00040007FFC4013F00000105010101010101000000000000
+ 00030001020405060708090A0B01000105010101010101000000000000000100
+ 02030405060708090A0B1000010401030204020507060805030C330100021103
+ 04211231054151611322718132061491A1B14223241552C16233347282D14307
+ 259253F0E1F163733516A2B283264493546445C2A3743617D255E265F2B384C3
+ D375E3F3462794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6
+ 37475767778797A7B7C7D7E7F711000202010204040304050607070605350100
+ 021103213112044151617122130532819114A1B14223C152D1F0332462E17282
+ 92435315637334F1250616A2B283072635C2D2449354A317644555367465E2F2
+ B384C3D375E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6
+ E6F62737475767778797A7B7C7FFDA000C03010002110311003F00BB2276F789
+ 4B54277F3CE9D46CE3E6D522DAFF00D1F71F98125334D3E48563F1EA6873D800
+ 9312D025507753A5CED94D3EAB8684319B8FE0122405D184A42C0D3B93C21D3D
+ FE496FF2596EEA02BFE7F15D537F79CC81F7C2B3564635E016341248D00050B0
+ 938E405D0207EE9E26D1B63B26F5BF9283B59A7E8FB9FCD510D640FD1F63F9A8
+ B1DB67D51E0A41E0C79AA8E0CD9FCDF6FDD53C678707D711B0C8111A1F0FED24
+ 96CA4A0D7169DAEF91F153494A49249253FFD0B07F9E7473B3FEFCD44DB648D4
+ 723F34FF00E4D0DDFCF3A78F4FFEFCD528AE7E8BB91D9E884172AB6BFA9E543C
+ 91481BDF1E13ECAC6BF9CB52BACD558AEA0DAD80186B5A40FF00AB599D28B6AB
+ DF55A21C3D8E1AC87349EC3F7969C5703DAEE0F67A6C36F1EACDCCFCF43E4A1C
+ 1FDD5C8B769F7088FDD3FF009359B9F87F673F6BA0060DC05AC68DADD7E8D8D1
+ 2EDBEEFA4B448AF69F6BB8F07AABD4DF5371DCC821CF226770D07BA7DFF04A5F
+ 295B86FDC8D753AEBFA3FA481DD558CA98482FB8C9DBB481A12DDDEA6EFF00A8
+ 52C1CD391B9B63D8CB2619541E2390E2EF7296262D37F4FAEBBD8E3BCB9ED203
+ A40713B5CC31FBA84EE9141C70D2E2DB9BB8FABB5D044CB7D46C7E6B7F39A88B
+ A0B67C3C72ADACD79371CD7EDE471FBA7FF24A156E665364887CB4E91C896F75
+ 469CBB31DDE866825A47B2D3331F9A7F9752B966C1631ED074734830EF108AD6
+ E39A0882935C41DAEF91F153235507364781EC504B349458E9D0E8472A4929FF
+ D1B07F9E77F53FEFCD4ADDDB86FDBB3E2E8DDA6DDFB424EFE79DAC7E8F9FED35
+ 48B993A5A791F9C114173F2B10DAEAEEA9CDAB20EE0771710F00BB66F76DDDBB
+ F36B7FFA3436F53C9A5E68BEA71B2BFA4D68DFA7F6372D1B6F65353AD36122B0
+ E74070D48074543A46C6D5765DB6EDB6C2771DD040E75FEBD8818EBD97C72111
+ A204A3DA4AFDA990F96D54DCF274835FFE62A3461DD93631F961ADACEADA35D6
+ 08116EDFA0DFE42D2F635AE02D76BA905E4EA7FAC9ECB2B682E75C40041712E4
+ B87BEA9F774222046F7E1DFED5AF2FD910D97BB6B46A353FF914325FE8595C00
+ 6B6B841249DA448F77E76D6228B2ADDB45C774C91BBB1F925FA32DDA6C241044
+ 6E1C22C6872F1464D459606E8258FD65A7C56762D975369C0BE3735C3D2278FD
+ EDA3F90FFF0006B54FA6191EA1D1BDDD2A8F56A18FABD763E6DA60CCEBB7FF00
+ 3077BD255B67ED9783FA4A9AE13CB4907FE94A2D795459003B6B8FE6BF43FF00
+ 9155F1ADAF231EBB5CF21CFF00A4247D21A3927D353846F9E7B84956DA7820EE
+ 1C8E7E0A7B86D954A9B5D400D2EDF5C7D12648FEA2B236EC3AFB7F82097FFFD2
+ B07F9F77F53FEFCD442E7FEE9E47E70433FCF3BB7B39FED354C8D7E99E47EEFF
+ 00E4524347AD5CE6E0ED223D4781C83A097944A71AC6E2B181B0457A0DC2092C
+ 6FD2FEA59B9EAAF5BD7ECD5EEDDB9CE3DBC5ACFCD0AFD97066F12E26B1A005BE
+ ED07D1F6FE6A2A484D925DAC11F465B1F937283C5E43C0101DA359BC1D4FE76E
+ 77D0FEA3511CD21A7DE78FE4FF00E45317336B9FEA4B5A758DA623FB29298B3D
+ 463C9D9EC1F41A1C091ABDFB3FE97B13D66C15301619DBA82F04CFF58FD249A5
+ C5C1AEDCDE4CCB08FEAE83E927690E6B4B6C9041820B483F824A636DDE957B9E
+ 20110350B3CE7E564B9CDC5A4D8D9871E183F92E7BBDAA399BF2738636E2180B
+ 593A68DDBEA3F85A62B631A2BACECAD901AC1B600FF354840801A03290E2D7A2
+ 0126FC1CF6B3ABD6C0D657506B78AD8E023E03DAD4F57527B6CF4726B756FF00
+ DD7687FB3FBCB436FF002CF3FC9FEE41C9C5664D1E939D2E126B276FB5DF9A78
+ FF003934487E90047952ABB5A892E6486C82DE6429B40DAFF8859FD36D7BD963
+ 1C6035A1C069C990795A2D1A3FE21230A9F0F88FC540DC6FC1FFD3B0EFE79DDF
+ D9C7F69AA6409FE6FB8ECDFEF503FCFBA3F73FEFCD4F7B5FE938970D208F6F70
+ 6477450E6F5703ED189EDDA24F86BEF67EEAD07D2D76F966AE0E830C96C80C76
+ DD7F75AA875D0E6FD9EC27873C7111AB5FE256990F22777227E8F8FF00692531
+ 2CAE4BFD11B88D5D0C9FBE533AA6124BAB2E27DB276F06346ED2A65AFDA7DDDB
+ F77FF324C45A4FD2EE3F37FDA92966B48E5BB8C9024306BAF3B5263618D0E66E
+ 21BABA1BA9EE795287889777FDDF8FF2930DF03DDD8FE6FF00E64929CBCC071F
+ A832E2D865BB5CC988DCD01B63345A6D7576377B192D24766F979A8DF40BE835
+ DB0E61034DB0411F9CD3BBDAE6AA2303A8E3BBF55B05CC0740FF0063BFF20E4F
+ B120013463A03E08A236EAE8C0FF0047DFC1BFDE83917329A892C01D04364379
+ F154AACAEAB905ECA58C71ADDB5E778D0FDFEE526F4CBED707E6DA08E7D1AE48
+ 3FD77FB7FE8240446A4DF8056BD031E98CFD1DB716CB1E036BE350D9DCEF77F2
+ 96937970F308658F0DE4001BA00D81007C511BCBBE23F220664CF8BC6D40695E
+ 0FFFD4B0EFE79D3A8F4F8E7F39A958CA9CD20B0804898679FC123FCF3BFA9FF7
+ E6A9BC3FC4723B1FFC922105CFEB2C6BF0C39ACDA596493B63476E6AB388FAEC
+ C5A5FB249AC490D9D40DAEEDFBCD52BE975F8D65248F78701A1E75733F3BF795
+ 1E9598D6627A563834B5FB1A08249367D1035FDFDE92BA3A2457B4FE8CF1FB9F
+ EC4C457BBE81FA43F33FD8A643F69D471E07FF002499E1F3C8E4763FF92482A9
+ 62D6188ACF27F33FD89806C0FD1F00FE67FB14E1E6351CF81F3FE5260D7C0F70
+ E0F63FF92494C4FA6587F47AEDE767FB157CF2E6E2DA6A6861FCFB1C08DADFE4
+ 7B7E9BBE82B5B5E19C8FA3E07FF24B2FAB643EDB460530E7170DFB444BFF0036
+ BE5DF43E93D2B5521E92CB9B7B6D6D45F413E9D90018D34747F216B86B74FD19
+ EFF99FEC4B1B1CE3D2CA1A410C3A983A93F49DF4BF791007C0D477EC7FF24929
+ 16C616CEC83B7F73FD88AD1ABC7C3F22687ECE47D1F03E1FD6526FF38FF88FC8
+ 95A9FFD5B0EFE79D3C7A7FF7E6F829115F83B91FBEA27F9E747EE7FDF9AA64D9
+ E0DE4773FF00914505816B63D921F276970B08075E40858791819B538DBE9FA9
+ A97EEA818E777D08DCD5BE3D491A3793DCF9FF002553BF2AD739B4D03758E900
+ 03034FA4F73BF71A84A55E3D912908FD760DA71A482413A8D3577F1299DE89E0
+ F7F177F7AAA3A61702EC8B5D6BA261AE2C68F906EFFF00A69DFD2EA6826973E9
+ 74E8458E70F9B6C6942E7E1F6A3D7DA2DA68AF43EE324FEFF9A43D381F4B83FB
+ EA9D5764635A2AC88703AB1E3E8BA39FEA3DA8391D5326C79C5C3AC8B04B5CFE
+ 5DFD91F46BFEBB9212BB07423A2A32BB04511B84BD473EAC761AA9939044132E
+ F603DCC9FA7FB8D51E99822969BF203BD77C6D690E968279747F85B13E174BF4
+ 3F4D76DB2E896892434FEF7D1FD258AF3F7EE3A3791DCFFE453972FF00A3FE57
+ 3FCB4C3D381F4BBFEFA7DEF9D0379F13FF0091481B20406F7EE7FF002292BF96
+ CB457B7874EDFE5A9B7F9C7FC47E450F7ECD63E8F89F0FEAA4D3EF7FCBF2254A
+ 7FFFD6B0E8F59D3A0F4F9E3F39A9CBAAFF0049DC7E79FEF4C7F9F7473B3FEFCD
+ 442EB3C0723F3BFF00314505197561A7F49AFBA3DE7C1DE6A9E1064BAC718258
+ 00331A7E72BC5D66E1A0E7F7BE3FC959E77E059B9DA63D87D8F990D9FF000567
+ FDF136428C65DAEFEAC731AC65FBB77A776F6EAB6FF39D87E79FEF4EE356BEFE
+ E3F3CFF7A8B3203D9ED83A69EEFF006293EF8D4C73FBDFF98A3C437BFC57F146
+ AEC35F2856EA3474B9AF05BEE9F1DDFF00453E29AFD1049DA5C5DBA0C4C18D61
+ 02EBDF976FD9B1B577E738FD1603F9CF3FBDFBAD576B6BAAA995B07B18D81EED
+ 7E27DBF9C9B1D666436AE1591D6665D2B8478AC5D4EDFA5F9BFBE7FBD3BDD57E
+ FF0071F9E7CBCD489B4B7E88E3F7BFF314EE364447047E77FE62A464FE5B309A
+ E3E9F7FDF3FDE935D5C7D3D75FCF3FDEA60BF88EFF00BDFF0098A4D2F0043477
+ FCEFFCC5057F2D918755B7E9C9DBFBC7FBD4DA0FA8ED3B8FC89F759B381F47F7
+ BCBFAA9DBFCE3FE23F2256A7FFD7B0EFE79DAC7B39FED354896FFA5EE3BB7FF2
+ 2A27F9E77F53FEFCD4F75A6AAACB7613E982F831AED1BBB391415F6CC10F3C9E
+ EDF3FE4A896B76ED7BF42D20B4EDE3CC16AE7E8A28C9C5BFA8751B2C743C3373
+ 002439C019DAEFCDDCFF00E6DAAD61E6B717A6DCEA1EECAF45CC1B6D6EC6B7D4
+ 3B36B3DEF7EDD37256AA6E9E9981AB9AE7566386581A3FCD48F4CC1FCEB2C789
+ 1A3AD91FC10F1FA867DF4597FD8C1A8301A76BA0B9D3B5C773CFF32CF7B9059D
+ 6EF19155791553B6D70DC297EE7B24ED1BFDCF6EEFE42143B2384760E8D75D55
+ 00CA9C18C04C35A5807E44466A00164983A02DFF00C8ACEB7AAE60CDBF128C56
+ DAFA5CEDA64CC37E939FFE77E62A7D4335B9FD218F2C0C732F0D781AB64B1EE6
+ B9B3EEF7351B4D3B84B769FD2F6F16FF00E45392DD7F4BDC776FF72CCC7EA992
+ 3228C3BB1854CB98D6D4493BA0B76D563BF3763DCD4EDEB4FF00B3653EEA5ACB
+ F19CD68AC13B492767BB77BFDAE6392553A6003A8B0C03CCB7FF00229816C0FD
+ 2F8F76FF00E4563DB68B7A874EB322802EB031C08711B41B1DB3DBF9DFDB44C8
+ EAF9F8D60AECC5AB7389F4DA1C5CE209869D8CFA3BD253A72DDBFCE7E6F12DF0
+ F829B7F9C7FC47E4506B9FE8B4D95ED7960DC0104031EE6FD25369FD23F43DBF
+ 224A7FFFD0B07F9F77F53FEFCD53731C6417120982081A83C8E145E1C1FBC377
+ CB769131DE7C0A8FBBFD037EF1FF0090494E733A4750C57B86065065561FA2E1
+ AE9F47F35EDDCDFDF526F45B1983750DB83ADC82C7BDC47B47A677FF005FF395
+ FF0077FA06FDE3FF00209A493FCCB7EF1FF91454D7BBA6DB6F4A6617AA03AB6B
+ 758F69DA4983F9FB5CAA9E89984513652D38EE01AC630B4100B5DB9EE6FBACB5
+ FF00CA5A3AF6A47DE3FF0022A52EFF0040DFBC7FE412538E59936F5CCD6E2DBE
+ 8DD2F3B88E41DA1CD46FD8761E9C31996B7D4759EABDC41DBED6BAB6B5BF9DF9
+ CB489747F30DFBC7FE41205D1FCC37EF1FF90494D3B7A75D665E2E57A8D0DC66
+ 31AE04193B27E8FE6A8E5F45FB4677AFEA0153CB4DCC83B9C468EDB1EDF7B55D
+ 9FF801F78FFC8A5EE274A07DE3FF0022929AF95816DDD471F283DA194384B48D
+ 4C38D9EDDBED5559D23A95790725B9359BDE4936399B8EBCFD30E5A443A7F981
+ F78FFC8A73B8FF008068F98FFC824A5EB6DC2867A8FDD66C01E434004C6AEE11
+ 1B3EA3F5EE3F2210DDFE807DE3FF0022880384BA3DC7B4FF00DF9253FFD9FFED
+ 16CA50686F746F73686F7020332E30003842494D04040000000000071C020000
+ 020002003842494D0425000000000010460CF28926B856DAB09C01A1B0A79077
+ 3842494D03ED000000000010004800000001000100480000000100013842494D
+ 042600000000000E000000000000000000003F8000003842494D040D00000000
+ 00040000005A3842494D04190000000000040000001E3842494D03F300000000
+ 0009000000000000000001003842494D040A00000000000100003842494D2710
+ 00000000000A000100000000000000013842494D03F5000000000048002F6666
+ 0001006C66660006000000000001002F6666000100A1999A0006000000000001
+ 003200000001005A00000006000000000001003500000001002D000000060000
+ 000000013842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000
+ 3842494D040000000000000200013842494D0402000000000004000000003842
+ 494D0408000000000010000000010000024000000240000000003842494D041E
+ 000000000004000000003842494D041A00000000033D00000006000000000000
+ 00000000014D000000E500000004004C006F0067006F00000001000000000000
+ 00000000000000000000000000010000000000000000000000E50000014D0000
+ 0000000000000000000000000000010000000000000000000000000000000000
+ 000010000000010000000000006E756C6C0000000200000006626F756E64734F
+ 626A6300000001000000000000526374310000000400000000546F70206C6F6E
+ 6700000000000000004C6566746C6F6E67000000000000000042746F6D6C6F6E
+ 670000014D00000000526768746C6F6E67000000E500000006736C6963657356
+ 6C4C73000000014F626A6300000001000000000005736C696365000000120000
+ 0007736C69636549446C6F6E67000000000000000767726F757049446C6F6E67
+ 00000000000000066F726967696E656E756D0000000C45536C6963654F726967
+ 696E0000000D6175746F47656E6572617465640000000054797065656E756D00
+ 00000A45536C6963655479706500000000496D672000000006626F756E64734F
+ 626A6300000001000000000000526374310000000400000000546F70206C6F6E
+ 6700000000000000004C6566746C6F6E67000000000000000042746F6D6C6F6E
+ 670000014D00000000526768746C6F6E67000000E50000000375726C54455854
+ 000000010000000000006E756C6C54455854000000010000000000004D736765
+ 5445585400000001000000000006616C74546167544558540000000100000000
+ 000E63656C6C54657874497348544D4C626F6F6C010000000863656C6C546578
+ 745445585400000001000000000009686F727A416C69676E656E756D0000000F
+ 45536C696365486F727A416C69676E0000000764656661756C74000000097665
+ 7274416C69676E656E756D0000000F45536C69636556657274416C69676E0000
+ 000764656661756C740000000B6267436F6C6F7254797065656E756D00000011
+ 45536C6963654247436F6C6F7254797065000000004E6F6E6500000009746F70
+ 4F75747365746C6F6E67000000000000000A6C6566744F75747365746C6F6E67
+ 000000000000000C626F74746F6D4F75747365746C6F6E67000000000000000B
+ 72696768744F75747365746C6F6E6700000000003842494D042800000000000C
+ 000000013FF00000000000003842494D041100000000000101003842494D0414
+ 0000000000040000001E3842494D040C0000000010DF000000010000006E0000
+ 00A00000014C0000CF80000010C300180001FFD8FFE000104A46494600010201
+ 004800480000FFED000C41646F62655F434D0002FFEE000E41646F6265006480
+ 00000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F151813
+ 1315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+ 0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E1411
+ 0C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C
+ 0C0C0C0C0C0C0C0C0C0CFFC000110800A0006E03012200021101031101FFDD00
+ 040007FFC4013F00000105010101010101000000000000000300010204050607
+ 08090A0B0100010501010101010100000000000000010002030405060708090A
+ 0B1000010401030204020507060805030C330100021103042112310541516113
+ 22718132061491A1B14223241552C16233347282D14307259253F0E1F1637335
+ 16A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A485
+ B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7B7
+ C7D7E7F711000202010204040304050607070605350100021103213112044151
+ 617122130532819114A1B14223C152D1F0332462E1728292435315637334F125
+ 0616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F34694
+ A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F627374757677787
+ 97A7B7C7FFDA000C03010002110311003F00BB2276F7894B54277F3CE9D46CE3
+ E6D522DAFF00D1F71F98125334D3E48563F1EA6873D8009312D025507753A5CE
+ D94D3EAB8684319B8FE0122405D184A42C0D3B93C21D3DFE496FF2596EEA02BF
+ E7F15D537F79CC81F7C2B3564635E016341248D00050B0938E405D0207EE9E26
+ D1B63B26F5BF9283B59A7E8FB9FCD510D640FD1F63F9A8B1DB67D51E0A41E0C7
+ 9AA8E0CD9FCDF6FDD53C678707D711B0C8111A1F0FED2496CA4A0D7169DAEF91
+ F153494A49249253FFD0B07F9E7473B3FEFCD44DB648D4723F34FF00E4D0DDFC
+ F3A78F4FFEFCD528AE7E8BB91D9E884172AB6BFA9E543C91481BDF1E13ECAC6B
+ F9CB52BACD558AEA0DAD80186B5A40FF00AB599D28B6ABDF55A21C3D8E1AC873
+ 49EC3F7969C5703DAEE0F67A6C36F1EACDCCFCF43E4A1C1FDD5C8B769F7088FD
+ D3FF009359B9F87F673F6BA0060DC05AC68DADD7E8D8D12EDBEEFA4B448AF69F
+ 6BB8F07AABD4DF5371DCC821CF226770D07BA7DFF04A5F295B86FDC8D753AEBF
+ A3FA481DD558CA98482FB8C9DBB481A12DDDEA6EFF00A852C1CD391B9B63D8CB
+ 2619541E2390E2EF7296262D37F4FAEBBD8E3BCB9ED203A40713B5CC31FBA84E
+ E9141C70D2E2DB9BB8FABB5D044CB7D46C7E6B7F39A88BA0B67C3C72ADACD793
+ 71CD7EDE471FBA7FF24A156E665364887CB4E91C896F75469CBB31DDE866825A
+ 47B2D3331F9A7F9752B966C1631ED074734830EF108AD6E39A0882935C41DAEF
+ 91F153235507364781EC504B349458E9D0E8472A4929FFD1B07F9E77F53FEFCD
+ 4ADDDB86FDBB3E2E8DDA6DDFB424EFE79DAC7E8F9FED3548B993A5A791F9C114
+ 173F2B10DAEAEEA9CDAB20EE0771710F00BB66F76DDDBBF36B7FFA3436F53C9A
+ 5E68BEA71B2BFA4D68DFA7F6372D1B6F65353AD36122B0E74070D48074543A46
+ C6D5765DB6EDB6C2771DD040E75FEBD8818EBD97C72111A204A3DA4AFDA990F9
+ 6D54DCF274835FFE62A3461DD93631F961ADACEADA35D608116EDFA0DFE42D2F
+ 635AE02D76BA905E4EA7FAC9ECB2B682E75C40041712E4B87BEA9F774222046F
+ 7E1DFED5AF2FD910D97BB6B46A353FF914325FE8595C006B6B841249DA448F77
+ E76D6228B2ADDB45C774C91BBB1F925FA32DDA6C2410446E1C22C6872F1464D4
+ 59606E8258FD65A7C56762D975369C0BE3735C3D2278FDEDA3F90FFF0006B54F
+ A6191EA1D1BDDD2A8F56A18FABD763E6DA60CCEBB7FF003077BD255B67ED9783
+ FA4A9AE13CB4907FE94A2D795459003B6B8FE6BF43FF009155F1ADAF231EBB5C
+ F21CFF00A4247D21A3927D353846F9E7B84956DA7820EE1C8E7E0A7B86D954A9
+ B5D400D2EDF5C7D12648FEA2B236EC3AFB7F82097FFFD2B07F9F77F53FEFCD44
+ 2E7FEE9E47E70433FCF3BB7B39FED354C8D7E99E47EEFF00E4524347AD5CE6E0
+ ED223D4781C83A097944A71AC6E2B181B0457A0DC2092C6FD2FEA59B9EAAF5BD
+ 7ECD5EEDDB9CE3DBC5ACFCD0AFD97066F12E26B1A005BEED07D1F6FE6A2A484D
+ 925DAC11F465B1F937283C5E43C0101DA359BC1D4FE76E77D0FEA3511CD21A7D
+ E78FE4FF00E45317336B9FEA4B5A758DA623FB29298B3D463C9D9EC1F41A1C09
+ 1ABDFB3FE97B13D66C15301619DBA82F04CFF58FD249A5C5C1AEDCDE4CCB08FE
+ AE83E927690E6B4B6C9041820B483F824A636DDE957B9E20110350B3CE7E564B
+ 9CDC5A4D8D9871E183F92E7BBDAA399BF2738636E2180B593A68DDBEA3F85A62
+ B631A2BACECAD901AC1B600FF354840801A03290E2D7A20126FC1CF6B3ABD6C0
+ D657506B78AD8E023E03DAD4F57527B6CF4726B756FF00DD7687FB3FBCB436FF
+ 002CF3FC9FEE41C9C5664D1E939D2E126B276FB5DF9A78FF003934487E900479
+ 52ABB5A892E6486C82DE6429B40DAFF8859FD36D7BD9631C6035A1C069C99079
+ 5A2D1A3FE21230A9F0F88FC540DC6FC1FFD3B0EFE79DDFD9C7F69AA6409FE6FB
+ 8ECDFEF503FCFBA3F73FEFCD4F7B5FE938970D208F6F706477450E6F5703ED18
+ 9EDDA24F86BEF67EEAD07D2D76F966AE0E830C96C80C76DD7F75AA875D0E6FD9
+ EC27873C7111AB5FE256990F22777227E8F8FF006925312CAE4BFD11B88D5D0C
+ 9FBE533AA6124BAB2E27DB276F06346ED2A65AFDA7DDDBF77FF324C45A4FD2EE
+ 3F37FDA92966B48E5BB8C9024306BAF3B5263618D0E66E21BABA1BA9EE795287
+ 889777FDDF8FF2930DF03DDD8FE6FF00E64929CBCC071FA832E2D865BB5CC988
+ DCD01B63345A6D7576377B192D24766F979A8DF40BE835DB0E61034DB0411F9C
+ D3BBDAE6AA2303A8E3BBF55B05CC0740FF0063BFF20E4FB120013463A03E08A2
+ 36EAE8C0FF0047DFC1BFDE83917329A892C01D04364379F154AACAEAB905ECA5
+ 8C71ADDB5E778D0FDFEE526F4CBED707E6DA08E7D1AE483FD77FB7FE8240446A
+ 4DF8056BD031E98CFD1DB716CB1E036BE350D9DCEF77F296937970F308658F0D
+ E4001BA00D81007C511BCBBE23F220664CF8BC6D40695E0FFFD4B0EFE79D3A8F
+ 4F8E7F39A958CA9CD20B0804898679FC123FCF3BFA9FF7E6A9BC3FC4723B1FFC
+ 922105CFEB2C6BF0C39ACDA596493B63476E6AB388FAECC5A5FB249AC490D9D4
+ 0DAEEDFBCD52BE975F8D65248F78701A1E75733F3BF7951E9598D6627A563834
+ B5FB1A08249367D1035FDFDE92BA3A2457B4FE8CF1FB9FEC4C457BBE81FA43F3
+ 3FD8A643F69D471E07FF002499E1F3C8E4763FF92482A962D6188ACF27F33FD8
+ 9806C0FD1F00FE67FB14E1E6351CF81F3FE5260D7C0F70E0F63FF92494C4FA65
+ 87F47AEDE767FB157CF2E6E2DA6A6861FCFB1C08DADFE47B7E9BBE82B5B5E19C
+ 8FA3E07FF24B2FAB643EDB460530E7170DFB444BFF0036BE5DF43E93D2B5521E
+ 92CB9B7B6D6D45F413E9D90018D34747F216B86B74FD19EFF99FEC4B1B1CE3D2
+ CA1A410C3A983A93F49DF4BF791007C0D477EC7FF2492916C616CEC83B7F73FD
+ 88AD1ABC7C3F22687ECE47D1F03E1FD6526FF38FF88FC895A9FFD5B0EFE79D3C
+ 7A7FF7E6F829115F83B91FBEA27F9E747EE7FDF9AA64D9E0DE4773FF00914505
+ 816B63D921F276970B08075E40858791819B538DBE9FA9A97EEA818E777D08DC
+ D5BE3D491A3793DCF9FF002553BF2AD739B4D03758E90003034FA4F73BF71A84
+ A55E3D912908FD760DA71A482413A8D3577F1299DE89E0F7F177F7AAA3A61702
+ EC8B5D6BA261AE2C68F906EFFF00A69DFD2EA6826973E974E8458E70F9B6C694
+ 2E7E1F6A3D7DA2DA68AF43EE324FEFF9A43D381F4B83FBEA9D5764635A2AC887
+ 03AB1E3E8BA39FEA3DA8391D5326C79C5C3AC8B04B5CFE5DFD91F46BFEBB9212
+ BB07423A2A32BB04511B84BD473EAC761AA9939044132EF603DCC9FA7FB8D51E
+ 99822969BF203BD77C6D690E968279747F85B13E174BF43F4D76DB2E89689243
+ 4FEF7D1FD258AF3F7EE3A3791DCFFE453972FF00A3FE573FCB4C3D381F4BBFEF
+ A7DEF9D0379F13FF0091481B20406F7EE7FF002292BF96CB457B7874EDFE5A9B
+ 7F9C7FC47E450F7ECD63E8F89F0FEAA4D3EF7FCBF2254A7FFFD6B0E8F59D3A0F
+ 4F9E3F39A9CBAAFF0049DC7E79FEF4C7F9F7473B3FEFCD442EB3C0723F3BFF00
+ 314505197561A7F49AFBA3DE7C1DE6A9E1064BAC71825800331A7E72BC5D66E1
+ A0E7F7BE3FC959E77E059B9DA63D87D8F990D9FF000567FDF136428C65DAEFEA
+ C731AC65FBB77A776F6EAB6FF39D87E79FEF4EE356BEFEE3F3CFF7A8B3203D9E
+ D83A69EEFF006293EF8D4C73FBDFF98A3C437BFC57F146AEC35F2856EA3474B9
+ AF05BEE9F1DDFF00453E29AFD1049DA5C5DBA0C4C18D6102EBDF976FD9B1B577
+ E738FD1603F9CF3FBDFBAD576B6BAAA995B07B18D81EED7E27DBF9C9B1D66643
+ 6AE1591D6665D2B8478AC5D4EDFA5F9BFBE7FBD3BDD57EFF0071F9E7CBCD489B
+ 4B7E88E3F7BFF314EE364447047E77FE62A464FE5B309AE3E9F7FDF3FDE935D5
+ C7D3D75FCF3FDEA60BF88EFF00BDFF0098A4D2F0043477FCEFFCC5057F2D9187
+ 55B7E9C9DBFBC7FBD4DA0FA8ED3B8FC89F759B381F47F7BCBFAA9DBFCE3FE23F
+ 2256A7FFD7B0EFE79DAC7B39FED354896FFA5EE3BB7FF22A27F9E77F53FEFCD4
+ F75A6AAACB7613E982F831AED1BBB391415F6CC10F3C9EEDF3FE4A896B76ED7B
+ F42D20B4EDE3CC16AE7E8A28C9C5BFA8751B2C743C3373002439C019DAEFCDDC
+ FF00E6DAAD61E6B717A6DCEA1EECAF45CC1B6D6EC6B7D43B36B3DEF7EDD37256
+ AA6E9E9981AB9AE7566386581A3FCD48F4CC1FCEB2C7891A3AD91FC10F1FA867
+ DF4597FD8C1A8301A76BA0B9D3B5C773CFF32CF7B9059D6EF19155791553B6D7
+ 0DC297EE7B24ED1BFDCF6EEFE42143B2384760E8D75D5500CA9C18C04C35A580
+ 7E44466A00164983A02DFF00C8ACEB7AAE60CDBF128C56DAFA5CEDA64CC37E93
+ 9FFE77E62A7D4335B9FD218F2C0C732F0D781AB64B1EE6B9B3EEF7351B4D3B84
+ B769FD2F6F16FF00E45392DD7F4BDC776FF72CCC7EA9923228C3BB1854CB98D6
+ D4493BA0B76D563BF3763DCD4EDEB4FF00B3653EEA5ACBF19CD68AC13B492767
+ BB77BFDAE6392553A6003A8B0C03CCB7FF00229816C0FD2F8F76FF00E4563DB6
+ 8B7A874EB322802EB031C08711B41B1DB3DBF9DFDB44C8EAF9F8D60AECC5AB73
+ 89F4DA1C5CE209869D8CFA3BD253A72DDBFCE7E6F12DF0F829B7F9C7FC47E450
+ 6B9FE8B4D95ED7960DC0104031EE6FD25369FD23F43DBF224A7FFFD0B07F9F77
+ F53FEFCD53731C6417120982081A83C8E145E1C1FBC377CB769131DE7C0A8FBB
+ FD037EF1FF0090494E733A4750C57B86065065561FA2E1AE9F47F35EDDCDFDF5
+ 26F45B1983750DB83ADC82C7BDC47B47A677FF005FF395FF0077FA06FDE3FF00
+ 209A493FCCB7EF1FF91454D7BBA6DB6F4A6617AA03AB6B758F69DA4983F9FB5C
+ AA9E89984513652D38EE01AC630B4100B5DB9EE6FBACB5FF00CA5A3AF6A47DE3
+ FF0022A52EFF0040DFBC7FE412538E59936F5CCD6E2DBE8DD2F3B88E41DA1CD4
+ 6FD8761E9C31996B7D4759EABDC41DBED6BAB6B5BF9DF9CB489747F30DFBC7FE
+ 41205D1FCC37EF1FF90494D3B7A75D665E2E57A8D0DC6631AE04193B27E8FE6A
+ 8E5F45FB4677AFEA0153CB4DCC83B9C468EDB1EDF7B55D9FF801F78FFC8A5EE2
+ 74A07DE3FF0022929AF95816DDD471F283DA194384B48D4C38D9EDDBED5559D2
+ 3A95790725B9359BDE4936399B8EBCFD30E5A443A7F981F78FFC8A73B8FF0080
+ 68F98FFC824A5EB6DC2867A8FDD66C01E434004C6AEE111B3EA3F5EE3F2210DD
+ FE807DE3FF0022880384BA3DC7B4FF00DF9253FFD9003842494D042100000000
+ 005300000001010000000F00410064006F00620065002000500068006F007400
+ 6F00730068006F00700000001200410064006F00620065002000500068006F00
+ 74006F00730068006F007000200043005300000001003842494D040600000000
+ 00070005000000010100FFE1193D687474703A2F2F6E732E61646F62652E636F
+ 6D2F7861702F312E302F003C3F787061636B657420626567696E3D27EFBBBF27
+ 2069643D2757354D304D7043656869487A7265537A4E54637A6B633964273F3E
+ 0A3C783A786D706D65746120786D6C6E733A783D2761646F62653A6E733A6D65
+ 74612F2720783A786D70746B3D27584D5020746F6F6C6B697420332E302D3238
+ 2C206672616D65776F726B20312E36273E0A3C7264663A52444620786D6C6E73
+ 3A7264663D27687474703A2F2F7777772E77332E6F72672F313939392F30322F
+ 32322D7264662D73796E7461782D6E73232720786D6C6E733A69583D27687474
+ 703A2F2F6E732E61646F62652E636F6D2F69582F312E302F273E0A0A203C7264
+ 663A4465736372697074696F6E207264663A61626F75743D27757569643A3139
+ 3437383035332D666137622D313164632D386464382D66353934333635306432
+ 3365270A2020786D6C6E733A657869663D27687474703A2F2F6E732E61646F62
+ 652E636F6D2F657869662F312E302F273E0A20203C657869663A436F6C6F7253
+ 706163653E343239343936373239353C2F657869663A436F6C6F725370616365
+ 3E0A20203C657869663A506978656C5844696D656E73696F6E3E3232393C2F65
+ 7869663A506978656C5844696D656E73696F6E3E0A20203C657869663A506978
+ 656C5944696D656E73696F6E3E3333333C2F657869663A506978656C5944696D
+ 656E73696F6E3E0A203C2F7264663A4465736372697074696F6E3E0A0A203C72
+ 64663A4465736372697074696F6E207264663A61626F75743D27757569643A31
+ 393437383035332D666137622D313164632D386464382D663539343336353064
+ 323365270A2020786D6C6E733A7064663D27687474703A2F2F6E732E61646F62
+ 652E636F6D2F7064662F312E332F273E0A203C2F7264663A4465736372697074
+ 696F6E3E0A0A203C7264663A4465736372697074696F6E207264663A61626F75
+ 743D27757569643A31393437383035332D666137622D313164632D386464382D
+ 663539343336353064323365270A2020786D6C6E733A70686F746F73686F703D
+ 27687474703A2F2F6E732E61646F62652E636F6D2F70686F746F73686F702F31
+ 2E302F273E0A20203C70686F746F73686F703A486973746F72793E3C2F70686F
+ 746F73686F703A486973746F72793E0A203C2F7264663A446573637269707469
+ 6F6E3E0A0A203C7264663A4465736372697074696F6E207264663A61626F7574
+ 3D27757569643A31393437383035332D666137622D313164632D386464382D66
+ 3539343336353064323365270A2020786D6C6E733A746966663D27687474703A
+ 2F2F6E732E61646F62652E636F6D2F746966662F312E302F273E0A20203C7469
+ 66663A4F7269656E746174696F6E3E313C2F746966663A4F7269656E74617469
+ 6F6E3E0A20203C746966663A585265736F6C7574696F6E3E37322F313C2F7469
+ 66663A585265736F6C7574696F6E3E0A20203C746966663A595265736F6C7574
+ 696F6E3E37322F313C2F746966663A595265736F6C7574696F6E3E0A20203C74
+ 6966663A5265736F6C7574696F6E556E69743E323C2F746966663A5265736F6C
+ 7574696F6E556E69743E0A203C2F7264663A4465736372697074696F6E3E0A0A
+ 203C7264663A4465736372697074696F6E207264663A61626F75743D27757569
+ 643A31393437383035332D666137622D313164632D386464382D663539343336
+ 353064323365270A2020786D6C6E733A7861703D27687474703A2F2F6E732E61
+ 646F62652E636F6D2F7861702F312E302F273E0A20203C7861703A4372656174
+ 65446174653E323030382D30332D32355431303A35323A34332D30353A30303C
+ 2F7861703A437265617465446174653E0A20203C7861703A4D6F646966794461
+ 74653E323030382D30332D32355431303A35323A34332D30353A30303C2F7861
+ 703A4D6F64696679446174653E0A20203C7861703A4D65746164617461446174
+ 653E323030382D30332D32355431303A35323A34332D30353A30303C2F786170
+ 3A4D65746164617461446174653E0A20203C7861703A43726561746F72546F6F
+ 6C3E41646F62652050686F746F73686F702043532057696E646F77733C2F7861
+ 703A43726561746F72546F6F6C3E0A203C2F7264663A4465736372697074696F
+ 6E3E0A0A203C7264663A4465736372697074696F6E207264663A61626F75743D
+ 27757569643A31393437383035332D666137622D313164632D386464382D6635
+ 39343336353064323365270A2020786D6C6E733A73745265663D27687474703A
+ 2F2F6E732E61646F62652E636F6D2F7861702F312E302F73547970652F526573
+ 6F7572636552656623270A2020786D6C6E733A7861704D4D3D27687474703A2F
+ 2F6E732E61646F62652E636F6D2F7861702F312E302F6D6D2F273E0A20203C78
+ 61704D4D3A4465726976656446726F6D207264663A7061727365547970653D27
+ 5265736F75726365273E0A2020203C73745265663A696E7374616E636549443E
+ 757569643A66636436633363622D643235622D313164622D396538382D383365
+ 3165636164666238623C2F73745265663A696E7374616E636549443E0A202020
+ 3C73745265663A646F63756D656E7449443E61646F62653A646F6369643A7068
+ 6F746F73686F703A35613861356666372D643235612D313164622D396538382D
+ 3833653165636164666238623C2F73745265663A646F63756D656E7449443E0A
+ 20203C2F7861704D4D3A4465726976656446726F6D3E0A20203C7861704D4D3A
+ 446F63756D656E7449443E61646F62653A646F6369643A70686F746F73686F70
+ 3A31393437383035322D666137622D313164632D386464382D66353934333635
+ 30643233653C2F7861704D4D3A446F63756D656E7449443E0A203C2F7264663A
+ 4465736372697074696F6E3E0A0A203C7264663A4465736372697074696F6E20
+ 7264663A61626F75743D27757569643A31393437383035332D666137622D3131
+ 64632D386464382D663539343336353064323365270A2020786D6C6E733A6463
+ 3D27687474703A2F2F7075726C2E6F72672F64632F656C656D656E74732F312E
+ 312F273E0A20203C64633A666F726D61743E696D6167652F6A7065673C2F6463
+ 3A666F726D61743E0A203C2F7264663A4465736372697074696F6E3E0A0A3C2F
+ 7264663A5244463E0A3C2F783A786D706D6574613E0A20202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020200A2020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020202020202020200A
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020200A202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020200A20202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020200A2020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020200A202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020200A20202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020202020200A2020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20200A2020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020200A202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020200A20202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020200A2020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020200A202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020200A20202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 0A20202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020200A2020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020200A202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020200A20202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020200A2020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020200A202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020200A20
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020200A20202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020200A2020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020200A202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020200A20202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020200A2020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020202020200A202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 200A202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020200A20202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020200A2020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020200A202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020200A20202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020200A2020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020202020202020202020202020200A
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020200A202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020200A20202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020200A2020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 202020202020202020202020202020202020200A202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020200A20202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 20202020202020202020202020202020202020202020202020202020200A2020
+ 2020202020202020202020202020202020202020202020202020202020202020
+ 2020202020202020202020202020202020202020200A3C3F787061636B657420
+ 656E643D2777273F3EFFEE000E41646F626500644000000001FFDB0084000403
+ 03030303040303040604030406070504040507080606070606080A0809090909
+ 080A0A0C0C0C0C0C0A0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0104
+ 05050807080F0A0A0F140E0E0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C
+ 0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFF
+ C0001108014D00E503011100021101031101FFDD0004001DFFC401A200000007
+ 01010101010000000000000000040503020601000708090A0B01000202030101
+ 01010100000000000000010002030405060708090A0B10000201030302040206
+ 07030402060273010203110400052112314151061361227181143291A10715B1
+ 4223C152D1E1331662F0247282F12543345392A2B26373C235442793A3B33617
+ 546474C3D2E2082683090A181984944546A4B456D355281AF2E3F3C4D4E4F465
+ 758595A5B5C5D5E5F566768696A6B6C6D6E6F637475767778797A7B7C7D7E7F7
+ 38485868788898A8B8C8D8E8F82939495969798999A9B9C9D9E9F92A3A4A5A6A
+ 7A8A9AAABACADAEAFA110002020102030505040506040803036D010002110304
+ 2112314105511361220671819132A1B1F014C1D1E1234215526272F133243443
+ 8216925325A263B2C20773D235E2448317549308090A18192636451A27647455
+ 37F2A3B3C32829D3E3F38494A4B4C4D4E4F465758595A5B5C5D5E5F546566676
+ 8696A6B6C6D6E6F6475767778797A7B7C7D7E7F738485868788898A8B8C8D8E8
+ F839495969798999A9B9C9D9E9F92A3A4A5A6A7A8A9AAABACADAEAFAFFDA000C
+ 03010002110311003F009462AEC55D8ABB15762AEC55D8ABB15762AEC55D8ABB
+ 15762AEC55D8ABB15762AEC55D518ABAA315762AEC55D8ABB15762AEC55D8ABB
+ 15762AFF00FFD092CB2705AE2AB60712C424EB5AFE048C555683C3157507862A
+ EA0F0C556902B8AAD38AA9B138AAD2CDE27155A5DBC4E2AEE6DE27157176F13F
+ 7E2AB0C8DFCC7EFC554DA57ECC7EFC55619A4FE76FBCE2AB7D797F9DBEF38AAE
+ 1349FCEDF79C55BF564FE73F79C55DF587520F2341EF8AA2C4BB06EAA7707155
+ 44941C55541AE2ADE2AEC55D8ABB15762AEC55D8ABFFD13DBF244448F0C550F6
+ 35934A8C1247272095254D0CC46C4508C239B0972441B0876F8E7EBFF2D137FC
+ D792E228E01E7F32B5ECA10D180F3D19A87F7F36E38B1FE7F6C448A0C06DCFE6
+ 5B3630F3039CF4A1247D626F11FE5E3C457805F5F995AD630FAAABCE6A156247
+ AF375057FCBF7C788AF00BEBF32B0D9422460649B88553FDFCDD493FE5FB63C5
+ B2880BEBF32A0F1592BB0334BC6829FBF98EFBD7A3E47C4F7370D3C8F43F32A4
+ A967C9F94D352BF07EFA6E941FE578D707883F01234B3EE3F3FDAE1159927F7D
+ 2F5DAB3CC3FE36C7C45FCB48743F35D0DA42E8499263F130AFAF2F4E469FB7E1
+ 92E26918EB9DFCCB62CA2E2097989A7FBFE5FF009AF1E25101E7F32A3F548CDB
+ 87E7373295AFAD2F5A7FAD878B76223E9EBF32B65B38846E43CA080483EB4BE1
+ FEB6224C8C0575F99592DA46A010F2FDA51FDF4BDD80FE6C024A623CFE65CD67
+ 101B34A371FEEE97C47F958F115301E7F32E6B48834603CB466A1FDF4BFCA4FF
+ 00361E25311B73F995436716DF1CDFF23A5FF9AB071278079FCCA166B78D6451
+ CE5A156247AD2F5047F95EF8DA3845F5F994CB4A955E1682A4FA5D3912C687DD
+ 893912D8112EAD17C69BA771E18AAB43306037C55120D7156F15762AEC55D8AB
+ B15762AFFFD23CD47FB93F2C550F605974988AAF36126CA0804FEF8F8ED928F3
+ 613E48A6B8B91C78DA39DF7F8E3141E3F6B0D0EF62652EEFB96C93CFCE1FF457
+ A7335F8A3FE46FF2B10077A0C8D8DBEE6DA7B8F552968E451AA79C7B74EDCB1A
+ 15CD3C46F97DC81BED645A4B4688ABAA9FB4CA68491D7893E1954E6221CED369
+ A794D914189EA7E6B0198F2E4DF70DB30CE52793D163D14318B96CC7E5F34DE4
+ AFC200598F455049C4464512CD821C85B6BA879A1C174B2B9641D4885C8FF88E
+ 4BC23DED3F9DC7FCD0B3FC47AA5B371BA8DE33E122953F8E03090EAD91D4E197
+ 38A6F61E6CE4472343E20E478E51E6DC74F8B28F4965167ADC7320047327652A
+ 40FBEB419930CA0F374BA9D0CA1BC47C112259FEAA3FD19EBE9FF3253ECF8F2C
+ C9A17CDD2D9E1E4D4D2DC7A2FF00E8CF5E276E49E1E3CB1005F34991AE4B6696
+ 7E1B5B3D792FED20FDA1FE56200EF5948F739E49E8296CE7E215F8905057FD6C
+ 000EF4991EE6A4966E517FA3BFDAFE64FE56FF002B0803BD06476D9734F3D540
+ B57237A9E49B7D1CB050EF4F11EE41DC4B37AABFE8EF4E2DFB49E2BFE56342B9
+ AD9BE4A5A65E4B16A888F132C528E0CC4AF535A6C0F8E0A6409BE4CA88C0CD09
+ 2A340DEA47FDDFED0F0C50898260C06F8AA241AE2ADE2AEC55D8ABB15762AFFF
+ D33CD47FB93F2C55474DFF008E5C3FF193FE671C218CB92627A8F9FF000C0959
+ 27DB87FD73FF00106C2107984B35CD5574D45E27FD22456083C06DBE53927C21
+ D86934A734AFA079AEADAB4D3C9E945CA49646A003766639842E65E9E463A785
+ F54F343FCBF331173E6063C880EB668694AD76761DF6E8333638C00F339F592C
+ 9266B67A6D8E9F58ECADA381028FB0A01EA7A9EA72DA700C893BAB20F8E5FF00
+ 5C7FC45709623995B2DBC33AB473C6B2464EEAE030E9E070321B311D4FC85A7D
+ E234FA69FA95D867E217788D18800AF6FA3232802DF875128EEC4A292FF46BC6
+ B2BF431CABD41DC329E841EE0E60CE1C2767A8D2EA4678D4B9B36D1F575B88FE
+ AB2B57929F49BDE9F672FC392CD3AAED0D1708338FC53E997F74FF00EA9FD599
+ 439BA3972593280953B00CA49FF64310B243C77F677533DB5BCA24963E2CE177
+ 007203AE292AB28F8E2FF58FFC45B1083D1CDDB03241CEB5957FD56FD6B87A31
+ EA94DD064939AEC56841F704E04B2FB6945C5B4530FDB50DF4918A5508C52849
+ 236B76F513FBB3D4786284543306037C55100D7156F15762AEC55D8ABFFFD43C
+ D47FB93F2C550F608926931248A1D19E8CAC2A08F5BB83928F36131611274CD3
+ 891FE870F5FF007DA787CB0F1CBBD1E1C7B82C934DD3F9C5FE890FDB35FDDAFF
+ 00237B62247BD89C71B1B079DF986E90EA9791C08B14513189510051F06C761E
+ F9AACD33291B7BBECEC11C7823439FA915E46D162BDBB9754BD89658A3E51C08
+ E032F314E4D43B6C0E65608D0B747DA99B8A7C2CE869BA77ACDFE890FD95FF00
+ 75A78B7B665F11AE6E87C38DF20EFD19A77A8DFE890FD95FF75A789F6C78CF7A
+ F871BE416C7A6E9FCE5FF4487661FEEB5FE55F6C4C8F7A8C71DF60D8D334EAB7
+ FA243D7FDF6BE1F2C1C47BD3E1C7B82C8B4DD3CA1ADA427E27FF0075AFF31F6C
+ 2647BD11C71AE4121F36797AD6E7486B9B48122BBB41EAA98D429641F681A0DF
+ 6DF29CB721BB9DA298C7315D583DADCB2460F5A6F43D33597C2767B9E01961BF
+ 50C8752F3668914462B3D3A392E0AD0B346AAAAC47CAA68736F19922EDF3DC98
+ 631918D7234C42F754BABE72D2944527648916351F4018788F7B11088E8C97C9
+ D3E871C125BDEFA7F5D92452A655047114D81388242CA20F36672E9F605A2E36
+ D0D0B7508BBFC2DED8448F7B0308EDB05ADA7D8541FAAC5FF22D7FA60E23DE9E
+ 08F7043CB6165EAA816D1538B7EC2F8AFB61E235CD78237C92DBBB0B4AB5208C
+ 6C3A22FBFB60E229E01DC9FF00976453A7081401E8332711B501351FAF22CC26
+ B8AAD22B8A506EA6DDF92FF747F038A1190CA180C55118ABB15762AEC55FFFD5
+ 3CD47FB93F2C550F61CFF44C5E9D0BFA9B06D87F7DDE9928F3613E48A63A87C3
+ C521EBBD5DFA7B7C387D2C4F1F92D90DF7387E087ED9FDB6FE46FF002711C283
+ C56393CA755E4DAB6A01A9CFEB337203715F50F4CD3E5FA8FBDF43D16F823FD5
+ 1F7338F278B84D22DC40B115FDF72E4CC1B9731D6808E94CD8E0A30790ED48CE
+ 3A9236AAFD49F037FEBBFC10D38AFEDB57AB7F9397FA69D5FAEFA381BFF55EA9
+ 0D28B4F8DEBDFAFC38FA53EBBE8D466FB9CDF043F6C7EDB7F22FF9389E140E2B
+ 3C9729D42ADC921EBB51DFA7BFC38FA5238FC9641F5EE07E087EDBFED37F39FF
+ 002713488F1574592FD77EA8E264878F06E7467A71A1F15F0C0785B31F1D8AAB
+ 79085E094CD2F32FA481C3166777E555D6346B3B98A38A1BC5B588ACA1987302
+ 307E21C699B7801C21F3CD49978B3FEB1FBD80DFE9F79A6DC35B5E4463954F7E
+ 87DC1EE30B5A2AEB42D4ED6D61BF3173B499164595370036FBF862A89D27CD3A
+ 8E98D1A3B7D62D54D7D272491B11B1FA70A08679A7EAE7578967B330951FDE46
+ CCC1D4FCB8E1D987ABC95DFEB9EB2FC117D96FDA6F15FF00270ED48F55F4415C
+ ADD966AAC54A0FDA6AD6A7FC9C1B27D57D113E597905C5DC12051B23A8524F72
+ 0F50301642EF764646064D1C556B2860558541EA314A0C72B69381DD0FD93FC3
+ 1423A29030C555B15762AEC55FFFD63CD47FB93F2C550F62E91E931492304457
+ AB331A003D63D49C239B099A0893A969DB7FA641D7FDFA9FD725C07B91E247BC
+ 2C9351D38BC5FE970ECC6BFBC4FE56F7C444F7313923B6E1E5FE6111C1E61BBF
+ 4E4592299FD647460C0FA9B9DC7BD735B9E0417B3ECCD4C678C0BF2651E50D42
+ 2B7E76F3C8B1C2C0BA33101431A5454F8D32CD3CBA389DAF86EB2776C5948D4B
+ 4EF558FD6E1A715FF76278B7BE67709AE4F31E246F986C6A5A77A8C7EB90741F
+ EEC4F13EF8F09EE5F1237CC2D8F51D383CBFE970EEC08FDE27F2AFBE2627B903
+ 246CEE178D4B4EA9FF004C83AFFBF13C3E78F04BB997891EF0B21D474E086B77
+ 0FDB7FF7627773EF8989EE631C91EF0976BBAB5B2E96F15ACE92CB32FA7FBB70
+ DC548F889A1F0CC7CE4C4577BB6ECDC4326407A45E6174E1A410A539310A3B0A
+ 9DB30211B2F5BA8CC31C377ACC575A75BD8476C2F203E9422314913F6578F8E6
+ DA3023A3E7F93346449B1BA175A8742D5ED0C1757101355E1209139A548A906B
+ 8440F7313923DE17DBC9A5DA69F0D89BC824489563AB489B80476AE3C27B9272
+ 47BC312F31F96F499AB75A55CC11CC49E50FA89C0EC4EDBED8380F72F891EF0C
+ 3ED6F2EF4ABAF56DDCC53C66868763EC7C4645B2EDE85A3F99ACB5454699D2DE
+ E5118488EC0026ABBA939202D81201DD197179624B52E62E83F6D7DFDF1E13DC
+ BC71EF0B7419E07D5DD62951CB45D1581E849ED8905224096554C8B25A46296B
+ 1429CB1AC8855BE83E07154344EF13FA52751D0F88C5530470462ABF15762AFF
+ 00FFD73CD47FB93F2C55474DFF008E5C3FF193FE671C218CB92627A8F9FF000C
+ 09405C5ECAD72B059C1EBBC4F491D9BD38D58A13C79518934DF618420F30C6FC
+ D3A64FE6064B74B636FAADB44F344E583248A19070040DEBCBDA87E795CA361C
+ AC198E3930BD27556B6944729E2E8687C41198262605EB31E58EA215D5E91A56
+ BF14E019DAAC542F31ED5EBF7E65432D8DDD06A3406122629BADE5A19B889E3E
+ 6E142AF2018EE7A0EB97DD87566262770EFAC5BC333472CA91C923811A330566
+ 3C545003D709603996D2F2CDA478D6E233229F8903A961B7715C0C80252ABAD6
+ 1ED1FF0076F13C1572EA55B954B3104372A7876CAE7900733068E73E7B305D7F
+ 5DF599897E4DD2BE0076198522665E9F163869E16533F26796E67275ED450A80
+ A4D942DD771F6CFF000CCBC58F85E775BAB392C3D066FEE64FF54FEACBC73759
+ 2E4527BDD56E6DA610CF6AA225292492ACBCB8446555E44701F75710B24D641F
+ 08F9AFEB188494AAF6349B57B28E550F1AC72CAA8DB80E0A8069E22B8841E612
+ DF32F966DF5888CB1011DF2FD8907ED7B1C0C9E694BDD1EFB7AC375037EAFE07
+ 157A1E8DACC5AD5B19365B94004B1FBEFB8F6C508FD2A3A6AF5F08FF00AE15EA
+ C948C095A462AB48C55A231543DD445D3927F78BB8F7F6C55AB59B9018AA394D
+ 462ADE2AFF00FFD03CD47FB93F2C550F6018E931046E2C64D9A95A7EFBC3251E
+ 6C27C914D0DE9E34B951BEFF00BA06A3C3ED61B1DCC4C65DFF00625D62974BCA
+ 0FAC28B88AE6632298F725F9B2B1F8BA104531047722425637695B583A9C10CE
+ 6D958C5239910163C0320237507A91B6363B93C32EFF00B121F307944EB3AB48
+ 619D20BC4B64915963E2AEC5D87C543E03AE5728821C9C39A78CF361F709AE79
+ 766F4EFE078C0E928F8A361D2A186D9872C35C9E8B1768090A98B475B79BF8A8
+ 5945477C1EA0DA7C09F5A47379CEDA45A4A0B8AD68D422A3BEF878E5DCD5F96C
+ 1FCE0869BCE31F1E30AD00D80E94FBB01323D19C61821D5297D5752D5A616D67
+ 1BCD339A2C6809A9EBFC3118C9E6996B71E31E80C8F44F24DCA5FDA4DACBA7A9
+ 22492A5B539AA98F85396E01FB5D332A1011745A9D54F2F22CED21BB166A05C2
+ 81E9003F743F97C3966458BE4EAEA5C3CFA772F9A2BDF41C7D656BC4D4FA43C3
+ FD6C008BE4994655CFEC48E9A8DCA5D4E2169A2BC7545914440342A78A801A40
+ 77DCFD38823B93212EF46E9FF5F96D162967F4E7B6710CA8D1AB37C34A5486A6
+ E083B6208EE590977FD8A261BD5D6809AE1599E3E50308F611AD792D2BD6A41A
+ E20859096DBA3DE0BC2CA45CA802B51E90DFFE1B1B1DCBC32EFF00B18E7997CB
+ 526AAA244753791A3142138F2A11B135F7C1B5245DEE5E79677777A45F7AA954
+ 9633C6443DC0EA08C8B63D02DA59AF2317D697200911482AB423AD46C72561AE
+ 8DF3696F35CB77629785C03F65D790E83C4E3B245F7A2EDFCCFA8464ADE42928
+ 069CA3AA1A7D2586064139B3D774EBDA2AC9E94A76E127C26A3C0F43812986C4
+ 5462AD531540CC86DE6F517FBB73BFB1C5519049503154462AFF00FFD13CD47F
+ B93F2C550F60E91E9313C8C1115EACCC6800F5BB93928F361334112752D38115
+ BB87AFFBF17C3E787825DC8F123DE10B79268B752C2F2CF0990123D45942385E
+ 2C69C9581A571113DC83923B6E1D03E896B389219E1123232991A60EC4541A72
+ 66271E03DCBE246F985030797FD757172BC8A105BEB7256808A0AFA9EE71E035
+ C97C48DF30C6BCF5AE411DB47A458CCB224A89EB32BF3A22134526A6A4F7AE44
+ 8A671209B095F93741D12F92E2EB593118F64862793D3DFBB6CC0E3C17D19F8F
+ C26AD37BFD03C956F458ADC3B19A3AFA72CD20F48142FD1CF6271F0CF7206A79
+ FA87D89858E85E4461EBC56F08A1202CF23D76FF002657FE18F867B97F31FD24
+ C61B6F2E00AC9241118D9B82C537A4A28CC0515194743E192303DCD432C4F328
+ 866D0E6992EDEEA333A81C585C150294FD90E076DF6C7825DC919235CC2AAEA3
+ A78B451F5B86BE98DBD45AFD9F9E1E137C980C91E1E6393AEEF34BB8B596292E
+ E228CA6A1660A76DFAAB038040DF2652C91AE614E39F48B3B710DBDD44B18742
+ 14CDCE94651B72634000E98881EE59648F785911D12D1DA682E63123F10E5AE0
+ BD45476673E18F09EE53923DE142F750B18F54B2B93711B43C248599183F167E
+ 24578D680D3AE2227B94CE3B6E11CDA8E9D503EB70EFFF00162FF5C780F727C4
+ 8F78517BFB0F593FD2A1FB0FBFA8BE2BEF8F09AE48E38DF30C17CEDA7594927E
+ 94B19A26634FAC468EA49EBF1501FBF0709EE64271279A0BC9DABC76974D6572
+ E16DE7FB2CC6815C7B9F1C0C999996C199FF00D261FB5FCEBE03DF25C27B9809
+ C7BC219BEA04BFFA445D7F9D7C07BE0E13DCA271EF40B259153FBF8ABC9BF6D7
+ F98FBE2627B944E3DEDDAEB13D86D05E234409FDDBB065A57DCD47D18F094898
+ EF4FB4CF34585EF18AE24482E180A02E38927B035FD7828A448275246B22146E
+ 8703242DBBB23146EAA6871547F2F83157FFD23CD47FB93F2C55474DFF008E5C
+ 3FF193FE671C218CB92627A8F9FF000C095927DB87FD73FF00106C2107985C7F
+ BC5FF55BF58C53D5648EB1B876344547663EC38E3D11D5E2BABDE4BAD6B534EB
+ B99E4E112F5F86BC546064F61D26C534DB282C9050451203EEDBD4FDF851D515
+ 1FDB9BFD71FF00105C4A0732BC753F3FE1812B21FB07FD77FF00899C2511E4BD
+ 7EC8F90C091C9493FDE45FF8C63FE2392EAC47D3F05F37F7527FAA7F5601CD32
+ E45A9BEC0FF593FE24310B2E4B9FA0F9AFEB1812564BF6E1FF005CFF00C41B08
+ 41E61B6EA302541C7EFD3FD47FD6B87A23AA9CF0A4EB24328E51BAF1653D0835
+ 1813D5E3BACD84BA2EAB240091E9B7385FFC9AD41C52F4FD06FC6A7A6C777FB6
+ D40FFEB0500E140470405A4FF5BFE3518A8EAA2B002A7FD67FF891C4A22857B3
+ 0C0EDDCFEBC090961B2FDD2103F647EAC279A0724C2C3529ACC7A771592DC0EB
+ FB4A07878E04DA6CE51A459A335471D4788C5289AFEEF157FFD33CD47FB93F2C
+ 550F6019B49882B706326CC00247EF8F8ED928F3613E48A6B7B93C78DDB8DF7F
+ 823351E1F670D8EE62632EFF00B96C904FCE1FF4A7A733FB31FF00237F938823
+ B90626C6FF00736D05C7AA94BB7028D51C63DFA77E38D8AE49E195F3FB924F37
+ 5C4FA7E933CBF5A72648DA2552A9B972A3A851DB1B15C9784DF379B6856725D5
+ E3BA3B27D56279F9AEC4141B6FF3C836BD343DF4505C5A1BC91AF1244B584908
+ 58FA84947248A9F84D4FFAA72562B935709BE688D120B936D316BD99CFAF2AD5
+ F8B9A23701BB027A0C363B9444D9DD304B7B91CB95DB9DF6A246283C3ECE0B1D
+ CA232EFF00B90CCED691079EEA51197901916342ABF11FB54434F9E124772231
+ 3DFF0072B5BA49342AF1DF19411B488B1713F729C6C77244655CFEE48A017B65
+ 24C4DECCF640C703FA8449E999214656F8C1DB9350FD18D8BE48A3C3CFA22C58
+ 4F1DFCF1ADFDCB08EDD6501DF9AF273229AAB5452831045F24CA26B9A36FE416
+ 912BDC5F3441E44552CB1915E40FF2E208EE44A32EFF00B95E4B7B8A0A5DB8F8
+ 96BF0466A2BFEAE208EE498CBBFEE6A5827E70D2E9FED9FD98FF0091BFC9C411
+ DC83136376DADEE0B29176E06F51C2335DBC78ED8D8EE4F0CBBFEE527827F5D3
+ FD29E9C1FF00663F15FF00271B15C91C26F9AC682712126EDF8F11B718FAD4EF
+ 5E38D8EE4F09BE7F7312F37E893EA2127B593EB1731F150A782FC279577D86DB
+ 64B8091B05068EE511E54B1B8D374E68AEE66826690B7A4383802837A80DD70F
+ 872EE526CF34EE326AF5BD6DDAABF0A0DA83FC9C2607B988F7AF82195909FAD3
+ 11C9A9458FA723FE4E425B7465189EF72DB4FC28D74E4D4EFC631DCFF9391247
+ 72889EF430B398DBA7FA4372E037E29E1E1C70922F92C626B9A1E6B295616267
+ 62429AFC2943B7CB0022F92906B9A3A12D190BFB2C46DEF916D4D7FDD55C55FF
+ D43CD47FB93F2C550F60E23D262720901EA4282C7FBE3D00A93863CD84CEC893
+ 7F06DF04E77FF9679BFE68C97094718F3F915B25F41CE2F826D9CFFBA26FE56F
+ F231112C4CC58E7F22D9BF83D45F827A51BFE3DE6F11FE463C253C62FAFC8B08
+ FCC6D45258ACAD230E2A5E470F1BC7B0A01F6C0AE0229983696F93D00B0D5A51
+ 14B2CB2C420884514926ED527EC29A76C14A4EECF39D9497EBAA18EE43A44008
+ FEAD30A9F8A848E15A8048FA70F0ECC78C5F5F9152D2E785ECA782E21B940D3C
+ A4AFA1708DC59B983555046C70F0A388027F5144C0BA7C12FAB1C7761D49E3C9
+ 6EDC6E29D181071E129E31E7F22B9B544862FDDDB5CCF233BD1520900FB47A96
+ 5000C4C4A23315D7E45096800B94BE951EDD8035820B79C06A823F78DC006A7F
+ AB8F09FC14898F3F9153B5BB8245BD867B6BAF4AE82F1E56D3852A20553BF0DB
+ 7071ADD1C551F83ACEE258EE2E45CC570563B758239CC137EF02B3907EC75A30
+ AFBE223BACA62BAFC8A2752D52D83DA5B1B692769E65A2BC328E2A8416700C66
+ A47B622293315D7E451AF7F0507C13F55FF8F79BC47F918889FC14198F3F915B
+ 25FC3CE2F826D9CD7F7137F2B7F9188894198B1CFE45735FC151F04FF3FABCDF
+ F3463C259718F3F9140DF6B36F03864E45D558157468E952A770C01ED9918B4E
+ 67EE612C801629A979AC063F1723F70CDA434D180B3B38E7293C98FCBE69BC95
+ F8400B31E8AA0938259714790B511916C5FF0099DC734B3B964F110B91FF0011
+ CAFF00330EE0CBC23DEB3FC47A9DB371BA478CF848A54FE34C98CF8CF3083090
+ EA9BD879B3911CCD0F88CB3C18641B163C728F365563AE412A7EF4EDD43A827A
+ FB0DF35D9B4A63C9C88651D5131DE43F574F826AF01FEE897C3FD4CC23136CE3
+ 315D7E4564F770B42E024A0952378651D477AAE2226D4CC575F915765F893FD6
+ FE0720DA9A53F73F462AFF00FFD53CD47FB93F2C55474DFF008E5C3FF193FE67
+ 1C218CB92627A8F9FF000C095927DB87FD73FF00106C2107985C7FBC5FF55BF5
+ 8C7A27ABCB7F3127F535C48ABB430A8A7BB127025937E5EC1E968C64A50CCE5F
+ EE257F861E8C7AB2C1FDE37FAABFACE3D13D56C7F6E6FF005C7FC4171281CCAF
+ 1D4FCFF860485907D83FEBBFFC4CE1288F25EBF647C86048E4A29FEF1AFF00C6
+ 31FF0011C975603E9F82A4DFDCC9FEA9FD58073652E45467B785A54B965ACE9C
+ 511AA765675276E9DB10B2E4AEFF00647CD7F58C424AD93EDC3FEB9FF8836210
+ 7984B75CD5574D85429FF4892BC0780EE732B4D83C43E4D7927C2F35D5B559A7
+ 93D28B9492486800DD9989E99BB918E18F9B842E653BD13C8066E375AFB1E440
+ 65B3434A57B3B0FD43349975129173618C066367A758D83B45656F1C08117645
+ 03BB753D4E6312486C1CD12ABF149FEB7FC6A3028EAB1ADE19C491CF1ACB196D
+ D5D430FB23B1C5475629A9F90F4EBC469B4D3F52BB0CD40BBC468C450AF6FA32
+ E8E5312C38410C46292FF46BC6B2BE431CA8771D55878A9EE33778330CA28F37
+ 0E70E13619C689AC2CE16D646FB43F74DFC330757A6E1F506FC592F64E2E3FB9
+ 93FD46FD59AC1CDC89722D37DA4FF5BF81C0C935FF00757D18ABFFD63CD47FB9
+ 3F2C550F60A1F49894920192955241FEFBC46487361316114D6519E3FBC9850D
+ 769A4DE9D8FC587890603BCFCD6C9691F387E397ED9DBD593F91BFCAC4490602
+ C73F996DACE332A1F5260006DBD59287A75F8B1E2D97805F5F9BC93CE0437986
+ F141621084AB3163F081DC927224B6014CF3CBB15B58E836B717324A91FA2ACD
+ C1A42A39331AD13257B35F0DCBAA751ADA3C6F78B3CA6D8C624E4659000A3954
+ D090474DF1E2D97805F5F9ADB01697AB34F6F2CCF17A9C412F32EEAAB5A0620E
+ 264A202CF3F9A212CA305BF7931A9AEF349B57B0DF1E24880EF3F35B05A47C0D
+ 5E53F1BFFBB64FE73FE56264C63015D7E6574765188C032CCC69F68CD257F5E2
+ 6491015CCFCD0931B3B5B38FD79E55778E8804B2B393C7B2A924FDD878B76221
+ E9EBCBBDA12E9D70AD6F0DCCC6728CDC7D4955C0402A486A53A8EB804B74CA02
+ B99F9A2A7B38F80A4928F893712C9FCC3FCAC4493280AEBF35D259C640A4930A
+ 329DA6937DFA7DAC4494C079FCD6CB671F387E3947C67FDDB27F237F9588920C
+ 058E7F32F3AF31DEB49AADDC6ACC52163127262C404D8EEC4F7AE74BA4C62388
+ 1F8B8194FA8844F91F464BCBC9354BA04A45C92DA84AFEF071AB023C0366B35B
+ 90DD3938A2CF3EA51FAA4FA9353881C7D5929D4EFD735BC4DFC02FAFCD60B38F
+ D77F8E5A715DBD593C5BFCAC78B651017D7E6E4B28F9CA7D494FC436F564A0F8
+ 47BE264A202CF3F9B51D9461A4FDE4A7E2EF2C9FCA36EB8992880DF9FCDA8ACE
+ 3E26AF29F8DFFDDB27F31F7C4C96301E7F32C7BCD7A04775A53DD445DEF2CF94
+ 88EECCEC5013C977F6DF2FC392A618CA1E96136974F1206562196854834208CE
+ 98444E3BBAEBA2F47586396C5670F29E7109013239FB4B5F1CE525B488EE2ECB
+ 8418DEFCBBD14E3E24FF005BF81CA9B934FF00757D18ABFFD73CD47FB93F2C55
+ 0F60C574989954B90FB22D013FBEED5207E3928F3613E48937571514B19BAEFF
+ 00143FF5530D0EF4711EE3F67EB5B25D4FCE2FF429BED1FDA87F95BFE2CC401D
+ E83236363F67EB6CDD4FEA2FFA14DD1BF6A1F11FF166343BD788DF23F67EB78D
+ F98656975BBE9194A9333554D2A2869D891906D0F478A5953CB263FAACBC4592
+ 8E758A9D1B7FB75A7D193ADB9B5F11E2E5F72E9259D6EE5D1C59CC22B9916755
+ AC5B40496917EDD37614FF006582BCD6CF77DC8AD2AF6582CA690D94EEA27989
+ F4FD376DE43B710F5FC30903BD0246CEDF77EB44C1AC34D2FA6BA75E2B31342F
+ 1045D85772CC00C143BD3C47BBEEFD6E6B8D47D306D2D5C3ABB92B27A4558163
+ B544A08FC70903BD1191AE47ECFD6B62D5E65921B5BAD3E68AEA50782AB44E8D
+ C454D1B98EC3BD30579B2E235CBEE50B29E667BC91ECE56994244BF145F0C622
+ 5603793B96272542F9B0E23C3CBA7922AE393C82EFEA5389A38A48C1E505087A
+ 1DFF00795DA9B60005F34CA468EC7ECFD6D6A179A92C49F53D3DDDFD44E62478
+ 9471E43A5243BE35E6A647B8FD9FAD10F753D07FA14DD57F6A1F11FF00166200
+ EF5323DC7ECFD6D49753F38BFD0A6FB67F6A1FE46FF8B310077A0C8EDB1FB3F5
+ BCAB5525F56D42AA549B99AAA6951F19D8D0919D569BFBB1EE0EBB27D459BF94
+ 2568B49B648ADA4929EBF365318058C83F99C1E94CD16B23590EFDCE66296C36
+ EF4FFEB33F33FE8535283F6A1F13FF001666150EF6FE237C8FD9FAD68B99FD67
+ FF00429BECAEDCA1F16FF8B31A15CD1C46F91FB3F5B92E67E527FA14DF6BF9A1
+ FE51FF00166343BD448EFB1FB3F5B92E67E521FA94DF6BF9A1FE51FF00166343
+ BD448EFB1FB3F5AC8AE67E07FD0A6FB4FF00B50FF31FF8B312077AC647B8FD9F
+ AD4A5B990DBCA25B2982157E7F142471DEBFEECC206E28AF11AE47ECFD6F260B
+ C1299D78141D5DD97A4D8CF2FE86B55FAB49C7EAB18E758F8D3D31BFDBAD3E8C
+ E5328FDE1DFA9FBDD902783974F24C651431FF00ADFC0E63B7A65FEEAFA3157F
+ FFD03CD47FB93F2C55474DFF008E5C3FF193FE671C218CB92627A8F9FF000C09
+ 5927DB8BFD73FF00106C2107985C7FBC5FF55BF58C53D5E1FAEFFC76F5107B5C
+ CC3EE723025EB16B6AF7BA2436D1C822F56D6252E579FC241AED5187A31EA99A
+ 4728079B2B5C7A617D60941524FECD4EDED5C7A27AA86996B259C53432CA253E
+ AB3870BC3FBC0188A55BB938940E651A3A9F9FF0C0942B432CF18449DA05E727
+ 3280722391D8120D30944792EB5B1B6B51CE38FF007CC07395AAD21F9B354E04
+ 8434964ED1ADCDB4C60B830847F843A38036E4A69B8EC41C91E6C47D3F0565B7
+ BA45924B8B9331E0CA11504718AF7A6E6BFECB00E699722A1A88B996F2C61879
+ ADBA3FAD70EB555215942A923AD49E98859262FD07CD7F58C424AD93EDC3FEB9
+ FF008836210798795799A06B1F315DA38A24EDEBC67C449B9FC6B9D0E8B28310
+ 1C0CD0A36C97C9B78A8E6D1DA88E19A2A9FDA3C6A3E90331FB431DFA99E9CEF4
+ CC87DB27B507F1CD339BD568FEFDFF00D44FD6D8F44756D3ED49FEB7FC6A3151
+ D5A5FB527FADFF001A8C54755917D83FEB3FFC48E2563C927F305E0B5D3A4854
+ D269F9201DC2926A7EECCDD263E2983D0356595469E653F29664B78472924608
+ 8A3B92699BECD90462E042365EAAB08B7D3D6DC6FE942231FEC5299CB1372BF3
+ 7664547E0BE61FDDFF00AE3F51C83347734F4A95ED8695FFD13CD47FB93F2C55
+ 0F608B269312380C864A153B83FBEC90E6C262C22DF4FB16E35B68F6351F001B
+ 8F90C788F7A0E38F7043DE47A65B35BBCF046A864E3C8475504A903910283E9C
+ 2247BD071C6C6C159AC2C4CA84DB47501A9F00F6F6C788D735F0E37C83C67CC1
+ 1AC7AEEA28AA1545CCB4005001CCE41B69EADA15A59CBA75A4A608D98DB45525
+ 41F1F6C9F11A6AE08DF24C16C2C44AE45B475216BF00F7F6C788D735F0E37C83
+ 51D8D97398FD5E3FB63F617F917DB1323DE818E36760B934FB152D4B68F76A9A
+ A03B903C460E23DE918E3DC16C16365C0FFA3C7F6DFAA29FDB3ED84C8F7AC71C
+ 6B905D1E9F62B1AA8B68E94EE80F5F738991EF518E35C829AD8D91B351F578FF
+ 00BA1FB02BF67C7AE1E237CD88847879745D35858FA0EBF568E814FEC80761E3
+ 8048DF34CB1C6B93A7B1B22801B78FED274451FB43C062247BD32C71AE4174B6
+ 16242D6DA3D9948F800EFEC31123DEA71C7B82D96C6CB9C3FE8F17DB3FB0BFC8
+ DED8891EF41C71B1B048FCD9E588B55B212D8C6916A16F568B880A1D7BA9A7E1
+ 96E2CA62532C62B60C034DD41ED6636F72A52443C5D185082337D0C832C7CDC1
+ 944C4B3FD2B50D3270A678222FC4289022F4AD7719ABCD8240ECDF0303CC04EA
+ 2B6D3A499DE386160553A2A9EEDDA99824C8736E108DF20BD2C2C83CA7EAF1D4
+ B0FD85FE51ED80C8F7A4638D9D82D5B3B043293044073A925569F6478E3C522A
+ 31C77D82597173A5DA46C16DE277E4E7755A6EC48DE99950C33916A3C00720C1
+ 759D5A11C922A28DFECEC3E8CDCC223146CB8BF51A08DF2A7979E76FD2FA947F
+ BB2A7EAD0B0EB5FDB23F566AB3E7332E6431801983DB5A2C0E3D08C510F12145
+ 4506DBE6259B64611AE48A9BFDD7FEB8FD47296E57A7C14CB10FFFD23CD47FB9
+ 3F2C550F605C693118C067F53E10C78827D6EE403FAB251E6C27C914CFA8ED48
+ 20EBDE67FF00AA587D28B9770F9FEC4BF5B6BF6D3A60608A9C1CED2B13B46DDB
+ D318EC82656361F3FD88E12DFB3A32C30152A48FDF3EE0D37FEEB1D96E57C87C
+ FF0063C83CD49247E60BEF51555DA42C42B161F16FD481FAB20D82DE8FE569EF
+ 64D1ED1A38A26410A282D2B29F84B0E823393DA985CAF61F8F92701F50F51BF7
+ 10F45DBD67F13FF1563B22E57C87CFF6351BEA1CE5FDC43F6C7FBB9FF957FE2A
+ C4D201959D87CFF62E57D46AD5820EBDA67FFAA58FA595CBB87CFF0062924BA8
+ 2A902187ED3FFBB5BF9CFF00C5792A8B1899770F9FEC6966D4788AC51134ED2B
+ 0FF99786A29065DC3E7FB164325FFD5C01143FDDD2A656FE5FF8C786405B1B97
+ 0F21CBF1D11133EA1E93FEE211F09FF773F87FC62CAC55B291951D87CFF63533
+ EA1C07EE211F127FBB9FF987FC5588A5919770F9FEC6E496FE83F7300F896B59
+ 9BC47FC558801499770F9FEC69E4BF2F152187ED9FF7737F2B7FC55868209958
+ D87CFF0062E66D44D07A10537AFEF9EBD3FE31601C2CAE5DC3E7FB189F98FCAD
+ 2EB532DC4290DADF8527D512310E011B30F4C78F5CC884F8791604127703F1F0
+ 6193AEB7E5F97D3BD85E300ED20F8A33F261B66C61AB045485B44B0D7247DAF9
+ C1A303D4EBE35A64CF852EB481C61305F3C228A06715EB43FDB90F0711EA13C7
+ 2EE42DC79C8383C3727C4E4847147AA0999E894B6A7A9EAF2FA1671493C8DD12
+ 304F5F1C65AA8407A428C44F3647A1F926F23952FF005848A565DD2D5A42A030
+ EED44607E59ADCB9CCF996F8C08E4195AB5DFD5E35586114400112B53A787A79
+ 4D0B65132AE43F1F05B2B5E7A4FCA2880E26A448C7B787A792156B2E2AFC7EA4
+ 64DF6623FE58FD47286E4553FAE4BA21FFD33CD47FB93F2C550F60CA9A4C4EEC
+ 1544952C4D001EB1C90E6C2668230DF595456E62EBFCEBFD71E13DC8F123DE10
+ 7AA6A56D0DA3CD1CF13488AECA39A9DFD36A6D5DF7C3C27B90671246E17DA49A
+ 7D9430DAC7751948D1802D22D492413DF1E13DC9F1237CC3CC7CF622FF001049
+ 244CAE92A23725208AD287A7CB224533041E4CC7C8D7F6DFA15239664478C95E
+ 2CC01A7263DCFBE1A24303200EE5920BDB2F51BFD262E8BFB6BE27DF0F09EE5F
+ 1237CC351DED9F397FD222FB63F6D7F957DF1313DC8138D9DC2E17D65534B98B
+ AFF3AF87CF0709EE4F891EF0A22F2CF87FBD117DB7FDB5EEC7DF26227B98C671
+ AE616A5E59D17FD222A77F8D7FAE48C4F7244E3DE1725DD88B55FF00488ABE98
+ FDB5FE5F9E40836C44E3C3CC725F3DFD9085E97111AA9A7C6BDC7CF04606F932
+ 94E35CC294D7D6CCA2B711FDA4FDB5FE61EF960891D14CE3DE1B92EAD028ADC4
+ 5D47FBB17C47BE000A99C7BC2D6BBB5E7111711ECC77E6BFCADEF868A0CE3637
+ 089FAF59FC35B9881F0F517FAE55C27B997891EF0867BBB4F5D69711D02BFEDA
+ F8AFBE5A226B931E38DF377D62C65668E49E16460392B3A9046FD89C041AE49E
+ 38F7849355D2FC9C893DDDCC16DC5103111B0425896D808C8DCE3C520144A24F
+ 379E6963469B59517B6CA34E95CAFA7EA3A8407A7C41ABB7CF071967C21E8D69
+ E5BF26C7C996DEDDA876E7297DA83B339C32326B1287784D2DA6D32D22315A34
+ 10A066F86328A3ED1A6C30701298CE35CC362F2D587FBD119DCFEDAD3AFCF0F0
+ 91D12271EF0A71DC598B7426E62AF01FB6BE1F3C4DDF26319C6B985B2DCDAB42
+ E1678C92A6803AEFB7CF0889B594E35CD132FD88BFD7FE07292DC8CA6D5FF271
+ E8AFFFD43CD47FB93F2C55434EFF008E5C35FF007E7FCCEC218CB9262CAAC579
+ 00686A2BBD081D7149081D5ADE6BB863B6882525628EEE4FC2A518120006A698
+ 841E6116E504A85A9C82B50F715A6100D29E6F39FCC9847D76CAEC568F1B467E
+ 6A41FE3808648EFCB5B84305EDBB7DA56461F26AFF004C515BB3A50A257200A9
+ 55A9EE7AE3D1039AD880E731A6E5C57FE01712B1E657AAAA96E200A9A9A6D524
+ 0DF1480A4807A2D414F8DCFF00C39C975631E4A68AA1155400B4E83619329036
+ 5F1806C945071F480A76A71CACFD4C7F87E0EBB40606141C42914EDD30C0EE99
+ 0D94A5A7115DFE34EBFEB0C9859725491CB28A8068CA454577A8C88092D49212
+ F0D40347247FC0362020F30AC0A3B2B10392D684F515F0C8114C942503EB4A7B
+ F06DFE95CB0726279B69C44C5CD01E2016F6DFBE03C9239BCC7CEBAFAEA77ED6
+ B68D5B3868ACC3A3BAD77F90AED904D6EC54120D46C46F5C097AFF0093354FD2
+ 7A4F2723EB11B71940EA680007E903244DA00A4D63140C294F8DC9FF00823963
+ 18B70D23145002D4EC36EE7011690B23F8ADA340A38F0038F6E98D51447E90B2
+ 64020916940108A76E9841DD65F496E6042C608FDB1FA8E5659A3A9FBBAFB645
+ 5FFFD53CD47FB93F2C550F601CE93108C857F53E12C39007D63D4547EBC90E6C
+ 27C914D1EA069FE9108DFF00DF2DFF005570D8EE454BBC7CBF6A94E2FD5A21EB
+ C35E469485BF95BFE2DC94698912B1B8F97ED53297C645FDFC55A1FF00753788
+ FF008B327B26A57CFECFDAC63CFB6376FA5C7732BA30B77E54442A68D45EA5DB
+ C46572208D922EF763DE44B89A3D61ADA27543711915752C2ABB8D832E0891D5
+ 91BE8F4D8E3D443B56787A2EC6163DCFFC5B8498B0A95F31F2FDADC697FCE5A4
+ F0FDB15FDCB7F2AFFC5B80D200959DC7CBF6AE58F5005BFD2213BFFBE5BC3FE3
+ 2E363B99012EF1F2FDAB238EFCC6C3D787ED3FFBA5BF98FF00C5B86C5B188957
+ 31F2FDAA4897C147EFE23B7530B7FD54C9EC9025DFF67ED5D125F1B35A4F101E
+ 9D3FB96AF4FF008CB9135C4C6A5C3CC72EEFDAA9347A81864067869C4D7F72DE
+ 1FF1972208B65212AE63E5FB564F05E0515B8847C49FEE96FE61FF0016E48487
+ 722425DE3E5FB5B7B7BE2A08B88A955FF74B788FF8B71E21DC9225DE3E5FB54E
+ 68AF564887AF11F8BFDF4DFCADFF0016648104208958DC7CBF6AF48EFF0098A4
+ F10EB5FDCB1FF99B809149A9778F97ED6A68EFBD78C99E2AF06FF74B53AAFF00
+ C5B8C48A4112BE63E5FB5618AF1D995A688AB280C0C2D4A1AFFC5B84D526A57C
+ C7CBF6BCFBCEA96B61709A75B4702C8543CCD0C4508DCD0125DBAE54699006F7
+ 407957413ADDE48B2505B44B572413B9D80D88FD788AEAC8DF4677A1F95E7D16
+ EE69ACAEC08A41C5E278CB2F4047FBB01EF84F0B0F57E3FB53A8E0BE653FBF87
+ ED3FFBA5BF98FF00C5B878822225DE3E5FB5A4B6BEE3FEF444773FEE96F13FF1
+ 6E1321DCA04BBC7CBF6B50417C2DD38CF08F806FE8B57A7FC65C048B4444AB98
+ F97ED6E58AF842FCA7888E06B48581229FF194E0045AC84A8EE3E5FB552F47C3
+ 17FC641FF113906E44FF00BABE8C55FFD63CD47FB93F2C550F60C1349899AB41
+ 276058FF007DD80A93921CD84CD04535F40A57909454D056197727B7D9C784A0
+ E41F80542E2EE232C5B49F6B6AC52FF2B7F9396463B3133163F5172DE4027404
+ 49521A83D296A694FF00270989A4F18BFD850DADFA1A8D85C5971939C9049C07
+ A32FDA0548FD9F1195F09A5E317FB0BC9B47BB3A76AF6B72D51E8CABCFAF4AD0
+ FE1906D7B3A6A16CF2371F50FC2BB08A5EF523F6727C269AB8C5F5F91747790F
+ 39B697ED8AFEE65FE45FF271312A262CF3F915C97D0316E225343434865D8803
+ 6FB38384A44C7E015B05E43C0D1653F1BF4865FE73FE4E131288CC575F91514B
+ C80A02A242B4EA2293B7FB1CB384A898AFD85B86F21167B892823AF2F4A5229C
+ 7FD5C1289B63C6387E1DC5527BD80DBB9FDE81C4FC5E8CA074FF005723189B65
+ 298AEBF22A33DD44AA392C83E24DCC527F30FF0027260225315FB0B6F7B12803
+ F7A2ACA07EEA5EB5FF00571E14998FC02E92E632F15565157EF14BBFC2DFE4E3
+ 4833163F51571796E8CAA44BCDAB41E8CBBD3FD8E564129E31F8056C975034F1
+ 8225FB0FB7A32D7AAFF938402020CC5F5F9142EA1AC5869B04D7137305101556
+ 8E45A9DE9B950301BA642409A78EDEDDCDA95ECB73255A599AB4EBD4EC320D8F
+ 52F28DAC3A4699E8BA49F5A721E7A4329A165040AF1ED93E12D7E20BFD853C8E
+ F602D2504A68D434865D8F11FE4E262502637FD45A86F21E068253F1BF4865FE
+ 63FE4E26256331E7F22DC77D032725129049DC432F89FF002713129131F80564
+ 57B00B642449C446096F465A529D7ECE2626D8C66387F616E5BC81ADDCA8928C
+ 8684C5281B8F12B8889B594C18FEC2BAF87C117FC641FF00113906E447FBABE8
+ C55FFFD73CD47FB93F2C55474DFF008E5C3FF193FE671C218CB92627A8F9FF00
+ 0C0943DC8F8E13FE511FF0AD96458CB985B5A48A7D8FEB192E89EAA8655F552B
+ FCADFAD721C3B2F578E79A6C3F47EB77510148E46F563FF55F7FD7912193284F
+ 3A4765A15B3C74935368C4410EE14A123936489D91D59B69971F5BB44BAFF7F2
+ C726DFE546872250399458EA7E7FC3025641F60FFAEFFF0013384A23C94CEDF7
+ 0C9850A70B05B5DFFDF63FE2386437623E9F82BC8E1A2929D94FEAC85329722D
+ CDF607FAE9FF00121802CB92E7E83E6BFAC621256C9F6E1FF5CFFC41B1083CC2
+ F3D4604A9B90B32B31A008E493F35C3D11D5E59E74F30FE95BD3696CD5B280D3
+ 6E8CC3BE064BFC8DA0FE91BEFAF5C2FF00A2DB51941E8CFDBEEA62AF524FB527
+ FADFF1A8C2C475727DA93FD6FF008D462A3AB50FD83FEBBFFC48E2563C97274F
+ A4FEB38A42C83FDE78FF00D45FD589E6C63F486E7FF79E5FF51BF56239ACBE92
+ A37DF622FF008C83FE22703357FF00757D18ABFFD03CD47FB93F2C550F60A5B4
+ 989431425F665A547EF8F4A823F0C90E6C27C912D6B312BFE9B3EC6BB0847FCC
+ BC3C43B91C27BCFD9FA96CB6B296881BC98FC47B43FC8DFF0015E225E4C4C4D8
+ DCFD9FA96358CDEA2D2EE5E8DDA2F6FF008AF24263B93C26F99FB3F529CD03C0
+ 7D69AF6448D11D99CFA540015FF8AF0F18AE4BC26F99FB3F53CCFCDDA9D86A77
+ 71B5A4B24EF12F0699C20522A4D07155FBF212902CC023AB1CFA720C9EB7E4D1
+ 2DD6816F20BA9538931F151191F05176E484F4193BF26AE13677FB93D5B59816
+ FF004D9FAD77109FF9978F10EE4889EF3F67EA5B0DB4DC0D2F26FB6FDA1FE73F
+ F15E248EE63189AE67ECFD4B0DACAA17FD326229DC444FFC9BC989792444F79F
+ B3F528ADB4A6D452EA6A7A7D2917F2F8FA792BDF931113C3CCF2F2556B49C472
+ 56EE60389AED10EDFF0018F23C43B93289AE67ECFD4A935B4DC056F26FB49DA1
+ FE61FF0015E4011DC9944F79FB3F52E92D662056F66FB4BD0423B8FF008AF107
+ C94C4F79FB3F52D92DA6E717FA64DF6CD3687F95BFE2BC411DC83136373F67EA
+ 5E6D66E4A7EBB3EDED0D3FE4DE3C43B99709EF3F67EA60DE73F303DBBFE8DB1B
+ C92590AB2DC31F4C001A9F08E283C305F92444DDDB0FD1F49BAD66FE3B2B606A
+ C6B23F6441D58E459BD774ED1D74D8C59DADCCA91C689D045B9AB78C67277B72
+ 6AE137CCFD9FA91496B37293FD326FB43B43FCA3FE2BC6C772889DF73F67EA72
+ 5ACDCA4FF4C9BED7843FCA3FE2BC491DCA2277DCFD9FA9A86DA6E0697937DA7E
+ D0FF0031FF008AF124772C627BCFD9FA9725ACC1682F66EA7A884F73FF0015E2
+ 48EE5113DE7ECFD4B21B598DBC7FE99301C0768BC3C7D3C248BE488C4F0F33F6
+ 7EA6E5B699607ADE4CC021A8222DF6EF48EB80117C965134773F67EA5F7DF622
+ FF008C83FE22720DCAFF00EEAFA3157FFFD13CD47FB93F2C550F60C574989829
+ 7224D956953FBEF720611CD84F9229AEA51C6B6731A9A6C623D7FE7A64B87CD0
+ 647B8FD9FAD6C9732F38BFD126FB669BC5FC8DFF001662079A0C8D8D8FD9FADB
+ 373289507D526A90DDE2A76EFEA635E6BC46F91FB3F5AD79DDE5547B39594A35
+ 54FA441155FF008B31ADB9AF11BE47ECFD690EA5E57D275391EBA74D6F3F10DE
+ AC2625DC93D473A1C7845735E337C8FD9FAD895F7917578A493EA3134D128040
+ 731ABD0D7C1C83D3011E6C84ACF264DE4996EB4DD326B2BEB59639239DA950AB
+ B155FE6604EF5E990320399612C822C94EA30AD763BF8903FAE527306A3A9885
+ 24D4A1405680D4B375FE624F87BE03A80C06AA217AEA5010011D3DEB88CE190D
+ 4C56FD79560F496191CAA52ABE9F61DAAE32F8CE323CD90CC2A9565BA97D073F
+ 549A9C4F78ABD3C3D4CB0017CDB65235C8FD9FADD35CCBC056D26FB49DE23FB4
+ 3FE2CC40F35948D723F67EB6E4B994015B49B7651B188F7FF8C9881E6A647B8F
+ D9FADA92E650F156D25FB67BC5FC8DFF001662079A991B1B1FB3F5B11F3479D4
+ 5BA3D869CACB77BAC9212A428E9B1563BE44B306FA3CFEDAD6F353BB586DD1A6
+ B994FE27B9270327AB79734A8FCBF6C6DD6D257BA9006B89FF0075B9DF607D4E
+ 83C327C3E6D7C66F91FB3F5A6EB75219DC0B596BC57BC5E2DFF166131DB9A388
+ DF23F67EB5C9732F3907D526FB42BBC5FCA3FE2CC0479A891DF63F67EB747732
+ 969296937DADEA621FB23FE2CC48F35123BEC7ECFD6D43732F034B49BEDBF788
+ 7ED1FF008B3123CD6323DC7ECFD6DC7752B2D45A4DB93D4C40F53FF1662479A8
+ 91EE3F67EB5B0DCCA2DA33F54988083A18ABD3C3D4C4817CD1191E1E47ECFD6D
+ CB732B40F5B4954143B9316D51DC07AE206FCD6523C3C8FD9FAD75F7D88BFE32
+ 0FF889C8372BFF00BABE8C55FFD23CD47FB93F2C55474DFF008E5C3FF193FE67
+ 1C218CB92627A8F9FF000C095927DB87FD73FF00106C2107985C7FBC5FF55BF5
+ 8C7A27AB47FBE4FF0055BF5AE3D11D5A1FDF3FFAABFADB1E8BD52CBFD5161661
+ 13505002DF2AF4FBF30B2EA2B60EBB3EA8479311D4BCCE909288DC9CF4037398
+ 638E7C9D78F132F2D8212187CDBAB7C76968F1C2DD249488C53FD950FDD97C74
+ D7CDCB868AF9EE884F29F9BA552FF5A814D48E2647AD41A1E88465BF958F7368
+ D140F4529349F39D80E660FACA7FC52C1CFDDD7F0C84B4C3A309688745B65E67
+ 912410DDAB4528EAAE0A9FC731E58E7071258B263E5B865965AC09622BCB9230
+ 229E151DB2EC5A8A3BB761D59E453D7759225743552C943FEC866C6241DC3B7E
+ 204585B797305A4067B9904712904B31A742308665E77E66F3BBDE56CF4A2638
+ 013CAE3A336C46DE037C0B4C5F4DD2EF758BA16F6A85E463F139E807724E297A
+ AF97FCB96BA08454F8EE9D1BD594F5AD5761ED87A313CD377DA56F90FE3931C9
+ 7AAC8B6B96FF00557F5B613C9039A213ED49FEB7FC6A32B48EAD211CA4DFF6BF
+ E3518951D5D0FD83FEBBFF00C4CE2563C9B042A927C4FEB38A42845237D5E303
+ 6F817F564CC77631FA42D9D98C12549FB07F56103759722A578CDC63DFF6C7EA
+ 38299227D4FDC57BF4C8D25FFFD33CD47FB93F2C550F6081F49891AB43250D09
+ 53FDF1E84508C90E6C262C229AC2DCF1AB4A686A3F7F375FF83C3C450718F3F9
+ 959258C1CE2F8A5FB67FDDF37F237F97889162602C73F995C6C60F517E296A03
+ 50FAF37B7F978F114F00BEBF32D1B183D64F8A5FB2DBFAF378AFF978F11A5E01
+ 7D7E652CD51E2B497844F2732A0B932C8DB027621988EF985A9CF4385D76AF28
+ 81A1F796257D3DE6A3751E9B60395C4C683C147727C00CC0C503336E0E9F11CB
+ 2B2C9B44F286976019E6ADCDFA11CAE4B32904A83F0852282A737118F0BBD863
+ 0364F16C2DC16A34A2A6A7F7F375FF0083C9F1166203CFE65643650703F14A3E
+ 37E93CDFCE7FCBC26458C602BAFCCAE5B0804602B4A05360279BFE6BC788B218
+ C575F994A2F340D3352B35FAD44CEEB18E12191CB2EDD892725202468B0E01C2
+ C4E6B3BDF2D5F2DBCAE65B396A6DE7F103B1F719A8D461E1DC3ABD5E9EBD4137
+ 9F529A3B192580191D143AC6247415520D7E0237DB069B51C26BBDAB4D9F700F
+ 2605A86ABA86AB256EA69245AFC31166651F2049CDA12EFC0A4DF44F26DF6A4F
+ 14B775B5B373F69BED9142761F4620292F45B0D0749D36348AD55D08EAEB2CAA
+ 49EE4D186485B03004FED28B365019D3E294FC0FBFAF378AFF00978F11A63C02
+ FAFCCAD92C601256B2D78815F5A5AF53FE5E4848D27805F5F99525B3844CDF14
+ BF6577F5A5F16FF2B2464691C02FAFCCAE169097928D280587FBBA5FE51FE5E3
+ 6A203CFE65A4B387949F14BF6BFDFD2FF28FF2B1E22A203F04AFB6B484A905A5
+ FB4F4A4F28FDA3FE5E4644AC603CFE6570D3E2E34469428276F5E5F13FE5E0E3
+ 4880F3F9953874E88DBC75693894151EB4BD29FEB648CF744602BF695F35A5B4
+ 703F169764345F5A52361E05A980124ACA02BAFCCACBDFB31FFC641FA8E2DAAD
+ FEEAC55FFFD43CD47FB93F2C550F605C693114019FD4F8413C457D6EE687F564
+ A3CD84F9229A4BF05696F11A9A7F7CDB7BFF00778D0EF4132EE1F3FD8B647BEE
+ 70FEE22FB67FDDCDFC8DFF0015E114C49958D87CFF0063664BFF005147A11746
+ DFD66F6FF8AF1A09B95F21F3FD8D17BEF593F7117D96DFD66F15FF008AF1DA96
+ E57C87CFF6311D4AE6496F2E9A4A075764201A81C3E1D8903C3C339ECE6F21F7
+ BCC6A644E595F7AAF95ACE64371A80891DE43C119DCA90A09AD28ADD4E6DF490
+ 1C36EE747122360324B792F7D4980862FB42B595BF957FE2BCCD9014E6832DF6
+ 1F3FD8AEB25F92D5B7886FFEFE6DFDFF00BBCAE877B2065DC3E7FB16C2F7DC0F
+ EE22FB6FD666FE73FF0015E13488995721F3FD8B924BF28A7EAF1034E8666FE1
+ 16240EF50655C87CFF00620D5EF05A8FDCC74F4FA7AA6BF67FE31E5BB5B1065C
+ 3CBA77FEC42EB56571A8E953C52411078C7AB1B0918B2B20AEDFBB1D7A75CC7C
+ D1062C72894A2761F8F8316B5908B71CBC37CE765B17969ED2D939D2BCBD6965
+ 145750D9C72C928470F24A4901A87A7A7419D2E200C41F27AA84E4600D7775FD
+ 89F30BD2D15218A9CC81FBD6FE56FF008AF2CB0C89958D87CFF62E6FD201D47D
+ 5E320F712B507FC93C171EF4DCBBBEDFD8D837EB3A7EE62DD1FF00DDADE2BFF1
+ 5E03C348B95F21F3FD8DC8F7DCCD608A941F17ACDEFB7F7788AEF4DCAF90F9FE
+ C510F79EB3FEE62FB2BFEED6F16FF8AF27B522E57CBEDFD8AB09BD264FF478BE
+ D0DCCCDFCA3FE2BC81AEF4832DF61F3FD8B035E87907A110F8BFDFADFCA3FE2B
+ C96C8065DC3E7FB1D6F25E8E90C5F69FACADFCC7FE2BC6402C4CBB87CFF62B2C
+ B7C1391B7886E76F598F73FF0015E5743BD20CBB87CFF621E396F8DBA7EE63A7
+ 0145F55BC3FE31E5942D00CAB97DBFB17C82F4C0E5E188028490256246DFF18F
+ 058B5919572FB7F637A80004607F38FD47221B553FDD5F46157FFFD53CD47FB9
+ 3F2C55434EFF008E5C3FF193FE67610C65C93262015A9A54D057C698125649F6
+ E1FF005CFF00C41B0844B986C91EAA8EE55A9F78C7A2F55AECAB3254EFC5B6FA
+ 57081B2F56077443EA37ABE33C9FF1339CFE71533EF795D50FDE1F79647A0715
+ B2118EA8483F4B337F1CDC692578C3BBD0CAF1FB933B73FBD97FD7A1FF00805C
+ CB97273A3CCA254825A86B43434F1A0CA9905B07D83FEBBFFC4CE1288F25C841
+ 4520D453A8C4A47241EC2D81AEDE9835FF0063968E6C07D3F05F2B84B79D8F41
+ 1B1FC32B99A168C86A24F93029144315339AE65E44592CD2CBE1D3ACF96C4C50
+ F5F92E7498BE81EE7ACC7B638FB8221D8ABC401A7C67FE20D965361E617991B9
+ 28E5B9E830526DAF548B84E5BFC0FF00AD71AD91D55588258577E20D3DAA7221
+ 975438FEF9FF00D55FD6D967463D55E035F53D9B7FF81195C923AAD6A7390FF9
+ 54FF00851920A3995380FC35F077FF00891C914455CFC51D54D454F4F99CAC73
+ 48434247D5E335DB80DFE8CB0F3631FA57CD29FAB494A5381DFE8C023BA65F49
+ 52BD5631C6C7BC83F51C16C9578B7A5D0F4C6D5FFFD63CD47FB93F2C550F6089
+ 2693123A86467A32B0A823D63D41C9479B098B08A3A7D8547FA243D7FDF69FD3
+ 1E23DE8F0E3DC16C961601E2FF0045877635FDDAFF002B7B61123DEC4E38D8D8
+ 39AC2C0383F55876563FDDAFB7B62247BD3E1C6F905036565EAAFF00A345BAB7
+ FBAD7C47B659C46B9A38237C830ED7621A5EB350BC2DAE4078E828A0F4236F71
+ 5CD3EAF11BB753ACC1BD84DB4A7B5771EB4692238A55D4350FD391D266E035D0
+ B568F20068F24EA2B2B1E727FA3444061FB0BD38AFB66E8C8D73776211DF608A
+ 1A7D854FFA2C3D7FDF69E1F2CAB88F7B2F0E3DC1643616050D6D61FB6FFEEB5E
+ CC7DB0991EF4471C6B905EBA7D8711FE890F4FF7DA7F4C788F7A4638F7043358
+ D90B646FAB4553183FDDAF5A7CB26246F9B0E08F0F21C901A9AD9C31FA71431A
+ BF5665450401EE06606AF31E1E1B703593881C203139D9AFAFA1D3EDF7926709
+ B7604EE7E8CD6E1C6645D769F1199B7A0B69DA7471AA7D5A1A2F100945AEC40F
+ 0CDF4491C8BD17871039058F61A7192202DA2DD8D7E05FE56F6C9714BBD0611B
+ 1B05EFA6E9E287EAD103DBE05FE9804E5DECB823DC140D8D97AC83EAD1538B7E
+ C2F8AFB659C46B9B1E08DF20885D3EC4935B586BC47FBAD7BD7DB2B333DECBC3
+ 8F70438B1B2F55C7D5A2A715FD85F16F6CB388D7363C11BE41560B0B126406D6
+ 13461FEEB5FE51ED90948F7A4423DC1B3A7D912FC6D62D9BB46BFCA3DB0099EF
+ 5108F7053874DB42A6B6D17DA7FD85ECC7DB24667BD6308F70574D3EC38FFBCB
+ 0F53FEEB5F1F9640C8F7A4638F70538B4DB0682326DA2A9415F817C3E5923395
+ F3631846B905D2E9F6090C8CB6D1060A483C16A081F2C0272BE6B28468EC17DF
+ 7D88BFE320FF00889CADB95FFDD5F462AFFFD73CD47FB93F2C550F61CCE93108
+ C80FEA6C58540FDF78023F5E4A3CD84F92299350F878CD0F5DEB13F4FF009198
+ EC8227DE3E5FB56C897FCE2FDF43F6CFFBA9BF91BFE2CC2298912B1B8F97ED6A
+ 44BFE43F7D0D38B54FA4D5EA3FE2CC229352BE63E5FB540A5EFAABFBD8BECB6F
+ E9378AFF00C59966D48A95F31F8F8A1754D165D6ADDED2E2588502B452AC4DCD
+ 5EADB8FDE65331121898196C6BE5FB585C57379A0DE9D3B531C5D7EC49FB2EBD
+ 8839A8CB84C4D87519F4E606E2CB2CB55578E91BAD4EF56151F81196E1D4D6C5
+ 9E1D556C9A437572E0F2B885493B7EE9CEDFF23333865817631CD7D47CBF6AF8
+ 5AE821ADCC03E2734F49BBB1DFFBDEF93338338C8D731F8F8B5EBDCA20E77107
+ 2A74589CFF00CCCC89C900C4E4A1CC7CBF6A025D49E2804733A1E2A16A8A57B7
+ BB3662E5D481C9C2C9AAE114C4B57D6CBB7D5EDAB24EE68AABB924E60C612C85
+ C28E3965367927DA0796AEF4B8FEBD712467519CA060E85FD352E3E1043AFD39
+ B7C508C5DCC71700D9904D0DFD032CB09F896A3D261DFF00E3265F121B889778
+ F97ED52923BEE717EF23FB47FDD4DFCADFF16648108225B6E3F1F15E62D44B2D
+ 248A9BD4989ABFF27305C5352EF1F8F8BBD0BD13A5668BEC3FFBA9BC57FE2CC1
+ C429152BE63E5FB55426A1EA1FDF434E237F49EB5A9FF8B323B26A57CC7CBF6A
+ C586F3D77FDEC3F6577F49FC5BFE2DC3629152BE63E5FB57471DF06929342072
+ 1D226FE51FF16602424096FB8F97ED7225FF00292B343F6BFDF4DFCA3FE2CC4D
+ 2812DF71F2FDAE852FF81FDF423E37FF007537F31FF8B3134B112EF1F2FDADC6
+ 9A871F8A6841A9AD22723A9FF8B3134A04BBC7CBF6AD852FFEAD1913435E0280
+ C4F4E9E3EA626AD1112E1E63E5FB5D2A5F7A0FCE684FC07901130EDBD0FA988A
+ B5909709DC7CBF6AFBEFB117FC641FF113906E57FF00757D18ABFFD03CD47FB9
+ 3F2C550F60E91E9313C8C15164AB3134007ADDCE18F361334114DA8D8295ADD4
+ 5B9A7DB53D47CF0F01EE41C91EF0B64BFB1E70FF00A545F6CFEDAFF237BE1113
+ DCC4E48D8DC39B50B0F5154DD45BAB7EDAFB7BE3C27B93E246F98506BDB21328
+ FACC5F65BF6D7C57DF2CE135C91C71BE61B8F51B3599C7D62220AAFEDAF8B7BE
+ 030247248C91BE681D561D135B46B7BD92260A07070EA190EFB86AE038AC7262
+ 6503D430BB8D1752D31DDB4CBC8AF2DD0D02991564A501E84D0F5ED98793477D
+ 1C1C9831CBB9453CCDA8DA9E33C0C0AEC7634CC43A7945C6FCB91CA4AC3CED20
+ 14F48E47C39F7B2F0B277A9BF9BAEE6DA18589F604E1F0667AA0E091E726A3B7
+ D775752F249159DBD2A5E59155A9ECB5E47EECBE1A337C9B21A780DC9B653A46
+ 8DA1E8D0BCE2E63B8BD643CAE1D949151D14576CD843170F476038223986432E
+ A563E98FF488C9E495F8D7F987BE118CB64B246B9AA49A8D80515BA8B7651F6D
+ 7C47BE4440F729C91EF0D497F63CE1FF00498BED9FDB5FE46F7C444F720E48D8
+ DC2E3A8E9E1941BA8AA6B4F8D7B7D38F09EE65E247BC2C6BFB1F5D3FD2A2FB0F
+ FB6BE2BEF8F09AE4C4E48DF30B86A361EA15FAD455E20FDB5F13EF8F09EE4F89
+ 1BE61A5BFB1F5DFF00D2A2FB29FB6BE2DEF8F09AE48F1237CC39350B0E720FAD
+ 45F687EDAFF28F7C4C4F724648EFB8747A8581693FD2A2FB5FCEBFCA3DF1313D
+ CA32477DC3A1BFB1E07FD2A2FB6FFB6BFCC7DF1313DCB1C91AE61B8F51B02B51
+ 7515093FB6A3B9F138989EE51923DE1643A8580B68C9BA8851057E35AF4F0AE2
+ 626F9223923C3CC372DFD8BC0FC6E622590F101D6A6A36DAB8889BE4B2C91E13
+ B85F7DF622FF008C83FE22720DCAFF00EEAFA3157FFFD13CD47FB93F2C55474D
+ FF008E5C3FF193FE671C218CB92627A8F9FF000C095927DB8BFD73FF00106C21
+ 07985C7FBC5FF55BF58C53D54E44E532763C5BF5AE107641E6B044DEB30DBECA
+ FEB6C9716CBD551102C8D5DCF11FACE44951CDA89179CBB7471FF105C492A399
+ 55500540E95FE1914AC87EC1FF005DFF00E2670944792F5FB23E4302428AEF66
+ 3C7D2FF8D725D588FA7E0A7283E93D07EC9FD5930B2E4DCA8FC46D4F893FE243
+ 1042C95CD4201DEAA3F1195B22D49F6E1FF5CFFC41B1083CC2F3D46064B0FF00
+ 7E9FEA3FEB5C3D18F55C3ED9F90FE3813D568FEFDFFD44FD6D87A23AB69F6A4F
+ F5BFE3518A8EAE4FB527FADFF1A8C54756A1FB07FD77FF00891C4AC792E4E9F4
+ 9FD670242C83FDE78CFF0090BFAB09E6C63F486E7FEE25FF0051BF56239A65F4
+ 951BEFB117FC641FF1138192BFFBABE8C55FFFD23CD47FB93F2C550F60A5B498
+ 9558A1326CC2848FDF76A8232439B09F24535B5C7C34BD946FBFC309DBFE45E1
+ B1DC8E13DE7ECFD4B24B69B9C5FE992FDB3FB30FF237FC578823B98989B1B9FB
+ 3F5316F3579C61F2E4C2D209E5BCD482D5E2FDD2A461A8473611D6A7AF11F860
+ B1DCCB84F7FDDFA98737E66F994BF25FAB8EC07A64D01FF65ED819D23F4AFCCD
+ BD6B954D6578C0F4569ED555594789570FCBAF6A61B6263E6F4A8A279BF7B15F
+ 48F14888F1BA88482AD52083E9EE0E1B15C98F09BE67ECFD4DC76D37397FD325
+ FB63F661FE45FF008AF124772044D9DCFD9FA97ADB4F56ADECA77DBE1846D4FF
+ 008C78D8EE64227BCFD9FA96436D3F03FE992FDB7E8B0FF39FF8AF12477318C4
+ D733F67EA5C96D3F01CAF65269D42C23FE65E363B99089AE67ECFD4A6B6F3FD5
+ 14FD725AFA63F661A7D9FF008C786C5F260227879F4F2FD4BE6B69FD17FF004C
+ 96BC4F5587C3FE31E0045F265289AE67ECFD4E9ADA7E03FD325FB49D561FE61F
+ F15E208EE5944D733F67EA426B2F77A7E937B7F0DD48F2DAC324C8922C450B46
+ A58034406951E382C772784F79FB3F5301D13CFF00AF6ADABD9585C081229A50
+ ACF1C6438A8236E4CC3F0C16931BEAF4B36D71C9697B281BD47187FEA9E4AC77
+ 2384F79FB3F52C6B69FD74FF004C97EC3FECC3E2BFF15E362B92384DF33F67EA
+ 5C2DA7F50FFA6CB4E236E30F5A9EFE9E363B9784DF33F67EA5A2DE6133D6F25A
+ 715ED0F8B7FC578DEDC9784DF33F67EA63FE6DD6750F2EE9A6FACA7F5A569D23
+ E33A215E252A7EC2A1AEDE389F72444D9DFEE4AFC97E6DD5FCCBA8DC5A5E3C70
+ A245EA86B740AC5832AEFCF98A532369E1F366B0DB4FC0FF00A64BF6DFA2C3FC
+ C7FE2BC9123B98C627BCFD9FA9B8EDA7E3BDECA4D4EE1611DCFF00C578923B94
+ 44F79FB3F52C86DA736D1D2F250780FD9869D3C3D3C248BE488C4F0F33F67EA6
+ E5B69C40E4DE4AD4435056200EDED1E0045F25944D1DCFD9FA97DF7D88BFE320
+ FF00889C8372BFFBABE8C55FFFD33CD47FB93F2C550F60C1349898824092A428
+ 2C7FBEF015272439B099D914D7D10E348E63BD36865DBDFECE1E128331E7F22A
+ 575A84312094ACBC63E4EC4C520145463D4A8C6B641902473F93E7CBAB89F50B
+ C96EA63CEE2E642EC7C59CD7F8E41B5EBB0E93E55F2FE9D1AEA3104882719EE2
+ 681C8790D3A9286B5DFDB0F0ECC38ACD312FD11E416BA9646D6488198B4712AB
+ 85009FB3FDD93B7CF22CD965EEB10E93E4D92E7CBB3B3C76C91476B72F1B3215
+ F5BD36159169B6E37C956CC2F761707E647996359FD4992479138C4DE9A0E125
+ 57E3D86F450450ED8B3641E50F356B6D6BA9EA7AE4ED71A7D9C7555F4D43997A
+ D032A8A6D41F17F36042432F9F3CDBAA5DFA1A63FA02566315B411A3B6E4B6EC
+ CA49A773B625406A5F3979DF45B9586FE621C00FE85C45190CA76AD54034DBB3
+ 63CD2F4187CCAB7DE509B56B4568AE52D2660BC19D5258908EB4A52A36AE1F36
+ 3B0D9E7D6DF993E638E5E575225C41C5C184C6880B3290A49500D0120E292876
+ F3F79B52E3D596EE82A1BD06890253A8DB8D69F4E04B3E3E6587CC3E4AD46E82
+ 14B9FAB4F1DC468ACCA922C649DFA0041A8A9C34C49792E95A83695A85BEA11A
+ 091EDDB9AA31A024034AD30324F24FCC1F3635C7AFF5D11EF510AC51F000F6A1
+ 527EF35C5598CBE6CD5753F2A2EB3A67EE353B5E62EC2C7EA464271E54E40815
+ 521FF0C3D18DEE81F2679E755D475A163ABCC258678D845C230AC244F887D815
+ 3B06C52BBCEDE75D4F4CD6059691288923893D7E7182DCD896028E2A2808FBF1
+ 51DEA77BAFEB9179421D52EDD5AFE7B856466857808594F1A0E3C4D695FA713C
+ 947354F20F98F50D4B53B94BE28C890175F4A1556E5C947FBAD6B4C14A4D252F
+ E70F3E2C8EB12C9C0335296A0ED53FE46369417FCAC6F360FF008FB4FF009131
+ FF00CD38ABD43CB5AADC5D6816973A8AC8D78E84BF085E8454F1A715A74A6480
+ B606406C99CB791340FF0004A0943B18651D4773C698447761298E1EBF22EBE7
+ 5E116F5FDE0FD47234DCADEA2FA5F4634AFF00FFD43CD47FB93F2C55474DFF00
+ 8E5C3FF193FE671C218CB92627A8F9FF000C09435FC42E20301E927243F4C6C3
+ 0A0F30F9DA7866B2BA92094719E0728C3C190D30327AF6A73E97E75D0218E0BF
+ 8ADC10B24E1D94346CB4AAB024537EF8A3ABCB35BB0B3D36F8DAD95E2DF448A3
+ 94E9F679EF5008241A788C52CD47FE4A66F98FFA8D3851D58F790ACE1BDF335A
+ A4EA1A38C3C9C4EE0955207DC4D7014BD735CBFB2F2FE91757F240248E3A5211
+ B73762154577A6E7738A1E5D6FE65F33EBB7E2DB488E1B79DB932FA31AD553B9
+ 2F27223E8C141294F99EC354B0BE8D358BBFADDF491091897690A29240525A9E
+ 1D30AB38F2C7FE4B7D53FE315DFF00C40E2AF3ED01EDA3D6AC5EECAADBACCA5D
+ 9FEC8DF627D81C282CC7F3364D39869C96CF1BDCFC6C7D360D48D82D2B4F1ED8
+ 94A1FC9BCFFC2BE68EBC0DBB53C2BE93D7F860431CF2B4315C79874E8A650F1B
+ 4CB553B834DF12964BF9A70450EA965E92052602091D4D1B6FD78854E7F2CD23
+ 9B41BB8255E51C97132B29DC106387255618F56077314DE57F32D16B5B1B8592
+ 3FF2A30430FBD7639164A90C7379B3CD27AD2FAE19DBC562AD7F051418AB3AFC
+ C48920F2DA43180A91DCC6AAA3A00233933D188EA90FE571A6B377FF0030C6BF
+ F06B911CD92A79CBCE092FABA3E8AC041565BABB4EB2549F8108FD9F13FB5FEA
+ FDA24DA005BE49F25BDF94D5B53888B4146B78587F79FE511FCBE03BFCBA81BA
+ 5EB16EA16D635029441B7D189E6C4726AE50B4321276E0DB7D19289DD12FA4A9
+ 5EAA848A83FDD83FE227236CD5F8AFA75A0AD31B57FFD53CD47FB93F2C550F60
+ A1F4989092019284A92A7FBE3D08A11921CD84C5845358424AFC738DFB4F37FC
+ D78788A38079FCCAC92C61E717C737DB35FDFCDFCADFE5E22450602C73F99621
+ E6BF20C5AACFF5CD39FD2BC61F1862583F1A01524D6BEF906CE5B30A7FCBFF00
+ 31A394F4E3623A10C6869F318DA533D2FF002CB51B8987E9199618850958EA58
+ 835EEC001D3C0E2ACC357F2A0FF0CCDA169150FC62F4D6491FD31497D4634DF7
+ 343DB0F4635BA43E50F24EAFA4EB4B777A63FABA23C6FE93B86058022878AFEB
+ C09E6CC35CF2F43ABE9575A789250D2D0A33C8F20565A30D9988EA30936C631A
+ 79941E48F35D85D09AC1C453212AB3C52321F03B800FCF033465E7E5C6BD7114
+ 574D722E35098B35D34CCC7B0E346A3313D6B5C0A9EE9BA25F68FE49D62DB50A
+ 72105C490345249C4A3C5D0A90A3AFB616357BBCCB4AB1FD27A85BD873F4CCED
+ C03D2B43427A6D8B24F7FE55FEBE26F488882F2E3EA726A6E695FB35C3BABD0E
+ DBCA29A6F95EEB4AB662D79710C8A5CB322B4B2AF1AB0534A7D076C01890C4B4
+ 5F226B7A66B165797262F46392ADC19F950035A7C23F5E11BA4A6FE74F29EA5A
+ DDE5ABE9E57D3891958CCEEC79135EB46C32401498793BCB579A3D8C967A89A4
+ AF2C932FA3248A0A958D77A71DF6C3195063216503E73F24DDEB1756F73A6711
+ 32A1498CAEE6AB5AAEF463B6F919166052EF24F92EE347BAB9B8D5286728AB0F
+ A2EEB452493BD14EE40C0A77D91BE6FF002FDCEADA7359E9EC4CA2E15CFAD248
+ CA1553DF978E5922480C62289497CA9E4ED5B4B9AFDAE8C67D7B67863F4D9C7C
+ 6D422B555DB21BB2E6908FCB6F3110483050547DA7EC687F63025A1F971E603F
+ B507FC149FF3461A2AF44F28E87369DA0C5677AEC2642EC0C32C8AB4762C3A15
+ F1F0C364303105389ED22485C2B4C58293BCF29E83B82D4C9C4EEC25015D7E65
+ BBD46291723FEEC1B7D07216DCAFE92FA5D4F4C7890FFFD63CD47FB93F2C5543
+ 4E0C74A8B82F360E5B88A0278CA49A568308632E48A6B89F6E36921DF7AB4436
+ FF0083386877B1323DDF72D79A7668C8B4928AC4B55A2E9C48DBE3F7C343BD04
+ 9DB63F67EB6CCF3F3561692710083F1455DE94A7C7ED8D0EF5E237C8FD8E334E
+ 6556FAA49C42B03F1455A923B73F6C6877AF11BE47ECFD6E134E2566FAA49C4A
+ A8FB5156A09FF2FDF1A1DEBC46F91FB3F5ACFADCC2463F549284003E28EBB57F
+ CBF7C3C3E6BC46F97DCB56EAE15A426D5E8CD51BC7D3881BFC7ED92E11DEA09D
+ F6FB9725E4F53CED241BED468CEDF4B8C0603BD2247BBEE5D14F32A1ADAC9BB3
+ 11468BA33123F6C78E4481DE8048E87ECFD6B92E2E0200D6920603701A223EFE
+ 63050EF4891AE5F72075186EAF746B9D356DA44967B778039319505D0AD7EDD4
+ 8C481DE8892072FB982695F97DA9E99A85BDF97F5040DCCA7145AED4EBEA1FD5
+ 881BB224D727A0492CCCB45B592BC94EE631D181FE7396803BD8927BBEE57371
+ 3B22F1B490EEA4D5A21B03BFED9CAE877A991EEFB96CF24EE632B6B27C0C49A9
+ 8BA71236F8FDF0C6875524EDB1FB3F5A999E7E4296B253B9E5183FF13C9D0EF5
+ E23DDF73467B832ABFD5E4E21581F8A3AD491FE5FB63416CDF2FB9B171701C9F
+ AB49C6837E51D6A2BDB9E3C23BD788DF2FB9523B89CCACC6D6420AA81468EBB1
+ 35FDBF7C8188EF5E237CBEE58D34E24726D6401882BF1475E806FF001FB64801
+ 5CD6CF77DCE8A79D5D89B59376DA8D1F4A01FCE3120573504F77DCAA92CEA8CA
+ D69254B31D9A23B33123F6C78E42877A827B8FD9FAD41269C2FC56B20352681A
+ 323AFF00AE32CA1DEA247BBEE5F6F34E9008FEAB2175503668E95029D79FF0C8
+ C80BE6A090397DCDCB2CECAC0DAC8A5D4AD4B474048A750F5FC310077A9248E5
+ F72EBE75E116FF00EEC1FF0011395D16D54E6DE9F2A7C34A61A57FFFD7905DA7
+ 38C8C55036F7A9636EB03C523152DBA0047C4C4F723C7155FF00A6E0FF007C4D
+ F72FFCD58ABBF4DC1FEF89BEE5FF009AB1577E9B83FDF137DCBFF3562AEFD370
+ 7FBE26FB97FE6AC5563EB709D84130F1D97FE6AC9442A98D5E127FB89BEE5FF9
+ AB2650A9FA5EDA9FEF3CDF3A2FFCD590B29533ABC5FEF897EE5FF9AB2685F1EB
+ 50AD41826A7C97FE6AC8C82AA7E9B83FDF137DCBFF00356412EFD3707FBE26FB
+ 97FE6AC55A3AD42411E84DBFB2FF00CD58AA8FE9887FDF137DCBFF003565A855
+ 4D6A10B4F426FB97FE6ACACF34AEFD3707FBE26FB97FE6AC0AB4EB76C7FE3DE6
+ 3FEC57FE6AC90055DFA6AD8FFC7BCBF727FCD58EEAA6DAC404FC304C07C97FE6
+ AC904371EB10835F426FB97FE6AC1256E4D661241F426FB97FE6AC62AB06B110
+ 35F426FB97FE6AC92ABFE9B83FDF137DCBFF00356549513AB4553FB89A9F25FF
+ 009AB27685E9AC42A6BE84DFF02BFF00356026D2BFF4D4076FABCDFF0002BFF3
+ 56455799A3BB0812365A372F880F023B1386D51D4FDDD3DB02BFFFD093B529BF
+ 4C550AFF0056AFC58AACFF0043C55DFE878ABBFD0F1577FA1E2AA4FF0054E593
+ 085A3EAD5DBAE1571FABF7C55DFE8BDF155C9F53A8DF7F90FEB80AAAFF00A1E4
+ 12EFF43C55DFE878AA81FAAD76CB50A91FD5286B9092AE6FA9537E9802544FD5
+ 72C43BFD171570FAA773F7018AAB2FD4A9B74CACA5C7EA5DE9F4D3156C7D4BB6
+ 0577FA1E2AEFF43C55DFE878ABBFD0F15578BD1FD8C555F157FFD9}
+ end
+ object StatusBar1: TStatusBar
+ Left = 0
+ Top = 782
+ Width = 1130
+ Height = 19
+ Panels = <>
+ SimplePanel = False
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 713
+ Width = 1130
+ Height = 69
+ Align = alBottom
+ TabOrder = 1
+ DesignSize = (
+ 1130
+ 69)
+ object Memo1: TMemo
+ Left = 3
+ Top = 3
+ Width = 1123
+ Height = 62
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ Color = clWhite
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ PopupMenu = PopupMenu1
+ ReadOnly = True
+ TabOrder = 0
+ end
+ end
+ object ToolBar1: TToolBar
+ Left = 0
+ Top = 0
+ Width = 1130
+ Height = 37
+ Hint = 'GVUI tool bar'
+ ButtonHeight = 31
+ ButtonWidth = 32
+ Caption = 'ToolBar1'
+ Color = 15790320
+ Customizable = True
+ EdgeBorders = [ebLeft, ebTop, ebRight]
+ Images = ImageList1
+ ParentColor = False
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 2
+ object ToolButton1: TToolButton
+ Left = 0
+ Top = 2
+ Hint = 'Run'
+ Caption = 'ToolButton1'
+ ImageIndex = 0
+ ParentShowHint = False
+ ShowHint = True
+ OnClick = ToolButton1Click
+ end
+ object ToolButton2: TToolButton
+ Left = 32
+ Top = 2
+ Hint = 'Settings'
+ Caption = 'ToolButton2'
+ ImageIndex = 1
+ ParentShowHint = False
+ ShowHint = True
+ OnClick = ToolButton2Click
+ end
+ object ToolButton4: TToolButton
+ Left = 64
+ Top = 2
+ Width = 5
+ Caption = 'ToolButton4'
+ ImageIndex = 3
+ Style = tbsSeparator
+ end
+ object ToolButton3: TToolButton
+ Left = 69
+ Top = 2
+ Hint = 'New File'
+ Caption = 'ToolButton3'
+ ImageIndex = 5
+ ParentShowHint = False
+ ShowHint = True
+ OnClick = ToolButton3Click
+ end
+ object ToolButton6: TToolButton
+ Left = 101
+ Top = 2
+ Hint = 'Open'
+ Caption = 'ToolButton6'
+ ImageIndex = 4
+ ParentShowHint = False
+ ShowHint = True
+ OnClick = ToolButton6Click
+ end
+ object ToolButton5: TToolButton
+ Left = 133
+ Top = 2
+ Hint = 'Save'
+ Caption = 'ToolButton5'
+ ImageIndex = 3
+ ParentShowHint = False
+ ShowHint = True
+ OnClick = ToolButton5Click
+ end
+ end
+ object MainMenu1: TMainMenu
+ Left = 128
+ Top = 104
+ object File1: TMenuItem
+ Caption = 'File'
+ object New1: TMenuItem
+ Caption = 'New'
+ OnClick = New1Click
+ end
+ object Open1: TMenuItem
+ Caption = 'Open'
+ OnClick = Open1Click
+ end
+ object Save1: TMenuItem
+ Caption = 'Save'
+ ShortCut = 16467
+ OnClick = Save1Click
+ end
+ object SaveAs1: TMenuItem
+ Caption = 'Save As..'
+ OnClick = SaveAs1Click
+ end
+ object Close1: TMenuItem
+ Caption = 'Close'
+ OnClick = Close1Click
+ end
+ end
+ object Edit1: TMenuItem
+ Caption = 'Edit'
+ object Undo1: TMenuItem
+ Caption = 'Undo'
+ ShortCut = 16474
+ OnClick = Undo1Click
+ end
+ object Cut1: TMenuItem
+ Caption = 'Cut'
+ ShortCut = 16472
+ OnClick = Cut1Click
+ end
+ object Copy1: TMenuItem
+ Caption = 'Copy'
+ ShortCut = 16451
+ OnClick = Copy1Click
+ end
+ object Paste1: TMenuItem
+ Caption = 'Paste'
+ ShortCut = 16470
+ OnClick = Paste1Click
+ end
+ object Find1: TMenuItem
+ Caption = 'Find'
+ ShortCut = 16454
+ OnClick = Find1Click
+ end
+ end
+ object Graphviz1: TMenuItem
+ Caption = 'Graphviz'
+ object DotProcess1: TMenuItem
+ AutoHotkeys = maAutomatic
+ Caption = 'Run'
+ ShortCut = 116
+ OnClick = DotProcess1Click
+ end
+ object Settings1: TMenuItem
+ Caption = 'Settings'
+ ShortCut = 8308
+ OnClick = Settings1Click
+ end
+ object PreprocessorSettings1: TMenuItem
+ Caption = 'Preprocessor Settings'
+ OnClick = PreprocessorSettings1Click
+ end
+ end
+ object View1: TMenuItem
+ Caption = 'View'
+ object Cascade1: TMenuItem
+ Caption = 'Cascade'
+ OnClick = Cascade1Click
+ end
+ object Tile1: TMenuItem
+ Caption = 'Tile'
+ OnClick = Tile1Click
+ end
+ end
+ object Help1: TMenuItem
+ Caption = 'Help'
+ object Help2: TMenuItem
+ Caption = 'Help'
+ OnClick = Help2Click
+ end
+ object Graphvizonnet1: TMenuItem
+ Caption = 'Graphviz on net'
+ OnClick = Graphvizonnet1Click
+ end
+ object AboutGraphvizEditor1: TMenuItem
+ Caption = 'About GVedit'
+ OnClick = AboutGraphvizEditor1Click
+ end
+ end
+ end
+ object PopupMenu1: TPopupMenu
+ Left = 176
+ Top = 96
+ object SaveCommandlogtofile1: TMenuItem
+ Caption = 'Save command log to file'
+ OnClick = SaveCommandlogtofile1Click
+ end
+ object Clear1: TMenuItem
+ Caption = 'Clear'
+ OnClick = Clear1Click
+ end
+ end
+ object ImageList1: TImageList
+ Height = 25
+ Width = 25
+ Left = 296
+ Top = 72
+ Bitmap = {
+ 494C010106000900040019001900FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000640000004B00000001002000000000003075
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FFFF0000000000000000000000000000000000000000000000000000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF0000000000000000000000000000000000000000000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF0000FFFF000000
+ 00007B7B7B007B7B7B007B7B7B0000FFFF0000FFFF007B7B7B007B7B7B007B7B
+ 7B007B7B7B0000FFFF0000FFFF00000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000FFFF0000FF
+ FF00000000007B7B7B007B7B7B007B7B7B0000FFFF0000FFFF007B7B7B007B7B
+ 7B007B7B7B007B7B7B0000FFFF0000FFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000FFFF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000FFFF000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000FFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000007B7B7B0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00000000007B7B7B00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B7B00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B7B000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF000000000000000000FFFFFF00000000000000000000000000FFFF
+ FF00000000007B7B7B0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00000000007B7B7B00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B7B00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B7B000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000FFFF0000FFFF0000FFFF000000
+ 0000FFFFFF0000000000000000000000000000000000FFFFFF0000000000FFFF
+ FF000000000000FFFF0000FFFF00000000007B7B7B0000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF0000FFFF0000FF
+ FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000000000FFFF0000FFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000FFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FF
+ FF0000FFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF000000000000000000FFFFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF0000000000FFFFFF00FFFFFF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0000000000FFFFFF00FFFFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF0000000000BDBDBD00FFFFFF0000000000FFFFFF000000000000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF0000000000000000000000000000FFFF0000FFFF0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0000000000000000000000000000FFFF0000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000FFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FFFF0000FFFF0000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF0000FFFF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF0000FFFF000000000000000000000000000000000000FF
+ FF0000FFFF000000000000000000000000000000000000FFFF0000FFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000FFFF0000FFFF000000000000000000000000000000
+ 000000FFFF0000FFFF000000000000000000000000000000000000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000FFFF0000000000000000000000
+ 000000000000000000000000000000FFFF000000000000000000000000000000
+ 000000000000000000000000000000FFFF007B7B7B0000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF00000000000000
+ 00000000000000000000000000000000000000FFFF0000000000000000000000
+ 00000000000000000000000000000000000000FFFF0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000EFEFF7007B8CAD00E7E7E70000000000000000000000
+ 000000000000F7F7F700C6CED600D6D6DE000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000EFEFEF00B5B5BD00C6CECE00DEDEDE00F7F7F700000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000DEE7EF007384
+ AD00F7F7EF0000000000000000000000000000000000DEDEE7008C94AD00CED6
+ DE00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000DEDEDE00525252008C8C8C0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000D6D6D600B5ADA500DECE
+ B500C6BDBD00B5B5B5006B6B6B008C8C8C000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000DEDEDE00C6C6C600D6D6DE004A638C00A5ADBD00DEDEDE00F7F7F7000000
+ 000000000000C6CEDE009CADBD00F7F7F7000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000E7E7E7000000
+ 000039393900EFEFEF0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000C6CECE00BDA59400D6AD7B00D6B58C00CEB59400948473008484
+ 7B00ADB5B500D6D6D600EFEFEF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000D6D6DE009C9CAD00C6CED6004A6B
+ 8C0073849C008494B5008C9CB500B5BDCE00CECED6009CA5BD00BDCED6000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000EFEFEF00BDBDBD00F7F7F70000000000000000000000
+ 00000000000000000000F7F7F7004242420008080800DEDEDE00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000EFEFEF00BDBDBD00F7F7F70000000000BDBDBD00C6AD9400D6B5
+ 8400D6B58400D6B58400AD8C5A009C7B5A00C6AD9400B5AD9C00A5A5A500BDC6
+ C600E7E7E7000000000000000000000000000000000000000000000000000000
+ 00000000000000000000EFEFEF00BDBDBD00F7F7F70000000000000000000000
+ 0000E7E7EF0094949C009CADC6008494AD00D6D6D600C6C6D60063739C00ADBD
+ CE007B94B5007384AD00EFEFF700000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000CECECE00424242000808
+ 0800ADADAD000000000000000000000000000000000000000000000000008484
+ 840000000000BDBDBD0000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000CECECE004242420008080800ADAD
+ AD00F7F7F700B5B5B500CEB59400D6B58C00D6B59400D6B59400BD9C73009C7B
+ 5200CEA57B00D6B58C00CEAD8C00B5A58C009C9C9400CED6D600000000000000
+ 00000000000000000000000000000000000000000000CECECE00424242000808
+ 0800ADADAD00000000000000000000000000F7F7F700848494008494B5009CAD
+ C600D6D6D600ADB5C60094A5B50000000000B5C6D6008494B500000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000007B7B7B00000000007B7B7B007B7B7B0000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000F7F7
+ F700A5A5A50008080800000000000000000029292900EFEFEF00000000000000
+ 0000000000000000000000000000B5B5B5000000000094949400000000000000
+ 0000000000000000000000000000000000000000000000000000F7F7F700A5A5
+ A50008080800000000000000000029292900DEDEDE00BDB5B500D6BD9400DEBD
+ 9400DEBD9400DEBD9400CEAD8400A5845A00C6A57B00DEBD9400DEB58C00DEB5
+ 8400B5A58C00BDC6BD000000000000000000000000000000000000000000F7F7
+ F700A5A5A50008080800000000000000000029292900EFEFEF00000000000000
+ 0000E7EFEF00737B84007B94AD00BDC6D600D6D6D6008C94AD00B5C6CE000000
+ 0000A5B5CE00B5BDD60000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000BDBDBD0000000000BDBD
+ BD00BDBDBD000000000000000000000000000000000000000000000000000000
+ 00000000000000000000CECECE005252520000000000080808008C8C8C005A5A
+ 5A000000000094949400000000000000000000000000EFEFEF00B5B5B5005A5A
+ 5A00000000004A4A4A00F7F7F700000000000000000000000000000000000000
+ 000000000000CECECE005252520000000000080808008C8C8C005A5A5A000000
+ 000094949400C6BDB500DEBD9400DEC69C00DEBD9400CEB58C00B59C7300A58C
+ 6300B59C7300DEBD9400DEBD9400DEBD9400BDAD9400BDC6BD00000000000000
+ 00000000000000000000CECECE005252520000000000080808008C8C8C005A5A
+ 5A0000000000949494000000000000000000737B84004A4A5200424A63006B7B
+ 8C008C949C0063738400DEDEE700E7EFEF0094A5BD00E7E7EF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000BDBDBD00BDBDBD00BDBDBD00BDBDBD0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000ADADAD000000
+ 000031313100CECECE0000000000DEDEDE001818180010101000D6D6D6000000
+ 0000ADADAD003939390000000000000000001818180084848400000000000000
+ 00000000000000000000000000000000000000000000ADADAD00000000003131
+ 3100CECECE0000000000DEDEDE001818180052525200C6B5A500DEC69C00CEB5
+ 8C00B59C7300A58C6B00AD946B00AD947300C6AD8C00DEC69C00DEC69C00DEC6
+ 9C00C6AD9400BDBDBD0000000000000000000000000000000000ADADAD000000
+ 000031313100CECECE0000000000DEDEDE001818180010101000D6D6D600E7E7
+ EF00424A4A00949484006B6B630039424A0029314200424A52007B848C008C94
+ A5008494AD00E7E7EF0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000F7F7F700BDBDBD00E7E7E70000000000000000000000
+ 00008484840000000000424242004A4A4A00080808000000000039393900ADAD
+ AD00E7E7E7000000000000000000000000000000000000000000000000000000
+ 000000000000F7F7F700BDBDBD00E7E7E7000000000000000000000000008484
+ 840063636300AD9C8C00BD9C7B00AD946B00AD947300B59C7B00CEB59400DEC6
+ A500DECEAD00DECEAD00DECEA500E7CEA500C6B59C00BDBDBD00000000000000
+ 00000000000000000000F7F7F700BDBDBD00E7E7E70000000000000000000000
+ 00008484840000000000424242005252520052525200ADA5D600C6C6D600DEDE
+ DE00D6D6CE00ADADAD007B847B00636B6B00525A6B00636B7B00ADADAD00D6D6
+ D600000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007B7B
+ 7B00000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000E7E7E70021212100000000000000
+ 000000000000000000009C9C9C00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000E7E7E7007B848400A5947300AD946B00AD9C
+ 7300AD9C7300CEBD9C00E7D6B500E7D6B500E7D6B500E7D6B500E7CEB500E7CE
+ AD00CEBDA500B5BDBD0000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000E7E7E70021212100000000002121
+ 21007B7B73009494D6006363EF00D6D6FF00F7F7FF000000000000000000F7F7
+ F700DEDEDE009C9C9C006B6B7300B5B5BD000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00000000007B7B7B000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000008C8C8C000000000000000000000000000000000029292900EFEF
+ EF00F7F7F700E7E7E70000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000F7F7
+ F700B5B5B500AD846B00BD6B6300B5846B00B57B6B00BD8C7300E7CEAD00E7DE
+ BD00E7D6B500E7D6B500E7D6B500EFD6B500CEC6AD00B5B5B500000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000008C8C8C0000000000212929009C9C9400D6D6D6003939DE003939
+ FF009494EF00D6D6CE0094949400A5A59C00FFFFF700EFEFE7008C8C8C00D6D6
+ D600000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B
+ 7B00000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000E7E7E700212121000000
+ 000000000000000000000000000094949400E7E7E700424242008C8C8C00EFEF
+ EF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000F7F7F700CECECE00B5947B00BD635A00BD5A
+ 5200BD736300B57B6B00D6A58C00EFB5A500C6AD9400D6C6A500E7D6BD00EFDE
+ BD00D6CEB500B5B5B50000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000E7E7E700212121002931
+ 3900BDBDB500D6D6D600A5A5D6004A52A50052527B006B6B5A00292921005A5A
+ 8C008484F700A5A5D6009C9C9400EFEFEF000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF000000000000000000FFFF
+ FF000000000000000000BDBDBD0000000000FF000000FF000000FF0000000000
+ FF00FF000000FF000000000000007B7B7B000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000094949400000000000000000000000000000000004242
+ 4200B5B5B500181818000000000021212100ADADAD0000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000EFEF
+ EF00DED6CE00CEB59400BD6B5A00BD5A5A00B5947B00B57B6B00C6948400E784
+ 7B00BD8C7B00B5AD9400BDB59400DED6B500DED6BD00B5B5B500000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000008C8C8C00424A5200D6D6D600D6BDBD009C847B00635A
+ 5200D6D6CE00C6C6C6007373AD006363DE008484EF004242CE00ADADB5000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF0000000000000000000000FF000000FF000000FF0000000000000000007B7B
+ 7B00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000DEDEDE001818
+ 1800000000000000000000000000080808002121210021212100ADADAD005A5A
+ 5A00525252000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000E7EFEF00DED6C600DEC6A500B58C7300B584
+ 7300B5A58400B59C8400BD8C7300C6948400C6AD9400DED6BD00CEC6AD00D6CE
+ AD00E7DEC600B5B5B50000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000B5B5BD00636B
+ 6B00D6A59C00D6636300BD6B6B00C66B6B00DEB5B500D6DEDE009C9CEF005A5A
+ E7007B7BDE004A4AC600C6C6C600000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF0000000000000000000000
+ 000000000000FFFFFF0000000000FFFFFF00000000000000FF000000FF000000
+ FF000000FF000000FF00000000007B7B7B000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000CECECE00E7E7
+ E7000000000000000000000000007B7B7B000000000000000000000000000000
+ 0000000000004242420000000000F7F7F700EFEFEF0000000000000000000000
+ 00000000000000000000000000000000000000000000CECECE00E7E7E700E7E7
+ E700DEDECE00DECEBD00C6BDA500A59C8C00A59C8C00A59C8C00A59C8C00A5A5
+ 8C00B5AD9C00DED6C600DED6C600DED6C600D6CEBD00B5B5B500000000000000
+ 0000000000000000000000000000000000000000000000000000CECECE00E7E7
+ E7000000000000000000A5B5BD00949C9400D6848C00D6737300D6ADAD00D684
+ 8400D6737300DEDEDE00EFEFFF00B5B5FF009C9CE700848C9400D6D6D6000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF007B7B
+ 7B00000000000000000000000000000000000000000000000000000000000000
+ 000000000000EFEFEF002121210042424200E7E7E7000000000000000000DEDE
+ DE0010101000000000000000000000000000000000006B6B6B00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000EFEFEF002121210042424200DEDEDE00E7E7E700E7E7E700D6D6D6007B7B
+ 7B00737373006B6B6B00737373007373730094949400B5B5B500B5B5B500B5B5
+ B500ADADAD00BDBDBD0000000000000000000000000000000000000000000000
+ 000000000000EFEFEF002121210042424200E7E7E70000000000848C9400B5B5
+ A500C6C6BD00CE9C9400D68C8C00D69C9C00D6CECE00E7E7E700000000000000
+ 0000E7E7DE0084848400E7E7EF00000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF000000000000000000FFFF
+ FF000000000000000000000000000000000000000000000000000000FF000000
+ FF000000FF0000000000000000007B7B7B000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000C6C6C6001818
+ 180029292900CECECE0000000000000000009494940000000000000000001818
+ 18005252520073737300F7F7F700000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000C6C6C600181818002929
+ 2900CECECE000000000000000000949494000000000000000000181818005252
+ 520073737300F7F7F70000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000C6C6C6001818
+ 180029292900CECECE00A5B5BD0094949C00737B8400636B6B006B736B007B84
+ 7B00949C8C00A5A59C00CECEC600DEE7DE00C6C6BD00848C8C00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF000000
+ 000000000000000000000000FF000000FF000000FF0000000000000000007B7B
+ 7B00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000D6D6D600393939000808080073737300B5B5
+ B500B5B5B500000000004A4A4A00C6C6C600BDBDBD00ADADAD00E7E7E7000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000D6D6D600393939000808080073737300B5B5B500B5B5
+ B500000000004A4A4A00C6C6C600BDBDBD00ADADAD00E7E7E700000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000D6D6D600393939000808080073737300B5B5
+ B5009CADB500314A6300525A6300526B84006B73840084848C0084848C00737B
+ 84006B737300ADADB50000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000FFFFFF0000000000BDBDBD00FFFF
+ FF0000000000FFFFFF000000000000000000000000007B7B7B000000FF000000
+ FF000000FF0000000000000000007B7B7B000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000EFEFEF007B7B7B0021212100000000001010100021212100CECECE007373
+ 730008080800080808005A5A5A00EFEFEF000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000EFEF
+ EF007B7B7B0021212100000000001010100021212100CECECE00737373000808
+ 0800080808005A5A5A00EFEFEF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000EFEFEF007B7B7B0021212100000000002939390031425200C6CECE00426B
+ A5004A6B8C00B5B5B500C6C6C600DEDEDE00CECED600E7E7EF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000
+ FF000000FF000000FF000000FF000000FF000000000000000000000000007B7B
+ 7B00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000F7F7F700DEDE
+ DE00ADADAD00ADADAD00B5B5B50008080800000000000000000000000000B5B5
+ B500000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000F7F7F700DEDEDE00ADAD
+ AD00ADADAD00B5B5B50008080800000000000000000000000000B5B5B5000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000F7F7F700DEDE
+ DE00ADADAD00ADADAD00B5B5B50008080800000000000000000000000000B5B5
+ B500000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000007B7B7B000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000949494000000
+ 00000000000000000000000000009C9C9C000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000094949400000000000000
+ 000000000000000000009C9C9C00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000949494000000
+ 00000000000000000000000000009C9C9C000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000DEDEDE0010101000000000000000000018181800D6D6
+ D600000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000DEDEDE0010101000000000000000000018181800D6D6D6000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000DEDEDE0010101000000000000000000018181800D6D6
+ D600000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000BDBD
+ BD003131310031313100C6C6C600000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000BDBDBD003131
+ 310031313100C6C6C60000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000BDBD
+ BD003131310031313100C6C6C600000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000424D3E000000000000003E00000028000000640000004B00000001000100
+ 00000000B00400000000000000000000000000000000000000000000FFFFFF00
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000FFFFFFFFFFFFC0000000000000000000
+ FFFFFFFFFFFFC0000000000000000000FFFFFFFFFFFFC0000000000000000000
+ FFFFFFFFFFFFC0000000000000000000FFFFFFFFFFFFC0000000000000000000
+ FFF7EFFFFBF7C0000000000000000000F9001FFC800FC0000000000000000000
+ FC003FFE001FC0000000000000000000FE003FFF001FC0000000000000000000
+ FE003FFF001FC0000000000000000000FE003FFF001FC0000000000000000000
+ FE003FFF001FC0000000000000000000F00017F8000FC0000000000000000000
+ F8000FFC0007C0000000000000000000FE007FFF003FC0000000000000000000
+ FE00FFFF007FC0000000000000000000FE00FFFF007FC0000000000000000000
+ FE027FFF013FC0000000000000000000FC073FFE039FC0000000000000000000
+ F9E79FFCF3CFC0000000000000000000F7EFE7FBF7F7C0000000000000000000
+ FFFFFFFFFFFFC0000000000000000000FFFFFFFFFFFFC0000000000000000000
+ FFFFFFFFFFFFC0000000000000000000FFFFFFFFFFFFC0000000000000000000
+ FFFFFFFFFFFFFFFC78FFFFFFF0000000FFFFFFFF83FFFFFC78FFFFFFF0000000
+ FFFC7FFF80FFFFF018FFFFFFF0000000FFFC3FFF801FFFF001FFFFFFF0000000
+ FC7C3FF88007FC7001FFFFFFF0000000F87E3FF00003F87013FFFE01F0000000
+ E03E3FC00003E03013FFFE01F0000000C0381F800003C03003FFFE01F0000000
+ C2103F840003C20003FFFE01F0000000C7007F8E0003C70000FE0000F0000000
+ FF01FFFE0003FF0060FE0000F0000000FF803FFE0003FF8000FE0000F0000000
+ FF800FFE0003FF8000FE0000F0000000FFC007FE0003FFC001FE0046F0000000
+ FFC007FE0003FFC001FE0002F0000000FCE027F80003FCC001FE0000F0000000
+ F8603FF00003F84031FE0046F0000000FC301FF8603FFC0003FE00C6F0000000
+ FE001FFC003FFE0003FE0186F0000000FF000FFE001FFF0003FE020EF0000000
+ FFC00FFF801FFFC00FFE07FEF0000000FFFC0FFFF81FFFFC0FFFFFFFF0000000
+ FFFC0FFFF81FFFFC0FFFFFFFF0000000FFFE1FFFFC3FFFFE1FFFFFFFF0000000
+ FFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000
+ 000000000000}
+ end
+ object ODB: TOpenDialog
+ Left = 80
+ Top = 96
+ end
+ object SDB: TSaveDialog
+ Left = 208
+ Top = 248
+ end
+ object Timer1: TTimer
+ Enabled = False
+ Interval = 250
+ OnTimer = Timer1Timer
+ Left = 16
+ Top = 488
+ end
+ object ADOTable1: TADOTable
+ Left = 416
+ Top = 88
+ end
+end
--- /dev/null
+//---------------------------------------------------------------------------
+
+#ifndef UmainH
+#define UmainH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Menus.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <ToolWin.hpp>
+#include <ImgList.hpp>
+#include <Dialogs.hpp>
+#include <Registry.hpp>
+#include <ADODB.hpp>
+#include <DB.hpp>
+#include <jpeg.hpp>
+//---------------------------------------------------------------------------
+class TfrmMain : public TForm
+{
+__published: // IDE-managed Components
+ TMainMenu *MainMenu1;
+ TMenuItem *File1;
+ TMenuItem *Graphviz1;
+ TMenuItem *Help1;
+ TMenuItem *Edit1;
+ TMenuItem *New1;
+ TMenuItem *Open1;
+ TMenuItem *Save1;
+ TMenuItem *SaveAs1;
+ TMenuItem *Undo1;
+ TMenuItem *Cut1;
+ TMenuItem *Copy1;
+ TMenuItem *Paste1;
+ TMenuItem *DotProcess1;
+ TMenuItem *AboutGraphvizEditor1;
+ TStatusBar *StatusBar1;
+ TMenuItem *Settings1;
+ TPanel *Panel1;
+ TMemo *Memo1;
+ TSplitter *Splitter1;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *SaveCommandlogtofile1;
+ TMenuItem *Clear1;
+ TToolBar *ToolBar1;
+ TToolButton *ToolButton1;
+ TImageList *ImageList1;
+ TOpenDialog *ODB;
+ TSaveDialog *SDB;
+ TMenuItem *View1;
+ TMenuItem *Cascade1;
+ TMenuItem *Tile1;
+ TToolButton *ToolButton2;
+ TToolButton *ToolButton4;
+ TToolButton *ToolButton5;
+ TToolButton *ToolButton6;
+ TToolButton *ToolButton3;
+ TMenuItem *Find1;
+ TTimer *Timer1;
+ TMenuItem *Close1;
+ TMenuItem *Help2;
+ TMenuItem *Graphvizonnet1;
+ TMenuItem *PreprocessorSettings1;
+ TADOTable *ADOTable1;
+ TImage *Image1;
+ void __fastcall New1Click(TObject *Sender);
+ void __fastcall Label1Click(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall Open1Click(TObject *Sender);
+ void __fastcall SaveAs1Click(TObject *Sender);
+ void __fastcall Save1Click(TObject *Sender);
+ void __fastcall ToolButton1Click(TObject *Sender);
+ void __fastcall Undo1Click(TObject *Sender);
+ void __fastcall Cut1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall Paste1Click(TObject *Sender);
+ void __fastcall SaveCommandlogtofile1Click(TObject *Sender);
+ void __fastcall Clear1Click(TObject *Sender);
+ void __fastcall Cascade1Click(TObject *Sender);
+ void __fastcall Tile1Click(TObject *Sender);
+ void __fastcall DotProcess1Click(TObject *Sender);
+ void __fastcall Settings1Click(TObject *Sender);
+ void __fastcall ToolButton2Click(TObject *Sender);
+ void __fastcall ToolButton3Click(TObject *Sender);
+ void __fastcall ToolButton6Click(TObject *Sender);
+ void __fastcall ToolButton5Click(TObject *Sender);
+ void __fastcall AboutGraphvizEditor1Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall Find1Click(TObject *Sender);
+ void __fastcall Replace1Click(TObject *Sender);
+ void __fastcall Timer1Timer(TObject *Sender);
+ void __fastcall Close1Click(TObject *Sender);
+ void __fastcall Help2Click(TObject *Sender);
+ void __fastcall Graphvizonnet1Click(TObject *Sender);
+ void __fastcall PreprocessorSettings1Click(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TfrmMain(TComponent* Owner);
+ int FileSeq;
+ AnsiString ReadFromRegistry(AnsiString RBKey,AnsiString RKey);
+ void TfrmMain::UpdateMainForm();
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TfrmMain *frmMain;
+//---------------------------------------------------------------------------
+#endif