Jump to content

Embed DLLs in script and call functions from memory (MemoryDll UDF)


Ward
 Share

Recommended Posts

I love you, I've been looking for a SHA512 function for several days now. I only found SHA256 (shadeep) but it used a external file, now I can use SHA512 too and the best thing of all, I don't have to use any external files anymore.

BTW as far as I know AES use 16, 20, 24, 28, or 32 characters as a key, your uses 32, 48 or 64 so I'm not sure it's the "real" AES, could be extended AES.

But nvm, no bigger deal, I can still use SkinnyWhiteGuys CryptoSuite for AES.

Of course it's AES. I download it from Tech & Stuff. You can get the source written by Brian Gladman from this web. Even some opensource project like TrueCrypt use this implementation, too. But this DLL only encrypts files in CBC mode. A general purpose functions may be later.

As to your problem, key sizes of 128, 160, 192, 224, and 256 bits are supported by the Rijndael algorithm, but only the 128, 192, and 256-bit key sizes are specified in the AES standard.

新版 _ArrayAdd 的白痴作者,不管是誰,去死一死好了

 

Link to comment
Share on other sites

As to your problem, key sizes of 128, 160, 192, 224, and 256 bits are supported by the Rijndael algorithm, but only the 128, 192, and 256-bit key sizes are specified in the AES standard.

I thought so too, however 48 and 64 characters should be 384 and 512 bits...

Link to comment
Share on other sites

I thought so too, however 48 and 64 characters should be 384 and 512 bits...

They are 32, 48, or 64 characters in HEX format. ;) Edited by Ward

新版 _ArrayAdd 的白痴作者,不管是誰,去死一死好了

 

Link to comment
Share on other sites

  • 2 months later...

Hi everyone,

I've tried this script but I couldn't get it work with 7-zip32.dll from the Common Archiver project.

I manage to get it work with standard dllopen dllcall functions but it crashed every time when I use Memorydllopen dllcall.

Can you help on this?

Dll can be found here:

http://homepage3.nifty.com/csdinc/archiver/lib/7z457001.zip

Dll functions can be found here:

http://www.autoitscript.com/forum/index.php?showtopic=25984

Sincerely

Tip

[center]MsgBox_Tipped: Eye candy msgboxes/inputboxes/loginboxes. | CreateBlankBox: Semi-transparent layers with borders and rounded corners.[/center]

Link to comment
Share on other sites

Hi to all again,

While I'm digging I noticed something.

I'm using this code in my script.

...Gui Code...

        Case $Button3
                $CreatedBackupFile = @MDAY & "_" & @MON & "_" & @YEAR & ".7z"
                $Command =  'a -t7z ' &  $CreatedBackupFile & ' "' & $SourceFold & '\" -mx5'
                MemoryFuncInit()
                MemoryDllCall($DllBinary, "int","SevenZip","hwnd",0, "str", $Command, "int", 0)
                MemoryDllExit()
...

What I've just noticed is this: When I click Button3 for the first time nothing happens and script continues executing but when I click Button3 for a second time -for a third time if script is not compiled- it starts archiving...

Does anyone know something about this? Is it me coding junk or is it a malfunction/bug...

Thank again

Regards

Tip

[center]MsgBox_Tipped: Eye candy msgboxes/inputboxes/loginboxes. | CreateBlankBox: Semi-transparent layers with borders and rounded corners.[/center]

Link to comment
Share on other sites

  • 4 weeks later...

I don't think anyone's been here in a while, but I'm having a problem. The MemoryDllOpen() function from the AES test is crashing on this line in Vista 32-bit.

Local $Module = DllCall("kernel32.dll", "uint", $_MFHookApi, "uint", $LoadLibraryA[0], "uint", $GetProcAddress[0], "ptr", DllStructGetPtr($DllBuffer))

I can't figure it out, so any help is appreciated. If I write the binary data to an actual DLL, then the functions work great. I also know that at least some of the MemoryDll funcs work on Vista, since I've used them as part of ProgAndy's COM examples. It's just this particular line in the MemoryDllOpen() func.

Link to comment
Share on other sites

Hello,

MemoryDll is the best thing .....

Question:

Another type of file can be incorporated?

EX:

$image_binary = '0x .....'
$hgui = GUICreate('Ex', 100, 100)
$module = MemoryImageOpen($image_binary)
If $module <> 0 Then
   $ret = MemoryImage($module, ......)
   $pic = GUICtrlCreatePic($ret[0], 0, 0, 100, 100)
   MemoryImageClose($module)
EndIf
......
......
......

Image file, video file, mp3 file......all file...

it is possible ?

thank you.

Link to comment
Share on other sites

Hi everyone,

I've tried this script but I couldn't get it work with 7-zip32.dll from the Common Archiver project.

I manage to get it work with standard dllopen dllcall functions but it crashed every time when I use Memorydllopen dllcall.

Can you help on this?

Dll can be found here:

http://homepage3.nifty.com/csdinc/archiver/lib/7z457001.zip

Dll functions can be found here:

http://www.autoitscript.com/forum/index.php?showtopic=25984

Sincerely

Tip

Try it again with newer version, I hope it will work.

新版 _ArrayAdd 的白痴作者,不管是誰,去死一死好了

 

Link to comment
Share on other sites

Really nice job on this! I'm very happy for Vista compatibility. I see you used Joachim Bauch's tutorial. I recently converted his actual code to AutoIt while your original MemoryDllOpen() was crashing on Vista. Now that you have it working, I see you ran into the same issue as me :) Bauch's tutorial fails on any type of framework DLLs - DLLs built with the /MD switch (multi-threaded DLL) or MFC DLLs. Basically anything that requires the MS VC++ runtimes. I've been unable to find a complete solution, but patched the original code to allow some messing around.

I found that if you allow Bauch's original BuildImportTable() function to continue even if it can't LoadLibrary on the import DLLs (such as msvcr90.dll), and skip calling the DllEntry function (which was crashing for me), then you can still use functions in the DLL that do not require MFC and do not rely on any DLL_PROCESS_ATTACH initialization. So it's partial compatibility, but all I've been able to come up with so far. Do you have any other thoughts on this?

Link to comment
Share on other sites

Really nice job on this! I'm very happy for Vista compatibility. I see you used Joachim Bauch's tutorial. I recently converted his actual code to AutoIt while your original MemoryDllOpen() was crashing on Vista. Now that you have it working, I see you ran into the same issue as me :) Bauch's tutorial fails on any type of framework DLLs - DLLs built with the /MD switch (multi-threaded DLL) or MFC DLLs. Basically anything that requires the MS VC++ runtimes. I've been unable to find a complete solution, but patched the original code to allow some messing around.

I found that if you allow Bauch's original BuildImportTable() function to continue even if it can't LoadLibrary on the import DLLs (such as msvcr90.dll), and skip calling the DllEntry function (which was crashing for me), then you can still use functions in the DLL that do not require MFC and do not rely on any DLL_PROCESS_ATTACH initialization. So it's partial compatibility, but all I've been able to come up with so far. Do you have any other thoughts on this?

Thanks for sharing your experience. Actually, what I could do is like what you did: skipping errors.

I not yet have problems at DllEntry function so far, so I did not skip it.

Maybe you will encounter the same crash when using the current version of MemoryDll. Orz...

新版 _ArrayAdd 的白痴作者,不管是誰,去死一死好了

 

Link to comment
Share on other sites

Well the DllEntry() crash only happens when I try to load VC++ dependent DLLs. Most of the time they require dynamic linking to the runtime DLLs like msvcr90.dll. Well LoadLibrary() fails when trying to load those DLLs, so the whole thing bails out there, and you never see the crash. If you skip this error and allow the load to continue, OR try to load a STATICALLY linked VC++ dependent DLL, then it will error and crash. A good example is the DLL included in this package -

http://www.heidi.ie/download/Eraser%205.8....a3_portable.zip

Edited by wraithdu
Link to comment
Share on other sites

I use Sphinx C--. The DLLs in the attachment are also written in C-- (including 3k md5.dll).

There is also the source of example.dll, you can see how sample it is.

By the way, if you use devcpp and get a huge exe or dll, maybe you forget to "strip" it.

Where can I get Sphinx C-- from ?. TIA

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

  • 1 month later...

I tried to use MemoryDll.au3 to play xm tune using bassmod.dll from memory but I cannot hear anything.

#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, Audio.xm, rcdata, Audio_1, 0
#AutoIt3Wrapper_Run_After=upx.exe --best --compress-resources=1 "%out%"
#include <Resources_mod.au3>
#Include <MemoryDll.au3>

