Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Convidad em Ter 14 Set 2010, 22:59

Iaew moçada! Seguinte: eu consegui criar um suporte legal pra gente usar paleta de cores no GM. Funciona na moral e sem dll! Até então eu não achei nada parecido no Game Maker ainda, então aproveitem aí. Pra quem ainda não sabe trabalhar com paletas de cores, pode ir se preparando porque um mundo novo na organização interna do seu jogo vai se abrir na sua frente quando você aprender a usar.

Obs: Se vc estiver com preguiça ou dificuldade de baixar o exemplo no rodapé da página, baixa esse programinha que eu fiz, executa ele, e depois copia o que tá nesse spoiller:

Spoiler:
XRAR00005FD4526172211A0700CF907300000D0000000000000062C07420903C00510E00005B0F000002956C5B45DC692D3D1D3517002000000070616C6C6574655F737570706F7228676D38292E676D6B00F0EE9779141D1501089595C00DDD813F0240445123C48B01012348D2370410C2148B099308120C11431C3F0141254049520C2041011308D30521C20E11E0882091AA248FDD799E6BEBDEF9C78C1CE9E739DFE3BE7A0AF5ABD6EEF75BBDC3ABABBF4DD5EAE0ABABABAD56AFE55EFE6AB7BF43C7E2170F1B900F0F59C9128F7A18C6F12BA532AAC846ADEE44E76AAFFE57E1FE321A6759859D7F9EE065DE9367544844589EAAC7876AE5AA11736B0F9AAF64CA8E3B0B27B4787529112EB46E59F1798F591311B95E57D5B81527FC7D35BE0282EFA297092218C3614D1F39DE9BB5FD6289717CC6D4ECA3F37C6D979FDC9BF5760A228B6CCF498B4F5315D65D855ECBB4446BEA1E711A2B4EAEFA5923E02DC5F329AE4780C7E86CC6C5F3C5C0DC124D8F9E0A44D93071E5208D5C9C2AE11FE15AF42ECC0844FAC9905B192C6D997D2305AC89F7021E8A09B9E3BBB364623A0B8FEDB089A06242C9CC52D07B6A2015DE0B1EFF8131A33337E93F28C8A426A54EB8E651A8F356AB868C9F171B3905D55286CDCEDF41DD4EDD924BAF5B82F0CCBC41BA4529B94C15C7109A2387361AF61E66112114318E63A1074F230F763FE355359C9D8624F3E6941F16EBBA90C836412DB753FEB8695C985F411778BF9CEBEACD8531A918B7EADC29CCEEC0733568A32C305A55AD089D64382F7EE00DBC70BBE9B1CAED90B317CB98DF5CAB3097BA7AB5854C7C5FB3700534AE4D87EA42DD8CF8F7673331725318A23E94F5D378D318F5861939389DC4E8EA562F2381ED76A6F29E08D3F3128DEDFC54010E76A860BA7EA6E972330C45F11DCC1297497CD3EFB87747A2557CBD6F74609D16260E94A52D2C015086BE384144BD4A6BB3E93133BE9E715B390952F76247138BBCABDF546034B561BB1E466364BE4F63524EECE5B84234F4E29EEEC56183F90BC786EB34C92D5054A4EC28765818CB520A18120960A4E835579D5E3733331A1BA7AB6C30B9864FDA28F5249F2A7D0CBDBE96C5353E5A0E6F04EA0607AAD8C432857EC61BE28472ABD03F6A11096309A1002378327DF19A7617F747383BDBCE28C98BF5123AEFA525BFE998A3D998A893C9AF9533EB1E3663FCBB719EBE6326D250F8D6EBC7BE2CFC91F4E9A58006F80104EA820E1DCE50DAC0D22AFA870B4CC00A1A9391F201D0D4B81B7CE192C08EE4A571B6008110C5629AF9EE35E8738B0108BFD045A4F31AD605CC17F01ECEE51B0939B0E042EF2373E228AC7BA2AC52F2F3ADEDB399F5CCF61A6296DAC3824C44362680D9F1DBF02DC3736AEF53B48CE6851197C463F993E4E6662C508E335D9EB3204A701F423506E51E1878A2EE0EEEA8A859E432AB360C945DF7B21C5A809694C65A6E6BB04A10F01AA0C1DC088AD86635E7FD4F422DB236AF96513C501D2B477786A6A1B20ED81ACAD658D03EF1F6A5269698150E343417FC4629B373DCA048BE40CD103C739E0663D122D92992BE79D4512078ED58ADB35515D2397C7F14BB425EEC591C7C377EA4A779374B4DFF8B56E66B57D7CE99B9962EB368ED21CA028050F8FAF62F5738EAC36981C7A493C1BB50ACF9B49C5D8359FC9D7FE630A4C6C7F63D19EA3C9BC83A1E01DDFF8A47C7185CAFCF836E583D61462896A47B041FEDDB1794D9DC1585C8AD912022070E5BCD01064E9201D1B1732982CEC9BDF7C48DE723E90AF0ECA2A5ECF2A652AAB536F21665E87DF0950617B2D9AECDFE86450251036AB7A91797A309AF2AE7C02AF7F9EB9B3977EB96862E1B2864B009A4E22093F575C3A5F07D373CD3F8DB5089C7368C0F47F4C3C8FA77380B47A74968A7548D21AE6E91161B5AE25B241A2EA7254B77CE617C865A383A69D27A13474B2B27738605CAD3F3FDC386A006475944B6F5E5CFCADBB0DF1716AA7F15D96FCF38E91B414E146F71AB3284968D1A3C51102836D5428D22C58A51F521EFA5EAEE295D27828E66CD4C98A6C2F108FE71F9549CDF330E83535622FD52C15AF16D5B06D832E1E416855C6E2A9589C21412A62887ACCDC452824B0811B6AB855560C4C82C4599E023455AA37630760339F63B87DE70C45C16FD9543C43F1911D86559261388F7E6EB1A52C3A4382CAA3E7AB4E74BC1B1AF1689459574EE4A0805074741F97A1F9C2F037DE6DA9AD1A224CED6F7184B83859635C555F2D81718DB12DAC83F1AF37F2EDB32C04D44D2113E645A799E4373794C990C91CCB72FB26B91B42A7FD969CDF62CDFD4C3A75090E5F0A3F9D36CCBFDBE386991979E238494D5E933D7495B967447DE853DDC844BCE677E2DC14DA3216914FD13114EFB38FBE5E87361FDC4CBA4EBDA18AB761D305CAFC15247D3644D72EFA4B719A87631957EE7AA6DE37B070F2813C498D05DCF6B4C08DB5D50F6E67B6520C6737921B4CCFFC083B4589281A8D6D6646AAE816723FE9704B77E7FBC951AC24794B73F1893E4A9DBE7ADD13A9998D48B0A0426201C84874D49A3153CB076633131E7A5F2CEE25F8C09F251ECEFB07A45204999627E10967DDA452F013D45059E57AF11CE83426FD4CFE66D8B5E8A52BDA0859E80A293D894D7C9AFC53A7F0AE180F66CB9813C83639FF59C195E8F3FC5FA4E92613E21D7A703BD938D5CEAFAAF3B50021B0126E96BE83F05C2E923FFCF7A091DFD6615276188661D72487A5A32E7083B818953E132F0CE5E03E14476A32E8B676136E1577DB89D774C83BF16B57106D1D0DBE882F3CEBF412B69C374E33D2DE325E9B0EBABD4D514E8EA81019AFFB159C535E1996E647EED7AF8ABDD4EF99C1C7A0331A5142053B7A4EB298E8C01B225BA1C4DC71758049A509DF81FC6A83C9305402A489DA20AD67469733D812966E3EFF8A1C3B7EFF0ACF84BD173E41278CFF9C988173A9EB178FC7DB3ECD647ECAB6C580B1B224F5D3B8663E19D765F344E8295BBFEBF96CEEBA26E18CE62BF1BE6D62358EEB65CA8B3E7E7621B5D94695F829A79738CB1B5BE88B48177357FD6DA2BAE080248DF946B89E35E40312BBA000E64B85C84B45818EE339E7CF566DC4EDA820213FB0A56301F2318D1FF963D9714392FBDF7B94C33715C42CDE389F1756B6D9576787F7D50963FD9C19E348270071108C882C59942ABD433920A15841A7EB834CB3B105BD830F09002890080EAB0D5BEF9516444DBC1166E2458A689BDAED632E0B8C73E93A7633EB5D63DADB8D4427572392437FB3C81A25EB5DEF94298D3488641BF3E6216BB18FFC4FAD45F7A2A981F02C53B0F5A95A317DEBB4E828D496DD90F1735095AC67A62EF47A7B5F2B39AF9710F9448902241585FED80C3967C10FAFE2D92B9966327D6DE6B31736B54FE6E458E0BA4F2694A79B37BEFC789F575EB3AA8524079DE6CEEA914B6FF6C39FA0BE6B01444F178F81B4F1ECF246D5DBC598EE2049452BB421A13A6546A86B676BB7AA31565ACCEEF6B3EDD7F7FF6A5B106271D07C4F9BAFD6AD588CF728BCC2125D03499B529E7162DA176B299C6895D6E66A8046B172D384264BA846577BF1BAC78CD1B781ED0F1ACEAA3D9A14659A3D8CF873FB60C61E97937F13A28C1C3D0D8829F56D3BF368777CCCA5DF82E5F1B39FBAC931E270AD22987E84D0B2CBE3D0EBD71C6F7167F06D24DC57ED42F276DB50F0E8D8DAD5F507DAEBF867599BE5898BC837139F3C0DCD63D04466FC41E3FBEA41C7C4292895AD1B253B87EFF2C5E8B52887FA288F3674D4D11210E94ACBDDE7368267475F3135071BF4586A079A370218D6A4A325DE80970BECDA05B4E91F8E17ED4879395FF64CF9F95FD13BC7FA26E9E47F5F12BB2A242B5858E847F9812E394FAEA5855E60D6A0388927104FA50D701281C5D63BC244FF8D96CF5F114BE820A9B5EB6CA2B306234209E764195BA63EC0C754FAFAF8F9A2A158A0DD54C643B7F199CCEAB41BF9E4A5B088ABD4EF212053D40AC43B47080F01AE55C3BBC17353B13701C29A1B78012D44AD7324A3C3941F000D09F33DB3A936B9384DB49F73CE1153FF51880AFE16425512CFA514F9E64FA2BF5055905A47D9D9EEFD25EBAC42F91119941FFB9725D2480B648126DC8175523061D15B5E1A026902EC5A5A05D556B2F22B7C19141A0CCF88AC8B7ED3B07A6B6EE967EF56AA17DF2684C1DC039FC2F93E8D777746113D6B658289AB21D1F78F9A1D5DB79BE4BE61814FF826ABC521D34219A5520B90271EF7F4BCCC26DB553467D5A0CB9D88BB749B0A9AF6C8095D3255AD1EDCAC394AA5A9E38A8AC095F082807664717A8AFEDEEA62ABB10C93751F7CF0C56BA5781905EEB7CA4F3ACEFA1B126E5CB6A8CA245B1E3472510C3C7A2AFD1D8983EA49BF90E685526119060E456ABCFB6E318F09CFB1D69A490893AEE99C66F64CC2A4DCEFB11B560325A297A7406263769AB7769EBC824E90CA01FA6623A0CA68E3D8C86FD7ABC6F6262EB98283B52B635B955E6391AE20A15D17D7CB0B501B23BF2D84D672DA49A37AB2FF368B0680B562578389D49ED6F1AB0544840C57527CEE2F4380BFF601B06B326B37190BE7AD99FB6D471222F41A5E0BAC0A7D224B07B2BCAF47BB4B8662835ED7AC9CADF08A977614D1C0F8CAC32D48F0F74799F7DB0F05546155721D3442A5E9C53CB6190C7032C00F0BB3BEDBA49C5F32024488465E5A39E817592C3BC7B3DE2B0C2D343F01F899D0686653420E089094E918045D6CC8CC7060708F334DB17B14F11B80902386A10DDF81DA0187387EA356C2ADD173F74D79A96E67CE48D808888BA7AF6FB75466B03B2C7E18473B294185FF0D0AC2451B1048E76C2E80BBD2E8941E3A0A46BCD19FBA9ECA18395CD5BB54452B37A1BD9CF8319CAB90518E10133F440A910BF4043E981D0925E4764D26947DD208F9638CBF97E0C70907BFE78FC93C0FFEB4FF29FE4A0FE7857DDDE5C9E9BBB7C81100E48C74767B0ADBFEC1231C940E14C2363A383CFFE86251C910E17423D38FFFE927F787DB0779DDEBB7C90EF2045C38EDFEA42D211B5B5A5DC276BB4DDFF6F91C09BFB3D2B3B057A1D4A4724E3806E4EADC6E09C82FF5421FFED12B8D6E6DCD83B5C81128EC07FBD3FA84211DB5E767675FF37900FCA7F819E5D47BFF1793FF82D1C2B84FC49B590ADFF81823D397F15F2364A072603A769D9AFEF01BFE9BCBFF79BF730570EDF2312AFED642A86FE140BDBFC3B46EBBF8BD02387F34AFFF2DC557420902F00904100000C42000002292BC014435E2D3D1D350A0020000000636170636F6D2E67696600B008AF2F1015511908D555559555666426490937D1B92701236D1B491C1E8E5746CA38051B68E0340204812012563F6C5F1AFF39BDEF6B2B63AB57D6B4CD9F06F99BEE98EC8A5695877F15AC3C55DE2AEEED0EED4A55FA69D4FE049498927A7CC70801B805A8C009F53190F3FE7D7801FCF9303CFCC3EE070F1FFFA33BFE839B7FA243FEFF67C3FFF4B1F9FF8C03FF3E1479865148575646445348383536100203FEC28F11107FFB7F928CC07FF4FFE7300047CF432532B6FCF7E59B7BE6C45F20CCD740D55960DDF2C07233CF76EA140489BD7DD5E6384CA353F203236648E7EA33EB92538D644DAF708650A956198F51218E6C649E9A6896C5333FD64831C156B49EAEC10131CF06C1EE2372F8FA424242061B71630A15D63452164001E80923F7D977C81823308242C2C242410344C545C6BA8A4F5050CA007C9298980136661A1835BD700578BA7A876AB09280ABC14C0307EF8010B4B52C90A3B91BC241140B737D7F80CF83279793618F779B9D43C73B45082587A9161B5EE7B03474F8B0480AFB2000E520384AF979329FCFC4A2E7EDDE00E0C3260CB8C7027C128C16C4126D91F60D001214D3D7304ABEF68AF9822B862AE5D5467CFB14BFDA9D74B2453A97FA88B9ADA30480040A3B19B557BC3B7EF995115E3B8D994F12A10A7931ED62359A2B363EC28A576A36D1C95130F489C6AC6417C4BB71B538334E0BE91B552AA561E1447434A3923E96A688E8675684A605EF90256A9835846C56ABB450EFF800DA8BAD2BBFB58D02E2B77E9D47B779E2B4A809BA5EBC6CD7696B06A1F3A87CE6A000CB718D3DCA2A62EC11CF133E674ECE90E412AF5C14DD1237D7A0FF651125DB953C7253F259648AAB6881A58DD09A30E020136FABAFA90E534BE14569FEA8067F83998ADBA19893BE4E7FD55056AFB2E3E3E84360582244EDB02CF1E134836A78625059E9392F36658AA460F371684829CC36040FD542549BFA784A22B6D8A5CC6F5B02414499491CB2A63C9A8E36A65E3A5E8742D6A0DEC9AA367A965FA2EA2A7A57C03BADA6C7AC3BAF2D4705FB4ABF950D4AAFF45A32575C8F684E6F43A8CACA0A4B171231696170232959FACE87C21FD75855161D0E704130FD6E5CDF18AD3C2AA4B7B2CD63B78011A339B33A655AFAD0E0062734C952F61A03DD197CF20368D7CD2AB69CD9AF462B1C63FF688F0F22AB03C7250189083994C3BD27F1130A2557A6BCA731F3811526B908A944B83D573E0A5A55FC5651E8FBE8AAA023D31950756606CD1FEB4842808BA27889171D068303EF856C5F6C90A38AA2652F11F94E5B92680CD7BFB9F45479974287DF9040F4C673195941E52A0A56CDB62009208EBF4B1621A7AF8950D02527B6B79D6FDA0E5394368A7C8AECD996DA2948488CDC99DE32A72758AF015A3EC1C15626BDF4121DE37F2185AB1EE8B13EE75DCB4441555948B1B2AF3F4C45B403C6583983F380D05695AE6059882B60E040058E59295464EE39DD6C3ED102B0720E493A610D871D65F3EC1730DE052AD11ADC6D21AC295442AAB449E01BF650563D670CE77700A2F0D2BE0A620C139A71EC866B055BA67ADA25BBD09896302E685399963809A9324D95B6538ED7EBA91709CC04E25DEE676AC68981BA308BE3131670A7BEFAD345A087BD261D3286343E95D653DA88A892B55B365E9D364F304CECAD0AA3D51957479C603A2D95804D17393E469FAB7480C283F3D4EFDCF7AAC07928D5D8E75D8A5089506FB5525B25DE73DCD28BBBF24E7CE80120C2658BA0FC69BE6BE83D78FBB61F9D4B38D70F45BBEA550EAF7555CB57E850443666BCB1DBCD8FABB7DE8DB7EBF1866DF9CBDF892B4010FE2EA37D9FE71E58DFA5FEA2E36338FE95379F7C2FF64FB690F80F12D430509F37C512A44BE1D5BA83E33707F073C4C2254410822D91ACD54AAC4A23A5183FCDB210A5535444938AFE8C7EFA41D9A3728E85320FDB8371ED07F588A2A427B8239A5A0204D7C502FA83B13BFC7C4EC47F963B82044396EAF147C7E23621B975B830EB3C27741C203C936287EB3CD4DCD613E5A65AA2AEA28BDF3B63486CA919ED02A49C57293D34A3F08DAD7861F3DB39BD4B4AD0921851249BA6B80829E2D2FD7EC5F0FEB6437662855DDECCA43C843B32A8EB144668AEC6A33421B551A14EDDE2A3BD483435570928F9682291C7AF7808B8E948E152C063B767D49268929D4C8CE58B19295F8D4CB60B29E43345B65474E3C557FD962C81278214261FF2A0B66C924D587D442C9D19B35EEE91FC398F13FD41585300ED63475E930506F347556F284D22E36FF750C23A33BFB4282DEB9ED41BA12AA78DC372139CA19390182B2E79028240ABF1F7BA8A0698EEDF9738CB77A15FC33993C09A2E080BC85F086BBA7C4A9D59140E529902C01F34BA48A9D31793ED116E629A21F1620A317CA4F6A4F9510BC199334D33995A70E02908F35A50F8DCC85B2A075E15BB33CF58729485FAC6D34E4EE8528D1341CD5D0ED44308B4B0914469D1AED68D785F48DA3D1165679DA7D451B518A6AB5E09F20D364EA8AB54EF3749EA502CB138605290ADBEC2946847FF5B65BAD6D4EBDA2CD8C11D392BE8175D2AC92AFB3F741E17DF56EF7D0FE3A13254226A889AC441BED43B8B580330EA879B083A892FAA948583FCA028E487ECC7EB1E6AF543C84DCA1D85CDAC0E25DE446828E22881A531AB5C51AF84CEAF7ABBAABA3E7BA144886AB28C90998A6295C457561BB93229B3B79ED70F8D7FC4B5F76B8B1ADDF811B365235CF91C248C2583C9453F589B756A35C27AD5E93F356D8CD06F6F6505BD8944B4C82EB68DCECEB780A1349C047FE0A11301FE6B7806AFFBB3E0FC514BDCBFC25E61015D3581D95798EDD106509CF4CBD3E6380E1524ADC166F091A849BB01AA2A19D9367D8DC1038DD39FA7FA9A23B192F864C465AAB176B2E803B5D41AF6011F75F2FF631B880F0022819A9ADB5618E25FCA203D4EB1EE8F2F46F14CCCB1A09A42C2354B06871412167D128174000A4240049CA04A4B00D491B39081854081559658A27FA800F1200C1D4E0D6569831D80B65D7D7D9829615D2B96EBB661314CC8C10A88F0187038D8E5D9D1560FD97468200542E95C5CFF38B633E5895482F7556EEDC9709144E77559F2E56C17A4756E037A8930149D76084DE289C7CC4F12D009121CFC48C93EEA1BB3CC805D17EA27C14AFD8AA7C76A1649492612905798DE5C638ABDE51924A72263AC98DA5B7074D18A6E8E790E6A9188952E59C5A65A1CA52A613F5B050C2C5EDDF3394B66151222A25FDDCBE9C2AF941DAC59E5B29B2875B7D8021621D25FB1DDACE23C8708CFB2944E833AD95AAD641CE67EE13A84EF27964B57AB868DABE1449A547C5EE42004B6EF8CE58B3F047717DAB9A4BC2AB2E5697A70591C2716725D9233968ECCC18A7D2DCABC8FC5214A5053BA4F986DF3FA49D6FA0E3667E87ACC00E05B2BC56CD06ECBD19BF26BC7650A3E5C9EF2DBF9089B4A9E90E2DA237C6940D7CD1BF857273CCCFC8FE4D95515DCAADE4520E18327B418C5C1457B351647BCCF0E53FD5103DF3A73BD21D39EE09049F3CC46D224D1D1E8B2A531A05A935F2E33648030CB786FC342429B2592C475B3FFAD3B775C2090F49BB5E331AC197DA661E1541C91530699A29AB0E33A63F4590CF0C1E9FC1BE623BEC1CA626F8DB18B55495E98839800BB889008054CA0BC49AA93890D63531E27F7949226948699DCB14891D0E9483511353D2A48060D28922796093BB832D834F5CDE9697AFBBC221D71DD29C3A44D5EFD721C06A21954FF6FD28F0A5B512398010CD05ACC28C547A4B073CD8A6B42E58A31E93CA9CF10FFD2F425799080A49AEDBC7388A8390A719E61047E894735E5EEEAE892BB972D351ECEB4706508F0CD8C942DBD01683CE4AA814E8910FBCA5E4CED31ED34524519717BAB6D9D562898ABC4DDA70D0F0DD4F9B4AF30E2C71C064AC6D8FAC767FCA8BAE6B9D8EEA2AF77F38E4462F186FB692FE33AD8D942DF76E5CB8C8AC7C68B1152D7CB38617A27132530CCFC43173F7D4EBBA764471F538729C9197F23188E549C6505B81E13054435F34AA8F06D25EC5F470892D722F16F4EE7E61AF8E676EFAB0CFEE564E945503DCF0682862E5B2E6FEF18674CA8A9C58EB660B81E8AAA13A403BD6D3B5B81F431DF9163906227A8E0782ED06DCFB8DAD138C4B9F3AABB52D826E7FABD9F6C3732722183B3F9D6FB9486E4019B7FF7126EAFBEEDD577DFEFB7F31BBF60DD95C4FADD70BAC0EDD8F9F039FA335EB86115870F952D157ACFB860FD9EBBCD3D96C7EAA4098CF8FBBE6AD27E153BBD5C6167DE9ABAD604026594DF7F8B31EAA1CFE143DC210268F1894B07DDDB6C5DBBDDF4551AD99CFA8994761F1AE929293FF7FECA7BD5EBBE79F38597BA5A090117DD214CA7DDC952E57AB9D122743A2DD575E79CB9DA1C66065DB7F687EBB0E44328B389BBCDF56004FD20E280F5938D97D5841408EA1C135F42A8C5F6E3316A5A21D9B3941108C889E3A5C220BCA3140374529352BB30FD2CBE8434EFD11DF8D48218C1D94610D998A2BDA322A1497FD3133A8BBF8845AE8C4E522D143B25183312170C8367B1DD2D3C427A612EAAEA480258CE6146C3072D418F9D83929A9435209E4BCDF9A96C7C4700A708C175D246DE8F41FB422329144FDD17EA35D0D4E0D84FF8E0A6433FE0537C12CAA50E18A31CFBA240BE62F259E8FCDF2113AD1D6C750788F7542506385AB1B6D954C2A0D2626D9EFC1774A41081CC5EE28164B3334E6D33121478A67B144E3D8C8B6566291358EA2F9A426CEF5F0EFFE39A1D52320D2AA44550C79E5F212C752A6629919C712530E58B0CCE63DFF989920F6D90B06D6ADF99385A74CA427D343C8FE9D5C568A16A49C96BDCFA2FBE9834DCE0B5A85C33FC3D1A3D3C90FF40219E125925B3FA47BE228987A163EA282AF088E55E8B070C40FD1725B99550D68A2815C7A5A861BEAD09F4C569BD12569A22A332ED1F19EFE8367040464EAB4AD24090C5257D1AA7C375024BF55E52C77057D366188CA7F4F3C34BB269D21A9DB422286C970B96165393A82B58554AA0DFD34584CE9AAB401889057474ACD612BC95176EAD49A7F458DA79442BA628AFA69A3F46B5020B3455D7FA080D538D6B377A2A511C6184F72442A9B1B56AB684E5F4BF204AED88604F1FC0EAD71664BD6BBF57F40425C69CD546A010F7E60C4A1E113363508568F1E88C9373988E4C5C0BA83F8C22792AA029DBC1C92785ABDA9293B674A73ED6D54A15ED8B597B23A8FFF039C2800401CC035FFD57C3F2FFE315263D88EFD7B47CB02C28A939CCF05EAC139DB66B6B27DC82CA6C36216C47E408985068736345532E89E699F24DA5A38F2FD89488554D8385765D3B5B6CDD1409884761123D117DB81C0FF3140183642B5B838A839BA0A050AF0F1FD8D816129682816B8086860112B917191D1F20F327FDAED93006F86060DAAB67A7FD2FA1ADC3458052A38EA5A69409635936D802BE0A0AD0D5EE525849F034C4686BDA4BF9295090F5939EF826FC92D0D98F7701825BE885F84771F55B8514CCB181F8CE366F15F2675C66895BE6C05355CA8E510710355F704C3858E6CF325081EC8F36FBD8B0FB818013D7450F12898508C5E7D667997195BE1D3ACCAE20F5A6CE6C99A65167F2C78326C504917BC1FA4539CFD22D970F907C726C719E910556D5B283356B2C60AED9CCCFE56A03982084B1B7DB1367497A8195D0F48B17279B670C405D580D13B0A684AD62C9BB171A6C5AE2740A58196501900AEB95209E3C80C10F7C7D174E66999D4D373F2D657ECBC961667B88389616FFC8EBC7D9200F0628DDD69213EDC92079C0661E6BF5423F500B08E2C8D660E7012FD8479A3E43DC0077FEBE9266F27216FC6B748313D3D4A043D65CABBDFE328DFE9AFDBBD2B1CB13C3C4433F1C1F89B50A2085E5EF2FD8FAC78B6BFF5B344000F284D78FA2F4AFC7D596EEEEA313F1A48FFF5AFA9C8118AF33041735ACA3EEE34DE2627E0AF628B80F9754AE8409A0B444A36F6C78E4D9FD5F82B1342E4D114CF2BFB7AA1491EBC95DEB3197C00D2EC1EDE3D3C27AC9AFF4CF0141496C9E53DDB43ABC49A0EFD8E6813924EE176BDA81C00E8A3CF453426C5BF7BEF529575807B0101A0513448744B698BAEA6DD7EE618ED90F5E80A2D2AB972522F1CD3CB01512692352A44AEBBD150E334394843F693C8468206C90FA2CBAAC57E27193AF35EA27CFFB5AE0D587591EB93626F27C62D4DDE13CB5F3846A06AE33E0638F2302A0AC4810D008357D06F9E72461844189755933F0D71A94706C1A38AA626734C6A7DD8625788AFA43053035F1DA37F99DB1C6D37CD2C501F9A00DC91DD3B360E96B7BC8071535E793CCAF8FD1CD2824D35B103491E76564603D6E8DE27EFD55B8B1A26BE561FB83F6E766D7F9E98ADFFFE67AC8633BFD8B8C51E31E3CCFB355FDCA7BAB69A0F998649A096488CE93734D3D2DAC105BCF84975D9C46D9B8E2AEA0220A467D99915150B7EC5669D00D5B5B17E016ABB3A9944AE0B9F00B685F85508F6DA572EFA7DCF6ACF28344F664CE15F2BF13E7A020A038684A618E1CDE9D2051F2123622B1B1E5282B04F45D38B7A0BB7BEA5A0D9D28B530A2F0717202AA2883064683F6284A7966754A723F38772ECBAC754EFFDCC2A12BEEF92EDBE76E5005B0A8B26A2935CB9A90E1AB3DD97E25E206D5BD08EBF6F3E226D8CC5A00EBE9FF70C8790CC125CB57166BA3C95143EB4AE8AC10603FD927070579D567239D79B67977FC3D82BBF82844EF1E6B387E396E84BE7936F8BF7FF27E5526523916F6BF5707EF45B887A6FC679BAEC259289F6C9BF5F63FA223D8D43B8718BF44CAB55FB80BC94342F09580C34280C6EA85C28A97F9596156E5F932D0F476348EAEDB4140FEBDA49B928CB7DC5B15283F83E891319AA9CDB501251CE6582E67473A099E6B1111D9E8ED3FCD4DC7747A920E77D32A0372E60C6660CCAC35764BB61AD4EAF352793A0B26F8FF352912FF3D20BF9AB0A0B0E32E2178030893FA643FCEF51995D74B69FFD7F014170023CB27B2D89E7D11E3BA4068E5BE678A916889F3A3B06082C637471480A2C83AE8A23D2F761A64D0054BBD8A08FE5F89914CD519948B3D50590EDFB63D86595482CC220396D399E72A1F10238C6C73AFD598BB962CC8DCAC2DC5925F1495CA6C8FBDEA969D81D8A1B644295D3E1BD5C9811694518BF24BE1FF3E4A92E9ACB69B1140A9BDB96AB65704909E5B0949A24C87AEE251C9822A9C23464A0276E6931502E6FD79260E5BCFE46E6B0855206E2CF929702A1B65FFD3E3F12F532C61F59CA97C1DA9F81BBC621B5F2CD69C44F092680873134B24E367BE0C07C65159AF278DD3F5FE4C649ED2FCE6CCE566C4F4FA9CAECE70A982F6B43CD892784E1750AF0AF894425C6487D6B055B0C272DF5139D84274537EF3D792FCF7D6B2ADDE8ACF42AC9F008531D1BF3A6265E16CBD03B3A0E3BD5D2ADCE2ACDC8483D145A981226CC800FB0AD526CA6A4B256155E3373909C74C2B07DFA612463F4AF57BE8642932828B0CFB625567D5F59F1CA63A6B94158AD0E96352355489364F91CBC28D4D8ED9CCBAB44B3DC6978A9C365B3395EBFB28BECFA61D45CF34641EDD97089C3B5E0A4DB17E6D88277F51EE10F2C844E5B6B598FB11B436ED7ECDE18B13FCCB41E8733F550EFD97BD77B62DF17EA1A0ABE5425E663F6A89ED98636F9CB2319FFB06AC05B238AB48B89E4C1096255E5D9A9B56E347ED06DE3B3A02D1AA887F65B0382FFE243DFFF6D369C0E330D5FF0BEADF89EED58251D6DC21F511B2D3742406571AAEF57288AADF4F110473A38ACEE22A2671E67729980D825BADBBB0277F95D8E1E8B415C734327FE3F974F20D29C621C1D5D8C9E008ABD3DC909BEBF84848300E10913120230C594540D27F64849C9B3090404E9355D100C1D8D74FD016BC090A0ADEC853E054BE0A049B109C710167336F70561A06F29D9B03E15182295C0A6A77220DD3333606EC2C1D33C06F87273BE3A6C6CCEB8EE94E767F09FD353BC050D497B22F1ADAF1CDF943E318B7CED9423D3A353E9572A4A92005236B798AA883213A59971883921401E4F319E97C7A91CFACF5753012DEEB81CBA18E22C487BD378A834B94D12257D2A34F1C449823153A53873225C772160806CB26C4AFF98402BA85D089D7329CD5D2BFEB09DF506FE10017C298C0B68A960EB0245C47CAA937FD547CC619E669821D4CF0145CFA4EF9290AF599BDF1F5E149D0EBBAE72EF1367957B33E9F8D2FA7CE99CD704D918D5591BF5C7B16E8DC4A4247F4F08255F043AB53621E0EA33CDF6CC19E448713209EF8694A9229D3CD914719F558D7A1B56E8F5CFC1625432F0500B76FF9347217BB48B1EA567CDCCB3B4CA4591B7C43ECB4E5F43A4CCC3DAC5D77884C19DFBF667D503C04F82A4A894C472D8E3BABE3FD27B28DF23027183BEE6C1E7ED35D1F42DB0C123A469C07B007F249DE019809DF6400174C47C973D2FA310499B104881E7FCCCFC499F50A510D3FC0C3B616047F5CA028E80FCEB6FA13181C81B2193BA0A0C5C378A294833F17452A86639B46A505EAD520C98D325946E2911BBA4BCE9549283002D1E825E7DD4A3C41E6A691D25B3E448AF5CE0E1610B29E876844D219211F2865E25665919AA7D8293B23FE736958BCB64C1626143D20CDF60D2CD5C8C7B4F035E3C309F494A648C34BBA95CDF9629F249D21911F73435F1B49257B1F50575AD3265B177A29DB641ACB6A67CF366AD421D10E1969C628273E2FA41CDA5D15B64B2383529E38AB8A33C49D71664FD7D79951A618010719FCE9C9242EB9ACEECB7F0636B520089BE839D4E740935F307E0C18E512D56BAE4A39888D7D31F78455977CD5197D77806D8C934048D31138895E17FE3A2FFED21498F81F4CECBCBBFEF7C7CB1B811850F2984540678061823CFCC1DE503C463960D29036D9841840ACB3C50BC3F2EDC7DFF1ADE9C614F4BF1C650FC106EDC61C56FC9C660EE45F276400B9DA37CED0F1CBB52F7B96AEF4E81B867F72C33B918476D09F889E3704585D0561115AC0DD956831CA8877862AF4474ADC6D4E64EC610E7C23D966CB1B11EFCDBB80CAEB6B1AF561BC3B61DBCB9DBB16BE37FC311B61759E07F918EDDE6C119257EE7533E3CD13D871CC1D67ACCA46C7FAD411C31AD7F9C0C9FB5D17B8F619393E79CD8722F3D64F3453727CA420786F0AF463A41EC0054169667049AFA0CD73B1BD909BCE3C3E661C6E2268C5BBE8DC3ED77CF9EC24F95656D3BD0F957D1F7FAF6ED8AF8E49C4EEDAC8C93F4C1F0AD70FCC53D7B9FC9367671FAEE7EF6F0BE9A5F1256CB6939D5249B470FC2C43B0A16FB8EED634FE7B95B779A939303EE3520B74298250C9F6D61BF469103C1F227DA38A243EB3B1981338362EF8E3AC2179A4670FBBED145336982DEED1485F46887134ED7C1C38A72866A7C038D61A8403D8DA00CB57A63B9275D106F89C9A7153B6C599C830FE0EE6410E74F7FE093248E1CD4DC45E0837A2DF3C314DC845DD160E92E1EE2524CCEA2003C06DF3D27A10BC2910CF784F5953F7928907524C5A3B5F391A9948BD41FD98248E1203D14C315B5758A7A3D162B3086384F06D17FEC0436E90A8FB1E22A4343BF8222A8E2FDF1A2CA539EDF828B48521016ACEBC19839862BFF304645BAB96A237F31AA17CC2F1F3FEC3BC90FCD2BA4CE292E9714483F3BA1B7928945431698BCBDA776986E68D49EF92684663FCFD3D9CDF55D8F05DB6D405E8C0B3BF3143345870817FE131880008005FFF9AE936995E7A3DBFF69F3BA3D63E7FD6D72D5C329E23D606C77656B7AA7DC9AA57F5210D476968D47F421A155FA26BBC4615BAE0F001A4B868704885AA4311EED89BC02BBF93A75E283BE01DD8ECF82B9449C544A05C9C002E39BB3A80797A7C827F916D08E4B609C97DD81835B5F8C8DF4A8BEB5494940AACB43C4AE809B85A02056210C158E4296E05A9C961E2AB61DE2C0720A0C37A2D2DA92E6E69E6229D704770E9F1471CB1ADF275E12762A5F3C6F45582284A82B4D6D77F127C648394F8884ACFEE6F2AAA702972F35D320513130C2644A14854E2C17AFAA1869089FDBDE4DC079FE418E9CD94EDCB1620FCB564CA98A62330BF993A28897B9B256C6901D94B770614102812644901AAB2E644C372F328AFC0E7BD82DCD85610266D4969590A1228F494B782AA2288A217C9CC47B156AB41B60C166A387C66C82B13C9B3F7FE801257460A554BB6E4469F2CCB060F7402FF458982E5AA9F4AC2FBEEA57AADD39D7E514957D8D73DC84A90BF788F4E8526BD907FB3F462B7C5A30511D426EB3744E6991618A1385F328B3254E0530243362FEF672D3236A91AE73CB13EAB472D926D54D17899A002B5D5B357F176F5C59BDF00245F7E4704D021510A1206333CB3A78286875B2EFEF579BDAC290279756BDFD9DFA68B13F94C529F4FEFACCD1B7EA3A0E278F9A19E38D14ED3839F43E1F4C2495BF350D7EFE44764DE7EB91A2300BA6D8CEF0CA0234696A82D2AC4B375D3ACC40DC65FBA4A1AD0C19D49654D1E577D108D36C8796B97C5589DB17921DF1BF9FA2D14AA145AC1EA59FFB81BB0EAD0BF75312C7F51208A8C87AD771B808133D640569538344315036E980B7993839E2A724450541252E5D07EE606F57B8564C441DE6EDF7B00AA7B32E2B3362B9F27A9A3A95E9DF1248B780AC7CABA1704956CF0B497D8BC59CF4E90368346C4DEE14C1C40026DA7872C6286F0CB54EB6EA1D2B124F605A350774FE14FFD413657DAA617864F06A289F9308062714F9F1EA854C10FC98D7CDDC0EF169EBAC35149E9830DB111828E037A7870623C6B1870E78F04CBCEA1FB9CB475FEADC1CAA8D5FF929F8444F6FFB1B9A7034BD468FE8781BD4F315489A35D6B3FE388B6A7A4F878C42EC68F594D1953866DF1BDEC8C4034BEEFD1F6B8DE6CACFCB0ED583F4D8B0F5FA988D4660DC0F1DEDBDDE8CB936B73026FCD82F7522E5FCAC7C5A106131492E48405D13C6CEC16456580370C91300B5E8AD2E39B224CB2ABD6E39CCCB03F674BD2EE12405633F92B0EB9982B9DEE99BEA0D5F858E810ACEE9A48A6E66EF9864811E074D244140EEFB2A7C90E44175C7A9B74D2AB6E1CB5D20497EE018A9CC4DC6B2F30F57DBE23B8ADE779E3F624B6FEC50E14283DC638D25396262F3BF75C87A1222B9DBC1AFBC79D98EF73FF3EE3B20393DF9EFF52CB81F5D4D150B4F720F65EDBBB5C254EC48F3B048D85DEEBABEFF078C7996E6B41194FEC3599E967F48438DE74065DE3C57CDB1FC68C937A2E9BCF99930EF9D06340DF6D15929246EFDA8A9C4D71319F117281DD749D63B33BAB0231FAC06D12616CFBEB42E795F4F010F2B832E286DCC54EAD5A6F588D2CB75CF24729CB0DEB1157B3BAF7FCFD7F59553016EEB300D4CB0F135385017BD90DAD14E1E0D09ED8AC65B1BDDAE7B84D7E847FF6BC3C141C0EC711F2733F685F7D9C85025B72E827C05DCB33513C2021D87824CA3C0ADCB0B211F184CD708A1A1E1AA0C9A312C60AF8B58662D6F17DC1D50DCF6B838D7D4E21FD06B271788AB9EFDE0589053A04CDB04BD8B4813C2DABBDD2D64A0BFDD483039A423C8BEA91CA0ECC89545D922D783DA09FBCA34419D9CA10370DE41362E2690C7BF1C557B420F1B492D4850F924A1CF28FA2FB4A8AA358E4512319652CF0529BC2C5E4B1981624F47033170E0F4DAF45858A949E662C508B8850607496423E4D266E47A45AACB4264B15066873A553EC591B1DBCCC8D94292AC6E53A642052BE61389987F7C82D970EE0F72B4523E9E62B023737F647341C4BC27BD06C04064EE5AA236631735C027C96F70AF4FC8BCE328F2787019D9EFC267707C0FFF7DF11201FE63D806CFFB9F2CD9FF0622EFF035D05121D723BD7F739D52DD14B46F40F9BF2955FAA772AA3EA43234CC4DB34545343A0180448E0AD86B6AA18CF5480FEF391E9CDBFF2598D7796577DE1C86867E35F56BFCDE04FC842EA935BF979C6147830A0A3B3C890B474709090417696A7F596C060E60142434FC44485788D8FA6092A1DA442056C04D4ACFA0BD0672A189094B4D4D2530B73B05580E5EC8E6E6444AD47D922452E6EF385A4825F7B6AFDCB5886FEF79C89495CACCBACFBBD19CAD829DD7F4ECFC433487887388CDE0EED07AE480E6E72DD96464F985E0CDAD4AD0A0AB6BACFB76A05C609013083108E28620B00E8897D75460740790691E05E3CC7D2C548328A6FC432D54D502D6CD1FDC0CA3A80052A37CE4395A61D824CC1B569529F344A1D10A50BC984F27865388E605D84A343EBBB07A8E596D566CA705D9B6CBA2BFB051C2D21AC1650E732BD62DD8FACE2F394413C18AF06E5763DB35ABDA098BCFE6B906A45D4B47DB4C41FEFB0985FD97D19D067E3F59097CFA6E40DFCD24BF7A72E42D8E855D6D26C87FEC779487AD0FF407352D4A85DCDA03479358250108827250BEFDD47C09C17B7DE29A56A56EE94BD0B11CCD9A55B37FA6348E89EE08F5D474EB976FDB0991115A8D11069D7DE1DB6EC533EE70C021BCEABAD3ADF9947949193CF02179D2576A4F817BDA0384E512BCBE31435EC991684FE6C02754EF1451DE6EB4B701A26F82C3022EBD512FEAFE0F75D59BF2D7ADF316F6E4E650D6D05CFBC3C376259E94208F8DF34AC40916A1AF001788E38F2FAC446ADB88FE398BB64E0C7ED8AC0DB486E25C312A30EA9B07F27DC12453449C26969A90A23207A273E0F8A4D77650D9174D2DF7B5F8A2634946D9E4CF817DF44FF18F6919D98B3935EA1BFD677EF2A5CD173F84CCEA3BDCB169D36A8F7E499C0A4BD51085B210F97453A98CCEE4FA4BFBCB41D5D6D39EA900D4231CFD3E49407E4A352497944581A31E06A8281E363A511CBD3A8ABA347F5F273D48B07C458ABC77BE49359CB9AFB103E56584E2D26AEE1792A5552137DE65A74BB06A7D35918AD5B7CD7BDCC935E8257DB2116D1027FD25F0CBBD3D2BA306F2ABCAE336F99F45303D33AA7C85CBA871B90653F77DFF84B2158C883A9F64FA086EA6D412D4A8BF5ABE8F34CDF6EDBC3A6D8BA904A592BAFCB5EFA5F8C67C14126912DA67601084F1D6551F1C9ED88C09DBBD75F5BC437A21E8A273843C709D8373DDA5A28CBAEDD4FCE91BFD98963269F3D58E78D1400D1EA821231461DC1A5670342317A8738FB8456721D18B5C815809672F185DA1165D4DB47B7DD51DDAB39DA74562ABEBB7835902671B76FADC27D336F0ACB43442B89890D4FDFAA61F57DB97FCEBBEAA4D755F721D5A2964499B33AB638BC5AEFBFFAB38736A0E87FBA04477DFAB81C987E6F173E7911FED17BBE2F429E058F0B94E91FD38143EBB6F60135285EF045846129F017159CE6B6E43B7DC1FFCBD1806A89BE624F9C7FB46DD05693C8BAEB7F7BF1C03234BDE5B6D660839ABAF4EBFDBA2C1196DEB274102A4E0269AD67F7F7E6B3B0EDFDA27CF6FEF9E45D85F00DF7873637F91B532A482F7D2EB8257F44ED661C0FB36DAB0F7760942CB767A5DF3AAD719B41A49FBD72404BAD3A77A075E87F47273A0F732F7456E2D6DBE005C9BFEFF51918C14312891E7047BFA32493C5D5F50947D92D7CCF8A01FDE508683328DD4D7F6DBDE469128EFD8B4E5D54E7FEF9894792DDB646CF967A3E141EA4727D75148395E62DC74FF285B3B7A2DE84E2B890C46FB97CF8F422D534A906D3B552301FECC496E1A3083F03931F83D9171273F4522E147B9C81519496E85A51AA005EF3FEBE39042E2991853A5A43B450B24F68F9E4C508A1D1BEC252710ADB44CD3869677E5A274217DED1DE3D5179A7FE2459996E0DC3A3B4BD3EC63388540D402845E2103CC2253A85228D8865D79E5E16423ECE01B33CF82228AD0749717D9661253C9A75A88C2F4D1ED271A3E97A78BADD3B71EC6261C7EB14A2BF6E5046EF686656B924A524B7991B378B071683C4596944E4BE1BA4A0C1E4DACD68E2B4AAD0F797D78687933F0D991872D4D3B03A359FFC51440DCB3DA69EA851293D3B56D0EA78F29808365C1531634D248DC92089D992C3D00DF6990E4F9136563C27F527C6270E8110F49BF4046A22B1A4E6D3177676B49888CCD216EA6E1BD19AD4949296B2476DEDE30EC87FF03DD05728284C4CD855F10941AA8AA8958892A6CEF81534ADDEA515624290E1B21969A1389B9298C46364C35160B0548F844556207D8C56BA11600160886F5201BE74B3B53D76668560C7AD4CBBF591A824DE0F1CABC1DA3AE9C2186115BD316C87E93B81D0AF656296608CED284F89B9A8F26F6464CBD56EB391876D52EDA126CE27479E21846D173B1E8A9FE674AFFA8659B64550D4B4FD8ABA5E416E9C48FED9FD4F58377A1FBECED478B96A3EA8BDE38C7C4D147116CA008E17FE53A847FF6808000DBFF241EB7C187FC71325D708C57F855B76B2D117FEBE76E77EDCEFF1AA08C671D1CFE866CA3F63552CFB4400BB5ECB8A0082A3779EE3F58B735B6159B57A4CDC1E4B93C02BE2711BE0BF2393FF105FB71ADC471BC50502C642B6478BB1312E330306096185FBD61049A9CC343430D860A1A2851AC485AB2B60423107787A59012D2536853A123A1A86F249CE2A02B712B1A89D9585EC42DBF6FDC9CDDDFC142DFDE02A5D7A9ABC5DA9E98C893CA58CF39A1A183849FD4A5A6A79DDAEC169EC65961DD669AE236D3E6E7BF73A64BBF8D4A72A0B3667CFA73BEE10C4F9F1D31EB929C21D9701B42DA341A6D7A8BD4CB97DBFCF058872EB369131EC64D0C369E91574C8EF50A427E5DAD2A0C546E16E90DBEF69A3EE18701915B6D8CD9654070EED71A7A815A2A58632206E5E25D91212B56EC4A536B1DB1713FB9AE81622ED4E483475AF8B366AEDBD6C54507ADF13AF51E1898D2458EB1AC5E9E7F5308AF6DB0057516535E52E81F8E5FC1A2B3DB9407F53145B2D6E8D9F70A08B2A98AB241A250BAA51BA9E9DD39AE32349756D45F5BFA5A3347934D3C03AA9AFA5485C7638D737F1DD9BA75A341C510E7B6D981E29CE27AE18774BFD5419715F0284F94F47B25247E42EA7B37453B62B2C640DA15ECDD79744C03D1303F919FA3D60D4BF26E2DF051E3702E4C1FAEFF17C962DBD67ADF1F32D830F4E4AE3DDCFA892FDE3CEB5A90094893340F80A62E16A0C2652512BCCB160088306CBA2C89231A490B4504FE052779712C1C56F352D68F6E14650C5DD0F3DF1B5D95043980A44E9C62C166093449344142AFB2ADC8A5908DB9B99CA426F4DCA4BB62E6C6AE3441B0D84C127A0288BD2744F94FF7609F2FD53CBCD9854339632C78D35959730E8CD7111597BCF2A01AAAA9833CE41757024BCB7BF5989A92101D2432277550FF1FE752BD0DF587CF1D4E696AC4C8A506473C8302E516253C1DD45745792D6A696786A2D8516B4445023FD5D22317A6B9EBEBFD295BEFDF5978A651E799A5C76F19E5A884B2220A6478225C5AAA9B8572BB61BBDBE53FE7621CEE1CACC62084061FA28369A8C93A681F2F0B0D718704F58C2550A4C139351A29037EC3DCEF41A40EFEB385AA4B5DDC4841D836635B74B0969D7E8EB942FDA45ED5DAAE973805009929A40B6F3349DFAFE3B7D3822A6ABB9583C575910525BF1F396575F6DACB037812EC8BB71407644FB657C875B8A1C7FA0EE2CB209589B320FA21CDE3A990CB77289B1F4DFEB609D4832C04F88F2F57AA8D44D7DC496D4AA48119903E9A5D39ED8752F9AD914BC9607F6FA566962CED9D7502E2CD964D819FBC7E598C599763C27F348DAC8CBAC8F06DBE4458EDF7780A82F005A9F6FFBEDA160A113EF5E89D51B88408E173302DA1651BA1543F516F16EC1FB5476FCF823D0302CF86571C07AB1FFBA826E30AFA4F73C7868A2641178EB0A85CFA4D6CD09903928443AEF04E94E583CB769485637FAA81869FF1D6552D7E55D76A25BCCBC60BFA9BCB85B0AB75138FE476E1F9DD0A97A0EDDCDEF02E7B8F29ED52E4DADFCB177EFBEE4093BB797C169C7F8079553EE4273E97DE8FE356263777CBF23DA139DDA6953DA286D7034BA339E7FC09218985367EAEE1DC0844B051798430EA2D3D822043E8C205C83086167B324BB265104B40D1F494AF7C2D32BA26A78673D9620D1EF1FB4A18E5939374C7E28BC7B916E076B3B018E88B08B11DD135A3BA5BF2343220CE8FF750D38479D25E9EFFAE70B70496F065FCEA58A51A738CE92BCFA85CC9471383CB0222CB1CFB19DFEF1A49E18D9021C3D3D07146DA4DD863E08A69FBA5BEC0A36B8DA92D2B74EF45AA45364F5AF017BCF92645C06FBB08BFC38BD06CB9A0DEEFF1D018F8E464227442914943535319E4C926B63419DE6415C627F688E58574412837943E47BB37A572C2967BBE87A7AE4423CFB26B7AB0CC1133DFC8895FA26332C0828734ABB54C51983850C6E2C2649C742A5DD54919F7E9E4C228B5C44B57C2A0C23D34593B1414C908E97A53BEB067681844F4C231A9DC814B8FBF828A36CB8E69F1874103FEF0750D8E5173ABD655170CC3928DB4C72A93DBF3669DB760DFD252C9B61B8321BBACA740DD5A98B62197CCC933DBBB56697DA8DF8000F74A1D2A426AC58D39E0D510DE0ED7034B5719A953A9805E873575E694476F92AA4057BC1AD8C5B569F1761B3CA893D28CC375F624DE2B28FB4AE4DF74BBA52F0BE4618BD754E7D471961297DA5567EDA5E50DFBC4CC0AAB2CCC53546B3F8C8AC547F4459B72227B064149A800F0C8B3E1E0BE6234D5C196214C35FFA75BCA20C02E8D675A57342809964B9F71BF490D764E1B2F57B7D77181C98FE4EF25B2ED4300BE382E81297635E666D1671734DB71866309706A78AF7A20DCB0934E719D80915750EF9712D54EB8C54CF02E08D37E26629ED06DA3807AA8E01E6B736C44FCFC4DCE08B583944A76D70117DEEB1A3FFFDE7775B3FC7CCA8AA032EE85F3412EDABADD34D6322275C30FD85C6C7ECA99C6E516FABAB9A3563E9574F8A802896CD8BE65CE1791E6E1AAE7D2E0F224A621A0E3C8FCF869ED20FE20437F6C190F10E70516105DE0033BB3E3D807E338C73800908370D102918242D47FDE77278776B7C060FF9E25658BE069AD6D60E3DC222D292F68E06BE444249A0056C7D91786A69B999A9B050D3D797DF0A7F7029093C5906CC72BC9CB989B83D0870945F0E6A5C067D6D79367DBDCA7CDB7CC8786E4E7F2E8087D86F9ADC11FD9C3123E609EED406182F2E14380AB81FC4FBE161B08A242897EF628E5C9A3C75319F3F342AC6AB38F3E8E70E992CBFBF6B2D5AB5825AEA0A60692A1863223B8DA778256A9A13869D514B943E345523F79262F96A25084A953A3310BE4050CE5220CE1717FC1ADA440185C3F5AF8CDBF4ABD611B93228238CCE01062A410D2F70E2D6B766A19330FEF83FD5FD319E9F60BF109C6B09FD8E9A8B57DFBF5EBDFBF7E9740373B925AD6B90C1524D74D1770E3053F3E3BAD4CB485A47757B0BFF212E9FED843D6882F8DD6836847CA53596DAE4602A97AEDB00E8FF3BF53E85B6C4D99023A2BBFA83A21E11E64EB4B9E6DDC1E36EE85F7E7505396A3FB90F1B75E2DBCD6E38A7E86AFD3491F4ACFA64BE79CC466E9DB47EA9DF54700FD78646A12F7FC3CCA3317A8B61BDF4B07281EBEA6FE8F4025344890D043CE7091AFA213078890BDE88F191090D7CD04D0C26BD0AC2D402A8BA561EA7638682206C93195D723D2353310BC81F63102790BD8AC866580E7B2848DB2214A0BA3B61CAD999C4FEDAA0B8FAB5D2DB3B1DC3F17A3657F24A41A79F1E154A8D1E0871C00C9688802F46638783875AC6F854082FA2964C14316E3BC5C82AEAC9A9181077DA0599F463418FADA724C3FA27DD0C56828353EB9A1BA1DD623B1D9EC9EFD626351E2C5AAAA389F5D3F34E45331D8C24DAC10E8D80A25C6C5F6A04B119FEA130B68A784B742EB0E55DB772AC7929DE5268BD6E3875CABA473353E32AFFACD42E4AC5D137A91FCE93F4688E16C9F8390EB5979BBC212DA701B4AF2263B12B9085631F796852EC270594BACC3DC672D48239A4620340642AEE2A0EEB69ACD5A277D51B9794757ADAF2DD8D9455C67F69C76194922D4376F6A36C3C3637F8AD19B2425208172360F4C28943986D037E5518BFAF2F6AF35438CD739A95741B48CE3D32996D7A7FF7E3608A1A71BFE406E946F368CD9CAB1D5BEADE7BBA9EDE244EC3501EAFE69A79DD9B68457F558DC382E7F338FEE78B715B6C7AFF618C64E000F86999A68C294EE7B8FD7832BCA9782D839869F78D36123342EDA3724D7B75EF550BF4D573D7BA8AE73454EB5BE7BD0A73E843F741096722E4B9A275AF69C97D4D3838BBCA37AEBCC52153B03F9C64BE04AF7BF9CFFB9E1C85BCDD5E3CA7062D671CF354321E4165EC602EB5F2CA02BEF4B8E79AC26D4C7CD8377813DDD69D39EA3D3D6FA15F09C81F404E622E3DEDE4176EA019ACAFDC02F8F1A113DF882F0E57F87D72958160A12D83FD7E3676C8FD7F9FBE950DF5EFE14D8F3D6140F28F07F5E0F45A01FC1EAF47C7F23EB569F27FDF7EAE83C8C04DB2F66B9BD81F764AA180F91E218222D00C1714520F4F580DD9F48C01FC65108D4B4DDF428480C10958AC1852A2F196AE4851833A17E4BF044E237010E95DA305318E91A9FDC28703AF4C6F6C9E1EE154F726F7C46DC073E325F2DB74A5CD05391D09FAE7A51219D0255B287E11D308F89E6BF461DC46B42247E4A159A4B8DD0B74C6A7DE0465F48D1CE21AC365F86E1EC2F4BFF09339C152623E22938E7AF21BE80FD3F9F8B820F829C59E0A6B8AA0D377C9A62AE98B8AF324DD75F1E87EC343623112DBB0B3CE5EB03B66ECEC8D8204FCF6BEA02D0E623374DBC58FBA098A44D8A2D0777944299777068ABA11A5A97C64FEAC9CA7DDE1A50CA2FCD2CD54BCB46A0FA08A515AF14B1FFB59E4794CD12732395A645C10E3A383E167B6A0329F1A709EA1508E299A8870643863C8752F0DBC206EE8A16847E915666E6CEA05340E541BEC10C05A14CB56AAF64AF3A8695014F6489A3D980802EC06CF6EE785042A07420A1019C7399F3220178B6C19F1CF1A4AD8603EBFC0859F6E648501037D509DD359448C04B238C8F73A5BFE4D171AFCB2610BFC192DBF0AACB22A4D3E5BEE12738CE7C3D3B32C9285DED73F08D90F3E451954A400C1ACA6234FD7BD0FE92D636C56FEBB0836995A5D3734D831B25395ED1A47AD4192A72FF70A2C9E62B1C8B31A192C2A709B1CA2C2C2B61A015ABD4D49404D4EAC73258A2C0AA84397B4B0D6F7FA828DEB129373331D9183E3C1B4ECE6379CB62E3F894BAE083F96AB662F30787D2DD33809CE2919C9E28F476251A04BB570DF3BFDD831A6BB52932CA8673F79744D7C792ACB681D56E361C89A76A256A0C63E8A711F5AB69017139D0CAA1CC78BA62016018A7FFC10F88808200D5FFCB57F8DFBAF467D37D25E76C4AC697C40646B982452C64EA4F4252557278F28747A71EAED9F04F67B22129BC5F39A6D54A38E2EBD01855FBD6F3F1F98413623101D226D506D2DADC58104A29C47C30A05900AF0242D2B2C2D16F8FA01A5F6120C04396C4893C398F4747B84A4BCBD284807D7FFDC9080C1DA883FD14445D34D54D5D6E14AD2DCDD4E4F7F535BD8DE163B3B40204744E1EA4C3C5ABFCF88655A6694D5C55F047205F0ACD5D5AF09B3F16ADD0F13C59E19C7934F9FC712C3DF0977D84BC5A855C719200843CA18954F054E0CF60280E00F739356F11FAB47AE8D39AA2CA210443798D9D2090286854C59218EE10856D224A4D0C4E5800F9D7912D47CD4DC2ABC3A5427E3FC993D7E4416950A91100EC10919DCF70100E56014253FB5AAD19C14967C206AB3DCF835C9FD141FF164B9162B976E58107047AB017F4D418346D36A2F46BA15AF60679A98C452A871DCC3258ECF94BAAB79123953A2FBB56AE011F447D6972DB9AF2A44FA0F537303C172807223F8BF0AAE62423BC19A194C4F4DBAB4E83921468F985A3B7134CBAC44E3666ADA34DD489D2B5BAE7C6E187D576B0B4849EE1D8E2109EB74B62BB04E5AF86A1D686BF2671ADBB5C9D87084D83C4FDE059C72F3ADBE365CF09AD8239D385C31435B9F5251DD01FAB817DD497A2CD39DDF363AA37846180F2C9D39281725E2BCA41AADF39CA83243AD24B50908ED5DD5816514962290FC888C611DDBEE98223F33E5922A5FBA5AA6A28A9654FD0EEB460F4C8FEEC1DD3651B7C3FD0A6388238EA2554E6519F812BF442D7267B03065F9C774B7DC18E969140AA2887E43CD6CD096D2658891B3676962E4D2857A420011A9FC4566057B26791A3F2601F8D3193ED909D1312B1879D36E32933E841BB7B66994B90C194961060DBEDA39F7B5D458701FC4188E3D0DE7334CDCE85EE5AD632F30A3B93135E66F886420BBA2F84923962B091819DBF6529445DE934B60DEBB3E00D5FBA888B6A5DB8AF5AA1B059CDF34845477C4CC60EC8BC0809778E7CA6DF320712C72AB6C272836E56FBE839CAEB47138098E231C1C04658DE224C80050ACFB30767EFF5FBCC0632EA26FA01F235A21ADBF298CC55957CB4A4E0E5AA6DBEE673BC7D13AE37920865CE019B6A19DAF0B05623666EFC7E8474A272F9A23336C1296F56F148AE5EDCC4E61D2FACD9F5136748E300959B1C098C0C345A34E96AF4B6E69A7B9070F3776DFF2DACE4DF89E43CE3F85C1FAB6A2C296ADE8265EAF5B092540C43A80432A8FB5F829388CFD7252CBBF46EEC84C33EEF0FA711B750EFCEF069F6D72B986FEFD84D10D675F8370935DA6D388C47DC6D50E8BF1E6ABBAB6F195E2AE212FAB5D7FF066E9BC71B91F75BAF9F3FD3D6EA4A24C19663C9CA15BF9F1451728DB2CE59E1DE7E716895F9F728A20251F734776EAC685371C80F2DFF27C24B855A395F17C0A30FA8281A9C7EB74404DBBD69CD69224D7E3737693FBBFB8ECD09A20AA76BCF1240BD87F0A26C49106103A773A79F0A4B7EA3EF526CFD2B2021A428CE499697FE7EE7481BD3981E5D18B14B553417000618079F967A53E5764447D1FD9BDA69DE860ED8C92D7642FFD2237329022EC6D00A99BAF34F9C143E08F1F103AA0FEADE9BD4312DB185CD727EE58460DFA185444131C66820F4DAABE4EB32208C5E73F14452822D4793B6982E425FB2EC80A56A52F92D88A2917047C31EFE6505F3F49194FF3246F1687A8196B80F4A8A4DE00FA395C7363B11DC7CE5E2CC16B0C580D7D54E1594C63DFC7638053EB87840EF9A98912934880A0F06D5A8A4E2F750D588E8F20747723B64487413E9B3A5F1FCBA7E474471D86DC6DDC2C97D55A6B54ABC41F5080202D766617893A6812F5CC94E6C4C873C5B2B28237B350DFE649BCB3331410C280DF6E2D159D11C81C5F134D24C51B2633DA653473924D5174B363630037C2D0A75A218AD934726D506D26F708DEFF873598DD0746494598D550C536F6B7507694A665EA6E56097BF9E4062B2C3C62272049C0BDE861E8B7906BC1379FDE14CC3FB5941455BE9226FDAF2C8396999EF89AA8A737F4593FBBD219F1EF395A0239AF7D71B03DF5D1F8519573FC037B970B9D5C0D8B96A06D86D2162EB0BD80A5937E62ABC6BC6415B0C711A849635CB3D4D0D172ED022C1986C89FF1A9C86800500D0019BFC5EA86F326FFCB14AE87A31BDDE7C0FE53AEE9BECE45AEF9B4BE7C4CC7DC52EF8036E095D1E41218504645B1A6BB806AB98359CB22E29C620C748900442F1FDDBEC57429FC9DF178B0FD446267C342666B196835B7B9005D73767600F2A0AC282A040BEBFBF294104268604EC0C1CDB00845C6232B09478AC80A050B292B022C1286867E1E76168A8D01A69AA2A2AAAEAEB59DB66626841B9305C9B2B866DA71572140DA581FDD8F962E30D8BEDC92A561BD26D6ED2BD7326BFF805D2F9693E0913C462B8ED92667084E9CBDF72E5E60D202A532EE60D4B56A4F6E3998D6CD9B278F5FB488AC37CB8026D58003E2661D6E249CA61C8BCC80F2DB1EA3F642F41375F31C1608D15FF728B6FC9686A26C8FF7E4A371D79B44452A11CF4D9BB459AA9D4370E04DBDA9275164CA0437550AB3B1D2A31686CB4B35C5D64FE627D2F7F3540F8720B4224C8D86027234919AD0DA90C748A86B6A60E00CFEF7CCC5A024AB40845EBF25EDEECCBC3B6C2698F7CE9BE16C032701663432B7A0C55082A9309EFCE9A03823220915677CA06588F0EF7979826A6CB88A57EF31D4C86D380FDD932EB052BEA14764DA76AFC4F90E5E2C22037A584E0038B348171729C3B75F5CD87E0C55D7119F6E50B704A7B396B6FE821976645801C6AFBF08878F29C9E7E7A4F956CBF73CBF7B8B57356BEE14C1B7ECFBB8ADDB4879BF742F344F9F137E402913F00D091324762D8883401DC01ECD0414B52D0CD005B42933F902988C14315CA05DC5093669A163B36AF46C30E1A5883861BB5221590984C385433B33A829635A3855F0C58E2E78F865B485C95A884869A755E11CEF9A3DC2823B8447DE1CCDF7F370CC22DA05674B10175C833A4E7FD52A935DB475A691F413261049DF7522514AA50BF86BCE7ACFE899C761A2DEF6072FA6B24B4EF47C2EA0A8EABB2ECB9799BF83E231080D02F62A46B1F7C1F3D37F5AD421CDE95F6733F76AA55A89D45B67902A9A87A3F9D316958F570C3B51E36745448A2F97EF493C131A6A1B594826CACADE05D88261F82D7AD1CB7D9BC0D5A4392F7D3E633EED5CA6EADC5F5D6E21364EE6C8DA76A2E91A35B4884DE6B0522BDD1D572CC57F2E72AE0455DEBBBD6FA76F35E74CA76A582ECC6F6D6D677DE1938607375FCB4AFF899044D854DC5331C2F41F0BEF6099BD65E57187E87F3307106684B3AB07807FF3E9C672B7F230F7FDFC9F4DF20A3CF6557DFDF489F35915B2882E1966BADC34B8B50DD966D7A5DAD99A79A55F1E8EDC7F5F0F127131BA06359E22411BFDB5F19D3A29C68A830B917D1FBBB0A0EF3563DB9BC8D2A9F8C31BD65F918B2A21F8C026BC6C6F05D34AD9CBB0CD782BB5A33434BD0B64850663B02F4FF6BD6EFAEDDCEE9B8830771D738B9A9A6D3DEB5F0BFACF4CA80E768FA8538A1EBE4751323E7C5B093E5C76722ACC7830FE01F1733D93D52D8A9806FC98B9125E0BCE979C541EC41645199A117CFE9FC1C2E15E0DCA951964ED4B4E4DEF434A07D9F7030B8656AAC30DFF533882B4CF3D06AF5E2531579A484295072AE53A310ABB0EC78509F0D6246123C415E17C1FC650779AD3E4D34DDB4D1E3B839F459EE6E6D1D223E48D3BDE2EF177787AE2F6051D873524EA9833F8381BF3E1D36E299C0131ECA26AF329885ACDF31A13792575AA594067F0D7A2869A108B4EAAB5062C5791414609D21958BE4F98B534CED130C32D7B224D2975415152C00A89B26A08EF5316F7B9268BE94F574616C126101BA937BA9423F601C4B01AC18BFA2A0E85BBFBFBA91E97D51EE6230149E354968357738A69034640507056F1FFFA57D1C9BC5489C0D5E7C3CE1F38A10B6777052E963616164C1DFC228BD071AB052F008822C60BC02C2824704EA2E2E28823838D6D165637F19A7EB5B0A828BC02C2723DFF6DBDF463EA797CEC3CD556ED7071633ED40FB2663A8E5D817D9E36FE4E9ECE9E354DE912E9916C594D2836515E822B733C5E4AFC34E1D6D567E713120EF4AEA985011DBF4892C0082BEE8F2326D205DFE8C3E074209040004C0000000403000002980EE3A5A55E2D3D1D351B0020000000636170636F6D5F6D617031286279206272656E64616E292E61637400F0E6E8490D59908FE4C8DEE07590CCC7F4B541590D0909050084A84A8510970A8034340427138B21B5477B0F2FBE46FBEEB92E3D75A60EB33314025A3C464B72ECB68B423EF03CCAFEFBFA64C252F080392A74209040004E00000004030000025D26E984C65E2D3D1D351B0020000000636170636F6D5F6D617032286279206272656E64616E292E61637400F02CAC6D0D5990CBE48EE067609FE3B5365C084D4907F4B8573EA4718309AD16608495359705E25A4838C3BC8F67DF61BEFB67926F4B4C2D66AA3B01D99F5F10D25AC786B602E69CAE267F7BFEF830999788B9D274209040003F00000004030000022418DC3ADB5E2D3D1D351B0020000000636170636F6D5F6D617033286279206272656E64616E292E61637400B0AE4C2D0D4D5093E50B107B884FA937B0A7108257108210E87410BF266E6C2438EE890B3D2AF2D465B4ED4CA58606EC48B013D157D87FF41EA7EA04E11FDFC98A9D650D6C74209040004100000004030000021A98947B625F2D3D1D351B0020000000636170636F6D5F6D617034286279206272656E64616E292E61637400B0AE4C2D0C1110CBE50B906721352A20ED4708E1197C542597FF7AB208B3E1F042F59BD6407266237329257F8F583F8DFE3B037D1C1B5F153320F4792E8F0A47F3131536CA00ED74209040003800000004030000028B17FD8A32602D3D1D351B0020000000636170636F6D5F6D617035286279206272656E64616E292E61637400F0A8D4550D0C1093E50B507C210510813C0A220A01061208A11FA4BBB21F09C8ECF18BDB51B6CBA2942C60DAA54D1EF2E4C8971594FE7FE34C827DC41B597420904000400000000403000002ACE7CA8D85602D3D1D351B0020000000636170636F6D5F6D617036286279206272656E64616E292E61637400F084D7171115508FE4C841CE427D2261692A0408A410825790821258582178CF866174476D1ABEF2377D69A53A6543615987C054DCFB18BCC08322DB9DFDCFE76623BCD23C4C74209040003D0000000403000002AFB34F7D99602D3D1D351B0020000000636170636F6D5F6D617037286279206272656E64616E292E61637400B0FCBE801151148FE4CBE83821391F30C2D254149608913E2544A4B25910BC677E81CDA8DF6E6B0BF0FF40FDA247A076ACBC9CE2A482A2C22C5E67FE9CC8375B4045407420903C00A20B0000772800000240E0F31EFC692D3D1D3517002000000070616C6C6574655F737570706F7228676D36292E676D3600F0726F91E7187E9143A4DA7EE04C6F2C214A327DCD15F353BF29104D9BCDC753F18C37845F0D576135EA96DA1E0BE329FD004D52B2EC27BF0EA5C019E73FB624FEA26AD94627E599C03BB0E68F8AFA3CEA2186B6213C2654792F251E01E5A102258FC921670CCFB4E2E22755F2EAA6D9C255FD5F7FFE13F6D3B4A82D430ACED7A4CCBBE163C6C3A680BD8A4B34E544CE0298FA6E37131BF4320F65F7B3E0C12B08CA69EE2BFCECC7877A4593CC81368986085B8DC51C8581851DB4AD68C166164F6C96CC8AF12DFA37B88E83737BFEDAD04411B8EA3E0DCDF48535877BC80639ACD58D41421815A07781002D16DC692127756CBD36BC69E0B488552DB70D34DFE44903118C5D5D5CCB9622E02339870E153D171CB56829A5BBD8F0ED380A28E88D79BA7A54FE54FAEB99912AB0B882C338FFFC87A7A8D7C0AF1EE565831CCE3047193E83381E0FABA690276DE545337BC564CC0CC631E931C9B23ABCC80F7A7D340A3A34108A860CAA1A2C7B714D84FBF325656F1CA90CF20C5748DBBEE53E09ED500D09E99A2EADC5BBBC6FFE27CCB2DCCBE2D5801B9BAE8991D6AF41B406E2B2215336AEE1C502135165A4CD6C10C2A09B3326CF5CBB54311DA13F192CEA4DC9C3971905C73DCB519B022CF40A2108A42FA4B328A4F265A317CE9BAD3225AEBE313664E2097B7A32BD975AD63C0E66BAABE6477209EA841016ACFBEB9E889FF8945FCC9F7F919051348AB2F878E48758F0149E8FF49B911B0853F9322690FBDB92697C98308031B33C451D5695ABBFC6223BE116D27C6938DAB7258CCF2C76308384FC5568BEEE1F1896903E508E70DC7122BE09D10EDDF2BFFED0AFCE57D9761FAB9EA8A63CEC94A5B31EE679E2DEEB936680B2A3EFD24660C93857807A31652516E0FF3AC73CEC96D93615220255D2BBE3A8C6C967A7160DF400D40A69554D60102257E3395E611871F1F8A07EC82FF1D0BBE5248362BD95CF6F71706E0A78CA9F2F96E942230C1203A49012BE8809734BA1A429244B63BBF622F95A9DC469DBC858CC34253220E7296EC7AE4DDAC07F7CB5CB7CDACFCED3E550F9C615AB9349D3E8ECB86D1FBD3DB16CE0904ED357BE0A5CBA7BE8954BF45DA4283CBEBE50D810715BE98DFB4A14CFBFB5CD1E380A727DEB8B19122ACBCF8C79E130B50AA96A54EE2C66D6DF9DBA43E3859747D99A1B66F49FB05A7398C3DA1432D2A8E6C9D98E76C2513F78F5490566D67D24B85D75FDD82574373EF6615E41416276B97C28F408B9EA46933EE734324E335F2A0B737C66652E4181409CA49595EE2FB77F72508A43FE2F2B8202CD102AAD2777CB2F671C731F96B4D4ABC723A398F9AF6C7BDBC5458159AAF1AF0C5EC024BC7D04226AFA957EE727034C616332B8590128078489D97931DEACE465D22046FBE668169B8E7B167FFCCED9D52CAE796AE2321D6576A22A48332836F293DF596EE10C38E3B3BD5122F4EF2DD136971F793C1C8EF157EED0C0227E599B9F943A65DE8AF4E6547AEC4A31C85CC5270E13CFBFF34E1D9745D5C9E4BC5D75FF2854F76575373F5627B2453780870CB7BFA4C18C29E26333DA87C1CD066BBF32E2B8D2781906A5A41DC2BF258020FFFF1AE8C5A76A87E95A7B84B3CB744E97081F50299619B4764E6ECFDCD8E63FB7BEFBA84CD0E390838FEEB709736486BE9E31E6017B8738E43675811BE1C5230DE07C31A5BCD4F28DDF3D3D825BB40B73183AF633AC5E5C09F279703A702028DA1405A36575CC1DD3200B582D78788E23A358F7037A7FC1D783B14FA2B4145547351CF89CE8D262C53C64CD9148FD9E2FFA1A19B9321561BDA951DE4D0924ECEBCE82EBAA1E7D64A88CD41179AAD0A4A312B2A1774C8B30CE28435B37267F8BA0458B4A53EA086ACD9F097E48CB62D0C34E94008C55DEB31E34D4FA13F3FFFCE830C5E38FC17D240D207001E12DB118C906B43E3AD1224B58134C0E07E685A5A4E4723FDEE879AA6AA2F13E66CB5B80CF942E7E61223BDBCD2FE5460A8244E4A7D7E60065F61E892FE59E74FA3160C24B17A04BB6A671905135D91105FE3CB75D2883E59F3B32096BC6ADC1378E2B975A38D1F7537AFF3B371819C39A861C28A88F604A14D1CC5182CF42AD67C3C53584367C9A526280D583A56AEC41AEBB1512B7E640EAB34B6B2E30FBDCAAEA21EAF83CA69A4FDB83E57E24705515273C0F45F5AB0A43CC0D8D4E61ECDAB651651F5CDFEB43850406FF509CBB9BCB56F2E1ED7D7BFF8D578FB43EDEC079875966FDED167C1DA00F788FF1A8A77990EC87B77B5496069BBC3B4AD5EEFCAB2890389697227BF4587ACC92CDBEC6BB7931B8B507582C67AD510F90B5420BB3E417A0198C12514849A51ADA5231A530FDC1358E1771805531767113CE0C3EAE342B62AE31F36CC9D32A982D42C322FA8BB96EA8C68917F931F37AB7E4816005CEB0EF0838A5486C0F4C213D4987D4410DE400C9BF392262F1AB1B0404CA9378FD4FC599E5E7DCFC5613EF2033CA091384161C27FF189D957112A4DAA6488882398E2D1B69EF303EA97BAC723BB59CEBB8D2F4EF002DFFA278F97F18BE8503B82008C1C96CAD4F692521A2E01D09321EBC75F8BD7D4CF87F36E4A12DC8367D338F3A344386836EC0AF43334EEF6FBD47BB4BF03FBF8B1BB184C633FC13ACDDAA33DF8C3D9150C1DA6A7C9B561DBFFA1C11BCD5C0D58AFC4A532F36E6285897C6FBD491D8E66EDF54857B16696F94814ED1973C012CA99F39F2009A1347032665E0778A3C5C307B1ABFB46DC02F8F64DAF5CFFB37863910A322E4D6765D26BD54769FFA63D7DA34330B5A5565C1D3EB8A3D7768EC03F983819DDEE49353919EF73256ECE80AB6F0BA46D1652B3A5B6AE742526F78462605F9C704962CB583DAF1D942974A1E4D34535C34D1957CB59E1E23FE0283D7A539D4D24D6DA8B2CDCD5FC007693F698AA2FAE26E11B85263C064100235408B3A96BF325FB3DD88275702C928332E9522A318699632A1D3306DD8B2E2531E257D00296E086CD6E293C6503DA062919649D407D0F3BAE57CADF7259C106C72135F4E4E520A365D2DD034E29EE36C35C9B30F77B882574AD60DEF33258F479F64F137E3E7543D1CB8F6F6DB3CFFD73A1FB8133BAD470C6A1B36F446D455C1F04C130F1C48ACF68CF21056F6297E1AA7FA44C132A9CD633BFF157BDC0480A41842097C4249DD2524F6DF6EFBD827AA8BE7FB51D5AE0E9497FF76634B8B76F4500CA1CCC21EFBBEE316F7D3D91A1F1FD3661E3115C95610522815D41FE72FC23E6D032FA2BD4C85D19B2B2A52D085CFF72C6FD970D075513A2B9321A95E5C948773DC3662D4E554B04DBA70F0C1B8DC93A24DB3EBEEF78E4C018E7EE5F5739A6B787292E25C46B504C06095737F19EAD2CCBD3EBF1B525731A68741CA348891D13D61D189A2EBB6E35586A20B2D77828D32113502A291B7D738E32DC0B36C5757A47DA12C2161D6B429A490526FA34DC22F62E778C6F9FF2BE6508B4487E15E417528FE5477CB141442D3C0E1B63F9063A7A610497EBB9E275C5D4B0D7C6B3F4FC2BDE9C9E0324A007F05EDDB963E2BB15BA651AB5DB3E882A3B6BAF6FD577C64C054DD1241E7199CC36AFA0BE3B3C3EE547E17ED91358EA22FF29AAB60267AEF829797C4C1D4FB70669030B511056C7AAF3E1685A53EA14E06A1B81EA9DAC301184A35FDC8145F971C7AD736EB4D2BEB86D7ED6FFA11DD3432A7E61FC36CAD386D44B67EAD7E6FC6621BF137C230CEC626A0DC77752CB8D22CA9C2F4992BE13B60232C43FA4F201573C7A2925C7CF962B8E528B1ABED539BF2F47C60DD6950CFE1075D27DF1021655144ADB97104FAF681558DD387ADE1B7011A1FB368A27127E2FCFAEE0C46B8BA12D2A07974ECDEC74AD8F6CA21AA5341BF65DE26E2677C46CDDE3C2F07E2C31545D34E9CFB54168982E552328E5281A3DE84CAFC58C9BD181E9173067402FE1A8184DA50C59249AEF7934051BE6ED7B61A0D8D258554575012ACAEE49C9947BA8B2CF9F7410390BFED6E82D0C09B7F6BF30FD3ECA18A6E13BDF9C0EB9D874EB2F6EDD8341190BF841F6F655A342C84F45887CA9DFEC775B9782BA348F52B6A55F33C901D77B588F8B7467F918E4C7B0FA8D8769887314B8B3F947F60CF2CF95A46AF672728BD42A23138883B50E18EC75183A0210E2C84DBDC02180000BF8867F6A9FFD4C43D7B00400700





