diff --git a/tests/operations/index.mjs b/tests/operations/index.mjs index bf440414..b9dd780f 100644 --- a/tests/operations/index.mjs +++ b/tests/operations/index.mjs @@ -39,6 +39,7 @@ import "./tests/Crypt.mjs"; import "./tests/CSV.mjs"; import "./tests/DateTime.mjs"; import "./tests/ExtractEmailAddresses.mjs"; +import "./tests/ExtractQuantisationTables.mjs"; import "./tests/Fork.mjs"; import "./tests/FromDecimal.mjs"; import "./tests/Gzip.mjs"; diff --git a/tests/operations/tests/ExtractQuantisationTables.mjs b/tests/operations/tests/ExtractQuantisationTables.mjs new file mode 100644 index 00000000..762d7614 --- /dev/null +++ b/tests/operations/tests/ExtractQuantisationTables.mjs @@ -0,0 +1,23 @@ +import TestRegister from "../../lib/TestRegister.mjs"; + +TestRegister.addTests([ + { + name: "Extract quantisation table", + input: "ffd8ffe000104a46494600010101012c012c0000ffe1203445786966000049492a000800000005001a010500010000004a0000001b0105000100000052000000280103000100000002000000310102000d0000005a0000003201020014000000680000007c0000002c010000010000002c0100000100000047494d5020322e31302e31320000323032303a30343a30322030303a31343a32310008000001040001000000000100000101040001000000000100000201030003000000e20000000301030001000000060000000601030001000000060000001501030001000000030000000102040001000000e80000000202040001000000431f000000000000080008000800ffd8ffe000104a46494600010100000100010000ffdb004300080606070605080707070909080a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232ffc00011080100010003012200021101031101ffc4001f0000010501010101010100000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b51100020102040403040705040400010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f009d011daa55426a5487b9a995315e2dcd5f76355714f03d69eab5204fa5213631073d2a500d0ab5281e955b12342e6a402940e94ec502136d285f6a7aa8eb4ea603760a360a93a514ec21a13151cb087522a6a319a2d7030e6b468a4dc0719ad4b72be52e7ad4ed10718201a16d946302972b1a6008f6a5c0a3ecd83c13f9d1e437f78fe7556905c5e28a43037f78fe74d303f6634f5ec174498149814cf265fef9a3ca947f15177d82e49c5253364b9eb48565ed45d85c711cd46e38a5db3535966f634aec771ea3e5148d4dfdee31814844be828b85c2a273f37d29c566c1c0151149cfa5171a6202092076a8e45dc7f9538472e7914a508a436caa0548a3245482214e08054f280d029e0669e880f152ac600a6271644ab4f02a5083d29e107a5161588829c53d54835205a785aab08880f5a754a17da9c1053b0588307d28c1ab1b451b453b088029f4a705352ede3a53828e29d808b1ed4e02a4db4b8aa480660d18a7e29314c2c3714629f8a3145806e29314fc518a008f1cd1b69f8a4c500336d1b69f8a43458066d1e948569f8a4229011114d2a315215a6914ac32228298631531149b6934514f69cd2aa64d2e326a55181595cd3600a053c0a00a7014d221b0029c07a500548055224681cd4805005380a62100a7014a052d5580314639a5028a621314b8a5c52d30131452d2e2980dc518a7628c500368c53b1462801b8a314ec52629d8437148453e9314ac0371498a7e293145863314114fc5348a006114c2b9a9714d2314ac32123da942f34f201a00e6a58ee520bf367b53c0cd2014f02b0468c5514f0bd68029e05522588a29e050053c0aa2400a70148053b154908052e2814a2a841d0520c1a76280314ec018a5c518a5aa1098a296968b0098a314b8a314ec02628c52e28c5002629314ec518a006e29314fc5251601b8a4c53f1498a2c0371498a76290d00348a6e39a7d348a918c2b480734f22802934328815228c5340e69e05739a0e514f029a053c552258a053c0a68a78ab44862968a5aa100a5c734829d4d08314b45154014b4514d0052d21a01a62168a28a0028a28a0028a5c1a8e591208cbc8c1547526801f486b257c4ba53dc8816ed0b938e871f9d6a860cb90720d09a1b4d6e2d252d250213148453a90d031b486968352318450052e28a43290eb4ea677a78ae6342414f1518a9055a258e14e155e4ba821204922a93ea6acc6430041c8354890c1acbbcd7ec2c66f2a59977f703b559d5af0d8d8c9285c9038af25ba9da7d465773cb1cd4b93e87a197e121889daa3b23d6ecf51b5be1fb8991c8ec0f35740af2cd22fc5b5cc0f0ee0fbb0d93c1aee7c43e228740d256e9c0676002ae7a934e9cdcb47b8b1f81fab54496a99b8173587e23f12da787a2533b6647fba83a9ae4b4ef8a0649b6dd5b2aa31c0653d2b9cf1b4b71abddc574a4b46170b5ba8be75196871c69bbfbc76da37c40b7bfb811dd47e406e158f735dbee4f2bccdc36e339cd7ce2baace618ed242aa91b641c722bd8b4cd621d57c3114169701ee52155719e7200cd3ab174d15529a5aa39bf14f8f6ee3d5dec34a70a118297001c9ab5e19f166a6dacae9ba9e1d9c021b0011f9570fa8e8779fdaf2300caecf9e477aedbc15e149edeebfb535173b97ee834df228ab3d46f9144f4691d618d9dd82a81924d73ff00f0965ab4ec918dc8a705b355fc4daa3cb66f0da36ecf04835c269b78b13912a6e0410413d2b927525bc4edcb7074b1319393bb5d11ebf677515e40b344c195bb8ab02b97f0948d169734b2711062c33e9546f3c633bdd98ec910a29c024124d68ab2514d98ff0067d49d6953a5aa89dc1c2ae4d797fc48f12ccb1ad8dac8554b7ce57dbb5763a278817562d6f2a6c942e78e86b97f147836e2ee779601e62b3138ef5719a7252e860e93a15392aab3479eb3c50e931ca97a1ae19bfd581caf3eb5ed3e16bb371e1fb579a405caf393cd78d5c7872e74fd5224b942b1e41e6bd03480cf02c71395007033555ea28a4e3a9cf8ac4460d452bdcea359d6e3d3422290d23e702a95a78826721a54050f702b91d60ccf749212588c819ab9a75dcb247e405ebd45734a726b9933cf9e225cca51d8f438e412c6aea7208cd38d56d36268ac6356eb8ab26ba62ee93677c5dd09486968a0a434d262968a4328815228a68a7a9ae646848ab54f57d4a3d2ec249dfaaa92055e522b13c4da4cbaad898e16f980e99eb4c4ad7d4f1796f2ef5cbab8ba9ee151914b8dc7af3d057ad7c3ebeb8b8f0dc6d72784e013e82b87b3f877a94f77b6483ca8f3cb161fe35d4f88e45f0f7853fb2ec199660806e5e0fbf35d7567095a31349b52d11d05ff00887453bedae2ea3ce3045613785edb54266b0bb4643d8f6af21f343b032962e4fccc4d759e1cd7e3d1357885b4f2bdb4800914e7afd2954c372ab9a414a9fbd07a9dec3a258e8b209af66427f8545721e3bbc3aa0dd1b131c6df28f5ab177a9cbadea8cc0b6dce114fa5477b69e54be4cc0119008ae284fd9d44cf6e382f6d053ab3bcdab987e1db09351b29ed63b3df2370b29380b5ea5a26890c1a04769a8c51c8e9ed914df0f595b5a59a2c48ab9e4903ad6e9c62b9b11984a537cab43c4a9057e56784f8c05bff006cedb6804518ec2ace83bb4bd734c9609c31908dc17b023a7eb5b7f103458ad996f328ab213851d6b95f0c3c56fae412ce72a0f19af6613e7c3f32e88a824d58f7d4b889c06d992475c561f8a6fe78ed9522422327e661572cee6378959581069f7f147776af1381823a919c5782b1b51ced2d8c2a504e2e28e6ed824d1011a966f5ab89e1eb50d1ccd92efcb0238abba3d945690844fccd694ab88c9f4e9515315ab51446130ef0d2ba96a4371662e34d7b453b1190af15e7d756d3e877bf376e55bd6bbfb7bc05f63119acef15dac573a4bb797be403e5c0a542ac94d467d4f5b098a961e4e2d5d3391d2bc5767a5ea6d3ceaee4ae005e6bbdd2bc5ba6eab692cd1b9531a96646ea2bc36dddb4bd404d736c5f69fb922f07f3abb693dc5d5f5c5c4198229b77ca9c0e7b62be83d8aa71d1e8615e32c5d5bc56be45ff0015f8b5355d658db438443b4127ef568785ee27d4b72420ef5ea2b933a5dc594eb73b44aa8db88eb5df7c39b69629aeaf658bcb8e5c0518c67f0a55bd97b3d19cd8bc15a3cb5236674c21b6458ed640af2752715a16f6b123abaa81b7a62b325d3675bc69d49209c8e6b5ada43b003d457835eabe74e0c214a31a69245abed420d3f4e92f276da91a9635e732fc4eb996edfec763be14ff006b923d7a568f8f96ee6d38c51ee1111c8ec6bccb4e96faca6963b78c8671b4e573915ede15bab4b9a5b8428ab37b9eefa0eb70eb9a7add420aff00794f635a86b95f01e933697a2e275daf210706baaaa39e49293484a414b8a502908a58a781494e02b9916396a4039a4514db8b98ed2069a560110649355b6e2b5f443a5952de26762140ee6bceefaf9355d4a4de14c61885fa559d5bc57fda313410c61633fc59e6b2f4bd2eeeedc491c6db327e61d0d2e64cac7607134a929356b9435cf0ac538df66804d8dc429c822b2f4ad2238199e752eebc0c1e0576daa69f75a658bcacc72ebb071d01e2b2b4fb6b8589b6ec1b86391cd375ea2872dceaca9508d37f5a959f44d98f033dbdd6e438ad7104b7f0b4f21240e4b7a1acb9a1962bb6575e3d6aeda34d2910479c31acaa5dfbc7d453952f676a725a75f237b42d51e3912d18963d89aec63f9d3935cc58786a5429334f870738db5d2c4ad1280c735e56225072bc4f9fc64a9caa374f6384f891a4ddcf0c77684b431f1b476af3a13174863588298cf2e3a9af7ad5624b8d3668e4fbac2bc42ff161772dba28d9b88048e715ede5b5dd4a7c92dd1cb1d363aad1359ff48b5885d663c80c0d7a643b5e20720822bc62ceda29c5a2e9fbdae73f38f4e6bd26dc6ab6da4e15374bb78cf6ae2cc28c79938bb1a3f796ac96ef58874fba31f5fa76a65df89ed21d2a6bb2e3318e109e49ae4a195a49c4b740b127e6159de2089a6b397c953b37640f6cd2a386873c533d5af97d38526efaa57bf433bfe12ad5a6d45eea394edddbb68030057a3f87b5f875ab745382ea3e707d6bc934dbd7b17955635632214208e9918feb5ddf83746be813ed7b0a863d0f715df9851a4a9b764bb1e52d746757aff86ec755b26df0859072197835e72902da3b420602122bd5a6be48e12b20c1c74ae3ee74686ea691d6429b8e4715e7612a4f91c64f435c263e8e0eadeabdcce7820fb0c722ca1a46eabe95b9a0eaaaee6290c6a5400a0715cbea514ba542cd2066553f780e2b0ec75d617bb9b2a9edd6bad61655a0edb1eae3311879d2b5f99bdbc8f728d95d3ad58b7b5802f984739f5ae2b47d724bcb712a32f979da49eb5d75be5a3049eb5e6c7fd9a4f9e373c1a9076d19cbf8c7571e625ac3b4a8fbdc66b9db37b682fe09c98dd98fccadd056ff008bf4b2236bb8ca80065b35e55f6a92e351114b3989376377a57a98683c4479d3b1ead2c461e9615534aedee7d1b1952836e31ed4eaf35f00ebb72dabcda5cb3fda2155ca487d8fff005ebd28d75eda1f3f38f2bb05145148453a7ad329ca6b9516c985715e35d4dd63fb1e085619cd76aa462b0fc41e1f5d5e30c876caa383435768d28cd426a4fa1e6d6b2ac64ef5c8c57a2782837d8246230a4f15cca7836f626f32e8c691272cdbbad656a1e3b92d14e9fa4e62863257cceed8ef554e9ca53f74f6b30c6d2c45150a7b9d778df54db0fd91475c127f1accd11a2990877db8e95c2cf7baaea08d753493c883ab1248a6da6bb3d8c6db5989f73d2b6786938dafa9f3789c239d9c7a1e951dd69300906a263dbd467d6aa4fade92d7102d822e0372401d315e6f235c6a5768be699647ed9e95734cb1b85d6d2cd7e693715201cd296162a166f53ab0d4dd28a527b1ecf6974af12b0e86ad6f045739a5c1776ede4480aaafa9cd7431200013cfd6be76a41467cb7379a4b545c96da36b46527191d4d78e78a34b492f2558dc390c795af48f13eb22d6c0a464877e38ae112196ed1e655caaf2c6bd98d58c5a9533b72ec0aab0752b3b22d7802d05a2cbe601e616e0fb57a202bb07ad701a2c33ac827891b01f07078aed57ce30703e6c71cd79b8d6e5539df532c5d154aa72a77b193168f13eb12dcbe0a9e8bef5b525ac2f098d914a91c8c564d9cd342cc2e061bbd5a9357b651b7ccdcde82b29c6a49d96a615ea356739688e6a5f07d9c7afadd061b7707098ef5d95b2858c0f4ae6e7ba77bd33296c638a2e3c4b1c11148c93363a63a56f5a35aa72f36b60a31fac5952d497c4d2889e06c7cb939aa56b776ed1162fce38ac6b8bfbabb25a672c0f63d29d3dbc7fd96b72ac43e70500aeaa304a0a0f731cd326ab4ed5934fa1a7e20b51a8e85b2270cdcfca2bcc56de7d26fc48620db0e76915e8fa5df446db6c839c639ec6ac3c7a04d196bc50d367f841e95d946b3a578b5a1c7829d69cbd9285ec725e1a8ef2e6f9e6861d91b9ce31c57ad5b3b79481c61b02b9fd1e6b779b65b46a9120c28518ae9157001cf4af2f1b5554abb591e8cd492b496a55d77487d434b6442049826bc6b54f0ddd7dbd90a6d20e0fa57b16bbad8b4b3091b6256e3e82b99811ef58be72dd724d7a54aa2a297b3d8f36ae2e549f2daed9a1e09f0aae8b09b891834ceb8e3b57635ce681732999a0762571deba3ada13e7570855f6ab9c4a5a314b5459433cd3d4d3053d41ae54684ab520aad2cab6f13492305451924d60bf8d2c92428885c0ea453e64b735a587ab5bf871b9078eb509edb4ef262caf9a082c3b5789ca8f1487703d7ad7d01ff12ef135a95c8603a8ee2b9cd4be1f69d6f0cb72d73222282c4715d187aca9a77ea1774df2c9599e630eab7d2d98d3e363e531fba147f3a4bcd326b645f3460b0c8e6a0b9942df4896cc4461f0a7d4558d46d2ead161334bbc48bb8739c576dacd5b4b9aee55b4fb4c73030870fd0102bd23c25e19b9b4ff0089d5e2b798aa5915bae48ebfad6bf833c3ba64da541a83216948e7711806aceafe2830dc358d9468c10ec24f3d3b571622bdd34b40a54ea6227ece9a174fd552795fce75590b7738adf8a4dcbf28c8ae0a29e1b8bf8fcc4f2e63202769c03cfa57776b8318fa57818a8a8caeba9b6228ca95949599ccf8c2de692159002117be2b881ab0b75687cf0b93865dd8af4af14dd2dae8933950c7d0d786c31b5eea4232c0191fa9ed5e965b4955a4dcb647461f1d3a30e44ae7aa68ba9dbc705bdbc72ab2bb6e639ee6bb48194a03915e27691cba7eb2b62250ff00302194f1d8d7b0e9eae2d143b65b1d6b9330a2a9b4d3bdce6ab3f69efbdd8ed4bec896b24b390b8180738e6b8659d05c9647f94b1c55ff001649728f146c47947273ea6b3edfec5fd94c58937248da3b62ae82e5a699db4f2ca35b0e9d5bbbbd2dd0dbb37967db2f947cb8c649c7040ae5b53b8f33539182803b62bd13c2cab73a06c71dd949f5ae33c57a5c5a7ea0a124cefe71e95d3c96b3ee73e4f4a385c54a8eeeeca52df892d238b62aecee0726a08f5095e1fb3020465b3d2a7fb0486cbed1b3316704d67c96d2c0825d84464e01ed531499f4add25a696bfe25bbf84c2802cc092013b0d259bc64b79aacdc607d6aba319170dce6bb5f0a691677b0999ce6453cafa53b37ee98e22a53c2d3751adfaad0cdd2127b26fb44914822618ce0e2bacb5bbf3e2561f74d5ad6a129a6b2c2838ed8ac6d3a4fdca81c05e2b8f174adea7cf54c47d69ba8d5835ad105f44d2c6c7cd032a33c66b0aca19e3f931f383838aece3667017a9ab31e996c8de6796379ea6b5c1fb4a9169ec7938aa119b4dee51d174f68333382091819ad9a5000181495ea422a2ac4422a2ac828a28a6594c0e6a455c0cd460f35229cd729a1c378cf562e7ec3193b72377bf7ae7b4eba8ad18bcb10917d0d779acf85a2d4e4332379721ee3bd79c78a74b9b4861179f9246405e288d3536a0dee7b582c752a545d368b1a6f8b9347d45e58a1329652bb41c527883c7773abd8496a60f2b775c366b8fd3aefec7789334425da73b58641aded374db9f136bca560091c8e59828002ad77fb08537aad11c588aaeb54f69339a28c39c574ba3f86db508bceb89303b2d6f78a3c2763a6471ec73bf8e2ae686232155db02a2b625b85e07998cc44a114a1d4deb5b85b1f0f7d8ed948645c0f7ae1926961bc62d90e589fa735db59b0fb72e06e5ef583e20b982e354220895023104818cd70735d6a7a7c3f5ea54a96fbcab1432cf72928e5d583607535d1c9e211a75b66746c81d2b33475ff0089ad98849625d770f6cf35a7e36b46bc92386d9515c0c9381d6b3f671a96e7d8efcd6ac6155736d638fd4bc41a9788ada45861c428724039ae34dbc9b8ba8ef5d5c36faa786e194ac41e39176b6306b9a96fa4303445400cfbb38e6bd7c3c54535492b1e546a2a9ac5dd16b4b8dd2fa2998825581c57b568f78971688c181ec6bc42c21b9b8dcd02b3941b8e3b015ddf84ee6492ce79bcef2a384e640cdd3f0ae2cca87b4575ba3556b599d67896d0de58aaa29621b3c76ae5f4ed02eeea758c0c0279278c5417df11cc67cab08f2075771d6ba3f0778d21d62e459cd188ee08c82070d58d0c1ce105cc7452c7d6c3d37082d0ea6ded0697a47931f25149fa9af2ed61ae6f3559242a588e303b0af5bbdb88eded9e494fca01cd79a3dc4773a8cf2228542dc0c56b52367a743cea7994b06dd6b5db2a456f7ed08b7553b198719e335a3aeda4ba76896d039e7196c7af5ad5b2b76950ba1c15f7a96ead5b59b27b56399e3e549ebc573adce88e753c4ca2aa45455efa75382b0319b84121c212326bb4f08b28d5661092622bd6b909b47bcb5bff0025e32809ea4ff2aecbc3b3c3a5c4c8532cdd5bbd68d25252b9e8e639ae19d1f67cdef35b74f53a3d435048cac2872ec706aac70a119031f4ac3bd663a979818953ca9c56eda4bba303dabcfc5ce52926cf32305182e5352da24540ca39353d32da32b173de96e6e22b588c9290aa3bd7b145da926d58e296b20240a4ce6bc7f5df1b6a17daac91595d35bdbc671b83119fcaba7f0c789273736f657b74970265fddc8a79ce33835abbadcd1d2695cee68a074a2919947bd48ad8a8875a90572a34250dc572be27f0b9d6184913624031cd74e3a53aa96f7409b5b1e596bf0e6e9a6066daabdc8af44d0f42b4d1add52141bf1cb7ad68814f15a4a5296ec5293672fe2dd165d422f36105994741deb98d3b4fbc593cb6b5995b3d761c57a7f5a15141ce054f2e9631a905515a464e9fa3ac56ecce31230c0cf6ae66ebc2576f7aeca859493820d77e29e08c7bd1ec95b437c3569619de9e871b69a645e1d81ef2e1f33007683dab1ed6f24d46eda59186e66ee7a56f78ca394dbab2fdc1c9ae434d3890943cfa7a565cbeeb39f32ab52bda527766f5d5b23ab4270e0f1eb5e71afe8ef693c80c6548391c7515eb5a4d81b8937499dabd7de8f14786135384c96e009476c75ad30f29537cdd0cb06a54ef2e8fa1e4de17d5e3d22ea5f3d03472215208f506a8dcea371135ca5b48c90ce7e651dffce6bab8bc0d7b35e28788afcd8271c55ed5be1fcf046af6c7cc2472315d9ed69f373773d2f691380d2e5b786e835d46648f07e5cd757e03b09aebc589730a32428ccdec060f152e99e08bbb9b81e6dbb46a3bd7a8e85a1dbe8d6aa91afce47cc689d5527ee8a75572d912ebd672de6992c716776de315e66d13d94ac255747ee18633f4af6003239ac1f10fd861b72d3c2aec41c0ae59c6da9c5521ed23cace2ad75399f2909205747a39fb3432de4d20dd8e1735cd69bb5860600278ad8b884a0f28367781d2b9e4d465a1e6d29f24b9ad748c6bbd4deff579247202e40515ac862088cae093d40ed59371a25cdadc6ef2d883c822ab996e2ddc6e42067193deaa5152d8aad1939b9773d0adf4fb7bdb31bd7a1f94d5bb5d36383f88b01d335cc69fae5dec01429503a575763782ee00e060f715708d39349ad51e852c4292e58b2e8c6302b1bc4d6935de96e90e7701d056b64d231c8c1e95d128dd58d13b3b9f346a56d3c174f9561b8f22ba6f87fa3ddddebb6f74448228496c91c7435ea779e14d2af67f365806ece78ad2b2b0b7b084456f18451e95abab271e5b1bbadeed8b23a51451599894075a78351f7a70ae4352414f14c5a78aa448e14f1d698b4f15448a053880a324d28e95cf789b566b2b7d91b61dba5372b21116a3e21fdf341687257ab5374cd72669d629f9dddeb8bb098ab86639c9c9cf7ae92d585e5f46d126d1c0c015949c933ce75e6ea68fe476724693c78719523bd669f0ee9e66f33c85ddf4ad48c6d8d47a0a757472a7b9de362892240a8a001d853e933466ac03029692968000053874a6d19a604a0d725e31b19e68d25886e0bd457520d23aac8b86008f7a89c79901e55683e7f938f6aea347d2e5b89d257e1179ade3a169e65127d9a30dd785ad0548eda2f9542803b563ec9def23963858f3733124f2a28732602a8ef5e75e203fda37a7c96fddaf03eb577c51afb4d20b6819b606c3e3a5665b8411ee2c39a5527d51189ace3eea25d3659acd89c03918aebf4189920676fe3e6b9b26d9634f2c92e4fa5761a61cd845c638a9a3acee4e157bceef62e514525761de14da5a4a430a2928a4519fde9e2a2cf34f06b90d0954d3c1a881a7035484c941a7823350834e06ad124e1862b95f166953df46b2db825d79e39ae9734707ad0d5c479a69fa74eee237b49d5bb650e2bb8d234a5b345771f3e3f2ad308a0f0a29e2850d6ecc1518465cdd475149466b535173466929334c0766969b9a334c07668cd2668a04381a5cd368cd3024069b2af9b132fa8a6e697349aba03cd35ed2ae2caf64731b3c4e72481d2a9400bb6d5718f426bd4e58639861d411ef54bfb12c77eff2466b174e5b239ead05377399d234996e24cb03b075cd76b0c62189635e8a3149144912e114015266aa9d3e5d7a9a53a51a6ac828a4a2b4341293341a291484268cd21a4a433373cd3d4f351d381ae44684c0d3c1a8969e0d50120a70a60a70aa4c963c528a6d2d5123852e69b4b549887514da5aa10b9a4a28a602e68a4a28b80b9a5cd368a603b34b9a6d14c07668cd368cd021d452668cd002d1499a280168a4a28185349a5a6d48d0668cd251de95ca336945341a51d6b91334265e94f1512d482a843c538534538552131c2969052d52245a5a414b54842d14945310b9a3349453016969a0d2d30168a4a29885a33494b4c0296928a005cd14945002d19a4a28017345251400521a5a69a92905277a3b514867ffd900ffe202b04943435f50524f46494c45000101000002a06c636d73043000006d6e74725247422058595a2007e4000400010017000e0004616373704d5346540000000000000000000000000000000000000000000000000000f6d6000100000000d32d6c636d7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d64657363000001200000004063707274000001600000003677747074000001980000001463686164000001ac0000002c7258595a000001d8000000146258595a000001ec000000146758595a00000200000000147254524300000214000000206754524300000214000000206254524300000214000000206368726d0000023400000024646d6e640000025800000024646d64640000027c000000246d6c756300000000000000010000000c656e5553000000240000001c00470049004d00500020006200750069006c0074002d0069006e002000730052004700426d6c756300000000000000010000000c656e55530000001a0000001c005000750062006c0069006300200044006f006d00610069006e000058595a20000000000000f6d6000100000000d32d736633320000000000010c42000005defffff325000007930000fd90fffffba1fffffda2000003dc0000c06e58595a200000000000006fa0000038f50000039058595a20000000000000249f00000f840000b6c458595a2000000000000062970000b787000018d9706172610000000000030000000266660000f2a700000d59000013d000000a5b6368726d00000000000300000000a3d70000547c00004ccd0000999a0000266700000f5c6d6c756300000000000000010000000c656e5553000000080000001c00470049004d00506d6c756300000000000000010000000c656e5553000000080000001c0073005200470042ffdb00430006040506050406060506070706080a100a0a09090a140e0f0c1017141818171416161a1d251f1a1b231c1616202c20232627292a29191f2d302d283025282928ffdb0043010707070a080a130a0a13281a161a2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828ffc200110800c800c803011100021101031101ffc4001b00000105010100000000000000000000000001020405060307ffc4001a010101000301010000000000000000000000010203040506ffda000c03010002100310000001ebe7e7da3aa3ce963d1c28e0a48872cca752d014a20d95101abca56a70c6f447a3a9f23a9e2d2d003ac752008108a802420c56407095e741e8ea7d8e1694294750140000082420d56c22c7c327c3ec7d8a8fa722d2d028a250028882a0082090c5258faf37b17651c8fa723a968142c500a0004012011506c24bc35e6e47d8eb1d4eb1695055b168016801000401212568911f566fa7d8eb1d62d2a2d2852850000800080a824a908b1f4e4ea7dc5d4eb16845a5a05a6c3a814044a599dcdc00115254088da73753ee2ea7d9598f544c7a6fb7799c6305b776df56af39dfbb77ab543e7f4aeb770c9bae925f3deadbe8fc7c35b8e9bdcf74cd9b4125458da327d3ecc5efcf5fab5d361d3071f46274797c0e5b31eb32d468d4cc392b71f56df4eccdedf635bd1f3795ce4ad1e7ccd1d779d0aeddb2de62a0b1b465d2ce4623a7649c667f76cd370f744c7a75fc3e3d4754c6fa3b3d2fc1c616fd761a3265cb29e8eccff6c26fd67370daf9fb536e1e77ebecf50d1cb3102369cde8fc9c63273cfabdbee3f57a92f56cbce7f264b9bcdfdacb4de7e7a2e2ceb7a3764bd2e5ddf91293a3b225f52db4f95a0d7c35fd5d39bdbdbbadde17408e1a737d9cb1cb178fd06873f9fa86a7e3d3d35f75ff0017177d9879dfad9db725b0d1d6cb739dfc7b5f2903abcbaddde8e63b73dd79195961afccbdacb7fa745fb023869cdf64299659eb74dbe6d26cd3d647e3d5b5f1e4debd58ecfdfb2d1e7d9e9e6eb8eb83bdce7754f5f277be3c6d9e9e87cddb3faf9f339f0e976f449cf62c45d39bece9540cfcefbb397ad1f36d38f0b6f337758c3fa7ea69793cfbde5d197efdf35e650dfaa5645d5d31d9a0e7f1e4ebe7a9eef3747bba24679846d19b933b8fab3af3d16fe5c9f4ecdaf3696f37b3df468b7d1c7e61f40bbe3cb6be55ca777b7abd9e1e4b0f65f3089974ec33f0dfcfa7b684df4f99d91143868cb84cb119fab51d5c7d9a64ebe5d4f1f2d3e5f5567873e6bb386bb7d91af2ddf948bd9743972e3752df1cf31b3d9d5e3e62f1db7e8e7eddbaf32d9a09874a8da33e96574cb29d1767a70cc34dee1aeb27b7daf0b70f2725dde9b6ee8bb163ade81cfcf95c782df0ca2e7b24ead36b97a761bb5d5af96f5f47a773e8b6631b466e4753ac75858b4a653549339ac36f552e5b3859a192dae394d3a1bab9576f4c06ad04db71d1bc9614b2e822e8cdc8fa7651c8a6670e69330bddfd6b4202a963a5a3d7818ea9f9edcceae2b19b341d5d62a4229113466fa7d8b63eb862c55e4d4cced36ee029401055b1d2e3f4ea8d8f26832e8b7dfd090824a2c4d193a9e8b94752a34e9942801428015039c46c64dce82292a08b0b464f1f4eb1d62d8b4a1601400b40a000828024ad5221e8cdd63c758eb1696c5a50a1052c0050a0000211525421e8cdd6741d4eb8ad2d8a1405002d800005010290d523ffc400281000020201040103040301000000000000020301040005111213141020302122233115326034ffda00080101000105028c88f48f6ed9b64c6f9c3896f1f047b27223e4db36cdb38c6718ce319c738670ce19219c338e6d9b66d9b66d9b66d9b66d9b66d9b7cf11febb7f6cfd23f9247389de3e3bb67c71af7a4a666061ae00486a2f2626cc1d36d89758d248e691dd227d46f6ae1a1cb58338af13f6d67c0a3c82636b1c947bbf596355677566f6a2f5796926a377d6dd25344248f54a435634eb0c198d3ebf337f22f1248a4095520a2210d53d5aa78ea75467687883cd010005a9561644ef1eb18f19350696e96eace952d0f95cbee4d8c62a25880100d5d30c451988b20513069897edf403de75957dcb3c6acfb7495c8d54892f2ec9f8ca13dea04aeb7b5ec852c0a19275421a71c59f490a4c938ba8efafc4a334eb1f96cb6000af482c1ce23a4eef5df40add123d74ec6f912333a9324549b0b53d662c0f63990a5cb4dd34eb2e52c119b4553b0d75b834406322267353590bf4d477c5dafb6151262c2833c9520541cbb66f2764572219d39b0c8b43cd05badfa2acd757d632e27b95151b127aa4000be458eb8c64d526cbd33251270b5b4a5e5426461a5313d83104dfcadb91101bcca4f981d244cd5011593216ae30c3ae7cc3d63d3582284472099e4ec589f3a754eb2abb60f2d0c9a65fd7349e2593b6ce319686f2b02e27db2247fd1632788925e3950e052ce2521c03d7f50cbc64dacfee9d63a14b0e3c743181436c9359459b9bdc2b5f2897e9923369e1cd4b3e194a36a6521363aa0e43f7a6f1953c27b806672236f6d81234b56c44033b1a8ae764eaa3ade31b63950b7d554189ff00d2cebdeb37ace2c88aeacd47b5f11d2a50ce02c615f72db47ec4a4f94af27e91fca8135670c0f48cbc8f2141a4b64eb570aea6a18b7d644ce1d26cb593e2ab8ee176bf5928c3c4738dd34c795dd40089025d78a32632d3a0ec2f6e515e2086368d4c4e6b47609e9606ba7f044c4e5e49f755549e5ba82f04e931c8f482e74ea0578cd40c658331c26914e7de96a1a7eb159307ef9fa458b3d8dadb837df6ea499d7ab3965e28098ed2aa1f93e2b3bca80679d44f1f8b5182ee092ca6b9dfe3da3e3318381aca19ff0023ffc4002d11000202010401030302070100000000000102000311041221311013202205304132511440425060617081ffda0008010301013f01effb9e26263fe17b0fddd369fd66c197e8028ca1f189b442bce20ea3f7c4ab469e96f69a8a7d26c09e9b019c441090399eba931ddb770656fb87d8db08c4a2ef4cf30eb936f1dc0b8ee188498c333e52db595b026835cc170d378bae0d6751b3ff0092d5c39c4085961ad94ec9fc282bcc15ece27a67dd99be2cee682b519632ddb755b843e04227a2ac7711e0acf55b6ed262566c3811b49620cc61933b138ea118ee31c9f7d8cdbb99a1a4dc9b9e534aa1caf5181276e3897ae1b8f199d8c4a29363625da4dabb94c071c4231344eaa799c96cfe26a6b507e31819a1a8359969ab359529f98463daabb8e22535aa6313514aada447d65d4fc50ca7ea3631c59dc3ad675c08589ee16c78ea692fda7e52cd5020aa8826e96dce5f0269b59614db9998dd40db4e61961c9f6a9c4af5ca1798ff0036dc65b4ef12aa76727b8ac3f31a6c2ed812aa92a50b3528aa702288df1e4c4757fd328d197e4cd77d3827cd610c9c4a92e65ce23711ff00786f727895bef19f7279ccc82632cadb6b661d555c67b967cc979cfe25bf4c7b90127994d0f5db8688a1eac464471b1a3e9eb7fd4bd47754e49e2584584b08c32310d0c0e222ed18f6d3a24d9bec9a9d30ac0743c18a3c3609e269f4e8b5838c99aaa821c2c03c2ca9b6b026595fa98399ac3baf3b650a56aff72db0a2ab11cc56cae4cd7821fbe254dc46602139f6a9c4af5a36e2596b59dc27135361030256cc8d89a1ceccb4d61dac08fcc2fb8e33e04618ea1d45a17115b0730fd56e0709d41ac7b587a91351584f9f5351a84bdc04e84231c4b3c6cf68389be139972ef95d583969a6d62d698335da8367ca723e52a7dcbcf8118f1047420e6212edccd431c625630c27ab09cc58239e7ed59f21129fde0e26f9be3367c5fd4e310212bcc2a6be444b1bfabce4fd9bdf1c095121b1f6186e8b48fcc66da330b9694afcb9fb625a84caabdbc9fb568cc2a44a908e4ff31b47f897ffc4002711000202020200070003010100000000000001021103211231041013202230413242516070ffda0008010201013f01f35f4d96596597f557d5451c4e271389c4e271389c4e3e55edaffc277f6b7fe0a7fef937fe0f1d127470a5a1b4ac94e5d9095a3922fe5b2bfb1ea512becc72bfa238b5bf24a86787d991afd31647274648c7747ab1eb9126397c6d91ceba285d6c845b270a64f3f1f898a516ad1bff003dccf5b4614a4f64a17f84d35d919b8ed129737723c149a6674dc1d0d50b2b50a2d8e3478292fec4955b911cb1ae267cb14f6646a5d1e193e56fa24e2f762f731dae8f5df1a395af2cd1ada306678dd969ecf138be3a31c3932181392258e15c5a33e3e13a30e4738d31a7666c6fb30f152f90b2467a891c72ed7b9cbf07a3b56c7d117f8646d2d16d98b0b9ecf0f2f8d33c565e0f844c737fc58bc4284ad12f151e1c913cae6fe428f0d2317f2d99229fe1e261c59857cad0aa511bb76bdbfb6316075b3d34d11c2a3d99631e3a2692660c918c6976599f7b211b1464f47a7f1a2385ff00613fc6495742ccd232c9ca4609a70a393e883b5ee87f2d9a91a8e9126ab6659de91920e2ecc6ea56c585cb68cf0925b21da23a1a1a3889bb19961fa63c8e1b2f96d108d2f65d0db22ecc37264aef4656ac9599a3a31c1c9e8af8d23c5dac64254c62d4763e8ba198a8cf49ecc785cc8c54557b5a125267a7c23f1253e08c9939475e4e5655a22aa15123c8cb0e4a88e0e52a3d2aec9ad512f2ae484f8a6665fa7847da1b1a6bbf6ad4b91eb12b65ea851b1a6457961c964a2f9d91828f44bf8ec98d723f4ef7e52f0f6420a0a90fb3e2d6cedebe97b168e3c99c6ba1ca4c5391bedf9b15d1d919b4fcebe86e87b445efe87162837d8dd69174476feb90d915fbf521a4635bbfb2beb693382ff92fffc4002e1000010304010205030305000000000000010002110312213122104113203051612332427181915260627082ffda0008010100063f02ff005fc95127f5523d4119715f51b8f7524c045f32117f88047e28564e75573be2103567f745b4f4a4ec28b84a2d6fe4bc3b3913b4c69d808f280883dbd070a0d163536a6a42b99c972e21318d3c02a6d0e269bbeef8521ffb2a74aa668bf0aec9469b30c18573748b697dc8cfdc9ac73dae7464268a7170dc280265121dd2cbd48d795cd6ed19e2df754e8d12431bb57b6a3838764c0dc08418f40344045dfd29979e23a5dd214d307e6153f084546fe48d4772cca7c882ed2e49de1a730324b95363b60798b8a3e2211df30bd9493c96539930a0e9a543b0be538b9bdb09d5438e3255c55cc112bfc95ae395956b3ba6171fd50730c83e52e2897b90794e8cae38280a841f85803a12855aa7e020f6ccea1727f65e19c37dd705945ecc1f84ee5054e93b12a62573ee6479606d726da06caf0e83640c495257030ad325c17b224a2e3951184dc6164a9eca19929d6983b45af2ae353fe50b44224af10344f9ed6e8ed4a2fa8e12859b4eacfcd42b1b4404592835a710b3a44b348bcb78a98585839501a4b90638654156f751e5b68e93a9d70242b6931b7bbb84eba6eec9eea8dd7729dc8b5bd93a76892630a5f9139463edec8809c236b9e93a30c94fb5d86f750b5c82b879c866d4b9a57d4716b510cc808de3215bd8ab5a65549c16a9ad71a69d6fbe10230aeabc42e273ec511a1d1cc021ce51dd38cf328ddd24ab594dce6fb841cdc83e4b46d728015acfe51e248f8573915e183cddb5958184f63873990536ff00c442a5e04ae1d1b380a00d21952d3d0d8a1b32982a6f7e8e15d0484274a34429a87f85c48b7e563eee96868c775f283dbdd41da6dc641eb70a6d9f46d1f6856cfa17d3dafa8be7b2b88c9507b7a6eb76a0e0ab9de94bb5dba5eef535e9f212a437fb4bffc400241001000202020202020301000000000000010011213141511061207130408191c1a1ffda0008010100013f212f88208102540f218a83378842c96772cee63cb3946317532f0040810f07c095292bd4af53d53d5e2aca4fb31f6607b89f7182482483c47c08f054a95f85f15e0084a81e2a57e2af8312040cc2542040fd0a95f0081021e0fd2a842103f51f04210fc08369f1c8c011c2b174d710012c7e6421081310d8fea13004d53895d5d8b046405c3b8aa0e42d3ea2ccab327b8128669c228d869e91baa2d1ee2b85353134faf72f0ca6e2989fccc3e5a630cd17623b16f2f8902342d6896505ca97706aa9754bebf418a35795677c06b96052dd0c40032ae2933f3683c7d43d9d94b8976094a4f56cfdccfebcacb8a839b9c9330b8cec7f1113ecc41906f894337ccb8acdd286211a5ad3e4f07629107058e6d0320557989d018ed323a829db3b51a87d825a10ae6e2be43108530aebd9dca98906c6e2033d99528565b6dc51416c3b9988b7de6020d9c294b38b51935f538f00fc081e3613735dd919dd9fc59a4a47040e554523c9288b367b997cc20390128b61e46de8990116f697ed73205602ec9527b5a98ca72dc34fd842582432086c92b28de7b8213593e04e320c4b887abc4bd46f6302f00d1169749a60dd6709aedf4431ad4a46ef38991c4c07442caa0a1d4e155a8756f257886cb886fb8be567102c96e8452c62f3cfa981343106c632e0aa39e92c8a33310f1f133be3926686d1a083ca2f6a0c3a832e2e30e59757b8ca43aa42bdacc2bdff003320afac432b7b4d004c8e998b1dd2cd82c1710ee93a810c728dcae3138b5e3b8ab44ce099f4a4c7c44f5d15284192636fa2d3308adb152c98355d428346c9b6d96531e49a3c612fd316f3348883fb99d05bd32c5a8a5329472b750abc1c4b3604428915efa353df39f213163a88282d42f3302b3f8959fd20139ee9af70d696c06653c4d80980430cd6e1d95a451bd2d48496360c5594d6199c95159e268b95b9ea201e07d445602c46e05ec8d0547a5952a38a4ebc408d7c08eb528f30fccdce369996bf936c41068258be36d46d4f1a93cf22505a0c5b27b0e254017706a5e73cfd4acbbc79e3dc9444eeaee523461958842e26576c951d9b2cddad4632504100cdc927a563e08a35ad6c4c41d8b8e4b2efb458b46ec5c0b28f17106b0bb8217973ea53491e22bb42c90f968457c6c03f530d628abff626324d92f0377d546c606732a6030b82a16bea6100788751322f1baea21200e2a5a45ef2f7e08783ca86e0990cba0df27130427b15028e9300c091b8f0c6c3da710488acd33335718b2ed51a081e90cf49f87253a9f688d7c08421108b155ffda22e419b863e3715216d8c12202b8b9ec6c096b954c3f6abe64184201b82317d2c63c9c7e1e20d597dba8ad713fda3e57060c3ce6ba5fe2b94c01ee5610c2828f83e4843f5c8421fac4210fd5fffda000c0301000200030000001096a44ff1cfcf82cbd32079ea806e35ae409cf6fcf9659cb49201351c57060fc894d975008e01ef8f8cabe4d54f787c1770ca39b8012001abf402c65d4249ff007c14c29f31fda3ccb56ffbabdbe6103db3ead443099f0bc5eadb02990dbee37e2d7cfea76f8e74edcf3315cbf4981580127012a719afc1c4980fce061f61fa63986c4a18a599f57cd75bd5a74c20aa26dc6186f678ee6032893efc31e21ff23b90660240374e24de2a307c9befd28c1d1a6a224e87dce1faa8f67d063c0702afe04f59b11af4c3b1e76f6067ea6e222b9a58bfbf8812fb1532dbfd620d5dd0025f1485038a880c4ffa5f1c5fffc40026110101010001040202020203000000000001001121102031415161304091a17181b1d1e1ffda0008010301013f105f48e2d9e9bd36de8390bd9cf66db6c5b92dbf16f6eef76f5e6e6d6d6d6d6d616e6e6f3699e8659659659d73f286de2597f50e9e09fd3debbd17abd5fd57abfbf9df26761daf52d1c275a1cdcfafab17821ae371605851ce101ccf903fe2e6ed1349dcacf9c897980d7a979f17ac0bcd793a1db9078db4645acf9e7c25e63cdb05fe2f291853c90e2d059798f1c2b874267ced88c35cfe6407cce71e600d40710a6d98f3d8c62c6710e75b318d8bf523fc226edb98457098679451c789834b73c02f25f6d88dff00173c7a9cc3e2c48a7e5c2044ec7a02dc824b75e04295d1ee0260d81eef713564df167bb4b5679b14c824ca6643e1e3eec89e209c5e40e4e647d33d3fe6458c7630435eee2249c1e204cdeef585281c98e5141d97cc8d0f06ce68fb94a78644b99f0c91ff00b425d9aea720e32d62e08ecdfb63fcad2f9962fba15bec062b88059fee9601aff73de1c89df99075c23916dc8f84089a4c6d43d425bcf9cfee0f0628b348f83b44cc0de619e0e0b85c53e260df5657c2568f09e07b631f6b003f0bc3f4e2005ce3d4439bff0024d083c181000f578fb8d9cc84193b336f22db76f93ccde5b662d59c299b7a2b2ef3d170e4263483c603bc7b851f4fe61d8ee2cc3279208b6fc97244313a468dedd1b0f8b927557faf514269e623af3269b8f57afd0b80d898409f6b2778923b4307fbbda92742387f5321e88803d43820db61ab2638f6ec16ad651f76779ba0bfe9a7fdd806a607cae544606f160b640258347b5e2e02f168061e633bd660f3212078f57bcf14bbbe12f4f56f2192f1e8438c79379851caf902667a3d78b37f006c8b6b93f4fc19b213b0b74ddf419d4ef6e129a5f6cfc612e275f3fe47f1a698c03b9d8757abfa67733fa4763d5fd5ffc400231101010100020301010002030100000000010011213110204151304081617191a1ffda0008010201013f109e7cb7d93674f0c59b1fbe4db586db6d937c9fa9fcb2cf1965965962cb62c58b366cfae636a0cf0167864165859659fcdf1b2c1e991659e73c67f26f91e0f041e73c678cf7cf3924783c111e31b3c9ed967abe4883c9fe291e0f5d3d543bb7f10ef3fc088f0bb91472690e842206afec871ee32e4599c757d0c2efaddcd8e13a485e5c16386461023eeb902178bd498e327482fcb0d5b9bd11e2d8799daec77210c9ff00167f825fe76d2f111277b4b3ab8ab5f0dcb7658cd3843a71e84351918e39244de21ffa9c66ccb2a4bc3ab22f2c8912fd8e5fb641a928cf8ea208e19d938dcd9ccbec174a087cae5cfa92f91927fa7ec2e7b51c2367d226baba4fb3f2bf0388a8fdb3bb9364b5aee408a332d5d653e04de0e21d9f25970ee1ad879887793384e1ed237581c74412d62ffb8cbf38805f7e7f2d3f48c4311f3041c8b187a9d5d04f0ee40bd13e08b330b9f5331c67246e6b9dcd8eecd0c861a1dde6073bcc05e79b8410cdbb91db8fc85c0958cc7fd9bebb71c72481caff005de844b4fe270c6384ee1aa1070b408c602f95c61d58a58c4b834f11c36362ed732a47071201f4bb2efd103601ab7d70d3bc170be3edba9ccbea64a43c108fb6005efed96b0de6cabd6d41f1eee3cc16f1cc942ee4f4ea103e7ae88bd58ad91c0d600539b220eb64948fe45c08c306daca5c1c91b9ce37e52c323ffb234b607722c7df8401cc06e0ff0070ef822eb25e605c9deecbb4bca27016824a8e963c6c03d45bfa9a23bbd4391bb4586359308b1dba3bc78d0782f53ca8a23d3c1ea1687720717cd8581d5a7b42cea0989cc09facddaa41dbf3716034b00f5e106cff000c1174b21960c7aa427894de04705c21ff0003c87b8838eaddd5b6fbb767f7c0d7f0fe27907791fcbb4b6ee0ce0f63c9e879dfedbea793c6ff0067c0ec7823c9fe0adfffc400271001000202020202020300030100000000010011213141511061718191a120b1c1d1e1f030ffda0008010100013f10d28a67b8af18897ac4795c232e4a94ea0063b46e11063e04bf9257c3f30eb7e65f04fccb2b88d7a831c41fb4fd62a1d7dca115ea131ea01454be156a66820435ee07919cc0f32e324f4a3d69670f1336a3dcc57bfcc07fd902bfd22f9fca05ff0094a0a2fee24ab12edea65f0038f087994819a602023e0a952a24a9f51d44482237a97b9cccfc10414c5021e00c40952a24a95125461254483c36d4b10e20cc20ebc804a950254a951254a95125449518613f103303a3c5a25504082111bc4084ac40952a54a951224a89122432820a83c0102040879afe55e6a244820661a61f21e0878e7c3e025ed82263c8318c015aae8826434185f980805626922f87c2426dfc0590443500b81db026138e9d5cf48f9040c9b2a6c1ac4c48eeabd294213bd01a4fc916f66cbe81eb513194f31e30a07145af960a660cec973a1c4dcad3104f5d4d6e344b875d57b8aae81b2c22fa0308d0178962ab8ee47c240833354b110655e25a1baf101abde0b983c26b8ee2e2e8a4b18c9ea5433163694b146ff130c455adcef89826bda35db0c8b4236bdfda22a4bc23fd2e353514aabffa815ab166be84b97eab7dd7d44e68b307ccaa06da52d6712c51680afda0ca6a18e48c01fd9ccbf3816d638a658897e60ee2d83624673e0c8006a863e4cb4692ef4399707678ba567f30a0b96b4cf23326e68d6cac7aa5861b61a008bdcf12ab3d7b893dc5ba1e23d022590b6a130985db31a01bc11a380e261c9e0347e22bca4cf9958e2bfd892036b3c9837834742bfa886eb6efdf3ffbdccfb117812109182bae5be8c7654f6379ea5408198738974b4468c072c00cbad07eaa1f435380b4cfe255d301868f532cda0e7e6e1c7b680ea1b92989c20c0c682052c037ce7ea0552617530f42bdd287c9a34b8bf516e90071a5aaaea1bc12a7043c10d228b8d6bd8b152ea76c24d5557ea542e40e62c76348aea527fa270f8e2163ab558f8210c7d0b4a3cbd45909b6d407410a94348c6260cd380d6a0006eb41942dcb675dc2c59add100741b82db1c0521a8042ebe498e5d1daeeda2a54f25193e1771c32e4b076f8661e9167f69808ad0b9acc2fc00a0175b82338c5f33fb4a2b7566f39bcf570c470c74f71a35556f1c54a3d6bc128f041cc6620c212c633ced6ca1cdcdadd24b72841aad6d29b7e25d1c55955614ae5477141ad2334f634ef1a21a00cb8b07f90784b1a503398d064dbd1ea3f56cb983a0800ff006c246a29b60ff998e797d81afdcca426d985f896425c0fd2e0054b01c41e051f2f496919c60a8820c906a2408398a322d34b43c1d4293b2c6acb25c019a081c04b10617dee60e8ed92b6afb8b462306a54b08cd6fea1a10c15e7e624423bbb5bb7f6fea5a9ee5f514061a16dbcee5ea1cd590b41cdab0fd41088b01a70e200b68b372b3a58e000b1c44476bb5b2a32336538bf718181f6257adf3e0781b0f40b61265a5e7dfe2654595c2ab0dcabeb64b46e162100c359732815693c334b1c9851260d5d72c10600a529ff0032eb714ba56b8851e58328f52837aa990e97f110dbba18c731d9b6dc9ee01e26a845988a53296999956180e31f7284b53544d02a165e98a0222c6602a04f6e88700586f9f2465e6561751ee091185f4bf3002d468b43e3985e98ddac711451e8b10ffd8882b468ac5316ff0021554dea184e1b70ef7f8fdc3679b11aacebf242b50d7fb0c6b306384317b079f4ed33232c01875dc31cf1782a58794f35370f86f2f07c4eadab91b8a935ddef139bc9028c0bd8ad5e23ded415e0e4392043a21c9e167c2f420e4d350164d9c84c203cdb52d3b619f95411483014df1072db45caf96054b8eb75fe4a7c6d3946038956c7a9a4258c95b25e7827807fb1f0471d51b58e2060e40724d73316a27a48c8872e8409c07015ee504017f2ea65525acc7d4b9d6f2bccdcc053b34cc6dd8bdf98e92643605678da28410d4a3920b6803966261d8c32cb1dac108eed4a7e616e128cfd46664d72621d85c65612dce0a6baf5039665fb0e5d1df52eaccca2b88596859354bcc46fad8655d5fb8a161a4eee5c37645849420bdd3943051e073167ca2226505acad55461dbdc1253641b3310d8180180097e08350c2984c3b9e18740574b402d0e03dc6b02c63fc99192945e18f91cc5e045c7ee2fed9554699b69437641a3ae0f12e5cb972e5c18304c0dcb193186c8181bd12055b698e4b2e2cb8b2e194d1e05066e5f77b150c4b972e5cb972e5c23d1b0173e0646a11050712e2c77e06e0e63f20c1841972fc5cb97065cb972e5f862c597e337c1781061e6e0ff000bf372e5c6319cc1b8f3fc21a87f0b8307ff008ac667c7ffd9", + expectedOutput: "{\"282\":{\"id\":0,\"precision\":8,\"table\":[[8,6,5,8,12,20,26,31],[6,6,7,10,13,29,30,28],[7,7,8,12,20,29,35,28],[7,9,11,15,26,44,40,31],[9,11,19,28,34,55,52,39],[12,18,28,32,41,52,57,46],[25,32,39,44,52,61,60,51],[36,46,48,49,56,50,52,50]]},\"351\":{\"id\":1,\"precision\":8,\"table\":[[9,9,12,24,50,50,50,50],[9,11,13,33,50,50,50,50],[12,13,28,50,50,50,50,50],[24,33,50,50,50,50,50,50],[50,50,50,50,50,50,50,50],[50,50,50,50,50,50,50,50],[50,50,50,50,50,50,50,50],[50,50,50,50,50,50,50,50]]},\"8956\":{\"id\":0,\"precision\":8,\"table\":[[6,4,4,6,10,16,20,24],[5,5,6,8,10,23,24,22],[6,5,6,10,16,23,28,22],[6,7,9,12,20,35,32,25],[7,9,15,22,27,44,41,31],[10,14,22,26,32,42,45,37],[20,26,31,35,41,48,48,40],[29,37,38,39,45,40,41,40]]},\"9025\":{\"id\":1,\"precision\":8,\"table\":[[7,7,10,19,40,40,40,40],[7,8,10,26,40,40,40,40],[10,10,22,40,40,40,40,40],[19,26,40,40,40,40,40,40],[40,40,40,40,40,40,40,40],[40,40,40,40,40,40,40,40],[40,40,40,40,40,40,40,40],[40,40,40,40,40,40,40,40]]}}", + recipeConfig: [ + { + op: "From Hex", + args: ["None"] + }, + { + op: "Extract Quantisation Tables", + args: [] + }, + { + op: "JSON Minify", + args: [] + } + ] + } +]);