;BASSMOD.DLL
Global $DllBinary =   '0x4D5A90000300000004000000FFFF0000B80000000000000040000000000000000000000000000000000000000000000000000000000000000000000044000000CD200000504500004C010200F588D5400000000000000000E0000E210B010600881601008816010000000000432001000010000000D0000000000010001000000002000004000000020000000400000000000000003001000002000000000000020000000000100000100000000010000010000000000000100000001423010074030000C42101004F010000000000000000000000000000000000000000000000000000F08B000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010000100000047C0000000A0000000000000000000000000000600000E2000000000000000088060000002001000008000000020000000000000000000000000000600000E20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280200005AF2DEE7000000008B44240483C42A8D90350000006A108BD866052E0050526A008B1BFF136AFFFF530C4552524F522100436F727275707420446174612100B800200110669C60508BD8030068DC7000006A00FF501C89430868000000108B3C248B336681C780078D741E08893B538B5E10B880080000566A0250576A0C6A09566A045057FFD383EE0859F3A5596683C75C81C69A000000F3A5FFD3588D9074010000833A000F8445B8FFFF8B0A83C2148B5AF085DB74EB8B04248D34018B6C24048B6D088B4AFC8BFD52F3A58BF58B7AF403F8EB25585A74C9E929FFFFFF03D275078B1683EEFC13D2C341E8EEFFFFFF13C9E8E7FFFFFF72F2C36A0033D233C9A4305FFF4B7ECEE8D2FFFFFF73F233EDE8D5FFFFFF83E90373068B042441EB278BC1B907000000E8B2FFFFFF13C04975F683F0FF3D80F9FFFF83D5013D8081FFFF83D500890424E892FFFFFF13C9E88BFFFFFF13C97508E88EFFFFFF83C10203CD562BD98D3438F3A45EEB998D4900D3860000F0050000001001002014000047010000468600009F00000000E00000C25E000024000000DA800000380C000000D00000900700005B0100000010000020BD000000100000C1050000371C0000000000000000000000000000E622010034220100000000000000000000000000F322010050220100000000000000000000000000FD22010058220100'
        $DllBinary &= '00000000000000000000000008230100282201000000000000000000000000000000000000000000CC220100DA22010000000000602201006E2201007E22010090220100A2220100B022010000000000BE22010000000000010000800000000000004578697450726F636573730000004C6F61644C696272617279410000000047657450726F6341646472657373000000005669727475616C50726F7465637400000000476C6F62616C416C6C6F63000000476C6F62616C467265650000000074696D6547657454696D650000004D657373616765426F784100000077737072696E746641004B45524E454C33322E646C6C0057494E4D4D2E646C6C004D53564352542E646C6C007573657233322E646C6C000000000000F488D540000000007C260100010000001B0000001B0000003C230100A8230100142401003CCB0000AA8B000086100000E1CA000031CB0000F81000006712000058CA00004EC3000092C3000074C3000097C700003FC7000023120000348F0000D8110000DDC3000008C50000C58E0000F9C500003DC600004FC8000081C60000658D0000D3C6000044110000941000004A2401005F2401006C2401007B24010098240100AB240100BD240100CA240100DE240100F0240100072501001C250100352501004C25010062250100742501008725010099250100AD250100C5250100DD250100F42501000D2601002C26010041260100582601006A26010000000100020003000400050006000700080009000A000B000C000D000E000F0010001100120013001400150016001700180019001A00424153534D4F445F4572726F72476574436F646500424153534D4F445F4672656500424153534D4F445F47657443505500424153534D4F445F4765744465766963654465736372697074696F6E00424153534D4F445F47657456657273696F6E00424153534D4F445F476574566F6C756D6500424153534D4F445F496E697400424153534D4F445F4D757369634465636F646500424153534D4F445F4D757369634672656500424153534D4F445F4D757369634765744C656E67746800424153534D4F445F4D757369634765744E616D6500424153534D4F445F4D75736963476574506F736974696F6E00424153534D4F445F4D75736963476574566F6C756D6500424153534D4F445F4D75736963497341637469766500424153534D4F445F4D757369634C6F616400424153534D4F445F4D75736963506175736500424153534D4F445F4D75736963506C617900424153534D4F445F4D75736963506C6179457800424153534D4F445F4D7573696352656D6F766553796E6300424153534D4F445F4D75736963536574416D706C69667900424153534D4F445F4D7573696353657450616E53657000424153534D4F445F4D75736963'
        $DllBinary &= '536574506F736974696F6E00424153534D4F445F4D75736963536574506F736974696F6E5363616C657200424153534D4F445F4D7573696353657453796E6300424153534D4F445F4D75736963536574566F6C756D6500424153534D4F445F4D7573696353746F7000424153534D4F445F536574566F6C756D6500424153534D4F442E646C6C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000750000000094F24C4D905F159BFF1F4660735A647DF07B05F31E06D908179A5C8FC2370100410F0300DFFEAD6167A2CA3983E3C6264BF3EFE14F6D099701A08268E76FF048E9E3F16D9A268D0088E8A9D22CD8972DA4C011A03413F721C81062091CD97BD79A4E980A3985BC5FA35A1111A73314CBB2419501309161E0C4575F909B19BC3C944A9725370040834E07C7AE8D0B7EE2F387E9E6D868DC14370628B97E792EFC4391F486B15D86281862AC6F6D954C409B019D240694349ABA850FA2A5EAADAEA52C8C81758C3F49C181206A1B90C180A12F35F56D6D44E926CA9ED49E8966C1DF1A60B5F9BED96D18590AC0A18FC3F5C0CB8A4BF95599D09990B006DD4C363A84E1CB8228633A93110DAFA2CD1CA3815FE606A0D991C59308D1042EA9AC6EB66527E49DC6B17A18DEE673685523838119409F3326D5069E39C678341E23C158634D5F6B18082A564661AE71D262F5C96F6FD3420CE3D6489197C83DA2190B4F04494D7190133A8621C05DC5041C13750A5E087A95FF7067F70401BB67B52C6F24122E4621A0194CA3C280F726860A8352E89CFCE9606A99050295E8493E5BF82D35DC00D660BAB914F803F0CC57B5390407004DF3B7BC731B60B8B3E1E7E7A02B26AF200C13A3A347DFBE8D721EA4E0FAB188F9905A7800A64BD0014CAA44705D9F43818F9742D2C2587AF142566F00442C95E12F5D97CB8B184338B3'
        $DllBinary &= 'E878D6636182F00886FA0CA9E9FBA068B353C5185BA4D052615D164A7AC1B2172D4B4C592A68BB2CE2533431C718D6522A9F3CB107212820F04EF18E301C0A0F1D95850771C20674473A768CA01E0856FF402119DA730925D577E260DF9B3594E143C34CF72DD0DB885EDB992AAF92692E542366D9DA50359907751445AF1165AE5A2F45384082926091DFA438141E0F484E9B9D7A9C638590BC87DCDCDA2C40C495FB128A0E1DA89DA97D67BF8607832394B56567BF67992AED14DBB50BD319F2582EAAD32CACCF190114CCC24EC400388D05A6CDAE68B186495E0BC6F4D23CC0F576D2F48B4298F0EF2167F84F0B9D914816C4531CCFD5214936A6EFB5251804727CA1062971EE0AE6209312E59C7E601D622688991EDED51A9C6804EFCB13A268C8B16C5274622EA423AF2B61585266143ADE6DCFE4C6CB2A5FCD6A350528D6A2CCC33B016D94F782C4C594D5E04F8B0ECC5926A27D8FE0EA3671D8706D30AEDB2006DC11BDD9808B32982206AB4B48F18517BBEC1E13F5E2F9C13B21869D98CCEF1EDA7DE86A3880D20D1544E9CF12FB485D75190CF2784BF99D5EE2986D3A5A7A1997C071218101E4E682E9DB87E9B5B28EE93A002D2CFFB688FA9AE905EB672801E704451AE4BE460B97FFA0128CD5B06191C580787F182A6A89078C50CC49C7821020EFA2F89C16901590744849C5B3518DEFB904E610B1A9001562E4A0E47FD02EC77BE552C308E182D00D7BE97EA3F523F019F78CB27B7A185126DAA99E8166EE2061C68F5D0F4A7C18DBA7502894B3CEBC418DD9B2A73798D4B64329422B302BEFBBF395F582153AC33136968122C5D12D3BE7B41A04DEAB49E496544A251C63CA672C536903914E994D95F1DB580CEBE4E87AA2FA592C153E1AA79354C40A92E61CC2C2CA5987656160E74E802200799CA0CD4827870FAC5E03CEB5C82EC8B8A428F0EB74C20049C52111822311E5E37430D20A7091607086D3C61B34E2978F786A633BAA880D1A8D9C199DC210B10A8E833C5649140AA94716EF578F931DB7B0DD5FDB4BB10B0BD23F0E46925556E0FC3CB1D2A72ACF80F41E15AEEF0BD02154BBCF73A90BC91E693C4F1EC3918D5E8AFA9A1749D788B0DBA834244906212A2B028EEF43E851B4D3C520C2C048A1AC3CD882896BCCD2CBB4356D6A219B67FFF4A3C9224129AF625C80C18BB756B3C86F19822C340DDDA978DBD2B77C0970E52A6A31D779397AD2152CFC0057FCE274DD0C4844D154936D5F90A7B079F97DECF5835FA5406DE70F06ACD85E9AA0548DCCDC19A20C4EC6E6D033B2A509322A1CB95716252C47ABC6F96182E13D923F2136FE803ACA7C59340EF93645561229FE302FBCF03762613BE45E3885677EE0148040E25A5B5B3D063045737DCA00FC3DB0DB4A5B3128C823E642ED8401560CA6E3A597A04BE530AE08754819'
        $DllBinary &= 'C3C6E5C31A6B0464B1358798E721420E31B975D0B9A203AEE67E42C3015C3E1892D46B29B15A3B7F6E542B47A85173CBE00E1E1CD0F5B9D60004119A85903AB2DE99068EBDFABA7D3D818902FB34791BC972D4787C46A2680432D119C882EB40D03C5C0D8E540C7958B492F6B6A08342D2B21D603968A3555EC06F0998788881252698ED45F9E84BB357E74F6E9A6F7407FE3B402CA2B2FAE0ED5ADD60A70159A1EC6C6D2A4C2C5CBE4E0FA3EDA8462D544441F3894D1E22F341078C72825BD61916B35C3AF88187E1C1551796F31AC3D180A2169BC1E5E5213D4C77D36328AAD159631050DD304C35ADD72A4999E4CFD938728F090B1F59AD1825155545D36BD6147CE1EE3EF805F01EBEDE810355568598C5A025D356CD60803C794A5060A2D7A02F0F4A7184B05D9A577418986919F8E5583103B2B1740370F47655AD21BAAB9400239D10932D24AA656BB8AFC468E1F960B274A0D4200E1EE6D0267FAA1F6B8DBDDDE95B11354FA4FD4D17CD2A6A6F0C0F8011F3BF71BE825BE656830C56AA52EC075838E7458B01F7473EC18A3FB174D1ACB0E03683A4CCD953D6D68313AE6D3991E21CE7798675B1077746E78389390ACA36A0CADEE5A3DB32E13C944E06C0CEE6773E44FB374713D0FCD6DD14881A7CFDFC672AA4F003F8F97EE1DF6411BAA1B1E18288FFC9F3B972468A69CE730A49BB77313A60114D8703610741171E882E794B0553DA1C4188D1272CF610A34448DA2B3643D3A153680030C02DA70FFE462F3F981383234506ABEE6162834CAF3899ECFE6465299381958B0AB2C4DEDD6F8D0B380A256D1CC4D64E4A7EE2D228543ED0691F478F208DB8562E6FD61EAAD1C1D44481FCE3421EFD9D75B68742DB445097253AA52E4148F23A4930000996DCA3D673D8BA638270AE94A1D0475820E69FB068E3A32995EA4B6A4086F4F18C947572CA00BAA631433F847261B2826BEE136A94B829200567AC55CD99F1105270A131B0E7CA54A99E8DB696B0AA01485134A73F7808E05ACE6D66A10AFE997300F85E3592EF0B7B2F829AE9451FDAE7BC44172A503B80D49C2F076FBAE6DA3DAB1DAC6A068A56E5E2B590A169670A9BDBB45067E35A71C907B744900FC9B561092860C190A534E4D01F61674770680D046DAA707767E50C4963A3353995C70757834AF156A6AB859B69480600596CCD29640C9674A669D2E89D03B12CB34EBF5D3551CDC57830DC50A4B135B0DF4D6F7638453B33E252D04A6D5E5D3AAFC48084162CA0C354481C5C925461D3A39EEBDF03E05CF002C50950492F313F0C3BC9828EF18877616A232B47A8B1F040B50EFD4A85F7F1F60DC7CE512709B8D3A984142D0CAA4417F6FE4CB50A1085BA63719AB64AE38B1A78F58D480940DB1890144A582A7F6AA243127C008A725BDC9A405CBFBE25FEEE56537CA439E5DF3F11'
        $DllBinary &= '6E64320D703ADDF1AEF715DA22F179F523277D08254815493B0009CC0C61C18ACB71F7C1004931FD3C49875F707DBBD6EF3C00332986AAA2DF1FD617384D23107A86DDCAE3114A4D64F96F89CB0B072BA756BADCD486DC7071BBB19405203CD68BAA445D63C22780E09450B3A758928F8D5C4013A08A7FEB80316624A65074B1FE876548B1338BFD1563A224A52E271988AD55E2E982064034811AB195B1AA47FA880E8474098777E6943160EDB2E95CE342950BCB5E8C02CE2A295F05BDD223D2992E212719A7DE05E1465E4633DB45B60B363F8B9FCFE44A69E74A5CEA7D260C17E5B22040913306605117E427646DE2DA970FDE9EE615508F2940E490041498BD1A8006C89A7927BA80AC861EEF25286AE3B25561EA4A97750BD1C52CE42022DE54D45E8289EFD95ADB69FFD02BCF0D6CA0D71BBF16503B316759603B4BE258B8D5B42F16A89167B15A013EDCCF1179050B9EC5C4B0292A86FE87B16DC4217BD646B7167FB3AC42F20C039354AF156321E11CFAC1008948E9D15E565C76D9D546EC978E0F74B0E9910EEE044119D10CDC48387A0EA8723A714645006F4A4A2895B32B31243B82BCD692AC1E020B5128520D05C80D65F87340EF00B329A41D0D2A06A4172C7E652A069C5D4D33E0B7AA1FAD75A91A0DD3C27D9279EF0C2C536D126444E456939E17126EBE7603615454AD93419A0D75ACF740E6D4781AEE89E90DE392FAAD61E9EF96E6A282E6AB8C63426BA8960335C39B7FAD2C58993D424CB586D74E6BA2088613C3B557D43E5E24B392DCF0DEDDAA0134AF824C3B146508B18BC966F49B9613808EC3340F50DACEC8098FF5A067D70D8BFE5C63FD92FD7BD6214FE2EC7FC6CB8BF9BC5E827E4B41D1B0CC53463727EA18EF213A54325E9FA4125F8A4B24B32F9EDA3D34C3D805A23E55680E51F3B20A0624A5B301FF847C0B5995DFBAD80CA6E56757E6FB152E836C7A3FBB41C041BB2ADB914E1A2183410C64340C0EC50C38C82B1104D04752E768894451AC7A4D614F4D09C5AA8C4E1BAA18002469D5A7D75451954CCDE50245801756432DB80004DD40437C2A85EF0B770D126A1B1AD18B35762A620D1021730D1E6C163B92575779B47087F321CC1AD149E32A60394D0FA19A2169B08B41FC6A657B76915DF802A201A88945B98F68D3B14D00AAE12CD40ADA221501EC9D2D4246C45C4C8D78BBDE307F7AAB08E25D269B0A67F0E61318C24706AF085BD71C47226A57D7444207E8DC2AE334D5767157B45FFB4BE362C00E0B045237B13271B1108FA98325863BA89A2631690F9011960B10E214178FA8A279008F83393DF8FD41583E4B15F414C30B0D0372D20DA0B688E9C6CFAAAC788ECB72D0C0FAA07CA6AF002A67A430F2BD2D09787B9B394BE6541D768375EC0A4FAAB21720C39D1260E8DA5B410EE7BCF6B6F3ACB30A85B8'
        $DllBinary &= 'CD8DE0B805E720A587380D096CEE7F71D35348E83C86A458ADAC22A79989C8512B7DCC8ED8DC5A74E23A35B0B2324A8B5BEA14D1ED35041614265925E08B641C5654E45EBA6FBF12918C0ACE0A88C49EDA12C4A42C12EDB302B79EADA0C866E4C4E29536722DF6A9CE55A5B65B661AB9226281A720C4919A605AC0AA3E5472F9104455F6A321384E492A3F9FF32DEBAC2D855218E2BD1207CDA927FF92043D37A11066B5F6A1420692842454BD63B87F27074091A3341720990DDEBA94D18799BC92846720B763598FD9D67C890CE53000000765D6302D74A02E5628C9110AE124C887B184625883E7FFC540F9E92F1BE5F054AF889D72C43D726B19577A983431296F55E8B843BBB31998ABED580EAEF259737877CBEAB33B21FBD929EA8A96E7E69C7C3B4ACBCF5413213911AAC385A7D4F1F49344C8FB79F790235D827F02CE90745DAD7A2EDBA2F6F4CB799E50E50264343A5E5845A52D36853E53F98E6EFD5B09F0178342E1FD44E5E3A1B0F219D444A48748321D1C811AF1101E26583E2D1E787DBFBE9736061810AF8EE7A51A48EFE1F2828CA572EE9376189C66C9F2EA5C65AA4AC9D936448FEE3343F477AD9C430D3A203C0737D6BE1FEEA23D2259AE09A040ADD2E51D36DF241E850074F2653F1E4B6128A129554569931E3695B7CFB8E615248CCCD7F7238BDC5C01ECEB91FC0B93BCD49C0BE48A207453872DD4EB522DFD331E9908DCADDCB506E8E2153811E34C0E7D4112F006A204225A19D23947FA81708689BE9F24D6D9F439EDCB93C996F400C09C77C0F2E419DCEC8FC3700C2CFE8E5F2A381DC3F4DA14150DD445E87EB2730862507732266775ADEC7FDC4984D1E7212953978E26D1192E165AF2C10022B3BB425C2EAB5D0B45803B5C94C0FA5B9D93BF23765F6E0BB809B684BC66E4067B61055A7C336EA00FF4B9BDCC26626715C6A1ACD6D2F2670029EB75A168CA5D9FC0AFA8101DB194DED5CA3449BD9035B24F2CC1C9B72EC0B2303EF365B16D690DF810A6DE45661764D8D83002DA7C9354E40B922425E1FEF7E4966CED53D156B3E41D5EE28CC294D541ACCBCB76DFDA5015488A24B41DD6D2B8013718E5CCA71B0364C7003281D3B6A8583F90843CA5318973F9A87004241A75BC204A23881B7C869010FBF40302F9AE90A20812A4350B19A929141103F9C10E04E681F3973E18E906BCDAD16D1573EA2791896A472223E3385C656A36407E4971600300C1A64FFED9399433B344C80C8C2CBCB045DFAE27AF40B4103864A0B3DA76933962E857CC034E53D92D1708F3CB0516387B18F5FF3C7BF96229C82DE4EA0E94CCC357A2DFF21E4B47D357E702073B0386BD2E5D6F3A49B911C79397B8D7F22DFCD4C107885218FD0F01B60BFC85953407D8809F87853B77AA6C21988BDFEE6B59935B7CEED2362AB983BA9E4AC4010A'
        $DllBinary &= 'F1CBE142CC073777B76E8F7C0C000D4D2C4F3BB2562B41D88E5A37DE2195EC453031651E95EDA268EC9FA822F752C4724915A52C3B518136170DEFA98F0CD498595ADD6FD1D79A9C2C3EE3A9ACC243A16FC70413C72466DD84CFB0FBF46A584A56E33095C32B23FA52779861CA7B02FC7C8D28A29DE9E6D2208E4085F0B0B50E6155A8C8F43435256884E3F204ADE91AEAD119A3F85B1955C81050203C57BDF14FD91FAB9A07B28558A06A60AAB77D2924B64A8D36CBA8B797C5C356EB92AD5B4918533C1399D2016198D882DD70273A5FCE7D88BF0D2BA1E3816AF13BB023F16245E83AC90C0201ECB51914AE8E2F1AD55D435055631B6E80C8DC282A50702F2B540BC0153C2CF42BC504AC39EFC08AAB2946C832918C046392E373DC0617D58588AD82809F0E29F3E90385D52A0E702D3B36FB7411DB84C00F0A869641C3E24851A39E37C6743FBB7A8662CFC10174335B8C1A253D0B511D152285144C92868B0E54D81AC1FE86ABFAC05A30B95DFC13120B4251693DC95FF0A20401D18F8098C2BAB3B6D9CAD24A52332A44D38598365B2439D58336A1F16C6F0AA4F2E0ABD26EB7997218440D7958E489E681F1946169ED606CEFB027A98958BDD24094E622E2A12C536B2141244110B07DB82C1A93C4ACCA34EE438C483D3C05AD6C5B21DBE83B3C2D62BF0A1D159C201C6D784C9A3A5E735848A28C23CA744877451DADCFDE7DA6AA5012AB985099C36F7306AA6015C5681B510879DCD3F0D9D502D882E1B45406E0A208121099E2941CAD44BFDA6E280AE58DBDBAD1911232425D9A00627213E94D05762D92CB18388E036CB419316B56D44F1BB84BF14DE96B38796C284B8E0400EAD8516FCDC94B29B87C5D3361C598F7F4BBA8CCBCFE1384B88C2B0B241487CE59BADAB78FBFB5996570E8D67FDEACE821C9C9EC3220B3DAB01AE5DB56E691CC7B1535A3C0B3616F497B95861D40C934FEA9FC2225975FBC7B79ADC1ACD23B14A2E286FB484CBFC5351E4CFB9E83479DE03C9DEB35C763047B6DD8375D7D88D4848A52864A7C8863EF2576C915F27CF427A106D61BD94EE6A7F7F9EC676A78288B23A78F1F7D01B031D8D9F710C4EE38D0D21F253335A308C1B8F7A084C709ED5816DF340DB82F059C41A80FC4326BA807168466508FBA1FE268E033DCC9CEAD661D002C18C35813F8155236C0C1620A5270D4EF00943E36C4019A173BECEA32EFE78076674583E27CB54FA413AA5A6DBC8F2C677D30A43F24B84E46EE66A26131665D464DAC34E28A800A31A92665C437355049098C2518457162AFBD0378B478B5237A5D0D870148D73306ACBB58B2C63C0C6171A30A093835F0F01A6E555D9C6709CADB159416EF590B1A7315DCD13A45EE001C62EBA170ABF1791139091AEEF9ECDBA90320A9F66A08D7ED234CC36B268D45E1FF292922615D18'
        $DllBinary &= '35C33A22EFB7D04E345A1789EEE8A126410B4044337095BAD4A32D68726A1211BADA74A95BD0837856157E85FEA6B1C9F6DF508FAEBA0CB95E4531A00E4D6E1549D1C05754E3D93D1D5F8BB254E01C27B70C17CAAC02EDD19224F761B6BEE914539955A66BE53D233FEDA701229BB78237394D62D56A55BE37A00271C46818E0AFC9ED4094A30A6CA5205814CC90F5C104FAC2E5AC486A92DCCE0E74B41A6F8193996BEE137F001E919A938569A56FD9B5052B60A1594AB156B2EB7103781D1D456E05F2939BCA8F37A8B82C9C74B21389F20078B824E2433AC3018967DF8085F094CC756703B72A8168DBB1080A981C5D2AE4A75CBC11B82D8A7620661F4B267CD385E45BDFAD3DB8520226045C2678E268605E25A5EB04246E676BF964A461E98D3153A0ED490B8CF07BD682E6DF9F1A591AB1D9AD5365D725F194CA508AC018100749560A92547463F8370CF6B2DC9FADB0C2D7C129E8E0CAA40467D61229D33A6C12D10C8881D43244F0FD91460EE64A4AE0E56248098C2C10090231B502E30E5771D7D8D0346061BB943E4F4D4C0D2A6B06C67A2CB8721CA7A8D92421091009D231EE87A70A9EE284DC272922F4CE177D06EB0DC4A46FAA73A873BF86CE87DF51DE604AA66900DF7FFFEAAB94D29FA05B55605BCBA416427B25C70B4B2900443542F14BE694A3863D976D4DED3D96A817A40F6E973E3493B7D4BF30381A60E0991AB8682CA40A9515C47DA5C22AEA011CADEB2ED355B01B78AB2D3632686CF12A07EBB52C7C0BFC7197A6D235BB6E043531E90945B93A159E827055756C0A62DD4ABBB84006E5D9EF6D594E1863437F7D118AA04A5F175241FA549720AD24A56F008F1F2306D03968B28EDED8618466064F818EB1C57B97C0BFA92A06A2237BC4D35D8B3F65A1DA93541D513433DA9CC16A4F45CED4D923949F69867B9A91B61BDBBA901DE8ADEB688A4068E5293E1808100C072F750B5007424850A08528730E5BFB77A1417683EA6A7E49B2610902FF4947270723310A08A42E80EB768D5495A05C35061BEEA8E6C650CDA088E68703CC3A18B5522FE8422406C5DA2345EE74AB73859425C2003696C56965925AE208084E33E61CD4C900AFC48ADA0949FD28EFAF8898549EF85160D66B7AD2F09F985C46A1E5EDA25BC83AE09994C13CEDB10A4555B7852BC065B0BAC8994E5513E0B5875A86EBAE86C765A1DACF9B9BAE828E093082946852A24B1483EC551F1699EF9A5AEE425B622B1EAB102F5726644F5DB068B4015DA05A9E863E0DB5C52FF88E75A131C051C44818D5DE4DDAA233D46B9A244B402056356A1965558542A4422F1D0808C17A55ADA19A1D4C8BCB978B72A0DCB1F157B09C5E7A0EBD66F5E9554DBAF227EEF002242DECCD7CDB2E3FEF6EB9869F35DACF5D296C794C1996BE92C2A15091E9EE5E06BD8A93EE459D'
        $DllBinary &= 'AE409312EB846F2253DEE995E771BCF84A425D71B1324752741800AAAD986AAD614DC8C46B552CAD4296C2D8A943E9C7DF5E4C419A8848655C4B52407520900E08967B463FB325CD97BB94F62748A35D54F7BDF365327CA2B319D1C5509C0E34C73D326791A10E824117B468E71938483F58163DD7D4B986A7FA1B845AA7D4B9813D41E5EB859934D5BC32CAAA903A8F45826F4DAC4B922953517ABBD5A81F47BB5D75EFEA9957B57FD5A968AB51969BBA40D534B381A41A36FB2268504A1D52FA84D878681D6A4216F9BCBDCADF59130BD4EF64901338F8DF92B3ECCA9BAF9144BACBA4EAC22E48B8BFF975261F804935D2CDBEEE643B55DF55DAA4F66861F0EAD99424090E2DDDE82B04E0DEC67E865D37360587438F0BB970BF39229D1A44B46EBC368C226B8223425FB2ABD419DE92908EE056999101DB7591344E2EFBD95898EE3A678B7FFDB83D1B2AD1CD787AE659C12A156DC26B116A9523062866CA2B56536127542A23FD50742122165C234540CF978C1E9BBF784B61C7B6FF64B493281FA0EBC667AB24453062AD619A284B40C9EE151B9FD95FEC86716B0C0774E54E62065D5AADAE7FE603D3A7889CE1289F748CE68476324CF4F2C7CA1ED334AB1AD58D2C184445582894473A43A79C06D74A8923DDCBC8B9AAF78657280BF4C846BB4E882DC8DE999A82F833B13875C290CD080B3C670FE3B827F2D4FFE3CF54FDA38AE7F868D1A34A7C618A4C3F4BDEED2A00CBAFCF4DCE82C9B4C392A7CF8201A0B5D28674C2D09F2DA2B7C427521F4F522DFF8C6B7E89BBE9A9632E3A5781EEF0DC99905460D7F094B792305EF4E0CF6B7A1B726BA3B2BDE5AA852257761C8ED3360E6A52A7FE5B8FCAAD53964F4618BDE661DE0211CDFA9EC2CAB739C1ECCD430DDB65CF7AE8AA2DCD74F8A3A306376C25DF550B666B11116B9B98726E1B4CACDEB5F4886742B5374A0D77E535B674D03D1808683E8D0BA0C84081619B24BF9E2F45A7924A7214457704B7F180AB823513D0384602004317B7B686966119A4D0E986420811E3EBD6E41922409D198348018848E553BF65EB04C1A908D2E605C9A6CC5D053E8F1BCA46DC5BC31AF3F320EF1A353A3C983B96ECE5277352721DCAA708F8BDA2E675D174738BCABBE9ED81960A47115E9FB54C80323EB481D689B0977DFDB0D7321EF6011759A0E25A24227B10494D78C9475B8B40D7D0BFADA135FA0A0062E15FE1615AE798814D1F0FBB450FCF6295EA3759CFC9C7AAAB50798A9750735984BC930D11FC6EC22087764DE300411FA99B734B8DC3C84D1F607FA86962C293CEA9BCAD8BE24F0BFF2B52298282E945F31687D50BF10C241983332213034CD56C23972BB1F2C555B394CE2523A108E19D6D64D75C0775DBB81FC0A0E8C1016D8C125C982FF91DC49DD6F0B0D475583C3C1DE0F4723BD2D74419'
        $DllBinary &= '7D156476496EE88B1F1C1880F4FD6B05E485F485AC9E11C9184872120217E9445FD788F4BC0368CF2972BDFC268C40B6FEAC0A41557887EAEDE4E329723B663818986CD16275A452F5E83D605C4DC7374FFA1A17EB5C45BB0B5BEA87B250F164A7BF77D397078DF98868826DB5DBD6296458FFA0941D5D93F19966B82A80DFE0F6D8E49D0E45F2AD781D4873836360381A68DF509CA5A9D7855286AB6CE02A5F2DD4117FBA106A6F012679589298C2572A354D6A1DEDE7169AE04A3B2A8DAF808374D89085AECF24EB5BDC970768321AF11F31EAA1A3F3487C2DBD08EAEF4BD505C5038A65EA85CD8B8CE46FF00A5A665AE261C38BDEDE41FE90DF07CF92074DF1689F5A012F05599E9CD3DDEC60BFE05CD136232E3E34CAA9139D041A146531019816A47E3255D2389820E4EFF1C5F5700FD6C80E19027F1DC118BDAE446442C828C6DD56DFD208D75E884E17196523C2118378100D4998DF47EEA71244EC8C4D7A818DBEF4F61F0145EFC6418D0C54965653A100A27176F1B95D77FF586A7584D8104489A56786CECAD3E36A6661E6706BC2615E33A9192BD833DC825724A3D447E3AC431118C1A1CBD5A8DAC9666AD259507509C0853A84ADC701B1A0B5026ED690EB513758F00590453E84BDC1AB80E488250A5F5EE173C30C810FEC16A2834719688B3560A7A3B041491C9BBA528297AE5CF4E89DE95108A941BEC97BA10C9A0DE7D8276639641B17B65FBEB2CA1A9DBE1014B4D2CBD3E6F7F2712F39067F3C1A17CBEBB28754F482F332E9B9E0E7BB30CA0E90380489CA90815C088D73B6A6696459591FD98A395F60ED4FB1EE915D897905A2F638FAF4E13235FB6C6783E1CC106EC95E1D408BCAE9EC84332C867C178250554A485F616B831F178B06EF0F03312B0EC22C0C10943783AC57C428A19B2CB3ADDC7DB1ADE0CAEC045BCB7C282034C48DCD4D8AD2B8CE9B0FC76A6FD32EC69D335A2A3FBBC402953561363E82A3A8502D5E7E080A4AB1D26D8AC2198D5CDFDE7E83734DFB69D1097969134BD5B8805E717351B34C85842E76C0D74B107E08654A74D26B1FB231AA1B048A388B417C5820CF29E5AF2228568E8CA441E0660F05781B11B6BF4101ACE97C2EAFC01C542BB2BF83DD51A87A43A9A6CBC697AE46CC88EFF5EC15653495DD82838D8CDD0DFE8BB94B126271B9E04CEE6FA0CD5F1915657548D0249C8A9C201DC32B0D4471AC744FBA00B309DC2E1A5DE85415E26BBBE7857C7C015AB045FD91FE44B3AF5C77840AB4D59B631F76E08DE3A74279A2558929762E3EAC71330C19B78710197B30F39DAE293F3958A8E810BF4786B0CA445A83E174F1EB948A41B2EE74066ADCC858474C73D75D4BE88A039B34593F709A2FABB00D77DB85E538B6C591A2A471DD29069818197D3B4074230044F986105953B42F4EB50E79838D6165F8'
        $DllBinary &= 'C5125A3109D7B770BCFC481CBC8518EB7097D3B64C22A32A26F3B5427E7A1416C2D2113CF6F23E7F258BA720CC117901F9822B8601297BB4E9FD32192E6E359415CF55E1832AC384D5D84C37C6907857C02AEC60D9A01EBF909EF530ACAEC08054E9EC7315A38EB1DC5FC9EE89697150ED898B9F77851AC45170252FBC2F68A9D87648A65628A590E880E0BB79CAC71FDD037E81EE2A7090B75F48413CC6AF66804442A17D26205C6B30284E6D5DF1F1E5EDF02C9A65289C93A92A098002CAFA2250D07A2D88F872D2DBD3807A6F8FF4272D4C0F99E016D32DC2E948ED4CAA77847595BC85BB734511FFF11EE4E0AB0ADDB5BB4321A6BA3250596A33C35B6D9C4EEF1F0AD2806541C05B5D495FD050E0C7348887D632B250EA6ABB8C12E394C3499E9F7A7977D25BEF64D36C44529EB2EEB84F19F87A416E40CEBB93881D9A955EAF949045527ABF9F783DE9BDD65E6512EA81363537325BF57078990711B32E7F137DACD671BCEE79655D0723CF3E681F57B158D980F9266FAABFF6609DFE973AB8B8E2C04A1AC4E122B8E8344D924916D38FF6A1B8E46024D30C6A8698F68DB0C92083C5DB409249323966D0D16405CA89649A2416C45276B23A7C33DE799A26491D17F82607E6C1CAE68C2493649AB6870AB95001624D930B9BA708FCE42493C48130689D9763EBAF76B09B76D529A5D26CFAD5907EC8C4571E86F48E73071804E280028A9CB48FB191568812B680ABC97C32827E959FC2E097D36507ADF67D98373FED438DD9CE4A6F86D16006B9433AAFC21F635CFE0F5BB57F4AEF0C539BA010AFB6760DD204819B24922C42033DE82F5686ABBEBB0677EE279D93FDD3579739EF29525E8770D4AF032775682FC53FD01593155747CF67C9782F345779EE36B35F18A1D9A0BF74D2435DC089A82BDDDBA09F06319EEF25F678525D891218457D3B1E7655889B6365BD818F820600D561E95F0000AAD95809A2F7533FE2B305332F25B901C376B828750500C053DAC7599C663E76586B3A27595A579C4C7253A1585971ACC229104B0A361DCE8D5F75B7B37A9AD890F10B50044A0A6E2794C2FE6943D879B416E8ECCBF8CB026AAB4E25413CCB4A9BE95ADA9B9BCD6A643B00909332B30E2E476C7313285625AF24E7ED5B6BF1CCA630326D0D5218E8835A129EEBCEC398FF9D8A1609CBE3213BA572111451836F9667250AA35E01254A6040349F6BE990ACCAC7A7E073840C98C829E0383FC8A17672007ACE5C8BEA7C0B86056FFFDC841DF4ED88F8C0FA34D8FC0B20A55569816B6BB7EF748C8559236A9CB8E3616553BB521AFC3EE9CF9B4A21A5268140281F544C606EA6A4AC97053C168CFB4021BC83A45317D68127649B24E51501F85E6D9653AD1B6C62E7BCD97A7C763340C8D9AFE19192D3CD7B89C34861ACDBD5030044FE21AD5C17E1C1F401'
        $DllBinary &= '8C27B7E5EA53E4373DA591E79770304024ECE051DDB8BF0F16D3F6F63479A7C43DC3BE748D1E7D96585508BD615080E0AE5EDCCA8414822454D1DCE37112453FD0B0DA807E24D197F7E4C1D73C2C1D9587B1DF00416D1199EC241AE7A4C1AD5C1CC10689A04588C2DCC2476FA5A2E8012BD7CE8F774F0A5A1B49FBD3E2D7FBAF860181D98190210C269964A4EE55CE0EA385435140486E97D8AF235A6B3254614466CBF189F5FC8A93AF145266303834884844214413E3FF08852D4E11A245B566AE563A14C6C5463E7AA85778AC8DAC82A2DF47E5EED504DC0B3FBBAFA4ABC9B79EC6B6A655C77C69B89E7FB8F7E82AECC455AD017F5871635605523A16C05E2081D2D5AFD995F8994640D4DF991099A5062421566603B10359E0AB4BEE29CE3F10B650C67C72FCAD49C3E06042EE436BEA158ECB7BEACA295396C859340F6D3F8637572108270C3D0FB34C33C5255937550A1ADDF206D0DB97FC644A971520E6D7723EBD5F45925DD6360DCF051C36DD43DB500755436723C1A71DBAD3FBAAF7F031A4F2A33341E414E83A5903EE051BC4CD70419FEC72956B4704A39AB5C8FABACF8618214CB0C8AFD78EEC1F2422A3D0AEA7EAC84C56D959F97CD86B47BB56DA1C1005F1D87ADB68BA0CC880838B53A35F05E3AE80A000560EEC48EA80A1D23C4C343A6E2CB0C6D6DFD81948A068FDE449E3B74AC45CC68EEB70D6C52079046E0493D9F5804530A0A39B188FF70E7E02149A23C9C198454140B8E0E1D28F164A4ABF5E663BA90943C989CA3B60E352F7AF08A89C4C74A82BA1C3893EC641883CF13ECCC5892E92BA032A78A323EFA69AE5D7A6FBE093C0749D92BB1DB90E61FF841A356851F7517CD53755B062948E5C1C7DC33A87D636E2833E9050BB66E77B25B9223040194C17DA21370F052025097CCEA6483F63C8E1A6E1EB6160CAE1FADE3E002803DABA72550443412E22F2E72C8ADDBD4FCD3B6139E51941B32CEB9C7A0C966B112DA32E80AA2E2375347010905141EEA661316468E963CD5356818F3E31E15F41AB271451D258C34CDFF7EC2BB47663DC615D46D52F991BC767873B92AE0D86738C2B580B8AAA0AFBEE5B413346AFDFF9802D0CD72E090D4D7913F0EB3EE5B46F28F581B325ADD5BC39B254B22501A0C43B522A2E3B0B2A9CD62D5F91DC9A29B0A3C2CB98385696EB10C22FAE94BC87E6A5804A7F89FB656D7151CC9973BA85603838E5B0626953A79EAE68CD212E883BE6C9CAC347D5AFF1D400D065E06D2E47C1FD2B745A1BBF93FC56AA4636A012132B0731C40B86C52A6C18AB454FBF74252BDFFE9E728D60A020F1B07C236C9C3551F4B9F3BC67A517326EB492E3110D545D1C4579AC54949121628811748822624EA2FBD88D02932AD94FC66715F14CC357384AFC91AE3E1AEA08BCD30A36AB3EE5871FE0B0577C452BF5'
        $DllBinary &= '94DF25E970A64591F4F2D210198E8BBA82087BCB5744FEBFDEFBCF085918BBF54CF1F48EC92B2E7F89F129203AD696C4D32E08AF06E530403BB1700D0BC5ABE0605CD7AF211A17607CD2E91C0BA052791FCBAAFC3A96DD8802EFD7B6FC0A885828ECABD578499316BEE23DE65DAB64D30D680B07438454143150FE25361E500A027A3616A9A4F23EA408E52503341E2D1197A3203F64695B33204D084A651A42CFE0E1CA3F3204CC72BB71B653E5DDB9B5136233D3508CF8AFCEEEF5057A2374872A6BF6B3119485C2072956A2DAA18785F725C08E0DEAE09433C8A0289F9DC04045614C4C9D596C65ED3D41066005682806DC99B1B79E402057106C814C92AA21CB083FF2A1326D1923BF14D11FACCD02CC5964B36501542A822C9754D9114E33A2741194D5DEA5221BB490213066C2349C124EAE8C0B13C9C0D0B209280B257B6B45B0CB083B7DAC93256246AABAB496AD9AA828CF8A5120D45204537AF08B7030416CC9C705BE992DE8951AA4E66BDA9C00235EE761C0D065A051CAB6493384C2222534463FAD27B20A82892B9929A6FEA7B5BA6B29D6CB1E86830D929216303364F27A7FAACBB2ADE6ACB0A0A82B73C86A1BAA7C530D0FE5918653869BF7EEE44DB9A864BF43A0A967345AACA526DAEEB4ABF3EB78D4C08486D584C05003C5D2E24A1D0AE75A065F0840F9C884A51A618BCC3F0E1C7F724535009251CAE29B5329FEA37FC743028AAA64A500EABAA0D99B0C16CAF67D15C1D376C7F41FE8A1BC0E22D0B4D8DF9238649528560E61A542BAA270F432D0B5A240F291807CAD0C4A73BF5B5EEB293B222C63483F069086CD58BC88F9EC8695B4AE16C76E0C0062AFFCDE199BC8C450180BE8FFB2AE82708511144F3D7E7EB9F8E927AEFDA0E8522449DAA3BB92F5DB9BF781F0843C0D905737EC6604010BD6990418227B556CADEC6C7C9529C815D89F008D862C741DC2F25D6659C34955F0AADA4041067528BA833E0C70288FA46879DBA0AC5D1E15B642E29443887F83528B23BACD5D68883170D9A0DB9AA6699AD8AC89BABA1D7856758B22AF769C1D0798B4EDB9C9AE00889CEC300DDBB805AEDEF90350C4EEB78FE3A8DAA128FE93CEDDBA002E9684B1D5C28C30D521F4789CDCBE86300E3F96C9FFD4DCEC55FD18108C1827E8E11C9C690C24C2648F19684C85B08277BDE20A525F88DB2B5CD78E677F3884EA7295B0DF12DA9CAD5BCE69B8F41BA5BF6A4189F3C95396626767D131CA5097B0EEC39E4A5282BAEFAD07AA6B23AFA8CBD07125A8DBC71D5E94CE18F9AF40EFC58AEBB9C93E4B8AEFE8E0DF32D68964664A898DD9F93D4AE15FB0523A5429BEE300724CEA49898E0554622A5377A60B37B12B427B9ED92A15C252570CED245C572EB99751825281FF175EFE500810C39E99E2B6FFFED6CD6CDD281A21048F557D282396D1'
        $DllBinary &= 'A5EEC2BA4E2B28E6835E9DB76F1F998ACEFBCE1D6EA461608254550006FF038757584A2B1FC698AB23C0C731152E3CA0A0370AC27812C10F1BD1BE949E2ACBE0145721F826F6A47469644C7529BF9E4C074515647A5F02F68F8C84085484DF50BDAF90C2C6CB5BEB1AED752DE05F2F13A7865A0D0100FE951BFB2A1AE0E00AC21D4F60954F7415FCCA477FB870595AD4BFE27901A56920AA4C233144A08AB66B115B6DB4AE11FCD615A25611F9774533D3E2595BBC0F6754A099597D477F83F663CB4064E48CFA718ACE27EFE8DE15E4A2381A57CC0538CD29A6F1D5819F4F535D05D5B684A6D335C64FAEE1BD2BD6EC29E9FECCB4CA52CC4E26C56019AFEAF94B458710C40A97C79FCF488887B8247220CC900248202ECAF623B54A2538940583B50E52831C2502C0578D24894643DB49B93F60E2A4D8559BF5ACEDEB24FAAF288E667F002DF7297A21439DF49DC6CAF177A8CFC3E3F8F835CD6600AA55FAC607D58EAD75C53FFB4A1BCB07E36A61201F8FFF0B640D683BF415632C65644C18D8AF2248A2B88C7DE55B516263BF14B048E24BCFA85827B369BC7EF8488D3D09004F3F8F72D5A53B50928AA5277F5604F10310B5489A10204E1F0F90941643105034CC701C63B17D35C2576A7DB334832D6C70F445BFEE8D24D8A8FFE60A02773338456A3A8E995D1B5710D545A0B4D250299CF0BED6A5D8ABBFDC0AA010BDD3A4EE3C5A5F913FB727461D03A4C88D97719AC6AA236DCD4B78DC97D0804F6A84A05B7F021AF2C6FB4600094B9926E0F5D29726864BAAADA5757B1D24B3026B58B1EAAB2396E3602580601CEEC8DB3D937149A1BE1B28E85775BEC644B695AE5E46B6BA13CFAA6BF1ACA8AA0FB009BBD2B03FF5B8F1B7FD74F864BED38DB8F7FE510B035DDB5D24FB6C83926B8BF19569AFCD4133AFDA3039243AE7C1E6A0BDD5053D0328019C2ECB34CD0F36139F1E1505A6914D98C8C2196052324F658BEEE627BEC648992B4C9445D0365E06C9CCB39E4DF88B3D528A48819A5DE114056F16A9BEFFF124EC0B66F1C7B6A98C41D1AFD78C02EEEF3748CA266C0AFEB4BDAF3BA3C5D9FD00A11DC0DFCBA403B5A87398F130AD2C189AE3E874579CC77970AB2A7E570C9E8235FE6572740D6EDF19F6C96FF99B7113EBA66CB66C6053995D59644153185699444C450B3C29C6B39954203610030C39834E4F40516A063954C24D631D802F51D1FA5FE9C76ADC9538D5659CD5F50B929DFF23E1833F44E894FC569842595EDB1D806B2A5894B5507990D38F4A6D63FDD3760FC655529A0245CD23F6B8D16D6FCF1CC34BDEEE2A45F9477C07530C18ABA1F61E4ED7C13DD7776B0C9F4358DFE423EAE48289E2E8727F40F720B716D60D7C2303118477206F43CAF2723B7441791C2BF818ECF04FA20BB2CE7218C3F765C144FC818C2CB37C44480297'
        $DllBinary &= '5FBEAD783BA0FF38C02484335856437193671A970A59638AA9509D956B96AD0F6F1B1A908F79B4897C996525CC2C9D7F3D39314198EEAE1D0C5D5BDE00024986B8BD323BCE40850882A8E80EC5E6B1862962859D73269E3AF845BD8617D0CB3BCCBC2D02AB42971554A2CEAF4B5351AD027AC9386B3CD8AB81ACA58DA63981F531B0B6B6EE62A2099F24649D11A8B85A0701629337CB3886F8D3C74CD499BAC9A822EE66F06E4536263B3B8324C1F652EF307E44678A4C090B73D454185040AD6E29F339A9499B6D46D950885B0713364313412E22077BB0E8B5E09A96110457E35882C8CC421D56A455BEF59D1EC5AA8CDD0DA6B89E9A9BC379342E53EBA9A8815CC6D97D8929B660F80CA4A6CDE5C5CCA8A0DCDB52C05135D9D5D6DAD128FA6A14B4D03F089C29A2BDA74A217950D405DE6BEFC6A32453E24645C2DE7CA120A70C316B2264085C41425446162A3025D40400DEA3B660B6C068758FA36951C386D46C28876DE918709C3436D5D3D8DA3386EA3926BD7CCD4114444121221F0A2E29A3983B65081DDC7CC920498544E663E00CAFDAFB909DDEA28AA4986234B4DEA3B4E5663906F7A5CDA440DCE8A98719BDDCCC5AB85E9A12DDDEA6C8C8B0368CDD7B94AF704C431E0D257B0C41F7B3BD2DE40E509FF48D94400C29795782DBA02E192F33D0183440A86A87B6B0FB26D690C062DA072082D0C9AEEC5FD16E55901EF5A67C7EAFA38391D2DFC8F2314955B5C703377A9499CE7B1C40038F6565D91B830FDB20C8F0A90C3954183FD5D5B93D0D950C77A5ACFD2D984E3EA24DD40CFDFD1EF81152D3DCB82AF2391BBFBBD560E9A3102B64A4032AB47E3DD27A7655908446AE4207A5D71542756DC0EB48C5E42691A4C68C17D175B579465686147A2D14DCE19F8884A2878CC4B4B071B7AA1104D7DEDE632C757011DEDF1CA435A5D118B42AB52DDF054C0C9FF97D59245D8D29A418CF66093A2DA1745CEF72C959EF82F80DF14DEC9BFA4ADD99988601A803BBA7232A8B17B5374F9AF921B50EC627843A60DDAE7B22FBA15EE5DE0FBDBCA829DBB0B0C8359DAEA7E0A0408F56B14EF77D613B52932FF04DD58155877FBC0986158581FAE259573C537DD2B43B244688ADD56AEE5D9DA44C71FAB031E20C62A1B2E08CD7E1E9517C8D41ED470649D26F16B04D5D85089B5C06862B80FC43FB68EE0B147D6E4EEAA61BC263E9AB60452C1499DDC882388ADE0D7FDCC48C185616C537450695FDB83E03B066F7DB059E786319759000A9F37551016042C8081E24FF2ADDB9784021F0ED4970BCF5FF90D3B9BF83F138737511062881A2C848AF87DAAFAE82747C18FC4C2BE261AF32797597BD6D7E3E68A7B6F8D075D6F2977E1FC5B184A2EAC4B3590404FFDF3C3564ECF028F53729858FD0385E816F976B14BCD597EE0DF18C7011C31586311E0E'
        $DllBinary &= 'FAF163001A021F1B197E62B89465EB045277F5DF70669C155294B9D297C066263E46515A59AE800267413D06E1A8B957301CED0591F47C5E8AB9D45F19D9B5602615B84755EAD28BF34D94713AC6C3FAF655799723C2856ABBCA7381DDAE7FA53F07401533DD9B2183E0B79ADAFEA7E4E32DD651E147F8BA3AF9ED7E7D2EAB84DD10BCB7F65B7FCA8166DD35D7ECC946759E8F99B01A6E179EA19BDA2B80075D3C01BCC0B9C3C0A5193DBED8F5D0B5AC675AAE88B97F90AB2776871808020038B3026044CCB943FD95407D7D5585FDBE855CF016EAF9139A585CBE53A9B7C26331986475D82296D80478B5F1498601090268AA882982BEFDF17D68F85D161B2890C6B314CB8EE9BBAE901D0F275A899A5090AE832C6B7A17D9B0188392583431EE55D0F7153D76F4B13A02FF1EBCABBCE6AE1672FDC11EC7D0C7E282D1A8D2ADDEC92557070033BE8608D485D15EC7E8512AAB43D0E64C185810193E685DA9B67E13028B6306257467513D5A790CA001C1DA37B6C23E6717405F75C8F3EDC0C07D917C7E27E2B8ECB95157005C60D0292E6AF3D1E1B81A9C7FE00E575C9DB4541EB34522EEA4D1D9D2D387FA74DC2F1D9A2F24FFA4A317FE2185809F882BC97127ED06DA467F1FFF2A50E20E630992F21392094F1478F8BA8D771E081663067DE6BCAD2B13854A42E68A093CEB39CFBEC9E93975E5ACA531A72CDF1271FF5C15830E56F9AABD97B6E662454E3F842C0D4CC481A25F6E86F173761D421D8C88590298F45F1C011175110C26F809C102FD8374843253FC7F8C7E5536F744280B0B2088013E6174F5D3A856BA4A980A3BB01E1AA31728AB50FC575C729B7F1140F519B4A9BF2E52332C8BACDA58484D64619E0ABC750A13890990D95A21881E710EDD936B57CB88A4EF22EB4E2FAA0F3DD18BD156FDE8136718F377B18B585243C8C72CC3740C311154ED9EFA838897FBAED57C433DBF838CF7DC9E8865C71DCF1CCC899349901D95B97AD5D12D74589839675077CDD78401C27A1AA27D1E4D378AC375186C24AABFDE4B605D4C206D580DF60646213D3148AA5E9DEC44A8171655B066998301210C22F7D2D75453F6D63C59ED3F4CED15882012C3EC566ADFCDE05429E8551EDD5765DF940DABEEC5F80B508D0260B9C0A19BF3DAE7A17DB80E0DEAC8870F32FDC32F6BD90D0097D45F2520A8A8D012D12D8451DAEA364DB103A86DDFC1444BC0838FCA63E2A45048F909BF1E486AF108900A45908D6F1BA8FC0145EA48165C10C4A869AFC4C78B4E95519040971D145A2444DB558430E622F60D26217CC3946BB752D65FE409070A47650AD1863E857DD929989CC805E2B0BE3AD4D119473A90F30A3E3099E08E2B4902A29D0AA48BB4B8615A4DC5A060D0B78D5F296CA9A7470BFDAFAD0280E95F1AD29D4C4A6318579569BABC6427C889C20DAC'
        $DllBinary &= '680A546A7BED3DCB566173DAABFA1DF707782E545761128652AB59824190BC8A7FAB3CD390C112C88214EA7595CEBA4306AA5AE3C207D3A3D86942A1C9F50D120D08704C177C0827D92EEACAFAFE2630DDEFCDA6ADC4E7AF2BFFF5DBAE32C140196DD83654F2B350FA501150E68492B4ECDF525F511F17286B55D45390CEFEA44B184095513ED44E31E930C3CD6DC0B97C9B1E1A9FE006A384F89CA2FF7ED8DC635A22AEF152976270B4126E60D48BE0C145A8F5A1EB182215539855FCBBB770324B033164D6BDFF1E60E9909185C31E3D96D4799FA924319889A0AB40A5AAE8D36E1359B941862D82261420A4A33884826313786A08B787B1B364D03284ECCC124AC865C5CEBCB06CA50B9B0C311B49DEB3A3952D2E86A089E336A27723A6947B54DB1CC64A5E58BF068A67FA84100B62D4FE62F600C8158BC68A1B4EEC8461D02CFA495B2C20F623D43C8BBB3CBE762C7056DEDB54DF3A54B1C7DC4FCDE297B9FEFBCDED972FFB87E480A881811B1CAD2553490921CF83DD87E607F48FAC9EEAB5E1659623783DC62417555C4CCB243D49FD6117EA0AE2AF536AE1C90B554F699A980B6640791D03276B789985E78661997747E6512CD1B3B1ABB16A5D0CA8B1976319D48C06842A227F8FC05C02EA5A7D742F7AA39927656C84F39A4926E8B74F1A992F9C3E635332EA6B1C0E03960A505EAAC82B24125004F2CF7A6266E461628C82D418B2FC84EAA88189EEA48FC0A4404A815E5AC4404B32C386F2C9180C64A69665ABA2F052AF42E48EC9821C0EF4456A72083145058B706FEC12D3188E4199263041FD42CE8B03C3108EF4A5DC1932A9ABA26122297D4655C22283848CAA62998AC8A1C88389FCF80B2B55E020214871ACA6022B6D65EB1A0702029574E88B108BF6088A17A3C152D92022E330569251A636176B2FD8348CE5DCEE4124A1CFA900D55309174F1CE89482C9639D2727EA5818D6616958824241DC3958FA8A8625C8B12173215FE617A721A76110D8EE343BE962AC686F776C75B3642A628A21D5C1B7F094A754B68995085AFCD80426328E3795D8612578786A39D58A7D3F253E228EDE022A9AB08A52264E6EF145AC3B0481C15DC91D1C086B9678220E45E5BDE52AE7178484E8B097912A80E02187A5F8DF7F8F2A8AB782C0388E0DE634346C0CC13FEC4AC334E648AA72852D3C4A27D7A2D764B0390C5AF41F6FE3F1FEA742166DF3E6229FD00071180A967CB5635D58C3E40D877A3AD6211E93772ED688A2630978206C4C5EF4C061A363E920ED964995E752D1ABE5255143224E565AB346C20E97478C0DC15F21F9406BFE442B9B472594EB006A7F3D2F3DD2A2FC056355C207EB7609832867C864EAD8E61810649F2E6898302508811CCB21A2E218F2B08EE189D84802CBE0943D259CC44298002E241E46042DB5328EBEDB28BF'
        $DllBinary &= 'DC400627B0D34F2293250AD7F8E6A70B2D61CBB4248B2FC0F1E30B06A9B347D6C5A176A8034A14DD5D95C766B9BF22CE51B9BCAAA5E2F087AE961C1A6C5504E2D455139B755B28C98D65271981C8A90DFACE0EF9B349F06200C17E65C32B9A83BA57D1D8E66161D329E87856EEB9E5BD641333C42C0D40D2EF20F56F55C905043FEB60612FCB0E9E61335B9082E2605380590CB33459D78A610EB199A002729E95CA2A73540373101F0CF49284FA586C68616093049968CC186A6E11E4B552070FD387D84AA088488E4D481D424790208498AD152006ABF0B1800161D9021451510E0DC69826EE63351130E658CA6508EEA4960E2A646DD32948C8E269CCFE01BC2D2E272A9C524B5083AA91844A047C5AF5AD27A38AB930548BA570916FA56C606D9867D2ED29EDEA08FA94D00B7C4B34E6CB91BD55080C38735D1E0AB220873C70266A4A500501D8EF0CF3D64001D7DF6CE62C66600286095EC277D2224B60A4062F02F0BB3E65B0128C55303C1F8C3727B38753C3AB38904341533DD4D0F6AC073BB13E91D4E392CCDB432A6B4E0109C80ACFC27A4A20EF9B72BEF97FC90AE489309A1FD06FBB983725042444547259A565579EF1191911FDE3C88E4C9279664F4FD987DE566DCB864E1E5E2ADA0D34971BA2E369A1310903A971EB1C978B14E0FCB7204A98F53079ED9B706198DBE91CD1E71BE723C32069DB0A9E5CA467893A346F7A8F37DD9A1CA48B60CADAB36EEEEA202405A1995F7C9E958CC3814A70272EA84B82F49124E4B0B2D6747F9AF41CD9AD7F26AC578C1B249DD2BBBC8A514111A2845DDA241121DE5AC84BCEF97A368189E9D6D4C015B964F1F294B2AAF6F121A6E313C09A103B68E2DB176391A7ACAD2FCA30673B51AAA9E32D2BB8B6E79DB55CEEF0B57AAC1897B0B4D5C155CE6B1D78298663D5632DB44CD58AB78FFBDEF3C0FCCD049A01453017166C737055446EE5C32EC287DA4A9C9C114215840BA007F2B9F5D5FA946D06304CB782E6A5BF303C0126682E12B5C34DD60C07909589431C92A0A2AF8C3511B2434293BAAC662C4578B0598F7405677606C82B6FE3C539DE9A18A22000D9B7B3F19D741AEC3D1D9853187D3866771DC5FD41CDECE38FE94BBE86A2355645830DAD8A8FD5716E5A5420D610A8B64C20E92A4056B81CC3858FA59DACA343B879522CC3881F64C2136E4EE5D00B7C3CAD2823E1589041418FCA69A95511DFE950D511EC1C0B2DC7A57D978D0E02A1782C21F572DFA18E0F6785EA5CCE4C9CADABDA9AD8AA5EF3192EC6AD25A91D14ADE3BF5F106B8890B916F1DAAF56EB205C828548D8D6CA1646F9AD55668724A71CE528F8C3CE10387B10CC891D080A4670AA8EAC1F916B81B4DCD6A40AB60007C7C9F0110DCE4884873824672EEE1B7BC38D8ECB1AFACB5D60C825087A97E6E369B2945BAA288854'
        $DllBinary &= '1990242F39656E36E3BA7409E429E4DE80D9A57B9584881392E5951C8E2E1BA6C282295ECC951A0609978B1CE305435C93F1F2D8D04F976B9EC878ACA2F31DA00D76BD2E7AA85CBCDAE98401D9C5CE03AE98100E421FCE4F2EDE3D8420FC1B7329F7BE078F8FA8174014243F5D5651900D4521F9C10E1F2FE9F1D106D2ECD2380DE490AF81926F8B26CF055145FF0A787D7784459F7909C243732FBE74E35CAF7922083EDEB98EDD588308AF11B246E15CA92ABFE1410DCFA09E92171B85DCF4C343A80AAE138E25BD21CEC8AEB207B1007A0CE9AE878750CC8690A820FC100B8C25DBD4672F35849F50124D0C191BE6DEDF8B7AF5705525BEDEF91912FAEB159DBCB282EC7F7B84F58B45546E69AD035A2E882E4D9ED4B14848C820901C935B500D087405804F3368AF75FA5BE545567F6CF1C1031AFE77DC5896D759B1FAC414C356DBC061FF371124831D748C90AC2EB3D68B34A9FEDFB45CAFBF870AFF0FD67A017F9F47D5E90E00E7D1E10339ACE0FA447535D28EB9B0FA8F45E383418FBF9CFC58601E4F5A278A26A6D3C37F2F00EAEAD3A73E5337FCB9F640FB1A9B545F47526D2DBB6A57088401F5F001FD002649481CB6276DDB96186CEB16DD977517EF7F6D7255E0600C5F43116DDA0748F64C2D617517BAF3C67FA28342E1A68F3C4127FFB4FE2D5116F6B4A2AA524193C9F61D32D97747610C30E44C244511BAFA3B0296DD4D847956B3D5DE171406E4A312D7282853096CD7A2F98E5E08808B6F6E64017B5450558C78A3B22A7EDF4D3BC841ED1B2B86EF73B2F5BB97F90FD4C5A4E3AB1C768346BA5B56E0503555E9BE40CFC1A2EF52C5574512C801EF1AA5EFABA5FA3E24F1ACFE2A17DCBA8F692AAEBBC5B1BC92514568A940E3B20EC9FC0FA0408A726D1D2F417DC680FB283E30F6F49279FBBA69E4102CFA6CFE8E30AF1F51F47DBECA43998C178E125943DC09139B81284DCD7ACA6DF14A63515437A12E16F57FEF17E6D2BA05A2CAF47DC91A6094D883128287A93DF5ECFC8F92AC1B075F7EA9780F4F25B116FC1EA70E7ED2F76AAE27F51513494F25A4FA2B5096AE0FA40C2392B263472EAA32F18F06013978768673C6A95CB94AC2B7D088A4044C59BD29CF7B83325FEED715F7960A4176E30B7D4DE3ED05D21F9F6AF27FBEFF382FC0E3F787699E3509A87455321397ED0A038EBE1FD3FD0D31D87F5585C51881A5A4A51A16A89AF6A796C55FAEAEFC3B6CF7A119E1E810ED2ED5753008F9BBCBAB4FAC92AE3397F6BBD23BF8183F4C018A8670F641658A18E8B4C99302298519CAD7CC220E73ECDC54E1FE270007FD9AF92C96F09BD8C10119FA9735F240BE35975F977D2F85CCE4E4DEBE2B83E9BE48DC7F15D6E181C7C863C246AC558A9EAE48380A9BDD0D4492513165BCE7846149F69D0012B7FE1B080FA4FDFE3C2D036491'
        $DllBinary &= 'EAF6B60165B777998CD93550494FB0FA79B0239C67F43E6AF103ADFEE898E331794A66F7AFACDF6264F6BFD53F6581EBAAFA7EC444C0E4297C8E789EC1107B5B3258AEA7A82AD5FFB8535409E6297855247E77E4FDA7A8DAA236F61CA648F1EB0222288CB350AEB7F722D7DC9D4A7FF760A0277F30DF89363F01598850594A18745F48EF0371E4BBA7A13894D56D4DE627466EACA909178B20F092DD0EAB5007580773D391291408DCEB53BE58629044081DE44A2F59E94D554C66CB30E708757B7AF5C0082F3D926B371F427EA73E09F05151E9538177051375A1F0B0F191564852E2FFF86A0D638A17836C9AEF6BBFC9342343EAFF5BC91745558303CD2464D790E5B54017BF40671369C6B9CDB08FF62C6EB5977EF7340659D65BEA2EA3BF20361197D36655A2B6A4467866EAE5D4D50C8540913140F07AFB31BC9B4AE7BA4B36FDD8EDEF06F7FC7F22B261C056030BAD350097DF423468B5CFBFCF6A2E8DEE6381300AF1C4065A5E3D603B09CC5456CC1E9B7A7B3691E5E1565AF0B6E8FE27320524037FAE51FD8616F77244DC3AB276F580ABC3DA2BC0E766B5284086DFC5BBFE64B4384CB7FE1B9603EB8A2EE24330E8A0087A99ABDED14CC68591A73C4A71B8C237FFE0F06598BAA9DF87CDE85FC19741D40A8D6853CE5B43205D276D51CC2693EB59A2D6F1EA97AD29FDC33874CA642E488785BD98BB3BA6A181B77A7A57CEDEB196AF2C00E6AE565ACA4F55E9317E875565DFAABC98F04381F287A9298BE2EB9BA70A508C9F4EF1431C248A378DF34A58A3C1DB0041F7AF649576D4559D9DE27C390E256FFD7B1864A509183BD53EBA22C7A5FC586F455C00A3904E762184060B0ADF325AC1300A0BEA25DD70B3D742C9B4F81E683FFF7E47AE3135F74C2D606606753FF27D29BD9FF9514A3EF4D5169807F7A06C1B7B5DA14AD1A9E9D50E47533DF38AC7D0F05E50C3707E9EA8B449B9803011ACF90446D46188CE48413D2C591ED150F50568DB5977576FEF0FE92EE84210C3912C3DBF72D675C6E60A02781939FAF5FD5C7F32B5C1FA03A039D3622E8C19D759E617E229B25F379D3F6A5D85A400AAD9CC99C3F394C0C844201AACE728A8368064B63FB426AA2E9C4C33554EC50A33C968F89E5ACAC82D741DFBE2FF8B8959510378D3F7AD6DCCDDA530EE1B3D8FD7AE1D979CF6B380A0BC1094881A80CF8546BEBF5857232197A699CD6A0E6BC1CA3A44EC1A14AF4117B0159EABB5723E4AD787A21345BE1960928B9C44D19E4BF29FFD19BDDB5F49F9DCBBA6878D099AC4EC21B5F75D1BF806739912D21EEDC729B23D0C7F6162FFE3E9AB88E6C8CB95F41E72F5EFC579272BA158237A6D7FCDBE0A36ECEE796DBA9D158CE7FFFAA58C37C7E9CD15222A57597E20541868882B08CA400C44DB827ECA2AA40A649210FA70FEAC9FF90835E9E675'
        $DllBinary &= 'E62348C81F59F1DBDE15EFA9929CA514C9C9DD37C363B850C57DF8E3A9BEB04552D9A83806D0F9339F25A6F0EE8028F8560D1B15E40C48155B5B6AC1A5A103B104B91F2EE8DDFA4A0A5D01E6488BDF11A60DDD8477DD7E780D1689026DC27727C173C101924AEA30E8F8E0FE742A9068C44F630A2B8D38D0E0ADA02A62A116C69FEA0848FD65B07982F048418508CFF083080ABC470B712C762009D717513695764B35FA02E6C734227B71932E2D4ACF63F45565F4E2825BAB6763AFB55C2E5B00B45E6BD822AF1357857B6484C241D1A56D5FAF7A1078DE9EBFEBD6E9AE86DBDC9D1A0FFE286CF2A873EA0AB9C344ECF2C5AB6AEF895C1683100A42D42462E0AED4F2710F449089D1EF6943891CD2A382B9AA0202942C0E6202D2010909102E3B088A151F0BCA64042BB180405F69364FB248D1550DF3A4F61DDD285EF9413B1D22A99B570FD26FE96815D20AF1CD1AB2E5E8A1688A7D563031CCF75B68EB991700C62E43125FF69154A07F651444FF852840067C20456E4939EE885DC8941CB4D2D51437790B0D4F9AEE83ACAA330D4C46C3DF1F2EE89C7E401A0BC6BB5A56166B8FFA30F8E6544C9383FEDC7E05A08DF83D561FCE05F56CC319FE3FF98CAAA8B64C365ACA3F7FDB141752F38C2CF5E58F93933D330E104FCFB000B1ADB86384B5E543C8C8B1DEB6AE7F27222ED0AF2AF28FCC763751A269D04F6CFFFA1252CABA5C978216B37C2848FD2593DABBF294EAC730513070FA4BBE61DFF78251600DC454226AE621FA2BBEBC719D6F0F544532204ACDC2794A491C017A1E10C61AC5D06F28E6D4D5EC24CA7648EA981E30297143A52795623F0D6521A05FEEC5D92CA50056E435620F013820E30AF074395910598772C1BB2A819F0CF5B0D7493D2B8E3D9EB654852C14C2D11FE14106169232C7C894B4E4D59F79D6DD00889AF5920DBEB4FCC6CBA59DACB5F8928BE7BA2131B3D4937D11967A9197E3D1D97D61E72DE9FB84F759156037D86662A29C3FBBCF300E586357803845D1BE05D8245E46C6676DC32308CE0A49546DD4F4B2A7CCE5AE0CBAD5A9EEE02D7C31A8670E83A016C85FC2740CF716E845E75098078ED157032BA7ABAB9F429A1DD11B071A4CA0700CF68DC627941F20AE66A4163B05DD272966AA010F772C99ABA26A5CD7D380CACDEC882C498C85B08881BE0324B695E08346CBA09F7D089FFFE3C57E56FB0AF51CD0F029E9EA447442A61453D66FB57FA5018D727CAA87BD2C4D048450518A5816B6015049B703CE40716E1EE719698C16F9F6FE4B509B65C687D6B0BA0AE5EA46AEC01B2AEA45695051350F3D6D87EAD851E5383B55608CA2298A9C252221F7F1D15439F7DF4A26E83AE21DC37655D46C77E721A91611BC8A491A827BB3747DFF9BF9FFEAF7A93BCA297CCFC0010BD73D49693FE4F4B2F9497C857882A6DC'
        $DllBinary &= 'B3BF02BD1CB7B1EAFA87529EC4298536715DA19A72ECCDA5C96C1DEEFB91B4A07F86521EE3828D542DC5914EDD0575D017A66EA804B3FBA4F9E2EB2F3268B0019E29E844E5F16D38AF9E508037F51C553950F206506198A5BE863261ACEBA06E3AE48CAF3EEB74A0CE72BCE1DCF656D30BFD351D8ED9AA2EF7CCDC039D9A5BE1E8811FFE7D29CC10E25F52655B365C77C871DBC1F5AC1DE56C352BAD0BA906C536478F50A007FCAF46A842DBF5440986D40B91BE56A526F6A468BDF9151D5CD5D92D1F45452CBDEFF4F0FDD78475A861080DC2A29F3E54D0CFDA60BB45B2EB5D5EF65574793BE9B9CE6FE24420C69B694E4FD4BEB12886818CA2DDA1ED8E96996C686574C3C87386CF63DF6458E08AB0CE948FC47675101CFA5C31A1B05D0131E4017D0796FEDF2A57AEF09699793000A0C5D0826A827C8C6E8D2D716A8D32515195CAC0996D84C96F047AE25E4C551FC35D8D760DFE4FBF24A66A0417A25145231CD6D2C810969A25B6F4C34204FFB6FE0B1567AC62C6F76A010A7158756EA10E7D16571307C466B9B3EE0FA74CC440853498350F4D260E8926AF47F877536B2498A3270E89381C0907558539A42F38000A5FAB6C99E0EA7AF4ABFC308478870C99025D75452C4F8BD98188B04297F7C20269A0829BEECF3FAB15BDFC0F4831D9C18C25C481CA07C983BF6FCA6258CF76908D5C0040A1408C12AE60165B2F9CF87421115E537A3091465427D85E8B5781ABE824B0302661C609548629B8D3C090284092571F4682C3C6AAE386480AD6BE2A73318D72CDF7BDD1240D57870278E901E81ED34F1A553F42D3F4F5B23F2CF505351D947891DDBF0ED700FC41B4EB5DE7D7774C418CC542F72B4ECD347661C45812288430930C0D231A910A3212326180CAA83A5A3591F569CA51F7C94A236BB0EF624421797DE84A5F63D62D55134F947001C7250A177274B179C1D7CC1BBF3975128918BAB9A63DC6AA94F4E4D4642B9E8A52775538AF69D6174C337D134CAB6BDF1F661BBB9BC8F4A17178AEA0B0217EF87E767B61D282F9748DFD7CB3C7FBD4C80A26293F8069BF9FC7B50683F728BC52456D095E2C7E0150A9F534BEC24208664D943284B3B88669408E01F7B3C66733321A3FF98C263D6DC0B772D559408A691F0B9E9DED8F140DFA7A5F1FDEAE06914A1E5148EE5985C2D1D5DE61815C242DF840FC044CC35521ABA946561329152F189C86B036914C56612C8B35C2A52C381C3E80A501F74DC6AC991A96521FABB1571D84AD51828742003A40BD64F2CAAA21181F186F81FCEF5DE81D0B05016EC9117412FE6AAB7CE038D438C210CB4ACE8E731BE97EA9366B28A330A40B4C665780825AA52712DEE1AE37E95259515A53D1A63433424A4A6054454A22983D48B83E62F7E48E26A6BF423D3B80CA1FEF94820A64056DF9618923457A268B'
        $DllBinary &= '09C11448C7B84D29631715D9AA684595B3D4BD4225B6ECA213A35CD3EB884B540BD37B807DFC89F9188E1B564BC9054464E17F8CB2287BEE456D97F2DC2CE08553A94B23681A8988CB445FC25D9F50C836F555999F9D62D6B566AC6A6E7394B5E6B350982FB075B37574084FF7AF4D48425276176800DE68663BA35522369C97F3BF329A4D10BBA02BCC3048881492C7EF3E367C0239AA6D3430E3204C7A68AE22F43D49421218C912C1F5B2103008119290243432FDC8E5213C4942D6E9DCC5B83A49D1E6231C25335A50D8949492684AD5814C5198BD201F9474E975F41AD6516220E2BE1E5FE2B0760BBAC09642E585EA0D4DAD349C5D71CFFB56940A36527E896BF89E7D011349680B116916D554C560EAEF619375DE71BF16D4AE76A5878B0645B0D3686B0DC3C9418B372E8938A2BA6A4034E6985FA7A360714564807F557D5529E2B4A6E9EBF39B045EEAA9E49A2DEC36B1B98E2C4A659B8A954B62EECC3D6175209F88386A0747395E45E89E51415B031F642FB6897D60EC2467B92C8BFA5A9D54443A41976FB4C23B8AA5CE47C6B04207AD494A31B659011955C3C627404BA590F357F041298AC42A44C0A647028064877377FE3A202E11C1F889CBE62E06113F9DCEEDC2B4B0B7EB22E2A6CBDBB35BEB35D0F055761515D5322B73AF3EC0A8BBC0E2620000C4D3A25B75DE93289E86D2A0E2ECD457C3721808E9B11BE6A867962275C054649100DA8A62381816F4374003BE80A00C7ABB5A3843B90A80EB91E25742C0C3AAAB31368B38F19791B74328F3994FAAA5806D5BB2C90F5856F7A237A96E2BA2FB677ED19CF25F2D5F486DAC772A4E4B5519C0489698192615D10AF17456F525EEC7CEF4A7B9E6F8BCE06381B58C17B77737A9AA0611113CB4B1A6FB8D2CD8A5279F4B144CED031E368F5B0E714A1FD4F819F166A0B4F362252FB4E74150192426060F2609CD93D2EEE78AEB8E59D393BEF6CD625FCD6547CCDE6AB890296BC61F55FC189C87D07CC4039D4A132AF7FE2BA4864A1878BD675ED3AE978FCF748C5E5C2826AEDDF4D29C2A6AAB2E34309D1A9336558D5F4052A737FFD5D729DE5E0076C13ECC70936756FF605405C414A21B01543B53F5EC38ACAABD93213D9939C280B5B01A03724D81D87445173F8A78545C0105A00AF58C8FDA0161D771564E084704DAF4CCB003AECA924284C197CD21CCB13FF34255DF23BB1946C74BC9630FEA300F8860A5E04DC45422BA15536C994505A6DA3736B3BB9CBECBDF1E45A0F6CB5142FFC127CACFBA70CEF00D25EE869001E6720DF697D06B6C03BCE9177C6731106E228826A01D4E1BFA4290FDD51F5E6C5D2B2ABA9F1C930109FF4A5A0EC89158177EBBD05F3F33438D3E5749ADC5F9622A729D261A1E3D587D4EE0B347FACBEA3F0C544E8CC4B4B4816F16A2380650F5D221E1B4A3'
        $DllBinary &= 'E2A329C453530D80529559535704A2563621BB548A0743BC99294CF7CE57E154629D94DE3A557520F3AF4EBAB1C140C6975D9C802B0C563D9153DE2FFAC55DADBFC06E07E596E5A54C5FB5B317827320E3416701C02535ECB4EC2F466EE3FEFDD00849000278DD2260D5B5A3D2A8A03BC990C403601AC1377948B9C8314232E4A15B482AB17E361B0D843326BD7133936D8FEE0AD51CCC0C348EEDB216DD80E3E0B3090502FAF9C7EF1483A3AD7012FA510BC11D42E87BDCC8FBC50533BE32C0D268DD02A84A7C9A6567D273010B4D1E411FBA8137CA6A61E061BA3FB4B128862128B9E8A8A2C9213376918C34E7CF219C86147977450A03F461F733792D9D37F4CE7F9F71B5AA5DD26BC1BE225A849589BF1ABA9294EFAF54E64E0FE77338A0EFF27805E979DD09A395DD25DC73008B22A045BAFCAF32110C8882A56B069DE679690AEF47663A77A416EFDAD03932088DC6F4E29E8F494C8F3BF6DE1EF2304DF9B2F1CE0800298C6D5C78D6B9623791E26409F250EC346CCD4DFD801C1C6893CF172F54319650B9A933EF4F21CF6D2CBD6E9B70D4E148069D30441890F97451B65A5EEF40AD854187599B13B44B40A74B0C40A92B86734027B57F40B2E998B54E9999834540806963C0DD28706C7285B02F002EE22965E1AD166B592E0B83FF7F89072089B7492E7F3B67CEA4AF43680E2E64DFA54192A29C5037D330138982D014A05C852AD9548137C53CC1749931718C38343FC974B228824500531051A1D7C094305B0CB15F0423027B4C0BDAB9833733312C6950D2CC4418B4A30042DD1AD466D322DE07292A01D3356885018451C235C9E0D9AFCCCA23D3C18ADB60E37CDF7D2AD8A97FD59C0AB9EF874B434D0F5601BC5839B03896F70EC0D5344DD334D71E121A0A60A04ED32C232CF6EEA9F07BE25E2054468E1806AA75EC7736BB552606AA2C17525AD1914CA719E78FF38AC97A7EE8AA38F74DC68761B8BFBB0AC7DF804C7C3F1A680B700D565E421491C14D504F625E5B422186928628625254373F610251CB5525201532F950C0467907750ABFD100C1C344BB9AA618B6A57C457D0EBAEFABD8875BD6463062D9E08C8683351BE1EA976292043E408CC98230DE7D755AC7ABF7036E9C26D2BE26A3E7DEC9A5FAC7A3360472C8938B962FAC0E0F317B43C3DBBCCDA9DABC34ADF3198026FD82F8FE899B9D1A7851FF26194C54752D04D42B36FC87594D45F39AD7A310EFDF81BB534857103B2B3041FC71AE19EDC4245D72A723DDC37D66589A90B21316CC90757A0680DD0E5CF5E5B9A30DF693D8EE534DBE995A9DBB777D914C4FCF10E11219FBF6DF9AC7ABAAF85697DDA33A5D5B23924279D53B8EB902479776B9E6371445F33F79EB4DB0CCFFD3A4D0A62864DA8DF91F292494B9ADB8BAD38D92552558D15A5F41D35170D853B96A55683D'
        $DllBinary &= '00EE5CF3451E92581BFFD38E2F4F07240EC249A87F1BC9B65E3909EE62C074B016CDAF6B06B3A53077BB77D4BAA4487542C51074A11ACB53FFAFA00A557433E36EEE483522C8DE75C6D204D6A987AA59AA5780B36A48BE5F5F31EE0042DF1863FDDA50F5E1AD860B06EB43583F26B73225665195F0F0814C83D3BDD826A604F730B4E4C78218A6AC24D47F14BBD9D45E85D08A16CBD47687CB1AD90E86C797B7C2C778AE407F9B2BB1CDEC3B5C525B712F307ED9C218C5348F62613D7AD03C4AEA989FABA2268F58D51AA42FAAFD6C43021055CD10237FC4B7BF1CFBD37581BF27D2DE496F4D1602743E8073BF6735A4E1A47D0BA56D8631FEFC190B57F17BCDEB8A7607B0111CC57FE5B8121C59A397C495504D0D78BA6BC1A7B0F22B8C557DD8EDDA99BBF027F113300020093041CB4399C5E2350429C6CB0237F8D6C120C5FAB73F1828B1EB1AA91AAB013F4A4EE1A6A9AB5E800C535FBEA8448CDB7DC46257557A31F3EF0A5284C456F681BE4087B8FF70B1476FAB74A4D6D6966E3EC304A5826BF1FE125ABCEE10D9AB7F1C040247AA56C309F640A28044DA7064E47714897CE8A091F490A67D668948635F45EDB697753127069E2BD05698B545972B8A701548B85195C9BB3551980EB34CE54ABB359A3CE1435407560F1EC7DDD08DCA81388DC569AD05D5A6CA4C777C18558431364D93547069E53DEE00A64256D961DD9D64659D9B853D894D0C115D31A230BD4243FDF7B045C43A42454BEF7AEAD348E0405D3BC93874651B1FBFF45C434E10B7A79A4743AAD4D5B9771FA279C5633C65DD442F1E4422F2A056AF6B3CA0D00721F48AD8BFDBFB957C2EA40013DE8DC229582D5625FCA290601561BC8DF9D2CCA10D82FFDA84CCB2236AD48CA75DAD77B0FB59F90F6C37CE33EF26D1BDC1CE2E3E9D4D6DA0C0CCCE99B1D197341B30CBECC1DE7E4941FFD1792B8982DC0B20E7834A31E7827A0CEE52AEBFB8663388CB500809F47D37BDE5DC412B6DC5270C002195E5AB1D270CE2EE0161A2D357BE7B0005CBD4B25191B14BC49D824724898908BB82A81B71C087494AF5F820A82081AAC8C216672C6B13AA461AB7F9E69C216EA9285E83DB083DA2E4A587837D8F0F48AE8AC9457547E58FD7645CD54AE83D97AC3CF16C309FF9D64BDACA4400E3D0A589F65851AB52B6176DF18738B13DF6A5B3848EFDA74148F54279B2AF80E6E93F451C247019401A452096B0C1CAD6C817FA958891BF7F461705C48241AA50F2F60066AAE2D546FAA43BED0CE1527137858CFA1098729454F0A6D2F6EB24E012C2B830A4C8A52DADD9CD1AD46EA8CDB7C561EBDD1F9A4A78F21E2E01890A681220087D404232BCFF294EFD14D01A498791C9C1A8DC2D151D2EE9D60A078614D564E1D67CB2D7FC549DE13526983F999A88186A89A45B8DE8B20236EA62B41268'
        $DllBinary &= '87221E4090420AC8AD462075026159F7A3DE68C5A6038426415754BF1164AABC1BA3B36E1A885E3BCBD9E6161C7C73918AD995DB9F4435EEC0500073A86B248A39F415E44264492BAB78AFB5B6EF1DF917AD222E9E0D1B8E952966FE85FDE19712A37525FA9E7F11618BF978DD13997565E7DAEEF48F56E2EFDBB77075C5B3DE002CEA52D492C07C5991BAEAC0BB0F2A93CA3487242CC07D3EAC311BE31AB51BB6A084D1DD1ADBD4A9146D70AC9D5095A63E29E5B1AECE7B8125BDAD2E8BE00F73BA71C6876B059094ED546B1F63E8EB732207174E8B1ED4131DABAA3DD02A4C518C95D9084F8DC2C12046A69BCEC55F4FB3E3011D30FEB74DDA2299193AFCCA2812E7EBFF6F8A335FB07F65D0BB9A214C2B148DB1027CB06FCE338CEF4527D5057E14A3D7FC9EE7F3B2E7FF05C012D3679006F8CABCEF40E24FAAB16A16A9EA186926CA1566F428BEE59E1D66462AB0251AF5D805F42705EF4D98E2CADE3DAE76AB2A2EC88DB8695E73FE3103466711F32E85703CEB331F6D68A994A34BD8C7486308C92EDF30A794D57DEBD565185796F8D4C15A98F04F5D6890C7BE7ECBC30001C382AFE0F75F01DE3404FACAAEC6C5751F46641C50EBEAA62A930156041B70C2E054C83284777AAD55B0324C71EA98082B4891E98EECD9B234D85E4C425985A0D7528061F2B1CECAC64C112182BFB73E3226EA07030A615328A342210C50DFDB9AE7E6001DBC5902C988061FC7ED50CE287C7E7CF69CAF15BFA3DA2ACE1BC353169D4821BA9E7FB3EB4593A5858938E177E406818368A9874285151C053358BBE327AC3991F1FE9E6251D5EF6628862735705784081222617C7D75100EA49D8F0841AC83589B1FF44288A01562FC51200C041C8BCEC345404231DCD032CC41420409213A0EE94490103E070C2F1A5B8ED9DCC5236CA02282CD2057E89EA42696598582BC161A0860465B3FA2E9D0D8464EA426ADFE2F2D754971D80A25E99588CB8400F3677903D5BF196EC77FE24C04AAF0EAE5B00832792B87D4080F4EE1EB84832A7C20C1213DDBBE63256D4FD4DF22982EB144EB3DFC0B429DB0F3610A51871E4BF6462D5FBB528954AFE9CB95A5013EAE44892EC9C19AD6977743D934B70E585D4227F22CDFD6267C3D34D121100338FC1D266A9D224CE63520D84CA8071A8B703979554D832AD4037CDEBF5119A410D6D71FCB024411E892068C641255900BCF5895E46AC9C27B0172007C632761B9EAE482E9A78C0C035EF688F929EAB601EFFB5A631DB220ECBB62A6A121057601229615510646991B4D9D2AD4820A92A40ACE188966EC4AC64D8F1887A60EE26B22E5B909F7450CAFD6B71D2A733C21D4ADD8045753B932F5F06A711DAA6400E59DBB6731BDAC27D3AD2A24F37DB4356D09F32ACA877D61AA3B8286649ABD0A7CAD485D12A3CE82514DD6AB278C'
        $DllBinary &= '49322C1C6C5C2746148EAEE67C087DF35B88820F12A26F3F0DED553DA93952BA13D59437B3A530DE0552EE6069DB3425B2263CD9E16EF84D91DAEFF96BA98571633593E1E4922937615BD2F2A15C21FB8D598F7EE9CA6B6065721D13F5953D3CDE125504993CFAE44D03B5CE991228E2405172F5AF77C8F35B4115A975E7DAFC803E20B41FD759B8A802ACAE7CA80A9ABF50E55D15BDDF3BCC3ED862FCB127BA6A5E37D14377F865DF68D90CEA570D4377DDAAAA110B946BE030864D069630E2220F7CA94A8A6369AAC8D01B77A856E4169CD6352C329A719F515D2840AF629A56D308D879F9EF2C0B2A53BDD770FD2D47B5A983FA0F0B92764B393FA7B844437723AE385E31A364B5B494B7B003B9C0100D111C832E26BE669070622A71B022630259456FDD1A5707C1954574B246D9FAAC2C5F51C901E26E31BF38A2BA3E98C4146F4B3C430CC5F0521DB35A46A006DF14050C8FA0BC6B47750471FDDFA181136EFE4FE84F0D8AAF34148B0FA62FF7E0CDCC7D5166D4B795BFA0BE212A3B2A958952FE427D1195FE3BF34C50ADAF4580F31791A45CA53A7F01C9D1D17B827C6C8BAF8FF15C0A2521C50F2496B33E80FBAB10AB7A36E753726F68A2BC5C982560A04FB74A18B3F343DDBF525242B755C72E90BC1443A5EB999B87A0ABE7BEA19ED4E20AD527D7F02BCF963F03BE5BBB5FB8067157207C067432D36CFC010A18D2ADDA92F768AAE70A4E48D74D94375EE29F3A2A5BF153342C1AD31EF21489FB42AA3614E18CCAE67545545E809F0FD6C4F32BA64D1CDF27AB84FDEE42299E329C3E75FB9CFB8CAD298F2C428B875AEC9E354738970BD050C1EC526AA954B060AE9AA709600EB92A406538935AD4366ADCBA18CEDD70CB62362E76E8EBB3926A15F1E42173A8DCD5090022D80F07E96317FF1C9216B77904EBCF5D0BE1C9C8C840FD7E7603B203ADF85812DF2A5E5A55E72E42AF9EE89A470423849A92C121ACC37FD5E77FAA78AB06D69FEA0B6B21031AAC4C1575CB298A034A0351D7B03B50F809875A8F11495110DEACC1974E49A208A885DCEFA879229FA6D2E65B80136D0780388B0D16F65B8A10C15112A8BB4DC672A07082BBFA296D516DB6EAA812C22A3BC308664651DA4525CDBDE5EEE30CD64D14EA14C4F764AD34B4C1A25C30543911E38D41548013C65A0DC35823DA60D121741F54A93285E97023789DBB1DCC0F80FA3188B220EA58E8970190BA8EA046DE1EBB42DB1AB8E2B0288AA2F4CDD8C5D8655114EDDBD4F3F800CF2220F0B9C7C32DE0D4DABB0075EF29DD719855A8A8287A65519AB8B84C917729B68287EA063C9F71FAD401CA8D92A4BED6787D72578C95B0AEC81441F2BFD64E4538B08D8016CD791C980B138FAAA24DD3249955E958405850344DD3346111090C0CD3344DD36C6F6F407815D3344D7078637BFE05'
        $DllBinary &= '07A88309CF0B00FC80242009FDF2F3E6C94952050362A5E26DA5E1E5DED87D499224D3D7D4CF6EE70DE39F178014C7B3E2954FB0C832FCBBC9669724EAB8E00CA1D9FBAB83B89DCA61A7EEA510D21510A7995BDC7DC0C274A73E0017EDB8C0D1C3DDFA81F6815DC7BC0AC897F48C8C4FBAAAE448FE116401CC3F5BF5D6ABDB95190D79275D63703BFC8349E43237DFC8E0FC0342FCCFC314B8CE5BFF27C610DF4270E180C775856E7EF347817F8E608C3F2983B5BB0285E15A91A6CF9FFBFC48BA7FBBFC5943B1A0C87F3DFFFE001FF9F8896F9040EBF99C0F532359EFE0D01425E454FDC1C89F68C2C077BD4A0F8D60A882EE899EB932F710E82AAE6DA89F98F257AD7CB5A5B2032276FA4ADFF0B3D38D75977E8E842017149D745354AF429A0E5E1819C0892F17AD15CEA784BF5F37D2D3122534FCBDC8A2A8F3B7BF072CAB732181F017CFC164DB7C0A935B78D475789AEE021DA1875D4C55A8D6F9298B5D254E48DD7640108A87215558A9175901FB37BE183F83103E2E5A0040F9A6CA12063CB4B9F736C80D4F3B9C50CAD927AEAC88EC15B64EE716200700D8A1A0A1928358B3619198189B228179655AF8AB6985101F35E80F1FF16B555738D52DF84BFBFC25F11030F20D97F3FC5D165608B67D715E2F38EC41E5E6A97AD1544DE25921E09B74BFBEAC442506FC1844AD2BC208CCAF91520DA6D0EF4E978C56750EC56B69FC7AB8DE3E54D9B93A7570252E3DA2C47564CC616CBC7DA70ECEA48B168235A39D5C30269D425D8F4F8D937C65F295A7DA7EE09843F025FAB84925C837F822302E92971906EC0F33DFFD812AC22FCA8AF9D2C5AED37E84A62F2C49B90B483DBE2A74A5929C95E16E5D2E4DE0170E55BF2E5032EB64B5A0EA20522A0B2EB53991CA991F68D889B292CCBA9DFE3EAFC3AE71CF2E4B1E7BD6B8E47230FDF96AC564EABBE269F4AD73A627958593F2AAD6B180F33CA55A661EDEDB2A2AE05F3BC12A4734BA5C852BBA5F5E2E30FFA2069B27B3EE2A1A1D803D454532B3CBA43C7474D30F115432452A48A7571F88BB3D31AC2F709D45EE4CA0CF99B0692C348331F1A1162A96CA9B6323A1D325267D552074EB8AD26B4A01BA90D5AF0F32A75722B7BFB1471492713184B6AFDBFF02DD167074A347E2AE5B182BB16C22FCB40F3AC79E75A1E90A116BCC13D935148B9BBA904C7FC0F13319AAC9E76B92EB8C5BEDEB5F7FA46198FA9433DBBE4D824B13FF9D9F001933EBBEF50760531D93E59CFC770379CAFD1ED9C6DB59F7F403BBC964B3EB13BF5FC60FA30586EC85D352FF6126D0834E5BA75C0813B998E354C5B84135177306C16CB8EFBB3BEF64D66596F394C9D3D9DD9385502BB5D373883982727928724EB2EBA5664ED3BF269A8B3FC09F8134EC42037E8A8ED049B949D6959C81AE6E32D9ECF8BDE3ACC9A2CA83AC6E'
        $DllBinary &= '1DAA13AB8B70BEFE208C032F02244204AC2EC5B6F9089EEAD2B615FE97D4A7CAFCA47E2DC8EF25AB8ADFE68AAE9A4E1AC3E86F14EA5E57455B2BAFF3810266CD619AEDA5E0DD1B81A1B79D692FDF561DBD5AF9ED7D1798F4D5973A45458CA8FE9BC466B370C07F1E8130BB3AD869FFC40B3114C546D7241F7456750CE9A226392314FDD64218A00389F2FCBEBB0481F443C00F145F74B4AB55CD695BDA07B29DA8FA776385D956D7E7262F0D1F4E76B40F3E5C86C6527AD8A7A4B0A56159B808758A92D8BFD54432299B17162C68695716DA570458BC723D855463F84B7DF1A865E16569A3FBC4272515A24F26B7571DD38E12EE4B6DDF3D1F14498B5FF8D4F67A96AE46C0E8BE1E1646F7219E8ECFDBC8621A76F2C40A9B1668E8FDDA778D30530BEAF65DD8EF1AB362DDBFBE82B7AEBE1009BFD6F6BF8A632CAF4CB83E11C083995A18177D67AF5A31E1B3EF85FA2BD1A33B1F53F08BCD713C989D5B4D3F539C9E1A2CDEAE03E3276E8E79C21317E7A184DA802BEFA4EF4EA9C4C6EE4E44C6E1145853E4A31FDD13D6D5011B512DE4AA621FAA41BB0F287A2837CD7E0257A9DD07A12676E5D77B5CD2B17FE88D2B962753250EE37036EB2BF4B389978A3A9F6536D8A9295FF0DF3D24ACDE3D8FC7020A338AD8E868453C491E23342C6EBB89DDBD40B7BF8BD4C7D96A89FD3B61E14107A397BB3623FD8FA2ACBF147C8416DDE216A220565445CB7C0769134FAB38E7AED9248F01492147566FABD92059D7DC30551798943572140EEDBB803015855BCAD45AB153F79797B6387755329076ACD466BED211268E443FFDD5BECBC6FFDECD02DE7D393F8E8E602832E3BA67F7585177A22529D82966D1D728A68B11E2FAFC57850F6C0E0D5D070DFD27734FF72DC0821A6479B3B83CCB4A7F91A0A10A751341FF91DCAFAE140F2DD717D3D35709145DF1A9517DE621FFD803E0D4392A548375B69267682AFEBDACA70E5C6019AD438FF72AEABEF81DAA930CEDD73B0F268857455A3EAE189A595EB3DD05B6B8C5BF53094B7CA7A331B5FD8205662B4DD5C3047A83A184EA8178CB7C703303685B5B6FD40CD5402D6ABBB5C4027104FA258677A85C392421238D215637392A8620060C0C60FD12A13937E5F36C710877B7605A7B5FA52A7619A3E851EAE4EEEBF110176B8DBB1BC38E00AE5DC3BFED29D791B5D804D4C2AAD4AE0B120EAA43BA6C11E215987B7FB061AF4955652A62A891AB0210EB8E284B16225CD89A07A88B3183251E983FAD7B5C3F9FEAF3EBFB782A0725C6086765F3DDB9976B7D678F02EF1F70192866A0C05EAB0332C7A9AE9254E76202505DC08C2936053D1606D4E814F69CCF183B8D2C14C7619A1A1C4FCCBD58DDB586749F28709B1F1DF631EB162BEE2F2B0519A4B0F4F672386E094B86AC84A7FE0377EE2F339409A6C885B1CD865D'
        $DllBinary &= 'E063156882667F87977DE3FF82AB1ACCA9BE1EAF74EAAF62AEFF7B5F56539825589359014D5A0CC5416DB9CC07C912752D905D3F5C7DA94E94A10064A1E7004DFDF994A7324740E5DF45E084DAC4AE5ECC01C1CA486011E1E5B890BE5063A23E3712A9BEF8CF7E5D238F3C510C8A5801C940D7792B22EAAEBB6F9BEE4CA9FF1183537F417EF351A68B808D15D66A1000D11C352CFA50D703D984DF0984E5F60563D05F94CB048D168A502ABB4F7988CAF2D98341B768889A1C4BAE0FBBBD8824FA26B5292E6F8BA87FE8BEB1E698EECB64BB765F80E8225E37A18C181CE0FC4AD08646C640E8A6540C2A1A8553678D3AE232A40F6F7C77F5CBA7DDDF7A054BE7BB4D3093504B79427867471BA43D7164BF857E9EBD280531B219441CEDDE8788B0F801AC9A7E8B309F28CFFD1421806944EF7F1964347744D7D65576223F5C3D4DE503C9CFD8AABE52F10712C9F11238D2831710FDFEC08A20E9DFD92B5786010AF702702D707B767DEACA90E07A753D0CA1E1CAA14E811D4CC31682E5BE604EB8B31C12B04183032FEAFA7C3C0955F89E882218783056EEDEBA89A1A9088028AB157470585D67831B7B864B6FE91A1661557E4183C64DD1425D441A8C7FAC85A116F59ADFBA433B703143EC69118D625855EF99D1B93DA701B8D35FDD15500329F241D570B302F90F863D6CBE4D053A994DBFCC384CE11AF8164052EBBFBCB20ABD0C42B91913AAD37F0276AD327C74C36F40BA48306A015E003B503589E44B0CB4B59339764EDF79CD9505EDB1E97AC87417BA5A2FA2DD45C30F788C4ACE3716422E2AE6554A57D138E27276AFF7F3DA4AF717C6AAF2F0B96E1DEEAA421A28E460FF750FAB9B46D783AD8310B2410481F7A3217B712020BD984418268BA36383A0D261C3281011CC9AFDFBA1747DEFDF468617C77C1D1966D14623B73F1C9B4A86822D0CA95421636BFA523414CC7F976723974339555000FADBC946329AA60606E43635AAE18AFADA344D9269A202CC204870D2C00CF078DECAD3344D9249BC5C2AB0B8D8D3344DD3D2F6FA82E8A6699A24100F762A3C281CD506789A30C6393017E636E4F0924CD33486B2A8584C76699AA6694256222E0611454F92E657FC3106242011B3A8B46E0D393E2F56B023CFC9485D1C69611FF758CC011819D61454098CE3306DEC7FDA06C099811C4271EB20E73A68E5EBEAE6CA1049182EB06844502481A1207F2A324ACFF6D7A0A64421A6C8C51B00F43244BA4837EC0D4D4E6C71D74094608169625C30A0EEDE5D8CCCCC62669181F53000D894290C34F551B80489E628923FAA136F906B3F0A5364460400DCF6D4DCCADAC8EFD9C3DDC1C4C7F7C6C162BC980EF0F0D3F7D8982036FAE8800606A82F0819090329101A061E131F130BE124060A281F091A1F4C52C34F08133E3C0F322C95014D3632193D31'
        $DllBinary &= '20300DDAB831F12739032B527D9C5630982D956B5D06CFD954456A714836E383AB6612B68EA39F899DB738AF8D4571A4A6918E09EAA009876D3C734AB4A0C93120D1D0F5CCCCE2DCDEC4DDCA91154431E4DD281EAE62FE2F160F07311F085B0353DB1C0A208B81439DC271328C143A3A083671A4DD8678ACFCB6B3477117A767218B0871714D470D154B39406315359A5468A87D66A305B11FAB9688440C8887A68685888E4441DCCC9AA0BDCC2CA523C6D4636C5DDB2C827125EBE9D871C879CCE7E9E68441E084DF3C3718040B031D061F5CCD220D1EF3B70650012AE060F5393C2A0C491AC4DE86D119DA5864164A4C958C71B2405629DB9B4F49A819092349626A150A800DA79E301D5E119D494D1DBF839D616364A0878B97781245AFBCA214C55492B9A3A5AD17A3E128D1D1D6AE0A3EC4BF2F0EAB0E4FC507C0AC48B2819122F50C45B5A14CE1EAE50F0A41ADE70D614915A18BC301737A73A3737DD04B5E2E38607C332D0C002005434C552B484C284E48434140564444001091C3BADAAFA5A3A6D5F3C131AEB265D1C861A3AD01149DE1177246E26326DD80180680B6D0832A7C81815863FFD34400E60338604A00804276F6A04FBDCAC23D34F0B16D42EBCBADB490818006C8B1754AB05C05F42F4AA9000010C160B14F7AFFA41C759BAF49E8781293ACA97CE79CAD79FB8418802C06B183FF98CB876E6DAAD6BB81FCBC780690885A7FA5FD324FF2039653E11A8E2092242F6A6364A504040536F906E5FD6A833F78561484A7035D7440F4AE452DC3725A208A6133B6785B0FE508090C008829F6F5327D4ED0BC78171F341D722E00E90C482F287A137D311E97E99BA37F30E9EA3903FD285733652E8FE3CDD385921480B148036FCA0867813ECFE5293A32002017F2BC8105CBA9F49BE66E28C1032FAD458860245B9032E32A5350D38572CABC0FDC565B298EC5809C9D5948A07A9840041E3644D2600000B8FA8533F7CE4AC08BAA3AFC978AAE63FA87E1C08C78B08810DE66721A10849451C5C218A40488827874FA08639DF2AB5A0129DC85513D5C7B79F7DF44254C8A4B65E8CB40896198A785666064D4C2EAA1489BD25C106A6F905796020107D93339BAD402000008676A3C5FB46A1918FD38D013F5B5DD31BA7030BBED1A0C2726A2A4C422A7854967099921D3E6D348200CE4BBE9E4C35E51F1694A7623E07DFA5A5B02C168E9FD2871B8BE019A724A76CEE3CBF56DF5ECD2E0CA3B5A8248BC2F0F8686819F19DB8CE49E215B003A379F2DA27B525F9A4FCA99A5A7E5E12F92285143C3BB21119308A3D54DA2FCE228225BCA7D99686840284F109E065B0049601254B97431D1ED4DEE8744135B161659740947011D06168F8A574C4E4062A001994C643B21363843901F2B222ECEF712419C5ECE2A3828C08B05CFBEE1B8333411D3'
        $DllBinary &= '5E20E8C0966816E9F5A7E2CC5E1896E4C0A43847851624FEF45650F000C8F474B34DEDDA8A84259F00000DC047848C9C5C948C97B699EB9B289D00000000689F575E255CD05AA45878572455F653BA517C4C584E6B6B6D6077462504E39D310020CC5B5B5B535052554745434E7379110093802531C7008021137B7E424D5D59525050137F5E545A0011520C4248160B61475677504043747B6F3C60608B016D3A2B36272635104E4A5D4F4600C081F1756402630F00000000FAFEEDEDCDE0F8EEE2E0E9E2EDE5FDECEED8C9D6CFD3C4D1C5D1DFD2D4DEC2D7E008010CC9C3C4CACEC1CACE62110050CBCBB6B6B1B6ABAAA1A1B8BCB0BFB8A94C1ECBB6A9BC640010C1A8B5A9AFBCA9A686869495909C12E6C1C89C8798884A1AC8E9838E86BB99A08CD305DDD327B71E2377758BA5F4266231998CA47E67657C7678174C1FB74A6D6090C600494B4B7B59705A415F5E535860C86510496454685054534632106A2316E5D2173C2B2D2E344274370F2B3BAABF29E62E2E2CA4916838D5B564BF122A03311D1C0226261A100963C45B1F151430F692DC2082E1F1D4C5E4ADEDA5A75192FAF8E6CCDF94FEC627FEB0ECFA590C00A782C5FBDDCADCDFCECDDBD190401805F891C5C2E0E1EDC058CFCCD3CE14DD2C00AE3895AFE9989B4737B790BBB600B2D9EC98B0B78FAF90E494D700E84C012ADEBABBA4B4A5808DA0A7AFA4A59B8B35FD84B522002F091D84F8FB97AFAFD6A9DE1200F067001A5E3D5F27252B875D2F5B4328B858F50D22F696690AE4307A634F5B410B3145C100DD68432D7E5F4A465C70A88089306C34447F014454858508A20306482532072418243F30801D2B22381C272B270F3C26D5E844650128DC67130B312C5F175F390600316C0619551D90DA2D201C273A280C47C13B00E289E2C200A860A8FCDC92E3F6C7CCF5E2C59BD3CCF7CF468E9416F1C8B4E504EA7830B576C5BF5B9D84A1B7AA5B8A9DB98790C044D4EE87BEA6A2D29CC09725F4D1288D989D58C3A96C99818E9895158C9C14BE82918EC87774F34C7A6D2B7C60B0E01B006229617B5C55782A7EA0E04178C580C60688563E694013ACBB537852502A7E6F4E77436D0F6D525B14364BC01A03000080751B2D0C0D1E190B1B1E080D0B300730301E0D0D173B39B54B53DF3D0371961E122656013616B755767900F3732238051080B0B6824042F69DDDE09916D68703CADBE8FFA8EEEFAC8089E3E9E4EEB592A9120A0010D5F2D4AD8A818DFEC5C4C3F3CAC6C0C3D9E058641E8ADB4F7990E339B0C982ACA9B902260E36BF01132933AB40082BC038DE9D124997C49F0E91799ED38A88E6E86090987FA54285F6542C516F4CEF0B40318C7C3DE10AC2615774A01E46252E69C5EA162A9A22FD1B27ED36811D7043DA9CD6E62A44525A2134291732B1A840202C2B04243B'
        $DllBinary &= '3DC5B7A93920262B3E1BB58F95339B780811732B3BD5FB8770654A111C56251CC203456B04C50F2E1182CD6AA969EF1E9BAA87DDC0E4B109F8FC32EB4E95C4E0844B6E6AEFF15A333522C6D0ACB8547ADFEDFB4C1603D1C3C9E6DBDCDACEDC70B53125D8CDCC54410E32AD9AA0E7FDE92D4DBC78ABA8A48B4C1E7EF4AC9CAB58A264B662C7AC8386914AA484B76734FAE696E0C0E56C884E8C435A7B8B39200A17791E6D0F726FCEE68A22303831768F234C3296469A46A76834F299B79B011C0D421BBAA6906E4B5BB5998F9760559C7BE3703ED16284A292CC1B5E8EA4B1EA7385026E4831F834DA433D59E14832121997304405D3EBDA119C18056803F5981BEA540832FBDA28CE180651063E91B71EFDD7C725B1D0FE1C53CEA603EF627B3BD08E3672743ED8C8DC3097A296B4A885A78BDA7C36F412B48056B680C2FAA3B4FA98BBB46962B79FB595925207EEC1B8DC7A039BC056B591A593DCDB999798ED68499ADAB3C7A1695C6D4B5F856069DC7DE592E27A616C79A4E3466B494DC1A3DB2BE14DBAED58A08909E75358565C4244F2DB0E5C666E7E2F3BF0EDB18D292C350325C0CE210A6D6BF80D714F9FDDCA584A5B09629AC31EDB06FB7104402FF7702B1A5B1BFAF10000A25211000000002001001000000044305E300000000000000000'