Cores Indexadas


Toda imagem que é mostrada no nosso pc possui uma "estrutura própria" que diz como os pixels que a compõem estão arranjados para que ela possa ser vista por nós (pelo olho humano). Dentre os vários tipos dessa estrutura, existe uma que é bem comum quando se trata de jogos (de qualquer plataforma), que é a imagem de cores indexadas. Ela vem pra reduzir o tamanho da imagem (em disco) além de tornar o processo de leitura mais rápido que os demais. Nesse tutorial que eu fiz você vai entender como este esquema de cores funciona em um arquivo:

http://www.gamemakerbrasil.com/tutoriais-f17/rgb-e-games-as-cores-no-pc-t211.htm?highlight=cores
http://www.gamemakerbrasil.com/tutoriais-f17/rgb-e-games-criando-paletas-para-o-seu-game-t212.htm?highlight=paletas

Mesmo nas versões mais atuais, o Game Maker ainda não oferece suporte a paleta de cores, mas eu consegui criar um esquema legal pra trocar a paleta dos arquivos gif antes de importálos como sprites. Isso vai te dar um leque enorme de possibilidades, visto que a troca da paleta pode te poupar muito tempo de programação e memória pro seu jogo (e consequentemente velocidade).

O método é super simples e consiste em abrir a imagem em modo binário, substituir a sequência de bits da paleta interna do arquivo por uma sequência igual ou menor de uma paleta externa, do tipo *.act (super comum, fácil de fazer no Photoshop ou qualquer outro), e pra que conhece o Mugen já tá mais do que acostumado em lidar com esse tipo de arquivo e trabalhar com ele.

