From: arif Date: Wed, 6 Jan 2010 20:37:36 +0000 (+0000) Subject: gvedit source has been added to cvs X-Git-Tag: LAST_LIBGRAPH~32^2~1491 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a050d00120ce519060f2c4f7499702009d48b52;p=graphviz gvedit source has been added to cvs --- diff --git a/windows/gvedit/))Settings.ini b/windows/gvedit/))Settings.ini new file mode 100644 index 000000000..5e1e58f84 --- /dev/null +++ b/windows/gvedit/))Settings.ini @@ -0,0 +1,11 @@ +[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= + diff --git a/windows/gvedit/Application.h b/windows/gvedit/Application.h new file mode 100644 index 000000000..a8adb5067 --- /dev/null +++ b/windows/gvedit/Application.h @@ -0,0 +1,4 @@ +#ifndef UApplicationH +#define UApplicationH +#define SOFTWARE_SHORT_NAME "Graphviz Editor v:0.99" +#endif diff --git a/windows/gvedit/Editor.ini b/windows/gvedit/Editor.ini new file mode 100644 index 000000000..d22259794 --- /dev/null +++ b/windows/gvedit/Editor.ini @@ -0,0 +1,37 @@ +[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 + + + + + + diff --git a/windows/gvedit/GraphX.bpr b/windows/gvedit/GraphX.bpr new file mode 100644 index 000000000..260d35701 --- /dev/null +++ b/windows/gvedit/GraphX.bpr @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[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= + + \ No newline at end of file diff --git a/windows/gvedit/GraphX.cpp b/windows/gvedit/GraphX.cpp new file mode 100644 index 000000000..793acbde2 --- /dev/null +++ b/windows/gvedit/GraphX.cpp @@ -0,0 +1,43 @@ +//--------------------------------------------------------------------------- + +#include +#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; +} +//--------------------------------------------------------------------------- diff --git a/windows/gvedit/UAbout.cpp b/windows/gvedit/UAbout.cpp new file mode 100644 index 000000000..21d45a353 --- /dev/null +++ b/windows/gvedit/UAbout.cpp @@ -0,0 +1,14 @@ +//--------------------------------------------------------------------- +#include +#pragma hdrstop + +#include "UAbout.h" +//--------------------------------------------------------------------- +#pragma resource "*.dfm" +TfrmAbout *frmAbout; +//--------------------------------------------------------------------- +__fastcall TfrmAbout::TfrmAbout(TComponent* AOwner) + : TForm(AOwner) +{ +} +//--------------------------------------------------------------------- diff --git a/windows/gvedit/UAbout.dfm b/windows/gvedit/UAbout.dfm new file mode 100644 index 000000000..05fd8e6c0 --- /dev/null +++ b/windows/gvedit/UAbout.dfm @@ -0,0 +1,2115 @@ +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 diff --git a/windows/gvedit/UAbout.h b/windows/gvedit/UAbout.h new file mode 100644 index 000000000..d75e135a6 --- /dev/null +++ b/windows/gvedit/UAbout.h @@ -0,0 +1,33 @@ +//---------------------------------------------------------------------------- +#ifndef UAboutH +#define UAboutH +//---------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//---------------------------------------------------------------------------- +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 diff --git a/windows/gvedit/UEditor.cpp b/windows/gvedit/UEditor.cpp new file mode 100644 index 000000000..a3a5c72aa --- /dev/null +++ b/windows/gvedit/UEditor.cpp @@ -0,0 +1,275 @@ +//--------------------------------------------------------------------------- + +#include +#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<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<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<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; + } + + } + + } +} +//--------------------------------------------------------------------------- + diff --git a/windows/gvedit/UEditor.dfm b/windows/gvedit/UEditor.dfm new file mode 100644 index 000000000..b08ae90f5 --- /dev/null +++ b/windows/gvedit/UEditor.dfm @@ -0,0 +1,178 @@ +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 diff --git a/windows/gvedit/UEditor.h b/windows/gvedit/UEditor.h new file mode 100644 index 000000000..7c08940af --- /dev/null +++ b/windows/gvedit/UEditor.h @@ -0,0 +1,131 @@ +//--------------------------------------------------------------------------- + +#ifndef UEditorH +#define UEditorH +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +#include +#include +//--------------------------------------------------------------------------- +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 diff --git a/windows/gvedit/UPreProcess.cpp b/windows/gvedit/UPreProcess.cpp new file mode 100644 index 000000000..9963dba3e --- /dev/null +++ b/windows/gvedit/UPreProcess.cpp @@ -0,0 +1,66 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop + +#include "UPreProcess.h" +#include +#include +#include +#include + +//--------------------------------------------------------------------------- +#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(); +} +//--------------------------------------------------------------------------- + diff --git a/windows/gvedit/UPreProcess.dfm b/windows/gvedit/UPreProcess.dfm new file mode 100644 index 000000000..024dd888d --- /dev/null +++ b/windows/gvedit/UPreProcess.dfm @@ -0,0 +1,98 @@ +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 diff --git a/windows/gvedit/UPreProcess.h b/windows/gvedit/UPreProcess.h new file mode 100644 index 000000000..ad0ffe402 --- /dev/null +++ b/windows/gvedit/UPreProcess.h @@ -0,0 +1,35 @@ +//--------------------------------------------------------------------------- + +#ifndef UPreProcessH +#define UPreProcessH +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +//--------------------------------------------------------------------------- +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 diff --git a/windows/gvedit/UPreview.cpp b/windows/gvedit/UPreview.cpp new file mode 100644 index 000000000..527e2fb54 --- /dev/null +++ b/windows/gvedit/UPreview.cpp @@ -0,0 +1,18 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop + +#include "UPreview.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma resource "*.dfm" +TfrmPreview *frmPreview; +//--------------------------------------------------------------------------- +__fastcall TfrmPreview::TfrmPreview(TComponent* Owner) + : TForm(Owner) +{ +} +//--------------------------------------------------------------------------- + + diff --git a/windows/gvedit/UPreview.dfm b/windows/gvedit/UPreview.dfm new file mode 100644 index 000000000..b45fe6db1 --- /dev/null +++ b/windows/gvedit/UPreview.dfm @@ -0,0 +1,112 @@ +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 diff --git a/windows/gvedit/UPreview.h b/windows/gvedit/UPreview.h new file mode 100644 index 000000000..f0f64eef0 --- /dev/null +++ b/windows/gvedit/UPreview.h @@ -0,0 +1,31 @@ +//--------------------------------------------------------------------------- + +#ifndef UPreviewH +#define UPreviewH +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +//--------------------------------------------------------------------------- +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 diff --git a/windows/gvedit/USettings.cpp b/windows/gvedit/USettings.cpp new file mode 100644 index 000000000..5e806711a --- /dev/null +++ b/windows/gvedit/USettings.cpp @@ -0,0 +1,728 @@ +//--------------------------------------------------------------------------- + +#include + +#define NO_WIN32_LEAN_AND_MEAN 1 +#include +#pragma hdrstop + +#include "USettings.h" +#include "Umain.h" +#include "UEditor.h" +#include "windows.h" +#include "SysUtils.hpp" + +#include +#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<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);*/ + + +} +//--------------------------------------------------------------------------- + + + diff --git a/windows/gvedit/USettings.dfm b/windows/gvedit/USettings.dfm new file mode 100644 index 000000000..e71317282 --- /dev/null +++ b/windows/gvedit/USettings.dfm @@ -0,0 +1,388 @@ +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 diff --git a/windows/gvedit/USettings.h b/windows/gvedit/USettings.h new file mode 100644 index 000000000..cfb00163f --- /dev/null +++ b/windows/gvedit/USettings.h @@ -0,0 +1,152 @@ +//--------------------------------------------------------------------------- + +#ifndef USettingsH +#define USettingsH +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +#include +#include +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 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 diff --git a/windows/gvedit/Umain.cpp b/windows/gvedit/Umain.cpp new file mode 100644 index 000000000..d3186b5f5 --- /dev/null +++ b/windows/gvedit/Umain.cpp @@ -0,0 +1,412 @@ +//--------------------------------------------------------------------------- + +#include +#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(...) + { + ; + } +} +//--------------------------------------------------------------------------- + + diff --git a/windows/gvedit/Umain.dfm b/windows/gvedit/Umain.dfm new file mode 100644 index 000000000..9f428f387 --- /dev/null +++ b/windows/gvedit/Umain.dfm @@ -0,0 +1,2536 @@ +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 diff --git a/windows/gvedit/Umain.h b/windows/gvedit/Umain.h new file mode 100644 index 000000000..b67416978 --- /dev/null +++ b/windows/gvedit/Umain.h @@ -0,0 +1,109 @@ +//--------------------------------------------------------------------------- + +#ifndef UmainH +#define UmainH +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//--------------------------------------------------------------------------- +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