MemoryDllInit()


$Init = MemoryDllCall($DllBinary, "int", "BASSMOD_Init", "int", -1, "int", 44100, "int", 0)
$string= DllStructCreate("char[255]")

DllStructSetData($string, 1, _ResourceGetAsString("Audio_1"))
$string = _ResourceGetAsString("Audio_1")
$load = MemoryDllCall($DllBinary, "int", "BASSMOD_MusicLoad", _
                         "int", 0, _
                         "ptr", DllStructGetPtr($string), _
                         "int", 0, _
                         "int", 0, _
                         "int", 4 + 1024)
$VolLevel = 100             
$Volume = MemoryDllCall($DllBinary, "int", "BASSMOD_SetVolume", "int", $VolLevel)
MemoryDllCall($DllBinary, "int", "BASSMOD_MusicPlay")

;Music flags
;BASS_MUSIC_RAMP = 1 ' normal ramping
;BASS_MUSIC_RAMPS = 2 ' sensitive ramping
;BASS_MUSIC_LOOP = 4 ' loop music
;BASS_MUSIC_FT2MOD = 16 ' play .MOD as FastTracker 2 does
;BASS_MUSIC_PT1MOD = 32 ' play .MOD as ProTracker 1 does
;BASS_MUSIC_POSRESET = 256 ' stop all notes when moving position
;BASS_MUSIC_SURROUND = 512 'surround sound
;BASS_MUSIC_SURROUND2 = 1024 'surround sound (mode 2)
;BASS_MUSIC_STOPBACK = 2048 'stop the music on a backwards jump effect
;BASS_MUSIC_CALCLEN = 8192 'calculate playback length
;BASS_MUSIC_NONINTER = 16384 ' non-interpolated mixing
;BASS_MUSIC_NOSAMPLE = &H400000 ' don't load the samples