GM6, GM7 ou GM8 - Como usar o script:

O script é idêntico à função sprite_add, exceto pelo fato de que o arquivo da paleta também é especificado. Para que o trabalho de alteração do seu projeto fosse mais fácil pra você, eu coloquei a paleta como primeiro argumento do script, daí você pode fazer uma substituição do "sprite_add(" por "sprite_add_pallete('paleta',"


sprite_add_pallete('arquivo da paleta', 'arquivo', imagenumb, precise, transparent, smooth, preload, xorigin, yorigin)


Download do exemplo com script: http://www.4shared.com/file/i88Z-Kok/Pallete_support_for_Game_Maker.html

Créditos: Criado por BrendanLS (Capitão Commando). Não é obrigado a colocar créditos, ok? Smile Até mais aew e boa sorte.



Última edição por Capitão Commando em Qua 15 Set 2010, 00:38, editado 2 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Anderson3d em Ter 14 Set 2010, 23:48

Simplesmente foda. O Mugen antigo pakas ja trabalhava dessa forma, não entendia pq o GM não tinha nada parecido. Vc é o cara.

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Convidad em Ter 14 Set 2010, 23:52

Anderson3d escreveu:Simplesmente foda. O Mugen antigo pakas ja trabalhava dessa forma, não entendia pq o GM não tinha nada parecido. Vc é o cara.

