teadrinker пишет:Да и какой смысл именно битмап записывать? Проще сам файл.
У меня вышло:
SetBatchLines, -1
Hex1 =
(
FFD8FFE10EF64578696600004D4D002A00000008000C01000003000000010313000001010003000000010313000001020003000000030000009E010600030000000100020000011200030000000100010000011500030000000100030000011A000500000001000000A4011B000500000001000000AC012800030000000100020000013100020000001C000000B40132000200000014000000D08769000400000001000000E40000011C000800080008001E848000002710001E84800000271041646F62652050686F746F73686F70204353352057696E646F777300323031343A30353A31312032303A34363A3439000004900000070000000430323231A001000300000001FFFF0000A00200040000000100000064A003000400000001000000640000000000000006010300030000000100060000011A0005000000010000016A011B0005000000010000017201280003000000010002000002010004000000010000017A020200040000000100000D740000000000000048000000010000004800000001FFD8FFED000C41646F62655F434D0001FFEE000E41646F626500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC00011080064006403012200021101031101FFDD00040007FFC4013F0000010501010101010100000000000000030001020405060708090A0B0100010501010101010100000000000000010002030405060708090A0B1000010401030204020507060805030C33010002110304211231054151611322718132061491A1B14223241552C16233347282D14307259253F0E1F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7B7C7D7E7F711000202010204040304050607070605350100021103213112044151617122130532819114A1B14223C152D1F0332462E1728292435315637334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F62737475767778797A7B7C7FFDA000C03010002110311003F005D2856EE9ED9682E976A403DFF00F522C6CD8FB5DF0368F51D03C352B5BA3F50C2CA2FC6C263D82B2092F8D7739A3C4FEEACACD0E3977388E6C719F892A9F331AC38C6F5A1AF276BE17332E7B9B26E227EB8C67BF0CA7C43FE931C576337331CE5C7D9C3C1B641236FF5423FD60B3A4BEDA7F6586066D3EA6C05BEE9D376EFE4ACFBB808454FC9E20610C9C52D38870DFA0FF7A2D8E707EBC9EC026A7E89F8A9A0D5B89DA0900F8223770796932009D557E6F1119272E21B71F0EB7C3F2B6F96CB78E028EFC17FD6F99924B73EAEF47C2EA62F1956BEAF4B66C153438B8BB77EF7F556766D35D1997D15CB99558E634B84121A76FB959E5FE113CE018E5802631C86244BD2320E28B97CDFFC63C3CB4E709E1C92E09CB17144C3D52C67865FA48B104E5D23C6C6FE50A9E488EB7903BFAD7CFF009CE57B1CC65527C1EDFF00AA0A9E7003EB06481FE9AFFF00AA2ABF31CB4B979E4C32224615AC76F5438D971F3B0E73EE7CC422611C8655197CDE8CBEDFE8FF0075224921D7918F6BDCCAEC6BDCDFA4D0751D954A3F63B06401009009D877F2489274904BFFD026074EC4C1739D8ECDAEB60BC924FD1DEEFCE43EB608C164FEF8FC8E575EE871F6F8F047F2D54EAF0EC30C71D8038193AEBAFEECB937357B53034D0F82B90C84F3B86533291E38EBEA9C9E6AEE022F4DB716BBEC39403AB7517B1B237458EAAC650EFEB36ED9EE4F6D3498DD7B5BF10EFF00C8A87D9F1FFEE4B3FCD7FF00E413B93FE6220FF5B6FEF3BDCE648CB24C7AC5803E4983F2FF00758F4BC470E836DD92D9C9ADFB438BA4C123CFF75C9A9E4AD1A2BA8746C968B5AEF783BC0303E8788DCA9534D727F4CCFB9DFF009043991FA8C83CB7FF000583E1D9447348133908CC81E99CBD3EDC7FAA9AB7BD801638B4F88247E4573A4B70ECCD1F6E737D1DAE2E2F24027B7B9566D4CDA3F4CCFF00A5FF00904BD367FA567FD2FF00C8ADBE5C09F238F1F14A0658630E380971C7D1F3424F25F10C95F12E632509C467C92E19FCA7F59B4A2D9EA5F63AFAA0385B7D069616ED3227DBBB5599D574FACD96383EB5DA7C5D2AC7A6DDEDFD2363C7DDFF009140EA403BEB2E56E76D9BEC9719D353FBAB9FE7E1C39F2C388CF8638E1C73F9E5C387878A7C4F4FF0DC825CAF233E1E1F5E6918C47A63C5CCF1543F7BFC05C72A96174D1897DB70B37FABDA2235DDE2B4FD0A7FD3B3EE7FFE41234D007F3ED3E41AEFFC8AA03880201152DF58BBB29619CA139466658C9303EDE6F4F16FFA281247F471FF00EE437FCD77FE4524384F87F8D164F7A3DA7FF85E5FFBC7FFD1B65AC93034D48FFA70AA66E562DD38B45EC193BF6ED74F2396FD172B8276813C8FCA0FB7FE92A0DE875373C660B9C5DEA1B3610235331B93A510411DFB34E19278E719C044989BF58E28FF008AE2DD957B481ED275E5AD3F95A8432EC1F9B59F8D6DFF00C8A59421F1E04A0A1CA0BC11BD7E6DFF00BCF55CCE2C7EECAA111B6C3FAAEB62DA1FD2F2AE755592C70F686C34FD1E5AD8541B955833F6766BFBA5C3FEFC8F8907A7E50718E23E202AB4D1658E10C73993048048FBC296308CC989028C80D7E56862E1C72E6243887B72E2F4194655ED465E9E12DDAECC7730135113AE8FFEF6B94BF553DAC69F8B4FF06A36474BBF13071B2DE5BE96503E900497003F7F45516E60C7118E318C8FA0087A652E1E287A255C4F23CD4CCB3E599040C929648F18F5F0643C70E2FEB3278A24439C35EED1FF009240EA801FAC9987806E7FE24A23B80975B11F58F33CEE3FC0FF0015CD7C52321CD67241A2615297E9FEADEBBE1462794E404660C819F14018FEAB8B3F6FEB7F5D42B61FF08D1F1DDFF914E71DDD9EC3FDA03FEA8B546BADF63C31825CEE0262D2D7169D083047C16669BF0BD1D4B8B8465B9017C321191E1EF51F6D97A1673023C6447E549460A487A7B1FB7FB1359BF7A1FE24BFF563FFD2BE47BC88D408E79236B5381100FDFF001433635A37B9C19C7B9C606AE9D77152658CB41D8F6D81A4365A41D7E4A469F8BC8E6FF3C7FACEFCAABAECEFAAA753600C6C961321A3F75C7F82CEE9BF5568CEC0A728E43D86D125A1A081A96F8F928C64C7CB6288C92D2C8BAFDEE29BD063E7A3CC994F8782B863BF17E8FF00E82E761541FD2B2DE4EAD3A0F92D8FAB6437A53C3DDB03AC7092606A1AB32860C7C3EA34CC863DCC07898F62BBD2B13EDBD18D1BF645B3313C34259E309E29194B823C702655C540F5E162C59251CD96318F171CCFE186324CEE8373DAD6BB2CB98C10C041200FE4FBD64E4D3F67C8B299DDE998DD112BADA99E9D4CAE67634367E02160753E9F94722FC90D0699DDBA471F09567E15F13C9973CE1CC668F057EAF88431714F8BA7CBEA9399F17F8562C58233E5B0CB8F8BF59C27265E1C7C32DF8B8BD2E627EBBFF8A3CCF3B67F06264DD6C877D61C970EEF1FF52C52FC7FF9BC5E73FCA2C7FF0016FF00DD12F3C7FF004DB1D32B7BB2D8E6B4B9AC92E31A090EE56C66744AABC5B728B06EDA5F21CEE4899FDD59FD15E1A6E9EFB63FE92D2CBCDB5D8D656492DD8E0070385878E04E3891C3564CB885FF008AED7C479B31F88CA22538188C78E3EDC8C38BFCA7EB3FF0C79AD524B549557A57FFD3AFF595C5BD25F3A12FA87DDEE50FAA7071F21A34FD2FF00ABFD67C7E8D574EADD85926DC8758DDF59BCDA76ED7735EE2DF6B957FAB59B90CEA4315A47A3635D6384027706E8772AF8F30C99233008FD1D592780C3969C2C1D78DEA2D8353FF00E2DDFF0052F567EAE69D1717FAA7FEA9C875D3EB3BD1FA21E08DDCF62AEF4EC3FB0E1558BBFD4F4811BE22649771AF8A8FE25923C11C77EBE213AFEAD4A29F87822133DE42BE8F2991506B3AB348D5973C8F995A1F56BFE4F70FE5FF00DF5AADF57C1A9E1F4D01B55996097BFF0079DFBCF51E9581660639A9EF0F24CCB66388EEA497318E7C9C85D4E7C1C313D7825C326CF2F194B983203D31C8788F6BC01BAB9FC2C0CAC5C3CF764B366FAC6DD4198DC4FD125740ABF50FE8391FF16EFC8AA72C6B3E2FF690FF00A6DFE624472D9E3FBD8E5FF44BC99E10FAAC9EB971EDBFFEFAC443C21F52FF00962DFEB4FF00D1AD745F1EFE6B179CBFE8BCCFFC5BFF0074CBCF1FFD3753A209F5C7937FEFCB42E04E35DA7E63BF21547A2D76816590456E801DD8C6E957F305A71AC15EAEDA4011CC88591847EA47916FFC5643FD273208A12C7FF3630E279A494FD2B3D4F4B69F52636C6B292A147B787D5EBBDC87EF0DB8F7FD0FDFFEE7F59FFFD4E1AF8F51C477D56B7D5DFF00972B1E353FFEA1645A0FB4F8B41FC0233245F5B8123E8EA34EE15481A313D9BD923C509476E214FA5E26B92DF2064FC9682CEC420640F2933E508D87D5BA76758EAF12E16BD837380044098FCE0D55FE2209CA08068405FF008D26B725288C744806523C209D65A476619E01C9A3C44FE54E9B3DD1978EDF10EFC13A8CFC98FF00BA7FE949D0E4B7CDFED3FF0051C14ABF50FE8391FF0016EFC8AC285D536EA9F53A435E0B4C73051C3211CB091DA328C8F9464D8CD132C5388DE5194479CA2F1C543AA47EDBB63B6DFC58C5A3D5B02AC27D6DA8B9C1ED24EE8EC7C80543AB376F5BB879547EF635741F18CD0CDCAE0CB8EF82667C37A7F55E7BE05827839EC98B2571C0E3E2AD779713B9D2C39D815806012E0E3E527856AD8635AD1303C7C954E9449C0680620BBDDF39472D05FBB76E0443815431FF00371FEE847C43FDD9CC7FB59FFD372BFEF676EBF4E67E52925B5BFB6767E6EE88F2DA92ADFF00AB9DDB3FFC6C7FFFD5E1DFF419FD51F914ABE6AFECCFDEB01254874F3740BED589FD206EFDD77E459BF55FF61FDAEEFD9DF68F5BD3F7FAD11B7737E8ECFCEDCBC9D2439DF9A7F37C91DBE5F9A7F339BCBEF8BE5F9E7F37CFF2C3F9B7DCAEFE74A82F1049531B0F27A187CA3C83EDE92F104915CFA97D63FE769FEABBF2AC8EAF3FB77227FE0E3E1B1B0B84496CF31FF6B394FF00AA7FD271B93FFB73CC7F7B0FE517D57A3CFD87CF73A3F0568EE8311BBBF8AF2049458BF9B8F9069FC47FDD9CC7FB49FF00D27D1FF49FB63B4CFF00DF525E7092ADFF00AB9DBFFE65BFFFD9FFED15B850686F746F73686F7020332E30003842494D040400000000000F1C015A00031B25471C02000002A800003842494D042500000000001032C4B085E11CA1FA2154120320C140AD3842494D043A000000000093000000100000000100000000000B7072696E744F75747075740000000500000000436C7253656E756D00000000436C7253000000005247424300000000496E7465656E756D00000000496E746500000000436C726D000000004D70426C626F6F6C010000000F7072696E745369787465656E426974626F6F6C000000000B7072696E7465724E616D6554455854000000010000003842494D043B0000000001B200000010000000010000000000127072696E744F75747075744F7074696F6E7300000012000000004370746E626F6F6C0000000000436C6272626F6F6C00000000005267734D626F6F6C000000000043726E43626F6F6C0000000000436E7443626F6F6C00000000004C626C73626F6F6C00000000004E677476626F6F6C0000000000456D6C44626F6F6C0000000000496E7472626F6F6C000000000042636B674F626A630000000100000000000052474243000000030000000052642020646F7562406FE000000000000000000047726E20646F7562406FE0000000000000000000426C2020646F7562406FE000000000000000000042726454556E744623526C74000000000000000000000000426C6420556E744623526C7400000000000000000000000052736C74556E74462350786C40690000000000000000000A766563746F7244617461626F6F6C010000000050675073656E756D00000000506750730000000050675043000000004C656674556E744623526C74000000000000000000000000546F7020556E744623526C7400000000000000000000000053636C20556E74462350726340590000000000003842494D03ED00000000001000C800000001000200C80000000100023842494D042600000000000E000000000000000000003F8000003842494D040D0000000000040000001E3842494D04190000000000040000001E3842494D03F3000000000009000000000000000001003842494D040A00000000000100003842494D271000000000000A000100000000000000023842494D03F5000000000048002F66660001006C66660006000000000001002F6666000100A1999A0006000000000001003200000001005A00000006000000000001003500000001002D000000060000000000013842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D0408000000000010000000010000024000000240000000003842494D041E000000000004000000003842494D041A00000000033F000000060000000000000000000000640000006400000005004B006F006D005F00390000000100000000000000000000000000000000000000010000000000000000000000640000006400000000000000000000000000000000010000000000000000000000000000000000000010000000010000000000006E756C6C0000000200000006626F756E64734F626A6300000001000000000000526374310000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E670000006400000006736C69636573566C4C73000000014F626A6300000001000000000005736C6963650000001200000007736C69636549446C6F6E67000000000000000767726F757049446C6F6E6700000000000000066F726967696E656E756D0000000C45536C6963654F726967696E0000000D6175746F47656E6572617465640000000054797065656E756D0000000A45536C6963655479706500000000496D672000000006626F756E64734F626A6300000001000000000000526374310000000400000000546F70206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F6D6C6F6E670000006400000000526768746C6F6E67000000640000000375726C54455854000000010000000000006E756C6C54455854000000010000000000004D7367655445585400000001000000000006616C74546167544558540000000100000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C6C546578745445585400000001000000000009686F727A416C69676E656E756D0000000F45536C696365486F727A416C69676E0000000764656661756C740000000976657274416C69676E656E756D0000000F45536C69636556657274416C69676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D0000001145536C6963654247436F6C6F7254797065000000004E6F6E6500000009746F704F75747365746C6F6E67000000000000000A6C6566744F75747365746C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E67000000000000000B72696768744F75747365746C6F6E6700000000003842494D042800000000000C000000023FF00000000000003842494D0414000000000004000000013842494D040C000000000D900000000100000064000000640000012C0000753000000D7400180001FFD8FFED000C41646F62655F434D0001FFEE000E41646F626500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC00011080064006403012200021101031101FFDD00040007FFC4013F0000010501010101010100000000000000030001020405060708090A0B0100010501010101010100000000000000010002030405060708090A0B1000010401030204020507060805030C33010002110304211231054151611322718132061491A1B14223241552C16233347282D14307259253F0E1F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7B7C7D7E7F711000202010204040304050607070605350100021103213112044151617122130532819114A1B14223C152D1F0332462E1728292435315637334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F62737475767778797A7B7C7FFDA000C03010002110311003F005D2856EE9ED9682E976A403DFF00F522C6CD8FB5DF0368F51D03C352B5BA3F50C2CA2FC6C263D82B2092F8D7739A3C4FEEACACD0E3977388E6C719F892A9F331AC38C6F5A1AF276BE17332E7B9B26E227EB8C67BF0CA7C43FE931C576337331CE5C7D9C3C1B641236FF5423FD60B3A4BEDA7F6586066D3EA6C05BEE9D376EFE4ACFBB808454FC9E20610C9C52D38870DFA0FF7A2D8E707EBC9EC026A7E89F8A9A0D5B89DA0900F8223770796932009D557E6F1119272E21B71F0EB7C3F2B6F96CB78E028EFC17FD6F99924B73EAEF47C2EA62F1956BEAF4B66C153438B8BB77EF7F556766D35D1997D15CB99558E634B84121A76FB959E5FE113CE018E5802631C86244BD2320E28B97CDFFC63C3CB4E709E1C92E09CB17144C3D52C67865FA48B104E5D23C6C6FE50A9E488EB7903BFAD7CFF009CE57B1CC65527C1EDFF00AA0A9E7003EB06481FE9AFFF00AA2ABF31CB4B979E4C32224615AC76F5438D971F3B0E73EE7CC422611C8655197CDE8CBEDFE8FF0075224921D7918F6BDCCAEC6BDCDFA4D0751D954A3F63B06401009009D877F2489274904BFFD026074EC4C1739D8ECDAEB60BC924FD1DEEFCE43EB608C164FEF8FC8E575EE871F6F8F047F2D54EAF0EC30C71D8038193AEBAFEECB937357B53034D0F82B90C84F3B86533291E38EBEA9C9E6AEE022F4DB716BBEC39403AB7517B1B237458EAAC650EFEB36ED9EE4F6D3498DD7B5BF10EFF00C8A87D9F1FFEE4B3FCD7FF00E413B93FE6220FF5B6FEF3BDCE648CB24C7AC5803E4983F2FF00758F4BC470E836DD92D9C9ADFB438BA4C123CFF75C9A9E4AD1A2BA8746C968B5AEF783BC0303E8788DCA9534D727F4CCFB9DFF009043991FA8C83CB7FF000583E1D9447348133908CC81E99CBD3EDC7FAA9AB7BD801638B4F88247E4573A4B70ECCD1F6E737D1DAE2E2F24027B7B9566D4CDA3F4CCFF00A5FF00904BD367FA567FD2FF00C8ADBE5C09F238F1F14A0658630E380971C7D1F3424F25F10C95F12E632509C467C92E19FCA7F59B4A2D9EA5F63AFAA0385B7D069616ED3227DBBB5599D574FACD96383EB5DA7C5D2AC7A6DDEDFD2363C7DDFF009140EA403BEB2E56E76D9BEC9719D353FBAB9FE7E1C39F2C388CF8638E1C73F9E5C387878A7C4F4FF0DC825CAF233E1E1F5E6918C47A63C5CCF1543F7BFC05C72A96174D1897DB70B37FABDA2235DDE2B4FD0A7FD3B3EE7FFE41234D007F3ED3E41AEFFC8AA03880201152DF58BBB29619CA139466658C9303EDE6F4F16FFA281247F471FF00EE437FCD77FE4524384F87F8D164F7A3DA7FF85E5FFBC7FFD1B65AC93034D48FFA70AA66E562DD38B45EC193BF6ED74F2396FD172B8276813C8FCA0FB7FE92A0DE875373C660B9C5DEA1B3610235331B93A510411DFB34E19278E719C044989BF58E28FF008AE2DD957B481ED275E5AD3F95A8432EC1F9B59F8D6DFF00C8A59421F1E04A0A1CA0BC11BD7E6DFF00BCF55CCE2C7EECAA111B6C3FAAEB62DA1FD2F2AE755592C70F686C34FD1E5AD8541B955833F6766BFBA5C3FEFC8F8907A7E50718E23E202AB4D1658E10C73993048048FBC296308CC989028C80D7E56862E1C72E6243887B72E2F4194655ED465E9E12DDAECC7730135113AE8FFEF6B94BF553DAC69F8B4FF06A36474BBF13071B2DE5BE96503E900497003F7F45516E60C7118E318C8FA0087A652E1E287A255C4F23CD4CCB3E599040C929648F18F5F0643C70E2FEB3278A24439C35EED1FF009240EA801FAC9987806E7FE24A23B80975B11F58F33CEE3FC0FF0015CD7C52321CD67241A2615297E9FEADEBBE1462794E404660C819F14018FEAB8B3F6FEB7F5D42B61FF08D1F1DDFF914E71DDD9EC3FDA03FEA8B546BADF63C31825CEE0262D2D7169D083047C16669BF0BD1D4B8B8465B9017C321191E1EF51F6D97A1673023C6447E549460A487A7B1FB7FB1359BF7A1FE24BFF563FFD2BE47BC88D408E79236B5381100FDFF001433635A37B9C19C7B9C606AE9D77152658CB41D8F6D81A4365A41D7E4A469F8BC8E6FF3C7FACEFCAABAECEFAAA753600C6C961321A3F75C7F82CEE9BF5568CEC0A728E43D86D125A1A081A96F8F928C64C7CB6288C92D2C8BAFDEE29BD063E7A3CC994F8782B863BF17E8FF00E82E761541FD2B2DE4EAD3A0F92D8FAB6437A53C3DDB03AC7092606A1AB32860C7C3EA34CC863DCC07898F62BBD2B13EDBD18D1BF645B3313C34259E309E29194B823C702655C540F5E162C59251CD96318F171CCFE186324CEE8373DAD6BB2CB98C10C041200FE4FBD64E4D3F67C8B299DDE9
)
Hex2 =
(
98DD112BADA99E9D4CAE67634367E02160753E9F94722FC90D0699DDBA471F09567E15F13C9973CE1CC668F057EAF88431714F8BA7CBEA9399F17F8562C58233E5B0CB8F8BF59C27265E1C7C32DF8B8BD2E627EBBFF8A3CCF3B67F06264DD6C877D61C970EEF1FF52C52FC7FF9BC5E73FCA2C7FF0016FF00DD12F3C7FF004DB1D32B7BB2D8E6B4B9AC92E31A090EE56C66744AABC5B728B06EDA5F21CEE4899FDD59FD15E1A6E9EFB63FE92D2CBCDB5D8D656492DD8E0070385878E04E3891C3564CB885FF008AED7C479B31F88CA22538188C78E3EDC8C38BFCA7EB3FF0C79AD524B549557A57FFD3AFF595C5BD25F3A12FA87DDEE50FAA7071F21A34FD2FF00ABFD67C7E8D574EADD85926DC8758DDF59BCDA76ED7735EE2DF6B957FAB59B90CEA4315A47A3635D6384027706E8772AF8F30C99233008FD1D592780C3969C2C1D78DEA2D8353FF00E2DDFF0052F567EAE69D1717FAA7FEA9C875D3EB3BD1FA21E08DDCF62AEF4EC3FB0E1558BBFD4F4811BE22649771AF8A8FE25923C11C77EBE213AFEAD4A29F87822133DE42BE8F2991506B3AB348D5973C8F995A1F56BFE4F70FE5FF00DF5AADF57C1A9E1F4D01B55996097BFF0079DFBCF51E9581660639A9EF0F24CCB66388EEA497318E7C9C85D4E7C1C313D7825C326CF2F194B983203D31C8788F6BC01BAB9FC2C0CAC5C3CF764B366FAC6DD4198DC4FD125740ABF50FE8391FF16EFC8AA72C6B3E2FF690FF00A6DFE624472D9E3FBD8E5FF44BC99E10FAAC9EB971EDBFFEFAC443C21F52FF00962DFEB4FF00D1AD745F1EFE6B179CBFE8BCCFFC5BFF0074CBCF1FFD3753A209F5C7937FEFCB42E04E35DA7E63BF21547A2D76816590456E801DD8C6E957F305A71AC15EAEDA4011CC88591847EA47916FFC5643FD273208A12C7FF3630E279A494FD2B3D4F4B69F52636C6B292A147B787D5EBBDC87EF0DB8F7FD0FDFFEE7F59FFFD4E1AF8F51C477D56B7D5DFF00972B1E353FFEA1645A0FB4F8B41FC0233245F5B8123E8EA34EE15481A313D9BD923C509476E214FA5E26B92DF2064FC9682CEC420640F2933E508D87D5BA76758EAF12E16BD837380044098FCE0D55FE2209CA08068405FF008D26B725288C744806523C209D65A476619E01C9A3C44FE54E9B3DD1978EDF10EFC13A8CFC98FF00BA7FE949D0E4B7CDFED3FF0051C14ABF50FE8391FF0016EFC8AC285D536EA9F53A435E0B4C73051C3211CB091DA328C8F9464D8CD132C5388DE5194479CA2F1C543AA47EDBB63B6DFC58C5A3D5B02AC27D6DA8B9C1ED24EE8EC7C80543AB376F5BB879547EF635741F18CD0CDCAE0CB8EF82667C37A7F55E7BE05827839EC98B2571C0E3E2AD779713B9D2C39D815806012E0E3E527856AD8635AD1303C7C954E9449C0680620BBDDF39472D05FBB76E0443815431FF00371FEE847C43FDD9CC7FB59FFD372BFEF676EBF4E67E52925B5BFB6767E6EE88F2DA92ADFF00AB9DDB3FFC6C7FFFD5E1DFF419FD51F914ABE6AFECCFDEB01254874F3740BED589FD206EFDD77E459BF55FF61FDAEEFD9DF68F5BD3F7FAD11B7737E8ECFCEDCBC9D2439DF9A7F37C91DBE5F9A7F339BCBEF8BE5F9E7F37CFF2C3F9B7DCAEFE74A82F1049531B0F27A187CA3C83EDE92F104915CFA97D63FE769FEABBF2AC8EAF3FB77227FE0E3E1B1B0B84496CF31FF6B394FF00AA7FD271B93FFB73CC7F7B0FE517D57A3CFD87CF73A3F0568EE8311BBBF8AF2049458BF9B8F9069FC47FDD9CC7FB49FF00D27D1FF49FB63B4CFF00DF525E7092ADFF00AB9DBFFE65BFFFD93842494D042100000000005500000001010000000F00410064006F00620065002000500068006F0074006F00730068006F00700000001300410064006F00620065002000500068006F0074006F00730068006F0070002000430053003500000001003842494D04060000000000070004000000010100FFE10DF0687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487A7265537A4E54637A6B633964223F3E203C783A786D706D65746120786D6C6E733A783D2261646F62653A6E733A6D6574612F2220783A786D70746B3D2241646F626520584D5020436F726520352E302D633036302036312E3133343737372C20323031302F30322F31322D31373A33323A30302020202020202020223E203C7264663A52444620786D6C6E733A7264663D22687474703A2F2F7777772E77332E6F72672F313939392F30322F32322D7264662D73796E7461782D6E7323223E203C7264663A4465736372697074696F6E207264663A61626F75743D222220786D6C6E733A786D704D4D3D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F6D6D2F2220786D6C6E733A73744576743D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F73547970652F5265736F757263654576656E74232220786D6C6E733A64633D22687474703A2F2F7075726C2E6F72672F64632F656C656D656E74732F312E312F2220786D6C6E733A70686F746F73686F703D22687474703A2F2F6E732E61646F62652E636F6D2F70686F746F73686F702F312E302F2220786D6C6E733A786D703D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F2220786D6C6E733A786D705269676874733D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F7269676874732F2220786D704D4D3A446F63756D656E7449443D2243443445384330393239463534463439454244433032434533383137443844302220786D704D4D3A496E7374616E636549443D22786D702E6969643A44373531443444383242443945333131383330373944343234374437383645302220786D704D4D3A4F726967696E616C446F63756D656E7449443D224344344538433039323946353446343945424443303243453338313744384430222064633A666F726D61743D22696D6167652F6A706567222070686F746F73686F703A436F6C6F724D6F64653D2233222070686F746F73686F703A49434350726F66696C653D22322E30362F4435302F5032322D4542552220786D703A437265617465446174653D22323030372D30322D32385430343A35313A31302B30343A30302220786D703A4D6F64696679446174653D22323031342D30352D31315432303A34363A34392B30343A30302220786D703A4D65746164617461446174653D22323031342D30352D31315432303A34363A34392B30343A30302220786D705269676874733A4D61726B65643D2246616C7365223E203C786D704D4D3A486973746F72793E203C7264663A5365713E203C7264663A6C692073744576743A616374696F6E3D227361766564222073744576743A696E7374616E636549443D22786D702E6969643A4436353144344438324244394533313138333037394434323437443738364530222073744576743A7768656E3D22323031342D30352D31315432303A34363A34392B30343A3030222073744576743A736F6674776172654167656E743D2241646F62652050686F746F73686F70204353352057696E646F7773222073744576743A6368616E6765643D222F222F3E203C7264663A6C692073744576743A616374696F6E3D227361766564222073744576743A696E7374616E636549443D22786D702E6969643A4437353144344438324244394533313138333037394434323437443738364530222073744576743A7768656E3D22323031342D30352D31315432303A34363A34392B30343A3030222073744576743A736F6674776172654167656E743D2241646F62652050686F746F73686F70204353352057696E646F7773222073744576743A6368616E6765643D222F222F3E203C2F7264663A5365713E203C2F786D704D4D3A486973746F72793E203C2F7264663A4465736372697074696F6E3E203C2F7264663A5244463E203C2F783A786D706D6574613E2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020203C3F787061636B657420656E643D2277223F3EFFE202304943435F50524F46494C450001010000022041444245021000006D6E74725247422058595A2007CE00020016000F00330029616373704150504C000000006E6F6E65000000000000000000000000000000000000F6D6000100000000D32D4144424500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A63707274000000FC0000002464657363000001200000006C777470740000018C00000014626B7074000001A00000001472545243000001B40000000E67545243000001C40000000E62545243000001D40000000E7258595A000001E4000000146758595A000001F8000000146258595A0000020C00000014746578740000000028632920313939382041646F62652053797374656D7320496E632E00646573630000000000000011322E30362F4435302F5032322D454255000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058595A20000000000000F6DC000100000000D33A58595A2000000000000000000000000000000000637572760000000000000001020F0000637572760000000000000001020F0000637572760000000000000001020F000058595A200000000000007C920000433C000005EE58595A2000000000000051EC0000A8B80000056058595A2000000000000028580000140B0000C7DFFFEE000E41646F626500640000000001FFDB0084000604040405040605050609060506090B080606080B0C0A0A0B0A0A0C100C0C0C0C0C0C100C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C010707070D0C0D18101018140E0E0E14140E0E0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC00011080064006403011100021101031101FFDD0004000DFFC401A20000000701010101010000000000000000040503020601000708090A0B0100020203010101010100000000000000010002030405060708090A0B1000020103030204020607030402060273010203110400052112314151061361227181143291A10715B14223C152D1E1331662F0247282F12543345392A2B26373C235442793A3B33617546474C3D2E2082683090A181984944546A4B456D355281AF2E3F3C4D4E4F465758595A5B5C5D5E5F566768696A6B6C6D6E6F637475767778797A7B7C7D7E7F738485868788898A8B8C8D8E8F82939495969798999A9B9C9D9E9F92A3A4A5A6A7A8A9AAABACADAEAFA110002020102030505040506040803036D0100021103042112314105511361220671819132A1B1F014C1D1E1234215526272F1332434438216925325A263B2C20773D235E2448317549308090A18192636451A2764745537F2A3B3C32829D3E3F38494A4B4C4D4E4F465758595A5B5C5D5E5F5465666768696A6B6C6D6E6F6475767778797A7B7C7D7E7F738485868788898A8B8C8D8E8F839495969798999A9B9C9D9E9F92A3A4A5A6A7A8A9AAABACADAEAFAFFDA000C03010002110311003F0005E488EDDFCAD0F2895A40F20E4CAA7F688EA47FC5998FA1883886CEDBDABCB38EBA604A4070C3F88FF31E7FE610A35DD442AF051732D13A50733B669F37D72F797D2BB2CDE97113FEA70FF721BF2EBE991EBB62FAA053A72CCA6EC3A965318EB5515273274719913E0FAF83D2E1F6E93E1003F9DFA13AFCC29FCA12DDD91F2CA42B0089BEB3E8A327C65B6E4180FD9CD9F6647388CBC6BBBF4F13CC63E2EAC4C74CC3ED6FEF07F55EA7B17FBA3FD6FD0DE6A9DCBB15762A8DD10575AB01E37308FF009283250E61A7527F772FEACBEE50D7D78F9AB5153D7EB7775FF91A732F3F23EF78BEC03FE110FEA4BFDCA8E613DD3B15762AFF00FFD02FF256BDA15F89B4BD1609E18ED9C3334F4DFD5914506EDD38E4700881C31E41BFB6239E7319731899E4F4FA3FA0C1BCCA92FE9DD42465215AE243C883424B139A3D48FDE4BDEFA97626407478B7DFC38FDC95E6C7B207AA5EE6AEDA3E98FBCB47A66F5E75B1981AF8C0438CC44A41D8F66CB24A631C646113FCD7669F3881C42623C04C8C5DE69CCE39A50948CC08C65EA7A47E577927CBFE64B5BB3AADC4B6ED6E63102DBC6923C8642C08F8BF978E6FF411C30D24252C78F2CA729FAA7FD17CEFDA5D76ABF94278F1E6CB8610862F46397A7D7149F58D1F4EB2D5AF6CE18F9C36D3C9146F2280E551880580D83674D83B334B38097858FD438BE978DCDED076846463E3E6F49FE7A5E22861D5B4B68D027FA4C64D053A3AE737ED2E9316138FC38C61C465F4FF009AF71EC57696A3530D40CD927978611E1F125C5C3C5E2255E6A555F3A6ACA3A0BCBBA7FC8E39CF67E47DEEC3B00FEFE1FD53FEE109982F7CA515D5B4CED1C52ABBA7DB553523B6F964B1CA22C87170EB70E5918C2519CA3F5463FC2AB95B94FF00FFD17683E5BD1F469647D3E131C973C5A662CCC4F02EDD189C9C6007270F3EB7266004CD88A5DF98A84796E224749A3DFF00D8B0CC3ED1FEEFE2F49EC5FF008EFF00C9397FBD798F6C8763F397C1EEBB6CED1F8A6DE59BAD2ADAFEE1F53457B77B1BE8A30EBCC0B896D644B7602868CB314E2DFB1F6B3753048D9E5B55199C6443EA51F2DE91FF003A1DDDE5F47CB5082608B2B316600B2EDB1A1D9B2917C4017578B3E6C7A8C78C922E32E2FF006497E6BBB5C011881DE5EEBB149329126F68B22D1A5963B28DA3768CD4EEA4A9EBED9D7FB39107451BEF9FFBA7CABDB791FE54C95FCDC7FF004CC320F2BA69336B2A75974167C1DA43331019E9F0D586F5AE5FDB53D4474C7F2E25E2F147E8FE6FF13A0ECD8E2966FDF11C147EA40F9CFF0044C3E67B63A4F0FA8A49118CC6C596A3896A124F7CE43B525A83A6C2751C5E37164E2E3F4CBEA8F0BE93EC6C7178BA918ABC3E0C5F4FBB231CF3B0A7E606B40EC7EB97469F396BFC7357A8E52F7B95D81FDFE3FEA9FF0072970EA3301F414BF4FD256CAE679C4A64F5ABB114A7C55F1CCACDA9E388155C2E8BB2FB17F29967938F8FC5FE8F0FF171F7A6198AEF5FFFD23495F8C86B19A7C7401878B8FD796711EE7504A47E7A58E5D016199C5BC62443EA302C2BBEDF0D5B7AE61EBB7C7BFA777A7F64F2E486AEE10394F872F489461FCDFE7BCE45869F5DF528947898E6FF009A721D95B1957AB93D8F6C6AF3111BC338F3FE3C5FEF66DFE8ED3EB4FD2900DF6AC737FCD19B9E23DCE8CEA327FA9CFF00D363FF008A641636D6ABE49D4E25BB8A4067426650E02FD8D882A1BEE5CA6523C6367519F2CBF398CF04AF84FA7D3FD2FE970B1D4B0B46343A840BEE44BFF3466076AFAA31BF4FF59EC3B235992329562C93D87D2717FBEC89EE9D630259A28BD8580A90C3D4EE7DD73A9EC2C9286922042531EAF5478787EAFE94A2F9A7B5B93C5ED1C9223C23E8FDDCFEB8FEEE3FCCE38FFB25716D17FCB4C43FE0FF00E69CDC7E625FEA73FF0061FF0016F35C23BC20351B589A7B606EE1401AA09E7BEE36145CE4BDA8999F8760E3FABEBFF37F99C4FA2FB059658C673184F371787FDDF0FA3EBFABC496340F9B1126FCC2D5C4B28855AF6E034AC090A399EA14139CEE7177EF76DD919250CB03189C9203E88D7ABD3FD3F4ADFD17A6FF00D5DA0A569F626FBFEC6627047F9C3FD93D78ED0D47FCA3E5FF004F83FEAA3474ED240AFE958C9F058A6FE2A31E08FF003BEF65F9DD4FFA84FF00E5661FF8B77E8ED27FEAEB1FFC899BFE69C7823FCEFB0A7F39A8FF005097FCACC3FF0014FF00FFD33078E2A9A2800F229EC3E3A7E1967087504049BCC1A8D8DF46DA669D7F0A6A7EB04549397553465DD585728D462328D479BB3EC6D6E9B067E2CC0CE1C328F0C3EAE2FF004D0FF74F3C9359D49242AED1B32123E28623D36EEB94F65DCB8AFA53E85DADD9B8222062251E2BFF002997CBFA6B1758BA1D62B76AFF0035BC47FE35CDBF863CFE6E9CE8A1DF3FF9593FF8A645A55E2CDE54D5EEDED6DD9E174FDD88F821078F55523289C3D61D36AB4FC3ABC404A7EA07D5C5C52EBF4F131D1A9599279E9B0107B234A9FA9CE1CDA58E4FAB7A77D84E7C37E1E59C6FCB1CFF00DE27DA7CFA7B59C64DA32022A02CA76DCFF329CE8FB330648E0888C808EFE9943FA47FA4F9DFB41332D6E4333E24FD3C53FA38BF771FE1FA51
)
Hex3 =
(
04E987F66743F346FE0B99F59C7FA99FF4D1FF008A74DE9F34B3565D3BD58099A54A1257F76ADDC75A30CE43DA832271F8951FAB8783D5FCDFE770BE91EC09CA2398E28C720FDDF1F1CFC2FE7FD3E8C9FEF507E7048DBCFDAD176F4D1AF26AB52B4AB1ED9CFEA2B7769D8D2947340C4711FE6DF0F492156CAD9CD12F621FEB8917FE353987C03BC3DA9D6651CF164FF34E29FF00D3C543A3CBFEEBB8B690F82CC80FFC315C7C33DE3E6C7F95203EA86687FC929FFD3BE35BFA1F50A5782D3F9BD44A7DFCA98F8525FE57D3D7D47FD264E2FF004BC1C4FF00FFD43250C2351507901ED4E484F1FF0086CB9D42431F922D63D797565BB90B99DA73132AD3E224D2BF4E34D5E0012E2B799DE0A5D4C3C1D87E3983D93CE7F8EF7D9BB577863FEAFF00C4A89CDCBA54FF0046087CB5ABAB9205015153BB0151B663653FBC8BA3D79AD5E14AAC2C679E68E90C92425A8ECAAC47BEE0666E03039231911B9EF73FB4324E1827287D7189E1FE266B7BE57BCD2F43D335291A3FAA6A4AC6D514B17017F9AA29F8E745A6CD8F8A586008F09F36D60CB92B3E4224737FBD4AF331C04BF5582695E131A170B5AD057B8CE47DA7D1E6CD2C671C6531112BE11EE7D27D82ED2D369B1E619B243119CA1C3E24B878BD325DF980B4F3EEB640A56E9C9DA9D687F8E729A8EAEE7B0CFEFF001FE3BD29B4B4B8BB9D60B74F5267AF15040AD057BD330A3124D07BBD4EA71E081C990F0423CE4A72C524523C520E32212AEBE041A11808A6C84C4E22513E990E28B5438B3A2FFFD53761FBF65E3F1282B507624715AE5CEA4F35EAB42AA7A02371DC35715E8F10D4A8350B9FF8CAFF00F123987D95CE7EFF00F8A7D77B4BFBAC5FD4FF007B1431CDBBA864BA1DAA49E52D66527E38C8E23C7E115CC6C83F791743AFFF001CC2CC3F2D888FCAB2899C44924F200CC428A32281D4E69BB56121A889ABF4C67FE6F13BFC5921384803C89C72FE8CE955BC97772C51A49A9992289690A9566555FF002416A01F2CDFFF00A2F8024F83BFF5BFE38F23FE83A6451CDB7F53FE3EC6350B4FAA5ECF6BCB9FA2E539D295A77A6759A2D4F8F86392B87C48F170BC8EB74DE066962BE2F0E5C3C4A03A8F9E64B8C84FCC3FF94F75BAEF5B927E8E299E51ABE727D77B03FBEC7F8E8EF25DADC49AEC33471178A1E5EABD0955E48D4E4728D2C499877FED6668474338488139D7047F8A7C338F170B3BD6FC81A6C5A55EEA6F6F1997D279B92C9213C9816E54E9D70F8D86723100F17A9E5743DA5DA1038C1C83C2E2C70E1A8FF77C518FF37F9AF26A1CC57D45FFD633373146BEB4AEB10A0F8DC85156909152C77E996DBAA0093B735F05CC174A4C32C73221085A360D46F98C410792251239850BFB3B47B2BA0B0C619A163508B5AFA6C49E9D6A30C401C9C9C59F219C6E523BC7F88B1BF2C7E53D8EB5A0D8EA6DA94B03DD21668963560A4315A0248F0CD5EAFB6658B2CA1C20F0F9BDACF3106A927B08458687E64B4E65961964851C8A7229F06FF31DB36427C4607F9C389D46BB7D5E1FC754EBCAFA41D5FC98B6625F47F7E1F995E5D146D4A8F1C3AFD6FE5B538F25717EE387FD949CAD160F1A39A375FE112FF73066D6B0FA16B0C15AFA48A95E95E200AE72997271CCCBF9D232FF004CEFE11E1881DC184F98B43D47EBD7D7EB18369C8C9EA075FB341DAB5CF43EC3ED7D3F838B0717EF6B8387865F57F5BE97CE7B77B1F53E365CFC3FB9BE3E2E28FD3FD5FA98F9D8573A7796417E6032C9E79D55C1146946C37FD8419E53AC15297BDF5CF67CFEF717E3A273F975308FEBE1BF6BD2A77DFE2C8688F36CF6ECFF0073FF00253FDE32FD6359BB934ABAB766678CC0E02EC16810D32E3A7C71B901EADDE4743AAC92CF8E24FA7C4C7FEEE2F1DDE9F466A9F70B2FFFD729FCC9768FCAB286D8B4D6AA7DC81CAB91D47D0E3F677F7C3DDFA14BF29E874FBF41F0FF00A4835F9A8FE995E8FE92E476B7D71F77E966175C4D9CF426A607A7FC8B7CCC7578BEA1EF08FF00CB5A8F24E95FEA3FFC9D6CE4BB57FC627F8FE17B7CBF5179CDFDAA476FE708981E50DE4A54D3B16AE74DA7371C67FA1175BABFF1BC27C9907E5B9FF9D7A9E127EB55CC7F68C7AF17FC247FBA93B1EC63EACFFF000F97FB9832AEC739E776F3BF2DF97758D2F4AD7E4D4A0308B8857D1AB2B5789627EC934EA3371D9531F9CC55FEA81A7DA6CB19E8B2089FE0924EDF64FCB3D583E2652BF39D5BCDF7EC0D4196A4FF00B14CF2AD77D73FEB3EB7ECF7F798BF1FC2C8BF2E28DFA457B911537A776CAF43D5BBDBC1B61FF929FEF1965F2B9D2EF895FF0074CB407D90F4CCD9FD27DCF0FD9DFE338FFE190FF761E3D534CD1BEF3D5FFFD08A7E65E9FE4DB5F2F5BC9A3EA6D73A83CF199A06BD6B822328C4D632C54716E3BF1CD0E9B36694AA7F4BB8F0E2370002977E5AEB37F0F98C69B1B01673C724F2A1505BD444D8F2EBE19B4D2C8DD381DA78C18F17F145EB3059FD69CDA54A2CC1D4484569F01ED976AB51E140CEAE9D4E970F899046E93AF2DE8BFA1344B5D2C4DF5816C18094AF1AF262DD2A7C7394D567F1B219D70F13D74E566D20F38685692C771676491DADC6AAAEF3CD434792A0727EE736DD9BAA94604C8F1471FD2EB33EFABC210DE55D0A7D1B4F6B59A54958B06E48081B281DF2CED5ED08EA4C0C418F870E0F57BDDEF67E8A5825909225E364F17FABB2739AA76481D745745BEFF8C2FF00AB363D8E7FC2F17FC322EB3B647F81E5FF0085C9E62DF64FCB3D743E4052CF36EFE67BEDA84B834F9A479E57DA1FDE4FFAC5F5BF673FBCC3EEFF007AC9BF2EACEF234BAB831B2DB4C102C846CDC4B06A7C8E434513B9E8BEDCEA31C8E3C608E3C7C5C70FE6F188F0B2AD652E9F4CB9582AD27A6CAA806EDC96941999901E12F13A2988E78489A119C3FDD3C8FEA17BF5BFA97A2DF5BE5C3D1A7C5CBC299A4E037C35BBEE9F9DC5E178DC43C1AE2F13F8387F9CFF00FFD1E15794F5DC8FDADF6F1EB9AD8F27772659F9782BE75B704D2B6D29A8FF008C35FE19769BEA703B487EE8FC1EE1A4EFA8C5E20354F8FC38F6A7F707E1F7BACECEFEFC7C7EE6459CA3D3243E6000EA363BD080D4F03F10CD9E8FFBA9B81905EB30FBD6652F5AEC5503AE7FC71AFBFE30BFEACD87647F8DE2FF008645D6F6BFF8A65FF85C9E62DF64FCB3D783E3E9779C80FF00165F71E8047FF0D1A1FE19E57DA1FDE4FF00AF27D6BD9BFEF317F57FDEB3CF24ACB27962D114F152F2076E878F36E993D2FF00761D2FB5DFF1A13F743FDC04EEE4AC5146895E2BB9AF5A01E27DF324BCCBCFF89FF9585C6A7FBEAD7BFF00755CD6D7EFFE2FA6F89FEB0FFC92FF00A78FFFD2E1170ADF0378A29FF8519AD8BBA28B88B2DEC0E8C5768C725343D40EB8C4A262C3E91D25C2EA0809D807624F805EB9776A7F707E1FEE9E7FB3BFBE1F1FB91DA3F9AFCBDACCF241A65EADCCD127A8EAAAE28B502BF128EE739AC9A79C05C853BCC1ADC594D425C4421F5F929AA58C7FCCAE7EE3999A43FB99FC1891FE198BFCE59953D53B1552BAB64B9B696DE42424CA518AF5A1F0CBB4F9E587247247EA81E268D4E08E6C72C72FA72478580F99F46B6D2E6863B76765963666E64135069B500CF4AEC0ED4C9AC84A5311061211F47B9F33F683B2B1E8E718E332227132F5FBD8CF9D6329E6DD414FF25B91F4C2A7389ED0FEF27FD693DE7B35FDE62F77FBD2CDBC8E59BCB300078157968FE14724D3EFC9E90FEEC3A5F6B87FAE13FEAC3FDC26AC81A6F53D50EA578B835A81F2197BCC0611E9A7FCAC2F4A87D3F5294AF6F47302BF7EFA4FFCE83FCCFF00A7CFFFD3E19353D386BFC8BFF11CD68E65DD2A414E56FF0024E5FF0004311CD0793E92D269FA4179FF00BEDEB4F0E03A65FDA7FDC1FF0037FDD3CFF67FF7C3DD2FB98FFE58FF00827F4ADDFE81FAF7D6FD0FDF7D6F870F4F9AFD9E1FB5CA99A6D778BC238F86AFF85C8EC9FCBF19F0B8F8B87F8D96DFFF00BD727CC53EECC6C7F4BDA69AB8021F26E43B15762AC2FCFD4FACDA78FA4FFF0012CEF7D8EBF0B27F5E3FEE5F3FF6CFFBDC7FD497FBA617E78E7FE30D4F957FDD14AF5E3E8AD3F0CE6B5DF5CBFAD27AAF673FBDC7EEFF007A599F906BFE1A5EBCBD49787DE2B96693FBB74FED87F8FCBFA90FF729EB7A946E3C79F7A52B4A664BCB301FDF7FCAC1EDCF9FD1FDD7F4CD77F96FC773E91BFF00207F99FF004F9FFFD9
)
Hex := Hex1 . Hex2 . Hex3
pToken := GdipStartup()
pBitmap := GetBitmapFromHex(hex, hBitmap)
GdipGetImageDimensions(pBitmap, Width, Height)
SS_BITMAP := 0xE, STM_SETIMAGE := 0x172, IMAGE_BITMAP := 0
Gui, Margin, 0, 0
Gui, Add, Text, hWndPic w%Width% h%Height% +%SS_BITMAP%
PostMessage, STM_SETIMAGE, IMAGE_BITMAP, hBitmap,, ahk_id %Pic%
Gui, Show
DllCall("gdiplus\GdipDisposeImage", "ptr", pBitmap)
DllCall("DeleteObject", "ptr", hBitmap)
GdipShutdown(pToken)
Return
GuiClose:
GuiEscape:
ExitApp
Hex2Bin(ByRef buff, hex)
{
VarSetCapacity(buff, len := StrLen(hex)//2)
Loop % len
NumPut("0x" . SubStr(hex, 1 + (A_Index - 1)*2, 2), buff, A_Index - 1, "UChar")
}
GetBitmapFromHex(hex, ByRef hBitmap)
{
Hex2Bin(buff, hex)
nSize := StrLen(hex)//2
pStream := DllCall("Shlwapi\SHCreateMemStream", Ptr, &buff, UInt, nSize, Ptr)
DllCall("gdiplus\GdipCreateBitmapFromStream", Ptr, pStream, PtrP, pBitmap)
ObjRelease(pStream)
DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", "ptr", pBitmap, "ptr*", hBitmap, "uint", 0xffffffff)
Return pBitmap
}
GdipGetImageDimensions(pBitmap, ByRef Width, ByRef Height)
{
DllCall("gdiplus\GdipGetImageWidth", "ptr", pBitmap, "uint*", Width)
DllCall("gdiplus\GdipGetImageHeight", "ptr", pBitmap, "uint*", Height)
}
GdipStartup()
{
if !DllCall("GetModuleHandle", "str", "gdiplus", "ptr")
DllCall("LoadLibrary", "str", "gdiplus")
VarSetCapacity(si, A_PtrSize = 8 ? 24 : 16, 0), si := Chr(1)
DllCall("gdiplus\GdiplusStartup", "uptr*", pToken, "ptr", &si, "ptr", 0)
return pToken
}
GdipShutdown(pToken)
{
DllCall("gdiplus\GdiplusShutdown", "uptr", pToken)
if hModule := DllCall("GetModuleHandle", "str", "gdiplus", "ptr")
DllCall("FreeLibrary", "ptr", hModule)
return 0
}
Чтобы была понятна механика:
FilePath := A_Desktop . "\Kom_9.jpg" ; указать путь к файлу (допустимые форматы jpg, png, tiff, bmp, gif)
SetBatchLines, -1
File := FileOpen(FilePath, "r")
File.Seek(0)
File.RawRead(buff, len := File.Length)
File.Close()
hex := Bin2Hex(&buff, len)
; создаём в буфере обмена корректные переменные, не превышающие максимальной длины
Clipboard := tail := ""
Loop
Clipboard .= "Hex" . A_Index . " = `r`n(`r`n" . str := SubStr(hex, 16000*(A_Index - 1) + 1, 16000) . "`r`n)`r`n`r`n"
, tail .= (A_Index = 1 ? "" : " . ") . "Hex" . A_Index
until StrLen(str) < 16000
Clipboard .= "Hex := " . tail
; теперь текстовые данные из буфера обмена можно заносить в скрипт
Hex2Bin(Data, hex)
SplitPath, FilePath,,, ext
File := FileOpen(A_Desktop . "\Test." . ext, "w")
File.Seek(0)
File.RawWrite(Data, StrLen(hex)//2)
File.Close()
Bin2Hex(pData, len)
{
PrevFormat := A_FormatInteger
SetFormat, IntegerFast, H
Loop % len
h .= SubStr("0" . SubStr(NumGet(pData+0, A_Index - 1, "UChar"), 3), -1)
SetFormat, IntegerFast, % PrevFormat
Return h
}
Hex2Bin(ByRef buff, hex)
{
VarSetCapacity(buff, len := StrLen(hex)//2)
Loop % len
NumPut("0x" . SubStr(hex, 1 + (A_Index - 1)*2, 2), buff, A_Index - 1, "UChar")
}
Разработка AHK-скриптов:
e-mail
dfiveg@mail.ruTelegram
jollycoder