While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
WEnd

Func OnAutoItExit()
    MemoryDllCall($DllBinary, "int", "BASSMOD_MusicFree")
    MemoryDllExit()
EndFunc

Can somebody help? What's wrong here?

Thanks,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Or better say how to transform this to use it from memory:

#AutoIt3Wrapper_UseUpx=n

Global $bassdll = DllOpen("BASSMOD.dll") , $Init[1]
Global $Chan, $Init, $VolLevel
$Init = DllCall($bassdll, "int", "BASSMOD_Init", "int", -1, "int", 44100, "int", 0)

$string= DllStructCreate("char[255]")
DllStructSetData($string, 1, @ScriptDir & "Audio.xm")


$load = DllCall($bassdll, "int", "BASSMOD_MusicLoad", _
                         "int", 0, _
                         "ptr", DllStructGetPtr($string), _ 
                         "int", 0, _
                         "int", 0, _
                         "int", 4 + 1024)

$VolLevel = 100          
$Volume = DllCall($BASSDLL, "int", "BASSMOD_SetVolume", "int", $VolLevel)
DllCall($bassdll, "int", "BASSMOD_MusicPlay")

While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then OnAutoItExit()
WEnd

Func OnAutoItExit()
    If Not (FileExists("BASSMOD.DLL")) Then
        Exit
    Else
        DllCall($bassdll, "int", "BASSMOD_MusicFree")
        DllClose($bassdll)
    EndIf
    Exit
EndFunc

THANKS,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Try this first -

$hMod = MemoryDllOpen($DllBinary)
ConsoleWrite("hMod: " & $hMod & @CRLF)
If $hMod Then MemoryDllClose($hMod)
MemoryDllExit()

What is the value of $hMod? If it's 0, then the DLL cannot be opened by this function. This can happen if the DLL is dependent on the MS VC++ runtimes.

EDIT: Just trying to load BASSMOD.dll v2.0 crashes in my test, so I'm guessing it's not going to work.

Edited by wraithdu
Link to comment
Share on other sites

Mmmmhhh, as far as I can remember, I just tested it before some month ago and it worked but I couldn't hear anything.

Current status is that AutoIt is crashing!

Maybe I tested it with an older MemoryDLL.au3 version!

Thanks anyway!

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...