Valeu Anderson. Agora é simplesmente um leque gigante de possibilidades. Eu já tô reestruturando um monte de projeto meu aqui com esse novo esquema hehe! Acho que o GM não tinha isso ainda pra não "dar trabalho" pro usuário, já que ele teria que trabalhar com paletas além das imagens...

Valeu!

Convidad
Convidado


Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Kyuubi em Qua 15 Set 2010, 06:39

ah cara ele serve pra qual gmk 7,8 e sério o mugem é muito bom eu já falei como eu não sei criar os chars(eu já tentei mas consegui criar um char com funções básicas andar,pular,morrer,atirar)eu uso um programa pra retirar uns sprites Happy
mas serio este esquema é muito loko msm,eu tinha o mugen a algun tempo meu irmão juubi já fez um game com uns 250 chars só de naruto,ew eu nunca pensei nisso^^
como se diz cara vc é o cara!!!
flws!!!

Kyuubi

Número de Mensagens : 443
Idade : 23
Data de inscrição : 28/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://animeworldmugen.forumeiros.com/forum

Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Convidad em Qua 15 Set 2010, 14:11

Kyuubi escreveu:ah cara ele serve pra qual gmk 7,8 e sério o mugem é muito bom eu já falei como eu não sei criar os chars(eu já tentei mas consegui criar um char com funções básicas andar,pular,morrer,atirar)eu uso um programa pra retirar uns sprites Happy
mas serio este esquema é muito loko msm,eu tinha o mugen a algun tempo meu irmão juubi já fez um game com uns 250 chars só de naruto,ew eu nunca pensei nisso^^
como se diz cara vc é o cara!!!
flws!!!

Ele serve pros GM's 6, 7 e 8, todos na versão "Pro". O Mugen eu demorei um tempão pra pegar o jeito, mas depois fica bem fácil. O foda é que demora pacas pra criar um jogo nele, fazer um personagem bem feito pode demorar meses!

Mas esse esquema de paletas é massa d+... tomara que a galera aprenda a usar. Happy

Convidad
Convidado


Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por vitor_liminha123 em Qua 15 Set 2010, 14:46

Cara, se desse para explicar, ou algo assim...
Pq tá muito difícil de entender Evil or Very Mad

vitor_liminha123

Número de Mensagens : 510
Idade : 18
Data de inscrição : 16/08/2010
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.newgrounds.com/tanber

Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Convidad em Qua 15 Set 2010, 15:02

vitor_liminha123 escreveu:Cara, se desse para explicar, ou algo assim...
Pq tá muito difícil de entender Evil or Very Mad

Quando adicionamos um sprite ao projeto, normalmente o fazemos pela opção "Add Sprite" na janela do próprio projeto. Mas é possível adicionar um sprite através de código, usando uma função chamada sprite_add(). Quando essa função é usada, ela "procura" um arquivo predefinido no disco e joga pra memória, pra gente poder usar durante o jogo.

O Game Maker permite que façamos isso com vários tipos de arquivos. Dentre os melhores pra se usar em jogos, o GM não permite que usemos arquivos BMP-8b ou GIF (que são os mais comuns de cores indexadas junto com o PCX) alterando a paleta de cores interna do arquivo! Essa paleta de cores funciona como uma tabela pra indicar quais cores o arquivo vai usar ao ser aberto. Isso é compactação de informação, pra deixar o arquivo menor.

Quando usamos o GIF (que usa paleta de cor) o GM simplesmente "pega" a paleta interna do arquivo e não permite que usemos outra além dela, ou seja, as cores daquele sprite serão sempre aquelas de um jeito ou de outro.

O que eu fiz?

Eu fiz uma cópia do arquivo original do sprite através de uma função (como no sprite_add que eu citei), porém, eu abri esse arquivo no modo binário e editei a paleta antes de importá-la no jogo. Sacou? Daí o Game Maker importa o arquivo com a paleta interna, mas, ela foi alterada por nós.

Tudo isso é feito pelo script. Ele está bem exemplificado, mas se tiver mais dúvidas eu posto outro exemplo pra você Happy . Nu tutorial, eu expliquei bem básico, como funciona o esquema de paletas de cores. ;)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Janx em Qua 15 Set 2010, 17:09

Incrivel!
Muito bom, ainda não testei, mas vou fazer isso assim que puder!

Se realmente funcionar, Fight Arena vai ganhar personagens com cores diferentes para cada time! Achei que ia ter que mudar cada sprite u_ú

Mal posso esperar para testar!
Editar o arquivo da imagem, ótima idéia. Para isso você teve que aprender como funciona o formato da imagem, certo?

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por vinians em Qua 15 Set 2010, 18:33

Fatastico Captão, isso só poderia ter vindo de voce mesmo hehhh. Mais como o JanX disse, tem que ter um conhecimento profundo sobre o formato do arquivo. Atualmente pouco se usa cores indexadas pois utilizamos true color com blend modes etc.. Mas é uma técnica muito interessante.

Mas sua idéia foi muito interessante, inclusive tem aqueles efeitos de rotação de paleta que eram muito interessantes, o pessoal fazia efeitos muito interessantes.
flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Anderson3d em Qua 15 Set 2010, 19:29

Capitão Commando escreveu:
vitor_liminha123 escreveu:Cara, se desse para explicar, ou algo assim...
Pq tá muito difícil de entender Evil or Very Mad

Quando adicionamos um sprite ao projeto, normalmente o fazemos pela opção "Add Sprite" na janela do próprio projeto. Mas é possível adicionar um sprite através de código, usando uma função chamada sprite_add(). Quando essa função é usada, ela "procura" um arquivo predefinido no disco e joga pra memória, pra gente poder usar durante o jogo.

O Game Maker permite que façamos isso com vários tipos de arquivos. Dentre os melhores pra se usar em jogos, o GM não permite que usemos arquivos BMP-8b ou GIF (que são os mais comuns de cores indexadas junto com o PCX) alterando a paleta de cores interna do arquivo! Essa paleta de cores funciona como uma tabela pra indicar quais cores o arquivo vai usar ao ser aberto. Isso é compactação de informação, pra deixar o arquivo menor.

Quando usamos o GIF (que usa paleta de cor) o GM simplesmente "pega" a paleta interna do arquivo e não permite que usemos outra além dela, ou seja, as cores daquele sprite serão sempre aquelas de um jeito ou de outro.

O que eu fiz?

Eu fiz uma cópia do arquivo original do sprite através de uma função (como no sprite_add que eu citei), porém, eu abri esse arquivo no modo binário e editei a paleta antes de importá-la no jogo. Sacou? Daí o Game Maker importa o arquivo com a paleta interna, mas, ela foi alterada por nós.

Tudo isso é feito pelo script. Ele está bem exemplificado, mas se tiver mais dúvidas eu posto outro exemplo pra você Happy . Nu tutorial, eu expliquei bem básico, como funciona o esquema de paletas de cores. ;)
Vc é hacker, engenheiro da computação ou coisa do tipo? isso não é humano cara... Happy

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Convidad em Qua 15 Set 2010, 19:50

Janx escreveu:Editar o arquivo da imagem, ótima idéia. Para isso você teve que aprender como funciona o formato da imagem, certo?

Além do GIF, eu estudei a estrutura de arquivos PCX e BMP-8b (bitmap indexado). Esses dias eu criei um suporte (no mesmo estilo desse) pra arquivos PCX no Gm. E o mais legal foi que eu criei a função pra ir desenhado pixel por pixel do PCX dentro de uma surface no GM, ou seja, sem dll nenhuma, fiz a coisa "no braço mesmo".

Porém, o PCX também tem compactação, isso é que é a parte difícil e eu ainda não entendi muito bem, mas com o tempo talvez eu consiga. Eu tô criando um projeto no GM, o mais legal que eu já fiz, nunca vi ninguém fazer nada parecido, e pra esse projeto eu criei além de um formato próprio de imagem que eu chamei de "Minilab Picture", criei um paleta 256 cores padrão pra esse sistema (tipo aquelas padrões do Windos e do Mac).

Já tô nesse projeto há mais de um ano. Eu tinha parado pra me dedicar à um outro que é um programa linha de comando pra administração de redes, mas há uns quatro meses eu voltei a mexer. Eu acredito que quem baixar vai gostar.

vinians escreveu:Fatastico Captão, isso só poderia ter vindo de voce mesmo hehhh. Mais como o JanX disse, tem que ter um conhecimento profundo sobre o formato do arquivo. Atualmente pouco se usa cores indexadas pois utilizamos true color com blend modes etc.. Mas é uma técnica muito interessante.

Mas sua idéia foi muito interessante, inclusive tem aqueles efeitos de rotação de paleta que eram muito interessantes, o pessoal fazia efeitos muito interessantes.
flws!

Brigadão vini! Bom te ver de novo cara... Smile
Olha, não sei se é verdade mas dizem que imagens fractais são feitas com apenas um algoritmo pra criar as formas. O resto é tudo rotação de paleta, pura e simples! Mas eu nem sei por onde começar a criar uma imagem fractal kkk

Anderson3d escreveu:Vc é hacker, engenheiro da computação ou coisa do tipo? isso não é humano cara..

ahuauahauhauh Brigadão pela força Anderson! Very Happy

Convidad
Convidado


Voltar ao Topo Ir em baixo

Qualidade Re: Suporte à paleta de cores (Indexed Colors) no Game Maker!!!

Mensagem por Conteúdo patrocinado Hoje à(s) 04:50


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum