diff --git a/examples/pset_blind_coinjoin.rs b/examples/pset_blind_coinjoin.rs index c0a7ab42..52b0c94d 100644 --- a/examples/pset_blind_coinjoin.rs +++ b/examples/pset_blind_coinjoin.rs @@ -27,7 +27,6 @@ use elements::{pset, secp256k1_zkp}; use elements::encode::{deserialize, serialize_hex}; use elements::hashes::hex::FromHex; use elements::{confidential, AssetId, TxOut}; -use rand::SeedableRng; // Assume txouts are simple pay to wpkh // and keep the secrets correponding to @@ -129,8 +128,8 @@ fn test_data() -> HashMap { ); tests.insert(String::from("A_pset_unblinded") , String::from("70736574ff01020402000000010401010105010301fb04020000000001017a0bb9325c276764451bbc2eb82a4c8c4bb6f4007ba803e5a5ba72d0cd7c09848e1a091622d935953bf06e0b7393239c68c6f810a00fe19d11c6ae343cffd3037077da02535fe4ad0fcd675cd0f62bf73b60a554dc1569b80f1f76a2bbfc9f00d439bf4b160014d2cbec8783bd01c9f178348b08500a830a89a7f9010e20805131ba6b37165c026eed9325ac56059ba872fd569e3ed462734098688b4770010f04000000000001030820a107000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020e5793ad956ee91ebf3543b37d110701118ed4078ffa0d477eacb8885e486ad8507fc047073657406210212bf0ea45b733dfde8ecb5e896306c4165c666c99fc5d1ab887f71393a975cea07fc0470736574080400000000000103086ce2ad0d0000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020f6b43d56e004e9d0b1ec2fc3c95511d81af08420992be8dec7f86cdf8970b3e207fc04707365740621027d07ae478c0aa607321643cb5e8ed59ee1f5ff4d9d55efedec066ccb1f5d537d07fc047073657408040000000000010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b201040000")); tests.insert(String::from("pset_coinjoined_unblinded") , String::from("70736574ff01020402000000010401020105010501fb04020000000001017a0bb9325c276764451bbc2eb82a4c8c4bb6f4007ba803e5a5ba72d0cd7c09848e1a091622d935953bf06e0b7393239c68c6f810a00fe19d11c6ae343cffd3037077da02535fe4ad0fcd675cd0f62bf73b60a554dc1569b80f1f76a2bbfc9f00d439bf4b160014d2cbec8783bd01c9f178348b08500a830a89a7f9010e20805131ba6b37165c026eed9325ac56059ba872fd569e3ed462734098688b4770010f04000000000001017a0ac55f449ddb6853f2508766d5afb9f3b45e41a8ef5368cad75fb88e5e249395d1097d88c92ca814a207f73441c56cee943f0bb2556da194c14a4b912b078c2238ae025341cb5e4e2d8cb69e694cb20e5ea4cc8ddf2801180096fd071addfcd8bc4445160014011d384302576b408aa3686db874e2b17cc2b01b010e207aff956e6c2a379543b1ec82b06958f062bd9f29aa1ac1c98d1f6398b65a8555010f04010000000001030820a107000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020e5793ad956ee91ebf3543b37d110701118ed4078ffa0d477eacb8885e486ad8507fc047073657406210212bf0ea45b733dfde8ecb5e896306c4165c666c99fc5d1ab887f71393a975cea07fc0470736574080400000000000103086ce2ad0d0000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020f6b43d56e004e9d0b1ec2fc3c95511d81af08420992be8dec7f86cdf8970b3e207fc04707365740621027d07ae478c0aa607321643cb5e8ed59ee1f5ff4d9d55efedec066ccb1f5d537d07fc047073657408040000000000010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000001030840420f000000000007fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f010422002037831b3ee29fc96f8e61ccb98fbe2dcb03e189dd29cfecc691b5a7442d8548e807fc0470736574062103d559d2a5a4180f418a69c4bed5508971cda9313722fff71e053d3d82fee9d7bd07fc047073657408040100000000010308c0878b3b0000000007fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f0104220020e7da55d19cc85b0420c539a90b667d4d85f59ee0ed417493a947c3a2256cc0aa07fc04707365740621029e5980b4f9b9a9fd568c1c4b48631a800c310405ae8b2ac41ddaf87add3062f107fc047073657408040100000000")); - tests.insert(String::from("pset_coinjoined_B_blinded") , String::from("70736574ff01020402000000010401020105010501fb040200000027fc0470736574000f56f3a1f798b585d605591085469b0e3d0c3f46c3bdf230773056302acccdb8000001017a0bb9325c276764451bbc2eb82a4c8c4bb6f4007ba803e5a5ba72d0cd7c09848e1a091622d935953bf06e0b7393239c68c6f810a00fe19d11c6ae343cffd3037077da02535fe4ad0fcd675cd0f62bf73b60a554dc1569b80f1f76a2bbfc9f00d439bf4b160014d2cbec8783bd01c9f178348b08500a830a89a7f9010e20805131ba6b37165c026eed9325ac56059ba872fd569e3ed462734098688b4770010f04000000000001017a0ac55f449ddb6853f2508766d5afb9f3b45e41a8ef5368cad75fb88e5e249395d1097d88c92ca814a207f73441c56cee943f0bb2556da194c14a4b912b078c2238ae025341cb5e4e2d8cb69e694cb20e5ea4cc8ddf2801180096fd071addfcd8bc4445160014011d384302576b408aa3686db874e2b17cc2b01b010e207aff956e6c2a379543b1ec82b06958f062bd9f29aa1ac1c98d1f6398b65a8555010f04010000000001030820a107000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020e5793ad956ee91ebf3543b37d110701118ed4078ffa0d477eacb8885e486ad8507fc047073657406210212bf0ea45b733dfde8ecb5e896306c4165c666c99fc5d1ab887f71393a975cea07fc0470736574080400000000000103086ce2ad0d0000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020f6b43d56e004e9d0b1ec2fc3c95511d81af08420992be8dec7f86cdf8970b3e207fc04707365740621027d07ae478c0aa607321643cb5e8ed59ee1f5ff4d9d55efedec066ccb1f5d537d07fc047073657408040000000000010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000001030840420f000000000007fc0470736574012109509217e1b071fbec4cb5fa3cdfb5c860197b889067967e06503b2391f40ae3ad07fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210af17cabef5f73bfab19c674c1bcb64bde67017100e7d2b1d3b877c3503aff67c7010422002037831b3ee29fc96f8e61ccb98fbe2dcb03e189dd29cfecc691b5a7442d8548e807fc047073657404fd4e10603300000000000000014fb15d00b63989058441e4842b16c6bb22c9a696efbd85b29fab7a9b3d53e8aa8465745f9724a942187af247fe6cfb7f3022b6e71316143eed2856014c7be59f599d4073a2ec1865d2845e012bbbf7383866639d3db07fb201862a50769bc3b54842151e02be410ce11b7ac9c0274a0cdcfa576c371c34a0c5e24bdd28f0657dbd7d21a927329868e30bbcbb23efd6d4bfb11d7ad35469ee052372534201265908c920bc7d914c7bba26e7375c2074993118679e1e0fe984b6f4146df255d8894140156e507c10543e641470743669c9f8969d8f38beb2d31b0619cbb531b54e3982d89e9bf66016ede12a9d7393853dfb607bcbfaa232371fc2c9730e834b669ec63d14d57e819abcb4fd2d726d0152ef897ca78a5d6016ff98de8a34d12ab84e5d0005d64548d63ed26747f4d2413215cba58504dcac6f35c57d9a5e0e7819f6cb22c76b1fe48082726de5f178ab9b7a0dcf749a559f0911cd1b33b71ec3153b634540c8587915605c94d852d744270a2068825be5b08cd968d41867c98fcdc9ea6a23eceefbdd1e15e3a7bacce90624a1e95dfd8b11b331054d7f74c57088c33bab33fe5511dd1561e086ff8f3e4a1fb355772bd406ea1d86242a796924821ce70c831ad4a1a057a173bd9d82bedb3dee0dd565c542dce7ea55947c0c48a1d10cc87c9b0d8e41bfb0f85f95c3abfe329cf127ad76c53eeaeee336086b056318d45c91555873e7daa6d88f13856b6fa0629991f86ce192a10acdcb370f33d98e5d810ca81270542a10b71312f3d179f7051e982f62aff114f15d107ea9082b577a0afeaa56274546c058ed7f345f21222c4dea005bf39ef6d458740dcab3dbbca367eb42a75c3b632d3f3e2b6fd25edfd496b966f2d22912bade07416de9c44168928e1e8ba694a09ba078cad5301cf4f6f675638c6e281e43b5f43ea9ecd42ecc3dec9bd9037bd67492cf6999dc4ba074a7d19e3c554464721aac74934f0d4631b9f1d32367f271249e8b1684ead35f9cac9bd121a13261e58aa19e65df246425a279297c93548de0893f23ec291e3240e8f9c30b80777c53f066a29d6581e0b3413246a8e5bb3eb1f99cce0e859d5366864ab9e8234b7ab311663967fdc179ad9de44d8f35b6d146a8301a7f7dadd0fa79887907abc6f28de2406d83ee50f3c55fa49369e4c178505b4c85f975e3e684463062d2e3bd8493dd28bcf693453d22b29843c9c91a2c32ef7e4719b0e073eaf129be36d575520d9e37ac1b81a1f96ffda0e7748380ee0b3399c63ef23cde17aef220f142ebe2552c425b2d39e206a42829f6d1d31b1b393bb31eb3f9835d5e1108b0a8fb6788b26abfc93ff3f368e321c62e205028038625f3ebd51872e75a528af725c55b285ec840a7bf2bff4a9f52d076310a027baa0415c032c2ff246d7942dd08019a448b1834f1d36857c0a3af27c782bc06ae568643b320ce292b4c0f6bbf44fc9760ca1b9f4e36b52cc115367fcfdd2777055dc6e98e42cef8414e12a7d300e6b60b2e3d4d244e558461536f748319d6bf1bc0f605bf7eb06d81e5768f46c05c4b666d45705f53d792ac0086c990d103d1a8e5b405347851a072c287fe9333be36cbe92ac9e16cdc08f0e7b65da846981e00256fe627d3fd74b0da87a58f1daabe54fb15389e44e8d79bf5befe1f319c882d33d1d34db9d812fed2b172326175fa082f1359599c7bb2fb9a3b81a1ecb9f9f81dfd08e26c28ac46a6a47431d5806b9e001691da3a7bccf0521051473e57597723733ccc14621e2c7fb5a0562a4804342629f9866ad71dec71e34b8f618c6b6c12fd5c227edfd3ebc77f62c8f6d82f039f95547db5226e4073d4fc8d91e4fdea73ea398763edd21e502fe6b2c01ddad50d3ef35ba50adf34a6f232d98de5564f7ef0bc16b65beeab8da4c2181205563532042e859b257ccd500c9dbfc26f9a4ca20a10ee1b94e3cfff12680f78ce7cc134a4f5cf2efcd88b99b8fcf52e2cfae220af7a7ae84362220c2e6bc3bf5e0db4d5cde8cc81948f07941a67348da2ad2c28b790551241bf6bde70f4bbd366cbbe8e0ce1a3f72e2d06224d11e41bafdf24f0f390ae129d2cf2e5228337390cb1571b747532b76aa1a6934fb680ccdf24da86cdc22a9c5db3be198a58913746d1701c9c19224da613598403d56aaf4753c8d0c74ce502034f72b81ed5d3aaeff0ee3ea0b36b7abc30a5876b3bc0ca0d8c7705fb2533b1f934cad358fb473d71fa4008e1c65f070e535a2b9ec54b123123f09759c9a16a7b2c0be92d5112b77954d89dfd0a23882250228a83435365587c49ca0c389210b39934c212ead258cddc4226a820f949f698a18388961df4246f47d12b164f298895d295cf3041aef15cf4c9e40e6a737ddff8a95bd5baf6a19fc254d4fd502d074df2035eadbe0b257ea3bce05945143decffde78ea44297a7966abae6504f760d6f1dcefc239ff98cc84cd1fbc8c9df2d1338847ada737eab43912688a127f1ae0d667beb5518974c77d35b96f00d0bb7e60d1bebc35afb99d786e764af0abe6c83b061fe09e059ceae787473771ab6c7892dc4506d25f46b3e721401d573abeb5a915452797c587de7ef97b68b330baa7b2779fa15bd64a6b9a51afa61dc579cbbb55d4ea6adc7eebbf1f0bd88162163cc467b5b7ff637dbebacf873bf9631e1311deaae65ac2f14d24c62b04d8a0c3cd6aba6d69bd65975a895b71055b98bdc560e327cce9eb05944a3251cdfdaed48fbe5d1183ba00699080b7fe549a4ace7f3091558cfb3fc20f8b444823abb0243100cca662b5fe049b89b1f1708b2ece7fced45358a8eb4fc2151b8d57099593c22a0c31d695369214fd2134df49179a31f82565bcda5711f36fb8ec735e41c42076ee6b018e10803e1c74807e4751d9510dcb43a8cfcd75341568e216e7fd3f6eb2872b9dc03a2a05fd4d7ac7fbe7e638e9119c7eb13544cfea6887c0fa0bfc9339658b66130079ea4c950a8294d51f6af904a371c0c22a1f1a7599d4ea540af8ff2c6249ef9a44da29439ff23187182a184663320e4b2e0ebef0c3453f28758dd258b1e23133b666cbbc30f85fd2cc64626e26a30125cce0d8e1f87cea15ff97b5c2f07bcbd4c9d47b80a80121c65df06186fecbf5340c915fc8d2e7e36ca1389d825f105a555e171f596e5d1e303a4c5224cfb877a48096f63c31be2af62b75d73300a31a6c30f64b0bf140af539c637cfaa566d97aac9c84f234e737fe9066170f75b53c461a7cd68ede00a9191decd786c6424f10036f2746a12ba754ee2d89a1f52568ba3ae87381f44919fce988b1cf4b2d7ba62e0b285768a42ea948bba1eb0244c098fe7417d9a5783e560359039080f888bef6063da915b2a1ce8150deca746dbd185cb38b6614e5a5669845a42db9593a6738fa8607f5a2153da62090550905623df524542ddbf104994c946204f395d5ba61bd5a436cf68bcb80a070abb7d792a3fdd2d0f6a6ff87ccd4e73aff3990d3ecd0d1bdeabd4dfb4900c4122d985e33fff0b4d208d842cdbe951f1b6f4362de838c7acd4cd2ba5c2a8e17d67b5220d9241b0851df436916a2a725da8b1c76ae745d0fff3da0c1b069f9163676a78e8aaaeea7419ed7c7e92953028797639eeb4dc25f36f94356e49af627e4945a169fa4a668cb888c106fc5c25b53648acd976caa28c8e8a8412326397650e4a5aebbdfda667184cb7f3b7d2b832e89cbdbf2e07d59d386a9eb62f145962a5e28b02cd443c8adc4f3f8a033e449451e1bd02872da37f66ada25a8985599a623cf12f50448c652a47dab1a3315a596f2c7ed3a60abd1ef19da223043159ec8e4b26af5885dc625b68397b55e5dcd7d9ad750ad35954efc0f86237b7b28dec267046eb921626f6df35323a4420760b98a43a361dea3c3c879ed787114fd0c58ac5eed564cfaee4074d5980a966c6863249ea7bd5a2bf272a4558344a01612347a2588e1501a4848c4e0f42d02f11fe40ab00acbd4f51d4717ac2c1493d860b7805631ea64b4fc4b2a127ce9d960ba435b86dc3b9cd0fbadc736245012c47e1273650c85bff9a464c3c0bc21dc4820b1a5d551a8f725df754fe7205245b4561ccca3bc68773edb377d507f2f84dda7e83bff96e2b0df81a1c972d56f4b914ad8cf9b76e47b47816230c6da79cae4018557495456db3b6be2f30a4040ef3d1bc24aab6a2cfcd3104ea3cdbc941ba91fbc9481c26cf9a8f88e0bdc92a6d705fd5dac916e293b408592ca682c292d2ff86fda40c63906e10abcc7fe0dbfaf03d93b3116a80e46b9523a3996085673964c9e206d839c9eaca4a8eb249be46dbfa237c8e54b2cfb5fbff8bc07863e1636192baa381a94067a07cc3e7ec645da22658af620a84e32276e2ce71eeabf3c4ae39c7108ee533fd070acf4616424676293f2b5377874ac6eacf474066dc7b19c06d217d7bb68bb7323d0e05d6bd8c437a0bdd3785485b513c5bee4503235a688f5ab27c330248678be9785b02e2d6c04a7601fd17ee2387e385a624a5d047671de8f439dcaa7e9bbb60a8b1ca23b6ad378b55b65fb64f1b4a2df25a073a23e08cb49f58e1f528d19c2850ffe29deee6376568af2a6ec919413bafef949c0bb4d5d7650df62dc6bc042ca7ffa4d7e064ecce7b7cbaa1b3f519080b608b33d9ff9a0a552e89655bafd7151a8cdcbc517708896932554a85dab5569defd15b593d4dd7c5d086c9ae3b719c36fd0a4d44c5971848eb7dced3b1b96ae9956fe0c177f649884d0335625e8ebffb3bead27d622a154d8a596e7a94537eae5cb487edcffbae5a48dbddb7e909e6b24b0aa14319eee52f51d2ef8c7ef1abf69ea5f023269b6562c6927e3606ef29d751615f51796ab9bf36a1d5b0e245b6ce01df75d3af3d3d5af57691bb7b7089718df8c3ddb9593b0d28d8c4f85ca44a95c9f4a707a500e779a4e5eed45a0769818ba60ad1e7d89be2bb584b2a50c3fadada806a685a5b701b7c1b7810b88e44efcf762d7f45972bc1cacf4fda5b61525d916e3e0feaf525cdc1276a9ae187a1b0234d98b835f4c79aef141160e58bf8f5cca950dbc372a2f9ebbe2e25e97af0c39440303771604924d00aeac4bdb4003bda5a36f4ef911cab7f0018bfd07e09cab255b1c74b144174ba9f5c5b307c7c4be504ad0cd1d51fedd9de1e0949ddde6fbd84f9b60319fdbe5c6d6c7d19677bfb257765d4cc471d567c2dac942bbae5756bdf6461f197a0e8ee8221fa438f9de69c64d896f2ed5e28854c03d8e816ff76d00453c7a5069c6404655463694e0b1f87579382eb95b60bafca557f5a14da4518a3997d76dee43b573449fd12cd8d2893bc6679e53fb5154256f792b4f98e712e414c6761db503689d1d9459b8d5899b656082afe0691a7408d5ed7518a29833e3376941a5ca0c70f611fb7b804c55b61db4493c91f8d1dd703d06996688843ff9112c99c66b05e52921f0e2a46ab1531e5e55f46143446eca09bf7a58b72f5caed68ddcdacb7f410aab0724e7037f2df6ffe7449092eb767ee4398f3abe6a48706349f1708b18a99f1c0ae82465dae5681f529d8e839f782c54e216f24eecfa79c68200d049b132644fca362b6a0e800926c058569561da9b75d18e067f79b9d7e39c1236e818902875ce2a515be8bcf5779229f87ca9116525bc9b6b2b759120197008be7e61b1553263a54a9d06928acf54479ffa2789e3606f7307aa5d9689ba497c2aa42995caae76caea723e18edc3d1fc6ded3a3e0c577f67fdadb943bb2b0d9d3d27b54a21125cf391c96e3e49d6279547c1954cfbe510bfe405dd3ec1729c2c74fb955923df0a8d5b3c372a8d90d0520a20be2bfd6949b3bd96b1ebce44db4acd8a188c361c07fc04707365740563020003b281b811efef8fdab596b2f9f5f9551c18e3abb759de33e0918371cb66dba3bc47d87cdde6c9702f0f0376109b3453dfa4665bd3f34fb1781c4fb87024eac601b4561d5b1d31ad1a0d43b9c34ff29c861c25da23928a05ca39033cfe6f03051e07fc0470736574062103d559d2a5a4180f418a69c4bed5508971cda9313722fff71e053d3d82fee9d7bd07fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac07fc047073657408040100000007fc047073657409492000000000000f4240ebd01380d359eac86844d694bb283ffa28201397c492fb532ded8c459440f52de3f8424ef929f29132cdeb4f6d5df6089ec15c4fbaba614d4fcdbef511ae320507fc047073657410430100015227273ad2e3e885820f517805e3f88f2412f610c71515496d43ef5b57b3bcdc438c6430eea4858f66ec5547b9c4e196d2574423df87a9aa58cf393837f75e2a00010308c0878b3b0000000007fc04707365740121080d40d0e9edf648b2dc42a95dc78fb9914ea1caa7f5527dfa3bae14e1b596d51b07fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210b3c73bf89a27c01a24c6c1ef51dd63d8dcd83d589f7c2c5fd6557c365fdf0101c0104220020e7da55d19cc85b0420c539a90b667d4d85f59ee0ed417493a947c3a2256cc0aa07fc047073657404fd4e10603300000000000000012acc3a015e9d9f4debaea69c0602d611e4b10d80e7d8a80cf67061b3e07ca1841709d0eca32a81a9c0fd15bd122851d8b72cce053501e95944345c243ce86613a52c6187bdb1d1365aaa3a1dac0e91168ab05d392cc7ab56eff07afbfc6a1bfec8ade02f723dbd7f83809371994df8b49f6bcb5a92f4481991b8918ec599f32fd2a5d15c79c3cdc8e4e109c32304f255bf227b849394f368900f3af5edc1ed9366a1210d5fbf7200fc21343f547f2065e33493bd98c241b1005a55a091e2b57c0ea4e0874092b59c1e39d490e923821689f6119874f1073f7f4a615573bff6612161327b52b961113271ec5e2a76f1efe539ec450bf3915f961c4bc29cb352a9eeb6edce8a3aa869dbd1110b94ef9c7efafa601164fab10771ba30fd7c8e1558e6cd47a08eb5fa1aa62c2b805a65aa0a40268d01ea709d8cb8a62558da3595220908e8318768c6df25ce0478502cef56d2b06911aa5054013a5d1097ee01dd25aa81c8db1c0f13a9f90fddd0c2d558a7e2021f0cef8059265baea2375694f040fe122e8caa55c2f2904114094ebf219597096d613e3b338a44a834a97d5e65e111001835f44aa7a5ab911e6e35cf9b893c955a648c72f32ed033c1c74bcacffa013e5404d478b61ec0c6590233b2469fa2ec5ba9b8db23b594ef8f918cacf1039804afd2e595fb0cb20fc0ce1e190ff42e93e3128447d0b68fc515ec29a3e0fcd6e9b19f3c3b376dc78095cccb7f198ee76373498327fb3f381b46a87023f54952a0782a7fd31c2c44cbef1e6e90e80d83d2d6cbeb33538f74b8a25ab754e400e52649b6c5c8ba9a2621a44dea5b4df8811525bd3acb2ea229c6f8b5eccf431bd68c4badb7590fcf2092332aa1fee30b2395fefd0f3cdfe9a40c0e94afff8bc14dd51d8b8f001c0e5bd82fa1899b07d2690d180dfc7d5983e1b530ff7f6024db1dcd0f98eff1a12517951c0e0deabf1867cdc9532ace02fde535803df81d2aad3685c74033309717173efa32a5a40c330b79488a4974033f16e4b8a3e040b25b5337ae4cd0ad98ce72b21035d207321ef531675cb2546337ae7672b0a54b810ec359b9874e7b184b58867f095bcd9decb3e852021416b09ca3f2daa0c52fdf4220cc947a6eee29ec5d56f65e53b4a02a3b58603ba08b2584fe74c0daeb61f7cdd031de947bb7799ba5ec3039a488b591223625a88dcd466d99396052b310ca74cdc2e30dd0945d5e663b2afeebfa0a5572d24a76b570494c73ab194178368a2f12331ada92cb9a84f49eae898bee93d3e55ae7e90db1c27a2096a5132c34fc20378a83feccc707d52812f55fde0ff2e1c6932f16a9b18aab25dca5403c2c5ef94c54b996008b59b63044272a2b28d5be7a653cf50d5ddaf43722e8f691b5b409d38f61dc96ee65b3fcfafb2c0e15c14a047b5201deb971c6d6036541fb23dad3beedac3d007347a074e6cbf3acb7c7b01111eed3c29b61b8c28f3db45963504a220bee6e11873821471e021f9c870e44a50637e0460b09424f89161afcefc637933ba008d148d32eb1533e49712dae6e55c49440c1bb538dcb829d22c1a12503e7b6f2e04883d9f2a0f55566fe633a7975cace2c690e5ac873f359d7bb48c9e98dafefa4649c4cb79d6f062a5664c1ab0bd7e04a712de2f40eb68fa9992f4d072eb5fef52d29cc8e2fab7ff9ec75d3a823fcca43ad7313d6ee0496509f43970e5b887f5c8e59ac9bdb12921b1316d348b67a5d7c56b314fe2edb26571c22ed9f532228a5d2267fec066e41fde5e69e5ab177df2fc3b2f0e0b243a4aa4b3f125f65c4a01714016b6925c88d1c2878e1092f4a8f9e9461d5fcac6d1b125f049af6a47d19a4e01fbf5d6da2a304fd7c28784123ba4a3be552da363a5ea3b40b80418451a609e1311587a5d0ea16d74c52e44c611c87da8c70906f0c9e2c3321b5e4707e0abd5191038763e2806c94cc2a3968554fb39af2e8b686476ccb9c4eebe6f53c94f29036af6277d674d16fb17931ec6cc2012913fd8d3a09348627b5f553ba176e86596034208b1b512c02187b284054f1f606239dac1014a294fc6c09947a514144f2297a2d9779e711c51b2ccd846ba2e1ae3bcbfa6fc74affa83f9a4b975cf26493d761d3294619432a384ae0fcf6de9bf3615c086339006be226cc44346f712a50e5c3380f7415d3b084d42e556a1ac629bf8af4af6efa8f9ffc5cbb4e240f46438c31f63117056ac040fb777348e43ba90599d05d3216b97e9d0733510779e3debd7b595838e42dad7ea7e637afaf3d09749b29f1687a004d5570824b1c1e38af99204e667cd5dfa92fcd9d67639d3eb793a8b531a3d72b94e5fdaa225b3b9da6226e2a807dc33ed220dff6edd7e31d734c86aac2db8a886672034d73b9139c7b6a6e7b867ef0ea634f482882ba94da1f1f1f06d568ea07df16c4014b5ce60387c37a7d164f6c7900eb6ea98e885dab0c420d0812034ac6ed0df56794684bc0aec44291e83092adf6764ed85004f2d49df49e98cc6d270dd80701cc2f1eda12cd03cbe5f480591f16ff211dafa69fce7d2451edad3d341159c32f9109e8c2d25c4ad3b81a70f5147c083444ff1ba0eb603e14102706892dd3fa92097e18f81ce46f8804271f4a6c74129c733c155174d88479cff8a7d3643b85bb43d14b9098fca82528b463bebdcdc36e937009428cbf6c5e4f4ba2ef740ff2ab1674ad47efb90cd0d4e65d4d276d9a1b699aaa981840df38758a8a16a79fa1165e1974f2d9603188fe20efae0e7eafc571017a283fe15e43458e7fe8ff92e8c8f4e6a048dd9cdb801c2a6d77049839d9828ae973e0edf534b84bbb6bb03190cf996842873b42a152e338562b8c7f9c0f5d5ae58c1a5ad407c1ee61e367ca33234bfe5270a73bb44719854cb7bf4dea61be5ee990823a00f45cd4db6ea36ab2581e5c8cb1c629106e8f37e9f3f7c2ed2acad99d622447c420fe691f9c9a1cc3bc98d4c464c1a63ba92f0ea4184eed55ca47648cbbb4158a2e884faa922157dd271daf6263193721bac97753777e07905b296e9ceaa2d900cf21f04216e0281a9a30a0b1231d5ab2d6443f4f9d51e3757a050309ff6bc97ead7010b93fea6a65134f7a0339044b8e9391cd1025a5bd17885eac4d7a24dde6a579cfa1901c4040c778ae2194674728ee28dd65106d05e7e4011034a887a7730f6d226932b4fd502ce8caaed47ce21178772adf9014ba33cfb443b1ae85de686901877fb6ca52fa5875bc6ce3c32cb979e7f132fe7e9d9ab40b7e6a6a0391a56c5fc2801691b4b99f37549995690382f6d0f245134cf947e8376941303af9071fe13859a4270ca4cbdd0dafbd00c369011687443b59f696ff41c0500d3a7be4d3bff6a66d4d5e1a50c4f490343c3e50cb03195c88b95e64cc0f295350f22c3b8fa8b7d25cf2c5675df228ddd696637ef8ac4e01137dfecd9edfccc31d83dd34902bb2a54943b8ec8e45b5bc67ce207241ea557ae3edd509bc80095e502a18588a2b97d9fd03b63cc2251ce924031726ff40dc6933f9f2b66875145a80a0e896c9716aead406b369333f88485cf1368cc90aa6d1ce2f68f82cbbbf3efa8ee5696f8b2b326d41bfc0ed85e0ac9865b13c2386c5e20288e1dc58448a3b49454af33caf60c5a86c41d23dc26e7c2828ff23917ad0be9b8ec8a8cf78c6c6612f5518c8330fcff344ce7c7a21b1f89953b698cfc7a4ff263f9ccbf5db65f07e62c472f0d1419c396487c460fda06b2a002bd65f04242089e7d50b6870e57265e11b5d49a071ad1b4b458a09500d48144a8c62ee50e8d686c2acfe473301d7d0124e836e4cee32e32ac7caf6c14eefcadca6a7026caf566c0023284bf64ad701bd646e76af7664a86a228d4589eb88a5cd28aa059d91217f3a937b6e1f32afa270b53f4b1795b3f191421358aed91b942ad0ad5858bafa748646c6b9f65e401547acb20e8c6f113363f680a077720dfa730e3dfc704218861ca0fbdd928b226494b69beffc257334fd4e08f58b038c15751f9b1d41b4ccc3290b4dafb2c8ef235833f76fdc8863429276ab1dd720bb139db46bffa11219dcbd284ebd2fad0a1040d63fa37a91b2f80902f2b035f8786671a19796467bde9023c6994516424cbd04281d25c3dde5a0ef1d4575e4a00ae782df2282f9db9c544f5cc45a685fbfd89d0458c112a17cdec4e2e039183e4f630fb81ad1f2a0e33f746c49b38f298387a3ebdc226674b2735aa2b58ca60b599c4770800a796d39ba8d24d86b3efd166a069a8047836c351d829eb62f25671e82574faa1ca1bf68219d5042f3afc59081c8f16e5b4b0d00c0c388d3fa4e7ddb0b0f863c0a24c8cdbca08ec279c0086c352b12f4e386ddd8a01338f7268ba7f63489fc401df63fb742de254d85c6693e03b4d150e1478797a20de9b409a0b4e5ecf177fd68540244f5bed875a9d32eb265252d079c7a9e17f6e4416161388a4e332218d4ff3621c1b924119bac9293de73163066f1c73f0c1295b3eed9643cc966590adce42aae3578d382e621b3b1ca433c3bcfd5e9d0a27085c278ef0f187dd4e8590cafc3262164b9b5d89affc33a2387bc168d4e099f3c12ca8545de8bdcccc593a91c71abe9398cd42b4d73055350857cbad1929c2c29de1600cf5a8d83c00ab24a600075e5a0ccca035161fd8d484bb4fdfbfad3091077f17a2e3e802d8c5b36376d693c7ee06476b388e3e9478cd15a4661999670ebe4c21cc663f33892ed489849ae4f4b4b54c320636d8e3a8b3be2ab86d0854aff856da8c8e1aa7dbabeda7b56549d44f14aefc0f083d57055521177a98940afe74ded11720866a46a5134644c3530a5fc675008a08e590b4daa999c3bae8caa1b9cfecc005e7a5f98274d866adfa86f76dd947ea5d09481787c48929fddece7441b3e85ed6bfb846aec0c8fd9b4b0db2daec03a885f938afea3222f0a88343bcad7aeffb3e95310f8181c6a73d60c14dd1d8318ba7afe05a405c77c8f42cca43ab7b1f1f91a5ffdddef6929475aa15df3d23a2470be8b4c87d230c9fbb88ea348d8a8483167da2f9289c6e698177d6dc4e8a2b70b2348b0f3589a0cc508d725c7ebc0caffac14d04b2d5fb262aef8708e80dc42c9e6aaec31c12fe140afe6e404dfebc94e9e04db94c3b15b2c4d2f101de1f91240b5abe79804abcba7efe7bb57794f793a74aff82fbfd6d86bbd29bd52ab4bb7693115f3351a84d6d4ee8f097e838848623063badee9eae1650a77c9065095b195177c6651398a08944e2014a6ae7a5d61b7bd533a2240846679a68eb2863a57a9bc05dd940f0ad27df68c1db7576aae6245a04abdfc59bb66d15f75e010c99b43e478170747a4df410c0eaf779de363b9363353aa2d7452ab9cc353c38d7f78f7804fbcc1acf385da9a56cd81b3780bb9fa34c25d365912232f4cd655b3854f0bcfd88aeb7c2f8f732f0abae59bf488801d8842972dfae0fa1036e2e66f00f1cfa5beea48173a64915d8ca9ba74497a5beee3af229fda8caeb70959508d817c0f6640015caf812263de88f5a0c31d65b9022dcacd6b8bcee9f14235f9d92675eb569b5e86150246f6d11c613576cc80e11ae8447813ad313263186c42b677acc23ac701f950831c468887a126b908351dfaeb9be1ae83e013e47eedf6553c6b75d569d7489c0c827c8334df58e0f1546715740b1776545bf08e6283108050f82a9ffd98a8dc8eae42a68b58ebfad9f4d721c0b8863f57bfacf1169e2da6d37df8f0c20ab85ee16de943293e6c12d119f7404310e29360bd517de96f81b8ac30c86f60f9c59795c7a5d069985f623511bcd8d07e15d391f2f894bff809bf2f718751483db6aca5ebe658071d36fa6a5303b5a533209a07fc0470736574056302000334ce7af071342163a2d94f1d8fb109e22745c62ef02ffe6aa559067a7f2e9c0d7eb6badcd1dad503c57eea0fff44d75ef3fe4ce4060284bea46f107e62cd17245969a3b0f08613acbf3193def7940ded98c44a672c29a374a253b8e7117844c107fc04707365740621029e5980b4f9b9a9fd568c1c4b48631a800c310405ae8b2ac41ddaf87add3062f107fc04707365740721024b1909e1c80e8ac00cc4954cd2cdcb0cd1d4a38d2c16f0774480c0b50af89c7807fc047073657408040100000007fc0470736574094920000000003b8b87c05549a8cfd6b34dff0d58b5f8c6d8bdcb6e660a3ca320e377a4eb56df63e9b3c37251b3b779c3a433c57ac05905cf1782771ac4435dceb17d10be290d1e6d94ba07fc04707365741043010001e9a50ad3e77b73d6ca67913e649819d9f9f34a58392c6a4c6471ac9d95edf2f3763f7635ac35a3d8120d59a8a8d48583299540c82be7f8dc74b986a859d7483d00")); - tests.insert(String::from("pset_coinjoined_blinded") , String::from("70736574ff01020402000000010401020105010501fb04020000000001017a0bb9325c276764451bbc2eb82a4c8c4bb6f4007ba803e5a5ba72d0cd7c09848e1a091622d935953bf06e0b7393239c68c6f810a00fe19d11c6ae343cffd3037077da02535fe4ad0fcd675cd0f62bf73b60a554dc1569b80f1f76a2bbfc9f00d439bf4b160014d2cbec8783bd01c9f178348b08500a830a89a7f9010e20805131ba6b37165c026eed9325ac56059ba872fd569e3ed462734098688b4770010f04000000000001017a0ac55f449ddb6853f2508766d5afb9f3b45e41a8ef5368cad75fb88e5e249395d1097d88c92ca814a207f73441c56cee943f0bb2556da194c14a4b912b078c2238ae025341cb5e4e2d8cb69e694cb20e5ea4cc8ddf2801180096fd071addfcd8bc4445160014011d384302576b408aa3686db874e2b17cc2b01b010e207aff956e6c2a379543b1ec82b06958f062bd9f29aa1ac1c98d1f6398b65a8555010f04010000000001030820a107000000000007fc0470736574012109a8e77f4e15d5305e7a9239c67bb6316dd09ecb48949abefbc090f2512dc00f5407fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b207fc047073657403210a5947a6d36c37663613763fd69e430e0d58bbd4ebd938b6a587a25370fb9ca8620104220020e5793ad956ee91ebf3543b37d110701118ed4078ffa0d477eacb8885e486ad8507fc047073657404fd4e106033000000000000000197cfbb01464d22365ddab559a1b8ff64d71017fe4b6bdd2d59855f0a77b8e25b3ef67a3680304876b1e59498c55ac18a03b1b21dc25ceec3f364bf4c9bd4cbdddefb65eceab29c92a4eeef2ae61deab5822b91b1696db64163a740830acfae296fc0fbbdec16ea924dcb3ebbae4b9e176fb8124523982512fca9d9b6ae9748639416e485325cbc3f41b38ef4df8ccb424ce0c0c8d9d29eae45aad1b07de9eba2cdfa35459352bb5ecf6a9368581f2bcc5ff0335a959534d0867a04baccb5664e5834c2394ead9c7ca94b9567bd30265062ffaf4e95ef534cbb00acf2cf8b1568af551940483b59e3de461d73bbb09b63d52da10f04fd6026f9916e47b7b2ad1ec25d09eaa9f7953f53a4d52e910207df4ca7cc248c12cd6c88cc0bd0204d152aa4576e67261c2cae80fe7e4dc83ee27adf3cd88865653ca9808d4dc9f512e270b6749f4a342ffe0a3a223a16386b9df14f930ed213e1b2152b1fe3c93b71f7b5ff2c4f906a7048d3104bd0e480ed658b508d8ffb32befe3ab7e8af1db3d1859af64899017b7218561b3d633e18283caefea14972a75e7d153eeb2f7f86ac8f1de4c3560f7b400593e07896b56bdf9e566fb63209e9fb83d093153794a86f5e7a9f5e51b5c0cb8a10710227c5b8093f77370708d4d3e67a761f46f3260038534ec8d4b27643e41f804fd2af989eb5453dff755695c3c4a7f9bec6da97dfb6ce7cd81038a427a3acfcb4a3d2b1d10d89fe8bfa10f59eedbd914635a34380e5270e137dcb9ffc91a70360e42136a36a6e9227b3dd39a5de3da0119fbc058041cdb85a062b7f86d1467f8401beab88cbdea5a4bd44639d87e36bc53ecb473c35dbb337797fb640d469b93287beab489633825f556956d12424e504b7efede611a72164af0c9628aa0eed613c11e2bbcd02580510432379045a2be2f57b71a3e57f6b3f7e418c98697c35ee7190554ab588c759251a0ff653ec53cd93962eb4622ba35dcf6e881cd4929f60ec2315632ef79b59662b1e94154ec382a9093f387f747d30260367a01c541283ff4f9f5d8516c54c9dec591fd469b3350c833b7225a2f4a02b73a5081a907b062a7b66ee478600ede49bb78b1aa16c1afb0ccac857fc17792b565447d20eb3bf9ca0d5162b4582c80bd81df28a3594d89596c6687e2a36878a8fb0de2c4efa76a83d1b42bc8ef10c52cf5a3990cb3af083e6c951f973e3e1fd91b49affc84884fd6ca76de3ab64099c5de11b99a96d10eedbade66f5ce1a43f33ca2c4e07e4719f570a9669278b2c74cc206dcc6c2f993db2871e895bc15505016ad89f935ab9e56482f06c693ac4c2b59437b1a9922f825effb10ba9bf488e08b089be75d8dfabbdafa2a1896874e07c5b1417acb344b0bcaaf2ae0b4af77afee8106be2a034d7a2ccdbee894fc89c7457517ad2fbae51cf4fe7ee88baf444211bc5709061de96df3e60648e05f4ff62b15e188b40934ae1eec643b25580e519d5e89c701a0b0634dcc811367f313bc78eb7b42323a8d6ee0448905d6ce15c2ca5f7854d39f852d7446d7fb9636d46fb7cc967fd2bdff9be00a6872b27410eb2d32b334575b635d64be8a19a5076123b390044e01429a563015c9a246701490a472114926e4dfd1f0b450e195b99199bd802f5d63383faa4b69b6968f299a130d48c489baca078a5c5cfe533ba49c233eec9edd55e3e692c60003366ab8f0e204a01411bf979a73244249c27e1b646c97575ab3b70628d3ba408f13883117c5f3e3ccdbf700dfbd20d0597b6ead957d15692b83818809930c48f7677c0cbbf9360d6e47494356853a3f210e6574b31aa2607f6417e345205a5a1cf25b77041292d593a7c41c8c9b8f5b69eea3f279966c9acc435af241bf07ed028ac0f86eb069ff1679c92b2611e10daf090ac1e62e0ae22aa70659519e81076dc9f6c7643a0e8c5def9291578ca0d54b8eece0d27d0bc240fb28ea40bc89d719322a09feda57a6cbce5237ffdbeae91cc853e400372f784169c43bc4df777d5784ebb9ebdc22fef28a19e3794ab6f61f27148ca179463690fdfac622c0062fbc43ce054524a873ac27b6322114d3d1f6272737945180085ac6f6612eff0cb53c5f7e4ecb7087a88895342ad7c055e22ffb15e2b0a03464476983293985f56a0733f874094aacb6174ed54a5ae2e68a4bf13e1f91558519acec14da3105eddeff0a50dd41ee5415cdc2bf8a31b154ec76b8682ff2fa4ec64d2368e2f981b837207814393ab79513176da4b4dda8c5ad16c618fd5f44500284c66bc15759dc89d938ce6d8206013302d2687a88b7bee9278887ecaec1a88710c61d49229b48d51ccdbfc977ada8688c8cfe8cb205493a18751a17171a4ecace2d95abc9d7de481d08d5feca3d53fc37630f46e47381842fe8dd537231f966f92ac273ac1fae1cdffcf69d2517b6fc6931cf6be4d9b9561c3010bf2331f96e142aac2a52e9d92c0d4b8bcb8c9016f15e1cb5ec10a2f6005ab901eb0ad7b53e952b31047a5cc4f48e887848a9a6ea0360b0fd27d8348e62740bd88b277eaa334c92a122b03bf6414683c43fb6afd09b37bd3035f1d481820e62d8fc81033ce0c86b55047c60b0bbebf308c5efc38162f2d53eff6ed8cba77d09d75014c7ead2bcf1e94159ca60df2dfd8ab4aa0e2ff29e9662c7eb51b3df311e01ccbda10594b99679f01a64d95364db57d4015836d5ae8ec12b5713e2d2d09ac56070817614c34dca54bd889c2a248a1b64cdd90d29d3158c9e6cf6d503a52c44ace0bdf8dd65b9716ce3a3177c536f9121a38134b60b37cd506d3214a3e086d82feda82dca20c05be5a07fbcacf73b485dd560a285690414e6b9ec8627c0d1dcfa9d73cf238bec8bdd41d771cd1f1118e2a52a36fa8c6e450d99b7f6d8510194405c273cfc6f10de892c49631a49991503b82bec3b9543f4c5c1734f0f8c023e0eb6ad4143f30e479c211738eeeb96acaf63382ab5da7ea9f9abb02f6f1d880e3ccdf3c22a7b9701e7bc50c2fad0f2136c96d4a240f85189ad3ce0d1c6b980eff3836a548f9198352c783e04a804b42e523fdf5ecf717318d8b5c18e3038fbe47dd9e0e6a220b92a0bcb07891fd79971bc8e22dc811323c0e1e9e061f4fb4b496154ad6a20f04d8d4e799ff242f4734e26ee0116b489a5df0e0c387d020ec0b683c5a08e09389b5b406255224b651f38962143af5b69633ccee54e61e961723f0ccdbd062364f1420e1fceb2662fb4a0092f85eb14f3a2a3b984bd83bb30037245c73a8f0cecce21bfadab53189f6a94dd26f992d34da8a3b39c62d96fb05b3044dbff602c653bab55d6be79a548b894c6063d330c42da06275b361229b357d76b157d13e22b7d9cd5451ab592edb4c3a6eb115e48e2068746ced370e4edc6e87146daa8df4aef101f4d9ce4685e2b6fc2aa8fe535b076651e79d6edf30b0a83065c1a0c6c3d5607d1682c72709d8dc9c7fc6d5c5a0cf3e18e95f9c765b702b9a03b8bf49f6878524310ef5a1ad3d67b43545c09830c10a8de71365e292a43ac7d7cf8cd0ec9b4fc07ff6f7ca01ed1ef5d437a1218fe4ce7d5d48796f960c6243f6e9011bcf24a0b74974415b64421a1a087ffa9c270fb0e90a231792345297366b33aca2bb6abb5d2223dcfdb276441c8431ca21306e9044ef95e2b7f6480744c7cb1f8b29026f6e2d95c8a1e469967236420949d3708ce3dd3f7c6d3709e8d4d4f0071b86143bab89fe9bdd90e8c92fdf0dbea8c4ad459a3605857626e6924719982fd34a44e56446adac66a36b6e389a85c57a805d67c08ab3038dd6ed2d1d708896b69497cc04d34422e76314133f9a6d88b5f8d3f3f440e09356e75a8122a6704f66dd26ddac84be764fae76dd0e8899595cbcef1ddec1d6ca1b7d6906c6ca30f479ad383b5c03ed558ca40c17f9a05abdca3a68486db6b5a1cbb7c8397e0cdaf95063e8e8561e97731c5c752e7bf768f3e0a469aac74f24cb5651f80198814fcaebaf8eb8d90feb06a9a864b0f9a19f4785f134f208beaebd5e02dca0dd11e1bb94ae5c0fdff8b9db3a67b2181b5fecf7f93a53f99305521fa65d5c156e8c70a25839a7265df9d50e7d5cd95526c9642a1061041fed50a2de5f1098998432e7fd8032dd9e8ce539a37d37815c3b18985bf1f2551419bbcf4b7ddaef3c4a8b0a5d9842912ea42073d49c317cfa6e77f3411303a296c7f631c41935ffa2191d19977a14918ee6f47a541fb2df0d79d3e350a324bcb0c9b605e68d560f8be92f101a81d065dd1bafac8ee59ee1261e8324f999033ea0c9acffdda910ca4a5b3c8102014cf6852ef02031c0bd70e1d4d5ea626b7b0f35f33d36ce3ee983b4da9c816fca130fa54c6f9d87511296f3624451d18a7d271ba7eb8abf39ef1a8351fdaab5a55efa7f8c43850bcda27a71697fad040808faaad189d1ba254f31bd30f8fe2d1b44bb45aaa4efa16195e2fbc53e25ce965a8f579fd4fdbf92f9265ef00e14e16df2137c2e4d36bea77377ed8695f1b4ac2d40050888d264899ccbce192afb13a2546be5e39983bc352625ee5679be797659b7006a5b496e06fe877c73fa54041f7fd35117115923b77664e3513e23f9c5637e8fc3f9fa7ac74f6c669022e97ef1c96c9836032f6ed2dfd90edb232b79fd4616b7405a0d215d2aa0961797e02ea659f5c03beb521c523af2251907b8a8c7b8349187200d99a28d20e59e4c6cbc77bb216c82fe16337d1daa4b837e92b39246d9820a21857fe19a035c805592e67d471bc31faa4f4b93ada5369adf3c7a380b5f2fb011f713a68159c2c3523e3abe755555bd86b4fe0d1ed99f555e7fba46d6f465efbdcd7be970b4839ced71a1490835968127e3318b9e8503c204a06614f901f7db74498b911929e4910b3d87e85a82bac591b519e840390379ae0d69fb8b88e201b7ba8943af91a78bc1eda1e20c3b1ac7c96bfc0b84a460d561066220ec89b61d4a13bd082d9b52d920ae9d16f6c74fd0ab7d2acab931eae047d72c1243177ca9aa04d7e9b0c1e3be6d7b68784bd64c9c868354877f3f6d54813d0f60039740de75790a88f0e6ce866ca2dce3441708a7d566c9711b75d2bd49c6bad95603ee5ee7358fec51e0aa4d1f43b42d7e0f0c13ae6c192a72407f36dc2257f4e3a73eaf062e550532b24abdb72c5c26de136b2d0870b198456f40e11647073e3676fd6e709fdad602f80ab8d4d80521b644680709595e90917f7ca410df2ceea2cd5d1cbace397efa620e4c981c073fad265cc9ef40a945d6b7dc22c58189cf6410fce33c4505b2bca344e7fbad7ba78fcaac99edeabf68039951d0c4298fe9afb00fe7ec9a1115896b80535334f902d0a8deea79f32781498aa5faf19459463ceb4b9cefbc447159de4fb0e524d6654100c30d9a5ffff033b6f700e8a61064772f5d364aa0ef33070b790501cc9e572f4ee4baa251af36dc357ae1ddaa4ed460e355523eac470196a87aa4394eef0e29f46ff5ef80a3b5e9e6f6a21b079793d14309c9966fee7d896d80afd4ec2f28da2a89c70214fb169ff1cea13d9da988491c44bb6b39a49f131cbbbec5b123450b346f6070baac1f0b7c41b483e320fd9417ecb8339b89d3ccea76a653ee6765b737b6cfdf132036733bb4b535d0d9cc42e7b0d9ee3220c4b3a7d1863ade85807c14e947ba6a2b75712e23a233e4442b863b8a340246bdb322f538dbb26cebd36d0d1c3407c109eeb78e79e3cca96d25eeee1b1df837682d231f8261d9bd3601f3f4d366d998c55d7c0fac776ec1a55005c5a4ca1b865f38f1c0bbe669ff2a4d46acfb2bc516818e17b9e689619af0bd06b1f3143eef2f03b54ecbb23549f3dafd9732b908ddf2f8a95185f95545820707fc047073657405630200037a03025dd115f49694c2d1826ab6f51a354a036cebad74b2e9af9bef052d856b2c04ebaecee5f7f7fb0c0cc33dd032c1fcfdbcbb1b192fcad09dc792d73a3f1d063919b00853e9f199fe5452fa9d49168a6af5cd6c3cc25f65c691aff1bbd87907fc047073657406210212bf0ea45b733dfde8ecb5e896306c4165c666c99fc5d1ab887f71393a975cea07fc0470736574072102c089ea1e19d114d367738e8e8916c18e54aa2c23910215d551984bd3199fd73607fc047073657408040000000007fc0470736574094920000000000007a12065f43b5553b508814c7755432c68b28f58a74afb15400dd630d9260d1b2552d28c5d83332ca7cfa05539a3bbdd1e395a23339788c636b97edad794b0d0e6abc507fc04707365741043010001e4da3fc7fa33dd5f97ce90ac6c4fa2ca24510e1a0af18dd1991d986b523151e6cf30a67e99111a7ba65cb4c4b2abd3b0521547928be8613fcf1b67487287e83c000103086ce2ad0d0000000007fc0470736574012108b72e358ef0b7a5dfae191858c20f0f206fba698c2d77222d05c69033551cfa5407fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b207fc047073657403210a51f085a4066ba9050284278424ab1371ebd283fa177ae72cdb81e2a2556706790104220020f6b43d56e004e9d0b1ec2fc3c95511d81af08420992be8dec7f86cdf8970b3e207fc047073657404fd4e1060330000000000000001d9b0ab00bce3d558c19a7037ac726158c24ef7afb6c68f3e77540c2523b3b9a10ef6703deeb2c58f9b9293ac32bfdcd9b2f19b9ef7ce704ec0c2b06336b05ee0cde239566da1e7e344806ac710bb095876bb11df65dc6cbabaafaaea27214553b67fcb6c06ad40ca5adbc1c6ea7aa6d12fd7beddb9873e1ed56ad006634bbcf395bec0b82e3794f6e6e0988ec680924757b8eaf321ce84046941b5fe963d8acefd5e2f297f19ff5d429d66772d6fbb891bc137e42220b323bcf835ec33ed800bad87d24782afe909a5ed06c82ba385761265289b80a4b7a7e82c176b89fbe3a03ed5cf1b0039dcf556b8d1aea6baaa2df8b0ae2e140b060caa8d0ad2263de385c7d3ed618f480b9808072544a10f42d55adb62cef2878469664d87e681e92aeed8b4001e89bdb0c40dbbf337b21e391a7c41b0fc50bf9cc774eb9ee080cc61a7e4cafc919c919e1b875421df818f1a8a1233a8d96b5600aabc920643047794e09408878295bd0d9ff4282f958ea0bacbae7853649daf29bff45b0f32ad2fb235c802d89d579872bb5599a6433c017c98ef87bb0e250b9e20a8bea3232d676bf56106d67fe68c858a72bef74130d313bde4878258f3c8762d515b767c1be439ea98ff3bad581e5357bbde211fa2844f62fd0087605c65abc6fd904b60b63b23b740042572b8e432a6699e5c29467ed8c76fd3ecae7dc3f732dd303bf9ab1c3ed3ccd1315b199f160115d38ef8a478437a436fb4fe5c5aee16a8a02961185816b487d89607a24eca3fd50bfdbde24c999b13320744ff1e17778d47c13880d65969429c41872f6138c3fc6a3454649776c09bc787385bb6000141dc0f3e54f42fd4a119b054f5e967d04599c987460ecb8764eaeb960b0b95ed74218f576bc55225cba0b7d14742f84010bfbbb9a68cc1982103ad011dc7d3d0ce24e83b3a7e5f972db0225ad4a8188013d9b0586594338e2bb1b59a10ca3851d10d2aff7e2b349f4f6d5ee37de05e27de1b6c7c7d172990f24f4dfa88e47111e319dbb8b2afbefe688ad5cc4978001253a9760e719940211a2aca39d528f6b749b847888676efd5c427db3510c6318fe7ebf6af83a742a8118e45b2dcbb8004de6e04d9e8d86488dfdb3f15851eea0eafd627fe01cd48cb2607abfbcd66ff5ecd66b50288010ddfb1380bc17c43ff9cef118237727c46ed210c198f21fb736a0125260f5f3c30c38ca55fe9418c35434f1e857e32dca56c4e1805a5dbefcd5c6f527038e779754ea36e114b9bd31ddee29be2513ac77c03ec29d335d2e91745641f1e693cb2e342d2891fc34122e5ab18e096e4f51f082b464d588c3b56bb87db1c5f91e8018d6a9c55062da7e3f7131f250c558e9ec7cec9d0b5e03cb18a34dc49ecfddfbd7ebb8a86cd88d76c1b3e0eaf5af8b456f8c3c07d2f3ad52bab46fa46a237c4cc0b16006b0b68151f49d363c72099ce8c20130afb60ad2e615f8cf5bc7d53be94a439f7c2917c19286c0d8ae67e83e0592768be912215b48525f67e02f3a76a092effe00dd2949fa256b6ad464addfa4fcb5a3c118ff78ed7263b1292cc6f2076cd05f9b79f121a560062a1a20a23adb394b2aa878209a71c56c04529c7756e6d297ed8d4e5976950da13051544cc1f8a8886ec34c6c60cc423a72f4fff6ecf76762500cc627d9cf3e6f89e583595356e13a9bdf9d2cf9366697f6eda71f4a5d5b092e306ee6b719a573259888e2ab343a01bc8f61e48c6c8571cdf8026f75d7e00a669264b8cd2aab1d84890bcf36069f4fd7b4ef122e39b7bfe857fbb27003e965bfa2b0a8e66b1206831e70e6a44648290a06459728d2d8e1f0f530178431113ef5bbe0e21dc7b5073dedfcf0f9a5d6bf9438853e52304a6d119a28697ed6472d72f2ef035170f5f892a1fe0b048589a2b5df788edfdbd6ff01b6b2432ff97c87038d650240d9b1705793e63a671172f542a04be6bc3b46209c5d9f7a1b98142af850be5d4982ab47b6d90e1b0f9d17183975ddc8c13aa7eb167feb2a325c4f2ea67d1d50a82e2aa69e28e31dddec6ae61c16793013576ce4660c9e3ee5ffaf05f47adbc93b40a4bffd8d191c43ce6a1d931f4da0ccbe26b8408f604b0b7ed948eaa6f5391207f855f0bf24b9ddd084450b5f953e709f10720da19a871fc7298ed5fd48763f091669687741cdb50bfab4ab02f38c985f1065a335eb172218d53d30807ecfce3d7b76948804861db7afd3a0c52b87340a6c095c181e0bbbd4044e521bfeed020db731c18e02a46d77f6ca5bcfa2f9c89e614c3d0cba5b9e38ed86d8050181923f18c6a2970868155158995d21cbb2d4e032c1ce69426f878217c342b600c1869344f6970b5b52a6d14b63349e2285efab30c9f385c18199a04ac804590004220a0dfc26749bf3efa886585792109d03a2564c850fb989c3fd723cf0d45638c92aae04f370e6bb15581afbe2e2bbba91e69a64ad3eb7995769b2fff319d5bf73432602146fcb6dee003d4dbfc5d507a4041aaa293d49e67669fc60203c91b0d2f5d7074af20a6d05d1f9135d08af256fedf2164fbe632171d6f16d260fed9e1a8ec136ba62bd9f0983e29eb7161a9315dfc568d47e113b19245aa3b6c3eb2580cce01e3222a76fdd5b80431dc75aa6695755fd78b2982c28dd0dbd51423334bbf804b6d67d44cfb2bc14a9d3cb101f507bc1ed85cbb4b20704f269320eafb234f1972980b3defbaaafec860dab58a3c6425ec90c3fd3d3ebc0e1cd3af195c735a0ab0f4441db4fc3ca24f175edd45a312420e7dfc8a058eda060c684c90d005ee0b4c63ba94c078a6491b579954b8be37ba92ad9449e6b61706063e761c1ba37fd5a51348508e347cd71763f6bdd83da35ccb664ddef1bd86438a5f73d3c561ca12d0a8247f9955b4694ba4c725d414fc00d633662ad10a7eb1a4337049c5b9c7bbca1eea8018a89a17d8172ddec543c9eda722e36c30f136a824c1c7716796be1c3bedd955fad5dcec4eb528ffb707dc08a17641b58a760ef479ecc702ee9021a3138e2b2117e439cf029d40863964c12f72610d43a980ca090f716730320d111defe710b51cc9d500e0d4136108005aa3ae123f53a8bad67852e5aba87e21483bdfa1814dba4c20dc29beb3cbddfca02679f6063832ab31ab1de41d4be6cfd6b14f1cfb47b572602e9fef65469761cbcdabcd1b66ef1b7d2fe247acf2c3b026b1cc2fccc39c67ac20a5607b89c924f48f78d0dac9f845d23754e3c8e97559f7a7871f3f711735c1083f75fd2e66648ab13fe230611b11208584f6556fc1593b002464f664d6a2e5e77c9b87130bad428685a1a9c2a3975bdd3dde3384d0fae1cdf8d311da8ca2a7a587da3636f3fbf5b0288dcbed52f6d148197cdda436ef3547f9ed21a83c259f613438c49287f2efb1e60c3a5173000007a6a4aeb6a82ba76df27e7d09651c056cb589ddb14804a5b3dd10c8101ba52f1f7d1b122834800f3be97d2b723dc55ca5e3f5ee546cb5d1a97e694f92af58fbeab339e29b14a87f5ce7c3e21e464bc22671afdad682f08d27add6bfcb12f796291afc40d3e5bd075d91b4bba0913e963db3741420bda88b63a9d59bdfbdeba5b1006cd60935e938ddb8c57e0b1b59263d971b48e41ce7ff8b582518b14ab35fc0d5921ef0da11929e6a27fcec72eb3ba3dbd81e3f75ba8d0b1f2be4e9f6ca9d13871e6c7e4d451b2387a66fedf3fb2233b8dd72db04e9a2dcb7901bb0ed8eae70c1c50a2d6f832137b50ff1995272658119802604cc8c1ee8b5e0092aade74f3192325e65c884db163aae6ec9b3de16f446128961f1e5352916fdda9565cbcd5a8afa5f06d495b0cea120a25cb1d642500a92112500ed7101af1852fba42f161cf8a19dfa3a271080131b981efa56277e2882f31e3f983caab80833994de21e84c7898ccd93bda503be0d2114e8d1f5a0979f4fd67b0a912068818419c00f0551d6fbe5fdf2814d8490e74a3e696aac6fc6cddd82e31d767ec0a8c4ef13ec0a342232ec5edd81e758ff00cb3a47b9c6f2ff88e66236bfa68d11508edb623a1cb2f2a459b0a84bd01d028bba1df653cfa302ad628e2e318d4b591855cd1a47c79b23a0cf857a4f819f29ba11897e16eebf360941b72be288fd847179586a603e9f6ab2140f7ac99426d411c33a7ff562e0001e75050e06d7ec1a1d6f6cebb9e11bcc92f6d0d8506317794315eb5aacb61f0a7994e04270c0f8093888bf26656ffd9d6b36c6c283857f0a6340d603dd2eb4526b6021a860e849c7b58730b9750c6e0c95c9ecf2317967861705154c8c5dbd4ddf1dfef5e8deb8e06897e835e774293fac596b70c8797d555d023d398a86c14be8d33ff4659b2393c490fba2a1cfdc6253e32ab6bc7d5f3c5ecc057248c18088eb244cfc8b639fbe2a67377a3bf074797d906471b8bf1e02e8515fa07cb2e0463104c0cbae648933d20c4f9a42e58774ae4deb461c24956e8cb174586b13dc18d8e5fd94afe7b8e9ee77551779e9f55f93fbd5017cb330849f56619cccfea8bccfe7ea865e2f38ad21d2fdddcdcae02d470fbf5fe1ad2316acb4ce58514397e5121c0bc86ade6568d4ceea5c2c2e07f63d3380604ac0490e5c9f910109e49f18d53b194ee2d7046f9d97cdb37a8392e312147f4cee53bc39b84a30525998dcc79e2b8dfda5699527953d805e74449cbb7be415eb3029c21005a1faa768798d40125db28031deb1de0806a204ff7b9a132332ee5e29db5d94a43041a298b742fb110ba1adf3961a3fd25df818fd4cb036bb2d1b2a74c893df8ccaba05914911323f8eab0d23061b1f4f5aa6f0e758a5f21f43ba88c38b08e1cc1c2550205d328b78f0dfe627d7d7fdcfc2a61dbf9d767bf07274f190acdd4eb89e6e86ab4aa4ad73b207e37c2c3fc5b6b77d6b508dcdd412e3bd28079f386115cb8f8778a9ea5b490883a4749ce85fa5194c4301d8a9cdc57a63a99b71d04616a0bbae459f7a0a3df8697f7316b8ec9258b01b94aca451c92a01e11a75d01cd59c93545c24af48ded15a4b540f5a4ec24e11879b22674a58f604397f163570d7b658dda4a78248585ea9273270ce75dccc847ff11462daa73e3e23a0f4a50d7a8d2ae79f1b7896dfa7195d9994ebfe50e9ebb263722a7a08b4a7e4e2ff86378746690b27106f3a4a14a0d97f66b281ec0fc7375ff3b5df269049970c0806fd7656843865f926596fc13975432ac3c8e4a87f7027d3849181b52cfdc626e756b569ceade6bad39783097646150bead3d7cc2c1bed3574121bedb8f8c0a9d32c5068f7c5adf81bd5d81c2c325799e4900c90fc833fa5a0773d085ed463a4bd3d4ec3181373d99315d15da687c0934f5cb94a7ee5ba3336e4f1cf58a4715540342b4610d513bcbab7c2d4e6fb9dde6238de30af5b8ac903291bd32cc84a162ae522afb7478caf1839cf2faab9a3ebc458f4c4fdcb3cc343ccd5599c133e34343c00ebb3f1fd3c4b33bf04b158ed972bf773156f7515ee9ffa245a61106f0460bfc0b9ba86e4220b8f66b01e6613938cf93467fa29cc1ef9b7103e24b49967286a952475cd615dc83d15ccca8c69d9d2056c79eadb5bacc0df46491b4dcc313bca519cdaaba0b979e4fbe9dcbdf8e0350e35d56405ef220d6828ce7e0191094d251975dde91d9a82a0f6c49f4eeda680e1c3394b1cff45d55f3538537a230cbd3868867adfdc4331426ceeaef9c674b050a598c316e391786a7ba5c054b481abd6640d1ffb637766b51134ce5af66ea43d861578c37c7548cfa096caf0d658b1d1d8dd1eb955e546596e454f91bd4e06c2d705a1d95344488ab047c08a26e5bceba93a7313a6155318fa2650dc59c34a2b332ff083d56956d7f05140fb8507fc04707365740563020003646913f5f5d725f3aef6086e0e967210f6157f1540da096300da672b3f86ce5798b13d0bafdf1144c67baae6b169c87f2b9f6f276b8e906ec59a2b96a57d2dc7c2a3e01f88c637e48e56aa7514c6ba7aaab3dcbae99502e32e2bf5578661c3e207fc04707365740621027d07ae478c0aa607321643cb5e8ed59ee1f5ff4d9d55efedec066ccb1f5d537d07fc0470736574072102c4bdaa0e5ec994336d9a2260e14b6e0b8fceacc9c4f14284f12a8dc34cbdf00707fc047073657408040000000007fc0470736574094920000000000dade26c85eee06b409c43d01e34275f66f5655e64ba8492338aaade1c4cbf9a922f80b64c8e4a7cea9b2c860ae6420c9e670d6b0ce6229cbcef324e317a893f0fac433307fc04707365741043010001512b8805d822f01e115b906d50613a24b7723c9980a747edc77cfd4f1564575cc6370d93a1e3c7d1f42a3594c7d3a320f6e70e5ed5c7d0fc4f877720d0b8e6eb00010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000001030840420f000000000007fc0470736574012109509217e1b071fbec4cb5fa3cdfb5c860197b889067967e06503b2391f40ae3ad07fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210af17cabef5f73bfab19c674c1bcb64bde67017100e7d2b1d3b877c3503aff67c7010422002037831b3ee29fc96f8e61ccb98fbe2dcb03e189dd29cfecc691b5a7442d8548e807fc047073657404fd4e10603300000000000000014fb15d00b63989058441e4842b16c6bb22c9a696efbd85b29fab7a9b3d53e8aa8465745f9724a942187af247fe6cfb7f3022b6e71316143eed2856014c7be59f599d4073a2ec1865d2845e012bbbf7383866639d3db07fb201862a50769bc3b54842151e02be410ce11b7ac9c0274a0cdcfa576c371c34a0c5e24bdd28f0657dbd7d21a927329868e30bbcbb23efd6d4bfb11d7ad35469ee052372534201265908c920bc7d914c7bba26e7375c2074993118679e1e0fe984b6f4146df255d8894140156e507c10543e641470743669c9f8969d8f38beb2d31b0619cbb531b54e3982d89e9bf66016ede12a9d7393853dfb607bcbfaa232371fc2c9730e834b669ec63d14d57e819abcb4fd2d726d0152ef897ca78a5d6016ff98de8a34d12ab84e5d0005d64548d63ed26747f4d2413215cba58504dcac6f35c57d9a5e0e7819f6cb22c76b1fe48082726de5f178ab9b7a0dcf749a559f0911cd1b33b71ec3153b634540c8587915605c94d852d744270a2068825be5b08cd968d41867c98fcdc9ea6a23eceefbdd1e15e3a7bacce90624a1e95dfd8b11b331054d7f74c57088c33bab33fe5511dd1561e086ff8f3e4a1fb355772bd406ea1d86242a796924821ce70c831ad4a1a057a173bd9d82bedb3dee0dd565c542dce7ea55947c0c48a1d10cc87c9b0d8e41bfb0f85f95c3abfe329cf127ad76c53eeaeee336086b056318d45c91555873e7daa6d88f13856b6fa0629991f86ce192a10acdcb370f33d98e5d810ca81270542a10b71312f3d179f7051e982f62aff114f15d107ea9082b577a0afeaa56274546c058ed7f345f21222c4dea005bf39ef6d458740dcab3dbbca367eb42a75c3b632d3f3e2b6fd25edfd496b966f2d22912bade07416de9c44168928e1e8ba694a09ba078cad5301cf4f6f675638c6e281e43b5f43ea9ecd42ecc3dec9bd9037bd67492cf6999dc4ba074a7d19e3c554464721aac74934f0d4631b9f1d32367f271249e8b1684ead35f9cac9bd121a13261e58aa19e65df246425a279297c93548de0893f23ec291e3240e8f9c30b80777c53f066a29d6581e0b3413246a8e5bb3eb1f99cce0e859d5366864ab9e8234b7ab311663967fdc179ad9de44d8f35b6d146a8301a7f7dadd0fa79887907abc6f28de2406d83ee50f3c55fa49369e4c178505b4c85f975e3e684463062d2e3bd8493dd28bcf693453d22b29843c9c91a2c32ef7e4719b0e073eaf129be36d575520d9e37ac1b81a1f96ffda0e7748380ee0b3399c63ef23cde17aef220f142ebe2552c425b2d39e206a42829f6d1d31b1b393bb31eb3f9835d5e1108b0a8fb6788b26abfc93ff3f368e321c62e205028038625f3ebd51872e75a528af725c55b285ec840a7bf2bff4a9f52d076310a027baa0415c032c2ff246d7942dd08019a448b1834f1d36857c0a3af27c782bc06ae568643b320ce292b4c0f6bbf44fc9760ca1b9f4e36b52cc115367fcfdd2777055dc6e98e42cef8414e12a7d300e6b60b2e3d4d244e558461536f748319d6bf1bc0f605bf7eb06d81e5768f46c05c4b666d45705f53d792ac0086c990d103d1a8e5b405347851a072c287fe9333be36cbe92ac9e16cdc08f0e7b65da846981e00256fe627d3fd74b0da87a58f1daabe54fb15389e44e8d79bf5befe1f319c882d33d1d34db9d812fed2b172326175fa082f1359599c7bb2fb9a3b81a1ecb9f9f81dfd08e26c28ac46a6a47431d5806b9e001691da3a7bccf0521051473e57597723733ccc14621e2c7fb5a0562a4804342629f9866ad71dec71e34b8f618c6b6c12fd5c227edfd3ebc77f62c8f6d82f039f95547db5226e4073d4fc8d91e4fdea73ea398763edd21e502fe6b2c01ddad50d3ef35ba50adf34a6f232d98de5564f7ef0bc16b65beeab8da4c2181205563532042e859b257ccd500c9dbfc26f9a4ca20a10ee1b94e3cfff12680f78ce7cc134a4f5cf2efcd88b99b8fcf52e2cfae220af7a7ae84362220c2e6bc3bf5e0db4d5cde8cc81948f07941a67348da2ad2c28b790551241bf6bde70f4bbd366cbbe8e0ce1a3f72e2d06224d11e41bafdf24f0f390ae129d2cf2e5228337390cb1571b747532b76aa1a6934fb680ccdf24da86cdc22a9c5db3be198a58913746d1701c9c19224da613598403d56aaf4753c8d0c74ce502034f72b81ed5d3aaeff0ee3ea0b36b7abc30a5876b3bc0ca0d8c7705fb2533b1f934cad358fb473d71fa4008e1c65f070e535a2b9ec54b123123f09759c9a16a7b2c0be92d5112b77954d89dfd0a23882250228a83435365587c49ca0c389210b39934c212ead258cddc4226a820f949f698a18388961df4246f47d12b164f298895d295cf3041aef15cf4c9e40e6a737ddff8a95bd5baf6a19fc254d4fd502d074df2035eadbe0b257ea3bce05945143decffde78ea44297a7966abae6504f760d6f1dcefc239ff98cc84cd1fbc8c9df2d1338847ada737eab43912688a127f1ae0d667beb5518974c77d35b96f00d0bb7e60d1bebc35afb99d786e764af0abe6c83b061fe09e059ceae787473771ab6c7892dc4506d25f46b3e721401d573abeb5a915452797c587de7ef97b68b330baa7b2779fa15bd64a6b9a51afa61dc579cbbb55d4ea6adc7eebbf1f0bd88162163cc467b5b7ff637dbebacf873bf9631e1311deaae65ac2f14d24c62b04d8a0c3cd6aba6d69bd65975a895b71055b98bdc560e327cce9eb05944a3251cdfdaed48fbe5d1183ba00699080b7fe549a4ace7f3091558cfb3fc20f8b444823abb0243100cca662b5fe049b89b1f1708b2ece7fced45358a8eb4fc2151b8d57099593c22a0c31d695369214fd2134df49179a31f82565bcda5711f36fb8ec735e41c42076ee6b018e10803e1c74807e4751d9510dcb43a8cfcd75341568e216e7fd3f6eb2872b9dc03a2a05fd4d7ac7fbe7e638e9119c7eb13544cfea6887c0fa0bfc9339658b66130079ea4c950a8294d51f6af904a371c0c22a1f1a7599d4ea540af8ff2c6249ef9a44da29439ff23187182a184663320e4b2e0ebef0c3453f28758dd258b1e23133b666cbbc30f85fd2cc64626e26a30125cce0d8e1f87cea15ff97b5c2f07bcbd4c9d47b80a80121c65df06186fecbf5340c915fc8d2e7e36ca1389d825f105a555e171f596e5d1e303a4c5224cfb877a48096f63c31be2af62b75d73300a31a6c30f64b0bf140af539c637cfaa566d97aac9c84f234e737fe9066170f75b53c461a7cd68ede00a9191decd786c6424f10036f2746a12ba754ee2d89a1f52568ba3ae87381f44919fce988b1cf4b2d7ba62e0b285768a42ea948bba1eb0244c098fe7417d9a5783e560359039080f888bef6063da915b2a1ce8150deca746dbd185cb38b6614e5a5669845a42db9593a6738fa8607f5a2153da62090550905623df524542ddbf104994c946204f395d5ba61bd5a436cf68bcb80a070abb7d792a3fdd2d0f6a6ff87ccd4e73aff3990d3ecd0d1bdeabd4dfb4900c4122d985e33fff0b4d208d842cdbe951f1b6f4362de838c7acd4cd2ba5c2a8e17d67b5220d9241b0851df436916a2a725da8b1c76ae745d0fff3da0c1b069f9163676a78e8aaaeea7419ed7c7e92953028797639eeb4dc25f36f94356e49af627e4945a169fa4a668cb888c106fc5c25b53648acd976caa28c8e8a8412326397650e4a5aebbdfda667184cb7f3b7d2b832e89cbdbf2e07d59d386a9eb62f145962a5e28b02cd443c8adc4f3f8a033e449451e1bd02872da37f66ada25a8985599a623cf12f50448c652a47dab1a3315a596f2c7ed3a60abd1ef19da223043159ec8e4b26af5885dc625b68397b55e5dcd7d9ad750ad35954efc0f86237b7b28dec267046eb921626f6df35323a4420760b98a43a361dea3c3c879ed787114fd0c58ac5eed564cfaee4074d5980a966c6863249ea7bd5a2bf272a4558344a01612347a2588e1501a4848c4e0f42d02f11fe40ab00acbd4f51d4717ac2c1493d860b7805631ea64b4fc4b2a127ce9d960ba435b86dc3b9cd0fbadc736245012c47e1273650c85bff9a464c3c0bc21dc4820b1a5d551a8f725df754fe7205245b4561ccca3bc68773edb377d507f2f84dda7e83bff96e2b0df81a1c972d56f4b914ad8cf9b76e47b47816230c6da79cae4018557495456db3b6be2f30a4040ef3d1bc24aab6a2cfcd3104ea3cdbc941ba91fbc9481c26cf9a8f88e0bdc92a6d705fd5dac916e293b408592ca682c292d2ff86fda40c63906e10abcc7fe0dbfaf03d93b3116a80e46b9523a3996085673964c9e206d839c9eaca4a8eb249be46dbfa237c8e54b2cfb5fbff8bc07863e1636192baa381a94067a07cc3e7ec645da22658af620a84e32276e2ce71eeabf3c4ae39c7108ee533fd070acf4616424676293f2b5377874ac6eacf474066dc7b19c06d217d7bb68bb7323d0e05d6bd8c437a0bdd3785485b513c5bee4503235a688f5ab27c330248678be9785b02e2d6c04a7601fd17ee2387e385a624a5d047671de8f439dcaa7e9bbb60a8b1ca23b6ad378b55b65fb64f1b4a2df25a073a23e08cb49f58e1f528d19c2850ffe29deee6376568af2a6ec919413bafef949c0bb4d5d7650df62dc6bc042ca7ffa4d7e064ecce7b7cbaa1b3f519080b608b33d9ff9a0a552e89655bafd7151a8cdcbc517708896932554a85dab5569defd15b593d4dd7c5d086c9ae3b719c36fd0a4d44c5971848eb7dced3b1b96ae9956fe0c177f649884d0335625e8ebffb3bead27d622a154d8a596e7a94537eae5cb487edcffbae5a48dbddb7e909e6b24b0aa14319eee52f51d2ef8c7ef1abf69ea5f023269b6562c6927e3606ef29d751615f51796ab9bf36a1d5b0e245b6ce01df75d3af3d3d5af57691bb7b7089718df8c3ddb9593b0d28d8c4f85ca44a95c9f4a707a500e779a4e5eed45a0769818ba60ad1e7d89be2bb584b2a50c3fadada806a685a5b701b7c1b7810b88e44efcf762d7f45972bc1cacf4fda5b61525d916e3e0feaf525cdc1276a9ae187a1b0234d98b835f4c79aef141160e58bf8f5cca950dbc372a2f9ebbe2e25e97af0c39440303771604924d00aeac4bdb4003bda5a36f4ef911cab7f0018bfd07e09cab255b1c74b144174ba9f5c5b307c7c4be504ad0cd1d51fedd9de1e0949ddde6fbd84f9b60319fdbe5c6d6c7d19677bfb257765d4cc471d567c2dac942bbae5756bdf6461f197a0e8ee8221fa438f9de69c64d896f2ed5e28854c03d8e816ff76d00453c7a5069c6404655463694e0b1f87579382eb95b60bafca557f5a14da4518a3997d76dee43b573449fd12cd8d2893bc6679e53fb5154256f792b4f98e712e414c6761db503689d1d9459b8d5899b656082afe0691a7408d5ed7518a29833e3376941a5ca0c70f611fb7b804c55b61db4493c91f8d1dd703d06996688843ff9112c99c66b05e52921f0e2a46ab1531e5e55f46143446eca09bf7a58b72f5caed68ddcdacb7f410aab0724e7037f2df6ffe7449092eb767ee4398f3abe6a48706349f1708b18a99f1c0ae82465dae5681f529d8e839f782c54e216f24eecfa79c68200d049b132644fca362b6a0e800926c058569561da9b75d18e067f79b9d7e39c1236e818902875ce2a515be8bcf5779229f87ca9116525bc9b6b2b759120197008be7e61b1553263a54a9d06928acf54479ffa2789e3606f7307aa5d9689ba497c2aa42995caae76caea723e18edc3d1fc6ded3a3e0c577f67fdadb943bb2b0d9d3d27b54a21125cf391c96e3e49d6279547c1954cfbe510bfe405dd3ec1729c2c74fb955923df0a8d5b3c372a8d90d0520a20be2bfd6949b3bd96b1ebce44db4acd8a188c361c07fc04707365740563020003b281b811efef8fdab596b2f9f5f9551c18e3abb759de33e0918371cb66dba3bc47d87cdde6c9702f0f0376109b3453dfa4665bd3f34fb1781c4fb87024eac601b4561d5b1d31ad1a0d43b9c34ff29c861c25da23928a05ca39033cfe6f03051e07fc0470736574062103d559d2a5a4180f418a69c4bed5508971cda9313722fff71e053d3d82fee9d7bd07fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac07fc047073657408040100000007fc047073657409492000000000000f4240ebd01380d359eac86844d694bb283ffa28201397c492fb532ded8c459440f52de3f8424ef929f29132cdeb4f6d5df6089ec15c4fbaba614d4fcdbef511ae320507fc047073657410430100015227273ad2e3e885820f517805e3f88f2412f610c71515496d43ef5b57b3bcdc438c6430eea4858f66ec5547b9c4e196d2574423df87a9aa58cf393837f75e2a00010308c0878b3b0000000007fc04707365740121080d40d0e9edf648b2dc42a95dc78fb9914ea1caa7f5527dfa3bae14e1b596d51b07fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210b3c73bf89a27c01a24c6c1ef51dd63d8dcd83d589f7c2c5fd6557c365fdf0101c0104220020e7da55d19cc85b0420c539a90b667d4d85f59ee0ed417493a947c3a2256cc0aa07fc047073657404fd4e10603300000000000000012acc3a015e9d9f4debaea69c0602d611e4b10d80e7d8a80cf67061b3e07ca1841709d0eca32a81a9c0fd15bd122851d8b72cce053501e95944345c243ce86613a52c6187bdb1d1365aaa3a1dac0e91168ab05d392cc7ab56eff07afbfc6a1bfec8ade02f723dbd7f83809371994df8b49f6bcb5a92f4481991b8918ec599f32fd2a5d15c79c3cdc8e4e109c32304f255bf227b849394f368900f3af5edc1ed9366a1210d5fbf7200fc21343f547f2065e33493bd98c241b1005a55a091e2b57c0ea4e0874092b59c1e39d490e923821689f6119874f1073f7f4a615573bff6612161327b52b961113271ec5e2a76f1efe539ec450bf3915f961c4bc29cb352a9eeb6edce8a3aa869dbd1110b94ef9c7efafa601164fab10771ba30fd7c8e1558e6cd47a08eb5fa1aa62c2b805a65aa0a40268d01ea709d8cb8a62558da3595220908e8318768c6df25ce0478502cef56d2b06911aa5054013a5d1097ee01dd25aa81c8db1c0f13a9f90fddd0c2d558a7e2021f0cef8059265baea2375694f040fe122e8caa55c2f2904114094ebf219597096d613e3b338a44a834a97d5e65e111001835f44aa7a5ab911e6e35cf9b893c955a648c72f32ed033c1c74bcacffa013e5404d478b61ec0c6590233b2469fa2ec5ba9b8db23b594ef8f918cacf1039804afd2e595fb0cb20fc0ce1e190ff42e93e3128447d0b68fc515ec29a3e0fcd6e9b19f3c3b376dc78095cccb7f198ee76373498327fb3f381b46a87023f54952a0782a7fd31c2c44cbef1e6e90e80d83d2d6cbeb33538f74b8a25ab754e400e52649b6c5c8ba9a2621a44dea5b4df8811525bd3acb2ea229c6f8b5eccf431bd68c4badb7590fcf2092332aa1fee30b2395fefd0f3cdfe9a40c0e94afff8bc14dd51d8b8f001c0e5bd82fa1899b07d2690d180dfc7d5983e1b530ff7f6024db1dcd0f98eff1a12517951c0e0deabf1867cdc9532ace02fde535803df81d2aad3685c74033309717173efa32a5a40c330b79488a4974033f16e4b8a3e040b25b5337ae4cd0ad98ce72b21035d207321ef531675cb2546337ae7672b0a54b810ec359b9874e7b184b58867f095bcd9decb3e852021416b09ca3f2daa0c52fdf4220cc947a6eee29ec5d56f65e53b4a02a3b58603ba08b2584fe74c0daeb61f7cdd031de947bb7799ba5ec3039a488b591223625a88dcd466d99396052b310ca74cdc2e30dd0945d5e663b2afeebfa0a5572d24a76b570494c73ab194178368a2f12331ada92cb9a84f49eae898bee93d3e55ae7e90db1c27a2096a5132c34fc20378a83feccc707d52812f55fde0ff2e1c6932f16a9b18aab25dca5403c2c5ef94c54b996008b59b63044272a2b28d5be7a653cf50d5ddaf43722e8f691b5b409d38f61dc96ee65b3fcfafb2c0e15c14a047b5201deb971c6d6036541fb23dad3beedac3d007347a074e6cbf3acb7c7b01111eed3c29b61b8c28f3db45963504a220bee6e11873821471e021f9c870e44a50637e0460b09424f89161afcefc637933ba008d148d32eb1533e49712dae6e55c49440c1bb538dcb829d22c1a12503e7b6f2e04883d9f2a0f55566fe633a7975cace2c690e5ac873f359d7bb48c9e98dafefa4649c4cb79d6f062a5664c1ab0bd7e04a712de2f40eb68fa9992f4d072eb5fef52d29cc8e2fab7ff9ec75d3a823fcca43ad7313d6ee0496509f43970e5b887f5c8e59ac9bdb12921b1316d348b67a5d7c56b314fe2edb26571c22ed9f532228a5d2267fec066e41fde5e69e5ab177df2fc3b2f0e0b243a4aa4b3f125f65c4a01714016b6925c88d1c2878e1092f4a8f9e9461d5fcac6d1b125f049af6a47d19a4e01fbf5d6da2a304fd7c28784123ba4a3be552da363a5ea3b40b80418451a609e1311587a5d0ea16d74c52e44c611c87da8c70906f0c9e2c3321b5e4707e0abd5191038763e2806c94cc2a3968554fb39af2e8b686476ccb9c4eebe6f53c94f29036af6277d674d16fb17931ec6cc2012913fd8d3a09348627b5f553ba176e86596034208b1b512c02187b284054f1f606239dac1014a294fc6c09947a514144f2297a2d9779e711c51b2ccd846ba2e1ae3bcbfa6fc74affa83f9a4b975cf26493d761d3294619432a384ae0fcf6de9bf3615c086339006be226cc44346f712a50e5c3380f7415d3b084d42e556a1ac629bf8af4af6efa8f9ffc5cbb4e240f46438c31f63117056ac040fb777348e43ba90599d05d3216b97e9d0733510779e3debd7b595838e42dad7ea7e637afaf3d09749b29f1687a004d5570824b1c1e38af99204e667cd5dfa92fcd9d67639d3eb793a8b531a3d72b94e5fdaa225b3b9da6226e2a807dc33ed220dff6edd7e31d734c86aac2db8a886672034d73b9139c7b6a6e7b867ef0ea634f482882ba94da1f1f1f06d568ea07df16c4014b5ce60387c37a7d164f6c7900eb6ea98e885dab0c420d0812034ac6ed0df56794684bc0aec44291e83092adf6764ed85004f2d49df49e98cc6d270dd80701cc2f1eda12cd03cbe5f480591f16ff211dafa69fce7d2451edad3d341159c32f9109e8c2d25c4ad3b81a70f5147c083444ff1ba0eb603e14102706892dd3fa92097e18f81ce46f8804271f4a6c74129c733c155174d88479cff8a7d3643b85bb43d14b9098fca82528b463bebdcdc36e937009428cbf6c5e4f4ba2ef740ff2ab1674ad47efb90cd0d4e65d4d276d9a1b699aaa981840df38758a8a16a79fa1165e1974f2d9603188fe20efae0e7eafc571017a283fe15e43458e7fe8ff92e8c8f4e6a048dd9cdb801c2a6d77049839d9828ae973e0edf534b84bbb6bb03190cf996842873b42a152e338562b8c7f9c0f5d5ae58c1a5ad407c1ee61e367ca33234bfe5270a73bb44719854cb7bf4dea61be5ee990823a00f45cd4db6ea36ab2581e5c8cb1c629106e8f37e9f3f7c2ed2acad99d622447c420fe691f9c9a1cc3bc98d4c464c1a63ba92f0ea4184eed55ca47648cbbb4158a2e884faa922157dd271daf6263193721bac97753777e07905b296e9ceaa2d900cf21f04216e0281a9a30a0b1231d5ab2d6443f4f9d51e3757a050309ff6bc97ead7010b93fea6a65134f7a0339044b8e9391cd1025a5bd17885eac4d7a24dde6a579cfa1901c4040c778ae2194674728ee28dd65106d05e7e4011034a887a7730f6d226932b4fd502ce8caaed47ce21178772adf9014ba33cfb443b1ae85de686901877fb6ca52fa5875bc6ce3c32cb979e7f132fe7e9d9ab40b7e6a6a0391a56c5fc2801691b4b99f37549995690382f6d0f245134cf947e8376941303af9071fe13859a4270ca4cbdd0dafbd00c369011687443b59f696ff41c0500d3a7be4d3bff6a66d4d5e1a50c4f490343c3e50cb03195c88b95e64cc0f295350f22c3b8fa8b7d25cf2c5675df228ddd696637ef8ac4e01137dfecd9edfccc31d83dd34902bb2a54943b8ec8e45b5bc67ce207241ea557ae3edd509bc80095e502a18588a2b97d9fd03b63cc2251ce924031726ff40dc6933f9f2b66875145a80a0e896c9716aead406b369333f88485cf1368cc90aa6d1ce2f68f82cbbbf3efa8ee5696f8b2b326d41bfc0ed85e0ac9865b13c2386c5e20288e1dc58448a3b49454af33caf60c5a86c41d23dc26e7c2828ff23917ad0be9b8ec8a8cf78c6c6612f5518c8330fcff344ce7c7a21b1f89953b698cfc7a4ff263f9ccbf5db65f07e62c472f0d1419c396487c460fda06b2a002bd65f04242089e7d50b6870e57265e11b5d49a071ad1b4b458a09500d48144a8c62ee50e8d686c2acfe473301d7d0124e836e4cee32e32ac7caf6c14eefcadca6a7026caf566c0023284bf64ad701bd646e76af7664a86a228d4589eb88a5cd28aa059d91217f3a937b6e1f32afa270b53f4b1795b3f191421358aed91b942ad0ad5858bafa748646c6b9f65e401547acb20e8c6f113363f680a077720dfa730e3dfc704218861ca0fbdd928b226494b69beffc257334fd4e08f58b038c15751f9b1d41b4ccc3290b4dafb2c8ef235833f76fdc8863429276ab1dd720bb139db46bffa11219dcbd284ebd2fad0a1040d63fa37a91b2f80902f2b035f8786671a19796467bde9023c6994516424cbd04281d25c3dde5a0ef1d4575e4a00ae782df2282f9db9c544f5cc45a685fbfd89d0458c112a17cdec4e2e039183e4f630fb81ad1f2a0e33f746c49b38f298387a3ebdc226674b2735aa2b58ca60b599c4770800a796d39ba8d24d86b3efd166a069a8047836c351d829eb62f25671e82574faa1ca1bf68219d5042f3afc59081c8f16e5b4b0d00c0c388d3fa4e7ddb0b0f863c0a24c8cdbca08ec279c0086c352b12f4e386ddd8a01338f7268ba7f63489fc401df63fb742de254d85c6693e03b4d150e1478797a20de9b409a0b4e5ecf177fd68540244f5bed875a9d32eb265252d079c7a9e17f6e4416161388a4e332218d4ff3621c1b924119bac9293de73163066f1c73f0c1295b3eed9643cc966590adce42aae3578d382e621b3b1ca433c3bcfd5e9d0a27085c278ef0f187dd4e8590cafc3262164b9b5d89affc33a2387bc168d4e099f3c12ca8545de8bdcccc593a91c71abe9398cd42b4d73055350857cbad1929c2c29de1600cf5a8d83c00ab24a600075e5a0ccca035161fd8d484bb4fdfbfad3091077f17a2e3e802d8c5b36376d693c7ee06476b388e3e9478cd15a4661999670ebe4c21cc663f33892ed489849ae4f4b4b54c320636d8e3a8b3be2ab86d0854aff856da8c8e1aa7dbabeda7b56549d44f14aefc0f083d57055521177a98940afe74ded11720866a46a5134644c3530a5fc675008a08e590b4daa999c3bae8caa1b9cfecc005e7a5f98274d866adfa86f76dd947ea5d09481787c48929fddece7441b3e85ed6bfb846aec0c8fd9b4b0db2daec03a885f938afea3222f0a88343bcad7aeffb3e95310f8181c6a73d60c14dd1d8318ba7afe05a405c77c8f42cca43ab7b1f1f91a5ffdddef6929475aa15df3d23a2470be8b4c87d230c9fbb88ea348d8a8483167da2f9289c6e698177d6dc4e8a2b70b2348b0f3589a0cc508d725c7ebc0caffac14d04b2d5fb262aef8708e80dc42c9e6aaec31c12fe140afe6e404dfebc94e9e04db94c3b15b2c4d2f101de1f91240b5abe79804abcba7efe7bb57794f793a74aff82fbfd6d86bbd29bd52ab4bb7693115f3351a84d6d4ee8f097e838848623063badee9eae1650a77c9065095b195177c6651398a08944e2014a6ae7a5d61b7bd533a2240846679a68eb2863a57a9bc05dd940f0ad27df68c1db7576aae6245a04abdfc59bb66d15f75e010c99b43e478170747a4df410c0eaf779de363b9363353aa2d7452ab9cc353c38d7f78f7804fbcc1acf385da9a56cd81b3780bb9fa34c25d365912232f4cd655b3854f0bcfd88aeb7c2f8f732f0abae59bf488801d8842972dfae0fa1036e2e66f00f1cfa5beea48173a64915d8ca9ba74497a5beee3af229fda8caeb70959508d817c0f6640015caf812263de88f5a0c31d65b9022dcacd6b8bcee9f14235f9d92675eb569b5e86150246f6d11c613576cc80e11ae8447813ad313263186c42b677acc23ac701f950831c468887a126b908351dfaeb9be1ae83e013e47eedf6553c6b75d569d7489c0c827c8334df58e0f1546715740b1776545bf08e6283108050f82a9ffd98a8dc8eae42a68b58ebfad9f4d721c0b8863f57bfacf1169e2da6d37df8f0c20ab85ee16de943293e6c12d119f7404310e29360bd517de96f81b8ac30c86f60f9c59795c7a5d069985f623511bcd8d07e15d391f2f894bff809bf2f718751483db6aca5ebe658071d36fa6a5303b5a533209a07fc0470736574056302000334ce7af071342163a2d94f1d8fb109e22745c62ef02ffe6aa559067a7f2e9c0d7eb6badcd1dad503c57eea0fff44d75ef3fe4ce4060284bea46f107e62cd17245969a3b0f08613acbf3193def7940ded98c44a672c29a374a253b8e7117844c107fc04707365740621029e5980b4f9b9a9fd568c1c4b48631a800c310405ae8b2ac41ddaf87add3062f107fc04707365740721024b1909e1c80e8ac00cc4954cd2cdcb0cd1d4a38d2c16f0774480c0b50af89c7807fc047073657408040100000007fc0470736574094920000000003b8b87c05549a8cfd6b34dff0d58b5f8c6d8bdcb6e660a3ca320e377a4eb56df63e9b3c37251b3b779c3a433c57ac05905cf1782771ac4435dceb17d10be290d1e6d94ba07fc04707365741043010001e9a50ad3e77b73d6ca67913e649819d9f9f34a58392c6a4c6471ac9d95edf2f3763f7635ac35a3d8120d59a8a8d48583299540c82be7f8dc74b986a859d7483d00")); + tests.insert(String::from("pset_coinjoined_B_blinded") , include_str!("test_vector/pset_blind_coinjoin/pset_coinjoined_B_blinded.hex").to_string()); + tests.insert(String::from("pset_coinjoined_blinded") , include_str!("test_vector/pset_blind_coinjoin/pset_coinjoined_blinded.hex").to_string()); tests } @@ -138,8 +137,7 @@ fn main() { let tests = test_data(); // Initially secp context and rng global state let secp = secp256k1_zkp::Secp256k1::new(); - #[allow(deprecated)] - let mut rng = rand::ChaChaRng::seed_from_u64(0); + let mut rng = CrappyRng::new(core::num::NonZeroU64::new(1).unwrap()); let txouts = txout_data(); let (btc_txout, btc_txout_secrets, btc_inp) = txouts[0].clone(); @@ -287,3 +285,43 @@ fn main() { tx.verify_tx_amt_proofs(&secp, &[btc_txout, asset_txout]) .unwrap(); } + + +/// Xorshift +pub struct CrappyRng(u64); + +impl CrappyRng { + fn new(initial: core::num::NonZeroU64) -> Self { + Self(initial.get()) + } +} + +impl rand::RngCore for CrappyRng { + + fn next_u32(&mut self) -> u32 { + self.next_u64() as u32 + } + + fn next_u64(&mut self) -> u64 { + let mut x = self.0; + x ^= x << 13; + x ^= x >> 7; + x ^= x << 17; + self.0 = x; + x + } + + fn fill_bytes(&mut self, dest: &mut [u8]) { + for chunk in dest.chunks_mut(8) { + let x = self.next_u64().to_be_bytes(); + chunk.copy_from_slice(&x[..chunk.len()]); + + } + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand::Error> { + Ok(self.fill_bytes(dest)) + } +} + +impl rand::CryptoRng for CrappyRng {} \ No newline at end of file diff --git a/examples/raw_blind.rs b/examples/raw_blind.rs index 5e907a1d..ca758a06 100644 --- a/examples/raw_blind.rs +++ b/examples/raw_blind.rs @@ -15,7 +15,7 @@ use elements::{pset, secp256k1_zkp}; use elements::encode::{deserialize, serialize_hex}; use elements::hashes::hex::FromHex; use elements::{confidential, AssetId, TxOut}; -use rand::SeedableRng; + /// Pset example workflow: /// Simple transaction spending a confidential asset /// with external signer and blinding done by rust-elements using raw APIs @@ -124,12 +124,12 @@ fn test_data() -> HashMap { ); tests.insert(String::from("one_inp_zero_out") , String::from("70736574ff01020402000000010401010105010001fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f040000000000")); tests.insert(String::from("two_inp_zero_out") , String::from("70736574ff01020402000000010401020105010001fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f040100000000")); - tests.insert(String::from("two_inp_two_out") , String::from("70736574ff01020402000000010401020105010201fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc0470736574012108a337e7e0ecf24c121a17193623254c277a306e9fd39cd5aaf8b7d374f4011c6507fc047073657403210b8e11e3b8904ac80caeb16af1c93053f8a11a963269bcefa96823d75b8640ae940104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001efdfbc0022a6437ec10c672d76c513868f403f6b9706e09733d6624e3cda831c2c199dd4c5763054a1c219e079e8cf3ce0c00dc2f16516972e1e64d576adfd9f5d778675c8a3172450a4cc82d6e6c59f2b16dffddc902d0aaa647b750d6224cafca7239a4fa81219cf2ee89741ffc5b7dd7e47d332ca931cffb1d1d432935a6013207629118c965b7a5102e62c43ca9d06bca191307a476738548536809ff6b01c6b5b25d76ff2f67d99e20fdf7d2eff6fc248186d21d054196023c5e4f572ccf0f3aad8728c46f2ff6756ea39de46028610a3d26cd42978b09e0e29e0a8aa46e4fd39d28d028592560264cf1a794c27f6c95d382f486dfe900a81d9d92935c7e0e6306549b3e49b1f60182512ccb994338c3541a2956139b2ccb3dd156853105abf5fb394cb2c45915dfd4106c7472dc5d360ab5bca408203a3fef58b4dd33b0c11c367dde2f19c8af7682be067244bf49a2b8cd4685f5481cc31ba27fe2f3d7b7a353be9b41e4eee2342fd70b8408c91951c71c75dde8fbc03e3f28e6d3d3b41e0e963d3ba0c25b2eb50560c21221950b0699d2615f0128e6cb7fa1b04ac1a046e569a7e87df98c14360b8ffc43db5e17548c7ea5056f84ffd14f4cdfc68a4f10e9b391cfa63eef2c2d623e7cdcdfae2fc4d63496d81462174ff360809b7e3b4305979d9cb8e9ad5b0f012494d31ce51ee6489555b09dddb16641ed9e2534fc34db99d2a4fa736eeabacf2f8cdca97f9e84c964277c6f30f1af7fe2b51b39b487d56ebaf593a3f98e811cb09849c5b445d5b7c9ba37807bd0189c8bdb2709fa70c230f9aba41dd3c62384aea6e1ca098ffec26367aa65a09459fca074d1da0365cf7fc2d8310ae099b838ca78e62cee10f95ec549faac1ff0f8236fb8cf2c0f6654e471d3950ef45e0159c44f9e343d05b3af59b939cf76090d040376407c41661eeda7d2cb61cad0088a286948787dae0cc5abdcb97f7f42026c65a13e1df1357c25d376955942adc858e73876e1d8812969055d55decac9a689dcd11dffe5cf6e06088b93a11e153ffed104266bba472cebffb2b0cfc8ef132309bd7836071d3b6ed459a5950c64cccf230015c98f9210f2d57b7f3a07c382f3df09f055c88e1f312db0d60d471afdc0b780d319a6229babd8f45edecff8d1073fa850f755219a3ea14e7234cbc7590c60eba0ba0cc1afde6ce91c8e8835b1ca809926b3e7d8d7a0941425e5f08e884f12693eeea1b3651f53da90972aaa37d426f37db3edae4285db114cbad5964c269e03b15358ad2a7242e0af538a594fc779ec3c43c3d94fab2028310c6d0acf3efdf0acf028ee757c5c02bb5b8b691aa5eed1a62acbabd0d61faa478cdcd54c6db2cec6144d8d1185115097a7da79c16ad3118d12e36dbcb7a70b0ddb27bddfcb1c6e5426b7e411f607d22c3ac2b8d3e41f55faf5e2105bf3b943846cc4c33edc64f902c1eeda09c8110d4f3ed0a5e511156a3e368f02161b92126abf649341ddb8ed03d1d41b91fc34548c6d94dfb47c088ef27a3cbfe1c9cb05f2ab2f18b8746394c8080c4cd92e818e46f861614ab870cb7ae3446e376793f3a6568a2ccfc2ab0ed0365567671436fee6cf427b6410a046d80b9d88f094924ad370da363e8eb70355b711687e92d88a08ed811ff241c7a6dbbad9dcfc18e6a42493483b938e36c1edd2a1c6e078a17c5d145c9c058b4dd69afc44c345f1c88afb95c1deb5c4994161ba25783165d43b9e50a2d8333a8037cec2ae809a3dbe026d6ba40d60badd05bce73b0f9f36966c30b9c0cb5776544c1182024a96e746a3b01f9db10b45aaffd3b055b02b40bccd41e57c10719bedb0fba99a0f6b0868b186fca0397ab8c219f33190f81e4cce2fbcbc0975c394919c98fdfd7e25a33e5f31fefd06c8dc409cbd3e743f0f48dc90abe45b2e68948436caa37fe9932a77b7e0fe0819d8283964b0eee2249d9190f3eb0bb8178e10a287be1059f35cc1a153dda14def65f3c49cdc5186da86bd3e965446f914e3c9b4cbfcfd2c379f306c5ef8844c4fd398b3c6f96601e90d2dc8810875663939f63abe3ee2e1c8a9c2c2010a01d0dcaebb556a7c98421f8e6465cb0434c07dcea9db1a142f9684e50b06c545785f0dee4def1257e4bb22d87a2b37ca9eb53081eb8f1ea0439c4575abac435868a36552df569ccc63477594ccf7eadfed6adbb8e81800a2e2fdd7effdd1e2f09cf76c9e780f6f8eb8408a3fcc06cb8bcd28db7a37edb0232a6f0e509c684318f179d0c91a97718ce3956c266790361ea3a1bf70cdb8a2f2a59b06dee18075745c7302db9b13a452c188c5624964af2d5d4bbb1138dec59df5dfb077a0f62ac4db3de81f54365f2a4a6dee63a6092b4660d3f5dca3cc8de3bb5350f5dcebabd515c72c9114bc58d96e2e863106f0982c2632bbacf2fe5cf6a8df880c550f7008fd09227baff82d4eb031802fbe7d50f6174860c70fcd9f0356e34c0d45df66492dc309b260b7158adf678e2da66348ca84de3e721c6196e0c717f59cb802c6866defdd9032a4b7da82b816d9681e5eb9115fc2a572fbbe105f479ab339bfa5961aa1920346c9ae4185a74aa828da78a71e55876c657249e83f5812cfb055400da1db8bbb5ed3ce2ca4655b0c39b698ed7d235fb0ed4f29a7e8925cb873176efcd1c6981dd23865468c6e01ddf61fa3e40d6fed18d8e3dbd97a08c68bfb092e441e512d44089cf563509785dd58203949a1ca9b66a700db14060a760aa404e5e9f31eaac015f1527f6d760d8714c88040b87fc8a4d183230cfae35326947e28a7a37eefe1d77070f5232a0d67e278a45d649709a7398cbd43094c5001263671517f83e62e79fb75e6f9bc592fb3bbececa3f597dee71dda0fc909079ea49d81554d2fd79d1cf3cf25d1186efb83cf972b7426600d7d6eb6c48a5f0e26af640c733f3f771e0926e6b38b6f39d7882b0538dcf281d92a6bd361bb32e16f3988d6790fa0a45f549e983f4eb68ce5ff11647b37f8e4c444aae8bc0f7c49ce7215545a29215b55f37dc42aa6add6fd1fb45d9ae580434097e7a8686e23cdbdbf6f8b6b1e5579a7908bafd8878b004c7c94e045fdf2b94f8c1a75ccee7bfabd9bb6d0ea8a60dca61053636160c19f8f3fff3d0330fc95d20a1393629f33f281e5da80a5ff66aaa5eefcf495f8bf7e24744778841d7c633f01af2305a122ee093837998e87f060105ffbc083c0d71f68c2c63820d7a547d9af5618544efb9736af56736e73cb696f191c68970ea1deb587231c889672b3b5399b9b5e915e3c567474c3905ec5b6468da826f1a6438ec335da847db540a091ab311c6846f96a2f17befa2f29ea491a41d7630e42583ad1212e6c606dc258a49f756e2480f90775c04c5c533300e37f8bc7afe7b155fb95877252ce4a53f78491ebf9d8a4aa41da1848633816542901d56e66f126316c80efdaf4b457f9ce771edb012a0b3c27c717f5cb3cc99ffcc959a02289e30d5b1ff936320579c469bd55cba6e79a0c5f1bda59981b71840a8c1ca56863e91eb21fbaf84525d5f04e0f282d03bb56d6dc2352f163d8357b86bc6e4e621bb693db3565eb9ef5629af537874c1cb3459582463362dab3c6fed7e574ce9bffcc685b8eea61599292cc69860c4f9584818182f94d719dcc463e9a6f854405ca2deb3de29ffa1826f795b7e7ac2555c0ee576c75494cb832c59de8d9620927167bc136549b731ef79a39fbf8789831cc003a772fa00d4d699d089d47037e12e1c6eb8c20c5535225a33a1a787ba866ad481e9a4d689c83d75f1986405c82154e312ce8b3494ac5721b96193c025bb75b2cc974f9171297da058d2ed4f00d94e60737af29da660fc51fb9bb4d241e78c9d1815d7e3ea90aa541c4c512ab423ece93f9ff2f479f464b953b4171217b758b280c5d8acda32cced7bb0c92cd9b405afb3a8405602da914e1831fec5b6a291f90635afe82b9389a8b41d957f81be125de2f943b7cda9e873fcd74b446bacc00bdfcbe643053f6cc8162c0a98343242b489f59f7ebac016a7fbf620dafc15c8ecfe20b954153dba19eb81087673a1e847238864036e9a300239a00a5a03d8b39aae2bc201c04c477b1f2a37552670c06ea65551c5c88a42476d0d797af494b077737cb48050bd35f4980964b8b9b98bde84615e8fdca407230f5d15e97ae65d63a96f3d88518fde12d6a82881db5c8d4cd79e724312e88b394129de3569c5c99bf842a90f193c91fa55a82116e237c877dec2da6dc652cb33e33df47420c5238fb6ba5fd96cb77f0cf6c8a12be1a95186680d16a064d9b1a7c2461fdf5e0a512a5a3ed2f8dc0eeadb6c95a658aa1c2713fea473de51f65b13a40a2fe64e5227bc9248f59c2bd60dd2fc14918e333faab6e792ce2f0597be47cee70f5a8b788a50c9cd153bf24786aa80f631ad21926e3285f41c5125a15c12cc889112df0b1857020160122c2595ab3359bcab184ecb32f7cf8f38eea23f4f9135104629d8f1e8273c44f8afa129d3a74cf58ce494214629cd53b99a8489ddc5d339e317ce75dd6c5dbd098d811c56ec5f19c00fa00b5465e39f8f2022c71ab3ed0d5a24058c197719551985ab30a851390ab5e11420c521b1398bff0038d904e5879db37d60c623a0a82e191cd0b6bd20a9e956d41d5daef703bdedd6bd0e20fb096423dd39706e939e796aa8bdf071e44791d2e1ed4a81ffd018cb79c5b6bdfd6297cc6cd379845fd7ddfdb0b83d7b26c21e3edb58185e71472a79cb65322579bd5e0e7b1fe081dcae5447834d70459f8a96b341a26d8922a2b1412f95f3533e04b5f65be112cca03ca45ee0eca10adc7593c78c041281c880d879125e585e68f5c7fbf8686f245cd736ab5aadc57c032c637b753b49575acf4bbff46883382f408417438d7817097accae3fc54afc6015b84b3b05627d7c83c4627c87727bd24c4b4d96a08c64164ab8d4abe3fff5c3b09e8fd12498e3cc3627e799e4ef72a870cd89598d51ba396655b4de66e48997faa51d05d581c52f52852cffc9f89252f26d314d2fb8fcbce197f3a8f330339c2ec3c710710b74f0915da3bbb638b1f1a0cb0c176adc151da0ab52796d466b23e8a269c5b22b76fe7586cbc217621acc955a43571dc04f69deb50066cc587595cf0ca4e9a00a261ff2791ada8de04bcbbea249d2a7840bd8fd3ef98a248eacb7fea5318b2e207668e13ab4e5578c03315d44b478df5247d8afd0624d2a57adf85fd16d86ae54cca21f6c91d8cafb3b31e3f9c4e903c04f39d67c90560dd10b2d28c6ee937cae01e921c98ddd833a9b9247053110c0f29d2f35f8ea322a738636f17648b627db622a9cc891fc1d066d5fcabc168f1b492479b0578d0bd8de0298d4bb96a4351714a10a39de49d57ad66bd6b458ae0d799a19da54bf620c0e6979a95b61a83cd06e46d7d263d53d66f77557232983268f5fd01d10442af0c840ab09c6cc4ad77add6379eeaf98f7cdbd70fffcb035abae4efecdb7e6f63ed8acebd8449b3a910e5eb06b0ee6d80dd45026c9e6c2f978f813b2800386a4d7ad9d127d76c4286c1b2facccfd16e6a263ba3e2893ae5e42049d421e08a62ee9e9574a1f70f0add7b68344256592513cc15f4bc64c5a029f60d617c245c1c34d06c095b2d0a9647e65dadb33ea79e3e0ea62ce55347d24eaab7cf9fc33fd70c07363771f78a13d92941daf7970c97b43d2fbe3e789a52ae7bed64736e6ce59f95322d20f9d6dc00b5824a0ce9072dd051c66ac20d39bd953f567a831d75fa91fb4d49b200fc893489e60df95c2810f7fc57b7f6b7725ae600e1c2def6a943b8d111ff3e9a5ac80aa981fad8709e98ee1550005bb8f65dedffbfe3793abb407fc0470736574056302000359a33e8f3d0439eb7d60aa79255858269bc1011e4cd0d4aa753bc2793f9638fe70dda4a99191f08700047a8b66d9cf7a53bf70756013c8630419e3a0bf428158dd02ab6e16822f239df0a6f1b67b6e1335509a286b30c4b11a22dcea9f95d51307fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac0007fc04707365740121081271c10f0caf52a40e015e7d35966dbad39525a6c0691d4beeb3bfb22af5304d07fc047073657403210b85bd6dc21b4919f6ebda7ab86ac8122c793be3fad19e44455945ddec8b59e9f6010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001cb6f1101e2b960c9a2fe480eb88fc76c63e58b57445c78d88e04f740580a36d6956006ef12ba606aaca89796dad5ff7cb4c4c7f4e65a07fea8a2ce3b58b265d4b3220013a09ecf4e01023aabca5586d61ecd5d7f2bedceb8b18a8e41451c97a192098b196add06a8a6b619e1e731fd9ae2973741aff6358c1ad45cc873a2d497271e3a20873a6f701d4c44ef670c8c7a9793079d9bdfe956bdc02a52d1de8b2de58b0f7d309240999f13985fa8c98e57fe1bb75219ae6330e9495b523e891dba7885a5302817d68a9891ae0c2597d4d7833b91b073c4f9b27be1cf81ca1c2c1014c57a4affe7b402c0e0c1862bd17bc1d43428671a106c26cab61d5e4ffd1c01f6af1c6e97f7a25ae8aaa8d2c91c57881df52bd5f242b127ec7aed5880101caa01783884dfe943ec9764473323f59b27a204f34aa1fe7fd4433fa606608b0f253247d149e3e269ae5445e917390be83d5650c05859e3a817a6c7e561e2b12baf6d4ca4221df0b7f29fa134269139afd9cee5c7d60149dfa23031705c6a8b72d00d659d7a085de8330de2e5c168ee3eba2180a9319f5e8e0806dadaf0fffbc2df839571360b8cd32300504a527cf914da7a1e788261c9cca2872ebec5a17cad33b15a7a7427c200b8746761359194520f0da1d7ae03f26190d07cf92d515e04815f514c66a98997320a028ad24e83182f213d991accf19a8a59003a2ca666ca505c0d8349e2cb22887efb7db9e4a4e3e2d8da0d5f032603e03f48fb967fd018fc99c6eb72acee4178edeb48703903a89e9462a2d1f447234c3373fff8b205848c7a9d6e45ccc31eeeb0105ed3af1188fb847cf6f03a7f0a646fa325b672796168dbbd9d1d19b2f41685b18c3c96f1cfb7ecb1dea132e8815b62647820ac4b12597d8e737a01a970704b03ba5ae68f8d64a1810db10427fbff1d74cfac91561484cfc8d3b23f74ba0f37e7db2f942c58fb1dd30f6a50c57b5eae720c6ed69b0fb81a6e0260c53028c732a544391e319987a24548230378f8f1ddf65a2d654c7b26951d5c6546cc8fda6003228e8913c9e3c5adf7b7b72f4ff5c4aedba6096097f9a4b58ea1e060609e8d1f0fb0e5dd905b29fec72b118d40c5f599a63f9a37041742a7f1af3ef951c31833621842ec212f9fc5cd3e8c08278ea192f8032ade447d2f35ab59810aff371f598b7dd57b3cde2ad854ecad0c786150748ac241ecd67cb868663a6fcbe9d68c3dc221d4fcec9b0ad89c337c1e10b91a38ab1357f260ca3a084da536e56262973e6c6cca838601fb2f335811375aed78295c4b17d3798d39d4cbf6254ce57680a102907e5c08b5c7ec0a1e73bf3d7b8babdc6156c6ca3f09c0423d6716ff4e6ee0338cfd778158202b5ffb60b74558dc6d0be9b5aed6892c4e0ad3e20de5b604b2b010af09ceaba7c0fba5a7fed39d31cb2769909a251ba5b0668330f734728f5c6786a8f1a35df77f3d739eec71d9268fb2a494a14bf7ab91c075023e76856d1745f5813d83878822934d0b4cc0538048c3f96cad7aef2bbc49bab139915dd4998ed3c6701973eb7913530b14c688f0b344ca9cb990de2a9b12fa7ad8b292234a33428b4d16813693964365bd412fb936c1461fdf8dfb0bba31202685f29addf95fc65f841e97042bc5d82f103e41017c6ac91d3d266e12db2dc195ac4f6d4353924270c7144cd96dcd07b9612e2bf1e0f7fc46ef83690648395c575a13c2b2df0fa04f740340e6b116b0866a401de22f68fa3f621d75b9f5f625cd5d5d7e12a5b0ff795749d742eb2648ddf068a451059390da566b3de84f9d528b2663de7dcc562eb014071e8277a054783d322fa67b9e5261b87e9c354ff58fc52bf9df404139311d6bf9650658fc94835a6220ca02a4bfbf46b2af4f30b1ba681c0de7c134d98dd52eb1e937c191cc9557aa73a343b99ae0b8954a3e929174984b574da75e90a9b71af1215317b04e4090770ab596091fc05c82235a324f86280f7fa081360ac758c1980c6a6763453e6b344611e46b05760941f9517ceb298ed7a2d6f96b11f5719ed0dec803c511dadb8d056d4ca06ca0ad090558a4fbf3a886f3ea9c33e1bb4bb5ddef4798cdfb384bea75a3794c42a53af60f12c95fe9b38d7f6a5d914ef100508091fc84756b596b9ba08d1dc42a7e253435b5481d1470ef00a1172cb036b5bdfaccaee02b15d099da17f9753846226325232e71ed9b48f57697bb3d1db75ed214310e6e3608ded6f188e37b21b96eefaa396db0df05a86416fe64aa950eea87e7af4407c828a8822b17be661269c9f9e365cdc79d20503e2d5e575c5387fa961206118dd379834aade7727a1b2477a24f05f6c2ba3156fe7f5b5ba6d7487b1a124f38e3ed3cda92a8edf05f28e3d699f0c12de9cfeb30ec8d4cd253287a6d3f596db0c06006a531e80083f5b41ee26c05d529e0a59ec151b4a9260a7ea8c1a175ca41b59f464adc122f448fc43e90dfa7b88f81caa7a84e3d6d4dbb85e5828b6ae7455dc2c87c8d9c706af2e62763675851b4ca449c9c0f95d953ce53c5327ba8981321a1cbfb76bafac7fa17c99567725d8e0ac288f3ccd3bad666e515156517281c97a3dbfbd5f345f8eb80bb3c4230301a38b7c920d74eb910d380f884a683f7d3e2738fabf9646138e8a32c35e43786e67925508e4cc7b1e7a36abdf6a497077704e216f1e730c20ecfcddfbdf2484d8eb0ef9b7478f77063fa90b8afbcd019d1a584df58c537b40b193f246598ae4c53958a947dd3916b14a5a4227f01bf543a8c5d6ab8eaefdfb959c8715b756a9c797fe39229dc56a86364cb367fa37e16e96cf8dca1fdc8b6a46ce88e3d29c75b6cc718ca8c28e9e1ae991b28c286107c1dced150814d6369cc8003b2976018941df7fb8eeb68be57adcf8a0e813d2fcd16dc390ce17dd0a91dd674d766d21b5de7f4678a548d75cc3de7d099b418fbdb66b2a2b12a56b1dd8b3f84a7b45e36db9bb63b3ef9fdadebc21c6a75364173925ffc69d481024e49076dca105795e7a64a3c82011889aacf0114a1bd31414e288cbb63eb47d399d0e025a54f11670c8ad4a793d0e7ebd3b0d8eb30b87cf62b131c61a4c55d2e56e47ae99fc543c57a1877ce44dac4c6f9fd99552701ade43858e0b4020230cb4d42d1990bfb509471a5c1c5557c29c00072c5cbbc056de6d465ea2ba2f4a1a5dd604dbf998e834b9200c59fdf90bec38af9218e47ea5ed5512cf8b0146126a15d49bf915eb893ad1ef83d8faf6c93f944ebce3704f930b6f69a1afe767ac2c9fdf092c804c7372ae1a64bca3a3b5a31f2ad430ba9e61dab3daa3be90a538cf0fba00796de511cddb5a594f14aa6d215bd0be19c0ca5f043403b7dc56c87b092d9436eb79509c3dbe367c2fcbc2b09f9818cf5a55d5ee0e477888166bbfece661b62812ffed3e4167ecc81dba148f89a8f2e7c27424a2ee091ac487e68fbbf9798e8caf46b35de8dde66a7cad6dc98a426ea7b8b930cf2d7d71fe71066dbe51e8a1c7151e97fecbeedef3d6f8e01cd5576dd58097b46153f9c3bcecf30bc82b4cdfb1bbfa826c7c5b217a023e4da02a35d0947b2c4d24d50a292e4c70fe854a420c54490d4850ee8c372756671fe130532f89878a64977ead60bf604b73859ae64ed62536423bb51b30c6fedbc819fdae05cb64b87b153f4252b832d6b866100a7b307d1e705643f96f0724858e6211802b2ce706d5424b99315db90c7d74fac66951251f6cb739ea008f839c7f62318f795337ca4ff05886a2640819873ae00b933081b64da1101d1b17451357921a2f4d4dc86c92a5eb346fd6cd3a63315768b94b90a15162aec91cea706b9221330db154d1fd71acac90be47055c725bce38710f1b4b4144f331cfa9fe15ebf6535747669e4aa1f0d72092ef395f16a4ec9014029b5c9d1b4bed9ec81a7568f8f1c87e0ce0f4ef9cf49e3fe4960b0b7904614772c63147f3c5463fffed182919c4973a8256346116be40b10a38cdea5bad5878760daaeda57476e86ec65e58030bc8ff99ebf017e9bf6383f981edc83b538e2bf4bb573637e6f4717d74a3ac71f5e151259b29c1b7226e3a8ab176baa2f27e3e385cd48c6f072bb6e8e9c92e35d7ff51177f4e3553555d967c04befc1847003a8592738c82eef231ce3d372372a19a01b27dc7916f986ff3f3ea8872d4986bc1ca649a92924c8f582ae2b44028e711e955d2563c33db3b7734aa246de553dab2c5268538f7c2b6dbe9a70657e2a26e52f5d216dfa9aa8e197a227c86a7d3b468880a721b804a0c51af1592043eee7fe3657b40c1832a858cfb4e037d208ee69c4fd697b929383a971b2a0864544505af2267e334db5f3f3f4ed88e2f6f2b3d7b96016ff92a120556e4d1e50440943893b00508c6242bcc41b6d06dc29ba20564b42257b9fa1b5f4f453e94e72501d31e8947e09a38261020400db4b8cf675b1854639a962a57905cbbee14ea0daa9bd281fd635c8f900fcabdcbcfb140f4f24b47731782ca899284fadfc9d0d6eff77045792e139afad34c7672bacfa22d85fcc05652178cc169bcf52ee3cef281d99935abf9c9910caa7994cfe33b9319d9854aa6e2590a86297f23b0cada7251a6ee1b2f3d2cb5a193cae8768d92f556994e416d4bcf5bba3a295d9e2215291237df74e3c493189bc5a27b3fec3e1a1329c6c6c75e0802b40fc74776476dd2d9e3453ec1709a8a2d162a936d9fe7dd4b6f7abdadfa429aed4cbd5896cfb24a2d91f1cee781d0ed73cf7306d6f9545fd3346c2232b8799553357a5a531d6085d04af5f183019dfd3483baf23b0ba5a6b58bba4b7a1eb0a32626bebb5cc0c4dad45c55d135be8b0a4dee787ed48b90a2a3fc120a753b52290c27ad0eb32b668a9540986ca0256c1676debc4d19b1b80bedd81e505154264a199ef1a54e1fff1b3589fbb6b2d87a1e04e67066571b68fe04f030d473f8d135585f8b7be91f0ae1a4fa2f44008c0f727f6aba9c5c60c3a9ff22911e267ffa2a5d1c71ff25f96ad257be29a2ec641e2055d785765cadd0c2fe513c44154e74f4b8cc4b24d9ee2f6cfe245549713f9dada1935247a2ac7ccc13c4a5c00c6ffe7ca33c0cde4c75c4fe2ea041a965e4c7385ebfdbc348da8c4216a02fa829892c827adbcbb87745120667cdc5a4aef28b190a54b422df45b8547c447765838dbf9f05de338ab672706b59b2f0644d6735d9316e64a1a15d3dfad893bb1bbcbe1b574a0b8ef5265e195a929148cc5e97c8bfb032d4528b523b6a6b29209428f38115cd102e3b4e268333e490140964278238e7ea9638ac34559e05300dad0c3f18e9228474cd3a7186102967c33fc14f086b4f1ec3957d87f2609d140dbb9e7ff793101d1cb90d004565c6a32924715b1bcab483e6389e2e824054edef350f328870f16412aca0fee39edcbd02a6a667aaaeabb6654c4762c639a26286a3c1730ab75defcd9451b4377f6acdc3b905684658c0844d904c47d313d85eb54963fd71a9a76dc8e345e479004f00e446b886ec41cf7bbb9311463e877aa4e357a0dd0b185a5cf12244296f5f8568e84cf6ac3b6125db6897e4e7c183cafc04f61b3263456f61a7880b446e3cffe986c3bf027c7deba490ec8544d2627e6596ef8f8a5cb577796e7c36ffc4f4346263b5d86ae1d7b8d04709367349d590047a8bfb34fbf6481adce60eddfdd1e148ab83874d70b5303fa0ce60c0ba7a047a477dc4c513d2218b0bb2bdf9b60be9a39e928976464e333ce0cb19aa21fda1c6851c6db9d5bbc6552e080f8e448637af711fed92e72c8d8530187de94603377dc387041a9eb42ac70b3923b9828de33bb337d55409cb419bf4089cb2bec79ffc3afc6dcc3cb82bc903d956d28e307fc0470736574056302000318eb22887126df9062243038440ef3fca2aa024fff8739db4930b314822b00cab172e83c33b7e5b959b0c3f27c714e447120833ef69bd634d1e011fc3c2585beaa882a29c2dabddfd31a48c0255d1ab57c6796aa4625a546a02cef51a9ee2e8007fc047073657407210302e71fc2fff37aeb6d2e2a7b7f2308d4ab7d4bf0a4cf9be7c06e89a66442b48300")); - tests.insert(String::from("blinded_unsigned") , String::from("70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc0470736574012108a337e7e0ecf24c121a17193623254c277a306e9fd39cd5aaf8b7d374f4011c6507fc047073657403210b8e11e3b8904ac80caeb16af1c93053f8a11a963269bcefa96823d75b8640ae940104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001efdfbc0022a6437ec10c672d76c513868f403f6b9706e09733d6624e3cda831c2c199dd4c5763054a1c219e079e8cf3ce0c00dc2f16516972e1e64d576adfd9f5d778675c8a3172450a4cc82d6e6c59f2b16dffddc902d0aaa647b750d6224cafca7239a4fa81219cf2ee89741ffc5b7dd7e47d332ca931cffb1d1d432935a6013207629118c965b7a5102e62c43ca9d06bca191307a476738548536809ff6b01c6b5b25d76ff2f67d99e20fdf7d2eff6fc248186d21d054196023c5e4f572ccf0f3aad8728c46f2ff6756ea39de46028610a3d26cd42978b09e0e29e0a8aa46e4fd39d28d028592560264cf1a794c27f6c95d382f486dfe900a81d9d92935c7e0e6306549b3e49b1f60182512ccb994338c3541a2956139b2ccb3dd156853105abf5fb394cb2c45915dfd4106c7472dc5d360ab5bca408203a3fef58b4dd33b0c11c367dde2f19c8af7682be067244bf49a2b8cd4685f5481cc31ba27fe2f3d7b7a353be9b41e4eee2342fd70b8408c91951c71c75dde8fbc03e3f28e6d3d3b41e0e963d3ba0c25b2eb50560c21221950b0699d2615f0128e6cb7fa1b04ac1a046e569a7e87df98c14360b8ffc43db5e17548c7ea5056f84ffd14f4cdfc68a4f10e9b391cfa63eef2c2d623e7cdcdfae2fc4d63496d81462174ff360809b7e3b4305979d9cb8e9ad5b0f012494d31ce51ee6489555b09dddb16641ed9e2534fc34db99d2a4fa736eeabacf2f8cdca97f9e84c964277c6f30f1af7fe2b51b39b487d56ebaf593a3f98e811cb09849c5b445d5b7c9ba37807bd0189c8bdb2709fa70c230f9aba41dd3c62384aea6e1ca098ffec26367aa65a09459fca074d1da0365cf7fc2d8310ae099b838ca78e62cee10f95ec549faac1ff0f8236fb8cf2c0f6654e471d3950ef45e0159c44f9e343d05b3af59b939cf76090d040376407c41661eeda7d2cb61cad0088a286948787dae0cc5abdcb97f7f42026c65a13e1df1357c25d376955942adc858e73876e1d8812969055d55decac9a689dcd11dffe5cf6e06088b93a11e153ffed104266bba472cebffb2b0cfc8ef132309bd7836071d3b6ed459a5950c64cccf230015c98f9210f2d57b7f3a07c382f3df09f055c88e1f312db0d60d471afdc0b780d319a6229babd8f45edecff8d1073fa850f755219a3ea14e7234cbc7590c60eba0ba0cc1afde6ce91c8e8835b1ca809926b3e7d8d7a0941425e5f08e884f12693eeea1b3651f53da90972aaa37d426f37db3edae4285db114cbad5964c269e03b15358ad2a7242e0af538a594fc779ec3c43c3d94fab2028310c6d0acf3efdf0acf028ee757c5c02bb5b8b691aa5eed1a62acbabd0d61faa478cdcd54c6db2cec6144d8d1185115097a7da79c16ad3118d12e36dbcb7a70b0ddb27bddfcb1c6e5426b7e411f607d22c3ac2b8d3e41f55faf5e2105bf3b943846cc4c33edc64f902c1eeda09c8110d4f3ed0a5e511156a3e368f02161b92126abf649341ddb8ed03d1d41b91fc34548c6d94dfb47c088ef27a3cbfe1c9cb05f2ab2f18b8746394c8080c4cd92e818e46f861614ab870cb7ae3446e376793f3a6568a2ccfc2ab0ed0365567671436fee6cf427b6410a046d80b9d88f094924ad370da363e8eb70355b711687e92d88a08ed811ff241c7a6dbbad9dcfc18e6a42493483b938e36c1edd2a1c6e078a17c5d145c9c058b4dd69afc44c345f1c88afb95c1deb5c4994161ba25783165d43b9e50a2d8333a8037cec2ae809a3dbe026d6ba40d60badd05bce73b0f9f36966c30b9c0cb5776544c1182024a96e746a3b01f9db10b45aaffd3b055b02b40bccd41e57c10719bedb0fba99a0f6b0868b186fca0397ab8c219f33190f81e4cce2fbcbc0975c394919c98fdfd7e25a33e5f31fefd06c8dc409cbd3e743f0f48dc90abe45b2e68948436caa37fe9932a77b7e0fe0819d8283964b0eee2249d9190f3eb0bb8178e10a287be1059f35cc1a153dda14def65f3c49cdc5186da86bd3e965446f914e3c9b4cbfcfd2c379f306c5ef8844c4fd398b3c6f96601e90d2dc8810875663939f63abe3ee2e1c8a9c2c2010a01d0dcaebb556a7c98421f8e6465cb0434c07dcea9db1a142f9684e50b06c545785f0dee4def1257e4bb22d87a2b37ca9eb53081eb8f1ea0439c4575abac435868a36552df569ccc63477594ccf7eadfed6adbb8e81800a2e2fdd7effdd1e2f09cf76c9e780f6f8eb8408a3fcc06cb8bcd28db7a37edb0232a6f0e509c684318f179d0c91a97718ce3956c266790361ea3a1bf70cdb8a2f2a59b06dee18075745c7302db9b13a452c188c5624964af2d5d4bbb1138dec59df5dfb077a0f62ac4db3de81f54365f2a4a6dee63a6092b4660d3f5dca3cc8de3bb5350f5dcebabd515c72c9114bc58d96e2e863106f0982c2632bbacf2fe5cf6a8df880c550f7008fd09227baff82d4eb031802fbe7d50f6174860c70fcd9f0356e34c0d45df66492dc309b260b7158adf678e2da66348ca84de3e721c6196e0c717f59cb802c6866defdd9032a4b7da82b816d9681e5eb9115fc2a572fbbe105f479ab339bfa5961aa1920346c9ae4185a74aa828da78a71e55876c657249e83f5812cfb055400da1db8bbb5ed3ce2ca4655b0c39b698ed7d235fb0ed4f29a7e8925cb873176efcd1c6981dd23865468c6e01ddf61fa3e40d6fed18d8e3dbd97a08c68bfb092e441e512d44089cf563509785dd58203949a1ca9b66a700db14060a760aa404e5e9f31eaac015f1527f6d760d8714c88040b87fc8a4d183230cfae35326947e28a7a37eefe1d77070f5232a0d67e278a45d649709a7398cbd43094c5001263671517f83e62e79fb75e6f9bc592fb3bbececa3f597dee71dda0fc909079ea49d81554d2fd79d1cf3cf25d1186efb83cf972b7426600d7d6eb6c48a5f0e26af640c733f3f771e0926e6b38b6f39d7882b0538dcf281d92a6bd361bb32e16f3988d6790fa0a45f549e983f4eb68ce5ff11647b37f8e4c444aae8bc0f7c49ce7215545a29215b55f37dc42aa6add6fd1fb45d9ae580434097e7a8686e23cdbdbf6f8b6b1e5579a7908bafd8878b004c7c94e045fdf2b94f8c1a75ccee7bfabd9bb6d0ea8a60dca61053636160c19f8f3fff3d0330fc95d20a1393629f33f281e5da80a5ff66aaa5eefcf495f8bf7e24744778841d7c633f01af2305a122ee093837998e87f060105ffbc083c0d71f68c2c63820d7a547d9af5618544efb9736af56736e73cb696f191c68970ea1deb587231c889672b3b5399b9b5e915e3c567474c3905ec5b6468da826f1a6438ec335da847db540a091ab311c6846f96a2f17befa2f29ea491a41d7630e42583ad1212e6c606dc258a49f756e2480f90775c04c5c533300e37f8bc7afe7b155fb95877252ce4a53f78491ebf9d8a4aa41da1848633816542901d56e66f126316c80efdaf4b457f9ce771edb012a0b3c27c717f5cb3cc99ffcc959a02289e30d5b1ff936320579c469bd55cba6e79a0c5f1bda59981b71840a8c1ca56863e91eb21fbaf84525d5f04e0f282d03bb56d6dc2352f163d8357b86bc6e4e621bb693db3565eb9ef5629af537874c1cb3459582463362dab3c6fed7e574ce9bffcc685b8eea61599292cc69860c4f9584818182f94d719dcc463e9a6f854405ca2deb3de29ffa1826f795b7e7ac2555c0ee576c75494cb832c59de8d9620927167bc136549b731ef79a39fbf8789831cc003a772fa00d4d699d089d47037e12e1c6eb8c20c5535225a33a1a787ba866ad481e9a4d689c83d75f1986405c82154e312ce8b3494ac5721b96193c025bb75b2cc974f9171297da058d2ed4f00d94e60737af29da660fc51fb9bb4d241e78c9d1815d7e3ea90aa541c4c512ab423ece93f9ff2f479f464b953b4171217b758b280c5d8acda32cced7bb0c92cd9b405afb3a8405602da914e1831fec5b6a291f90635afe82b9389a8b41d957f81be125de2f943b7cda9e873fcd74b446bacc00bdfcbe643053f6cc8162c0a98343242b489f59f7ebac016a7fbf620dafc15c8ecfe20b954153dba19eb81087673a1e847238864036e9a300239a00a5a03d8b39aae2bc201c04c477b1f2a37552670c06ea65551c5c88a42476d0d797af494b077737cb48050bd35f4980964b8b9b98bde84615e8fdca407230f5d15e97ae65d63a96f3d88518fde12d6a82881db5c8d4cd79e724312e88b394129de3569c5c99bf842a90f193c91fa55a82116e237c877dec2da6dc652cb33e33df47420c5238fb6ba5fd96cb77f0cf6c8a12be1a95186680d16a064d9b1a7c2461fdf5e0a512a5a3ed2f8dc0eeadb6c95a658aa1c2713fea473de51f65b13a40a2fe64e5227bc9248f59c2bd60dd2fc14918e333faab6e792ce2f0597be47cee70f5a8b788a50c9cd153bf24786aa80f631ad21926e3285f41c5125a15c12cc889112df0b1857020160122c2595ab3359bcab184ecb32f7cf8f38eea23f4f9135104629d8f1e8273c44f8afa129d3a74cf58ce494214629cd53b99a8489ddc5d339e317ce75dd6c5dbd098d811c56ec5f19c00fa00b5465e39f8f2022c71ab3ed0d5a24058c197719551985ab30a851390ab5e11420c521b1398bff0038d904e5879db37d60c623a0a82e191cd0b6bd20a9e956d41d5daef703bdedd6bd0e20fb096423dd39706e939e796aa8bdf071e44791d2e1ed4a81ffd018cb79c5b6bdfd6297cc6cd379845fd7ddfdb0b83d7b26c21e3edb58185e71472a79cb65322579bd5e0e7b1fe081dcae5447834d70459f8a96b341a26d8922a2b1412f95f3533e04b5f65be112cca03ca45ee0eca10adc7593c78c041281c880d879125e585e68f5c7fbf8686f245cd736ab5aadc57c032c637b753b49575acf4bbff46883382f408417438d7817097accae3fc54afc6015b84b3b05627d7c83c4627c87727bd24c4b4d96a08c64164ab8d4abe3fff5c3b09e8fd12498e3cc3627e799e4ef72a870cd89598d51ba396655b4de66e48997faa51d05d581c52f52852cffc9f89252f26d314d2fb8fcbce197f3a8f330339c2ec3c710710b74f0915da3bbb638b1f1a0cb0c176adc151da0ab52796d466b23e8a269c5b22b76fe7586cbc217621acc955a43571dc04f69deb50066cc587595cf0ca4e9a00a261ff2791ada8de04bcbbea249d2a7840bd8fd3ef98a248eacb7fea5318b2e207668e13ab4e5578c03315d44b478df5247d8afd0624d2a57adf85fd16d86ae54cca21f6c91d8cafb3b31e3f9c4e903c04f39d67c90560dd10b2d28c6ee937cae01e921c98ddd833a9b9247053110c0f29d2f35f8ea322a738636f17648b627db622a9cc891fc1d066d5fcabc168f1b492479b0578d0bd8de0298d4bb96a4351714a10a39de49d57ad66bd6b458ae0d799a19da54bf620c0e6979a95b61a83cd06e46d7d263d53d66f77557232983268f5fd01d10442af0c840ab09c6cc4ad77add6379eeaf98f7cdbd70fffcb035abae4efecdb7e6f63ed8acebd8449b3a910e5eb06b0ee6d80dd45026c9e6c2f978f813b2800386a4d7ad9d127d76c4286c1b2facccfd16e6a263ba3e2893ae5e42049d421e08a62ee9e9574a1f70f0add7b68344256592513cc15f4bc64c5a029f60d617c245c1c34d06c095b2d0a9647e65dadb33ea79e3e0ea62ce55347d24eaab7cf9fc33fd70c07363771f78a13d92941daf7970c97b43d2fbe3e789a52ae7bed64736e6ce59f95322d20f9d6dc00b5824a0ce9072dd051c66ac20d39bd953f567a831d75fa91fb4d49b200fc893489e60df95c2810f7fc57b7f6b7725ae600e1c2def6a943b8d111ff3e9a5ac80aa981fad8709e98ee1550005bb8f65dedffbfe3793abb407fc0470736574056302000359a33e8f3d0439eb7d60aa79255858269bc1011e4cd0d4aa753bc2793f9638fe70dda4a99191f08700047a8b66d9cf7a53bf70756013c8630419e3a0bf428158dd02ab6e16822f239df0a6f1b67b6e1335509a286b30c4b11a22dcea9f95d51307fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac0007fc04707365740121081271c10f0caf52a40e015e7d35966dbad39525a6c0691d4beeb3bfb22af5304d07fc047073657403210b85bd6dc21b4919f6ebda7ab86ac8122c793be3fad19e44455945ddec8b59e9f6010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001cb6f1101e2b960c9a2fe480eb88fc76c63e58b57445c78d88e04f740580a36d6956006ef12ba606aaca89796dad5ff7cb4c4c7f4e65a07fea8a2ce3b58b265d4b3220013a09ecf4e01023aabca5586d61ecd5d7f2bedceb8b18a8e41451c97a192098b196add06a8a6b619e1e731fd9ae2973741aff6358c1ad45cc873a2d497271e3a20873a6f701d4c44ef670c8c7a9793079d9bdfe956bdc02a52d1de8b2de58b0f7d309240999f13985fa8c98e57fe1bb75219ae6330e9495b523e891dba7885a5302817d68a9891ae0c2597d4d7833b91b073c4f9b27be1cf81ca1c2c1014c57a4affe7b402c0e0c1862bd17bc1d43428671a106c26cab61d5e4ffd1c01f6af1c6e97f7a25ae8aaa8d2c91c57881df52bd5f242b127ec7aed5880101caa01783884dfe943ec9764473323f59b27a204f34aa1fe7fd4433fa606608b0f253247d149e3e269ae5445e917390be83d5650c05859e3a817a6c7e561e2b12baf6d4ca4221df0b7f29fa134269139afd9cee5c7d60149dfa23031705c6a8b72d00d659d7a085de8330de2e5c168ee3eba2180a9319f5e8e0806dadaf0fffbc2df839571360b8cd32300504a527cf914da7a1e788261c9cca2872ebec5a17cad33b15a7a7427c200b8746761359194520f0da1d7ae03f26190d07cf92d515e04815f514c66a98997320a028ad24e83182f213d991accf19a8a59003a2ca666ca505c0d8349e2cb22887efb7db9e4a4e3e2d8da0d5f032603e03f48fb967fd018fc99c6eb72acee4178edeb48703903a89e9462a2d1f447234c3373fff8b205848c7a9d6e45ccc31eeeb0105ed3af1188fb847cf6f03a7f0a646fa325b672796168dbbd9d1d19b2f41685b18c3c96f1cfb7ecb1dea132e8815b62647820ac4b12597d8e737a01a970704b03ba5ae68f8d64a1810db10427fbff1d74cfac91561484cfc8d3b23f74ba0f37e7db2f942c58fb1dd30f6a50c57b5eae720c6ed69b0fb81a6e0260c53028c732a544391e319987a24548230378f8f1ddf65a2d654c7b26951d5c6546cc8fda6003228e8913c9e3c5adf7b7b72f4ff5c4aedba6096097f9a4b58ea1e060609e8d1f0fb0e5dd905b29fec72b118d40c5f599a63f9a37041742a7f1af3ef951c31833621842ec212f9fc5cd3e8c08278ea192f8032ade447d2f35ab59810aff371f598b7dd57b3cde2ad854ecad0c786150748ac241ecd67cb868663a6fcbe9d68c3dc221d4fcec9b0ad89c337c1e10b91a38ab1357f260ca3a084da536e56262973e6c6cca838601fb2f335811375aed78295c4b17d3798d39d4cbf6254ce57680a102907e5c08b5c7ec0a1e73bf3d7b8babdc6156c6ca3f09c0423d6716ff4e6ee0338cfd778158202b5ffb60b74558dc6d0be9b5aed6892c4e0ad3e20de5b604b2b010af09ceaba7c0fba5a7fed39d31cb2769909a251ba5b0668330f734728f5c6786a8f1a35df77f3d739eec71d9268fb2a494a14bf7ab91c075023e76856d1745f5813d83878822934d0b4cc0538048c3f96cad7aef2bbc49bab139915dd4998ed3c6701973eb7913530b14c688f0b344ca9cb990de2a9b12fa7ad8b292234a33428b4d16813693964365bd412fb936c1461fdf8dfb0bba31202685f29addf95fc65f841e97042bc5d82f103e41017c6ac91d3d266e12db2dc195ac4f6d4353924270c7144cd96dcd07b9612e2bf1e0f7fc46ef83690648395c575a13c2b2df0fa04f740340e6b116b0866a401de22f68fa3f621d75b9f5f625cd5d5d7e12a5b0ff795749d742eb2648ddf068a451059390da566b3de84f9d528b2663de7dcc562eb014071e8277a054783d322fa67b9e5261b87e9c354ff58fc52bf9df404139311d6bf9650658fc94835a6220ca02a4bfbf46b2af4f30b1ba681c0de7c134d98dd52eb1e937c191cc9557aa73a343b99ae0b8954a3e929174984b574da75e90a9b71af1215317b04e4090770ab596091fc05c82235a324f86280f7fa081360ac758c1980c6a6763453e6b344611e46b05760941f9517ceb298ed7a2d6f96b11f5719ed0dec803c511dadb8d056d4ca06ca0ad090558a4fbf3a886f3ea9c33e1bb4bb5ddef4798cdfb384bea75a3794c42a53af60f12c95fe9b38d7f6a5d914ef100508091fc84756b596b9ba08d1dc42a7e253435b5481d1470ef00a1172cb036b5bdfaccaee02b15d099da17f9753846226325232e71ed9b48f57697bb3d1db75ed214310e6e3608ded6f188e37b21b96eefaa396db0df05a86416fe64aa950eea87e7af4407c828a8822b17be661269c9f9e365cdc79d20503e2d5e575c5387fa961206118dd379834aade7727a1b2477a24f05f6c2ba3156fe7f5b5ba6d7487b1a124f38e3ed3cda92a8edf05f28e3d699f0c12de9cfeb30ec8d4cd253287a6d3f596db0c06006a531e80083f5b41ee26c05d529e0a59ec151b4a9260a7ea8c1a175ca41b59f464adc122f448fc43e90dfa7b88f81caa7a84e3d6d4dbb85e5828b6ae7455dc2c87c8d9c706af2e62763675851b4ca449c9c0f95d953ce53c5327ba8981321a1cbfb76bafac7fa17c99567725d8e0ac288f3ccd3bad666e515156517281c97a3dbfbd5f345f8eb80bb3c4230301a38b7c920d74eb910d380f884a683f7d3e2738fabf9646138e8a32c35e43786e67925508e4cc7b1e7a36abdf6a497077704e216f1e730c20ecfcddfbdf2484d8eb0ef9b7478f77063fa90b8afbcd019d1a584df58c537b40b193f246598ae4c53958a947dd3916b14a5a4227f01bf543a8c5d6ab8eaefdfb959c8715b756a9c797fe39229dc56a86364cb367fa37e16e96cf8dca1fdc8b6a46ce88e3d29c75b6cc718ca8c28e9e1ae991b28c286107c1dced150814d6369cc8003b2976018941df7fb8eeb68be57adcf8a0e813d2fcd16dc390ce17dd0a91dd674d766d21b5de7f4678a548d75cc3de7d099b418fbdb66b2a2b12a56b1dd8b3f84a7b45e36db9bb63b3ef9fdadebc21c6a75364173925ffc69d481024e49076dca105795e7a64a3c82011889aacf0114a1bd31414e288cbb63eb47d399d0e025a54f11670c8ad4a793d0e7ebd3b0d8eb30b87cf62b131c61a4c55d2e56e47ae99fc543c57a1877ce44dac4c6f9fd99552701ade43858e0b4020230cb4d42d1990bfb509471a5c1c5557c29c00072c5cbbc056de6d465ea2ba2f4a1a5dd604dbf998e834b9200c59fdf90bec38af9218e47ea5ed5512cf8b0146126a15d49bf915eb893ad1ef83d8faf6c93f944ebce3704f930b6f69a1afe767ac2c9fdf092c804c7372ae1a64bca3a3b5a31f2ad430ba9e61dab3daa3be90a538cf0fba00796de511cddb5a594f14aa6d215bd0be19c0ca5f043403b7dc56c87b092d9436eb79509c3dbe367c2fcbc2b09f9818cf5a55d5ee0e477888166bbfece661b62812ffed3e4167ecc81dba148f89a8f2e7c27424a2ee091ac487e68fbbf9798e8caf46b35de8dde66a7cad6dc98a426ea7b8b930cf2d7d71fe71066dbe51e8a1c7151e97fecbeedef3d6f8e01cd5576dd58097b46153f9c3bcecf30bc82b4cdfb1bbfa826c7c5b217a023e4da02a35d0947b2c4d24d50a292e4c70fe854a420c54490d4850ee8c372756671fe130532f89878a64977ead60bf604b73859ae64ed62536423bb51b30c6fedbc819fdae05cb64b87b153f4252b832d6b866100a7b307d1e705643f96f0724858e6211802b2ce706d5424b99315db90c7d74fac66951251f6cb739ea008f839c7f62318f795337ca4ff05886a2640819873ae00b933081b64da1101d1b17451357921a2f4d4dc86c92a5eb346fd6cd3a63315768b94b90a15162aec91cea706b9221330db154d1fd71acac90be47055c725bce38710f1b4b4144f331cfa9fe15ebf6535747669e4aa1f0d72092ef395f16a4ec9014029b5c9d1b4bed9ec81a7568f8f1c87e0ce0f4ef9cf49e3fe4960b0b7904614772c63147f3c5463fffed182919c4973a8256346116be40b10a38cdea5bad5878760daaeda57476e86ec65e58030bc8ff99ebf017e9bf6383f981edc83b538e2bf4bb573637e6f4717d74a3ac71f5e151259b29c1b7226e3a8ab176baa2f27e3e385cd48c6f072bb6e8e9c92e35d7ff51177f4e3553555d967c04befc1847003a8592738c82eef231ce3d372372a19a01b27dc7916f986ff3f3ea8872d4986bc1ca649a92924c8f582ae2b44028e711e955d2563c33db3b7734aa246de553dab2c5268538f7c2b6dbe9a70657e2a26e52f5d216dfa9aa8e197a227c86a7d3b468880a721b804a0c51af1592043eee7fe3657b40c1832a858cfb4e037d208ee69c4fd697b929383a971b2a0864544505af2267e334db5f3f3f4ed88e2f6f2b3d7b96016ff92a120556e4d1e50440943893b00508c6242bcc41b6d06dc29ba20564b42257b9fa1b5f4f453e94e72501d31e8947e09a38261020400db4b8cf675b1854639a962a57905cbbee14ea0daa9bd281fd635c8f900fcabdcbcfb140f4f24b47731782ca899284fadfc9d0d6eff77045792e139afad34c7672bacfa22d85fcc05652178cc169bcf52ee3cef281d99935abf9c9910caa7994cfe33b9319d9854aa6e2590a86297f23b0cada7251a6ee1b2f3d2cb5a193cae8768d92f556994e416d4bcf5bba3a295d9e2215291237df74e3c493189bc5a27b3fec3e1a1329c6c6c75e0802b40fc74776476dd2d9e3453ec1709a8a2d162a936d9fe7dd4b6f7abdadfa429aed4cbd5896cfb24a2d91f1cee781d0ed73cf7306d6f9545fd3346c2232b8799553357a5a531d6085d04af5f183019dfd3483baf23b0ba5a6b58bba4b7a1eb0a32626bebb5cc0c4dad45c55d135be8b0a4dee787ed48b90a2a3fc120a753b52290c27ad0eb32b668a9540986ca0256c1676debc4d19b1b80bedd81e505154264a199ef1a54e1fff1b3589fbb6b2d87a1e04e67066571b68fe04f030d473f8d135585f8b7be91f0ae1a4fa2f44008c0f727f6aba9c5c60c3a9ff22911e267ffa2a5d1c71ff25f96ad257be29a2ec641e2055d785765cadd0c2fe513c44154e74f4b8cc4b24d9ee2f6cfe245549713f9dada1935247a2ac7ccc13c4a5c00c6ffe7ca33c0cde4c75c4fe2ea041a965e4c7385ebfdbc348da8c4216a02fa829892c827adbcbb87745120667cdc5a4aef28b190a54b422df45b8547c447765838dbf9f05de338ab672706b59b2f0644d6735d9316e64a1a15d3dfad893bb1bbcbe1b574a0b8ef5265e195a929148cc5e97c8bfb032d4528b523b6a6b29209428f38115cd102e3b4e268333e490140964278238e7ea9638ac34559e05300dad0c3f18e9228474cd3a7186102967c33fc14f086b4f1ec3957d87f2609d140dbb9e7ff793101d1cb90d004565c6a32924715b1bcab483e6389e2e824054edef350f328870f16412aca0fee39edcbd02a6a667aaaeabb6654c4762c639a26286a3c1730ab75defcd9451b4377f6acdc3b905684658c0844d904c47d313d85eb54963fd71a9a76dc8e345e479004f00e446b886ec41cf7bbb9311463e877aa4e357a0dd0b185a5cf12244296f5f8568e84cf6ac3b6125db6897e4e7c183cafc04f61b3263456f61a7880b446e3cffe986c3bf027c7deba490ec8544d2627e6596ef8f8a5cb577796e7c36ffc4f4346263b5d86ae1d7b8d04709367349d590047a8bfb34fbf6481adce60eddfdd1e148ab83874d70b5303fa0ce60c0ba7a047a477dc4c513d2218b0bb2bdf9b60be9a39e928976464e333ce0cb19aa21fda1c6851c6db9d5bbc6552e080f8e448637af711fed92e72c8d8530187de94603377dc387041a9eb42ac70b3923b9828de33bb337d55409cb419bf4089cb2bec79ffc3afc6dcc3cb82bc903d956d28e307fc0470736574056302000318eb22887126df9062243038440ef3fca2aa024fff8739db4930b314822b00cab172e83c33b7e5b959b0c3f27c714e447120833ef69bd634d1e011fc3c2585beaa882a29c2dabddfd31a48c0255d1ab57c6796aa4625a546a02cef51a9ee2e8007fc047073657407210302e71fc2fff37aeb6d2e2a7b7f2308d4ab7d4bf0a4cf9be7c06e89a66442b48300010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210970cb1dff96101101e24bed1a66fb0794d2fcb26aba11e7f2393edc1534df8a9607fc047073657403210b9991881df2ec384ff5616f6c03d45cf033ee64536297c3557f9fffec716c1fbe0104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e10603300000000000000018b6d2d00790f618171a9e8eb6051fc14dc27c502a54f5ccecacb4bcb350581a8f4b1a887a1e58865a21f51ef5098400c115cca84f489637718d8c3ca4350ad677374d40d2b64fe949ca34bd4ba845a87c7693421b70aa8d852e021aee329762883b9820bc0a47ea2fc6a8411ef773703632849094e51c73997c67f3e922d2801b6abc445375cd963a62c2bb28d733bf9274fe503081b51a56023a94200743e7d38865c190331449d19bf3d4eb7bf0b2a9b90696484aab906b9470e10946744838fc428f88461864d6601e93f10909e049a315fcc0ea7f4d71507fe5ed19b9ac2f55b0d3902b153ee27da9c55ab66debfb5ca440dfbb1a600cd8875049c4c13bbf242d26b10035002c7859f9c3ea631d955914adfa0817e4801e85b3f250cd9e7523db62c4ecb17a49028a02a1b61eb96a410643f1fec0ac664d96f99a1db4ac335c2bfec2946707c3c779a56373db197039af9a903e833af6f51de5cf8fc667dbf5416845d415dc98641e0984ebdfab88bbcdf305f605d36f7a472a516206d7ec722251e269800a00e8adb8f2ce161395c1c6ad4b406e1fda77bc7f0af07ea075011cee6cc5e7fd1b6e96e321171ca7d28a35595ddf0b0c831d28a88d30c7391c5832d90f906539aa49185fc6c0864e2d10b21160991fc19a1d084006d03fe3fb6f571f1ffd9f06ffbc0c076689373f9c2f8655758f7f44618345a6d5f8edae46e73a09c38157d5c39dd51a47756ea761e6320d6a91a1bb22d8dd35e4e7806b0242bcc4cae8720a953c6f933c0ee3216513cce6742a2cb4bf44553d8eaf175471dbc0f71c7c245fe99ab4240ccac637a16c82f0c60586f00d83ff852af48a239289d8b70a2638b0aff02572d6d2d68e22b87ba93f3db51bb27825265607ba4b6e9a194c7351f220b9e715a23237c40024fb7cfedaf7c8e0a1c4c6aebef8841fcf2609a3dd7f44dfd8895077df41f10790372eac8adff5ea7eeb28e371b4700d5044b41fd358dc4ba29158213e0f93711026fac8abfbe7cd80a939477ce545bc91cd1d32e8f2268563b0fe3e80855777d51cdf4835050a557d3c7b7f6905ba744ae5450d22837d2c2fa0c0755934654a78601a1fe236f11b6d72f368880ed938ff4a2e8d82c118493a1bb9a9ee95cf329f2d175d467aacc2c6cd73ed59ce64d508604db77942f9b7f3b0f86d913d3e1b489d2190a6da1ed997ab1eee356c885270e4e0192acc9c2b8702107c96aed654318bbb7724b913808dd2cfbbf6ace8db9c4cbf26f2c90a76eb967e365c58855b83550819cb5b28ea5e6ec1ea153ad3ee5e6292a174f7cab1b39e852194a6926bdc4d42326e17998cc057f614e91f6acab5a5bbedd93d9a13dc61977aa2accaf35370a3f1d3819c43c9430d0e767e92de96bb225007a7b6576ed7c4f05c984ce2e437d3b7f7f50c270caf90f8e5dbecb992be2972ef8d79c7674e025ee06b1302bcbd57fe5be9d9b4e38f17d9dca898ef3d71918550fd77a15c7aa2b66ee1a2f38b81040f3d6ec6693f54cc3fe39515275849e9e24b0af3e81705dea95e8f1bb1b4665cfdeb0630a5542a2857f2b58c36761d743299d77872d6894302123f4347702572f04d9876191d771e87655c071fbd29338eef0f9acb0a8ca3f0327ead8e875bc2e7ba38f249e6eda1fb74162e972ff523d20c6638b93297d406e9b2264187c06d0a78203d771f2525227d029b27b23192f747492b9774b12b039729ef75d11ce8d701e56fbb202f3e4bd68686f096f13680456529e5f132915595e0e0b4061b3014219f1fbef4d7403dbfcac01c701b7727c2463cb838d427e07706400be4fdd9140a800e47e7ac15a7a8a897187a38a0080726349d8b7566252076b1ae1366496b50e9a6d236837ffa0c4c3e61bb409a7d9faf8662109ef7213007a76a6d94cb79ad07183a33a4cdedd78896278a3b5531ec0efda9d77076d85a63536b426a6b58c3d0e8a46faf0fdf678e4964272e8410b346cc753edb94a61a2f309f8e753ff332f5b15215e0a20ef32e6a6faa044a431764e008e66b4af820bb6afe4d8dc1679219fe7614482517fdc523d4d7ce2bad9d59f7b9aed89b813e5b36b58a7c668e53181c0e1da45e4ba3851b46de8e056d63e440c471fbe23fbffc31ece7cd20658784f2d2fca3f730a1f8a90ea6995ccb490fca475b1441e38468433d1423c1d83a20b04f1216aff13c8e035c2ed389695c2bb0bedadc38c8a6222d687f0235bda3566c0865774bb6098acd674ff9091db1a6c4f0c2955c1759730b361f310d956f892089f500eae0084022e610ca4e758ce2c680d213bd1b5e00a6c991976e93189159bb98a1e4eff14f681d47694060126c0852ad52489c15d7302d82c66aa830208a9fd13da87a2aac3e44dddae632f2e4d56dc768ee6b3622c61e59aee27fee5aa0bfa9c56402ae3525f00634b11381d0b9637ac699e4c4b225c32bef9dc563e87cfc33bf07450c2cdd015bbd94df63697cdd9b6cf4169cfe1f626c126dbb588c57542662d02eeed561946ce94b46571f72ca3cf7fe52a8a6ea24fa216f01655dadbeb0f74e383e522da69db64b368cb155c2ba4c4fc8aea8745b1081223317003f0cd7ae620fc7d9a6c9c4f39a237d5d9d7f3e756c77daeccbd5d06ed28ac2f089db5449340872bc444aa4aecf6552621b84e4fabfd6baf0e1b61cab00e5c2050bfa38899e9840e2dac55c7d5e7105f65dc3afe3c35dd3e8ebb1a013d65fb0b9d76665f3c4eff5b766fbb0c03cc10c411987ef516405296437a91a67d7398d788e30f55bc1e6236b317784504c53800cc07f4eaf78bac03a025a7943573edcc67db3d5d5281f85ee993238fee3580cb846efae33b45ee2ee1ad640b1d068302504521269a31a166435e8fd964d2e15048f299a95ec1cbeb0c8d5d119e24670112d61d56ea120d7bc30fcd924fc7b812404ac45798af3fb590570a4d7a3f41639b879d1bdf2c72c979105460892fb41570cffee716679eb7b4124be188e28ca4c68d206c1cc9d49cd7489d63372853dbe83f874579238ecdd28c0dc265871d6dccf782b571f1004702121e8b15c9d8af9e6812dbbe742812c7e7cd1dafbdbe3d189f618936e270855700be8f6a7b528f271a936a2cae204b44d909ae3f6a8bcbfcda44b430397b1c96187e5a8362afe92bb9afb0a0a482cb6c8cac39a0fb1fe0034f8a965a3be425b4b34f67ff38a8ab30f8219a8933539c1d06d9b2997b6de743c568caea8b269642b8503b546c9e136d0e47775c8fef45d4489e6b4747c6accd6fad3d34fdd6cbafe07264e7ae1e025306c97d77a130093cc8d5ab8e4abe095787183a9084c569168011766b47dade4e3e1353a78f9f3464d8237b7de02da10c7a7b8951bafbaa898003ad9de997c89d8507393c6fb782b8f41aa99d5c92d5ed93e02a2e7550d42f178739898406badb6da850e305c10063b1a687a2b321a1f867ddfc7949d9764493af4f9681137101f87ec3c3733c0ee23a758a69dd5dbfccd20e0e7cc8543c213688ef9cc85bf9c539d3b6758e24befb3c1b617b7d59a17e915bb985df8229429430dd3057a8225d22afc2775e352a2d7c2f2f46786d4e6e984fb35ac6d7e1b57da82a6d1470895e56521c88c166f8124a4f0c5ada7d5e43174e319c21b9416735858ab50958def63c9a38e853d28a0f47b8e601beb0cdfb30d87070003f957ae347d5b03e80890311ded8018de0227c430f29ff20f0d0d1331dd5f22cff547847c0a26c1fdc272cd234b668823635f68e0797bf68fb1e531a423b1fae9b056fb8c0589908cd2774a7bea8da465248a438a22919d35e0ed8c5020f06824aa856c1a75e0d50d8e9c2dca471d249a97e8e8055d0927432577ef07e6658aa6ab3e9f5f4f50848b12dcdcd9594dae732864f9c6253cccf39922b5f1f8e16458a0c11db397017821de73a331400a76c2a5a29c7661405e9f244a92862a8ca13bc86a78a36744e52019c067573574f75e01b21c36e19a714e9cc0860e9df8e659cefab57002dc2b3d1a2918dc20ff25bc0d87023813abcbbe29defa514bd71fedf314a140508c7e8dd4ace82d56cfd6307fc8299a65c8b3b0719881dc06070d670729902ebfa1dc0b88050e5824cc186454ec2727d0fb2f95eb677f949375a0a31661c7f2bc452426a052b160b0654bffae35766a5317b845582176f1ec52e5bb7d814651781e268cfaefcf6da560810d84343dab8a8b2f2f7976334043498f529d75f9dec893bafdde0ebf003ea7d43f22d8e4eb3afea7be8bd22a9adb9334db2d6b05b8bfe72a96ca2c5ecc925333e4076bf5b7d9ed519ac3eb87c73d0c8121b1034424991561eccb669807a722bcd43141915c9db90f7a8a8e732054970645da1845b988f21cd5d2a89abd8e14c0e6532a3db89e43571b795d6f475b11c16cd7253a4538f4e73d0e3791e0c8f3e51ce3d9645062f249549d9165185fe6920659fe72ae01f69c6d5cef5a01cbbce0fcfd671e1a0aac35d541210a723d2fde91f37c130657d8825662bc46ca7780e07422ce2e7e5cbc1b15ad29b8473ffb832f45c480e960d620267561b3e3112c54359459c3f0235eb6eb2720dd5cf65f88267e099ae87ec7e35b3a915f18a4ab67583ccb4d907637812d797dfa51acc7b5cb13ab58934217a562b00a4a3d030bd9d3565a47c95396034bd65d39d39a6e7795f13e5031d148db16eddba996e1e70730eee02c47bd8b5c42812a12a2db5490fc3ad50d7d03c72c0e933ed8b43f8e34124e272cb39e06e628f18acfe4488dcced67a2c47008801e8d2db5dc7f7556d38020d53512993f3efeb4b07fd1e7b631deeeda74983011ca401ec7b86eb2a7a4d341f97337d37ada0dbbe124fe481ecac3e9b8e8f3b8b90ccf81ec028f2ee4e62934abcfcc2647966f6eea6563a0fc8fc75348f5fb3d2390db24d49858bbca822217fa81d240cacb7b2f6c2e4bad8a7a112b83a5d35ad68ec1cd599afee41fd4e860097f33afbc2cd790b2933f1194549c5aa3fe5c651a456c8ba7c8fa5ee5492233c21a80bd9216fcfccc03ecb76af3849711a0f69d5a261ce94484c30f4b74ca6cb4d7d5c4dcc0be1f0390c208e1e7e863700c6dce7ea5ab3831c00e586094a6a1f3b32dfbbf99a7581f90001dd558738804d0663a59d77407b6ab1ef3a82c156bc58d5a694a365b300a90ebbcddc49bbe5ba63c88e7a6e0faf5364ea17cabc602ddbf87a4c2f55b068ef296be5bb66befc1e37ad77f8e97c08f02d17dcdeb47959b0f46c2ae2c3d99a948f2a52c5793d53fe57876c38336a74786042abafb63c2154096eaed98598aed76da5a17ae179e79f848b237bdd6db63e5fbe77ee28b2bdcae462905ce1827800407317c2a42fc0dc234b2183db9097c0fae23da91aca6b1b7894537b0dc8524536573a34ef68596021cba863ece0de4a068f806d888aa03ed88ad92f375860f8885c5533c637a7a330c24aa0357f007ac3678e59cb1f6aa7c6979e15fd107a98ab42a635a3c3e70b58a19ec73b4bdc482000c3dfb4af84012ea3957d3d30b80857d9e06a2e677c84e5d9041ad4bf22afbdf0351f6d5c7a7a2ada3dd5ab4e48e37d51e5fad56cf9963715438c5f04b9772773893a59e2e46c6b7e19e9001650b66b469f4b1c4d188b286d5ce8b21269179e772147c7cb09eaee9b9de684ffc33068e5d346e79b710d82fd1278aee64ddd4ed37a944e6c745217c6a626444aa95b565c1f68a12cd2b86a61927896884bd5a76a9df4f6fe548bc16444272ec1e856334d64e0f32ba90daa77085b0683e3e010abf571dc564fc703a12998c72b6712386cfa4ccc802c850a3604bb0b2d5cd2eb6e788d475ff198f94a220c925a32ab6d69b037f1b9f0f4ce1d1b89cc0d07fc047073657405630200033fb971149dc9881cf31b7bd90de445f0ada69611016c5fde4af5bffe2b40a1a27d651a1d2127b0a95539b18fbb835f5145c1c4c7492866c6bd08ba260abb300720d2d42b729b72c6166f9ae0e4ac09a0f6851ca65444bed00b72b7f12befbbd007fc047073657407210252a4b012198c2131d70498b5939c401c01eb1178dfd58123b55766b03f008f7b00")); - tests.insert(String::from("blinded_one_inp_signed") , String::from("70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c22020334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe7473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc0470736574012108a337e7e0ecf24c121a17193623254c277a306e9fd39cd5aaf8b7d374f4011c6507fc047073657403210b8e11e3b8904ac80caeb16af1c93053f8a11a963269bcefa96823d75b8640ae940104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001efdfbc0022a6437ec10c672d76c513868f403f6b9706e09733d6624e3cda831c2c199dd4c5763054a1c219e079e8cf3ce0c00dc2f16516972e1e64d576adfd9f5d778675c8a3172450a4cc82d6e6c59f2b16dffddc902d0aaa647b750d6224cafca7239a4fa81219cf2ee89741ffc5b7dd7e47d332ca931cffb1d1d432935a6013207629118c965b7a5102e62c43ca9d06bca191307a476738548536809ff6b01c6b5b25d76ff2f67d99e20fdf7d2eff6fc248186d21d054196023c5e4f572ccf0f3aad8728c46f2ff6756ea39de46028610a3d26cd42978b09e0e29e0a8aa46e4fd39d28d028592560264cf1a794c27f6c95d382f486dfe900a81d9d92935c7e0e6306549b3e49b1f60182512ccb994338c3541a2956139b2ccb3dd156853105abf5fb394cb2c45915dfd4106c7472dc5d360ab5bca408203a3fef58b4dd33b0c11c367dde2f19c8af7682be067244bf49a2b8cd4685f5481cc31ba27fe2f3d7b7a353be9b41e4eee2342fd70b8408c91951c71c75dde8fbc03e3f28e6d3d3b41e0e963d3ba0c25b2eb50560c21221950b0699d2615f0128e6cb7fa1b04ac1a046e569a7e87df98c14360b8ffc43db5e17548c7ea5056f84ffd14f4cdfc68a4f10e9b391cfa63eef2c2d623e7cdcdfae2fc4d63496d81462174ff360809b7e3b4305979d9cb8e9ad5b0f012494d31ce51ee6489555b09dddb16641ed9e2534fc34db99d2a4fa736eeabacf2f8cdca97f9e84c964277c6f30f1af7fe2b51b39b487d56ebaf593a3f98e811cb09849c5b445d5b7c9ba37807bd0189c8bdb2709fa70c230f9aba41dd3c62384aea6e1ca098ffec26367aa65a09459fca074d1da0365cf7fc2d8310ae099b838ca78e62cee10f95ec549faac1ff0f8236fb8cf2c0f6654e471d3950ef45e0159c44f9e343d05b3af59b939cf76090d040376407c41661eeda7d2cb61cad0088a286948787dae0cc5abdcb97f7f42026c65a13e1df1357c25d376955942adc858e73876e1d8812969055d55decac9a689dcd11dffe5cf6e06088b93a11e153ffed104266bba472cebffb2b0cfc8ef132309bd7836071d3b6ed459a5950c64cccf230015c98f9210f2d57b7f3a07c382f3df09f055c88e1f312db0d60d471afdc0b780d319a6229babd8f45edecff8d1073fa850f755219a3ea14e7234cbc7590c60eba0ba0cc1afde6ce91c8e8835b1ca809926b3e7d8d7a0941425e5f08e884f12693eeea1b3651f53da90972aaa37d426f37db3edae4285db114cbad5964c269e03b15358ad2a7242e0af538a594fc779ec3c43c3d94fab2028310c6d0acf3efdf0acf028ee757c5c02bb5b8b691aa5eed1a62acbabd0d61faa478cdcd54c6db2cec6144d8d1185115097a7da79c16ad3118d12e36dbcb7a70b0ddb27bddfcb1c6e5426b7e411f607d22c3ac2b8d3e41f55faf5e2105bf3b943846cc4c33edc64f902c1eeda09c8110d4f3ed0a5e511156a3e368f02161b92126abf649341ddb8ed03d1d41b91fc34548c6d94dfb47c088ef27a3cbfe1c9cb05f2ab2f18b8746394c8080c4cd92e818e46f861614ab870cb7ae3446e376793f3a6568a2ccfc2ab0ed0365567671436fee6cf427b6410a046d80b9d88f094924ad370da363e8eb70355b711687e92d88a08ed811ff241c7a6dbbad9dcfc18e6a42493483b938e36c1edd2a1c6e078a17c5d145c9c058b4dd69afc44c345f1c88afb95c1deb5c4994161ba25783165d43b9e50a2d8333a8037cec2ae809a3dbe026d6ba40d60badd05bce73b0f9f36966c30b9c0cb5776544c1182024a96e746a3b01f9db10b45aaffd3b055b02b40bccd41e57c10719bedb0fba99a0f6b0868b186fca0397ab8c219f33190f81e4cce2fbcbc0975c394919c98fdfd7e25a33e5f31fefd06c8dc409cbd3e743f0f48dc90abe45b2e68948436caa37fe9932a77b7e0fe0819d8283964b0eee2249d9190f3eb0bb8178e10a287be1059f35cc1a153dda14def65f3c49cdc5186da86bd3e965446f914e3c9b4cbfcfd2c379f306c5ef8844c4fd398b3c6f96601e90d2dc8810875663939f63abe3ee2e1c8a9c2c2010a01d0dcaebb556a7c98421f8e6465cb0434c07dcea9db1a142f9684e50b06c545785f0dee4def1257e4bb22d87a2b37ca9eb53081eb8f1ea0439c4575abac435868a36552df569ccc63477594ccf7eadfed6adbb8e81800a2e2fdd7effdd1e2f09cf76c9e780f6f8eb8408a3fcc06cb8bcd28db7a37edb0232a6f0e509c684318f179d0c91a97718ce3956c266790361ea3a1bf70cdb8a2f2a59b06dee18075745c7302db9b13a452c188c5624964af2d5d4bbb1138dec59df5dfb077a0f62ac4db3de81f54365f2a4a6dee63a6092b4660d3f5dca3cc8de3bb5350f5dcebabd515c72c9114bc58d96e2e863106f0982c2632bbacf2fe5cf6a8df880c550f7008fd09227baff82d4eb031802fbe7d50f6174860c70fcd9f0356e34c0d45df66492dc309b260b7158adf678e2da66348ca84de3e721c6196e0c717f59cb802c6866defdd9032a4b7da82b816d9681e5eb9115fc2a572fbbe105f479ab339bfa5961aa1920346c9ae4185a74aa828da78a71e55876c657249e83f5812cfb055400da1db8bbb5ed3ce2ca4655b0c39b698ed7d235fb0ed4f29a7e8925cb873176efcd1c6981dd23865468c6e01ddf61fa3e40d6fed18d8e3dbd97a08c68bfb092e441e512d44089cf563509785dd58203949a1ca9b66a700db14060a760aa404e5e9f31eaac015f1527f6d760d8714c88040b87fc8a4d183230cfae35326947e28a7a37eefe1d77070f5232a0d67e278a45d649709a7398cbd43094c5001263671517f83e62e79fb75e6f9bc592fb3bbececa3f597dee71dda0fc909079ea49d81554d2fd79d1cf3cf25d1186efb83cf972b7426600d7d6eb6c48a5f0e26af640c733f3f771e0926e6b38b6f39d7882b0538dcf281d92a6bd361bb32e16f3988d6790fa0a45f549e983f4eb68ce5ff11647b37f8e4c444aae8bc0f7c49ce7215545a29215b55f37dc42aa6add6fd1fb45d9ae580434097e7a8686e23cdbdbf6f8b6b1e5579a7908bafd8878b004c7c94e045fdf2b94f8c1a75ccee7bfabd9bb6d0ea8a60dca61053636160c19f8f3fff3d0330fc95d20a1393629f33f281e5da80a5ff66aaa5eefcf495f8bf7e24744778841d7c633f01af2305a122ee093837998e87f060105ffbc083c0d71f68c2c63820d7a547d9af5618544efb9736af56736e73cb696f191c68970ea1deb587231c889672b3b5399b9b5e915e3c567474c3905ec5b6468da826f1a6438ec335da847db540a091ab311c6846f96a2f17befa2f29ea491a41d7630e42583ad1212e6c606dc258a49f756e2480f90775c04c5c533300e37f8bc7afe7b155fb95877252ce4a53f78491ebf9d8a4aa41da1848633816542901d56e66f126316c80efdaf4b457f9ce771edb012a0b3c27c717f5cb3cc99ffcc959a02289e30d5b1ff936320579c469bd55cba6e79a0c5f1bda59981b71840a8c1ca56863e91eb21fbaf84525d5f04e0f282d03bb56d6dc2352f163d8357b86bc6e4e621bb693db3565eb9ef5629af537874c1cb3459582463362dab3c6fed7e574ce9bffcc685b8eea61599292cc69860c4f9584818182f94d719dcc463e9a6f854405ca2deb3de29ffa1826f795b7e7ac2555c0ee576c75494cb832c59de8d9620927167bc136549b731ef79a39fbf8789831cc003a772fa00d4d699d089d47037e12e1c6eb8c20c5535225a33a1a787ba866ad481e9a4d689c83d75f1986405c82154e312ce8b3494ac5721b96193c025bb75b2cc974f9171297da058d2ed4f00d94e60737af29da660fc51fb9bb4d241e78c9d1815d7e3ea90aa541c4c512ab423ece93f9ff2f479f464b953b4171217b758b280c5d8acda32cced7bb0c92cd9b405afb3a8405602da914e1831fec5b6a291f90635afe82b9389a8b41d957f81be125de2f943b7cda9e873fcd74b446bacc00bdfcbe643053f6cc8162c0a98343242b489f59f7ebac016a7fbf620dafc15c8ecfe20b954153dba19eb81087673a1e847238864036e9a300239a00a5a03d8b39aae2bc201c04c477b1f2a37552670c06ea65551c5c88a42476d0d797af494b077737cb48050bd35f4980964b8b9b98bde84615e8fdca407230f5d15e97ae65d63a96f3d88518fde12d6a82881db5c8d4cd79e724312e88b394129de3569c5c99bf842a90f193c91fa55a82116e237c877dec2da6dc652cb33e33df47420c5238fb6ba5fd96cb77f0cf6c8a12be1a95186680d16a064d9b1a7c2461fdf5e0a512a5a3ed2f8dc0eeadb6c95a658aa1c2713fea473de51f65b13a40a2fe64e5227bc9248f59c2bd60dd2fc14918e333faab6e792ce2f0597be47cee70f5a8b788a50c9cd153bf24786aa80f631ad21926e3285f41c5125a15c12cc889112df0b1857020160122c2595ab3359bcab184ecb32f7cf8f38eea23f4f9135104629d8f1e8273c44f8afa129d3a74cf58ce494214629cd53b99a8489ddc5d339e317ce75dd6c5dbd098d811c56ec5f19c00fa00b5465e39f8f2022c71ab3ed0d5a24058c197719551985ab30a851390ab5e11420c521b1398bff0038d904e5879db37d60c623a0a82e191cd0b6bd20a9e956d41d5daef703bdedd6bd0e20fb096423dd39706e939e796aa8bdf071e44791d2e1ed4a81ffd018cb79c5b6bdfd6297cc6cd379845fd7ddfdb0b83d7b26c21e3edb58185e71472a79cb65322579bd5e0e7b1fe081dcae5447834d70459f8a96b341a26d8922a2b1412f95f3533e04b5f65be112cca03ca45ee0eca10adc7593c78c041281c880d879125e585e68f5c7fbf8686f245cd736ab5aadc57c032c637b753b49575acf4bbff46883382f408417438d7817097accae3fc54afc6015b84b3b05627d7c83c4627c87727bd24c4b4d96a08c64164ab8d4abe3fff5c3b09e8fd12498e3cc3627e799e4ef72a870cd89598d51ba396655b4de66e48997faa51d05d581c52f52852cffc9f89252f26d314d2fb8fcbce197f3a8f330339c2ec3c710710b74f0915da3bbb638b1f1a0cb0c176adc151da0ab52796d466b23e8a269c5b22b76fe7586cbc217621acc955a43571dc04f69deb50066cc587595cf0ca4e9a00a261ff2791ada8de04bcbbea249d2a7840bd8fd3ef98a248eacb7fea5318b2e207668e13ab4e5578c03315d44b478df5247d8afd0624d2a57adf85fd16d86ae54cca21f6c91d8cafb3b31e3f9c4e903c04f39d67c90560dd10b2d28c6ee937cae01e921c98ddd833a9b9247053110c0f29d2f35f8ea322a738636f17648b627db622a9cc891fc1d066d5fcabc168f1b492479b0578d0bd8de0298d4bb96a4351714a10a39de49d57ad66bd6b458ae0d799a19da54bf620c0e6979a95b61a83cd06e46d7d263d53d66f77557232983268f5fd01d10442af0c840ab09c6cc4ad77add6379eeaf98f7cdbd70fffcb035abae4efecdb7e6f63ed8acebd8449b3a910e5eb06b0ee6d80dd45026c9e6c2f978f813b2800386a4d7ad9d127d76c4286c1b2facccfd16e6a263ba3e2893ae5e42049d421e08a62ee9e9574a1f70f0add7b68344256592513cc15f4bc64c5a029f60d617c245c1c34d06c095b2d0a9647e65dadb33ea79e3e0ea62ce55347d24eaab7cf9fc33fd70c07363771f78a13d92941daf7970c97b43d2fbe3e789a52ae7bed64736e6ce59f95322d20f9d6dc00b5824a0ce9072dd051c66ac20d39bd953f567a831d75fa91fb4d49b200fc893489e60df95c2810f7fc57b7f6b7725ae600e1c2def6a943b8d111ff3e9a5ac80aa981fad8709e98ee1550005bb8f65dedffbfe3793abb407fc0470736574056302000359a33e8f3d0439eb7d60aa79255858269bc1011e4cd0d4aa753bc2793f9638fe70dda4a99191f08700047a8b66d9cf7a53bf70756013c8630419e3a0bf428158dd02ab6e16822f239df0a6f1b67b6e1335509a286b30c4b11a22dcea9f95d51307fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac0007fc04707365740121081271c10f0caf52a40e015e7d35966dbad39525a6c0691d4beeb3bfb22af5304d07fc047073657403210b85bd6dc21b4919f6ebda7ab86ac8122c793be3fad19e44455945ddec8b59e9f6010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001cb6f1101e2b960c9a2fe480eb88fc76c63e58b57445c78d88e04f740580a36d6956006ef12ba606aaca89796dad5ff7cb4c4c7f4e65a07fea8a2ce3b58b265d4b3220013a09ecf4e01023aabca5586d61ecd5d7f2bedceb8b18a8e41451c97a192098b196add06a8a6b619e1e731fd9ae2973741aff6358c1ad45cc873a2d497271e3a20873a6f701d4c44ef670c8c7a9793079d9bdfe956bdc02a52d1de8b2de58b0f7d309240999f13985fa8c98e57fe1bb75219ae6330e9495b523e891dba7885a5302817d68a9891ae0c2597d4d7833b91b073c4f9b27be1cf81ca1c2c1014c57a4affe7b402c0e0c1862bd17bc1d43428671a106c26cab61d5e4ffd1c01f6af1c6e97f7a25ae8aaa8d2c91c57881df52bd5f242b127ec7aed5880101caa01783884dfe943ec9764473323f59b27a204f34aa1fe7fd4433fa606608b0f253247d149e3e269ae5445e917390be83d5650c05859e3a817a6c7e561e2b12baf6d4ca4221df0b7f29fa134269139afd9cee5c7d60149dfa23031705c6a8b72d00d659d7a085de8330de2e5c168ee3eba2180a9319f5e8e0806dadaf0fffbc2df839571360b8cd32300504a527cf914da7a1e788261c9cca2872ebec5a17cad33b15a7a7427c200b8746761359194520f0da1d7ae03f26190d07cf92d515e04815f514c66a98997320a028ad24e83182f213d991accf19a8a59003a2ca666ca505c0d8349e2cb22887efb7db9e4a4e3e2d8da0d5f032603e03f48fb967fd018fc99c6eb72acee4178edeb48703903a89e9462a2d1f447234c3373fff8b205848c7a9d6e45ccc31eeeb0105ed3af1188fb847cf6f03a7f0a646fa325b672796168dbbd9d1d19b2f41685b18c3c96f1cfb7ecb1dea132e8815b62647820ac4b12597d8e737a01a970704b03ba5ae68f8d64a1810db10427fbff1d74cfac91561484cfc8d3b23f74ba0f37e7db2f942c58fb1dd30f6a50c57b5eae720c6ed69b0fb81a6e0260c53028c732a544391e319987a24548230378f8f1ddf65a2d654c7b26951d5c6546cc8fda6003228e8913c9e3c5adf7b7b72f4ff5c4aedba6096097f9a4b58ea1e060609e8d1f0fb0e5dd905b29fec72b118d40c5f599a63f9a37041742a7f1af3ef951c31833621842ec212f9fc5cd3e8c08278ea192f8032ade447d2f35ab59810aff371f598b7dd57b3cde2ad854ecad0c786150748ac241ecd67cb868663a6fcbe9d68c3dc221d4fcec9b0ad89c337c1e10b91a38ab1357f260ca3a084da536e56262973e6c6cca838601fb2f335811375aed78295c4b17d3798d39d4cbf6254ce57680a102907e5c08b5c7ec0a1e73bf3d7b8babdc6156c6ca3f09c0423d6716ff4e6ee0338cfd778158202b5ffb60b74558dc6d0be9b5aed6892c4e0ad3e20de5b604b2b010af09ceaba7c0fba5a7fed39d31cb2769909a251ba5b0668330f734728f5c6786a8f1a35df77f3d739eec71d9268fb2a494a14bf7ab91c075023e76856d1745f5813d83878822934d0b4cc0538048c3f96cad7aef2bbc49bab139915dd4998ed3c6701973eb7913530b14c688f0b344ca9cb990de2a9b12fa7ad8b292234a33428b4d16813693964365bd412fb936c1461fdf8dfb0bba31202685f29addf95fc65f841e97042bc5d82f103e41017c6ac91d3d266e12db2dc195ac4f6d4353924270c7144cd96dcd07b9612e2bf1e0f7fc46ef83690648395c575a13c2b2df0fa04f740340e6b116b0866a401de22f68fa3f621d75b9f5f625cd5d5d7e12a5b0ff795749d742eb2648ddf068a451059390da566b3de84f9d528b2663de7dcc562eb014071e8277a054783d322fa67b9e5261b87e9c354ff58fc52bf9df404139311d6bf9650658fc94835a6220ca02a4bfbf46b2af4f30b1ba681c0de7c134d98dd52eb1e937c191cc9557aa73a343b99ae0b8954a3e929174984b574da75e90a9b71af1215317b04e4090770ab596091fc05c82235a324f86280f7fa081360ac758c1980c6a6763453e6b344611e46b05760941f9517ceb298ed7a2d6f96b11f5719ed0dec803c511dadb8d056d4ca06ca0ad090558a4fbf3a886f3ea9c33e1bb4bb5ddef4798cdfb384bea75a3794c42a53af60f12c95fe9b38d7f6a5d914ef100508091fc84756b596b9ba08d1dc42a7e253435b5481d1470ef00a1172cb036b5bdfaccaee02b15d099da17f9753846226325232e71ed9b48f57697bb3d1db75ed214310e6e3608ded6f188e37b21b96eefaa396db0df05a86416fe64aa950eea87e7af4407c828a8822b17be661269c9f9e365cdc79d20503e2d5e575c5387fa961206118dd379834aade7727a1b2477a24f05f6c2ba3156fe7f5b5ba6d7487b1a124f38e3ed3cda92a8edf05f28e3d699f0c12de9cfeb30ec8d4cd253287a6d3f596db0c06006a531e80083f5b41ee26c05d529e0a59ec151b4a9260a7ea8c1a175ca41b59f464adc122f448fc43e90dfa7b88f81caa7a84e3d6d4dbb85e5828b6ae7455dc2c87c8d9c706af2e62763675851b4ca449c9c0f95d953ce53c5327ba8981321a1cbfb76bafac7fa17c99567725d8e0ac288f3ccd3bad666e515156517281c97a3dbfbd5f345f8eb80bb3c4230301a38b7c920d74eb910d380f884a683f7d3e2738fabf9646138e8a32c35e43786e67925508e4cc7b1e7a36abdf6a497077704e216f1e730c20ecfcddfbdf2484d8eb0ef9b7478f77063fa90b8afbcd019d1a584df58c537b40b193f246598ae4c53958a947dd3916b14a5a4227f01bf543a8c5d6ab8eaefdfb959c8715b756a9c797fe39229dc56a86364cb367fa37e16e96cf8dca1fdc8b6a46ce88e3d29c75b6cc718ca8c28e9e1ae991b28c286107c1dced150814d6369cc8003b2976018941df7fb8eeb68be57adcf8a0e813d2fcd16dc390ce17dd0a91dd674d766d21b5de7f4678a548d75cc3de7d099b418fbdb66b2a2b12a56b1dd8b3f84a7b45e36db9bb63b3ef9fdadebc21c6a75364173925ffc69d481024e49076dca105795e7a64a3c82011889aacf0114a1bd31414e288cbb63eb47d399d0e025a54f11670c8ad4a793d0e7ebd3b0d8eb30b87cf62b131c61a4c55d2e56e47ae99fc543c57a1877ce44dac4c6f9fd99552701ade43858e0b4020230cb4d42d1990bfb509471a5c1c5557c29c00072c5cbbc056de6d465ea2ba2f4a1a5dd604dbf998e834b9200c59fdf90bec38af9218e47ea5ed5512cf8b0146126a15d49bf915eb893ad1ef83d8faf6c93f944ebce3704f930b6f69a1afe767ac2c9fdf092c804c7372ae1a64bca3a3b5a31f2ad430ba9e61dab3daa3be90a538cf0fba00796de511cddb5a594f14aa6d215bd0be19c0ca5f043403b7dc56c87b092d9436eb79509c3dbe367c2fcbc2b09f9818cf5a55d5ee0e477888166bbfece661b62812ffed3e4167ecc81dba148f89a8f2e7c27424a2ee091ac487e68fbbf9798e8caf46b35de8dde66a7cad6dc98a426ea7b8b930cf2d7d71fe71066dbe51e8a1c7151e97fecbeedef3d6f8e01cd5576dd58097b46153f9c3bcecf30bc82b4cdfb1bbfa826c7c5b217a023e4da02a35d0947b2c4d24d50a292e4c70fe854a420c54490d4850ee8c372756671fe130532f89878a64977ead60bf604b73859ae64ed62536423bb51b30c6fedbc819fdae05cb64b87b153f4252b832d6b866100a7b307d1e705643f96f0724858e6211802b2ce706d5424b99315db90c7d74fac66951251f6cb739ea008f839c7f62318f795337ca4ff05886a2640819873ae00b933081b64da1101d1b17451357921a2f4d4dc86c92a5eb346fd6cd3a63315768b94b90a15162aec91cea706b9221330db154d1fd71acac90be47055c725bce38710f1b4b4144f331cfa9fe15ebf6535747669e4aa1f0d72092ef395f16a4ec9014029b5c9d1b4bed9ec81a7568f8f1c87e0ce0f4ef9cf49e3fe4960b0b7904614772c63147f3c5463fffed182919c4973a8256346116be40b10a38cdea5bad5878760daaeda57476e86ec65e58030bc8ff99ebf017e9bf6383f981edc83b538e2bf4bb573637e6f4717d74a3ac71f5e151259b29c1b7226e3a8ab176baa2f27e3e385cd48c6f072bb6e8e9c92e35d7ff51177f4e3553555d967c04befc1847003a8592738c82eef231ce3d372372a19a01b27dc7916f986ff3f3ea8872d4986bc1ca649a92924c8f582ae2b44028e711e955d2563c33db3b7734aa246de553dab2c5268538f7c2b6dbe9a70657e2a26e52f5d216dfa9aa8e197a227c86a7d3b468880a721b804a0c51af1592043eee7fe3657b40c1832a858cfb4e037d208ee69c4fd697b929383a971b2a0864544505af2267e334db5f3f3f4ed88e2f6f2b3d7b96016ff92a120556e4d1e50440943893b00508c6242bcc41b6d06dc29ba20564b42257b9fa1b5f4f453e94e72501d31e8947e09a38261020400db4b8cf675b1854639a962a57905cbbee14ea0daa9bd281fd635c8f900fcabdcbcfb140f4f24b47731782ca899284fadfc9d0d6eff77045792e139afad34c7672bacfa22d85fcc05652178cc169bcf52ee3cef281d99935abf9c9910caa7994cfe33b9319d9854aa6e2590a86297f23b0cada7251a6ee1b2f3d2cb5a193cae8768d92f556994e416d4bcf5bba3a295d9e2215291237df74e3c493189bc5a27b3fec3e1a1329c6c6c75e0802b40fc74776476dd2d9e3453ec1709a8a2d162a936d9fe7dd4b6f7abdadfa429aed4cbd5896cfb24a2d91f1cee781d0ed73cf7306d6f9545fd3346c2232b8799553357a5a531d6085d04af5f183019dfd3483baf23b0ba5a6b58bba4b7a1eb0a32626bebb5cc0c4dad45c55d135be8b0a4dee787ed48b90a2a3fc120a753b52290c27ad0eb32b668a9540986ca0256c1676debc4d19b1b80bedd81e505154264a199ef1a54e1fff1b3589fbb6b2d87a1e04e67066571b68fe04f030d473f8d135585f8b7be91f0ae1a4fa2f44008c0f727f6aba9c5c60c3a9ff22911e267ffa2a5d1c71ff25f96ad257be29a2ec641e2055d785765cadd0c2fe513c44154e74f4b8cc4b24d9ee2f6cfe245549713f9dada1935247a2ac7ccc13c4a5c00c6ffe7ca33c0cde4c75c4fe2ea041a965e4c7385ebfdbc348da8c4216a02fa829892c827adbcbb87745120667cdc5a4aef28b190a54b422df45b8547c447765838dbf9f05de338ab672706b59b2f0644d6735d9316e64a1a15d3dfad893bb1bbcbe1b574a0b8ef5265e195a929148cc5e97c8bfb032d4528b523b6a6b29209428f38115cd102e3b4e268333e490140964278238e7ea9638ac34559e05300dad0c3f18e9228474cd3a7186102967c33fc14f086b4f1ec3957d87f2609d140dbb9e7ff793101d1cb90d004565c6a32924715b1bcab483e6389e2e824054edef350f328870f16412aca0fee39edcbd02a6a667aaaeabb6654c4762c639a26286a3c1730ab75defcd9451b4377f6acdc3b905684658c0844d904c47d313d85eb54963fd71a9a76dc8e345e479004f00e446b886ec41cf7bbb9311463e877aa4e357a0dd0b185a5cf12244296f5f8568e84cf6ac3b6125db6897e4e7c183cafc04f61b3263456f61a7880b446e3cffe986c3bf027c7deba490ec8544d2627e6596ef8f8a5cb577796e7c36ffc4f4346263b5d86ae1d7b8d04709367349d590047a8bfb34fbf6481adce60eddfdd1e148ab83874d70b5303fa0ce60c0ba7a047a477dc4c513d2218b0bb2bdf9b60be9a39e928976464e333ce0cb19aa21fda1c6851c6db9d5bbc6552e080f8e448637af711fed92e72c8d8530187de94603377dc387041a9eb42ac70b3923b9828de33bb337d55409cb419bf4089cb2bec79ffc3afc6dcc3cb82bc903d956d28e307fc0470736574056302000318eb22887126df9062243038440ef3fca2aa024fff8739db4930b314822b00cab172e83c33b7e5b959b0c3f27c714e447120833ef69bd634d1e011fc3c2585beaa882a29c2dabddfd31a48c0255d1ab57c6796aa4625a546a02cef51a9ee2e8007fc047073657407210302e71fc2fff37aeb6d2e2a7b7f2308d4ab7d4bf0a4cf9be7c06e89a66442b48300010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210970cb1dff96101101e24bed1a66fb0794d2fcb26aba11e7f2393edc1534df8a9607fc047073657403210b9991881df2ec384ff5616f6c03d45cf033ee64536297c3557f9fffec716c1fbe0104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e10603300000000000000018b6d2d00790f618171a9e8eb6051fc14dc27c502a54f5ccecacb4bcb350581a8f4b1a887a1e58865a21f51ef5098400c115cca84f489637718d8c3ca4350ad677374d40d2b64fe949ca34bd4ba845a87c7693421b70aa8d852e021aee329762883b9820bc0a47ea2fc6a8411ef773703632849094e51c73997c67f3e922d2801b6abc445375cd963a62c2bb28d733bf9274fe503081b51a56023a94200743e7d38865c190331449d19bf3d4eb7bf0b2a9b90696484aab906b9470e10946744838fc428f88461864d6601e93f10909e049a315fcc0ea7f4d71507fe5ed19b9ac2f55b0d3902b153ee27da9c55ab66debfb5ca440dfbb1a600cd8875049c4c13bbf242d26b10035002c7859f9c3ea631d955914adfa0817e4801e85b3f250cd9e7523db62c4ecb17a49028a02a1b61eb96a410643f1fec0ac664d96f99a1db4ac335c2bfec2946707c3c779a56373db197039af9a903e833af6f51de5cf8fc667dbf5416845d415dc98641e0984ebdfab88bbcdf305f605d36f7a472a516206d7ec722251e269800a00e8adb8f2ce161395c1c6ad4b406e1fda77bc7f0af07ea075011cee6cc5e7fd1b6e96e321171ca7d28a35595ddf0b0c831d28a88d30c7391c5832d90f906539aa49185fc6c0864e2d10b21160991fc19a1d084006d03fe3fb6f571f1ffd9f06ffbc0c076689373f9c2f8655758f7f44618345a6d5f8edae46e73a09c38157d5c39dd51a47756ea761e6320d6a91a1bb22d8dd35e4e7806b0242bcc4cae8720a953c6f933c0ee3216513cce6742a2cb4bf44553d8eaf175471dbc0f71c7c245fe99ab4240ccac637a16c82f0c60586f00d83ff852af48a239289d8b70a2638b0aff02572d6d2d68e22b87ba93f3db51bb27825265607ba4b6e9a194c7351f220b9e715a23237c40024fb7cfedaf7c8e0a1c4c6aebef8841fcf2609a3dd7f44dfd8895077df41f10790372eac8adff5ea7eeb28e371b4700d5044b41fd358dc4ba29158213e0f93711026fac8abfbe7cd80a939477ce545bc91cd1d32e8f2268563b0fe3e80855777d51cdf4835050a557d3c7b7f6905ba744ae5450d22837d2c2fa0c0755934654a78601a1fe236f11b6d72f368880ed938ff4a2e8d82c118493a1bb9a9ee95cf329f2d175d467aacc2c6cd73ed59ce64d508604db77942f9b7f3b0f86d913d3e1b489d2190a6da1ed997ab1eee356c885270e4e0192acc9c2b8702107c96aed654318bbb7724b913808dd2cfbbf6ace8db9c4cbf26f2c90a76eb967e365c58855b83550819cb5b28ea5e6ec1ea153ad3ee5e6292a174f7cab1b39e852194a6926bdc4d42326e17998cc057f614e91f6acab5a5bbedd93d9a13dc61977aa2accaf35370a3f1d3819c43c9430d0e767e92de96bb225007a7b6576ed7c4f05c984ce2e437d3b7f7f50c270caf90f8e5dbecb992be2972ef8d79c7674e025ee06b1302bcbd57fe5be9d9b4e38f17d9dca898ef3d71918550fd77a15c7aa2b66ee1a2f38b81040f3d6ec6693f54cc3fe39515275849e9e24b0af3e81705dea95e8f1bb1b4665cfdeb0630a5542a2857f2b58c36761d743299d77872d6894302123f4347702572f04d9876191d771e87655c071fbd29338eef0f9acb0a8ca3f0327ead8e875bc2e7ba38f249e6eda1fb74162e972ff523d20c6638b93297d406e9b2264187c06d0a78203d771f2525227d029b27b23192f747492b9774b12b039729ef75d11ce8d701e56fbb202f3e4bd68686f096f13680456529e5f132915595e0e0b4061b3014219f1fbef4d7403dbfcac01c701b7727c2463cb838d427e07706400be4fdd9140a800e47e7ac15a7a8a897187a38a0080726349d8b7566252076b1ae1366496b50e9a6d236837ffa0c4c3e61bb409a7d9faf8662109ef7213007a76a6d94cb79ad07183a33a4cdedd78896278a3b5531ec0efda9d77076d85a63536b426a6b58c3d0e8a46faf0fdf678e4964272e8410b346cc753edb94a61a2f309f8e753ff332f5b15215e0a20ef32e6a6faa044a431764e008e66b4af820bb6afe4d8dc1679219fe7614482517fdc523d4d7ce2bad9d59f7b9aed89b813e5b36b58a7c668e53181c0e1da45e4ba3851b46de8e056d63e440c471fbe23fbffc31ece7cd20658784f2d2fca3f730a1f8a90ea6995ccb490fca475b1441e38468433d1423c1d83a20b04f1216aff13c8e035c2ed389695c2bb0bedadc38c8a6222d687f0235bda3566c0865774bb6098acd674ff9091db1a6c4f0c2955c1759730b361f310d956f892089f500eae0084022e610ca4e758ce2c680d213bd1b5e00a6c991976e93189159bb98a1e4eff14f681d47694060126c0852ad52489c15d7302d82c66aa830208a9fd13da87a2aac3e44dddae632f2e4d56dc768ee6b3622c61e59aee27fee5aa0bfa9c56402ae3525f00634b11381d0b9637ac699e4c4b225c32bef9dc563e87cfc33bf07450c2cdd015bbd94df63697cdd9b6cf4169cfe1f626c126dbb588c57542662d02eeed561946ce94b46571f72ca3cf7fe52a8a6ea24fa216f01655dadbeb0f74e383e522da69db64b368cb155c2ba4c4fc8aea8745b1081223317003f0cd7ae620fc7d9a6c9c4f39a237d5d9d7f3e756c77daeccbd5d06ed28ac2f089db5449340872bc444aa4aecf6552621b84e4fabfd6baf0e1b61cab00e5c2050bfa38899e9840e2dac55c7d5e7105f65dc3afe3c35dd3e8ebb1a013d65fb0b9d76665f3c4eff5b766fbb0c03cc10c411987ef516405296437a91a67d7398d788e30f55bc1e6236b317784504c53800cc07f4eaf78bac03a025a7943573edcc67db3d5d5281f85ee993238fee3580cb846efae33b45ee2ee1ad640b1d068302504521269a31a166435e8fd964d2e15048f299a95ec1cbeb0c8d5d119e24670112d61d56ea120d7bc30fcd924fc7b812404ac45798af3fb590570a4d7a3f41639b879d1bdf2c72c979105460892fb41570cffee716679eb7b4124be188e28ca4c68d206c1cc9d49cd7489d63372853dbe83f874579238ecdd28c0dc265871d6dccf782b571f1004702121e8b15c9d8af9e6812dbbe742812c7e7cd1dafbdbe3d189f618936e270855700be8f6a7b528f271a936a2cae204b44d909ae3f6a8bcbfcda44b430397b1c96187e5a8362afe92bb9afb0a0a482cb6c8cac39a0fb1fe0034f8a965a3be425b4b34f67ff38a8ab30f8219a8933539c1d06d9b2997b6de743c568caea8b269642b8503b546c9e136d0e47775c8fef45d4489e6b4747c6accd6fad3d34fdd6cbafe07264e7ae1e025306c97d77a130093cc8d5ab8e4abe095787183a9084c569168011766b47dade4e3e1353a78f9f3464d8237b7de02da10c7a7b8951bafbaa898003ad9de997c89d8507393c6fb782b8f41aa99d5c92d5ed93e02a2e7550d42f178739898406badb6da850e305c10063b1a687a2b321a1f867ddfc7949d9764493af4f9681137101f87ec3c3733c0ee23a758a69dd5dbfccd20e0e7cc8543c213688ef9cc85bf9c539d3b6758e24befb3c1b617b7d59a17e915bb985df8229429430dd3057a8225d22afc2775e352a2d7c2f2f46786d4e6e984fb35ac6d7e1b57da82a6d1470895e56521c88c166f8124a4f0c5ada7d5e43174e319c21b9416735858ab50958def63c9a38e853d28a0f47b8e601beb0cdfb30d87070003f957ae347d5b03e80890311ded8018de0227c430f29ff20f0d0d1331dd5f22cff547847c0a26c1fdc272cd234b668823635f68e0797bf68fb1e531a423b1fae9b056fb8c0589908cd2774a7bea8da465248a438a22919d35e0ed8c5020f06824aa856c1a75e0d50d8e9c2dca471d249a97e8e8055d0927432577ef07e6658aa6ab3e9f5f4f50848b12dcdcd9594dae732864f9c6253cccf39922b5f1f8e16458a0c11db397017821de73a331400a76c2a5a29c7661405e9f244a92862a8ca13bc86a78a36744e52019c067573574f75e01b21c36e19a714e9cc0860e9df8e659cefab57002dc2b3d1a2918dc20ff25bc0d87023813abcbbe29defa514bd71fedf314a140508c7e8dd4ace82d56cfd6307fc8299a65c8b3b0719881dc06070d670729902ebfa1dc0b88050e5824cc186454ec2727d0fb2f95eb677f949375a0a31661c7f2bc452426a052b160b0654bffae35766a5317b845582176f1ec52e5bb7d814651781e268cfaefcf6da560810d84343dab8a8b2f2f7976334043498f529d75f9dec893bafdde0ebf003ea7d43f22d8e4eb3afea7be8bd22a9adb9334db2d6b05b8bfe72a96ca2c5ecc925333e4076bf5b7d9ed519ac3eb87c73d0c8121b1034424991561eccb669807a722bcd43141915c9db90f7a8a8e732054970645da1845b988f21cd5d2a89abd8e14c0e6532a3db89e43571b795d6f475b11c16cd7253a4538f4e73d0e3791e0c8f3e51ce3d9645062f249549d9165185fe6920659fe72ae01f69c6d5cef5a01cbbce0fcfd671e1a0aac35d541210a723d2fde91f37c130657d8825662bc46ca7780e07422ce2e7e5cbc1b15ad29b8473ffb832f45c480e960d620267561b3e3112c54359459c3f0235eb6eb2720dd5cf65f88267e099ae87ec7e35b3a915f18a4ab67583ccb4d907637812d797dfa51acc7b5cb13ab58934217a562b00a4a3d030bd9d3565a47c95396034bd65d39d39a6e7795f13e5031d148db16eddba996e1e70730eee02c47bd8b5c42812a12a2db5490fc3ad50d7d03c72c0e933ed8b43f8e34124e272cb39e06e628f18acfe4488dcced67a2c47008801e8d2db5dc7f7556d38020d53512993f3efeb4b07fd1e7b631deeeda74983011ca401ec7b86eb2a7a4d341f97337d37ada0dbbe124fe481ecac3e9b8e8f3b8b90ccf81ec028f2ee4e62934abcfcc2647966f6eea6563a0fc8fc75348f5fb3d2390db24d49858bbca822217fa81d240cacb7b2f6c2e4bad8a7a112b83a5d35ad68ec1cd599afee41fd4e860097f33afbc2cd790b2933f1194549c5aa3fe5c651a456c8ba7c8fa5ee5492233c21a80bd9216fcfccc03ecb76af3849711a0f69d5a261ce94484c30f4b74ca6cb4d7d5c4dcc0be1f0390c208e1e7e863700c6dce7ea5ab3831c00e586094a6a1f3b32dfbbf99a7581f90001dd558738804d0663a59d77407b6ab1ef3a82c156bc58d5a694a365b300a90ebbcddc49bbe5ba63c88e7a6e0faf5364ea17cabc602ddbf87a4c2f55b068ef296be5bb66befc1e37ad77f8e97c08f02d17dcdeb47959b0f46c2ae2c3d99a948f2a52c5793d53fe57876c38336a74786042abafb63c2154096eaed98598aed76da5a17ae179e79f848b237bdd6db63e5fbe77ee28b2bdcae462905ce1827800407317c2a42fc0dc234b2183db9097c0fae23da91aca6b1b7894537b0dc8524536573a34ef68596021cba863ece0de4a068f806d888aa03ed88ad92f375860f8885c5533c637a7a330c24aa0357f007ac3678e59cb1f6aa7c6979e15fd107a98ab42a635a3c3e70b58a19ec73b4bdc482000c3dfb4af84012ea3957d3d30b80857d9e06a2e677c84e5d9041ad4bf22afbdf0351f6d5c7a7a2ada3dd5ab4e48e37d51e5fad56cf9963715438c5f04b9772773893a59e2e46c6b7e19e9001650b66b469f4b1c4d188b286d5ce8b21269179e772147c7cb09eaee9b9de684ffc33068e5d346e79b710d82fd1278aee64ddd4ed37a944e6c745217c6a626444aa95b565c1f68a12cd2b86a61927896884bd5a76a9df4f6fe548bc16444272ec1e856334d64e0f32ba90daa77085b0683e3e010abf571dc564fc703a12998c72b6712386cfa4ccc802c850a3604bb0b2d5cd2eb6e788d475ff198f94a220c925a32ab6d69b037f1b9f0f4ce1d1b89cc0d07fc047073657405630200033fb971149dc9881cf31b7bd90de445f0ada69611016c5fde4af5bffe2b40a1a27d651a1d2127b0a95539b18fbb835f5145c1c4c7492866c6bd08ba260abb300720d2d42b729b72c6166f9ae0e4ac09a0f6851ca65444bed00b72b7f12befbbd007fc047073657407210252a4b012198c2131d70498b5939c401c01eb1178dfd58123b55766b03f008f7b00")); - tests.insert(String::from("blinded_signed") , String::from("70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c22020334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe7473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b220203df8f51c053ba0dfb443cce9793b6dc3339ffb0ce97af4792dade3aae1eb890f6473044022017c696503f5e1539fe5cb8dd05f793bd3b6e39f193028a7299a80c94c817a02d022007889009088f46cd9d9f4d137815704170410f53d503b68c1e020292a85b93fa01010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc0470736574012108a337e7e0ecf24c121a17193623254c277a306e9fd39cd5aaf8b7d374f4011c6507fc047073657403210b8e11e3b8904ac80caeb16af1c93053f8a11a963269bcefa96823d75b8640ae940104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001efdfbc0022a6437ec10c672d76c513868f403f6b9706e09733d6624e3cda831c2c199dd4c5763054a1c219e079e8cf3ce0c00dc2f16516972e1e64d576adfd9f5d778675c8a3172450a4cc82d6e6c59f2b16dffddc902d0aaa647b750d6224cafca7239a4fa81219cf2ee89741ffc5b7dd7e47d332ca931cffb1d1d432935a6013207629118c965b7a5102e62c43ca9d06bca191307a476738548536809ff6b01c6b5b25d76ff2f67d99e20fdf7d2eff6fc248186d21d054196023c5e4f572ccf0f3aad8728c46f2ff6756ea39de46028610a3d26cd42978b09e0e29e0a8aa46e4fd39d28d028592560264cf1a794c27f6c95d382f486dfe900a81d9d92935c7e0e6306549b3e49b1f60182512ccb994338c3541a2956139b2ccb3dd156853105abf5fb394cb2c45915dfd4106c7472dc5d360ab5bca408203a3fef58b4dd33b0c11c367dde2f19c8af7682be067244bf49a2b8cd4685f5481cc31ba27fe2f3d7b7a353be9b41e4eee2342fd70b8408c91951c71c75dde8fbc03e3f28e6d3d3b41e0e963d3ba0c25b2eb50560c21221950b0699d2615f0128e6cb7fa1b04ac1a046e569a7e87df98c14360b8ffc43db5e17548c7ea5056f84ffd14f4cdfc68a4f10e9b391cfa63eef2c2d623e7cdcdfae2fc4d63496d81462174ff360809b7e3b4305979d9cb8e9ad5b0f012494d31ce51ee6489555b09dddb16641ed9e2534fc34db99d2a4fa736eeabacf2f8cdca97f9e84c964277c6f30f1af7fe2b51b39b487d56ebaf593a3f98e811cb09849c5b445d5b7c9ba37807bd0189c8bdb2709fa70c230f9aba41dd3c62384aea6e1ca098ffec26367aa65a09459fca074d1da0365cf7fc2d8310ae099b838ca78e62cee10f95ec549faac1ff0f8236fb8cf2c0f6654e471d3950ef45e0159c44f9e343d05b3af59b939cf76090d040376407c41661eeda7d2cb61cad0088a286948787dae0cc5abdcb97f7f42026c65a13e1df1357c25d376955942adc858e73876e1d8812969055d55decac9a689dcd11dffe5cf6e06088b93a11e153ffed104266bba472cebffb2b0cfc8ef132309bd7836071d3b6ed459a5950c64cccf230015c98f9210f2d57b7f3a07c382f3df09f055c88e1f312db0d60d471afdc0b780d319a6229babd8f45edecff8d1073fa850f755219a3ea14e7234cbc7590c60eba0ba0cc1afde6ce91c8e8835b1ca809926b3e7d8d7a0941425e5f08e884f12693eeea1b3651f53da90972aaa37d426f37db3edae4285db114cbad5964c269e03b15358ad2a7242e0af538a594fc779ec3c43c3d94fab2028310c6d0acf3efdf0acf028ee757c5c02bb5b8b691aa5eed1a62acbabd0d61faa478cdcd54c6db2cec6144d8d1185115097a7da79c16ad3118d12e36dbcb7a70b0ddb27bddfcb1c6e5426b7e411f607d22c3ac2b8d3e41f55faf5e2105bf3b943846cc4c33edc64f902c1eeda09c8110d4f3ed0a5e511156a3e368f02161b92126abf649341ddb8ed03d1d41b91fc34548c6d94dfb47c088ef27a3cbfe1c9cb05f2ab2f18b8746394c8080c4cd92e818e46f861614ab870cb7ae3446e376793f3a6568a2ccfc2ab0ed0365567671436fee6cf427b6410a046d80b9d88f094924ad370da363e8eb70355b711687e92d88a08ed811ff241c7a6dbbad9dcfc18e6a42493483b938e36c1edd2a1c6e078a17c5d145c9c058b4dd69afc44c345f1c88afb95c1deb5c4994161ba25783165d43b9e50a2d8333a8037cec2ae809a3dbe026d6ba40d60badd05bce73b0f9f36966c30b9c0cb5776544c1182024a96e746a3b01f9db10b45aaffd3b055b02b40bccd41e57c10719bedb0fba99a0f6b0868b186fca0397ab8c219f33190f81e4cce2fbcbc0975c394919c98fdfd7e25a33e5f31fefd06c8dc409cbd3e743f0f48dc90abe45b2e68948436caa37fe9932a77b7e0fe0819d8283964b0eee2249d9190f3eb0bb8178e10a287be1059f35cc1a153dda14def65f3c49cdc5186da86bd3e965446f914e3c9b4cbfcfd2c379f306c5ef8844c4fd398b3c6f96601e90d2dc8810875663939f63abe3ee2e1c8a9c2c2010a01d0dcaebb556a7c98421f8e6465cb0434c07dcea9db1a142f9684e50b06c545785f0dee4def1257e4bb22d87a2b37ca9eb53081eb8f1ea0439c4575abac435868a36552df569ccc63477594ccf7eadfed6adbb8e81800a2e2fdd7effdd1e2f09cf76c9e780f6f8eb8408a3fcc06cb8bcd28db7a37edb0232a6f0e509c684318f179d0c91a97718ce3956c266790361ea3a1bf70cdb8a2f2a59b06dee18075745c7302db9b13a452c188c5624964af2d5d4bbb1138dec59df5dfb077a0f62ac4db3de81f54365f2a4a6dee63a6092b4660d3f5dca3cc8de3bb5350f5dcebabd515c72c9114bc58d96e2e863106f0982c2632bbacf2fe5cf6a8df880c550f7008fd09227baff82d4eb031802fbe7d50f6174860c70fcd9f0356e34c0d45df66492dc309b260b7158adf678e2da66348ca84de3e721c6196e0c717f59cb802c6866defdd9032a4b7da82b816d9681e5eb9115fc2a572fbbe105f479ab339bfa5961aa1920346c9ae4185a74aa828da78a71e55876c657249e83f5812cfb055400da1db8bbb5ed3ce2ca4655b0c39b698ed7d235fb0ed4f29a7e8925cb873176efcd1c6981dd23865468c6e01ddf61fa3e40d6fed18d8e3dbd97a08c68bfb092e441e512d44089cf563509785dd58203949a1ca9b66a700db14060a760aa404e5e9f31eaac015f1527f6d760d8714c88040b87fc8a4d183230cfae35326947e28a7a37eefe1d77070f5232a0d67e278a45d649709a7398cbd43094c5001263671517f83e62e79fb75e6f9bc592fb3bbececa3f597dee71dda0fc909079ea49d81554d2fd79d1cf3cf25d1186efb83cf972b7426600d7d6eb6c48a5f0e26af640c733f3f771e0926e6b38b6f39d7882b0538dcf281d92a6bd361bb32e16f3988d6790fa0a45f549e983f4eb68ce5ff11647b37f8e4c444aae8bc0f7c49ce7215545a29215b55f37dc42aa6add6fd1fb45d9ae580434097e7a8686e23cdbdbf6f8b6b1e5579a7908bafd8878b004c7c94e045fdf2b94f8c1a75ccee7bfabd9bb6d0ea8a60dca61053636160c19f8f3fff3d0330fc95d20a1393629f33f281e5da80a5ff66aaa5eefcf495f8bf7e24744778841d7c633f01af2305a122ee093837998e87f060105ffbc083c0d71f68c2c63820d7a547d9af5618544efb9736af56736e73cb696f191c68970ea1deb587231c889672b3b5399b9b5e915e3c567474c3905ec5b6468da826f1a6438ec335da847db540a091ab311c6846f96a2f17befa2f29ea491a41d7630e42583ad1212e6c606dc258a49f756e2480f90775c04c5c533300e37f8bc7afe7b155fb95877252ce4a53f78491ebf9d8a4aa41da1848633816542901d56e66f126316c80efdaf4b457f9ce771edb012a0b3c27c717f5cb3cc99ffcc959a02289e30d5b1ff936320579c469bd55cba6e79a0c5f1bda59981b71840a8c1ca56863e91eb21fbaf84525d5f04e0f282d03bb56d6dc2352f163d8357b86bc6e4e621bb693db3565eb9ef5629af537874c1cb3459582463362dab3c6fed7e574ce9bffcc685b8eea61599292cc69860c4f9584818182f94d719dcc463e9a6f854405ca2deb3de29ffa1826f795b7e7ac2555c0ee576c75494cb832c59de8d9620927167bc136549b731ef79a39fbf8789831cc003a772fa00d4d699d089d47037e12e1c6eb8c20c5535225a33a1a787ba866ad481e9a4d689c83d75f1986405c82154e312ce8b3494ac5721b96193c025bb75b2cc974f9171297da058d2ed4f00d94e60737af29da660fc51fb9bb4d241e78c9d1815d7e3ea90aa541c4c512ab423ece93f9ff2f479f464b953b4171217b758b280c5d8acda32cced7bb0c92cd9b405afb3a8405602da914e1831fec5b6a291f90635afe82b9389a8b41d957f81be125de2f943b7cda9e873fcd74b446bacc00bdfcbe643053f6cc8162c0a98343242b489f59f7ebac016a7fbf620dafc15c8ecfe20b954153dba19eb81087673a1e847238864036e9a300239a00a5a03d8b39aae2bc201c04c477b1f2a37552670c06ea65551c5c88a42476d0d797af494b077737cb48050bd35f4980964b8b9b98bde84615e8fdca407230f5d15e97ae65d63a96f3d88518fde12d6a82881db5c8d4cd79e724312e88b394129de3569c5c99bf842a90f193c91fa55a82116e237c877dec2da6dc652cb33e33df47420c5238fb6ba5fd96cb77f0cf6c8a12be1a95186680d16a064d9b1a7c2461fdf5e0a512a5a3ed2f8dc0eeadb6c95a658aa1c2713fea473de51f65b13a40a2fe64e5227bc9248f59c2bd60dd2fc14918e333faab6e792ce2f0597be47cee70f5a8b788a50c9cd153bf24786aa80f631ad21926e3285f41c5125a15c12cc889112df0b1857020160122c2595ab3359bcab184ecb32f7cf8f38eea23f4f9135104629d8f1e8273c44f8afa129d3a74cf58ce494214629cd53b99a8489ddc5d339e317ce75dd6c5dbd098d811c56ec5f19c00fa00b5465e39f8f2022c71ab3ed0d5a24058c197719551985ab30a851390ab5e11420c521b1398bff0038d904e5879db37d60c623a0a82e191cd0b6bd20a9e956d41d5daef703bdedd6bd0e20fb096423dd39706e939e796aa8bdf071e44791d2e1ed4a81ffd018cb79c5b6bdfd6297cc6cd379845fd7ddfdb0b83d7b26c21e3edb58185e71472a79cb65322579bd5e0e7b1fe081dcae5447834d70459f8a96b341a26d8922a2b1412f95f3533e04b5f65be112cca03ca45ee0eca10adc7593c78c041281c880d879125e585e68f5c7fbf8686f245cd736ab5aadc57c032c637b753b49575acf4bbff46883382f408417438d7817097accae3fc54afc6015b84b3b05627d7c83c4627c87727bd24c4b4d96a08c64164ab8d4abe3fff5c3b09e8fd12498e3cc3627e799e4ef72a870cd89598d51ba396655b4de66e48997faa51d05d581c52f52852cffc9f89252f26d314d2fb8fcbce197f3a8f330339c2ec3c710710b74f0915da3bbb638b1f1a0cb0c176adc151da0ab52796d466b23e8a269c5b22b76fe7586cbc217621acc955a43571dc04f69deb50066cc587595cf0ca4e9a00a261ff2791ada8de04bcbbea249d2a7840bd8fd3ef98a248eacb7fea5318b2e207668e13ab4e5578c03315d44b478df5247d8afd0624d2a57adf85fd16d86ae54cca21f6c91d8cafb3b31e3f9c4e903c04f39d67c90560dd10b2d28c6ee937cae01e921c98ddd833a9b9247053110c0f29d2f35f8ea322a738636f17648b627db622a9cc891fc1d066d5fcabc168f1b492479b0578d0bd8de0298d4bb96a4351714a10a39de49d57ad66bd6b458ae0d799a19da54bf620c0e6979a95b61a83cd06e46d7d263d53d66f77557232983268f5fd01d10442af0c840ab09c6cc4ad77add6379eeaf98f7cdbd70fffcb035abae4efecdb7e6f63ed8acebd8449b3a910e5eb06b0ee6d80dd45026c9e6c2f978f813b2800386a4d7ad9d127d76c4286c1b2facccfd16e6a263ba3e2893ae5e42049d421e08a62ee9e9574a1f70f0add7b68344256592513cc15f4bc64c5a029f60d617c245c1c34d06c095b2d0a9647e65dadb33ea79e3e0ea62ce55347d24eaab7cf9fc33fd70c07363771f78a13d92941daf7970c97b43d2fbe3e789a52ae7bed64736e6ce59f95322d20f9d6dc00b5824a0ce9072dd051c66ac20d39bd953f567a831d75fa91fb4d49b200fc893489e60df95c2810f7fc57b7f6b7725ae600e1c2def6a943b8d111ff3e9a5ac80aa981fad8709e98ee1550005bb8f65dedffbfe3793abb407fc0470736574056302000359a33e8f3d0439eb7d60aa79255858269bc1011e4cd0d4aa753bc2793f9638fe70dda4a99191f08700047a8b66d9cf7a53bf70756013c8630419e3a0bf428158dd02ab6e16822f239df0a6f1b67b6e1335509a286b30c4b11a22dcea9f95d51307fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac0007fc04707365740121081271c10f0caf52a40e015e7d35966dbad39525a6c0691d4beeb3bfb22af5304d07fc047073657403210b85bd6dc21b4919f6ebda7ab86ac8122c793be3fad19e44455945ddec8b59e9f6010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001cb6f1101e2b960c9a2fe480eb88fc76c63e58b57445c78d88e04f740580a36d6956006ef12ba606aaca89796dad5ff7cb4c4c7f4e65a07fea8a2ce3b58b265d4b3220013a09ecf4e01023aabca5586d61ecd5d7f2bedceb8b18a8e41451c97a192098b196add06a8a6b619e1e731fd9ae2973741aff6358c1ad45cc873a2d497271e3a20873a6f701d4c44ef670c8c7a9793079d9bdfe956bdc02a52d1de8b2de58b0f7d309240999f13985fa8c98e57fe1bb75219ae6330e9495b523e891dba7885a5302817d68a9891ae0c2597d4d7833b91b073c4f9b27be1cf81ca1c2c1014c57a4affe7b402c0e0c1862bd17bc1d43428671a106c26cab61d5e4ffd1c01f6af1c6e97f7a25ae8aaa8d2c91c57881df52bd5f242b127ec7aed5880101caa01783884dfe943ec9764473323f59b27a204f34aa1fe7fd4433fa606608b0f253247d149e3e269ae5445e917390be83d5650c05859e3a817a6c7e561e2b12baf6d4ca4221df0b7f29fa134269139afd9cee5c7d60149dfa23031705c6a8b72d00d659d7a085de8330de2e5c168ee3eba2180a9319f5e8e0806dadaf0fffbc2df839571360b8cd32300504a527cf914da7a1e788261c9cca2872ebec5a17cad33b15a7a7427c200b8746761359194520f0da1d7ae03f26190d07cf92d515e04815f514c66a98997320a028ad24e83182f213d991accf19a8a59003a2ca666ca505c0d8349e2cb22887efb7db9e4a4e3e2d8da0d5f032603e03f48fb967fd018fc99c6eb72acee4178edeb48703903a89e9462a2d1f447234c3373fff8b205848c7a9d6e45ccc31eeeb0105ed3af1188fb847cf6f03a7f0a646fa325b672796168dbbd9d1d19b2f41685b18c3c96f1cfb7ecb1dea132e8815b62647820ac4b12597d8e737a01a970704b03ba5ae68f8d64a1810db10427fbff1d74cfac91561484cfc8d3b23f74ba0f37e7db2f942c58fb1dd30f6a50c57b5eae720c6ed69b0fb81a6e0260c53028c732a544391e319987a24548230378f8f1ddf65a2d654c7b26951d5c6546cc8fda6003228e8913c9e3c5adf7b7b72f4ff5c4aedba6096097f9a4b58ea1e060609e8d1f0fb0e5dd905b29fec72b118d40c5f599a63f9a37041742a7f1af3ef951c31833621842ec212f9fc5cd3e8c08278ea192f8032ade447d2f35ab59810aff371f598b7dd57b3cde2ad854ecad0c786150748ac241ecd67cb868663a6fcbe9d68c3dc221d4fcec9b0ad89c337c1e10b91a38ab1357f260ca3a084da536e56262973e6c6cca838601fb2f335811375aed78295c4b17d3798d39d4cbf6254ce57680a102907e5c08b5c7ec0a1e73bf3d7b8babdc6156c6ca3f09c0423d6716ff4e6ee0338cfd778158202b5ffb60b74558dc6d0be9b5aed6892c4e0ad3e20de5b604b2b010af09ceaba7c0fba5a7fed39d31cb2769909a251ba5b0668330f734728f5c6786a8f1a35df77f3d739eec71d9268fb2a494a14bf7ab91c075023e76856d1745f5813d83878822934d0b4cc0538048c3f96cad7aef2bbc49bab139915dd4998ed3c6701973eb7913530b14c688f0b344ca9cb990de2a9b12fa7ad8b292234a33428b4d16813693964365bd412fb936c1461fdf8dfb0bba31202685f29addf95fc65f841e97042bc5d82f103e41017c6ac91d3d266e12db2dc195ac4f6d4353924270c7144cd96dcd07b9612e2bf1e0f7fc46ef83690648395c575a13c2b2df0fa04f740340e6b116b0866a401de22f68fa3f621d75b9f5f625cd5d5d7e12a5b0ff795749d742eb2648ddf068a451059390da566b3de84f9d528b2663de7dcc562eb014071e8277a054783d322fa67b9e5261b87e9c354ff58fc52bf9df404139311d6bf9650658fc94835a6220ca02a4bfbf46b2af4f30b1ba681c0de7c134d98dd52eb1e937c191cc9557aa73a343b99ae0b8954a3e929174984b574da75e90a9b71af1215317b04e4090770ab596091fc05c82235a324f86280f7fa081360ac758c1980c6a6763453e6b344611e46b05760941f9517ceb298ed7a2d6f96b11f5719ed0dec803c511dadb8d056d4ca06ca0ad090558a4fbf3a886f3ea9c33e1bb4bb5ddef4798cdfb384bea75a3794c42a53af60f12c95fe9b38d7f6a5d914ef100508091fc84756b596b9ba08d1dc42a7e253435b5481d1470ef00a1172cb036b5bdfaccaee02b15d099da17f9753846226325232e71ed9b48f57697bb3d1db75ed214310e6e3608ded6f188e37b21b96eefaa396db0df05a86416fe64aa950eea87e7af4407c828a8822b17be661269c9f9e365cdc79d20503e2d5e575c5387fa961206118dd379834aade7727a1b2477a24f05f6c2ba3156fe7f5b5ba6d7487b1a124f38e3ed3cda92a8edf05f28e3d699f0c12de9cfeb30ec8d4cd253287a6d3f596db0c06006a531e80083f5b41ee26c05d529e0a59ec151b4a9260a7ea8c1a175ca41b59f464adc122f448fc43e90dfa7b88f81caa7a84e3d6d4dbb85e5828b6ae7455dc2c87c8d9c706af2e62763675851b4ca449c9c0f95d953ce53c5327ba8981321a1cbfb76bafac7fa17c99567725d8e0ac288f3ccd3bad666e515156517281c97a3dbfbd5f345f8eb80bb3c4230301a38b7c920d74eb910d380f884a683f7d3e2738fabf9646138e8a32c35e43786e67925508e4cc7b1e7a36abdf6a497077704e216f1e730c20ecfcddfbdf2484d8eb0ef9b7478f77063fa90b8afbcd019d1a584df58c537b40b193f246598ae4c53958a947dd3916b14a5a4227f01bf543a8c5d6ab8eaefdfb959c8715b756a9c797fe39229dc56a86364cb367fa37e16e96cf8dca1fdc8b6a46ce88e3d29c75b6cc718ca8c28e9e1ae991b28c286107c1dced150814d6369cc8003b2976018941df7fb8eeb68be57adcf8a0e813d2fcd16dc390ce17dd0a91dd674d766d21b5de7f4678a548d75cc3de7d099b418fbdb66b2a2b12a56b1dd8b3f84a7b45e36db9bb63b3ef9fdadebc21c6a75364173925ffc69d481024e49076dca105795e7a64a3c82011889aacf0114a1bd31414e288cbb63eb47d399d0e025a54f11670c8ad4a793d0e7ebd3b0d8eb30b87cf62b131c61a4c55d2e56e47ae99fc543c57a1877ce44dac4c6f9fd99552701ade43858e0b4020230cb4d42d1990bfb509471a5c1c5557c29c00072c5cbbc056de6d465ea2ba2f4a1a5dd604dbf998e834b9200c59fdf90bec38af9218e47ea5ed5512cf8b0146126a15d49bf915eb893ad1ef83d8faf6c93f944ebce3704f930b6f69a1afe767ac2c9fdf092c804c7372ae1a64bca3a3b5a31f2ad430ba9e61dab3daa3be90a538cf0fba00796de511cddb5a594f14aa6d215bd0be19c0ca5f043403b7dc56c87b092d9436eb79509c3dbe367c2fcbc2b09f9818cf5a55d5ee0e477888166bbfece661b62812ffed3e4167ecc81dba148f89a8f2e7c27424a2ee091ac487e68fbbf9798e8caf46b35de8dde66a7cad6dc98a426ea7b8b930cf2d7d71fe71066dbe51e8a1c7151e97fecbeedef3d6f8e01cd5576dd58097b46153f9c3bcecf30bc82b4cdfb1bbfa826c7c5b217a023e4da02a35d0947b2c4d24d50a292e4c70fe854a420c54490d4850ee8c372756671fe130532f89878a64977ead60bf604b73859ae64ed62536423bb51b30c6fedbc819fdae05cb64b87b153f4252b832d6b866100a7b307d1e705643f96f0724858e6211802b2ce706d5424b99315db90c7d74fac66951251f6cb739ea008f839c7f62318f795337ca4ff05886a2640819873ae00b933081b64da1101d1b17451357921a2f4d4dc86c92a5eb346fd6cd3a63315768b94b90a15162aec91cea706b9221330db154d1fd71acac90be47055c725bce38710f1b4b4144f331cfa9fe15ebf6535747669e4aa1f0d72092ef395f16a4ec9014029b5c9d1b4bed9ec81a7568f8f1c87e0ce0f4ef9cf49e3fe4960b0b7904614772c63147f3c5463fffed182919c4973a8256346116be40b10a38cdea5bad5878760daaeda57476e86ec65e58030bc8ff99ebf017e9bf6383f981edc83b538e2bf4bb573637e6f4717d74a3ac71f5e151259b29c1b7226e3a8ab176baa2f27e3e385cd48c6f072bb6e8e9c92e35d7ff51177f4e3553555d967c04befc1847003a8592738c82eef231ce3d372372a19a01b27dc7916f986ff3f3ea8872d4986bc1ca649a92924c8f582ae2b44028e711e955d2563c33db3b7734aa246de553dab2c5268538f7c2b6dbe9a70657e2a26e52f5d216dfa9aa8e197a227c86a7d3b468880a721b804a0c51af1592043eee7fe3657b40c1832a858cfb4e037d208ee69c4fd697b929383a971b2a0864544505af2267e334db5f3f3f4ed88e2f6f2b3d7b96016ff92a120556e4d1e50440943893b00508c6242bcc41b6d06dc29ba20564b42257b9fa1b5f4f453e94e72501d31e8947e09a38261020400db4b8cf675b1854639a962a57905cbbee14ea0daa9bd281fd635c8f900fcabdcbcfb140f4f24b47731782ca899284fadfc9d0d6eff77045792e139afad34c7672bacfa22d85fcc05652178cc169bcf52ee3cef281d99935abf9c9910caa7994cfe33b9319d9854aa6e2590a86297f23b0cada7251a6ee1b2f3d2cb5a193cae8768d92f556994e416d4bcf5bba3a295d9e2215291237df74e3c493189bc5a27b3fec3e1a1329c6c6c75e0802b40fc74776476dd2d9e3453ec1709a8a2d162a936d9fe7dd4b6f7abdadfa429aed4cbd5896cfb24a2d91f1cee781d0ed73cf7306d6f9545fd3346c2232b8799553357a5a531d6085d04af5f183019dfd3483baf23b0ba5a6b58bba4b7a1eb0a32626bebb5cc0c4dad45c55d135be8b0a4dee787ed48b90a2a3fc120a753b52290c27ad0eb32b668a9540986ca0256c1676debc4d19b1b80bedd81e505154264a199ef1a54e1fff1b3589fbb6b2d87a1e04e67066571b68fe04f030d473f8d135585f8b7be91f0ae1a4fa2f44008c0f727f6aba9c5c60c3a9ff22911e267ffa2a5d1c71ff25f96ad257be29a2ec641e2055d785765cadd0c2fe513c44154e74f4b8cc4b24d9ee2f6cfe245549713f9dada1935247a2ac7ccc13c4a5c00c6ffe7ca33c0cde4c75c4fe2ea041a965e4c7385ebfdbc348da8c4216a02fa829892c827adbcbb87745120667cdc5a4aef28b190a54b422df45b8547c447765838dbf9f05de338ab672706b59b2f0644d6735d9316e64a1a15d3dfad893bb1bbcbe1b574a0b8ef5265e195a929148cc5e97c8bfb032d4528b523b6a6b29209428f38115cd102e3b4e268333e490140964278238e7ea9638ac34559e05300dad0c3f18e9228474cd3a7186102967c33fc14f086b4f1ec3957d87f2609d140dbb9e7ff793101d1cb90d004565c6a32924715b1bcab483e6389e2e824054edef350f328870f16412aca0fee39edcbd02a6a667aaaeabb6654c4762c639a26286a3c1730ab75defcd9451b4377f6acdc3b905684658c0844d904c47d313d85eb54963fd71a9a76dc8e345e479004f00e446b886ec41cf7bbb9311463e877aa4e357a0dd0b185a5cf12244296f5f8568e84cf6ac3b6125db6897e4e7c183cafc04f61b3263456f61a7880b446e3cffe986c3bf027c7deba490ec8544d2627e6596ef8f8a5cb577796e7c36ffc4f4346263b5d86ae1d7b8d04709367349d590047a8bfb34fbf6481adce60eddfdd1e148ab83874d70b5303fa0ce60c0ba7a047a477dc4c513d2218b0bb2bdf9b60be9a39e928976464e333ce0cb19aa21fda1c6851c6db9d5bbc6552e080f8e448637af711fed92e72c8d8530187de94603377dc387041a9eb42ac70b3923b9828de33bb337d55409cb419bf4089cb2bec79ffc3afc6dcc3cb82bc903d956d28e307fc0470736574056302000318eb22887126df9062243038440ef3fca2aa024fff8739db4930b314822b00cab172e83c33b7e5b959b0c3f27c714e447120833ef69bd634d1e011fc3c2585beaa882a29c2dabddfd31a48c0255d1ab57c6796aa4625a546a02cef51a9ee2e8007fc047073657407210302e71fc2fff37aeb6d2e2a7b7f2308d4ab7d4bf0a4cf9be7c06e89a66442b48300010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210970cb1dff96101101e24bed1a66fb0794d2fcb26aba11e7f2393edc1534df8a9607fc047073657403210b9991881df2ec384ff5616f6c03d45cf033ee64536297c3557f9fffec716c1fbe0104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e10603300000000000000018b6d2d00790f618171a9e8eb6051fc14dc27c502a54f5ccecacb4bcb350581a8f4b1a887a1e58865a21f51ef5098400c115cca84f489637718d8c3ca4350ad677374d40d2b64fe949ca34bd4ba845a87c7693421b70aa8d852e021aee329762883b9820bc0a47ea2fc6a8411ef773703632849094e51c73997c67f3e922d2801b6abc445375cd963a62c2bb28d733bf9274fe503081b51a56023a94200743e7d38865c190331449d19bf3d4eb7bf0b2a9b90696484aab906b9470e10946744838fc428f88461864d6601e93f10909e049a315fcc0ea7f4d71507fe5ed19b9ac2f55b0d3902b153ee27da9c55ab66debfb5ca440dfbb1a600cd8875049c4c13bbf242d26b10035002c7859f9c3ea631d955914adfa0817e4801e85b3f250cd9e7523db62c4ecb17a49028a02a1b61eb96a410643f1fec0ac664d96f99a1db4ac335c2bfec2946707c3c779a56373db197039af9a903e833af6f51de5cf8fc667dbf5416845d415dc98641e0984ebdfab88bbcdf305f605d36f7a472a516206d7ec722251e269800a00e8adb8f2ce161395c1c6ad4b406e1fda77bc7f0af07ea075011cee6cc5e7fd1b6e96e321171ca7d28a35595ddf0b0c831d28a88d30c7391c5832d90f906539aa49185fc6c0864e2d10b21160991fc19a1d084006d03fe3fb6f571f1ffd9f06ffbc0c076689373f9c2f8655758f7f44618345a6d5f8edae46e73a09c38157d5c39dd51a47756ea761e6320d6a91a1bb22d8dd35e4e7806b0242bcc4cae8720a953c6f933c0ee3216513cce6742a2cb4bf44553d8eaf175471dbc0f71c7c245fe99ab4240ccac637a16c82f0c60586f00d83ff852af48a239289d8b70a2638b0aff02572d6d2d68e22b87ba93f3db51bb27825265607ba4b6e9a194c7351f220b9e715a23237c40024fb7cfedaf7c8e0a1c4c6aebef8841fcf2609a3dd7f44dfd8895077df41f10790372eac8adff5ea7eeb28e371b4700d5044b41fd358dc4ba29158213e0f93711026fac8abfbe7cd80a939477ce545bc91cd1d32e8f2268563b0fe3e80855777d51cdf4835050a557d3c7b7f6905ba744ae5450d22837d2c2fa0c0755934654a78601a1fe236f11b6d72f368880ed938ff4a2e8d82c118493a1bb9a9ee95cf329f2d175d467aacc2c6cd73ed59ce64d508604db77942f9b7f3b0f86d913d3e1b489d2190a6da1ed997ab1eee356c885270e4e0192acc9c2b8702107c96aed654318bbb7724b913808dd2cfbbf6ace8db9c4cbf26f2c90a76eb967e365c58855b83550819cb5b28ea5e6ec1ea153ad3ee5e6292a174f7cab1b39e852194a6926bdc4d42326e17998cc057f614e91f6acab5a5bbedd93d9a13dc61977aa2accaf35370a3f1d3819c43c9430d0e767e92de96bb225007a7b6576ed7c4f05c984ce2e437d3b7f7f50c270caf90f8e5dbecb992be2972ef8d79c7674e025ee06b1302bcbd57fe5be9d9b4e38f17d9dca898ef3d71918550fd77a15c7aa2b66ee1a2f38b81040f3d6ec6693f54cc3fe39515275849e9e24b0af3e81705dea95e8f1bb1b4665cfdeb0630a5542a2857f2b58c36761d743299d77872d6894302123f4347702572f04d9876191d771e87655c071fbd29338eef0f9acb0a8ca3f0327ead8e875bc2e7ba38f249e6eda1fb74162e972ff523d20c6638b93297d406e9b2264187c06d0a78203d771f2525227d029b27b23192f747492b9774b12b039729ef75d11ce8d701e56fbb202f3e4bd68686f096f13680456529e5f132915595e0e0b4061b3014219f1fbef4d7403dbfcac01c701b7727c2463cb838d427e07706400be4fdd9140a800e47e7ac15a7a8a897187a38a0080726349d8b7566252076b1ae1366496b50e9a6d236837ffa0c4c3e61bb409a7d9faf8662109ef7213007a76a6d94cb79ad07183a33a4cdedd78896278a3b5531ec0efda9d77076d85a63536b426a6b58c3d0e8a46faf0fdf678e4964272e8410b346cc753edb94a61a2f309f8e753ff332f5b15215e0a20ef32e6a6faa044a431764e008e66b4af820bb6afe4d8dc1679219fe7614482517fdc523d4d7ce2bad9d59f7b9aed89b813e5b36b58a7c668e53181c0e1da45e4ba3851b46de8e056d63e440c471fbe23fbffc31ece7cd20658784f2d2fca3f730a1f8a90ea6995ccb490fca475b1441e38468433d1423c1d83a20b04f1216aff13c8e035c2ed389695c2bb0bedadc38c8a6222d687f0235bda3566c0865774bb6098acd674ff9091db1a6c4f0c2955c1759730b361f310d956f892089f500eae0084022e610ca4e758ce2c680d213bd1b5e00a6c991976e93189159bb98a1e4eff14f681d47694060126c0852ad52489c15d7302d82c66aa830208a9fd13da87a2aac3e44dddae632f2e4d56dc768ee6b3622c61e59aee27fee5aa0bfa9c56402ae3525f00634b11381d0b9637ac699e4c4b225c32bef9dc563e87cfc33bf07450c2cdd015bbd94df63697cdd9b6cf4169cfe1f626c126dbb588c57542662d02eeed561946ce94b46571f72ca3cf7fe52a8a6ea24fa216f01655dadbeb0f74e383e522da69db64b368cb155c2ba4c4fc8aea8745b1081223317003f0cd7ae620fc7d9a6c9c4f39a237d5d9d7f3e756c77daeccbd5d06ed28ac2f089db5449340872bc444aa4aecf6552621b84e4fabfd6baf0e1b61cab00e5c2050bfa38899e9840e2dac55c7d5e7105f65dc3afe3c35dd3e8ebb1a013d65fb0b9d76665f3c4eff5b766fbb0c03cc10c411987ef516405296437a91a67d7398d788e30f55bc1e6236b317784504c53800cc07f4eaf78bac03a025a7943573edcc67db3d5d5281f85ee993238fee3580cb846efae33b45ee2ee1ad640b1d068302504521269a31a166435e8fd964d2e15048f299a95ec1cbeb0c8d5d119e24670112d61d56ea120d7bc30fcd924fc7b812404ac45798af3fb590570a4d7a3f41639b879d1bdf2c72c979105460892fb41570cffee716679eb7b4124be188e28ca4c68d206c1cc9d49cd7489d63372853dbe83f874579238ecdd28c0dc265871d6dccf782b571f1004702121e8b15c9d8af9e6812dbbe742812c7e7cd1dafbdbe3d189f618936e270855700be8f6a7b528f271a936a2cae204b44d909ae3f6a8bcbfcda44b430397b1c96187e5a8362afe92bb9afb0a0a482cb6c8cac39a0fb1fe0034f8a965a3be425b4b34f67ff38a8ab30f8219a8933539c1d06d9b2997b6de743c568caea8b269642b8503b546c9e136d0e47775c8fef45d4489e6b4747c6accd6fad3d34fdd6cbafe07264e7ae1e025306c97d77a130093cc8d5ab8e4abe095787183a9084c569168011766b47dade4e3e1353a78f9f3464d8237b7de02da10c7a7b8951bafbaa898003ad9de997c89d8507393c6fb782b8f41aa99d5c92d5ed93e02a2e7550d42f178739898406badb6da850e305c10063b1a687a2b321a1f867ddfc7949d9764493af4f9681137101f87ec3c3733c0ee23a758a69dd5dbfccd20e0e7cc8543c213688ef9cc85bf9c539d3b6758e24befb3c1b617b7d59a17e915bb985df8229429430dd3057a8225d22afc2775e352a2d7c2f2f46786d4e6e984fb35ac6d7e1b57da82a6d1470895e56521c88c166f8124a4f0c5ada7d5e43174e319c21b9416735858ab50958def63c9a38e853d28a0f47b8e601beb0cdfb30d87070003f957ae347d5b03e80890311ded8018de0227c430f29ff20f0d0d1331dd5f22cff547847c0a26c1fdc272cd234b668823635f68e0797bf68fb1e531a423b1fae9b056fb8c0589908cd2774a7bea8da465248a438a22919d35e0ed8c5020f06824aa856c1a75e0d50d8e9c2dca471d249a97e8e8055d0927432577ef07e6658aa6ab3e9f5f4f50848b12dcdcd9594dae732864f9c6253cccf39922b5f1f8e16458a0c11db397017821de73a331400a76c2a5a29c7661405e9f244a92862a8ca13bc86a78a36744e52019c067573574f75e01b21c36e19a714e9cc0860e9df8e659cefab57002dc2b3d1a2918dc20ff25bc0d87023813abcbbe29defa514bd71fedf314a140508c7e8dd4ace82d56cfd6307fc8299a65c8b3b0719881dc06070d670729902ebfa1dc0b88050e5824cc186454ec2727d0fb2f95eb677f949375a0a31661c7f2bc452426a052b160b0654bffae35766a5317b845582176f1ec52e5bb7d814651781e268cfaefcf6da560810d84343dab8a8b2f2f7976334043498f529d75f9dec893bafdde0ebf003ea7d43f22d8e4eb3afea7be8bd22a9adb9334db2d6b05b8bfe72a96ca2c5ecc925333e4076bf5b7d9ed519ac3eb87c73d0c8121b1034424991561eccb669807a722bcd43141915c9db90f7a8a8e732054970645da1845b988f21cd5d2a89abd8e14c0e6532a3db89e43571b795d6f475b11c16cd7253a4538f4e73d0e3791e0c8f3e51ce3d9645062f249549d9165185fe6920659fe72ae01f69c6d5cef5a01cbbce0fcfd671e1a0aac35d541210a723d2fde91f37c130657d8825662bc46ca7780e07422ce2e7e5cbc1b15ad29b8473ffb832f45c480e960d620267561b3e3112c54359459c3f0235eb6eb2720dd5cf65f88267e099ae87ec7e35b3a915f18a4ab67583ccb4d907637812d797dfa51acc7b5cb13ab58934217a562b00a4a3d030bd9d3565a47c95396034bd65d39d39a6e7795f13e5031d148db16eddba996e1e70730eee02c47bd8b5c42812a12a2db5490fc3ad50d7d03c72c0e933ed8b43f8e34124e272cb39e06e628f18acfe4488dcced67a2c47008801e8d2db5dc7f7556d38020d53512993f3efeb4b07fd1e7b631deeeda74983011ca401ec7b86eb2a7a4d341f97337d37ada0dbbe124fe481ecac3e9b8e8f3b8b90ccf81ec028f2ee4e62934abcfcc2647966f6eea6563a0fc8fc75348f5fb3d2390db24d49858bbca822217fa81d240cacb7b2f6c2e4bad8a7a112b83a5d35ad68ec1cd599afee41fd4e860097f33afbc2cd790b2933f1194549c5aa3fe5c651a456c8ba7c8fa5ee5492233c21a80bd9216fcfccc03ecb76af3849711a0f69d5a261ce94484c30f4b74ca6cb4d7d5c4dcc0be1f0390c208e1e7e863700c6dce7ea5ab3831c00e586094a6a1f3b32dfbbf99a7581f90001dd558738804d0663a59d77407b6ab1ef3a82c156bc58d5a694a365b300a90ebbcddc49bbe5ba63c88e7a6e0faf5364ea17cabc602ddbf87a4c2f55b068ef296be5bb66befc1e37ad77f8e97c08f02d17dcdeb47959b0f46c2ae2c3d99a948f2a52c5793d53fe57876c38336a74786042abafb63c2154096eaed98598aed76da5a17ae179e79f848b237bdd6db63e5fbe77ee28b2bdcae462905ce1827800407317c2a42fc0dc234b2183db9097c0fae23da91aca6b1b7894537b0dc8524536573a34ef68596021cba863ece0de4a068f806d888aa03ed88ad92f375860f8885c5533c637a7a330c24aa0357f007ac3678e59cb1f6aa7c6979e15fd107a98ab42a635a3c3e70b58a19ec73b4bdc482000c3dfb4af84012ea3957d3d30b80857d9e06a2e677c84e5d9041ad4bf22afbdf0351f6d5c7a7a2ada3dd5ab4e48e37d51e5fad56cf9963715438c5f04b9772773893a59e2e46c6b7e19e9001650b66b469f4b1c4d188b286d5ce8b21269179e772147c7cb09eaee9b9de684ffc33068e5d346e79b710d82fd1278aee64ddd4ed37a944e6c745217c6a626444aa95b565c1f68a12cd2b86a61927896884bd5a76a9df4f6fe548bc16444272ec1e856334d64e0f32ba90daa77085b0683e3e010abf571dc564fc703a12998c72b6712386cfa4ccc802c850a3604bb0b2d5cd2eb6e788d475ff198f94a220c925a32ab6d69b037f1b9f0f4ce1d1b89cc0d07fc047073657405630200033fb971149dc9881cf31b7bd90de445f0ada69611016c5fde4af5bffe2b40a1a27d651a1d2127b0a95539b18fbb835f5145c1c4c7492866c6bd08ba260abb300720d2d42b729b72c6166f9ae0e4ac09a0f6851ca65444bed00b72b7f12befbbd007fc047073657407210252a4b012198c2131d70498b5939c401c01eb1178dfd58123b55766b03f008f7b00")); - tests.insert(String::from("finalized") , String::from("70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c01086b02473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801210334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe7010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b01086b02473044022017c696503f5e1539fe5cb8dd05f793bd3b6e39f193028a7299a80c94c817a02d022007889009088f46cd9d9f4d137815704170410f53d503b68c1e020292a85b93fa012103df8f51c053ba0dfb443cce9793b6dc3339ffb0ce97af4792dade3aae1eb890f6010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc0470736574012108a337e7e0ecf24c121a17193623254c277a306e9fd39cd5aaf8b7d374f4011c6507fc047073657403210b8e11e3b8904ac80caeb16af1c93053f8a11a963269bcefa96823d75b8640ae940104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001efdfbc0022a6437ec10c672d76c513868f403f6b9706e09733d6624e3cda831c2c199dd4c5763054a1c219e079e8cf3ce0c00dc2f16516972e1e64d576adfd9f5d778675c8a3172450a4cc82d6e6c59f2b16dffddc902d0aaa647b750d6224cafca7239a4fa81219cf2ee89741ffc5b7dd7e47d332ca931cffb1d1d432935a6013207629118c965b7a5102e62c43ca9d06bca191307a476738548536809ff6b01c6b5b25d76ff2f67d99e20fdf7d2eff6fc248186d21d054196023c5e4f572ccf0f3aad8728c46f2ff6756ea39de46028610a3d26cd42978b09e0e29e0a8aa46e4fd39d28d028592560264cf1a794c27f6c95d382f486dfe900a81d9d92935c7e0e6306549b3e49b1f60182512ccb994338c3541a2956139b2ccb3dd156853105abf5fb394cb2c45915dfd4106c7472dc5d360ab5bca408203a3fef58b4dd33b0c11c367dde2f19c8af7682be067244bf49a2b8cd4685f5481cc31ba27fe2f3d7b7a353be9b41e4eee2342fd70b8408c91951c71c75dde8fbc03e3f28e6d3d3b41e0e963d3ba0c25b2eb50560c21221950b0699d2615f0128e6cb7fa1b04ac1a046e569a7e87df98c14360b8ffc43db5e17548c7ea5056f84ffd14f4cdfc68a4f10e9b391cfa63eef2c2d623e7cdcdfae2fc4d63496d81462174ff360809b7e3b4305979d9cb8e9ad5b0f012494d31ce51ee6489555b09dddb16641ed9e2534fc34db99d2a4fa736eeabacf2f8cdca97f9e84c964277c6f30f1af7fe2b51b39b487d56ebaf593a3f98e811cb09849c5b445d5b7c9ba37807bd0189c8bdb2709fa70c230f9aba41dd3c62384aea6e1ca098ffec26367aa65a09459fca074d1da0365cf7fc2d8310ae099b838ca78e62cee10f95ec549faac1ff0f8236fb8cf2c0f6654e471d3950ef45e0159c44f9e343d05b3af59b939cf76090d040376407c41661eeda7d2cb61cad0088a286948787dae0cc5abdcb97f7f42026c65a13e1df1357c25d376955942adc858e73876e1d8812969055d55decac9a689dcd11dffe5cf6e06088b93a11e153ffed104266bba472cebffb2b0cfc8ef132309bd7836071d3b6ed459a5950c64cccf230015c98f9210f2d57b7f3a07c382f3df09f055c88e1f312db0d60d471afdc0b780d319a6229babd8f45edecff8d1073fa850f755219a3ea14e7234cbc7590c60eba0ba0cc1afde6ce91c8e8835b1ca809926b3e7d8d7a0941425e5f08e884f12693eeea1b3651f53da90972aaa37d426f37db3edae4285db114cbad5964c269e03b15358ad2a7242e0af538a594fc779ec3c43c3d94fab2028310c6d0acf3efdf0acf028ee757c5c02bb5b8b691aa5eed1a62acbabd0d61faa478cdcd54c6db2cec6144d8d1185115097a7da79c16ad3118d12e36dbcb7a70b0ddb27bddfcb1c6e5426b7e411f607d22c3ac2b8d3e41f55faf5e2105bf3b943846cc4c33edc64f902c1eeda09c8110d4f3ed0a5e511156a3e368f02161b92126abf649341ddb8ed03d1d41b91fc34548c6d94dfb47c088ef27a3cbfe1c9cb05f2ab2f18b8746394c8080c4cd92e818e46f861614ab870cb7ae3446e376793f3a6568a2ccfc2ab0ed0365567671436fee6cf427b6410a046d80b9d88f094924ad370da363e8eb70355b711687e92d88a08ed811ff241c7a6dbbad9dcfc18e6a42493483b938e36c1edd2a1c6e078a17c5d145c9c058b4dd69afc44c345f1c88afb95c1deb5c4994161ba25783165d43b9e50a2d8333a8037cec2ae809a3dbe026d6ba40d60badd05bce73b0f9f36966c30b9c0cb5776544c1182024a96e746a3b01f9db10b45aaffd3b055b02b40bccd41e57c10719bedb0fba99a0f6b0868b186fca0397ab8c219f33190f81e4cce2fbcbc0975c394919c98fdfd7e25a33e5f31fefd06c8dc409cbd3e743f0f48dc90abe45b2e68948436caa37fe9932a77b7e0fe0819d8283964b0eee2249d9190f3eb0bb8178e10a287be1059f35cc1a153dda14def65f3c49cdc5186da86bd3e965446f914e3c9b4cbfcfd2c379f306c5ef8844c4fd398b3c6f96601e90d2dc8810875663939f63abe3ee2e1c8a9c2c2010a01d0dcaebb556a7c98421f8e6465cb0434c07dcea9db1a142f9684e50b06c545785f0dee4def1257e4bb22d87a2b37ca9eb53081eb8f1ea0439c4575abac435868a36552df569ccc63477594ccf7eadfed6adbb8e81800a2e2fdd7effdd1e2f09cf76c9e780f6f8eb8408a3fcc06cb8bcd28db7a37edb0232a6f0e509c684318f179d0c91a97718ce3956c266790361ea3a1bf70cdb8a2f2a59b06dee18075745c7302db9b13a452c188c5624964af2d5d4bbb1138dec59df5dfb077a0f62ac4db3de81f54365f2a4a6dee63a6092b4660d3f5dca3cc8de3bb5350f5dcebabd515c72c9114bc58d96e2e863106f0982c2632bbacf2fe5cf6a8df880c550f7008fd09227baff82d4eb031802fbe7d50f6174860c70fcd9f0356e34c0d45df66492dc309b260b7158adf678e2da66348ca84de3e721c6196e0c717f59cb802c6866defdd9032a4b7da82b816d9681e5eb9115fc2a572fbbe105f479ab339bfa5961aa1920346c9ae4185a74aa828da78a71e55876c657249e83f5812cfb055400da1db8bbb5ed3ce2ca4655b0c39b698ed7d235fb0ed4f29a7e8925cb873176efcd1c6981dd23865468c6e01ddf61fa3e40d6fed18d8e3dbd97a08c68bfb092e441e512d44089cf563509785dd58203949a1ca9b66a700db14060a760aa404e5e9f31eaac015f1527f6d760d8714c88040b87fc8a4d183230cfae35326947e28a7a37eefe1d77070f5232a0d67e278a45d649709a7398cbd43094c5001263671517f83e62e79fb75e6f9bc592fb3bbececa3f597dee71dda0fc909079ea49d81554d2fd79d1cf3cf25d1186efb83cf972b7426600d7d6eb6c48a5f0e26af640c733f3f771e0926e6b38b6f39d7882b0538dcf281d92a6bd361bb32e16f3988d6790fa0a45f549e983f4eb68ce5ff11647b37f8e4c444aae8bc0f7c49ce7215545a29215b55f37dc42aa6add6fd1fb45d9ae580434097e7a8686e23cdbdbf6f8b6b1e5579a7908bafd8878b004c7c94e045fdf2b94f8c1a75ccee7bfabd9bb6d0ea8a60dca61053636160c19f8f3fff3d0330fc95d20a1393629f33f281e5da80a5ff66aaa5eefcf495f8bf7e24744778841d7c633f01af2305a122ee093837998e87f060105ffbc083c0d71f68c2c63820d7a547d9af5618544efb9736af56736e73cb696f191c68970ea1deb587231c889672b3b5399b9b5e915e3c567474c3905ec5b6468da826f1a6438ec335da847db540a091ab311c6846f96a2f17befa2f29ea491a41d7630e42583ad1212e6c606dc258a49f756e2480f90775c04c5c533300e37f8bc7afe7b155fb95877252ce4a53f78491ebf9d8a4aa41da1848633816542901d56e66f126316c80efdaf4b457f9ce771edb012a0b3c27c717f5cb3cc99ffcc959a02289e30d5b1ff936320579c469bd55cba6e79a0c5f1bda59981b71840a8c1ca56863e91eb21fbaf84525d5f04e0f282d03bb56d6dc2352f163d8357b86bc6e4e621bb693db3565eb9ef5629af537874c1cb3459582463362dab3c6fed7e574ce9bffcc685b8eea61599292cc69860c4f9584818182f94d719dcc463e9a6f854405ca2deb3de29ffa1826f795b7e7ac2555c0ee576c75494cb832c59de8d9620927167bc136549b731ef79a39fbf8789831cc003a772fa00d4d699d089d47037e12e1c6eb8c20c5535225a33a1a787ba866ad481e9a4d689c83d75f1986405c82154e312ce8b3494ac5721b96193c025bb75b2cc974f9171297da058d2ed4f00d94e60737af29da660fc51fb9bb4d241e78c9d1815d7e3ea90aa541c4c512ab423ece93f9ff2f479f464b953b4171217b758b280c5d8acda32cced7bb0c92cd9b405afb3a8405602da914e1831fec5b6a291f90635afe82b9389a8b41d957f81be125de2f943b7cda9e873fcd74b446bacc00bdfcbe643053f6cc8162c0a98343242b489f59f7ebac016a7fbf620dafc15c8ecfe20b954153dba19eb81087673a1e847238864036e9a300239a00a5a03d8b39aae2bc201c04c477b1f2a37552670c06ea65551c5c88a42476d0d797af494b077737cb48050bd35f4980964b8b9b98bde84615e8fdca407230f5d15e97ae65d63a96f3d88518fde12d6a82881db5c8d4cd79e724312e88b394129de3569c5c99bf842a90f193c91fa55a82116e237c877dec2da6dc652cb33e33df47420c5238fb6ba5fd96cb77f0cf6c8a12be1a95186680d16a064d9b1a7c2461fdf5e0a512a5a3ed2f8dc0eeadb6c95a658aa1c2713fea473de51f65b13a40a2fe64e5227bc9248f59c2bd60dd2fc14918e333faab6e792ce2f0597be47cee70f5a8b788a50c9cd153bf24786aa80f631ad21926e3285f41c5125a15c12cc889112df0b1857020160122c2595ab3359bcab184ecb32f7cf8f38eea23f4f9135104629d8f1e8273c44f8afa129d3a74cf58ce494214629cd53b99a8489ddc5d339e317ce75dd6c5dbd098d811c56ec5f19c00fa00b5465e39f8f2022c71ab3ed0d5a24058c197719551985ab30a851390ab5e11420c521b1398bff0038d904e5879db37d60c623a0a82e191cd0b6bd20a9e956d41d5daef703bdedd6bd0e20fb096423dd39706e939e796aa8bdf071e44791d2e1ed4a81ffd018cb79c5b6bdfd6297cc6cd379845fd7ddfdb0b83d7b26c21e3edb58185e71472a79cb65322579bd5e0e7b1fe081dcae5447834d70459f8a96b341a26d8922a2b1412f95f3533e04b5f65be112cca03ca45ee0eca10adc7593c78c041281c880d879125e585e68f5c7fbf8686f245cd736ab5aadc57c032c637b753b49575acf4bbff46883382f408417438d7817097accae3fc54afc6015b84b3b05627d7c83c4627c87727bd24c4b4d96a08c64164ab8d4abe3fff5c3b09e8fd12498e3cc3627e799e4ef72a870cd89598d51ba396655b4de66e48997faa51d05d581c52f52852cffc9f89252f26d314d2fb8fcbce197f3a8f330339c2ec3c710710b74f0915da3bbb638b1f1a0cb0c176adc151da0ab52796d466b23e8a269c5b22b76fe7586cbc217621acc955a43571dc04f69deb50066cc587595cf0ca4e9a00a261ff2791ada8de04bcbbea249d2a7840bd8fd3ef98a248eacb7fea5318b2e207668e13ab4e5578c03315d44b478df5247d8afd0624d2a57adf85fd16d86ae54cca21f6c91d8cafb3b31e3f9c4e903c04f39d67c90560dd10b2d28c6ee937cae01e921c98ddd833a9b9247053110c0f29d2f35f8ea322a738636f17648b627db622a9cc891fc1d066d5fcabc168f1b492479b0578d0bd8de0298d4bb96a4351714a10a39de49d57ad66bd6b458ae0d799a19da54bf620c0e6979a95b61a83cd06e46d7d263d53d66f77557232983268f5fd01d10442af0c840ab09c6cc4ad77add6379eeaf98f7cdbd70fffcb035abae4efecdb7e6f63ed8acebd8449b3a910e5eb06b0ee6d80dd45026c9e6c2f978f813b2800386a4d7ad9d127d76c4286c1b2facccfd16e6a263ba3e2893ae5e42049d421e08a62ee9e9574a1f70f0add7b68344256592513cc15f4bc64c5a029f60d617c245c1c34d06c095b2d0a9647e65dadb33ea79e3e0ea62ce55347d24eaab7cf9fc33fd70c07363771f78a13d92941daf7970c97b43d2fbe3e789a52ae7bed64736e6ce59f95322d20f9d6dc00b5824a0ce9072dd051c66ac20d39bd953f567a831d75fa91fb4d49b200fc893489e60df95c2810f7fc57b7f6b7725ae600e1c2def6a943b8d111ff3e9a5ac80aa981fad8709e98ee1550005bb8f65dedffbfe3793abb407fc0470736574056302000359a33e8f3d0439eb7d60aa79255858269bc1011e4cd0d4aa753bc2793f9638fe70dda4a99191f08700047a8b66d9cf7a53bf70756013c8630419e3a0bf428158dd02ab6e16822f239df0a6f1b67b6e1335509a286b30c4b11a22dcea9f95d51307fc04707365740721027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac0007fc04707365740121081271c10f0caf52a40e015e7d35966dbad39525a6c0691d4beeb3bfb22af5304d07fc047073657403210b85bd6dc21b4919f6ebda7ab86ac8122c793be3fad19e44455945ddec8b59e9f6010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001cb6f1101e2b960c9a2fe480eb88fc76c63e58b57445c78d88e04f740580a36d6956006ef12ba606aaca89796dad5ff7cb4c4c7f4e65a07fea8a2ce3b58b265d4b3220013a09ecf4e01023aabca5586d61ecd5d7f2bedceb8b18a8e41451c97a192098b196add06a8a6b619e1e731fd9ae2973741aff6358c1ad45cc873a2d497271e3a20873a6f701d4c44ef670c8c7a9793079d9bdfe956bdc02a52d1de8b2de58b0f7d309240999f13985fa8c98e57fe1bb75219ae6330e9495b523e891dba7885a5302817d68a9891ae0c2597d4d7833b91b073c4f9b27be1cf81ca1c2c1014c57a4affe7b402c0e0c1862bd17bc1d43428671a106c26cab61d5e4ffd1c01f6af1c6e97f7a25ae8aaa8d2c91c57881df52bd5f242b127ec7aed5880101caa01783884dfe943ec9764473323f59b27a204f34aa1fe7fd4433fa606608b0f253247d149e3e269ae5445e917390be83d5650c05859e3a817a6c7e561e2b12baf6d4ca4221df0b7f29fa134269139afd9cee5c7d60149dfa23031705c6a8b72d00d659d7a085de8330de2e5c168ee3eba2180a9319f5e8e0806dadaf0fffbc2df839571360b8cd32300504a527cf914da7a1e788261c9cca2872ebec5a17cad33b15a7a7427c200b8746761359194520f0da1d7ae03f26190d07cf92d515e04815f514c66a98997320a028ad24e83182f213d991accf19a8a59003a2ca666ca505c0d8349e2cb22887efb7db9e4a4e3e2d8da0d5f032603e03f48fb967fd018fc99c6eb72acee4178edeb48703903a89e9462a2d1f447234c3373fff8b205848c7a9d6e45ccc31eeeb0105ed3af1188fb847cf6f03a7f0a646fa325b672796168dbbd9d1d19b2f41685b18c3c96f1cfb7ecb1dea132e8815b62647820ac4b12597d8e737a01a970704b03ba5ae68f8d64a1810db10427fbff1d74cfac91561484cfc8d3b23f74ba0f37e7db2f942c58fb1dd30f6a50c57b5eae720c6ed69b0fb81a6e0260c53028c732a544391e319987a24548230378f8f1ddf65a2d654c7b26951d5c6546cc8fda6003228e8913c9e3c5adf7b7b72f4ff5c4aedba6096097f9a4b58ea1e060609e8d1f0fb0e5dd905b29fec72b118d40c5f599a63f9a37041742a7f1af3ef951c31833621842ec212f9fc5cd3e8c08278ea192f8032ade447d2f35ab59810aff371f598b7dd57b3cde2ad854ecad0c786150748ac241ecd67cb868663a6fcbe9d68c3dc221d4fcec9b0ad89c337c1e10b91a38ab1357f260ca3a084da536e56262973e6c6cca838601fb2f335811375aed78295c4b17d3798d39d4cbf6254ce57680a102907e5c08b5c7ec0a1e73bf3d7b8babdc6156c6ca3f09c0423d6716ff4e6ee0338cfd778158202b5ffb60b74558dc6d0be9b5aed6892c4e0ad3e20de5b604b2b010af09ceaba7c0fba5a7fed39d31cb2769909a251ba5b0668330f734728f5c6786a8f1a35df77f3d739eec71d9268fb2a494a14bf7ab91c075023e76856d1745f5813d83878822934d0b4cc0538048c3f96cad7aef2bbc49bab139915dd4998ed3c6701973eb7913530b14c688f0b344ca9cb990de2a9b12fa7ad8b292234a33428b4d16813693964365bd412fb936c1461fdf8dfb0bba31202685f29addf95fc65f841e97042bc5d82f103e41017c6ac91d3d266e12db2dc195ac4f6d4353924270c7144cd96dcd07b9612e2bf1e0f7fc46ef83690648395c575a13c2b2df0fa04f740340e6b116b0866a401de22f68fa3f621d75b9f5f625cd5d5d7e12a5b0ff795749d742eb2648ddf068a451059390da566b3de84f9d528b2663de7dcc562eb014071e8277a054783d322fa67b9e5261b87e9c354ff58fc52bf9df404139311d6bf9650658fc94835a6220ca02a4bfbf46b2af4f30b1ba681c0de7c134d98dd52eb1e937c191cc9557aa73a343b99ae0b8954a3e929174984b574da75e90a9b71af1215317b04e4090770ab596091fc05c82235a324f86280f7fa081360ac758c1980c6a6763453e6b344611e46b05760941f9517ceb298ed7a2d6f96b11f5719ed0dec803c511dadb8d056d4ca06ca0ad090558a4fbf3a886f3ea9c33e1bb4bb5ddef4798cdfb384bea75a3794c42a53af60f12c95fe9b38d7f6a5d914ef100508091fc84756b596b9ba08d1dc42a7e253435b5481d1470ef00a1172cb036b5bdfaccaee02b15d099da17f9753846226325232e71ed9b48f57697bb3d1db75ed214310e6e3608ded6f188e37b21b96eefaa396db0df05a86416fe64aa950eea87e7af4407c828a8822b17be661269c9f9e365cdc79d20503e2d5e575c5387fa961206118dd379834aade7727a1b2477a24f05f6c2ba3156fe7f5b5ba6d7487b1a124f38e3ed3cda92a8edf05f28e3d699f0c12de9cfeb30ec8d4cd253287a6d3f596db0c06006a531e80083f5b41ee26c05d529e0a59ec151b4a9260a7ea8c1a175ca41b59f464adc122f448fc43e90dfa7b88f81caa7a84e3d6d4dbb85e5828b6ae7455dc2c87c8d9c706af2e62763675851b4ca449c9c0f95d953ce53c5327ba8981321a1cbfb76bafac7fa17c99567725d8e0ac288f3ccd3bad666e515156517281c97a3dbfbd5f345f8eb80bb3c4230301a38b7c920d74eb910d380f884a683f7d3e2738fabf9646138e8a32c35e43786e67925508e4cc7b1e7a36abdf6a497077704e216f1e730c20ecfcddfbdf2484d8eb0ef9b7478f77063fa90b8afbcd019d1a584df58c537b40b193f246598ae4c53958a947dd3916b14a5a4227f01bf543a8c5d6ab8eaefdfb959c8715b756a9c797fe39229dc56a86364cb367fa37e16e96cf8dca1fdc8b6a46ce88e3d29c75b6cc718ca8c28e9e1ae991b28c286107c1dced150814d6369cc8003b2976018941df7fb8eeb68be57adcf8a0e813d2fcd16dc390ce17dd0a91dd674d766d21b5de7f4678a548d75cc3de7d099b418fbdb66b2a2b12a56b1dd8b3f84a7b45e36db9bb63b3ef9fdadebc21c6a75364173925ffc69d481024e49076dca105795e7a64a3c82011889aacf0114a1bd31414e288cbb63eb47d399d0e025a54f11670c8ad4a793d0e7ebd3b0d8eb30b87cf62b131c61a4c55d2e56e47ae99fc543c57a1877ce44dac4c6f9fd99552701ade43858e0b4020230cb4d42d1990bfb509471a5c1c5557c29c00072c5cbbc056de6d465ea2ba2f4a1a5dd604dbf998e834b9200c59fdf90bec38af9218e47ea5ed5512cf8b0146126a15d49bf915eb893ad1ef83d8faf6c93f944ebce3704f930b6f69a1afe767ac2c9fdf092c804c7372ae1a64bca3a3b5a31f2ad430ba9e61dab3daa3be90a538cf0fba00796de511cddb5a594f14aa6d215bd0be19c0ca5f043403b7dc56c87b092d9436eb79509c3dbe367c2fcbc2b09f9818cf5a55d5ee0e477888166bbfece661b62812ffed3e4167ecc81dba148f89a8f2e7c27424a2ee091ac487e68fbbf9798e8caf46b35de8dde66a7cad6dc98a426ea7b8b930cf2d7d71fe71066dbe51e8a1c7151e97fecbeedef3d6f8e01cd5576dd58097b46153f9c3bcecf30bc82b4cdfb1bbfa826c7c5b217a023e4da02a35d0947b2c4d24d50a292e4c70fe854a420c54490d4850ee8c372756671fe130532f89878a64977ead60bf604b73859ae64ed62536423bb51b30c6fedbc819fdae05cb64b87b153f4252b832d6b866100a7b307d1e705643f96f0724858e6211802b2ce706d5424b99315db90c7d74fac66951251f6cb739ea008f839c7f62318f795337ca4ff05886a2640819873ae00b933081b64da1101d1b17451357921a2f4d4dc86c92a5eb346fd6cd3a63315768b94b90a15162aec91cea706b9221330db154d1fd71acac90be47055c725bce38710f1b4b4144f331cfa9fe15ebf6535747669e4aa1f0d72092ef395f16a4ec9014029b5c9d1b4bed9ec81a7568f8f1c87e0ce0f4ef9cf49e3fe4960b0b7904614772c63147f3c5463fffed182919c4973a8256346116be40b10a38cdea5bad5878760daaeda57476e86ec65e58030bc8ff99ebf017e9bf6383f981edc83b538e2bf4bb573637e6f4717d74a3ac71f5e151259b29c1b7226e3a8ab176baa2f27e3e385cd48c6f072bb6e8e9c92e35d7ff51177f4e3553555d967c04befc1847003a8592738c82eef231ce3d372372a19a01b27dc7916f986ff3f3ea8872d4986bc1ca649a92924c8f582ae2b44028e711e955d2563c33db3b7734aa246de553dab2c5268538f7c2b6dbe9a70657e2a26e52f5d216dfa9aa8e197a227c86a7d3b468880a721b804a0c51af1592043eee7fe3657b40c1832a858cfb4e037d208ee69c4fd697b929383a971b2a0864544505af2267e334db5f3f3f4ed88e2f6f2b3d7b96016ff92a120556e4d1e50440943893b00508c6242bcc41b6d06dc29ba20564b42257b9fa1b5f4f453e94e72501d31e8947e09a38261020400db4b8cf675b1854639a962a57905cbbee14ea0daa9bd281fd635c8f900fcabdcbcfb140f4f24b47731782ca899284fadfc9d0d6eff77045792e139afad34c7672bacfa22d85fcc05652178cc169bcf52ee3cef281d99935abf9c9910caa7994cfe33b9319d9854aa6e2590a86297f23b0cada7251a6ee1b2f3d2cb5a193cae8768d92f556994e416d4bcf5bba3a295d9e2215291237df74e3c493189bc5a27b3fec3e1a1329c6c6c75e0802b40fc74776476dd2d9e3453ec1709a8a2d162a936d9fe7dd4b6f7abdadfa429aed4cbd5896cfb24a2d91f1cee781d0ed73cf7306d6f9545fd3346c2232b8799553357a5a531d6085d04af5f183019dfd3483baf23b0ba5a6b58bba4b7a1eb0a32626bebb5cc0c4dad45c55d135be8b0a4dee787ed48b90a2a3fc120a753b52290c27ad0eb32b668a9540986ca0256c1676debc4d19b1b80bedd81e505154264a199ef1a54e1fff1b3589fbb6b2d87a1e04e67066571b68fe04f030d473f8d135585f8b7be91f0ae1a4fa2f44008c0f727f6aba9c5c60c3a9ff22911e267ffa2a5d1c71ff25f96ad257be29a2ec641e2055d785765cadd0c2fe513c44154e74f4b8cc4b24d9ee2f6cfe245549713f9dada1935247a2ac7ccc13c4a5c00c6ffe7ca33c0cde4c75c4fe2ea041a965e4c7385ebfdbc348da8c4216a02fa829892c827adbcbb87745120667cdc5a4aef28b190a54b422df45b8547c447765838dbf9f05de338ab672706b59b2f0644d6735d9316e64a1a15d3dfad893bb1bbcbe1b574a0b8ef5265e195a929148cc5e97c8bfb032d4528b523b6a6b29209428f38115cd102e3b4e268333e490140964278238e7ea9638ac34559e05300dad0c3f18e9228474cd3a7186102967c33fc14f086b4f1ec3957d87f2609d140dbb9e7ff793101d1cb90d004565c6a32924715b1bcab483e6389e2e824054edef350f328870f16412aca0fee39edcbd02a6a667aaaeabb6654c4762c639a26286a3c1730ab75defcd9451b4377f6acdc3b905684658c0844d904c47d313d85eb54963fd71a9a76dc8e345e479004f00e446b886ec41cf7bbb9311463e877aa4e357a0dd0b185a5cf12244296f5f8568e84cf6ac3b6125db6897e4e7c183cafc04f61b3263456f61a7880b446e3cffe986c3bf027c7deba490ec8544d2627e6596ef8f8a5cb577796e7c36ffc4f4346263b5d86ae1d7b8d04709367349d590047a8bfb34fbf6481adce60eddfdd1e148ab83874d70b5303fa0ce60c0ba7a047a477dc4c513d2218b0bb2bdf9b60be9a39e928976464e333ce0cb19aa21fda1c6851c6db9d5bbc6552e080f8e448637af711fed92e72c8d8530187de94603377dc387041a9eb42ac70b3923b9828de33bb337d55409cb419bf4089cb2bec79ffc3afc6dcc3cb82bc903d956d28e307fc0470736574056302000318eb22887126df9062243038440ef3fca2aa024fff8739db4930b314822b00cab172e83c33b7e5b959b0c3f27c714e447120833ef69bd634d1e011fc3c2585beaa882a29c2dabddfd31a48c0255d1ab57c6796aa4625a546a02cef51a9ee2e8007fc047073657407210302e71fc2fff37aeb6d2e2a7b7f2308d4ab7d4bf0a4cf9be7c06e89a66442b48300010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210970cb1dff96101101e24bed1a66fb0794d2fcb26aba11e7f2393edc1534df8a9607fc047073657403210b9991881df2ec384ff5616f6c03d45cf033ee64536297c3557f9fffec716c1fbe0104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e10603300000000000000018b6d2d00790f618171a9e8eb6051fc14dc27c502a54f5ccecacb4bcb350581a8f4b1a887a1e58865a21f51ef5098400c115cca84f489637718d8c3ca4350ad677374d40d2b64fe949ca34bd4ba845a87c7693421b70aa8d852e021aee329762883b9820bc0a47ea2fc6a8411ef773703632849094e51c73997c67f3e922d2801b6abc445375cd963a62c2bb28d733bf9274fe503081b51a56023a94200743e7d38865c190331449d19bf3d4eb7bf0b2a9b90696484aab906b9470e10946744838fc428f88461864d6601e93f10909e049a315fcc0ea7f4d71507fe5ed19b9ac2f55b0d3902b153ee27da9c55ab66debfb5ca440dfbb1a600cd8875049c4c13bbf242d26b10035002c7859f9c3ea631d955914adfa0817e4801e85b3f250cd9e7523db62c4ecb17a49028a02a1b61eb96a410643f1fec0ac664d96f99a1db4ac335c2bfec2946707c3c779a56373db197039af9a903e833af6f51de5cf8fc667dbf5416845d415dc98641e0984ebdfab88bbcdf305f605d36f7a472a516206d7ec722251e269800a00e8adb8f2ce161395c1c6ad4b406e1fda77bc7f0af07ea075011cee6cc5e7fd1b6e96e321171ca7d28a35595ddf0b0c831d28a88d30c7391c5832d90f906539aa49185fc6c0864e2d10b21160991fc19a1d084006d03fe3fb6f571f1ffd9f06ffbc0c076689373f9c2f8655758f7f44618345a6d5f8edae46e73a09c38157d5c39dd51a47756ea761e6320d6a91a1bb22d8dd35e4e7806b0242bcc4cae8720a953c6f933c0ee3216513cce6742a2cb4bf44553d8eaf175471dbc0f71c7c245fe99ab4240ccac637a16c82f0c60586f00d83ff852af48a239289d8b70a2638b0aff02572d6d2d68e22b87ba93f3db51bb27825265607ba4b6e9a194c7351f220b9e715a23237c40024fb7cfedaf7c8e0a1c4c6aebef8841fcf2609a3dd7f44dfd8895077df41f10790372eac8adff5ea7eeb28e371b4700d5044b41fd358dc4ba29158213e0f93711026fac8abfbe7cd80a939477ce545bc91cd1d32e8f2268563b0fe3e80855777d51cdf4835050a557d3c7b7f6905ba744ae5450d22837d2c2fa0c0755934654a78601a1fe236f11b6d72f368880ed938ff4a2e8d82c118493a1bb9a9ee95cf329f2d175d467aacc2c6cd73ed59ce64d508604db77942f9b7f3b0f86d913d3e1b489d2190a6da1ed997ab1eee356c885270e4e0192acc9c2b8702107c96aed654318bbb7724b913808dd2cfbbf6ace8db9c4cbf26f2c90a76eb967e365c58855b83550819cb5b28ea5e6ec1ea153ad3ee5e6292a174f7cab1b39e852194a6926bdc4d42326e17998cc057f614e91f6acab5a5bbedd93d9a13dc61977aa2accaf35370a3f1d3819c43c9430d0e767e92de96bb225007a7b6576ed7c4f05c984ce2e437d3b7f7f50c270caf90f8e5dbecb992be2972ef8d79c7674e025ee06b1302bcbd57fe5be9d9b4e38f17d9dca898ef3d71918550fd77a15c7aa2b66ee1a2f38b81040f3d6ec6693f54cc3fe39515275849e9e24b0af3e81705dea95e8f1bb1b4665cfdeb0630a5542a2857f2b58c36761d743299d77872d6894302123f4347702572f04d9876191d771e87655c071fbd29338eef0f9acb0a8ca3f0327ead8e875bc2e7ba38f249e6eda1fb74162e972ff523d20c6638b93297d406e9b2264187c06d0a78203d771f2525227d029b27b23192f747492b9774b12b039729ef75d11ce8d701e56fbb202f3e4bd68686f096f13680456529e5f132915595e0e0b4061b3014219f1fbef4d7403dbfcac01c701b7727c2463cb838d427e07706400be4fdd9140a800e47e7ac15a7a8a897187a38a0080726349d8b7566252076b1ae1366496b50e9a6d236837ffa0c4c3e61bb409a7d9faf8662109ef7213007a76a6d94cb79ad07183a33a4cdedd78896278a3b5531ec0efda9d77076d85a63536b426a6b58c3d0e8a46faf0fdf678e4964272e8410b346cc753edb94a61a2f309f8e753ff332f5b15215e0a20ef32e6a6faa044a431764e008e66b4af820bb6afe4d8dc1679219fe7614482517fdc523d4d7ce2bad9d59f7b9aed89b813e5b36b58a7c668e53181c0e1da45e4ba3851b46de8e056d63e440c471fbe23fbffc31ece7cd20658784f2d2fca3f730a1f8a90ea6995ccb490fca475b1441e38468433d1423c1d83a20b04f1216aff13c8e035c2ed389695c2bb0bedadc38c8a6222d687f0235bda3566c0865774bb6098acd674ff9091db1a6c4f0c2955c1759730b361f310d956f892089f500eae0084022e610ca4e758ce2c680d213bd1b5e00a6c991976e93189159bb98a1e4eff14f681d47694060126c0852ad52489c15d7302d82c66aa830208a9fd13da87a2aac3e44dddae632f2e4d56dc768ee6b3622c61e59aee27fee5aa0bfa9c56402ae3525f00634b11381d0b9637ac699e4c4b225c32bef9dc563e87cfc33bf07450c2cdd015bbd94df63697cdd9b6cf4169cfe1f626c126dbb588c57542662d02eeed561946ce94b46571f72ca3cf7fe52a8a6ea24fa216f01655dadbeb0f74e383e522da69db64b368cb155c2ba4c4fc8aea8745b1081223317003f0cd7ae620fc7d9a6c9c4f39a237d5d9d7f3e756c77daeccbd5d06ed28ac2f089db5449340872bc444aa4aecf6552621b84e4fabfd6baf0e1b61cab00e5c2050bfa38899e9840e2dac55c7d5e7105f65dc3afe3c35dd3e8ebb1a013d65fb0b9d76665f3c4eff5b766fbb0c03cc10c411987ef516405296437a91a67d7398d788e30f55bc1e6236b317784504c53800cc07f4eaf78bac03a025a7943573edcc67db3d5d5281f85ee993238fee3580cb846efae33b45ee2ee1ad640b1d068302504521269a31a166435e8fd964d2e15048f299a95ec1cbeb0c8d5d119e24670112d61d56ea120d7bc30fcd924fc7b812404ac45798af3fb590570a4d7a3f41639b879d1bdf2c72c979105460892fb41570cffee716679eb7b4124be188e28ca4c68d206c1cc9d49cd7489d63372853dbe83f874579238ecdd28c0dc265871d6dccf782b571f1004702121e8b15c9d8af9e6812dbbe742812c7e7cd1dafbdbe3d189f618936e270855700be8f6a7b528f271a936a2cae204b44d909ae3f6a8bcbfcda44b430397b1c96187e5a8362afe92bb9afb0a0a482cb6c8cac39a0fb1fe0034f8a965a3be425b4b34f67ff38a8ab30f8219a8933539c1d06d9b2997b6de743c568caea8b269642b8503b546c9e136d0e47775c8fef45d4489e6b4747c6accd6fad3d34fdd6cbafe07264e7ae1e025306c97d77a130093cc8d5ab8e4abe095787183a9084c569168011766b47dade4e3e1353a78f9f3464d8237b7de02da10c7a7b8951bafbaa898003ad9de997c89d8507393c6fb782b8f41aa99d5c92d5ed93e02a2e7550d42f178739898406badb6da850e305c10063b1a687a2b321a1f867ddfc7949d9764493af4f9681137101f87ec3c3733c0ee23a758a69dd5dbfccd20e0e7cc8543c213688ef9cc85bf9c539d3b6758e24befb3c1b617b7d59a17e915bb985df8229429430dd3057a8225d22afc2775e352a2d7c2f2f46786d4e6e984fb35ac6d7e1b57da82a6d1470895e56521c88c166f8124a4f0c5ada7d5e43174e319c21b9416735858ab50958def63c9a38e853d28a0f47b8e601beb0cdfb30d87070003f957ae347d5b03e80890311ded8018de0227c430f29ff20f0d0d1331dd5f22cff547847c0a26c1fdc272cd234b668823635f68e0797bf68fb1e531a423b1fae9b056fb8c0589908cd2774a7bea8da465248a438a22919d35e0ed8c5020f06824aa856c1a75e0d50d8e9c2dca471d249a97e8e8055d0927432577ef07e6658aa6ab3e9f5f4f50848b12dcdcd9594dae732864f9c6253cccf39922b5f1f8e16458a0c11db397017821de73a331400a76c2a5a29c7661405e9f244a92862a8ca13bc86a78a36744e52019c067573574f75e01b21c36e19a714e9cc0860e9df8e659cefab57002dc2b3d1a2918dc20ff25bc0d87023813abcbbe29defa514bd71fedf314a140508c7e8dd4ace82d56cfd6307fc8299a65c8b3b0719881dc06070d670729902ebfa1dc0b88050e5824cc186454ec2727d0fb2f95eb677f949375a0a31661c7f2bc452426a052b160b0654bffae35766a5317b845582176f1ec52e5bb7d814651781e268cfaefcf6da560810d84343dab8a8b2f2f7976334043498f529d75f9dec893bafdde0ebf003ea7d43f22d8e4eb3afea7be8bd22a9adb9334db2d6b05b8bfe72a96ca2c5ecc925333e4076bf5b7d9ed519ac3eb87c73d0c8121b1034424991561eccb669807a722bcd43141915c9db90f7a8a8e732054970645da1845b988f21cd5d2a89abd8e14c0e6532a3db89e43571b795d6f475b11c16cd7253a4538f4e73d0e3791e0c8f3e51ce3d9645062f249549d9165185fe6920659fe72ae01f69c6d5cef5a01cbbce0fcfd671e1a0aac35d541210a723d2fde91f37c130657d8825662bc46ca7780e07422ce2e7e5cbc1b15ad29b8473ffb832f45c480e960d620267561b3e3112c54359459c3f0235eb6eb2720dd5cf65f88267e099ae87ec7e35b3a915f18a4ab67583ccb4d907637812d797dfa51acc7b5cb13ab58934217a562b00a4a3d030bd9d3565a47c95396034bd65d39d39a6e7795f13e5031d148db16eddba996e1e70730eee02c47bd8b5c42812a12a2db5490fc3ad50d7d03c72c0e933ed8b43f8e34124e272cb39e06e628f18acfe4488dcced67a2c47008801e8d2db5dc7f7556d38020d53512993f3efeb4b07fd1e7b631deeeda74983011ca401ec7b86eb2a7a4d341f97337d37ada0dbbe124fe481ecac3e9b8e8f3b8b90ccf81ec028f2ee4e62934abcfcc2647966f6eea6563a0fc8fc75348f5fb3d2390db24d49858bbca822217fa81d240cacb7b2f6c2e4bad8a7a112b83a5d35ad68ec1cd599afee41fd4e860097f33afbc2cd790b2933f1194549c5aa3fe5c651a456c8ba7c8fa5ee5492233c21a80bd9216fcfccc03ecb76af3849711a0f69d5a261ce94484c30f4b74ca6cb4d7d5c4dcc0be1f0390c208e1e7e863700c6dce7ea5ab3831c00e586094a6a1f3b32dfbbf99a7581f90001dd558738804d0663a59d77407b6ab1ef3a82c156bc58d5a694a365b300a90ebbcddc49bbe5ba63c88e7a6e0faf5364ea17cabc602ddbf87a4c2f55b068ef296be5bb66befc1e37ad77f8e97c08f02d17dcdeb47959b0f46c2ae2c3d99a948f2a52c5793d53fe57876c38336a74786042abafb63c2154096eaed98598aed76da5a17ae179e79f848b237bdd6db63e5fbe77ee28b2bdcae462905ce1827800407317c2a42fc0dc234b2183db9097c0fae23da91aca6b1b7894537b0dc8524536573a34ef68596021cba863ece0de4a068f806d888aa03ed88ad92f375860f8885c5533c637a7a330c24aa0357f007ac3678e59cb1f6aa7c6979e15fd107a98ab42a635a3c3e70b58a19ec73b4bdc482000c3dfb4af84012ea3957d3d30b80857d9e06a2e677c84e5d9041ad4bf22afbdf0351f6d5c7a7a2ada3dd5ab4e48e37d51e5fad56cf9963715438c5f04b9772773893a59e2e46c6b7e19e9001650b66b469f4b1c4d188b286d5ce8b21269179e772147c7cb09eaee9b9de684ffc33068e5d346e79b710d82fd1278aee64ddd4ed37a944e6c745217c6a626444aa95b565c1f68a12cd2b86a61927896884bd5a76a9df4f6fe548bc16444272ec1e856334d64e0f32ba90daa77085b0683e3e010abf571dc564fc703a12998c72b6712386cfa4ccc802c850a3604bb0b2d5cd2eb6e788d475ff198f94a220c925a32ab6d69b037f1b9f0f4ce1d1b89cc0d07fc047073657405630200033fb971149dc9881cf31b7bd90de445f0ada69611016c5fde4af5bffe2b40a1a27d651a1d2127b0a95539b18fbb835f5145c1c4c7492866c6bd08ba260abb300720d2d42b729b72c6166f9ae0e4ac09a0f6851ca65444bed00b72b7f12befbbd007fc047073657407210252a4b012198c2131d70498b5939c401c01eb1178dfd58123b55766b03f008f7b00")); - tests.insert(String::from("extracted_tx") , String::from("020000000102cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae0000000000ffffffffcbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae0100000000ffffffff040b8e11e3b8904ac80caeb16af1c93053f8a11a963269bcefa96823d75b8640ae9408a337e7e0ecf24c121a17193623254c277a306e9fd39cd5aaf8b7d374f4011c65027fa518c54bb326d5ce3da5c2eb8a6521ab99df86b511477d0f5ebcd616f063ac220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d930b85bd6dc21b4919f6ebda7ab86ac8122c793be3fad19e44455945ddec8b59e9f6081271c10f0caf52a40e015e7d35966dbad39525a6c0691d4beeb3bfb22af5304d0302e71fc2fff37aeb6d2e2a7b7f2308d4ab7d4bf0a4cf9be7c06e89a66442b48322002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84501230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20100000000000001f400000b9991881df2ec384ff5616f6c03d45cf033ee64536297c3557f9fffec716c1fbe0970cb1dff96101101e24bed1a66fb0794d2fcb26aba11e7f2393edc1534df8a960252a4b012198c2131d70498b5939c401c01eb1178dfd58123b55766b03f008f7b220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d00000000000002473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801210334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe700000002473044022017c696503f5e1539fe5cb8dd05f793bd3b6e39f193028a7299a80c94c817a02d022007889009088f46cd9d9f4d137815704170410f53d503b68c1e020292a85b93fa012103df8f51c053ba0dfb443cce9793b6dc3339ffb0ce97af4792dade3aae1eb890f6006302000359a33e8f3d0439eb7d60aa79255858269bc1011e4cd0d4aa753bc2793f9638fe70dda4a99191f08700047a8b66d9cf7a53bf70756013c8630419e3a0bf428158dd02ab6e16822f239df0a6f1b67b6e1335509a286b30c4b11a22dcea9f95d513fd4e1060330000000000000001efdfbc0022a6437ec10c672d76c513868f403f6b9706e09733d6624e3cda831c2c199dd4c5763054a1c219e079e8cf3ce0c00dc2f16516972e1e64d576adfd9f5d778675c8a3172450a4cc82d6e6c59f2b16dffddc902d0aaa647b750d6224cafca7239a4fa81219cf2ee89741ffc5b7dd7e47d332ca931cffb1d1d432935a6013207629118c965b7a5102e62c43ca9d06bca191307a476738548536809ff6b01c6b5b25d76ff2f67d99e20fdf7d2eff6fc248186d21d054196023c5e4f572ccf0f3aad8728c46f2ff6756ea39de46028610a3d26cd42978b09e0e29e0a8aa46e4fd39d28d028592560264cf1a794c27f6c95d382f486dfe900a81d9d92935c7e0e6306549b3e49b1f60182512ccb994338c3541a2956139b2ccb3dd156853105abf5fb394cb2c45915dfd4106c7472dc5d360ab5bca408203a3fef58b4dd33b0c11c367dde2f19c8af7682be067244bf49a2b8cd4685f5481cc31ba27fe2f3d7b7a353be9b41e4eee2342fd70b8408c91951c71c75dde8fbc03e3f28e6d3d3b41e0e963d3ba0c25b2eb50560c21221950b0699d2615f0128e6cb7fa1b04ac1a046e569a7e87df98c14360b8ffc43db5e17548c7ea5056f84ffd14f4cdfc68a4f10e9b391cfa63eef2c2d623e7cdcdfae2fc4d63496d81462174ff360809b7e3b4305979d9cb8e9ad5b0f012494d31ce51ee6489555b09dddb16641ed9e2534fc34db99d2a4fa736eeabacf2f8cdca97f9e84c964277c6f30f1af7fe2b51b39b487d56ebaf593a3f98e811cb09849c5b445d5b7c9ba37807bd0189c8bdb2709fa70c230f9aba41dd3c62384aea6e1ca098ffec26367aa65a09459fca074d1da0365cf7fc2d8310ae099b838ca78e62cee10f95ec549faac1ff0f8236fb8cf2c0f6654e471d3950ef45e0159c44f9e343d05b3af59b939cf76090d040376407c41661eeda7d2cb61cad0088a286948787dae0cc5abdcb97f7f42026c65a13e1df1357c25d376955942adc858e73876e1d8812969055d55decac9a689dcd11dffe5cf6e06088b93a11e153ffed104266bba472cebffb2b0cfc8ef132309bd7836071d3b6ed459a5950c64cccf230015c98f9210f2d57b7f3a07c382f3df09f055c88e1f312db0d60d471afdc0b780d319a6229babd8f45edecff8d1073fa850f755219a3ea14e7234cbc7590c60eba0ba0cc1afde6ce91c8e8835b1ca809926b3e7d8d7a0941425e5f08e884f12693eeea1b3651f53da90972aaa37d426f37db3edae4285db114cbad5964c269e03b15358ad2a7242e0af538a594fc779ec3c43c3d94fab2028310c6d0acf3efdf0acf028ee757c5c02bb5b8b691aa5eed1a62acbabd0d61faa478cdcd54c6db2cec6144d8d1185115097a7da79c16ad3118d12e36dbcb7a70b0ddb27bddfcb1c6e5426b7e411f607d22c3ac2b8d3e41f55faf5e2105bf3b943846cc4c33edc64f902c1eeda09c8110d4f3ed0a5e511156a3e368f02161b92126abf649341ddb8ed03d1d41b91fc34548c6d94dfb47c088ef27a3cbfe1c9cb05f2ab2f18b8746394c8080c4cd92e818e46f861614ab870cb7ae3446e376793f3a6568a2ccfc2ab0ed0365567671436fee6cf427b6410a046d80b9d88f094924ad370da363e8eb70355b711687e92d88a08ed811ff241c7a6dbbad9dcfc18e6a42493483b938e36c1edd2a1c6e078a17c5d145c9c058b4dd69afc44c345f1c88afb95c1deb5c4994161ba25783165d43b9e50a2d8333a8037cec2ae809a3dbe026d6ba40d60badd05bce73b0f9f36966c30b9c0cb5776544c1182024a96e746a3b01f9db10b45aaffd3b055b02b40bccd41e57c10719bedb0fba99a0f6b0868b186fca0397ab8c219f33190f81e4cce2fbcbc0975c394919c98fdfd7e25a33e5f31fefd06c8dc409cbd3e743f0f48dc90abe45b2e68948436caa37fe9932a77b7e0fe0819d8283964b0eee2249d9190f3eb0bb8178e10a287be1059f35cc1a153dda14def65f3c49cdc5186da86bd3e965446f914e3c9b4cbfcfd2c379f306c5ef8844c4fd398b3c6f96601e90d2dc8810875663939f63abe3ee2e1c8a9c2c2010a01d0dcaebb556a7c98421f8e6465cb0434c07dcea9db1a142f9684e50b06c545785f0dee4def1257e4bb22d87a2b37ca9eb53081eb8f1ea0439c4575abac435868a36552df569ccc63477594ccf7eadfed6adbb8e81800a2e2fdd7effdd1e2f09cf76c9e780f6f8eb8408a3fcc06cb8bcd28db7a37edb0232a6f0e509c684318f179d0c91a97718ce3956c266790361ea3a1bf70cdb8a2f2a59b06dee18075745c7302db9b13a452c188c5624964af2d5d4bbb1138dec59df5dfb077a0f62ac4db3de81f54365f2a4a6dee63a6092b4660d3f5dca3cc8de3bb5350f5dcebabd515c72c9114bc58d96e2e863106f0982c2632bbacf2fe5cf6a8df880c550f7008fd09227baff82d4eb031802fbe7d50f6174860c70fcd9f0356e34c0d45df66492dc309b260b7158adf678e2da66348ca84de3e721c6196e0c717f59cb802c6866defdd9032a4b7da82b816d9681e5eb9115fc2a572fbbe105f479ab339bfa5961aa1920346c9ae4185a74aa828da78a71e55876c657249e83f5812cfb055400da1db8bbb5ed3ce2ca4655b0c39b698ed7d235fb0ed4f29a7e8925cb873176efcd1c6981dd23865468c6e01ddf61fa3e40d6fed18d8e3dbd97a08c68bfb092e441e512d44089cf563509785dd58203949a1ca9b66a700db14060a760aa404e5e9f31eaac015f1527f6d760d8714c88040b87fc8a4d183230cfae35326947e28a7a37eefe1d77070f5232a0d67e278a45d649709a7398cbd43094c5001263671517f83e62e79fb75e6f9bc592fb3bbececa3f597dee71dda0fc909079ea49d81554d2fd79d1cf3cf25d1186efb83cf972b7426600d7d6eb6c48a5f0e26af640c733f3f771e0926e6b38b6f39d7882b0538dcf281d92a6bd361bb32e16f3988d6790fa0a45f549e983f4eb68ce5ff11647b37f8e4c444aae8bc0f7c49ce7215545a29215b55f37dc42aa6add6fd1fb45d9ae580434097e7a8686e23cdbdbf6f8b6b1e5579a7908bafd8878b004c7c94e045fdf2b94f8c1a75ccee7bfabd9bb6d0ea8a60dca61053636160c19f8f3fff3d0330fc95d20a1393629f33f281e5da80a5ff66aaa5eefcf495f8bf7e24744778841d7c633f01af2305a122ee093837998e87f060105ffbc083c0d71f68c2c63820d7a547d9af5618544efb9736af56736e73cb696f191c68970ea1deb587231c889672b3b5399b9b5e915e3c567474c3905ec5b6468da826f1a6438ec335da847db540a091ab311c6846f96a2f17befa2f29ea491a41d7630e42583ad1212e6c606dc258a49f756e2480f90775c04c5c533300e37f8bc7afe7b155fb95877252ce4a53f78491ebf9d8a4aa41da1848633816542901d56e66f126316c80efdaf4b457f9ce771edb012a0b3c27c717f5cb3cc99ffcc959a02289e30d5b1ff936320579c469bd55cba6e79a0c5f1bda59981b71840a8c1ca56863e91eb21fbaf84525d5f04e0f282d03bb56d6dc2352f163d8357b86bc6e4e621bb693db3565eb9ef5629af537874c1cb3459582463362dab3c6fed7e574ce9bffcc685b8eea61599292cc69860c4f9584818182f94d719dcc463e9a6f854405ca2deb3de29ffa1826f795b7e7ac2555c0ee576c75494cb832c59de8d9620927167bc136549b731ef79a39fbf8789831cc003a772fa00d4d699d089d47037e12e1c6eb8c20c5535225a33a1a787ba866ad481e9a4d689c83d75f1986405c82154e312ce8b3494ac5721b96193c025bb75b2cc974f9171297da058d2ed4f00d94e60737af29da660fc51fb9bb4d241e78c9d1815d7e3ea90aa541c4c512ab423ece93f9ff2f479f464b953b4171217b758b280c5d8acda32cced7bb0c92cd9b405afb3a8405602da914e1831fec5b6a291f90635afe82b9389a8b41d957f81be125de2f943b7cda9e873fcd74b446bacc00bdfcbe643053f6cc8162c0a98343242b489f59f7ebac016a7fbf620dafc15c8ecfe20b954153dba19eb81087673a1e847238864036e9a300239a00a5a03d8b39aae2bc201c04c477b1f2a37552670c06ea65551c5c88a42476d0d797af494b077737cb48050bd35f4980964b8b9b98bde84615e8fdca407230f5d15e97ae65d63a96f3d88518fde12d6a82881db5c8d4cd79e724312e88b394129de3569c5c99bf842a90f193c91fa55a82116e237c877dec2da6dc652cb33e33df47420c5238fb6ba5fd96cb77f0cf6c8a12be1a95186680d16a064d9b1a7c2461fdf5e0a512a5a3ed2f8dc0eeadb6c95a658aa1c2713fea473de51f65b13a40a2fe64e5227bc9248f59c2bd60dd2fc14918e333faab6e792ce2f0597be47cee70f5a8b788a50c9cd153bf24786aa80f631ad21926e3285f41c5125a15c12cc889112df0b1857020160122c2595ab3359bcab184ecb32f7cf8f38eea23f4f9135104629d8f1e8273c44f8afa129d3a74cf58ce494214629cd53b99a8489ddc5d339e317ce75dd6c5dbd098d811c56ec5f19c00fa00b5465e39f8f2022c71ab3ed0d5a24058c197719551985ab30a851390ab5e11420c521b1398bff0038d904e5879db37d60c623a0a82e191cd0b6bd20a9e956d41d5daef703bdedd6bd0e20fb096423dd39706e939e796aa8bdf071e44791d2e1ed4a81ffd018cb79c5b6bdfd6297cc6cd379845fd7ddfdb0b83d7b26c21e3edb58185e71472a79cb65322579bd5e0e7b1fe081dcae5447834d70459f8a96b341a26d8922a2b1412f95f3533e04b5f65be112cca03ca45ee0eca10adc7593c78c041281c880d879125e585e68f5c7fbf8686f245cd736ab5aadc57c032c637b753b49575acf4bbff46883382f408417438d7817097accae3fc54afc6015b84b3b05627d7c83c4627c87727bd24c4b4d96a08c64164ab8d4abe3fff5c3b09e8fd12498e3cc3627e799e4ef72a870cd89598d51ba396655b4de66e48997faa51d05d581c52f52852cffc9f89252f26d314d2fb8fcbce197f3a8f330339c2ec3c710710b74f0915da3bbb638b1f1a0cb0c176adc151da0ab52796d466b23e8a269c5b22b76fe7586cbc217621acc955a43571dc04f69deb50066cc587595cf0ca4e9a00a261ff2791ada8de04bcbbea249d2a7840bd8fd3ef98a248eacb7fea5318b2e207668e13ab4e5578c03315d44b478df5247d8afd0624d2a57adf85fd16d86ae54cca21f6c91d8cafb3b31e3f9c4e903c04f39d67c90560dd10b2d28c6ee937cae01e921c98ddd833a9b9247053110c0f29d2f35f8ea322a738636f17648b627db622a9cc891fc1d066d5fcabc168f1b492479b0578d0bd8de0298d4bb96a4351714a10a39de49d57ad66bd6b458ae0d799a19da54bf620c0e6979a95b61a83cd06e46d7d263d53d66f77557232983268f5fd01d10442af0c840ab09c6cc4ad77add6379eeaf98f7cdbd70fffcb035abae4efecdb7e6f63ed8acebd8449b3a910e5eb06b0ee6d80dd45026c9e6c2f978f813b2800386a4d7ad9d127d76c4286c1b2facccfd16e6a263ba3e2893ae5e42049d421e08a62ee9e9574a1f70f0add7b68344256592513cc15f4bc64c5a029f60d617c245c1c34d06c095b2d0a9647e65dadb33ea79e3e0ea62ce55347d24eaab7cf9fc33fd70c07363771f78a13d92941daf7970c97b43d2fbe3e789a52ae7bed64736e6ce59f95322d20f9d6dc00b5824a0ce9072dd051c66ac20d39bd953f567a831d75fa91fb4d49b200fc893489e60df95c2810f7fc57b7f6b7725ae600e1c2def6a943b8d111ff3e9a5ac80aa981fad8709e98ee1550005bb8f65dedffbfe3793abb46302000318eb22887126df9062243038440ef3fca2aa024fff8739db4930b314822b00cab172e83c33b7e5b959b0c3f27c714e447120833ef69bd634d1e011fc3c2585beaa882a29c2dabddfd31a48c0255d1ab57c6796aa4625a546a02cef51a9ee2e80fd4e1060330000000000000001cb6f1101e2b960c9a2fe480eb88fc76c63e58b57445c78d88e04f740580a36d6956006ef12ba606aaca89796dad5ff7cb4c4c7f4e65a07fea8a2ce3b58b265d4b3220013a09ecf4e01023aabca5586d61ecd5d7f2bedceb8b18a8e41451c97a192098b196add06a8a6b619e1e731fd9ae2973741aff6358c1ad45cc873a2d497271e3a20873a6f701d4c44ef670c8c7a9793079d9bdfe956bdc02a52d1de8b2de58b0f7d309240999f13985fa8c98e57fe1bb75219ae6330e9495b523e891dba7885a5302817d68a9891ae0c2597d4d7833b91b073c4f9b27be1cf81ca1c2c1014c57a4affe7b402c0e0c1862bd17bc1d43428671a106c26cab61d5e4ffd1c01f6af1c6e97f7a25ae8aaa8d2c91c57881df52bd5f242b127ec7aed5880101caa01783884dfe943ec9764473323f59b27a204f34aa1fe7fd4433fa606608b0f253247d149e3e269ae5445e917390be83d5650c05859e3a817a6c7e561e2b12baf6d4ca4221df0b7f29fa134269139afd9cee5c7d60149dfa23031705c6a8b72d00d659d7a085de8330de2e5c168ee3eba2180a9319f5e8e0806dadaf0fffbc2df839571360b8cd32300504a527cf914da7a1e788261c9cca2872ebec5a17cad33b15a7a7427c200b8746761359194520f0da1d7ae03f26190d07cf92d515e04815f514c66a98997320a028ad24e83182f213d991accf19a8a59003a2ca666ca505c0d8349e2cb22887efb7db9e4a4e3e2d8da0d5f032603e03f48fb967fd018fc99c6eb72acee4178edeb48703903a89e9462a2d1f447234c3373fff8b205848c7a9d6e45ccc31eeeb0105ed3af1188fb847cf6f03a7f0a646fa325b672796168dbbd9d1d19b2f41685b18c3c96f1cfb7ecb1dea132e8815b62647820ac4b12597d8e737a01a970704b03ba5ae68f8d64a1810db10427fbff1d74cfac91561484cfc8d3b23f74ba0f37e7db2f942c58fb1dd30f6a50c57b5eae720c6ed69b0fb81a6e0260c53028c732a544391e319987a24548230378f8f1ddf65a2d654c7b26951d5c6546cc8fda6003228e8913c9e3c5adf7b7b72f4ff5c4aedba6096097f9a4b58ea1e060609e8d1f0fb0e5dd905b29fec72b118d40c5f599a63f9a37041742a7f1af3ef951c31833621842ec212f9fc5cd3e8c08278ea192f8032ade447d2f35ab59810aff371f598b7dd57b3cde2ad854ecad0c786150748ac241ecd67cb868663a6fcbe9d68c3dc221d4fcec9b0ad89c337c1e10b91a38ab1357f260ca3a084da536e56262973e6c6cca838601fb2f335811375aed78295c4b17d3798d39d4cbf6254ce57680a102907e5c08b5c7ec0a1e73bf3d7b8babdc6156c6ca3f09c0423d6716ff4e6ee0338cfd778158202b5ffb60b74558dc6d0be9b5aed6892c4e0ad3e20de5b604b2b010af09ceaba7c0fba5a7fed39d31cb2769909a251ba5b0668330f734728f5c6786a8f1a35df77f3d739eec71d9268fb2a494a14bf7ab91c075023e76856d1745f5813d83878822934d0b4cc0538048c3f96cad7aef2bbc49bab139915dd4998ed3c6701973eb7913530b14c688f0b344ca9cb990de2a9b12fa7ad8b292234a33428b4d16813693964365bd412fb936c1461fdf8dfb0bba31202685f29addf95fc65f841e97042bc5d82f103e41017c6ac91d3d266e12db2dc195ac4f6d4353924270c7144cd96dcd07b9612e2bf1e0f7fc46ef83690648395c575a13c2b2df0fa04f740340e6b116b0866a401de22f68fa3f621d75b9f5f625cd5d5d7e12a5b0ff795749d742eb2648ddf068a451059390da566b3de84f9d528b2663de7dcc562eb014071e8277a054783d322fa67b9e5261b87e9c354ff58fc52bf9df404139311d6bf9650658fc94835a6220ca02a4bfbf46b2af4f30b1ba681c0de7c134d98dd52eb1e937c191cc9557aa73a343b99ae0b8954a3e929174984b574da75e90a9b71af1215317b04e4090770ab596091fc05c82235a324f86280f7fa081360ac758c1980c6a6763453e6b344611e46b05760941f9517ceb298ed7a2d6f96b11f5719ed0dec803c511dadb8d056d4ca06ca0ad090558a4fbf3a886f3ea9c33e1bb4bb5ddef4798cdfb384bea75a3794c42a53af60f12c95fe9b38d7f6a5d914ef100508091fc84756b596b9ba08d1dc42a7e253435b5481d1470ef00a1172cb036b5bdfaccaee02b15d099da17f9753846226325232e71ed9b48f57697bb3d1db75ed214310e6e3608ded6f188e37b21b96eefaa396db0df05a86416fe64aa950eea87e7af4407c828a8822b17be661269c9f9e365cdc79d20503e2d5e575c5387fa961206118dd379834aade7727a1b2477a24f05f6c2ba3156fe7f5b5ba6d7487b1a124f38e3ed3cda92a8edf05f28e3d699f0c12de9cfeb30ec8d4cd253287a6d3f596db0c06006a531e80083f5b41ee26c05d529e0a59ec151b4a9260a7ea8c1a175ca41b59f464adc122f448fc43e90dfa7b88f81caa7a84e3d6d4dbb85e5828b6ae7455dc2c87c8d9c706af2e62763675851b4ca449c9c0f95d953ce53c5327ba8981321a1cbfb76bafac7fa17c99567725d8e0ac288f3ccd3bad666e515156517281c97a3dbfbd5f345f8eb80bb3c4230301a38b7c920d74eb910d380f884a683f7d3e2738fabf9646138e8a32c35e43786e67925508e4cc7b1e7a36abdf6a497077704e216f1e730c20ecfcddfbdf2484d8eb0ef9b7478f77063fa90b8afbcd019d1a584df58c537b40b193f246598ae4c53958a947dd3916b14a5a4227f01bf543a8c5d6ab8eaefdfb959c8715b756a9c797fe39229dc56a86364cb367fa37e16e96cf8dca1fdc8b6a46ce88e3d29c75b6cc718ca8c28e9e1ae991b28c286107c1dced150814d6369cc8003b2976018941df7fb8eeb68be57adcf8a0e813d2fcd16dc390ce17dd0a91dd674d766d21b5de7f4678a548d75cc3de7d099b418fbdb66b2a2b12a56b1dd8b3f84a7b45e36db9bb63b3ef9fdadebc21c6a75364173925ffc69d481024e49076dca105795e7a64a3c82011889aacf0114a1bd31414e288cbb63eb47d399d0e025a54f11670c8ad4a793d0e7ebd3b0d8eb30b87cf62b131c61a4c55d2e56e47ae99fc543c57a1877ce44dac4c6f9fd99552701ade43858e0b4020230cb4d42d1990bfb509471a5c1c5557c29c00072c5cbbc056de6d465ea2ba2f4a1a5dd604dbf998e834b9200c59fdf90bec38af9218e47ea5ed5512cf8b0146126a15d49bf915eb893ad1ef83d8faf6c93f944ebce3704f930b6f69a1afe767ac2c9fdf092c804c7372ae1a64bca3a3b5a31f2ad430ba9e61dab3daa3be90a538cf0fba00796de511cddb5a594f14aa6d215bd0be19c0ca5f043403b7dc56c87b092d9436eb79509c3dbe367c2fcbc2b09f9818cf5a55d5ee0e477888166bbfece661b62812ffed3e4167ecc81dba148f89a8f2e7c27424a2ee091ac487e68fbbf9798e8caf46b35de8dde66a7cad6dc98a426ea7b8b930cf2d7d71fe71066dbe51e8a1c7151e97fecbeedef3d6f8e01cd5576dd58097b46153f9c3bcecf30bc82b4cdfb1bbfa826c7c5b217a023e4da02a35d0947b2c4d24d50a292e4c70fe854a420c54490d4850ee8c372756671fe130532f89878a64977ead60bf604b73859ae64ed62536423bb51b30c6fedbc819fdae05cb64b87b153f4252b832d6b866100a7b307d1e705643f96f0724858e6211802b2ce706d5424b99315db90c7d74fac66951251f6cb739ea008f839c7f62318f795337ca4ff05886a2640819873ae00b933081b64da1101d1b17451357921a2f4d4dc86c92a5eb346fd6cd3a63315768b94b90a15162aec91cea706b9221330db154d1fd71acac90be47055c725bce38710f1b4b4144f331cfa9fe15ebf6535747669e4aa1f0d72092ef395f16a4ec9014029b5c9d1b4bed9ec81a7568f8f1c87e0ce0f4ef9cf49e3fe4960b0b7904614772c63147f3c5463fffed182919c4973a8256346116be40b10a38cdea5bad5878760daaeda57476e86ec65e58030bc8ff99ebf017e9bf6383f981edc83b538e2bf4bb573637e6f4717d74a3ac71f5e151259b29c1b7226e3a8ab176baa2f27e3e385cd48c6f072bb6e8e9c92e35d7ff51177f4e3553555d967c04befc1847003a8592738c82eef231ce3d372372a19a01b27dc7916f986ff3f3ea8872d4986bc1ca649a92924c8f582ae2b44028e711e955d2563c33db3b7734aa246de553dab2c5268538f7c2b6dbe9a70657e2a26e52f5d216dfa9aa8e197a227c86a7d3b468880a721b804a0c51af1592043eee7fe3657b40c1832a858cfb4e037d208ee69c4fd697b929383a971b2a0864544505af2267e334db5f3f3f4ed88e2f6f2b3d7b96016ff92a120556e4d1e50440943893b00508c6242bcc41b6d06dc29ba20564b42257b9fa1b5f4f453e94e72501d31e8947e09a38261020400db4b8cf675b1854639a962a57905cbbee14ea0daa9bd281fd635c8f900fcabdcbcfb140f4f24b47731782ca899284fadfc9d0d6eff77045792e139afad34c7672bacfa22d85fcc05652178cc169bcf52ee3cef281d99935abf9c9910caa7994cfe33b9319d9854aa6e2590a86297f23b0cada7251a6ee1b2f3d2cb5a193cae8768d92f556994e416d4bcf5bba3a295d9e2215291237df74e3c493189bc5a27b3fec3e1a1329c6c6c75e0802b40fc74776476dd2d9e3453ec1709a8a2d162a936d9fe7dd4b6f7abdadfa429aed4cbd5896cfb24a2d91f1cee781d0ed73cf7306d6f9545fd3346c2232b8799553357a5a531d6085d04af5f183019dfd3483baf23b0ba5a6b58bba4b7a1eb0a32626bebb5cc0c4dad45c55d135be8b0a4dee787ed48b90a2a3fc120a753b52290c27ad0eb32b668a9540986ca0256c1676debc4d19b1b80bedd81e505154264a199ef1a54e1fff1b3589fbb6b2d87a1e04e67066571b68fe04f030d473f8d135585f8b7be91f0ae1a4fa2f44008c0f727f6aba9c5c60c3a9ff22911e267ffa2a5d1c71ff25f96ad257be29a2ec641e2055d785765cadd0c2fe513c44154e74f4b8cc4b24d9ee2f6cfe245549713f9dada1935247a2ac7ccc13c4a5c00c6ffe7ca33c0cde4c75c4fe2ea041a965e4c7385ebfdbc348da8c4216a02fa829892c827adbcbb87745120667cdc5a4aef28b190a54b422df45b8547c447765838dbf9f05de338ab672706b59b2f0644d6735d9316e64a1a15d3dfad893bb1bbcbe1b574a0b8ef5265e195a929148cc5e97c8bfb032d4528b523b6a6b29209428f38115cd102e3b4e268333e490140964278238e7ea9638ac34559e05300dad0c3f18e9228474cd3a7186102967c33fc14f086b4f1ec3957d87f2609d140dbb9e7ff793101d1cb90d004565c6a32924715b1bcab483e6389e2e824054edef350f328870f16412aca0fee39edcbd02a6a667aaaeabb6654c4762c639a26286a3c1730ab75defcd9451b4377f6acdc3b905684658c0844d904c47d313d85eb54963fd71a9a76dc8e345e479004f00e446b886ec41cf7bbb9311463e877aa4e357a0dd0b185a5cf12244296f5f8568e84cf6ac3b6125db6897e4e7c183cafc04f61b3263456f61a7880b446e3cffe986c3bf027c7deba490ec8544d2627e6596ef8f8a5cb577796e7c36ffc4f4346263b5d86ae1d7b8d04709367349d590047a8bfb34fbf6481adce60eddfdd1e148ab83874d70b5303fa0ce60c0ba7a047a477dc4c513d2218b0bb2bdf9b60be9a39e928976464e333ce0cb19aa21fda1c6851c6db9d5bbc6552e080f8e448637af711fed92e72c8d8530187de94603377dc387041a9eb42ac70b3923b9828de33bb337d55409cb419bf4089cb2bec79ffc3afc6dcc3cb82bc903d956d28e30000630200033fb971149dc9881cf31b7bd90de445f0ada69611016c5fde4af5bffe2b40a1a27d651a1d2127b0a95539b18fbb835f5145c1c4c7492866c6bd08ba260abb300720d2d42b729b72c6166f9ae0e4ac09a0f6851ca65444bed00b72b7f12befbbd0fd4e10603300000000000000018b6d2d00790f618171a9e8eb6051fc14dc27c502a54f5ccecacb4bcb350581a8f4b1a887a1e58865a21f51ef5098400c115cca84f489637718d8c3ca4350ad677374d40d2b64fe949ca34bd4ba845a87c7693421b70aa8d852e021aee329762883b9820bc0a47ea2fc6a8411ef773703632849094e51c73997c67f3e922d2801b6abc445375cd963a62c2bb28d733bf9274fe503081b51a56023a94200743e7d38865c190331449d19bf3d4eb7bf0b2a9b90696484aab906b9470e10946744838fc428f88461864d6601e93f10909e049a315fcc0ea7f4d71507fe5ed19b9ac2f55b0d3902b153ee27da9c55ab66debfb5ca440dfbb1a600cd8875049c4c13bbf242d26b10035002c7859f9c3ea631d955914adfa0817e4801e85b3f250cd9e7523db62c4ecb17a49028a02a1b61eb96a410643f1fec0ac664d96f99a1db4ac335c2bfec2946707c3c779a56373db197039af9a903e833af6f51de5cf8fc667dbf5416845d415dc98641e0984ebdfab88bbcdf305f605d36f7a472a516206d7ec722251e269800a00e8adb8f2ce161395c1c6ad4b406e1fda77bc7f0af07ea075011cee6cc5e7fd1b6e96e321171ca7d28a35595ddf0b0c831d28a88d30c7391c5832d90f906539aa49185fc6c0864e2d10b21160991fc19a1d084006d03fe3fb6f571f1ffd9f06ffbc0c076689373f9c2f8655758f7f44618345a6d5f8edae46e73a09c38157d5c39dd51a47756ea761e6320d6a91a1bb22d8dd35e4e7806b0242bcc4cae8720a953c6f933c0ee3216513cce6742a2cb4bf44553d8eaf175471dbc0f71c7c245fe99ab4240ccac637a16c82f0c60586f00d83ff852af48a239289d8b70a2638b0aff02572d6d2d68e22b87ba93f3db51bb27825265607ba4b6e9a194c7351f220b9e715a23237c40024fb7cfedaf7c8e0a1c4c6aebef8841fcf2609a3dd7f44dfd8895077df41f10790372eac8adff5ea7eeb28e371b4700d5044b41fd358dc4ba29158213e0f93711026fac8abfbe7cd80a939477ce545bc91cd1d32e8f2268563b0fe3e80855777d51cdf4835050a557d3c7b7f6905ba744ae5450d22837d2c2fa0c0755934654a78601a1fe236f11b6d72f368880ed938ff4a2e8d82c118493a1bb9a9ee95cf329f2d175d467aacc2c6cd73ed59ce64d508604db77942f9b7f3b0f86d913d3e1b489d2190a6da1ed997ab1eee356c885270e4e0192acc9c2b8702107c96aed654318bbb7724b913808dd2cfbbf6ace8db9c4cbf26f2c90a76eb967e365c58855b83550819cb5b28ea5e6ec1ea153ad3ee5e6292a174f7cab1b39e852194a6926bdc4d42326e17998cc057f614e91f6acab5a5bbedd93d9a13dc61977aa2accaf35370a3f1d3819c43c9430d0e767e92de96bb225007a7b6576ed7c4f05c984ce2e437d3b7f7f50c270caf90f8e5dbecb992be2972ef8d79c7674e025ee06b1302bcbd57fe5be9d9b4e38f17d9dca898ef3d71918550fd77a15c7aa2b66ee1a2f38b81040f3d6ec6693f54cc3fe39515275849e9e24b0af3e81705dea95e8f1bb1b4665cfdeb0630a5542a2857f2b58c36761d743299d77872d6894302123f4347702572f04d9876191d771e87655c071fbd29338eef0f9acb0a8ca3f0327ead8e875bc2e7ba38f249e6eda1fb74162e972ff523d20c6638b93297d406e9b2264187c06d0a78203d771f2525227d029b27b23192f747492b9774b12b039729ef75d11ce8d701e56fbb202f3e4bd68686f096f13680456529e5f132915595e0e0b4061b3014219f1fbef4d7403dbfcac01c701b7727c2463cb838d427e07706400be4fdd9140a800e47e7ac15a7a8a897187a38a0080726349d8b7566252076b1ae1366496b50e9a6d236837ffa0c4c3e61bb409a7d9faf8662109ef7213007a76a6d94cb79ad07183a33a4cdedd78896278a3b5531ec0efda9d77076d85a63536b426a6b58c3d0e8a46faf0fdf678e4964272e8410b346cc753edb94a61a2f309f8e753ff332f5b15215e0a20ef32e6a6faa044a431764e008e66b4af820bb6afe4d8dc1679219fe7614482517fdc523d4d7ce2bad9d59f7b9aed89b813e5b36b58a7c668e53181c0e1da45e4ba3851b46de8e056d63e440c471fbe23fbffc31ece7cd20658784f2d2fca3f730a1f8a90ea6995ccb490fca475b1441e38468433d1423c1d83a20b04f1216aff13c8e035c2ed389695c2bb0bedadc38c8a6222d687f0235bda3566c0865774bb6098acd674ff9091db1a6c4f0c2955c1759730b361f310d956f892089f500eae0084022e610ca4e758ce2c680d213bd1b5e00a6c991976e93189159bb98a1e4eff14f681d47694060126c0852ad52489c15d7302d82c66aa830208a9fd13da87a2aac3e44dddae632f2e4d56dc768ee6b3622c61e59aee27fee5aa0bfa9c56402ae3525f00634b11381d0b9637ac699e4c4b225c32bef9dc563e87cfc33bf07450c2cdd015bbd94df63697cdd9b6cf4169cfe1f626c126dbb588c57542662d02eeed561946ce94b46571f72ca3cf7fe52a8a6ea24fa216f01655dadbeb0f74e383e522da69db64b368cb155c2ba4c4fc8aea8745b1081223317003f0cd7ae620fc7d9a6c9c4f39a237d5d9d7f3e756c77daeccbd5d06ed28ac2f089db5449340872bc444aa4aecf6552621b84e4fabfd6baf0e1b61cab00e5c2050bfa38899e9840e2dac55c7d5e7105f65dc3afe3c35dd3e8ebb1a013d65fb0b9d76665f3c4eff5b766fbb0c03cc10c411987ef516405296437a91a67d7398d788e30f55bc1e6236b317784504c53800cc07f4eaf78bac03a025a7943573edcc67db3d5d5281f85ee993238fee3580cb846efae33b45ee2ee1ad640b1d068302504521269a31a166435e8fd964d2e15048f299a95ec1cbeb0c8d5d119e24670112d61d56ea120d7bc30fcd924fc7b812404ac45798af3fb590570a4d7a3f41639b879d1bdf2c72c979105460892fb41570cffee716679eb7b4124be188e28ca4c68d206c1cc9d49cd7489d63372853dbe83f874579238ecdd28c0dc265871d6dccf782b571f1004702121e8b15c9d8af9e6812dbbe742812c7e7cd1dafbdbe3d189f618936e270855700be8f6a7b528f271a936a2cae204b44d909ae3f6a8bcbfcda44b430397b1c96187e5a8362afe92bb9afb0a0a482cb6c8cac39a0fb1fe0034f8a965a3be425b4b34f67ff38a8ab30f8219a8933539c1d06d9b2997b6de743c568caea8b269642b8503b546c9e136d0e47775c8fef45d4489e6b4747c6accd6fad3d34fdd6cbafe07264e7ae1e025306c97d77a130093cc8d5ab8e4abe095787183a9084c569168011766b47dade4e3e1353a78f9f3464d8237b7de02da10c7a7b8951bafbaa898003ad9de997c89d8507393c6fb782b8f41aa99d5c92d5ed93e02a2e7550d42f178739898406badb6da850e305c10063b1a687a2b321a1f867ddfc7949d9764493af4f9681137101f87ec3c3733c0ee23a758a69dd5dbfccd20e0e7cc8543c213688ef9cc85bf9c539d3b6758e24befb3c1b617b7d59a17e915bb985df8229429430dd3057a8225d22afc2775e352a2d7c2f2f46786d4e6e984fb35ac6d7e1b57da82a6d1470895e56521c88c166f8124a4f0c5ada7d5e43174e319c21b9416735858ab50958def63c9a38e853d28a0f47b8e601beb0cdfb30d87070003f957ae347d5b03e80890311ded8018de0227c430f29ff20f0d0d1331dd5f22cff547847c0a26c1fdc272cd234b668823635f68e0797bf68fb1e531a423b1fae9b056fb8c0589908cd2774a7bea8da465248a438a22919d35e0ed8c5020f06824aa856c1a75e0d50d8e9c2dca471d249a97e8e8055d0927432577ef07e6658aa6ab3e9f5f4f50848b12dcdcd9594dae732864f9c6253cccf39922b5f1f8e16458a0c11db397017821de73a331400a76c2a5a29c7661405e9f244a92862a8ca13bc86a78a36744e52019c067573574f75e01b21c36e19a714e9cc0860e9df8e659cefab57002dc2b3d1a2918dc20ff25bc0d87023813abcbbe29defa514bd71fedf314a140508c7e8dd4ace82d56cfd6307fc8299a65c8b3b0719881dc06070d670729902ebfa1dc0b88050e5824cc186454ec2727d0fb2f95eb677f949375a0a31661c7f2bc452426a052b160b0654bffae35766a5317b845582176f1ec52e5bb7d814651781e268cfaefcf6da560810d84343dab8a8b2f2f7976334043498f529d75f9dec893bafdde0ebf003ea7d43f22d8e4eb3afea7be8bd22a9adb9334db2d6b05b8bfe72a96ca2c5ecc925333e4076bf5b7d9ed519ac3eb87c73d0c8121b1034424991561eccb669807a722bcd43141915c9db90f7a8a8e732054970645da1845b988f21cd5d2a89abd8e14c0e6532a3db89e43571b795d6f475b11c16cd7253a4538f4e73d0e3791e0c8f3e51ce3d9645062f249549d9165185fe6920659fe72ae01f69c6d5cef5a01cbbce0fcfd671e1a0aac35d541210a723d2fde91f37c130657d8825662bc46ca7780e07422ce2e7e5cbc1b15ad29b8473ffb832f45c480e960d620267561b3e3112c54359459c3f0235eb6eb2720dd5cf65f88267e099ae87ec7e35b3a915f18a4ab67583ccb4d907637812d797dfa51acc7b5cb13ab58934217a562b00a4a3d030bd9d3565a47c95396034bd65d39d39a6e7795f13e5031d148db16eddba996e1e70730eee02c47bd8b5c42812a12a2db5490fc3ad50d7d03c72c0e933ed8b43f8e34124e272cb39e06e628f18acfe4488dcced67a2c47008801e8d2db5dc7f7556d38020d53512993f3efeb4b07fd1e7b631deeeda74983011ca401ec7b86eb2a7a4d341f97337d37ada0dbbe124fe481ecac3e9b8e8f3b8b90ccf81ec028f2ee4e62934abcfcc2647966f6eea6563a0fc8fc75348f5fb3d2390db24d49858bbca822217fa81d240cacb7b2f6c2e4bad8a7a112b83a5d35ad68ec1cd599afee41fd4e860097f33afbc2cd790b2933f1194549c5aa3fe5c651a456c8ba7c8fa5ee5492233c21a80bd9216fcfccc03ecb76af3849711a0f69d5a261ce94484c30f4b74ca6cb4d7d5c4dcc0be1f0390c208e1e7e863700c6dce7ea5ab3831c00e586094a6a1f3b32dfbbf99a7581f90001dd558738804d0663a59d77407b6ab1ef3a82c156bc58d5a694a365b300a90ebbcddc49bbe5ba63c88e7a6e0faf5364ea17cabc602ddbf87a4c2f55b068ef296be5bb66befc1e37ad77f8e97c08f02d17dcdeb47959b0f46c2ae2c3d99a948f2a52c5793d53fe57876c38336a74786042abafb63c2154096eaed98598aed76da5a17ae179e79f848b237bdd6db63e5fbe77ee28b2bdcae462905ce1827800407317c2a42fc0dc234b2183db9097c0fae23da91aca6b1b7894537b0dc8524536573a34ef68596021cba863ece0de4a068f806d888aa03ed88ad92f375860f8885c5533c637a7a330c24aa0357f007ac3678e59cb1f6aa7c6979e15fd107a98ab42a635a3c3e70b58a19ec73b4bdc482000c3dfb4af84012ea3957d3d30b80857d9e06a2e677c84e5d9041ad4bf22afbdf0351f6d5c7a7a2ada3dd5ab4e48e37d51e5fad56cf9963715438c5f04b9772773893a59e2e46c6b7e19e9001650b66b469f4b1c4d188b286d5ce8b21269179e772147c7cb09eaee9b9de684ffc33068e5d346e79b710d82fd1278aee64ddd4ed37a944e6c745217c6a626444aa95b565c1f68a12cd2b86a61927896884bd5a76a9df4f6fe548bc16444272ec1e856334d64e0f32ba90daa77085b0683e3e010abf571dc564fc703a12998c72b6712386cfa4ccc802c850a3604bb0b2d5cd2eb6e788d475ff198f94a220c925a32ab6d69b037f1b9f0f4ce1d1b89cc0d")); + tests.insert(String::from("two_inp_two_out") , include_str!("test_vector/raw_blind/two_inp_two_out.hex").to_string()); + tests.insert(String::from("blinded_unsigned") , include_str!("test_vector/raw_blind/blinded_unsigned.hex").to_string()); + tests.insert(String::from("blinded_one_inp_signed") , include_str!("test_vector/raw_blind/blinded_one_inp_signed.hex").to_string()); + tests.insert(String::from("blinded_signed") , include_str!("test_vector/raw_blind/blinded_signed.hex").to_string()); + tests.insert(String::from("finalized") , include_str!("test_vector/raw_blind/finalized.hex").to_string()); + tests.insert(String::from("extracted_tx") , include_str!("test_vector/raw_blind/extracted_tx.hex").to_string()); tests } @@ -138,8 +138,7 @@ fn main() { let tests = test_data(); // Initially secp context and rng global state let secp = secp256k1_zkp::Secp256k1::new(); - #[allow(deprecated)] - let mut rng = rand::ChaChaRng::seed_from_u64(0); + let mut rng = CrappyRng::new(core::num::NonZeroU64::new(1).unwrap()); let txouts = txout_data(); let (btc_txout, btc_txout_secrets, btc_inp) = txouts[0].clone(); @@ -271,7 +270,6 @@ fn main() { // Add both pset outputs to btc transaction pset.add_output(pset::Output::from_txout(btc_fees_txout)); pset.add_output(pset::Output::from_txout(btc_change_txout)); - assert_eq!(pset, deser_pset(&tests["blinded_unsigned"])); // Verify the balance checks @@ -320,3 +318,43 @@ fn main() { let tx = pset.extract_tx().unwrap(); assert_eq!(serialize_hex(&tx), tests["extracted_tx"]); } + + +/// Xorshift +pub struct CrappyRng(u64); + +impl CrappyRng { + fn new(initial: core::num::NonZeroU64) -> Self { + Self(initial.get()) + } +} + +impl rand::RngCore for CrappyRng { + + fn next_u32(&mut self) -> u32 { + self.next_u64() as u32 + } + + fn next_u64(&mut self) -> u64 { + let mut x = self.0; + x ^= x << 13; + x ^= x >> 7; + x ^= x << 17; + self.0 = x; + x + } + + fn fill_bytes(&mut self, dest: &mut [u8]) { + for chunk in dest.chunks_mut(8) { + let x = self.next_u64().to_be_bytes(); + chunk.copy_from_slice(&x[..chunk.len()]); + + } + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand::Error> { + Ok(self.fill_bytes(dest)) + } +} + +impl rand::CryptoRng for CrappyRng {} diff --git a/examples/test_vector/pset_blind_coinjoin/pset_coinjoined_B_blinded.hex b/examples/test_vector/pset_blind_coinjoin/pset_coinjoined_B_blinded.hex new file mode 100644 index 00000000..bae94897 --- /dev/null +++ b/examples/test_vector/pset_blind_coinjoin/pset_coinjoined_B_blinded.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010501fb040200000027fc04707365740001c8fc936d7242a955e948a14138b3efbcfa521aa6501677c7c4d9476ef27173000001017a0bb9325c276764451bbc2eb82a4c8c4bb6f4007ba803e5a5ba72d0cd7c09848e1a091622d935953bf06e0b7393239c68c6f810a00fe19d11c6ae343cffd3037077da02535fe4ad0fcd675cd0f62bf73b60a554dc1569b80f1f76a2bbfc9f00d439bf4b160014d2cbec8783bd01c9f178348b08500a830a89a7f9010e20805131ba6b37165c026eed9325ac56059ba872fd569e3ed462734098688b4770010f04000000000001017a0ac55f449ddb6853f2508766d5afb9f3b45e41a8ef5368cad75fb88e5e249395d1097d88c92ca814a207f73441c56cee943f0bb2556da194c14a4b912b078c2238ae025341cb5e4e2d8cb69e694cb20e5ea4cc8ddf2801180096fd071addfcd8bc4445160014011d384302576b408aa3686db874e2b17cc2b01b010e207aff956e6c2a379543b1ec82b06958f062bd9f29aa1ac1c98d1f6398b65a8555010f04010000000001030820a107000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020e5793ad956ee91ebf3543b37d110701118ed4078ffa0d477eacb8885e486ad8507fc047073657406210212bf0ea45b733dfde8ecb5e896306c4165c666c99fc5d1ab887f71393a975cea07fc0470736574080400000000000103086ce2ad0d0000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104220020f6b43d56e004e9d0b1ec2fc3c95511d81af08420992be8dec7f86cdf8970b3e207fc04707365740621027d07ae478c0aa607321643cb5e8ed59ee1f5ff4d9d55efedec066ccb1f5d537d07fc047073657408040000000000010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000001030840420f000000000007fc0470736574012108c77c79daf83fcae282385a322f824f611ba0fadbd1d804e3802f0cb959faf10107fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210bebe8b51e2ebe90a7dfdd4e8344ea1ab8b2753112dc2691edecdb1dd71ee06148010422002037831b3ee29fc96f8e61ccb98fbe2dcb03e189dd29cfecc691b5a7442d8548e807fc047073657404fd4e1060330000000000000001df677800b2ce69495bf1901f8b9338d37be7685bf640aa97050776d185bef0e173a15512cfa115a4c0bc1eb198cc9c5566ce5bdda976988563afd838e4c4599685750d0e189b84badcce8a55189eb670b968ada67c7599a46c575bea647a8bd343a0e809077625b7703dd18a24222d8dff001d6a71ad649219a943dbd8dbe7601aab801d5bd43bfc9ee18b3a9398242e85c2371b928c2f5adb53e7a346ae8aefcfd51b2d6d21e51137a113cf973dc3a5fc4469be2a6b3decb9323e4eabefdf3cc3fe830a83e0b8e76a4943c5211ae8dc3a427ddff99a6f725ac98c5a1c577d25e6ebae8a818fada54343a0ec55df029ea64d90a18ba619d790ae5406ee8f9c24b6217b02ae833a69d72212f7e2e0370276e8d05013c5aa2ec30147bdf31ef0baa724cf7d9153bdfb55684b8b4c2b4080836cd4d3513a648ca9eb3864e22842fd0b4fb0578839826a424314a7118779356469825a27a4fa6bd6aa070e443c2a376a952f9503ea8b209fbd327510a839a3e369b7dfe29e031898167600c399c8e9ee12551acc60d458a758c7560d25c3f76bd797099d2f936525a1923adb6977943cd2b20276b72678d8b9cd7830784fc4d1f99063e89bb42acb59e777c6759e3161faae353c7377290dd0ff46d8d55c7441ecc41abfd8979917587084415ccc18943157393ba0b181b79684bcb32f71a033ed8bf295a839d2c9e87fea03d432354a6df0bb492413cdf9fd3054366c92f8f0d0dcd8e69d660480ef78e857f93589cdb11a3d75749f44682904ebcd00b65692ccfb0ae35e73d9245b039c27597b73a03bb5bb2b8c2f6ef19d1ac906d1630ab42e1e52a650906c1564a6ed299e29911c89c724b94581d1144694d27cc653e3532d9e99dfb26cb90967ea2d3f3258fba9549958643138a24fdfea86a58c57c1f2926e4baef915d8c15fc370ea4caf8f8647c456729d41e3b5eea733a64abb4bc6b545eb0257decf9349f30ae64a1ec75005127851cea644e629d5051c2ec8c56ceddf7d92c310eb08fe418824f9b02d8d619b97e823784ab447f063b322a25dfbc194a307513faf5396855e8b2500209361e9e2e3db982eea01adefa957214eb36afe7e28e96b5e45cb7fdcc4ece1bc57729fec0040c6d90aa45afdfdabdf7db2ecd363af7882aa99f11b5e6d4eb2bebf32af8e99e2cf994dd06b61ebb3681544ebab8e2ffe4501cfba8f438a85a2536bf67ea54233d5c9a3f2449d6e75c02ac09b559835d8b814ebcd0e88ce0dfdc58bdd8a8f09f7b593a42c468f9221eb48fcc677e3965454f1671e2c952e163aa9ef9926d9a72bcfa4a8a27ba31c341836befedc641f9cb8033d4a9b9618502ab123a251f2e78a850eef8afd8f6e0cb70a1c396c2d19e3a3e8c575daf6e6e7475bc0e2b9a174ad70edb1f8a028d15ad8a8ee8df03b937ba7fcd5bad289f240b5a71237e917eaa6257cfe4c5abc96d297fe5925c10fcffa4e9074c907f271c0e30013b6dc54e4fdb594108cff604735faf21c641a1a6da08dae49ab47da58e043f03bebc1d724e3e3c8ac05550b17f5c5bb77561ab301d7e65dd192d7587fa9546292e6ec2d7cdd1b58049dc336234b3e4ce7ac4ea11f6ff7ad40083e4326101dc8444cb0575bee8f7b780def4bb0369149212d345c0ab3aa181c6d04ddf8e019851094406ad87ba3891b03476e45cb0c46ce9030da7722cab54f7a7fee4c34eba57bf368e831133cb6511072357d51bda2ca2335171da331fc8128156558db8cfc50710f12447bc0bc22bfd81d71eb8de7599203dd0a6de047339ba5a859ab987b992538097230b4baf5f8d2c2b4c50e0e5cf5ee6e28d58b2e3ff19bc2b09a31133ecada029c8b055a8e63ba0d4a0a2ab01f4236280a347531791064cdbf12938ef33245e5caa5a34cd9528d90b525e1855ab7a18b8d7c31a0de83a93fa6d844a629c0e8e8e1f5593ba0d8c7e34c8670216483f793310556bcc40519c6506ff9fab6c2909a11d1394882bb156def6b92fa53cb05defd38d837c4746b0cf385d0834e799f2593092e7982cb882ce9dc77f76ab1200c2f0f81602830ec0f17d72c15e9f07b8d5ac748fbcbaebce19204bae7cdd92f748887ac52a6d5709b8294e804cde7f14aff0b3116d1ab84b2c1cdc11ba5f20ba33c5d070784b10ac155f8ef272e495e23733812be68aae1203332c457d347c2ee848e56117e0f999df29f0b9bd80a3f8898d5842dd19137ceef74df96684d4c00ece779c8bee2ee863f7531174afb767337f25c721c0e636e0ec28fee8c29f09cc0d2e87112e320bd4dc7c783803a6ddb53a3fc9bfa0a31405229836e1cec0eb7b96a5dd62270f49df3dd960897a4bf024b71205e58aea7cd62fb0959822ab27c166de4b3787e65ce8a4250be815dd6b77e24d56b96bafcb7c9a17fce9ed5db9f4154ddf156f7bbb5a1b278d844a424bb57e5c4374d6de6c9969230ac761f20ec602a9c39012f34ab97832dd7570a087ad1c6e7a0fa9afcadf6c9be1c1cd6ebf8fb1120408dd1fa94918c0886a3cfb0d7495bc3dd56f6b3d8c40238c82960f421468c3001e3c75876adb501c85555915f87a274c1da1d1c230fa91d72027a08c44dcaa7b498945a849e3396059351cea42461e439d9e28287d3826086114ed50d122a51208f55bd50c73c09ecd1171c889da4993aa411b5ad6461836e19d32b7cee84f3c6fdbf1ccf18c1e8daeb0434204aa68cc092c5a87fe0a0731aad75dc6532ee2f333ba304ebb31e059631b8d1057e4cd3aba1792699124765b083730433fe6b8e9bb73c377928a75286c20c698c921cf6a1eb177f001a11a036bde2635a52ba9098dfc833331dd01e9cbb1a83299262d9e3b40201525750bb69306ddf3fb375b45e8ed2b22f2e26401e793bbfa042002b566aa226df824d3830a2ae6a23ca5e5f41c0d2aec07381eb76d5421b89395aa73e10ea673643062e8b7c24fb698129a4846b351d0e2ee4620fa3178943d198a64de56eb597e214c484ce6ea11c05c6e708a82c257ee0f3ac10c59c131fed601caf118c7bdd8a57ef1c895a1288c45e1afd8890042cd2031fd445bf0bae3bb16e623011b285c6e3be4e4151a63a8ae963ce4d11e59f096678077422e025ac75fa89abfec7fcd1988807e735973e7fb75881c8a9b998e3f1d836ff9237e1c93f4d4de8c17cb465401147efcff7290c69297d3e0e2fef9d7d6010febf978d1c251f0a0c350fb792d3980cacd3ae639015eb9d5c4d2c2fcc24ec3709066e19924c75f53cc008d906b370ba32fb138d29e3c9977e012e6e306df32057e45014fc218d7d9c528a62e7b1aa63639a1f7bcb18b5da49d689ba0f01ae1477986e1a2d2a06c8c999bdcb923ed921db719ce16db1e79f42d9b6834d2b4918cd0651fa077fe7e172be124fe4c612ff534d896d0d6d3ea67eeddec8305dcde2899cf496291b5cc4b5e6f67b94aea57f414426f65f1d669f68acff7ba030319f3e31e98619ffd7e45199c6ab92ba531c80d041291113b65dfaed5c677ed0782cbdde6b9b9df1c4f3f71fe8493968688f593b3493dc40618b2b5cee3f719fdfd323406243478c8d27faa144076b7872752f31788ec6d6f60f581e28ad3023339321672b9b79140b42312f8258ef4b93298c25c3fb06481fc972102c1c48142dc45af2374ef74b00d79b13ed6523915d001e82d7948ba47a303757e406307edfcc4a3303f97d97abf94741f990bcdd77d368f8f8b4c1fd618d96f23014ef14e9aa990a89d236931587e69a0d9373ba3b5718aecaa36520ce698ba8325e3cfdded9f9520fc0ed4ed391257c593c6641e45cd48e5d6dcded98cfd9d547ffc3ca9af593116b04c5417a0f48723cd6ef5ae481e79f925975f782c2536c44f72997150f122fbbcb8546dfe25d7f077cc5971016a1a9d0cdfc96daa6126f954ba4e448e312c0df7547a8a88423388fdc151c4d54dd90d86d9d7466027c7f2b952723fb78c40fccc421b403aae1b2bfc4c83c8b8b713289568df2b568913b61edd3828c6b3ceae5ec8840e4e9493b95213c592f1047aaa4cca061310f8d577bead1f95ad0863b73d3f2541d28f31ec70f41a9e4f9d1627b6a8eadad91449f13b27fe1785cb58442f7a3f427cf0bf17e932335ab7e1f9511d12b2cd389485ca89509c77971a75977f78d28addc4713cf5ca133c3b2b86e6d7493e3e32962b1e35afe1ab3e610b54ce3d8af0f2d2b9bfc6e6bdc19e4f0a38b34f82c270dffd2e94dfd9d200b8e39adca0ebbdc24ce420de45a46843cda0da707290a1ae359f11a3cc6da0f5a73cfd92fd6cbf104d0754a1ae990299ceeb7f2ae841e5635b88d63e6a0b73d57fe6c8955a5b422d28e7f878ed52a6ebfceb49cbb919034523919e0da7fe2606e103c320068d2e1a1f598eb0801860f2a397825c4633bbfaeb401240e6da583a259ac483b62023c4c623c8040322d4569bcab8f1a123cfdddb864e68a1160dc6aca2ad6e4d33e754ecdf7a85bc92b9d1a8681979973c2d7f076005ce7da7671af8856d40aab7a5e19fec4037797a40fd2d79d8a7efbf6bef6e557e02be30e3909c334cc9705a5efd32f2249ff4a388286a391df8d1794340b1509036a3b839d6663e59f9608e6e1c3d1011d4d2fc3e9da64100162bdb4829fe601c09b73643f5e4536cce6f6ae2b291428980b82ff116b5fa26bbd3b0f6083e46c7905dc739b93b2747b8d6bcd2ec2dc58d1a736b8564872f66f4fea49f9516b83c006e5b61d5393f8a08fd44ad29d8a095aad686595d582bea79e1d66ed495b731df044aa81b8c6ea24ded8992ba2fe1f300921fbdd1e24e67c68dab1d3edac6a92d0764683f740f5c9f9afeed384688557ba22085ac7dc8ec59294931bbf8775eb9537f524f5200dec8dcdf8587404c78e77220f4f909917583589d92d710f5434790cb97896c543664128ff2fd005aec77028bd822a89f03afbafa819e85904670235cf33346c4d27c7f995d852344f57ebf1a7ec9f1a5887a8d7ba93bd152313860c6108c2d4ce587be05395fbe3b8db660edd2316e237e405ade4e6970f7e2598972c8a3cc8c92e5b5553972ca186a6c8b92860a223180dcce7e45ce32694a592211ff4f513f2b6eaf656b97f64cbcfd8e06060ea051e1409d401c6e4680fc967079a46e2dd94bcbd30925e570414c1cc13c6134ac7277099882261f39c249d22a9cd2c65e3fb10f42a5d3aa58d08df9c3298778212e84b38e387a2f3f7d44b1984b46fc4d7b388cff2f9830b2bb70a9cff5a661db06af77469cc1210b5074b65e20bc35098e3f9a4059adb99f281649358313d26ae0c5b3615c44e7fe5283570226437cd8707670e6b6fe10e60f9eb9ebb92e9437f2c6f70c058e8991c8620360c30b9135244a3c498847e75f3ca8cad3f529bf621543f9b40fa6c68d3fa8cffc7e7de9d2593d95b7dbcd5c5708c5f8e39c8aedba974514a6223a3babf1d1b1de974b1c02db3201a5f3e1903a1d44f85819e02e1c6108922bf506e469efb72865de872e36a2a8f17338dcf7210061ad041c63837eb312c2aa9c1ea997e3d33f949b141fc2bcad63d3b279bb586af57535cad5b94f72d62bb748d0ee73a11577bb2292c5b9b0e756be4de7d0ae9b1b67ba8e37242da3d989ae8ab9827534026ae81ee993001ab07a21e76154b44230a02dbcc3c1d1e3632d580c42fba3cf6019fd3aa09d597e3478f0a4536dabcb66080cfdceb2e07d17982ce6314bb5c4bc59cec2d3c361ec9c9986aab42fb48d0b31c597a8364abeb484841f2e3afaf7b2bf68f3007c08c0fbdff5bddb4b37f114a4fa1c80080b1083fbf9f915810a32aaa4010656de78824165743fe4c8fa04f342712b91c7d61c029b19d35898863e33cbdac469887c65173a707fc04707365740563020003a85f646bd3fcd8888d98e322dc1e57f8edc3fc4d59ebc2f45dee8ef52209a2c483d06fceb4d7cdeadcae0c4a278569cb7ce16525d57da259e59de808328f6714bdd4024242fbf9454db6ebafa1d9b4d0ab601cd2cfc180aaf2d102dd745f557c07fc0470736574062103d559d2a5a4180f418a69c4bed5508971cda9313722fff71e053d3d82fee9d7bd07fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c1807fc047073657408040100000007fc047073657409492000000000000f42406dd8401a1251d08654bf42ebc145013bf2da10ba2fdbc2fba6fabe04f7e6986871ee81e8da558488965ed9f8bb5dfd94c845a60fc6db61c993382d1a7d642fce07fc047073657410430100017be5b418cee5e9040745ebc5256ce1a8fca5ea5401e5ffc90ab4bac89cee7ebd88ca46b1fd6c8ded575678e452ef7c1c80a0c4abd0077e80274fe115dcee54f900010308c0878b3b0000000007fc047073657401210863cd86124cc566ec62b0a32ee57c9c53c3d5f21e573203701c10635d768dd5ba07fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210b9ce9d6df13c1f70359a71236f60cb985d61fd4b89e30d6728fa0db420c50975d0104220020e7da55d19cc85b0420c539a90b667d4d85f59ee0ed417493a947c3a2256cc0aa07fc047073657404fd4e1060330000000000000001debdbc0052371efd53bed69c721eea67f8d224ddb7d52e7781a22cea941856bbba3374b50975e98fa35555fa791bf41ebc84cbc296a7fec806d8399a94d616ba09943164c09df68c8b0b4b476ae1264ce6e67c4d7e28ab01cbbf870c999c128448f8b5ed4210a961e11b579f84e95d7bd41e5c81dd2970a24d21c5b033f0da1a4ff157ec8c0ffd032aa653871155c1bec15451c99a35f3d04ebc15ce76b35f0acaa42bde8aff201a83a8cbc359be0efc6bc9d7d48aec21c8753820d5b36cbad5f6a802418f73552a0d5bdc2ec26510678a27c9be1b91af89f8bfc44873569aa447fd1c82bec6a3abc24b034a57b1e4014cfc93836ca2e648c138364a06118b4a57a89368ae3c64688cf61866ebb254a6e1653b2489f7ff51c36fa783d1315cc8ce787bd01b2b19f0369abacc23e19e4860b11efa9ca7f55a89aec7181f0f11794c5933d3de88358d89e8e5aafcb9cd611f6507940e9a0844c432398326be9554a702cb64049db45a8e3226f4bdcdfca57bb095d3ce132da4fc76ed123bb7161edbef35641e9ce846839bb264dbdf1efbd5883a13ece779d29e854a341c2bd7f73d5406a1ffde9d13f8efd3e666c81a58943850b8c4a35cdd0d7ab172e84e38f2369bb1a123253902c70d5e54df97c0a5cf5365044f364b79350161ecf27d90b2c3623dfede14ef3ad1b1e5091c71efef44c21840c09a3c419df73f9c06ea169d1e9881032a06b05e0639e9177276e10ce6f9ce9aba18ce6059e25a36985bdb301d680ea5240caa0c2ca01b8bbdbc8e67aa35bc4bbd1dd103dd2cace340a2de560ab4b6a3000f74d1a7cfee197f6a86a4782316b15445ca1aa97acd2dd1526e50b902d724fcc80bd4f54720144b8a59658e7cf291c0f0f672012d2edf0f941af6ea648db95b3810b03cdc778b89100f4b2220f5529f0d6b95363bcf1cd03a2db471ddd22bf2cba7fc647f6c167e86df4fe58ac04218da3b34cbbc842a5643f778bf73b3493a901a6b16fdc24a08f7f8d74ce5ed93a7f02ad2a25c2698bc5691ad1b4b88b48f4e596b798ca0b3d48345fe99d828e4a318a8e9f18ea6cf25ff04022602c07c5d51db1428b1571a3c234ba6ed9561202dd9b2fc725fe085e8fbaa71e66f89d0d139183998bb677694c075896e8806d64ec78098be437ad3c802164a0f3d098d4c31c6ff7e9bef3761c2173169ec15836dcd557f5835f729d46058130bebcd1e700a4a123ecc556f54d8058a04c959a4eaa70092a9a7eeabfc44c9a11ce3d49e3452363e9a28b91239ecdf02e6f327aabbce668ab5ce7381e4f4bbc3447ff03888f0c4ecc2e7cd16f78efd7dcc6727a0f9dde7ff47d9e3470a9f44e1a468fc195018c24efcd0c0f5087e8a3626b753eb1084a3783448e6a6793b207197193bbc3a0d34c6cebe631f0a697266151af396ac4877075e1e190273f7005ebfc147fcdee36282a9f9f88ff262644ddf8fea0c0db67c47411bb9256154a5aea5ae513b72ef64dcc65367036bdb020b58fe8a70d4b7cc6ecbf36fd10f179eeb1b14e402b460aa89f628aa3b87695fd39c76fc13f6a82d5f296294966bb4c52535b577dd3503d7b5f2ee6f6c922d00be84bf9089d10de67a28f261acb9554f50e065fc2d85f1887e4569170cd15d6e46fc1a8cddc0e8d422e09e1ddb81e8f6f356be3d98f5186bb911562492db14e7c7a3f59214b0c0bd8772f553438b5232822bd8728189cad1d5c1af30f31f61c45c03cb3e24d6d6dec4a097ddd79342d87e0a3194636ef795fba9ba7d20162003610b577873b0cad2bc6a07fae40bd1a423d0b2a338aa1cc0dc5be8214f19933d3eefde1ae44d52ddafc264b6233120d61f4e51bc311cceee2ca511d684f65308a10da0687a9e5eecfa7decd6b4744d64492ca82f9849e166e6e05c2519bc2bf302500438ac9abf33df125bd35eadd185b4d352d1232414c85cd08a21ad0f987702a7e4e0c30cfeb8f1928df59534f509d40bfbb2ee575e336d9d9cbaa342064bc31c24120fe01f1c9a5fd3480f96d278855b4019b499955db7aedf6592ce5e89ef2a62e9f4c2114241d1c13f2f530c7931040d8a8abfe96034237139159d57994b1ce71d86b1a444276cf81d520569b2ce13a039080b5aca8b32f94cec6095d085da36f22de5e7eefb091bdd3b66931b2fe87470f85d469df193f7f0ac4457f7835250923a8a8c4650de9dd63d5a9201a7b43455d6830af7103f6afe7b80e66e7e28306a541f54b38e11fa933d7562a0accc41ee6a791eed8bf2be661debe4c23fe6252d320a964aad24e30a20a2a24d7eee0c1f276e31de916259d1223f8a8fc991214c5ad3ac07289eda4b63835b029de09dc98848d60801d8dfc3a9d1044d87b01187fa92b3f3feba044934e5d9bb6f65c7f1b14af27504c71e99307260a22ff31250b36f443ae3067c33adc6443ee745ecf3381247c09c75967e34e7390edc9109ebd850f4614da25aa24bcad134eba146a9518685820040476177f0aa33b3eceda704ac7df1ec969dc8f16c8eb62a7bb5d126e8c29553b23a43a3a0cd2e8867e7d41abebeb82ac8026d44f01bbfbd2e3326ceb10a85edbf7f7d75016dc70eed206b4e8ac679cb76ac73a1ee174e7566fc415e320f32b2e726702355fda42529fca330df1575b978f034dd2f965f8fb83c1b7083c7e3321ec31b59d0f68bdc79cbcfda07082669a23e136c43f36d3e96731e5b866b973ac061cf47256b71b09ec07ecb2e9d18c6c28d64688b0cf807f4270bf2cb22d6ceb00ac82e09325f370a6f9836b5bce257c6f4ea1a524cc626bfb18faea1f3f47fc24bbd6cef7022d5fb8a6d4feb46c71da829a3db35369589561d7266f0e42e92417af6f21fa5c040b2c9c8c7499993b1223b5e7dbe8ce9232122c042a68c5079951d7977c87af0140a1dede561e1d1d141743b0517f90da50366136c2548d538576dfda922d3db1f0fe874a87f671158bf05e0f5967c8fcc0f63c3c2a925b3d44619cf8628dd720212c4a211bc1147ced33e69d790b9a8a9d0163dd144020bf382c40dd350701cd05347190720137847c31e05d8bdc7b3bcb2b3f0442bd01cf101e323ed4604d5173ab2d44d2a32a5c0f7e60d4924c0a8767a423c57f9e2b9337df324dd19961c7af68475efaf6d70d5abb39a9725a193e4c2c676edd6e3fae1326e6bce4ffc8191c36c53b6b0a53a7ddfb49a6f2e61d3ecbde5aa6c9f37f367531c886e8dabb985fa640fff7552170cf2270f2400eef8b6352b7b1abf04289ec8fa584a35add6bd21ec5b901d2ae5e1d874e333a13f2dcba56c96ce2b25184ec32e9a5e983c67d1869691f6ad94fa6ca93a6b6bdf15f4f3f3c1a01183568bd3c362fe5c661e1d6e307713a6d3a2cc6dcfe5a20c9dd953ef39bc1021bdc515c12e8e2609b4d1d4f894e44d219b405104bc5a0627066f4c12573c2582cab13610c0584be407b4bd4e6a93d3896c4224a67c5a38c7eedd64eaa445b8999989cc4b30d8a079f0ae7cd783431f9a7ec275b0c1bd9c9122eb95d5b68cf0a89fd70894ed26c118150e214c809abe3859dd69a547750d113914ef1f6e2e0ee8907f30ebd35156fd53473b72ef9641dfd60fcdb51c01d815703e47fa5be468634108d91b2180da2f6a6fb83b189da55052902954316a989904f04e6c20cad994c8a9877c389cd1ace4edfd4fe329d556bab809713e35fbda452050c2b7cd6fc3527fd8e6d0ddb38cb3859ca42bfdf0373fa19170416eab2430ea925c30fd697b03dd8bb15306b51b9804f2bacd88866ac59cb1ef56a04d590e79e050223eea5ca990f2704ceea054a82188bc6a1202ed4fd5d9fe899bf9972e6ba2ee146303b69472b81add2ce946d52595c5a33ad9bb8404c6789a83750f8021f103fccd9ceaa92b10f37dc201ece705e91c6d9263169b15840899f960b9d4abcf03a15c4781d1969cc778c9fdf94b83ef9915f8abd40853d32422649ad5867baa9a9840165a660ded81710d34bf3fa02bdb98d8f1054684fef56c6949d5a9f358455ded4ab3683f8a36a4debb9fc570429861552d593962b475ed03abea1cf8968d372ff5359ce23596b27157170711e7d1745b3e9a1ca7c90e2bf2df46a201250c85938dba0a33cdbb07d70f299ea58b91a9c932b392a6511bf46915bd8066273d2eda87cf05bad23ba37fdd85ec28b74e745d7ea37812494bc870fa05d642ee5f916b4e3be271fe2604ea696294ce0389eca16c83518acb1d5f7e121a30768c97a3a243c356d75278f4f940507f25dd381a7b45fcd30ff7d828fc03a0173215f837de21e54bcf50b336c8d5363a285bb0d73a45ffd2abb08a601094e6d68b784fe961ea6ec9cc48fde0192184fba84ccca9b9813616dfca200d1228103690d9c3404975cd0a8a6abbc0d621fa55427588a2334eabb2677b02a194e2dcd2c1d31b0a42b80539dd4086b33ab46c10a65a046104497d6f1957eef4aad6604761ede29e76359b36ad51682b55bd417b2f14f726141f8a75dde4797ff77ece60196176c931e3a8ca0e8345ed8956a2093f40d8d360d911efd21285cc646c26c294f5898712c402af3b96b6860490530a6caa09b7b56dfe4b8e3c0ff8967d54476a2ff4de98f1246082bd7295f057189bf5c6289a739e8ea26a15f90184514fe5cf5434d4a530c56138b2a5fe431eb76724805d7b3768cc629f9c8f4b02a2e0b03dc38b626ea2624b11d7e447a6bf43cfb5bb591a281f1653818607cc88ed24fbb193444014bb3bf4365c4f7a4e5c5b584696440aec71f38965174263ae9d26f3f0df8d0c964ed79c2945834a311cc7d4d999fe6eacdd5a2bf1ec7e49e0ce11f40691fb93228a1a22265f7c42b7f64330a588c20ad60731ae121d60747efaffebea651ad97c8643e783f34dd5a23531d4599e9fa0f8a7b1bec4f09cb073b29432c1fc19c211b93c7f7844423f81b50e9ca7f5e59f91abc586db9ba5287ba2a96ba8b1f6ff17fe6f91e7048c16210ce674c9576986336c0ed205f1e9a9f1835522e07b3d7457d2b7ab0ad4038f15530ec46599577613c557ed3e10f80f6c9ad243f9cd01bd146ae31931fefd8e88d23d145ac593e18dd9d8336572e7bc6c64a0315631161f8fb4f4723c46151181d7357649f52b9e8b68431f4f5485f6feb5984018c8b21473000cacce8c1ac7a74eaa556a4381a9b20c699d6cdefff2977f0dbdd010b0858baea63dd7ca44afd10839cee25cd03f52780e42ee483f499ededb97d199c4c720956f190c77d8e6a48832fa7c967c61f9859028cbe15c17d4619f563017d8d269d66644188797123ff06ceab78f9e931fc985f7e73f18702c448507cdced5b514e0ecb9022bdfec9ac4dfaf73fdaf70f866d89f8621bdd290415f39d1b85b7d960ebfbc176b51864c99603cbe6b428a51ca4eddeda8ddd9d2e636d4dbaff369c38f126195d12a3fd0f73fee0934318e5db631daaccf16cabdfa2d535280a4ba242926f9fa258b7f195a00b6e67dcf7569de4ba2e3f49749e68858491d047c46ddf429bd728b2617967fcecc281b6c741c49e390eab38da1890a38a7b18c862a0969e06526e2abbeb3136fc04cf7613e105f8d50735bf6a07a182ec8c698dbb2fa499e7ff211f9305a239cae70f3ef1c0b26432526f732955402408e1ea8b1064fbd0aa70d3fd2ede540181fca301bf765ac3e12483c6fc4639d82d89136445a6f6c241f163535532abd3667b178718dd4ea979870ae88e3df98b8e3fe797224bcfdb0873cc747100dd06b3a207d422715946ce68ba4806bc8b3af669eaa90e193fc96cc25912656d65b342ac636a6519579f193d2df7db19d6a9a4b4a2f4eecd6fd09bcc1c622d29e2a4904df42f500f1638b360818774d39350557d5da6f795af45b07fc04707365740563020003739f4c4c017710f17198f4e068b0044a44a02b378d4188671d8c152e43924cefa6e7f733f6023c5f4325654d3918cf512cb28536f77b690a02f0ad05c1735cc7a9adfbb717e48fb94e37d170ef888ad023b5e3e2a05e2f93db795ab190a9d3e707fc04707365740621029e5980b4f9b9a9fd568c1c4b48631a800c310405ae8b2ac41ddaf87add3062f107fc047073657407210259829fc9c1d06291af2b190943c06c36603e530abfaf8ee654c469c0c2d10bf407fc047073657408040100000007fc0470736574094920000000003b8b87c0f607d98d1f52c624e74feee00fb8a85d9e2e316b01f7977215a40f3ca447d9cad9d67f94ee2e48b90125f0dab582bce7e63b8e1c90aae7e5ff2df462a133096c07fc04707365741043010001eafa72e82a3bad5727aa44993969dcf456f421acb0ff68f3180a93e640c97756400f98354eac59c40eb33817ccc5a8665d9ebc93c63141d2f4a042ee226decc700 \ No newline at end of file diff --git a/examples/test_vector/pset_blind_coinjoin/pset_coinjoined_blinded.hex b/examples/test_vector/pset_blind_coinjoin/pset_coinjoined_blinded.hex new file mode 100644 index 00000000..9c3251d0 --- /dev/null +++ b/examples/test_vector/pset_blind_coinjoin/pset_coinjoined_blinded.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010501fb04020000000001017a0bb9325c276764451bbc2eb82a4c8c4bb6f4007ba803e5a5ba72d0cd7c09848e1a091622d935953bf06e0b7393239c68c6f810a00fe19d11c6ae343cffd3037077da02535fe4ad0fcd675cd0f62bf73b60a554dc1569b80f1f76a2bbfc9f00d439bf4b160014d2cbec8783bd01c9f178348b08500a830a89a7f9010e20805131ba6b37165c026eed9325ac56059ba872fd569e3ed462734098688b4770010f04000000000001017a0ac55f449ddb6853f2508766d5afb9f3b45e41a8ef5368cad75fb88e5e249395d1097d88c92ca814a207f73441c56cee943f0bb2556da194c14a4b912b078c2238ae025341cb5e4e2d8cb69e694cb20e5ea4cc8ddf2801180096fd071addfcd8bc4445160014011d384302576b408aa3686db874e2b17cc2b01b010e207aff956e6c2a379543b1ec82b06958f062bd9f29aa1ac1c98d1f6398b65a8555010f04010000000001030820a107000000000007fc04707365740121080ff20be8152fc93de7a2ddbb98181ce7eceb4302bf3fae4b43ea56d4190ea8fd07fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b207fc047073657403210b9aa62558e03b4261c90c095e9a10aa2b6cf210278b06ff98b77bb7cde1d054c10104220020e5793ad956ee91ebf3543b37d110701118ed4078ffa0d477eacb8885e486ad8507fc047073657404fd4e10603300000000000000019f1110003ea489eb423c60119cd95913cf7a8be1fbabf109bb322990aa3aaa1868271cec5c4ae6ca38f930de17bafe616a6cc37f9632cdceb98978a289141ef29617cc04ca161b45a2517e605df8d277df275fa55cd5a574b332b4731f338420b2e4058d6e3dfa32315d708c13e5debdbed235e3bd4feeec534012dbdccc1ef5348eaecb594439ee1c7da9d2bd1db8648e1a2db6984b7f22fce2035c22904c583222d468302fbfc08cf5ea66702f9cbb5606f9b0cb42b779e1223d93989ca2b0e109317799e3a8d875df49ba975f542a7158af77cf590f4a8f05eb807df9bcc7eafe882330fc034411869cc01da20777875da65d528180381fef9d31c401fa7f63b454fb0d17e91bb6d6a94a2b73f7be3c4f2c7712652b0977041d6484a70dba1c844312ea832a15a4bb7345816d37b18967f1006ede6153a1242102eee80c48fe7a1fa3473d39f6c34cfe944d977792cb5614343cc410e9a36f75a3a76f4a2899fcdc1ef1430e6811659bab02e4ed1e9384a03ff674bf420ccaa1e50f0aa6a8b5074455666e102b9180d627107342c5f5ede37b5d1515f56fea150b5b3a042f3e248fedb1e6a1cce45b5a697ee26c253dfee86d71e4cf4dca14eb1de1cc92058da51ebbf38a1e5d37ecb9c87d50e10caddc9359f1ab21382464b4510af8178ce5e76cb2ef7afa9da3482117843a4d7c1f5b05b02166725fdb59125a9138ff40ffda19f267c9ea462316e45108a21f6119c1e4456a6861a5d4579a60b480296de2115b20d097d993aedc379daed08903b3a28c8103666396b2e348e748c1913d6eb38660f1f04eb163f5b82264227338e7e72bcb6d5ed63ad22e262678f40707b57cd31a6121b9156addd7b29bc392ec12078c0225c733175c32ef176872756a73602af90722b4935a92fb8348289994694b6f4de0f08c90d732b6b8d3ff0edcddd48aba5831a5bcbcbbb1b9bb69eae484cf008a628d9c0b52fd9627c2f80e7a0cf6cfc022d9aa0bd2c1af24e99b3c892e1f6d8c0fd76101be33c292c3ba2ebe06a79d48528182f892c5c76d98ec2337e935dc9417dea4333f26b732ab814a47cfc78a181797abf70bfeefb71e303369e7d6c81db8c6c246e0fc0f72e96753daea9013baef8909f3b0ced4e5cc40195342ae785e7bfc2680909840af93d253df95f653bf1a500bc8dcef9c2bbbfede09b351d2e23ce55b16c5865e44da65a20022adcc79e15292a821044884bb396582e2df5dc3fd154d517ffee9ef8d1a8cb6623417be5913aec10f000966a1fe8c95d47f36858227a26927b527dddeaf24f6a0364409515cfa2a92341ede755c8402392cfdbc23a564446aa819a31305d9560d57e3f2a4d1719b89becc523c528ce38d0d42a19fb72fab3063cdce5525afe7ccbf93401ad781d0ee1ff9077e6c8f2cd01b949824d8fd47c0d79b749d168316de451fcf301cd5e853ecdc3379cd1edbf153839be0f5f77d3b58d45935beb9fa50ca05b10ae36f6b5954eec0f8d5b5efdb2a4bdf94f5fc09d1876bf5aaa4e54205a21b7494821d9a13995073ddca304ed40fc2ef553ed571bc7b7cc17a142534c96b7283533c653e447511924ec475e35ed8d330addc77789ef15098452c1c9eb82034f2df2f696842a743ff653bb70393cacc6d2443cd4de2e6bc519e489f270d12d8944c8d81701d231fb69e1453e392078688248d8e9bd8b164e4c7502b4a91420b9ecfbc6318953a4345ac6b98ef30e199e8ea9c4220b37bd2a703ced5a25d92075b9b63ac72301bccfa9e5d01c12598e901308cc93a3230a1c121496db2a7f98e5ca58acc9d4beee38099e37e3fefa0480c56bc0d1e8439b03440ab6504be92132dfe73c6f768826d46f39b3a3ff4bd491317397b75f724b71413650fbbabee50c8f8f319e5fc36286b5704bfd50b1dc50475e17e4b03a3952b7685585588eeb4eaaa1ebead6119bed203ea839e19999d81df1cf389760af4f8f91258bf597929393cd6245993f04c308fb79e8b5302aff0388b430da1ccc6d3d500e516bc0137e8ca6a2b051b4980adaf5bb1c475ab64c35e299ac1be8c9fa07aa6aaad668ee88202910f9aa221c3297100ba935a7539d22b19a99bf5dc10f3fab8d841d4e1961777d7d397a9cd625b2a9256550d51de153051a575bde75764ff3c1372f8c1ea0b78f86a5ef53715e7815e8ed505a33d8a9ed52caac300275a42bd76f6d032a5cc180bdf92746dae79480244ecd41c5ea642c9558aa1b16a8b06d935624d06c848a0182e46387d617b01dc71486439284fb703b27ec937eef659ba6577cacf761708d15259292b8491f1422ecc260d3393b53d5a0fd0210ce5055a364dc61f6a2a1f0cee692f1cc6f97648389a1a87c2860f09050cf996c2091aa229387a96851606267eff3e06857036a1a031f38bd874fa117a2617564ea4a058a1053f7222ab56bf557845386f0d2ee320d0e14e8d85a95ea4a2709f3349a65fb04e88272b2d265b96f9aa9b8c2abf3e545c3e17938a501b3bc9b18aa3238a7b9e4aff5f80df31b99c0d33e03a60118911e1bdd20bbb701bad5b21e81b477dd02f30e092caf0e387f58f6d51518399a2a23dfabd991485966cb497ce32c48ade00b1f0477ec7fbb9fead2a91b183c23dd38ef9d6872922ecc733f15726e39f565edc3bf47817b9b014856d93d347a56ccc92f8d05838cd5fe522561e8f3c46a050cee1eefb3e123241d23e4ef61a0b5b549e2fca7fa4d783c2b2606e73c93cf3d99d477d58f490b4f9e5d6cf4e9aad7dbf654347c891559c950a9605f3ca113f8f87700180d0a8b325590ce8c46ed82e050a01b755eb7a910b6fc2e204062e059dda75e091cf71e653a88821860956df6e50de0d3d076a041758c889975fd02b6179e8129b3d6785a68e8427cd58495c3c78f6fcf66a76d0208a86183823d47c5074f8f1b8d18e64182ab90f6cd177401fb2e975cb2db1f364e7953e0990a6f6bff40a7555343e4b9261be69195e15b6d645520c23d75faa7810c2892b9131c1292d0b61ddb138d24fc2b15d8b19dde9a41420fac164528a2f1a2eaa30013d170be434dd4d83ab3839da1ca5479e2a1c7849bbbb0c8ea41a3896b1901c97eec9df6efb6afd9c99028a16bb40ade5869fdb7a4469520125eeb5bdd279fb4388264864d9ea71728492734d8b6b20cb60d41d1c1ee68c852fba1518ae39a6e475f40805879b85708fb5d7684e4c062e1286167241221d79c6eb39f8973b1cdfe8a05ac59be0fd826da47453781078d167463b057923c5e90cd823dd50d663843396a5ab647862c17a03d9d36e3b3f58bb3358073974f4b3176bb376bf2a28ed337f3874b47c57e303c4d2726d4d54d8f6f6d3d7bbc502e286c85e394b285b7b78f7ecef29e44dbc8a6f6be361807ff5dd856ab433adf529e3f1676722dfc1450dc957722bb40724c799cf919d640480122f4a5c5ae3fde5e95e4717d05f5505c4e129a714984787664df8b9c87f4ef576ef049b829187dff17025c38c11da50de1f78286fef9522bd36d003d81b8233d8734f8aa8700529423d93be81650f6c1048505824acd4f67a98cddeffda588f4ba2957533339195c0639d3afa3a0645bf0138148bb5c8b0ca2c97666316a18e9bba44f4fa474f76851189670750645a27244c75cde9a566882a6cb8772b31d2594399234ace4768970735861c0e804da89f3f8c4c1ff8a2d94463fd2cae6ea6d1007887596de16b6366bba6fe142721e17c4d2de22b742fd07c65dff6ab18fd84a4f81fc16e88d4a34962faa4ebe90414f52040c5144d68b33b19c7daedb1f72fb6711176c9c501adffc35507870d2f1966c71e472cfc19a1d07c8cac3275d7df1c7826c2352e60f613ee95db8e681423f4646a92d60c0212ae00fc69ee1b4cd480a629293e162b1633b8a8ed3cdd5edb8cb0526bfd3f178a1844dde621b3fcfe3d9768c2b630a210488d6476bf23d3f9e3833c7ac1fa4866211ae3a32e3efcf974b913ead7bdc1cbc96c38b1541878a5516debfd90d632885d738e5a9926e95340cacd9c171b91dde2b0aeb38d92fee5a72caa759ae264d988326efd380311fd7332cbbe4d3e0a569caea4cee6c562681cd32241a6eea607e544f03db2ed39c42a6f4ea4279e9bcbdeb12147500b3b000af9e082843c10864eb4ab69272bd647bdacc7829b452f6c1dcf142f93234470606a11a5673f32efba96446f1219c98a45d3e667d78c8846ce32b909c30b951e7021f6a034dd9d5045d9f5513e3a75444086c67302ec338e1838cbb255d85dda318d8bee7e619c5a9f05e3a707aae09531984b819ee2ba389f8d55bf65de320e2f41883392c9254d286014db8e3634c53ca13599128134d5e07042215ea38fba851f27e36a00df45cc5e52f9b85fb666ffb1e1d4c5319a0429564733115d6aceb7bb5c2405ec06c6f512b5b99d42f7d0b39e12a14a955e53848e66babf797cc753f5a666cc16a81bd24057f51f8f431fe70adb5d00bf03f707e215a64e876e8d612f78b6245f4754a5e41d5bef79d0b022217b377efa10af9524429bbc80f899dee350dae47f0e723e3f37e6dadabaab4af946a12d408786c51780fc024afc2d48a9936a9cd0a741101887c8e32546e949fcb5910b95c9c5c8534aeb902b735f30918fa059c880b05e1a653525032a6bf53e59f9dc4e3b04799a3759805e8c916611054403f36136b8fdfc67f1f4c37416c933cf45a02d31d6cdd297816efa889dd1641b56db07e82941eb280a4e93f8c7cf2265ac4c39d189f3307c3a5aa61043e6c5eaaa95015a0291b88a5f5710e048796566de91a4b1e430e789502c6b2a1f45452b9a7a3034d801726d69844c2830677748e8b4eea02add5955516f685eafde3a1417f34572d731495119730c2c795337907b314f3e7a2969997e2cbfd8e628cc1ad0308f64936ea0eea2371b687c25770620f6baa6b082a4e0e5d2cda2947fb038cd98466273445bd906324b319460595c85884ea5db66b862558af0dfbfef52f5b7a88f347fed9fc5ac8bccdc2df663e4f3f393f72efe53e7e65c8a3ac45cbbcd67aa8717a5d70d0b9fd3de08096163f785e2dfc6b04a726aa24cf6562c76b0515f4dd8d05e167b2d37700f73728a7cf3c544494b766ce3b0a6e3cc6083877b4aa15a6f0ac496f1a4d159a53be172823193501c4ec77abec8c727b3fc42225c98f988948544b5554b952234e60effca63f21b2d8600b73aa7f7ee1dbea9435fd42bdb4f6fedc5dd0d590fa594de2aee59e1e4ea81c6153e40897c242792c3725f819988197367804035f78f645397917bb46e0266f7b65da9c357e6bcc57e621f70b46faba6c01c035ff2c5ee17f67770629243e5c968934ef31bceac998f8fa99774a721cce2ab8cd9a6e0d14c4cbd80c84b802bac7355d89fe8730f40eae406fe9309afd5c013c441292b093ea545a808f166822af2e767505ebbdcfd93fd135b496ba8578739f2ef46235255981d3dcbd5e274c57e70eb2e65c25398760028f204cadf8298274219c9121168b532923b10c26a0b490cf286fccc94bf5ef8f43f0c65b270e3c6af99e6c7b571043572394fae697fe852b990d07cb1d89f366b61561332a65f8028254ca5214c66a71388966fa74a3fdfebb23bf5e57d7e54e0796b54fbdfcb5db6b654698afb96689e4f06c4a4f2d8e54f6165020fc50398f9b43c873a3728cde06ea5ae8642d48ab1a5f6072f3a657660e84dd9bcf161cf52d32936ae895e7413e7698ab5d9e4baeff62d1da760581f130206466e3d797d73ccb1ba123c615da15e967654793ab60c80349be15731fa13aa80c9a9a28f25cf3756f5cd3f85ff9ad164cef5258295c99b03378ed69b9ec1e060950d4b640bb50bc47b07fc0470736574056302000326e5efb69c632857aa1b2f24921b6dc0c5495d53e84734f207e483c04f532933bb9a9d5d484ae76d169dbb56c5e6ebbbc593bd68c6ced1a9e1088d0934e1af68c9d17b80d106244fa6d91abc89534886336b890dbbd8c94db5b1aba618185cfa07fc047073657406210212bf0ea45b733dfde8ecb5e896306c4165c666c99fc5d1ab887f71393a975cea07fc0470736574072103635ea7999905e034ffccb5a9e9c871084634ccff97591a788c48484bf420700d07fc047073657408040000000007fc0470736574094920000000000007a1202a39cd8d86832917e86260d713747dfb9329124dbdb14eda4172018676ed1e3fa6b853ca47e22591b8b13c6bd6d98631dc072b0eb7c0841aa43513476624121907fc0470736574104301000184f6702594bfa30b64119de392ba1a523d29837f5d00e867361d3d3f418b03ab12f5487536fac1fb5e784186ca4f8c0e9c473b93be633139139066c94f209fdf000103086ce2ad0d0000000007fc047073657401210956be18bd5cbde828e82dacdfa4e6d1b893193ea0be2f895a047cd6b3a5a04bb807fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b207fc047073657403210ac7fcf04532bcec2db644824443b311f018000bf67684e3545721e30ce61560c70104220020f6b43d56e004e9d0b1ec2fc3c95511d81af08420992be8dec7f86cdf8970b3e207fc047073657404fd4e10603300000000000000011183ec00c11f5b3ca73e1dd2ac139cca9d9b32e131154a729e57f72737a348f1bb27c7d3e3bd0b74319e7cbd54adf14f02bb0174f3a73cb40c1fa9a51cb3ea3b2411e5f07ed008b61ed11f2323b1ba3ccfa0b2552ab1cfc87c778e8ab8d4de70b64feb8e9d8eae27d81957a5dec02e0f8ef2ad8d36eb262ddce627a5934e70ffec70e0f52a21410aef6a80afb3717caf1307214ad2c37062b4f236bb3b355fa2a82ef59461b7a6eed7d71db03bb512b373937317300ad165620273102212050345d923367f4076a8196325a2eabe107f577946664428a7b917cad87242796e625101e74117682347c8830e789a74f0e11b0d8e1d3c09d199a56e1c5495f41b26484d19e01f98013d5082ca284f3a702e8a5d5ccc646545db0bcea2d2ab5d0bd8ce1c4467ac4e9aba735c81eef96827f0e8826f801461e7bbbdba90e021a223bec446b176be61eade480eec31b57cbea7a907b367084b3d3a7349938056fbebed56346cf7c7704f27f55d55a49f04eb5d89acad9e0f24040053b5bb1b2ecec6821bb9f5470a5f9fc9a9f24d474bd01089edd6acf3af268caf1bf565bcb16d4abb40d847b56627fa25d5bfde42dacd65845f830f4cc35b00b5657ee91f185e28701fda99812d8faac7452ac5586bdd2afd56c9f1eccf54afede2d8ccf9bb2d60e878801b42108770167585afd679040efd838b8fd9c512c3af426bd0a8ae533aeecbc6ad07fdcd560a0e8f94bb6c13d8e79c93d3bc0f59ae6376a895e64fe8ca8844e39302d55f1a448d066043b8fafea3f0e1574430381d127c38969808b967afe742a995308e035b2820f3f86debc9406145e8e6b2418ac6227b35d03178194e49d9a79e4db5102e9ea63839776844000a6ae24e23db79bf1f358689e4359191351e3479b4b0a287bd58b672c0a54342bdb262ae85e64a6c085c1d69884df44ab6fb24408a5561c610c6df2e705c1d7832cd03c4ba93cfb3dbe0011d70a35db8d7238924861b35d9e2b9c32317dd2b1bb4f73aa5d41518678edccfd4465af2e4e5a777735fc7f5b7757fe4d33f56f7f269012faa423caa4294058bf664050a97c84ab76546febdfe4d12307c41203a0d97e3ca468d6c25f91a9555517eb0a3630af7a2966c0d7146119791f248073202b693113dcddd62f83a057e2eca9adbc8da7517eca74f0bfc79d91aab2fbe44fba074535a080b4fd8bc7a5fd9bfd0bc91abcb17ba39ebf97dd98036ba0a890cbe22ec2283ff36c27196eee2629bb390b495e91905175f25d31df856410e131915f3ad0edb0eff7a1414d46502779e24b42862c5ff79062490dc434a7d1ca6159e066172ec899a0f13fda6bcded20dfa370e5fdd7024d54746db4b9f5186ee8c442c684d7d19e97ed71c26d64ba7e9901a4dca031afd3d8f1c026834aa74b735b951423dbad6e37adb34edbaa738fbc3cac2c3ac66f3339f71a7bad3a6f66e62cad13d741b4520276a96919967327b60d78f2077acda73731f5d4582422252d188e6e28504d14bece5334751882f831186640e10d1bbbf0eb60f90a3e712074a4b5d116190d84080c709fae98566ae9978dda00f03f373e55593c0f5e54967dd50dc2361eec94b48d7e5aeee1c9fa1e76ebdfd1d87b4e0a6fd13f30c3e59664fda570a8dd6ce75767aa0e6fa7597c16ba00a87cba3559ea4a5d78e352f5b719d773dd7b3abfb2e71d002c5378de9434ee0644201c4179241c72b70b35f3c4184be9f7c20d9416fe81576ed49413c2d5813cf641f8be337308f0f9732b1b43ef976bff630da88ffc806fc4f0cb5b9a6fee60296c35a92a8c42a850a6083bada386b779095158ff7387b5a9e95fbe055c4a71d0fc4340212c4bd7aa0b041747df73a2f10c7c9a451e5358665c19dba16df5650c6cba35fe446f44c131f23ba326ffe90bcf7b8cab89cac4c1a9adaab6be4afde6b9b517b54d1c32a0ae3566bd5d77ce6ce89dde8b02a2790421304f7f73fc961da07b4e32b41bbf148273d7bda236b81a3107507109d99456a6987e3f423805b6c9647261382c66ae5fa7325ab70ea571ef3b3c17add33f92f9d957fa7124a219c50c5db9984fc54a15eee6044acca6c549fa9911892d9faaef349f4b3202b834045d4cd23bb6c80df791580ebe90f89627aad44a3dc66b7b456a092cd5ce936b22bd0d21ce9f7ed5a66a0476a28bf437eb1a597adb8d28fda6efd7d3a5d2fd99f4d4a9ce6dfcd3d37b81d088df4f9d04c844f920b8bcc18c64ca4deac226649e0d83b8940d7481f1f355e802d1f3568087976616316c34bc3cf7af0dbd789de5b7d091ba89769cea9ed0f718d5449815fa899f488a46811b57e011a0f1702feff8e73c2f6126e72b580f374550ec40ca1a2dfc3f5a7d0ed07d1ed399d556c63e5dbd1c053613af277f8397484f63fa5d41e8b6360d7f4798b92af06606b43efff1336a5ebafd4450fa7d4e17e474b471ea9f1d4005c703e0081deb71c6e2417afd27ab02f388c6453bf6fe2e4c717755cad3e69bf17e08a105c088ab5a276048ed4d64f8293fafb8b644fbaaf1988ab5b24032b29f25ca8eed23bed5df278ae1676e6aea466c2054711390bc8d223cc3e98801e5d21c759a1050fe176d4fd5c7dba6cd82564900e0780abeaa748c5f9d11d219ba97fd1c33e54fbb7e83f1580c12b93505588b32f08ec8f8cb5cfae0071f2718985b229536ae5dbc5ed04a1debd3a4a506c58d2122a7378fbb8618893a6b1b4bec5e4f19bafc27722ed6f9dc75deb74f67fa7ba280c4218d040ae2f9915762ac14b7bc9acbd366a964ac096821554da9a2e00250743b6f5feb6d7b31427cb0ffa138a7a01b0c0c6b1e6c5b3ea4e493c170c51a413611fb58b0423a3109c692c8e4d8fe3d3374c57581b9f7213512574be3529de07b00ce889f6b8e277687818528fdf576f1b0587916381c867078f7aeb383986195606fa473e0062f502cfd56513717ce47fcc8d907742baceaa78144bc35cd93143cdd820417f4c30e72a99f2268868751640bf5c47f01afba8d51040f292fd373df837d443a4f1824215e639627df2de4628ded1b7ca7336e4f3bd02f23921b44f7f81e9ef755286e4f01950d04159e17df498277f8dc2555c58c04aacad192141586fd6320fb2f7f59f89dd08c8547330d3b94342271b840c80f73c8af4cee1fe2cca56579c321c07d7133434edfa7234790f202226b2363ad168917b741d0e1686f6e79fe112cc5bcb478a8ce53e2efa6f73444f4dee7f57a01648b5eedd5fbdac7d49db28d8fd8964a27d5c6b6246325c92e9659c4912c9758f3531e3d7cd66a62e85868ff066b88feb12e542c12b4e9f57fdb726d067a810f68a683291295915bac7b152c3a168da94ac257bcea7c6fec2d7c7be87adf50a6001c315f575b35929477f53d2a160d465769bda992b606b7bc35d6f60933c87b76dcec8724876ebf0b1ec0e2c861b908d6de5009e2ee6a3e00eebcf4538a1d12a473da7008bac37932d7adc7d2fa3f4ccb43b24f76ce7f88f2a5858a0037990b2865b11d61cb60938746878cf37432d9551cb5ff842e17ab6b4625447d8179736f850048395e25ddd27d8682907fba53ecb1a8ce4a1d2a2fa42328658dc0173d13d9c296d1b8ad1b465922a3110ce6fe09834a650d446ea5643ba3b80095cc2d5a1adff86880903728289b68cad3a727fe82433251cc35c5e0e68757f50ab225f118d6fa588c90676643fc4dddee4800d72dcd0f608ac81c8dac739dfce283c1afaf5414371ecac64819218979adddb91fc4b7c96f8f7d89677e744284e27fa67ed14ce9c5d470393a2ad00310133aec8eba1dee53d043c2b9fda196e7fd85f5a9858367e077315261c15bc8c95bf37ba38a2122a6aead8b3d2fedd17360959ca4b9ed9b2cd82af44a56a07ab653f46b148bfab3212fd0a4a7ffc79c0fc7a2a856b58d5c26d27ecfb718601367546dd08904c02202c953dec2171cc6c1fe784fa45359dab9f41a01f53613c0cdd22b66816f4310ec1e2749758712fa8f86a6ad9fbff8905f471d3e50d9ffe633c659900b7c03c223668eaadb7ba1a35acf242688d8385cf740124e5ea84de6f6a4bba85ce91159b642db2fac69c9ab0a300625f6f1ef37ca454bd672aa2c1365a009d9095aadf4fe9629f97880710b73ac6e23c9d75f1b42683d53cc562fbb971c4174e883162b6cc4fd2f5743662bb471069cba5d9acc6cd60a65d5a083e9c56e0e05f5ba3a87a8f37446d7d252784fef11219bd0b0ebd35b8e27da185fbd12ac764294173bf30da7b71cef614181a16aaf2cca86b9f2ff97985f31bc07024817c2622680c97b6d7b7b8482217252493a597153045246cdaf2a9ef8a1977d3a80607ddc2502eb73383077c1322c1a9a74cd7d664b272b356195a4e23e2b07fdeb80b8e2782a4ad8ab9a2f12f3de5444f5cd2262cf7a8c9be16bb479875c21501afec7992cdf80625d3c4dcb8d37eb5a2f8c2eb6a01c3e80f0d706eb72fb8695d0ea8bf081b57de89a8cd97dd4ef17802f79364296adf0c5a362ddf3b8a04abb2f5d98e34a45f14a4cec38ea414247aa87f291d9fc6e915215d2a42632818ae1422e4f8ebfa771ff31b0f77ca3a20d6eea87bfe248dff0e508f28ec1bde0cc4d5adc72d20ff52766c2f97480e0dcc5f36e407cb4baa014193d35abba0c0691eb115953a89b6df166ec71c9d09695a59f9d80660c6c042dd5840107a8c1a55473f95d13983183bb86983c57db21c84cd59eec6fb1a8eafb9d72bcab043ec61eac853393cf1d68f19dc23c4dc1295a6129669e0bd5abc3bb221e04c37f626a878836893779bca506b2397b4ad50b0a29466821bebed4db82bc594dd304e13d196ac972d057a1aead9ad663670f03f8addb3388889b5dab6022249aea02667f74b23aa241496a78ade6f3afa72c3bc08a46a16ebdf0fa84894975457ff3333f32ee927f233ce0bf205cc890ca36a9290d2605d32e0bbe5a793cf57c38e5ef21018d2203b47205eeee7601c1da67f11dd199769c54c304438ebd4d5a9f195ff69451cdfe40fcfacf9e86e75018e182cb3edf4296a4c9012d328a46b6417748bf963c43209709409aeebe774828bbe7077e580a0075372172dd3eea59a22c21470161f6cb03cf9ba3b1cfc8253667a477490c4fccc135427cef96f12a26890219891f8a3434baeb8a729c9ca6f6ab672c7d51825fd8a0e2f27e5ead2f93bf0913559f32e481d4826671e36d26e8890b65c270f77ba8d6903181c2cb7becd2c1ce1bcfca3f1a646191f3892be80fb12d51d7b1bab9fa16e48a6ceea70a9e04459494f35be3cd4f1ba9fa68b3b55282771c55159e0bbe5f78c2c46caf9c17612642ba33479bbd7492c1a3ab08c2c825c141f034b7128ac5dd31f3df83b2e7b7af724dcacb60dc70f5eae5eeeab1a0c3e1313a70046bd6d798046272e70f2caa8bee67e256ce12f64b724416099b1c85a306ebd1acb3009390aec80db5ec0ace062f4f6c876b102c431d5c77c1d8dc0fc37dd7f18935b70d86ab583ae1c4df5b6cef967b6edef44806b7ecacfb23dee17849426469682e92d315bdc50080747da76acae8cb0e0bfc4ecf09f2cd0a640de8c05108712f03d85c22142b106d1fa1d5d0973d3c4641d99bf1c15133bbd889dfbc1a5e779816bbf90b767e9426a825fce7ad57dcf5cf0014dfcc89d366c7200854506a860c4bd21776621ae79301e2bb66fa2fb8cec87a56b67b19e65a54c5cd158dbf75d851a570599bb65337e4a6a06c350307193037d1c23a367fe3e9907d4b511577e80591f1c3fed5f439074919d63d265510e6c94550183c1bbb7a35fc111e45080ad66932038b5bb266c5f1ab29b1790859df483fe1ead256dfc9490a0e61a0dba638007fc04707365740563020003488a036dcf14048341cd896a97e0789647429ca2efa0728c0885a43480ea061a07a099e2dc4591f002a9ffc3353a31508311ecde7cc44b69425e65c00a6bcf829938124e518054f7d663c3af04294d0587fd10c45bb0be58a54aebf493312ba907fc04707365740621027d07ae478c0aa607321643cb5e8ed59ee1f5ff4d9d55efedec066ccb1f5d537d07fc047073657407210385ef5a244b9975972b741f7c6638e73675c39cd4b193e2749478b82d74cfc2c407fc047073657408040000000007fc0470736574094920000000000dade26c2dbe68e947a9abf5c144d845f6565052cbb86cc3e7556e42c16dec4950f2e8f8ee60fd304dc78c4f217f3047aa41dc0864715cc0cb1c1bafb310febbb2124d4e07fc04707365741043010001fb914762093af26114dfe5a129633f9ce7fca7a9298fac09f2770c31b718bc6ed111926d437c37577804310d02c04cab2ff0ba5deca243405b99b5978fd7ba6e00010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000001030840420f000000000007fc0470736574012108c77c79daf83fcae282385a322f824f611ba0fadbd1d804e3802f0cb959faf10107fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210bebe8b51e2ebe90a7dfdd4e8344ea1ab8b2753112dc2691edecdb1dd71ee06148010422002037831b3ee29fc96f8e61ccb98fbe2dcb03e189dd29cfecc691b5a7442d8548e807fc047073657404fd4e1060330000000000000001df677800b2ce69495bf1901f8b9338d37be7685bf640aa97050776d185bef0e173a15512cfa115a4c0bc1eb198cc9c5566ce5bdda976988563afd838e4c4599685750d0e189b84badcce8a55189eb670b968ada67c7599a46c575bea647a8bd343a0e809077625b7703dd18a24222d8dff001d6a71ad649219a943dbd8dbe7601aab801d5bd43bfc9ee18b3a9398242e85c2371b928c2f5adb53e7a346ae8aefcfd51b2d6d21e51137a113cf973dc3a5fc4469be2a6b3decb9323e4eabefdf3cc3fe830a83e0b8e76a4943c5211ae8dc3a427ddff99a6f725ac98c5a1c577d25e6ebae8a818fada54343a0ec55df029ea64d90a18ba619d790ae5406ee8f9c24b6217b02ae833a69d72212f7e2e0370276e8d05013c5aa2ec30147bdf31ef0baa724cf7d9153bdfb55684b8b4c2b4080836cd4d3513a648ca9eb3864e22842fd0b4fb0578839826a424314a7118779356469825a27a4fa6bd6aa070e443c2a376a952f9503ea8b209fbd327510a839a3e369b7dfe29e031898167600c399c8e9ee12551acc60d458a758c7560d25c3f76bd797099d2f936525a1923adb6977943cd2b20276b72678d8b9cd7830784fc4d1f99063e89bb42acb59e777c6759e3161faae353c7377290dd0ff46d8d55c7441ecc41abfd8979917587084415ccc18943157393ba0b181b79684bcb32f71a033ed8bf295a839d2c9e87fea03d432354a6df0bb492413cdf9fd3054366c92f8f0d0dcd8e69d660480ef78e857f93589cdb11a3d75749f44682904ebcd00b65692ccfb0ae35e73d9245b039c27597b73a03bb5bb2b8c2f6ef19d1ac906d1630ab42e1e52a650906c1564a6ed299e29911c89c724b94581d1144694d27cc653e3532d9e99dfb26cb90967ea2d3f3258fba9549958643138a24fdfea86a58c57c1f2926e4baef915d8c15fc370ea4caf8f8647c456729d41e3b5eea733a64abb4bc6b545eb0257decf9349f30ae64a1ec75005127851cea644e629d5051c2ec8c56ceddf7d92c310eb08fe418824f9b02d8d619b97e823784ab447f063b322a25dfbc194a307513faf5396855e8b2500209361e9e2e3db982eea01adefa957214eb36afe7e28e96b5e45cb7fdcc4ece1bc57729fec0040c6d90aa45afdfdabdf7db2ecd363af7882aa99f11b5e6d4eb2bebf32af8e99e2cf994dd06b61ebb3681544ebab8e2ffe4501cfba8f438a85a2536bf67ea54233d5c9a3f2449d6e75c02ac09b559835d8b814ebcd0e88ce0dfdc58bdd8a8f09f7b593a42c468f9221eb48fcc677e3965454f1671e2c952e163aa9ef9926d9a72bcfa4a8a27ba31c341836befedc641f9cb8033d4a9b9618502ab123a251f2e78a850eef8afd8f6e0cb70a1c396c2d19e3a3e8c575daf6e6e7475bc0e2b9a174ad70edb1f8a028d15ad8a8ee8df03b937ba7fcd5bad289f240b5a71237e917eaa6257cfe4c5abc96d297fe5925c10fcffa4e9074c907f271c0e30013b6dc54e4fdb594108cff604735faf21c641a1a6da08dae49ab47da58e043f03bebc1d724e3e3c8ac05550b17f5c5bb77561ab301d7e65dd192d7587fa9546292e6ec2d7cdd1b58049dc336234b3e4ce7ac4ea11f6ff7ad40083e4326101dc8444cb0575bee8f7b780def4bb0369149212d345c0ab3aa181c6d04ddf8e019851094406ad87ba3891b03476e45cb0c46ce9030da7722cab54f7a7fee4c34eba57bf368e831133cb6511072357d51bda2ca2335171da331fc8128156558db8cfc50710f12447bc0bc22bfd81d71eb8de7599203dd0a6de047339ba5a859ab987b992538097230b4baf5f8d2c2b4c50e0e5cf5ee6e28d58b2e3ff19bc2b09a31133ecada029c8b055a8e63ba0d4a0a2ab01f4236280a347531791064cdbf12938ef33245e5caa5a34cd9528d90b525e1855ab7a18b8d7c31a0de83a93fa6d844a629c0e8e8e1f5593ba0d8c7e34c8670216483f793310556bcc40519c6506ff9fab6c2909a11d1394882bb156def6b92fa53cb05defd38d837c4746b0cf385d0834e799f2593092e7982cb882ce9dc77f76ab1200c2f0f81602830ec0f17d72c15e9f07b8d5ac748fbcbaebce19204bae7cdd92f748887ac52a6d5709b8294e804cde7f14aff0b3116d1ab84b2c1cdc11ba5f20ba33c5d070784b10ac155f8ef272e495e23733812be68aae1203332c457d347c2ee848e56117e0f999df29f0b9bd80a3f8898d5842dd19137ceef74df96684d4c00ece779c8bee2ee863f7531174afb767337f25c721c0e636e0ec28fee8c29f09cc0d2e87112e320bd4dc7c783803a6ddb53a3fc9bfa0a31405229836e1cec0eb7b96a5dd62270f49df3dd960897a4bf024b71205e58aea7cd62fb0959822ab27c166de4b3787e65ce8a4250be815dd6b77e24d56b96bafcb7c9a17fce9ed5db9f4154ddf156f7bbb5a1b278d844a424bb57e5c4374d6de6c9969230ac761f20ec602a9c39012f34ab97832dd7570a087ad1c6e7a0fa9afcadf6c9be1c1cd6ebf8fb1120408dd1fa94918c0886a3cfb0d7495bc3dd56f6b3d8c40238c82960f421468c3001e3c75876adb501c85555915f87a274c1da1d1c230fa91d72027a08c44dcaa7b498945a849e3396059351cea42461e439d9e28287d3826086114ed50d122a51208f55bd50c73c09ecd1171c889da4993aa411b5ad6461836e19d32b7cee84f3c6fdbf1ccf18c1e8daeb0434204aa68cc092c5a87fe0a0731aad75dc6532ee2f333ba304ebb31e059631b8d1057e4cd3aba1792699124765b083730433fe6b8e9bb73c377928a75286c20c698c921cf6a1eb177f001a11a036bde2635a52ba9098dfc833331dd01e9cbb1a83299262d9e3b40201525750bb69306ddf3fb375b45e8ed2b22f2e26401e793bbfa042002b566aa226df824d3830a2ae6a23ca5e5f41c0d2aec07381eb76d5421b89395aa73e10ea673643062e8b7c24fb698129a4846b351d0e2ee4620fa3178943d198a64de56eb597e214c484ce6ea11c05c6e708a82c257ee0f3ac10c59c131fed601caf118c7bdd8a57ef1c895a1288c45e1afd8890042cd2031fd445bf0bae3bb16e623011b285c6e3be4e4151a63a8ae963ce4d11e59f096678077422e025ac75fa89abfec7fcd1988807e735973e7fb75881c8a9b998e3f1d836ff9237e1c93f4d4de8c17cb465401147efcff7290c69297d3e0e2fef9d7d6010febf978d1c251f0a0c350fb792d3980cacd3ae639015eb9d5c4d2c2fcc24ec3709066e19924c75f53cc008d906b370ba32fb138d29e3c9977e012e6e306df32057e45014fc218d7d9c528a62e7b1aa63639a1f7bcb18b5da49d689ba0f01ae1477986e1a2d2a06c8c999bdcb923ed921db719ce16db1e79f42d9b6834d2b4918cd0651fa077fe7e172be124fe4c612ff534d896d0d6d3ea67eeddec8305dcde2899cf496291b5cc4b5e6f67b94aea57f414426f65f1d669f68acff7ba030319f3e31e98619ffd7e45199c6ab92ba531c80d041291113b65dfaed5c677ed0782cbdde6b9b9df1c4f3f71fe8493968688f593b3493dc40618b2b5cee3f719fdfd323406243478c8d27faa144076b7872752f31788ec6d6f60f581e28ad3023339321672b9b79140b42312f8258ef4b93298c25c3fb06481fc972102c1c48142dc45af2374ef74b00d79b13ed6523915d001e82d7948ba47a303757e406307edfcc4a3303f97d97abf94741f990bcdd77d368f8f8b4c1fd618d96f23014ef14e9aa990a89d236931587e69a0d9373ba3b5718aecaa36520ce698ba8325e3cfdded9f9520fc0ed4ed391257c593c6641e45cd48e5d6dcded98cfd9d547ffc3ca9af593116b04c5417a0f48723cd6ef5ae481e79f925975f782c2536c44f72997150f122fbbcb8546dfe25d7f077cc5971016a1a9d0cdfc96daa6126f954ba4e448e312c0df7547a8a88423388fdc151c4d54dd90d86d9d7466027c7f2b952723fb78c40fccc421b403aae1b2bfc4c83c8b8b713289568df2b568913b61edd3828c6b3ceae5ec8840e4e9493b95213c592f1047aaa4cca061310f8d577bead1f95ad0863b73d3f2541d28f31ec70f41a9e4f9d1627b6a8eadad91449f13b27fe1785cb58442f7a3f427cf0bf17e932335ab7e1f9511d12b2cd389485ca89509c77971a75977f78d28addc4713cf5ca133c3b2b86e6d7493e3e32962b1e35afe1ab3e610b54ce3d8af0f2d2b9bfc6e6bdc19e4f0a38b34f82c270dffd2e94dfd9d200b8e39adca0ebbdc24ce420de45a46843cda0da707290a1ae359f11a3cc6da0f5a73cfd92fd6cbf104d0754a1ae990299ceeb7f2ae841e5635b88d63e6a0b73d57fe6c8955a5b422d28e7f878ed52a6ebfceb49cbb919034523919e0da7fe2606e103c320068d2e1a1f598eb0801860f2a397825c4633bbfaeb401240e6da583a259ac483b62023c4c623c8040322d4569bcab8f1a123cfdddb864e68a1160dc6aca2ad6e4d33e754ecdf7a85bc92b9d1a8681979973c2d7f076005ce7da7671af8856d40aab7a5e19fec4037797a40fd2d79d8a7efbf6bef6e557e02be30e3909c334cc9705a5efd32f2249ff4a388286a391df8d1794340b1509036a3b839d6663e59f9608e6e1c3d1011d4d2fc3e9da64100162bdb4829fe601c09b73643f5e4536cce6f6ae2b291428980b82ff116b5fa26bbd3b0f6083e46c7905dc739b93b2747b8d6bcd2ec2dc58d1a736b8564872f66f4fea49f9516b83c006e5b61d5393f8a08fd44ad29d8a095aad686595d582bea79e1d66ed495b731df044aa81b8c6ea24ded8992ba2fe1f300921fbdd1e24e67c68dab1d3edac6a92d0764683f740f5c9f9afeed384688557ba22085ac7dc8ec59294931bbf8775eb9537f524f5200dec8dcdf8587404c78e77220f4f909917583589d92d710f5434790cb97896c543664128ff2fd005aec77028bd822a89f03afbafa819e85904670235cf33346c4d27c7f995d852344f57ebf1a7ec9f1a5887a8d7ba93bd152313860c6108c2d4ce587be05395fbe3b8db660edd2316e237e405ade4e6970f7e2598972c8a3cc8c92e5b5553972ca186a6c8b92860a223180dcce7e45ce32694a592211ff4f513f2b6eaf656b97f64cbcfd8e06060ea051e1409d401c6e4680fc967079a46e2dd94bcbd30925e570414c1cc13c6134ac7277099882261f39c249d22a9cd2c65e3fb10f42a5d3aa58d08df9c3298778212e84b38e387a2f3f7d44b1984b46fc4d7b388cff2f9830b2bb70a9cff5a661db06af77469cc1210b5074b65e20bc35098e3f9a4059adb99f281649358313d26ae0c5b3615c44e7fe5283570226437cd8707670e6b6fe10e60f9eb9ebb92e9437f2c6f70c058e8991c8620360c30b9135244a3c498847e75f3ca8cad3f529bf621543f9b40fa6c68d3fa8cffc7e7de9d2593d95b7dbcd5c5708c5f8e39c8aedba974514a6223a3babf1d1b1de974b1c02db3201a5f3e1903a1d44f85819e02e1c6108922bf506e469efb72865de872e36a2a8f17338dcf7210061ad041c63837eb312c2aa9c1ea997e3d33f949b141fc2bcad63d3b279bb586af57535cad5b94f72d62bb748d0ee73a11577bb2292c5b9b0e756be4de7d0ae9b1b67ba8e37242da3d989ae8ab9827534026ae81ee993001ab07a21e76154b44230a02dbcc3c1d1e3632d580c42fba3cf6019fd3aa09d597e3478f0a4536dabcb66080cfdceb2e07d17982ce6314bb5c4bc59cec2d3c361ec9c9986aab42fb48d0b31c597a8364abeb484841f2e3afaf7b2bf68f3007c08c0fbdff5bddb4b37f114a4fa1c80080b1083fbf9f915810a32aaa4010656de78824165743fe4c8fa04f342712b91c7d61c029b19d35898863e33cbdac469887c65173a707fc04707365740563020003a85f646bd3fcd8888d98e322dc1e57f8edc3fc4d59ebc2f45dee8ef52209a2c483d06fceb4d7cdeadcae0c4a278569cb7ce16525d57da259e59de808328f6714bdd4024242fbf9454db6ebafa1d9b4d0ab601cd2cfc180aaf2d102dd745f557c07fc0470736574062103d559d2a5a4180f418a69c4bed5508971cda9313722fff71e053d3d82fee9d7bd07fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c1807fc047073657408040100000007fc047073657409492000000000000f42406dd8401a1251d08654bf42ebc145013bf2da10ba2fdbc2fba6fabe04f7e6986871ee81e8da558488965ed9f8bb5dfd94c845a60fc6db61c993382d1a7d642fce07fc047073657410430100017be5b418cee5e9040745ebc5256ce1a8fca5ea5401e5ffc90ab4bac89cee7ebd88ca46b1fd6c8ded575678e452ef7c1c80a0c4abd0077e80274fe115dcee54f900010308c0878b3b0000000007fc047073657401210863cd86124cc566ec62b0a32ee57c9c53c3d5f21e573203701c10635d768dd5ba07fc047073657402207f8f32be9443b0547b4daedefd9b6b0b655bdad96759a57569bfd429291fa44f07fc047073657403210b9ce9d6df13c1f70359a71236f60cb985d61fd4b89e30d6728fa0db420c50975d0104220020e7da55d19cc85b0420c539a90b667d4d85f59ee0ed417493a947c3a2256cc0aa07fc047073657404fd4e1060330000000000000001debdbc0052371efd53bed69c721eea67f8d224ddb7d52e7781a22cea941856bbba3374b50975e98fa35555fa791bf41ebc84cbc296a7fec806d8399a94d616ba09943164c09df68c8b0b4b476ae1264ce6e67c4d7e28ab01cbbf870c999c128448f8b5ed4210a961e11b579f84e95d7bd41e5c81dd2970a24d21c5b033f0da1a4ff157ec8c0ffd032aa653871155c1bec15451c99a35f3d04ebc15ce76b35f0acaa42bde8aff201a83a8cbc359be0efc6bc9d7d48aec21c8753820d5b36cbad5f6a802418f73552a0d5bdc2ec26510678a27c9be1b91af89f8bfc44873569aa447fd1c82bec6a3abc24b034a57b1e4014cfc93836ca2e648c138364a06118b4a57a89368ae3c64688cf61866ebb254a6e1653b2489f7ff51c36fa783d1315cc8ce787bd01b2b19f0369abacc23e19e4860b11efa9ca7f55a89aec7181f0f11794c5933d3de88358d89e8e5aafcb9cd611f6507940e9a0844c432398326be9554a702cb64049db45a8e3226f4bdcdfca57bb095d3ce132da4fc76ed123bb7161edbef35641e9ce846839bb264dbdf1efbd5883a13ece779d29e854a341c2bd7f73d5406a1ffde9d13f8efd3e666c81a58943850b8c4a35cdd0d7ab172e84e38f2369bb1a123253902c70d5e54df97c0a5cf5365044f364b79350161ecf27d90b2c3623dfede14ef3ad1b1e5091c71efef44c21840c09a3c419df73f9c06ea169d1e9881032a06b05e0639e9177276e10ce6f9ce9aba18ce6059e25a36985bdb301d680ea5240caa0c2ca01b8bbdbc8e67aa35bc4bbd1dd103dd2cace340a2de560ab4b6a3000f74d1a7cfee197f6a86a4782316b15445ca1aa97acd2dd1526e50b902d724fcc80bd4f54720144b8a59658e7cf291c0f0f672012d2edf0f941af6ea648db95b3810b03cdc778b89100f4b2220f5529f0d6b95363bcf1cd03a2db471ddd22bf2cba7fc647f6c167e86df4fe58ac04218da3b34cbbc842a5643f778bf73b3493a901a6b16fdc24a08f7f8d74ce5ed93a7f02ad2a25c2698bc5691ad1b4b88b48f4e596b798ca0b3d48345fe99d828e4a318a8e9f18ea6cf25ff04022602c07c5d51db1428b1571a3c234ba6ed9561202dd9b2fc725fe085e8fbaa71e66f89d0d139183998bb677694c075896e8806d64ec78098be437ad3c802164a0f3d098d4c31c6ff7e9bef3761c2173169ec15836dcd557f5835f729d46058130bebcd1e700a4a123ecc556f54d8058a04c959a4eaa70092a9a7eeabfc44c9a11ce3d49e3452363e9a28b91239ecdf02e6f327aabbce668ab5ce7381e4f4bbc3447ff03888f0c4ecc2e7cd16f78efd7dcc6727a0f9dde7ff47d9e3470a9f44e1a468fc195018c24efcd0c0f5087e8a3626b753eb1084a3783448e6a6793b207197193bbc3a0d34c6cebe631f0a697266151af396ac4877075e1e190273f7005ebfc147fcdee36282a9f9f88ff262644ddf8fea0c0db67c47411bb9256154a5aea5ae513b72ef64dcc65367036bdb020b58fe8a70d4b7cc6ecbf36fd10f179eeb1b14e402b460aa89f628aa3b87695fd39c76fc13f6a82d5f296294966bb4c52535b577dd3503d7b5f2ee6f6c922d00be84bf9089d10de67a28f261acb9554f50e065fc2d85f1887e4569170cd15d6e46fc1a8cddc0e8d422e09e1ddb81e8f6f356be3d98f5186bb911562492db14e7c7a3f59214b0c0bd8772f553438b5232822bd8728189cad1d5c1af30f31f61c45c03cb3e24d6d6dec4a097ddd79342d87e0a3194636ef795fba9ba7d20162003610b577873b0cad2bc6a07fae40bd1a423d0b2a338aa1cc0dc5be8214f19933d3eefde1ae44d52ddafc264b6233120d61f4e51bc311cceee2ca511d684f65308a10da0687a9e5eecfa7decd6b4744d64492ca82f9849e166e6e05c2519bc2bf302500438ac9abf33df125bd35eadd185b4d352d1232414c85cd08a21ad0f987702a7e4e0c30cfeb8f1928df59534f509d40bfbb2ee575e336d9d9cbaa342064bc31c24120fe01f1c9a5fd3480f96d278855b4019b499955db7aedf6592ce5e89ef2a62e9f4c2114241d1c13f2f530c7931040d8a8abfe96034237139159d57994b1ce71d86b1a444276cf81d520569b2ce13a039080b5aca8b32f94cec6095d085da36f22de5e7eefb091bdd3b66931b2fe87470f85d469df193f7f0ac4457f7835250923a8a8c4650de9dd63d5a9201a7b43455d6830af7103f6afe7b80e66e7e28306a541f54b38e11fa933d7562a0accc41ee6a791eed8bf2be661debe4c23fe6252d320a964aad24e30a20a2a24d7eee0c1f276e31de916259d1223f8a8fc991214c5ad3ac07289eda4b63835b029de09dc98848d60801d8dfc3a9d1044d87b01187fa92b3f3feba044934e5d9bb6f65c7f1b14af27504c71e99307260a22ff31250b36f443ae3067c33adc6443ee745ecf3381247c09c75967e34e7390edc9109ebd850f4614da25aa24bcad134eba146a9518685820040476177f0aa33b3eceda704ac7df1ec969dc8f16c8eb62a7bb5d126e8c29553b23a43a3a0cd2e8867e7d41abebeb82ac8026d44f01bbfbd2e3326ceb10a85edbf7f7d75016dc70eed206b4e8ac679cb76ac73a1ee174e7566fc415e320f32b2e726702355fda42529fca330df1575b978f034dd2f965f8fb83c1b7083c7e3321ec31b59d0f68bdc79cbcfda07082669a23e136c43f36d3e96731e5b866b973ac061cf47256b71b09ec07ecb2e9d18c6c28d64688b0cf807f4270bf2cb22d6ceb00ac82e09325f370a6f9836b5bce257c6f4ea1a524cc626bfb18faea1f3f47fc24bbd6cef7022d5fb8a6d4feb46c71da829a3db35369589561d7266f0e42e92417af6f21fa5c040b2c9c8c7499993b1223b5e7dbe8ce9232122c042a68c5079951d7977c87af0140a1dede561e1d1d141743b0517f90da50366136c2548d538576dfda922d3db1f0fe874a87f671158bf05e0f5967c8fcc0f63c3c2a925b3d44619cf8628dd720212c4a211bc1147ced33e69d790b9a8a9d0163dd144020bf382c40dd350701cd05347190720137847c31e05d8bdc7b3bcb2b3f0442bd01cf101e323ed4604d5173ab2d44d2a32a5c0f7e60d4924c0a8767a423c57f9e2b9337df324dd19961c7af68475efaf6d70d5abb39a9725a193e4c2c676edd6e3fae1326e6bce4ffc8191c36c53b6b0a53a7ddfb49a6f2e61d3ecbde5aa6c9f37f367531c886e8dabb985fa640fff7552170cf2270f2400eef8b6352b7b1abf04289ec8fa584a35add6bd21ec5b901d2ae5e1d874e333a13f2dcba56c96ce2b25184ec32e9a5e983c67d1869691f6ad94fa6ca93a6b6bdf15f4f3f3c1a01183568bd3c362fe5c661e1d6e307713a6d3a2cc6dcfe5a20c9dd953ef39bc1021bdc515c12e8e2609b4d1d4f894e44d219b405104bc5a0627066f4c12573c2582cab13610c0584be407b4bd4e6a93d3896c4224a67c5a38c7eedd64eaa445b8999989cc4b30d8a079f0ae7cd783431f9a7ec275b0c1bd9c9122eb95d5b68cf0a89fd70894ed26c118150e214c809abe3859dd69a547750d113914ef1f6e2e0ee8907f30ebd35156fd53473b72ef9641dfd60fcdb51c01d815703e47fa5be468634108d91b2180da2f6a6fb83b189da55052902954316a989904f04e6c20cad994c8a9877c389cd1ace4edfd4fe329d556bab809713e35fbda452050c2b7cd6fc3527fd8e6d0ddb38cb3859ca42bfdf0373fa19170416eab2430ea925c30fd697b03dd8bb15306b51b9804f2bacd88866ac59cb1ef56a04d590e79e050223eea5ca990f2704ceea054a82188bc6a1202ed4fd5d9fe899bf9972e6ba2ee146303b69472b81add2ce946d52595c5a33ad9bb8404c6789a83750f8021f103fccd9ceaa92b10f37dc201ece705e91c6d9263169b15840899f960b9d4abcf03a15c4781d1969cc778c9fdf94b83ef9915f8abd40853d32422649ad5867baa9a9840165a660ded81710d34bf3fa02bdb98d8f1054684fef56c6949d5a9f358455ded4ab3683f8a36a4debb9fc570429861552d593962b475ed03abea1cf8968d372ff5359ce23596b27157170711e7d1745b3e9a1ca7c90e2bf2df46a201250c85938dba0a33cdbb07d70f299ea58b91a9c932b392a6511bf46915bd8066273d2eda87cf05bad23ba37fdd85ec28b74e745d7ea37812494bc870fa05d642ee5f916b4e3be271fe2604ea696294ce0389eca16c83518acb1d5f7e121a30768c97a3a243c356d75278f4f940507f25dd381a7b45fcd30ff7d828fc03a0173215f837de21e54bcf50b336c8d5363a285bb0d73a45ffd2abb08a601094e6d68b784fe961ea6ec9cc48fde0192184fba84ccca9b9813616dfca200d1228103690d9c3404975cd0a8a6abbc0d621fa55427588a2334eabb2677b02a194e2dcd2c1d31b0a42b80539dd4086b33ab46c10a65a046104497d6f1957eef4aad6604761ede29e76359b36ad51682b55bd417b2f14f726141f8a75dde4797ff77ece60196176c931e3a8ca0e8345ed8956a2093f40d8d360d911efd21285cc646c26c294f5898712c402af3b96b6860490530a6caa09b7b56dfe4b8e3c0ff8967d54476a2ff4de98f1246082bd7295f057189bf5c6289a739e8ea26a15f90184514fe5cf5434d4a530c56138b2a5fe431eb76724805d7b3768cc629f9c8f4b02a2e0b03dc38b626ea2624b11d7e447a6bf43cfb5bb591a281f1653818607cc88ed24fbb193444014bb3bf4365c4f7a4e5c5b584696440aec71f38965174263ae9d26f3f0df8d0c964ed79c2945834a311cc7d4d999fe6eacdd5a2bf1ec7e49e0ce11f40691fb93228a1a22265f7c42b7f64330a588c20ad60731ae121d60747efaffebea651ad97c8643e783f34dd5a23531d4599e9fa0f8a7b1bec4f09cb073b29432c1fc19c211b93c7f7844423f81b50e9ca7f5e59f91abc586db9ba5287ba2a96ba8b1f6ff17fe6f91e7048c16210ce674c9576986336c0ed205f1e9a9f1835522e07b3d7457d2b7ab0ad4038f15530ec46599577613c557ed3e10f80f6c9ad243f9cd01bd146ae31931fefd8e88d23d145ac593e18dd9d8336572e7bc6c64a0315631161f8fb4f4723c46151181d7357649f52b9e8b68431f4f5485f6feb5984018c8b21473000cacce8c1ac7a74eaa556a4381a9b20c699d6cdefff2977f0dbdd010b0858baea63dd7ca44afd10839cee25cd03f52780e42ee483f499ededb97d199c4c720956f190c77d8e6a48832fa7c967c61f9859028cbe15c17d4619f563017d8d269d66644188797123ff06ceab78f9e931fc985f7e73f18702c448507cdced5b514e0ecb9022bdfec9ac4dfaf73fdaf70f866d89f8621bdd290415f39d1b85b7d960ebfbc176b51864c99603cbe6b428a51ca4eddeda8ddd9d2e636d4dbaff369c38f126195d12a3fd0f73fee0934318e5db631daaccf16cabdfa2d535280a4ba242926f9fa258b7f195a00b6e67dcf7569de4ba2e3f49749e68858491d047c46ddf429bd728b2617967fcecc281b6c741c49e390eab38da1890a38a7b18c862a0969e06526e2abbeb3136fc04cf7613e105f8d50735bf6a07a182ec8c698dbb2fa499e7ff211f9305a239cae70f3ef1c0b26432526f732955402408e1ea8b1064fbd0aa70d3fd2ede540181fca301bf765ac3e12483c6fc4639d82d89136445a6f6c241f163535532abd3667b178718dd4ea979870ae88e3df98b8e3fe797224bcfdb0873cc747100dd06b3a207d422715946ce68ba4806bc8b3af669eaa90e193fc96cc25912656d65b342ac636a6519579f193d2df7db19d6a9a4b4a2f4eecd6fd09bcc1c622d29e2a4904df42f500f1638b360818774d39350557d5da6f795af45b07fc04707365740563020003739f4c4c017710f17198f4e068b0044a44a02b378d4188671d8c152e43924cefa6e7f733f6023c5f4325654d3918cf512cb28536f77b690a02f0ad05c1735cc7a9adfbb717e48fb94e37d170ef888ad023b5e3e2a05e2f93db795ab190a9d3e707fc04707365740621029e5980b4f9b9a9fd568c1c4b48631a800c310405ae8b2ac41ddaf87add3062f107fc047073657407210259829fc9c1d06291af2b190943c06c36603e530abfaf8ee654c469c0c2d10bf407fc047073657408040100000007fc0470736574094920000000003b8b87c0f607d98d1f52c624e74feee00fb8a85d9e2e316b01f7977215a40f3ca447d9cad9d67f94ee2e48b90125f0dab582bce7e63b8e1c90aae7e5ff2df462a133096c07fc04707365741043010001eafa72e82a3bad5727aa44993969dcf456f421acb0ff68f3180a93e640c97756400f98354eac59c40eb33817ccc5a8665d9ebc93c63141d2f4a042ee226decc700 \ No newline at end of file diff --git a/examples/test_vector/raw_blind/blinded_one_inp_signed.hex b/examples/test_vector/raw_blind/blinded_one_inp_signed.hex new file mode 100644 index 00000000..d704aeb9 --- /dev/null +++ b/examples/test_vector/raw_blind/blinded_one_inp_signed.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c22020334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe7473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc047073657401210896b0978a97e9dcfc549d4c0766f96a30b5749429ffd7bc7c65ca398be0f739c307fc047073657403210b5041a0285b003a640f3b4dc68b6c4b62180aa2089d21a8e8adeb6b4c94ce653f0104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001b29b120154f0ecdb5c958a583268cb5ba8ed4090923754acb737109daa54387297418cf90e7bd527ecf58199d72edf35884040de821dd33b76eed8332b413d74be524c5206db330a298adf1c4b78cf2eb042da7525d4f552ab747c9fa5fd94f9247a23a7034ba8c9fe88604a0c9a4d53d6e50c9b122525b1de47d63a84c7a71b74ffd17dfc28ed0de6bd1f4a7f25c12649fdb0826c35ae61598f07536fbb7ffdbfe7b37e7f40a5115f9db2db739adc5a4c3e3eddb94704bfb344b31cb485f422bcffefc57e1b19861b988ceda2c4869059a4f0d079ad506a0e009a5fab815dd1e6274d90d5b4444fc5e03196adb515a9d7a7b24f790cb08ee1b69fed7673ec57916f116423616152d21b5ed2f3cc395789b63d7545287d6fc3c0850461223437b3abb5f3160a1df4b5e9ca607188869bc0c0402106e3628d301cc63b81da58e52328c267c1a2c4e541047c113e9af1f6d87a501035fcfe6a45972be255f8499956ad8163d54f6947a8c6d4f092be90337a81b84ad4f5b02f63d24f010500df02ad19567d9db0f4f440ad44f566fa2ef996417b4d01cd49120b0f2d09a836ac58a933a776cc473fd89e5a0038b288fc43f8e654f5db3709161183bc5162cc19f535650238cb0d08230e640c5eceaf7e90ed3114b49ce7728851c0490367e6a9815cfd4297d7ca02410768a7a8bb9b3bacd2c0ac548aef0adcf22d5af5dc62c52f5e2eab73d59b0b25c690d34e5b218b29459cc571edd1f70d4045ee0737730f319086bf0969bf90e4ae4120b835d9097317113f5cd09eb7c366d77db6d66989a49be0302fca77b2104cccb4dded82c1467f8d8ef2cb946742d211648aa56d20a9c7d5352865ab62ec4fa29573d98aa9bc5c7c29e3d645c2c8e7f932b8f5a01093ccb7eefcf9cbec64527a01ab05c6ee05eba9ca72cabd260a09657e51f3f0bd4d8688ab22b0a171bb5d42ffa1b7ecc0a6e3c7ce2fbf13c658fff175a5f696778c4b73a0aa5af50dddcfcfc2825a6b6cb558ef1d1defba6585c84ad0a1c115b1b3bb593efac60851d41d1cfd3fb8b9c01af0ca0ca56b6d721411498c6e5e6d6b1291eae4bc805df3676cca5abba5460bf5d15c2f0b4b64f08bb8c05101742ab44157b950ac6b6dfb45070479edd7f3bfd111dd6ba8126e5f74b4055131952cef93b8ad8ee71cd950cc5cceb302ef31cdc4d0449f08dfd6d03360b44e066b01862ef2711e507548b55431e7a1c8078a1b4b4a35677a30604b08494da40b973a395e035631ab3f2f8ee545017acf20c5cc326b9ddf0f9357a664877fab6417247b06321119a690dfed33267e710a14d4073092a06a23e5d0e8b1ca8887ea35ffabfa592beb5ff17bd735eb3e9e100ea5515ef012b70fe3401296c626b671f5db940b16b11f5bf71c70e239c40b59499227d87ab1338df258ea85e169dd5c689c3debfddfe4b0a969263ec6b78236425b849be2974b414f90383b96e375e3cfede78075ba596e70338394165492acf9b2719204051e8ee702db80bf19d6bf8ecc067069c6c3db97025bcaee797d6f14649940fc9ec41a52efcac6d616f899f9b8b5ef1656a4a37f77e6b7e160d9853f86862ebd2a58d8c409b8e131026d2d198fc9ac64e3aa6a80c88de9eea8d1fe98d8352cd4e54c3e3d6e615622c2206e53a8e3e6034f29f709d3e3e4f7ea2452cf07c1da37bac31b898b4de31783bd157b5579ab8bb54b423f188c7c6077e875d97005b85248c44abd4d7262bfacf1a3dbba15f8b8f34c669fad480d3ddaf33cdac41fe3384d0f22eb5c8a22732b1cb64425e1c29e6946993b4a0951e1ddfb029465e938f1247afceb7c9470a3d49822d04fafa416aa85a13c0fe24246f5efcc4a9f92fb540a913cf36146090ffea1d2e7daffa97f3c2f5fc957687b185d0eae884f3add3deaeaff0521f8b36f198c73cb2ae565939bc2757c2b6ee92f2daa6d71b6615d62791b2843c1f28b5aad01cf1e7487a22cce770541cf9037aeab14a5fb69074878713d302c9fe062414ab2e2791b95fa885869139eccabbe689a8e29b313e955aedc0d39cfaabde980fef30862dfc74adf7152eed97437deb3404b18446232b4245310b2b3451450f5198cad691ff1738c38588d18726e4336fd0308671bdbc969858c6f996ffe9edd8b4a1a3c3cd0c8fb9379f1ca93c4c2e26be3f2c124eea83e978210714010b3d4f0e4f89b661fa4409010978ebd5688df3ad21ee5446d5918d1a4b8469e3439b2065fb17eeb2436c9d397fd9a29df1cf61b2a84b89945a6a725b3e952e2947d6774c61c2bfe5d7e0c6d9bc33c6247beac1c597b2bc703d4bcbda20e8662f9b5e06769398e67a13f941ff8de5fbae1c8fa380af44b8801b6e46208e1831e475c818cd9bc5de00d757914a7aa6909a4772d71a26f6bd0ab5def2f6a5dfd8905e733c5ba75315f321e7989ae3217f622f600c701dec3a4dd20405b61f2044e56b134e3c870545ace18a9308ea90b42473b383eb0122e5c549a079e7ae4b40aa7ce4a4d1bc39dcd16ed12cecb564c22a3b2e13a32445f8dbdd8a49fbf66ccb9957cc855b98d5939e2da361d24b4f6e1517f94e21ba58ef423d0e2b40d508ede3b1fa384c3b8c3f1bc010f6a1b46731a57605e4df1b4e2179a0f33fc39f3f99201ead3ef61fdfd6b804df5af79d106190414c6af55bcf477e13ae81e368eda1425107bb15eb6fb9e429598fbb37ce45658f775c7257df73ad3e8b00c18ffe15e110cbd369aae6623f3af5b3de9d6f8373fabbcb1965870fb3b9a02e9bea7d0b05d820293fc11421efcd56fdbd14ba263dc520f4f818165ba043e7e55e754254dea35f92c39fb760b1da5ebe85cc7223b24e226c94d103a0987367bd67c6f19aabf02b3e5c5fbfd286e5fc6c66271b5a6f78ecb81dfa751468716e8aa509b84c8dc99e9cf00150eae5b20beaa0265642c5d1dc772b4ecbb12f4f9e94228d3cd10d459f983d92dabb922ad46b61dd42b2cb764a8629faa384be6bd4294451f93dc8b204f02da065fe4c8c244628a6b7e93054e132b3ff60d4bf3fd4ae11102ef1068e0727ea167c9f68b0badeae01fcf9584303d3ef7c08065fce5dd07f32176f00e283fca015ac95634429f82eea91007d6fe094662015bb5ee1c42faec7540cb213ba9940e6524e226ddd732e332159060db57a062e4cd75379b8a599f2a13bf9fa4262abd0c4f630a2e018bfbb440730080d50f061bdd0764ada6aa4067283ad3bee83b44389004c3a32188ae466b697af2d054baf662af14a7425bd8f79eccc15b9ab5e8382db099ae464a91a08f5bde4c72679aecad9dd24095f78d1c6aecbdf8394e9df640e2c5353a4a6ed4b610efe5784bcf1124272df951e29d7ed0793e66c83c8ded88c698eea1562b5cda7ec181ce42ebbb4dc4b6dd2bac267e2e4820512183639506bb6780ea89bd46bbe18f29c4a6e50f14bc54342f854292362561f579af9086ea5189d4ffd0135ee60c265309a5185090493f0f09039053347adb9bc08b631579be7c6fa8058da829e50c508894a3e805f98f938d06c72ade1fc6a4d442f34424ef17d606ac11ba78f83dac0227e89a8fe56e7d014114a5b6931c31ca087747c133f4ddea0199118b97535c4a12c61e9233544baf6764aaf2766a0258666e125c0655afca230218aca719ee18be27ec2cb82c4cc6e92956eb149ffff22d2d638300f91531da3bcac124ac1f77e9696bea00c5383ff10eddbb4a29626bfae2f2255d7c0c28ea57cbffac5ed5b16055cb9c872016137e4d4c9741c78f11b9086be903850090e6fcfe684a6ccdf8d24971884808cdaed9e2617a1e1b017dd1f3547f3c2a5193540d08270cfc5575f316a31b507223f43f9432fd14ad3135fa8352f857c04aa28e2509674b526aed79006d444f09777b74db6e7a5a1cda55ec53ddfb58ee18fa22fd95e3dabd9206c1d0055a952c42cda88e627572fa51f7eae7577fd6f5055294607ad59f28c22dc40762fa0aecfb80567f55d73d8dd8354d598cc0904a9435cc61998f2ddb18e4e967d104ef028918c3df893a2ffc63be160c415606662e027b00560682dc9272327778d75556ee31472a014b86ebc7b61b2b0f5ab34d0e69853e72e11545a287fc09729ad72d29f99abffa60db06f143636836a8be4d3e952fdf683b99bc2b20ceef4ae15b261f7b0aedc3d3ac8c7db86a7e13945171615539d046db00e14b8a5665cde7a3d2537bf1b9f18becde00fd9044d8c5bc583e0e71c904b3885a8117e44d29b23d93d920ef05b65559584f95b1d9869da1e374cc5797256970d8c322f0a6e6e6564192057930775ab6cc37a161f8701f8c7f8039199afbca8ce293292e0f438e201ce02f877529bb888cbff71c5549e57676ffd7bb544dc93c4c98bdeee514838ab9d6f92d2d102b25bdf4d5e264839a7dc1da9d4f8ff96c5e7ee09047b9f0af143a595fd1623fcd36b6ef5f3f2a134585a3b3d9a76585c129b99d46497dfc5893dffb813a77ac38083e1f5c708d52bef0789dde4061a2dbcb467f23da4aacb9a5ad14af9f6e748fd116522f043960c7dac7324402ac6b4c4056c965900e17b747c8e5d97956c1ea338379c5bf418712aa45559f706c38f25469d1145a9ddfcd7f3120ec54230e4726bee345b91b5d0161896a47a473ef4ebe5d1027cda31e3360ffbfb3e89eb5a03cac0e48cbc321159a45cbbf718ebac1111888d09ec1f12c00cc14f7df0db22fea6b1d2d4ef4e3bfd6fed3e406e392bddda0d51e5bc30ad13cf6a93593ab48741e6533574098a91298d96e7331ac097ad2ce8fe4c9b2ae2bbb42c402d2e2f92f480c77e458c022b7dcc39a932ee9b31addf38b85f931044253797b07f8895e4fc85ab4ba1bd4340e4c07613f173f2b3d0e1302b15529ae49a010d97b3359fffe7f34a446d97dbda9764fa67312248d64eef2f3d072d8d520c4150774cdbf7dcfd1687e02b569be714c621be0555ab3242c54f6288b7595620347124d22d20689772eed740d5936aeef07ac0bea1803028af72058ba989669a87d837fa7d63f916b08acc9522314e6c4caad006d4ba7f84f07b33270efa3ab0a1f5e31584c9210a12f5739a585e07e38ab52b9148b4f7960af35bd98c8428e8a1874392bcb6006388fb46758cf52db940326c3a9892a8f87bbec93dd1f0cfa6a851d3378293c3b65517e4baff86d36e0f4ad6f3a197202bb38bed300870a72b58240b2d25393e349ff5ccff20e8e5faa67c4389087a785c27cdbb5f530a8654aae2ceccac6fd779919519ff27df65024566d0ca0577f6bc995076bcefb53eb1a8229cfcc356c08e0bb34a5fc91c8a27c3411fced988fe79f431a26a33220103785c3274cfbe5f44d634c344cf0ce75a195a5ce2810c9f4bd9ba680aa94ad3d0f8a1aa801ff7086cd4af544ff23e1922c4305620f12f5911c4d59b3744b21924f48d3567fe36eac95a1b6f666c14cca4a6b4914a88980c6f0e20f716697a9819e37e0857d716f495db4a0515c02794439e8d86e827cf0ae2ab5c55e7e2b085de3f282b73c4cc71201ae361f845438b6b40e6cf1090f50dcb03a9e21a6b0deda36855c0a7f693ff89e230072bc3fd96e090e814aaeea7357d8187defa4bb5d1f4c967d55604e77e09dcb8e2a1aad5ad3c09bbd4a30169b94c8f4c23ee9995481ce33f90d8b1522e5538ed8a4ca263c897046adb562c7ef82710efcc5b84e495c0c1ba5dfffe2d15b171891eb22150241a501d715d1e166ad89319f461d2e25df167b57dded55e5ef02308280eed3669f85ea33fe77c68107892fc22de3a423bf5985893fabb9172a02b5e3647b59d7dad75d7d66fa2ad51cd92a14b005a6bc47c7ea948c65901e9bbd711e0045aa803292f77ce9c93ef507fc04707365740563020003602a22f132e60688d667e679018ccfc057080f83c0979fc55ebbcb9cb1fe6bcd48b87ca1a0d5cc02afb5bf047d73093638877bbc2540c46a4d675b6631fe7899d734261d0546c8abebdece60a454e98d897620e7b05c48bd32688143431f468007fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c180007fc04707365740121088ac5243d2d854e84ef3e22b026fa46488ad06804898fad6e701572c00d99dbcc07fc047073657403210b48e11e0f393023028edc637b815b5ff9a892eebedc86b4268c1df424cdece24a010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001aaa0650053b5f349098de466df98745828581f599d319435e9a0fe5688c9e172b923e19227c3dabc2c93ebfdda8ab2356b3be0206da127d8bb5ee29b3b072b8e1538d61adc674b7644fd432e6c8022bdf2a36d44498ea18cd4bdbc309c8c85ea2d60fdfdc3cd3b5a7229a20fa50d9c9ca6c828fc511954bb3dbc8f71fb8ba29529fae86f2d5bc3ceb73bc78f3b0ea5e9a2fb3899a52ebd12ac133183ae52835e2968c82b773929167671adc5cc9dd1f14da825069f2a7693b35c37b2479f204222237c918f7255333c0b8c20086b72a165422b2ca54aa29862c4003412a4eb025e2ed2630edb498b6c85d7dcbd64e4124f5dde0d765103c807efca4e9133ab012ff2e38c1742434d4574a6723f812e15e6373fa66fb3a6e73becd87e3296316f7a4b1c8977f8981400c49cc757e77ef47b196159b1e71902c867b5d42447b6d67e9454b467bc951c31b3e3b92d52abff5a1ae5e475744db99f2041716696264a0727e548b9fadf7551ee05fcac0c2753d16a9649275e6d525a86013b06b72c3a2941149a35c8e2491ba10bc1053f6ebb739cb069865718f2cb6d0ac691ca2895738bd36edbd93b91828f152cd9f3078d7ea7236035a369963516f9a64d0c11deb9056011f2e3a75c2be6988b040790efa5c68c8aca0691135d26e3f2817d26163331e055d6582c37224f7f7922ccc13d2d15b762aa32d88b0456a3a5af6d54a08f85d5e91294d3abdb2bf7cc7f40e37320c22a277991841bdce126820ad7f951877c23c42f8b4c1e1dcf0d6e8ec95efb97b5868f90ec92ab2ac7d2916f15b1662bb55eca4c0788cc56cbc642fca878eb39191634827eb9533584f5e39a8116dd2c4969653067e6954e6b84870bcedc88bdbbdc03219c181c74e2d666537abd372a181ee950a2723c9631dd360e004362cd9b5d711aed5329d26413c3b7b0bf702c16c2f918811bfa4eeeb02de12888f439a35cb499f805769b8a6ddfd2c142b8a171f19046fe621a9977136a4012beba8f1887a9b304290d5c10d2162dd47510f707d8449b8216e5afce2ce580a1c2803ac11b14522f2ade7600ce9d3c90b174f589a5058feada9571068e45b5e8c59ac8e06462794d316b9b137724fea8b2a89900725cc93c98922104381bb16ca2bbbedb582ed66d78f8f3dbac2ffd30c2e19155beca0de138178b2bef1e75fe2b8aea942262b086a11aeeed9e539c624a217b2a0efb5c2a5e9bfb2103249780e16842ccce4d883e5c5a5a0efe6aeb00516069ece5d2284c82a7ba647150f2c6bff3affc53ba4842b6808fc89cfe1108250f029ed0b9dd4500aec695b87143acb8cc30198ca1769ac92e6a4b4bf8ceaf6d89e054502e4606211cf81994957a5ff93414195fecc39d3a5b01414feabed764a238a4171a9e2c14a07ca94c456fc5fd6fe2f4ac93474c2080b0aed891458531f0f7eceb93a58ef36891fc9dcf92726663a307c06626bd6bedc830de8cbf5e778803d3e18bace5a00210c1ec5c8f17792bc394b5099076a24093478f1c879179cc26c13f555852e6b9d1958ab240d9ddd3fafc3bedf8a9e3a9a06add5966f2801140a7d763b77d04842ac7f01554a530aca6b01923e63664297c10668bed361642c9493a0c61bb40aa40e36d496926ca04c6b7424b553accf5f99883c1637cfdd44bb1b4f61e8d990d00118c11d70401ea3654873010427b45c7a7d13390d7cb276b74e412aaa077f9e279dd6fc052eff12674e46f4e6aac2c52cc4e874ebaacd8bc3b4df4b5744c1389f81c8b3ceed9bd72f012bc9ef5b7ee2429815804070e4491b3d636bb0143ca0361a04d2a87e056144c6abfdf1d60913c0785aa322a39fb0def01ea1c054191ded1e673a1b8cc0432cb5ab527c366988206b969b557425068663933a352a1271a57fd67ff05833dad079d504d4b4d1dfefd59a6c65f04282abb073caa9a3345740c3d2be2a7b6313f3de1263a785179ac52c4799b42e1e192a9f65d602fe7932ea5c79f8da31f624256252479025bec444ad2737e122406a8895b8c01b60c7b8de33614ddc59b620145b281818d8e323439adc8cea0f47f3d5e0e8b5de618ed64802813eac962cfc28afaa3b7a3ce1b0ae23dd3d58d804f6f5c9ca538708050a123fa6277a7f249b1b0813111091a226a700818dfc44682b1dc2c1a6604cd07f1a8eb3555164b3619737ae4234507a887d2fcf119193c2968ebba9d6fc5e15de481ddf9b0e5b59f9d0d1b0ab45b531fbf68225851f01e9471d20ad96726c82be213974b1ad9a6ed2d3d3d69246b7c113dd540029f259aadddcbe7adc34dca7b891f932eb89d1b0587a58862ed8c0143b84b856658013b597e2263745c218786a68dbf84af3d7ec4c43a43b924d31f244ca98e63298a4c48020602c6a562b4a20923d1ea25bc70c25041bcf157d178efc1c67f6bdad9a803cb3e7fe49b23752930dc0f3d1b2e17c4c56a6d33f3dc11410e2a5e7b16fbeb8cffd2cf1bf09d8f8adb7fed905d82bbcc472d71b62c4a2c3595b711ac83caf8f94ce5bdf2463ac741bfa18c9129b99d13e159e60956d83a7d3592dcd5462399c08228f53b1fc5b688cda3a685b3825da25b683c05602900cc6a54ecc53fef65e9a3561c040ea496ef425a7e3fa0eabfccd7eedebfd6cf826c552e4f3898f6718dfa9d4d585534efc038f2380d0c8266df29f977eaf1e5c9cfbb6787fb33cabd7377f5e9620ef30d043a592aaf8162b9db54259b699a351433921bc30820091e0c407af094e299de0b938239d6a1d20c91485f43c8de9c9390f85ff4df3b2270f71f80b2510d02dd0758308990de131d447f1f4e97a1dfd746da7c3a505831fb48c42b59d259ec27772c11e1d48dcef30f7b07d2e530d39ce976560bde47dd16830970ad52f0553cb9fd4d141aec5825d8e00d9861b4ae5ee276990f75087e834ba9c34b5cc3c7c508b14206780dd4fa7576f932e8203d77ad2186f4d5e39ccd7b60dde5f4cbd755ae90887f82c31b5189f0b227525d64a5fafea2fd2afd18660ac249d98116787429085ebc07a6ff3f8d7a56a6b19cd59f9fc14d55fc7fcff39db4016bb1f75f76b13eab255946a28d262b4a2ab5b3d14163d797ead63b7d8f0fbc9832b29701a00d9c06e9ff26fd0fe58127c4311c2249e3611010b54bc02614a926985a90ef4b598f16aa0b3970d5cfc1bef37df67095ec5c2a232bb088edbe1b098a1a59af15ef24e7e58c10f18eb229889ca27b7568cd1deb00ddba7b5573b484f946287cf01dc52a7a2794eefea12c5e53c9bb0efcf777ffaadb5a323106c557ad91c74c65f553b418d2c2fc5f5815e14363d32629f07d2acca30cb73c3d5ecf0905d8666beca889c8ad323af81692dc35db78639cb2323bb40786471fcdbc01d15167f675e18e0f39fae8c690185809eaf43cdee3430016a9c0cf8a8e84e58e38118184e73411010dffa5c5096bb45a183eca54318ecf441684fdb5f73d8313d30d8cb6bb7467f08afea56f237d7074cf76a95d628277caff36fc2f3d01eeecefddef9fcd837ee2ea41db771012a0be1f0caee3733c5c272087b4794ff28892bdd4fd01c377dd7d5b2855b2237f3ba23ac03779be543a23f90966106f66c45dba4668b13e38b99bbcf2915c41404af1067a40eb12d644e3cffdda55cc1ca100ee9cb0cc7862182fcca35025d062af9593debd33ab68b0d77f3bc26223b9cb4b61f9582a9ada12b42958df4e07617c69dfb0fa6a608c13ce96605e37b01cea75691e76d0330a37bd1b0cbcf0a5ef41117e5ae8fccfcf1c8ca45ebf0abc43b53feb396fc04d1c58a88a24dc1c7834dc0c649547c6058bc71ba3e04fb95b6998e9c3df897c30c3780f307b7ef822adbfc5ab5d73502e15dfcdcb6470e30e1300085779d0e1b8d4cbfb8f24b290f17bbb6455f50afceea873c7bbbcd1cb7c8ff428e6d796eda81112d22c9869b5cc76385c453033756a8b7c9b35e4861a79c048f920d9333cdc86e7c3e4eb6fd87ed95f151ca46fa2d3ba5c01a8c6d06fd19c312e8fe24717fc72a116f6c0232a77cfcd9a058a9becbb284ab446538e31305b5dec13b70a81ade8b8a715de39f0b0f19abaaa8addc5aef6b301ae69d61da3291f0033b2e70f4ecc28098a0fe8e3a084a38b0463b136e955be93bdb3cc51d03f3f2399b711f44a007f91d26c05a6f6bf5819cde1da47e07c2dd8c876ac66f6997ca47c75ff2fdfddacd2ab88808249cc502e26e999b52950cbd7a9aa121b53cf053e1dae24166f407237c16972e91ac5eb53590c1c835f38a8d6973e181f72824a4cf2f63003569cc281981976903f532ff0e34cd91de77e1daf503cf24b7fefa34ee82abe1f911373ca98fc33863917ca033c16f369d94fd50364563f37ee3f6f74026ab8a8f32bb1adf96eca5c44600228b646e7725c3ad3aeae0bfaee42011165e014daac80965e448dc1c3bf1af14d30d698d152cdd07ea5420618a42c7cdb0de4d84d84d0accfbbbd283cf15bf862bd15d1381fa3208c830e58a64cb9356cde114b09b0460c6ca112f22dc08d6f8c55235e06590e35bd87c366fbd3ffa0361f5dc4daf15d92bbd563fc292235f0f11fe47bebbd7b6eb1ade414023c767b462f7761cd7650b7f1e239d69e4f802e079f3bed7ced8c60904ea5d4e0c0c05f37e5447bd98cdc92aba7d6414e29d6393989a27440da61ae0c04ec102bb5029d576b7cdd8918cbc0edb3e876d70985e89b60be8da284abc00bde0b4137dc7d5f38fedba9fefa596db6033cf8542922b77b710b0b53ec76945f019553ffa530eb43b4b554f2452d28747288735e3067f69a9eea74f30943b492cd88135b7e57cc8b026a999986dba41858a65253e7c57478a4ce9a4f812c5359a104fd8c7b89bfe6275993c8e90596ff311d76ce93e232178d6da87b54bb853281536832a48e3036c8bbb7897cbe7654390a4031447b019c37f7e95217fc476a2c673f9b93209a546e740a53998f1c1dee909339251c9efa738665bd5ee37515c4fb8bd9cc5df6a32c6d9b82889c2a50eff475f2d7eb64fb1b49f379b5aa8814e718722a9682dd66a06c33ebcd7e0630f2b2a8057d3719a5bcbeabe0df9cdf098fd9981f28c4722636acdcfa596f4ec9947ffc77a4279ef4583ed29cd43414c37366faea951c4c45a0a1703e66120445c5e00ea81a3d821c285a692c5b6f2f6b4212ec29c2956e86255fd4e2bcb955a899d77c9c4fce7aedbf6b380b4ae96d11b49bf48551910576585bb926db6654d3215b8aa79a75ceb698999a1fcf88010732500b42718ded7dd6fe9e5a8f8749272a7f8d9f0303dc308fea662777891fe62bf969f69beef58cd17b8b0251aadee3fabe447c7a46d9bad84fdec3f4409c7623387a55e53afb29046f8d51e13a5e9c8519fc5dd9c24d4076ed71ebee6b036060d25d2881d72f2e69a805cc343bddfed567142f8f25a5a16a727548895dada24492c40198faa4aa19f9b7ab3c5331e034545eb158ce7f0699c0b78856860c01b77841323d7f6727a64a06a8794733be9169ea395560fc7565c00e4ad8fd3fc9b1d4b406ec05b4b3f513a33ee1a017030f5876f3650e25b8e95b628307f5c778feee7c4aae1c0e7595386f9db4da321b9988dd00ff883753d01d71588b8b78b9e5275f401d88a421552659d8200920355a12ae25ccfb3dfde5157a0acabcf9c0405be5d141a8d8014705fbf148720fecd61927408a053c1fcdb17bf8e74bf27ebc5a0f3f8298201a754062250cd83b96c0e1f5a8ba1f35abb200b7a0cac3252e1121a59fbbfa950c087c5f0b5e799008d2bfeaf8a0dfed17aa85f7ab7f21e9cd3fb626c0dae1e757fd348b7ae71287ebc7bb8e7e4aaec6084d653123f92a25c3a224bae30c6ef62a47e0b207fc0470736574056302000361c6c7b117d971ab8ea08d293e58e6d6a2a3eb9da254d77bdf63df2f546772854080178f3327297af527c9dae9641bd9ecb03f0040229e861af0ccb5a8eecc63aa2be8bae5e0a2b0aa2a67241b55c066b9a292248a374ca57460ff6ddb30152207fc047073657407210259ecd61fa2d3d92e1891675409a6bcca5b7f5ab595cc2d78624c2b9b4008627e00010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210963046d7e641e758b9c99a198963b82e92cffa6f9d3a5dcfcd09a800e53d975ab07fc047073657403210a122f4cacf06e67087069a5a5e3476e1c6d65471f4ddd7dec99f4d544e43b41080104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e106033000000000000000174576e01f11e062faa81ee9cfc76d35576c5cbe613e79aa8aba990dba3ec5221f47b5991f763efab437ba49816b8e349d46b83710c429aaecf1a971c47cd0e0600fdb8fccf5a9e94b70cee45bb581685ed4a57e7dc922c5bd52df42749eb15f066d4adf902abc6e770de6c0582fb3493e2e8ceed345b4e7b516c403a41dafae86e282689ea5bb47d49ec73148aba3734fe7c5a8b58c38e89a0b200d76980723c6566e073a91533fbff5750414053c8c8f42e7bedd44481e204ca641f1dae1778903b5aaabce670ad57d359431d957ff2e5468b2322c7537913114ce2197d6eb27b76b65a11a222de4c8eaab2018bb1660a20e2b1676209fd60aa7d6f96fa86a3e6c0126c61bac3a2e5d765bff40548f819f40520e93532836c97e9851c6c23160412ec6bcd82e242879937c15de9fd9a32d6f336f4203d50dc51b84086e652d4d9c0b6d18df1a95a4ec11902bde2071a048ec9797bc6e147ddc08f35ed54d8f3983c5a215d94019eb84c5dd388b22aa01c052468e020794b3534f94a80bd4cf3c93549bff617a84f249bf5c7427a77339dcac7065551311baeca5634e9a7eb1381a4db0930486554e03c43088356e78b56ebce57829231e3554e5757bbbb292e6ed42886fbfe8b595ae51bb67f9bf4186a7185a8d5052747f71f922cc540836a69c6d463372bfc23790255c537a2c9934b52c54deb91c203d0f918210e537311ec3388e8c25c5eda9e8a05b6e46ac493c0d754c34d1211046bd19d9387f9311183443c85847e9b49a9c824991cdb40c8055192b6fc5c7bb2fa624e42d6568c9ddb74b4c7b1e391aee7c32fc5eafe36d24d32ce79d45e93e0468ac124f0192207be0f74b46162df2f6c97aa135870a4736d346898ada658a619b5c209da0bc1f16ac956572d2fa5c3d4f1874575e3b8b2412210dd9811185790b5336a32688fbd84c0121c74e3a8736c6b6ec15ddeb986c30a2a0a1582381ea0077fc1cea3276f52913f07fa0afce04da78bb2c5c5a47eb3b75574892db21c8863c5375e169b95dee1f4766f8ebd799890e383d3979018ce2e5c516ad4d81ae42bf2e153432efa3ac907a8700bb1e7b0db2957261a1f08afe65eef9c066aa5efbcedcc2b08a188ad97bca147b809ae5f73fa70acf9697336b9e91f5b40f960cb77e2a583adefee7c1163167b5dac16eb5d4c628f386aecedfaf867a6dc3a9881ed6e754d104fccab23487abb34b9302f17c35df5b35693000879f2efb70eea95d2eff36024071fecdb52bbdddafc38c7ca1ff9a494a61c7afab91b5b1b45061d451386e7a6818c7dfbecc4fb5a731aea43e8a0a158484e7025111358ba9a148a8cde72eff8cd06dca9982733d8dab3a62a92b086949c81d39f988c004bf07009954f1d1ac7058000c894f12fb268baa2a37cee07f6adadcbef3ccdf37478a7067555f9c1a1206a949a6de09889687cdaa24af017769dccf0cddc6015d5298fe2341d9773d994188e5621c4e3edfe78ffa0f6a507d39098094a6b6bd53a73ded29201f66ae0895cf81d3eb98423e8e44042ea4ecdb6df1ef35ce83331b23564db9987340cbc1d2dfffe34f9c03860a774dad4569040011e0b34a4a92daf4e594a2b810e2af36d5a3d8960e5d305586ee699f82ae261e8cb7f1c8790e9cda428d37ac9159ac1de405173686c65f663588da7c54f74445feecc461f0d6cec1bca22b0b07e8c148e2f9abfd074a4e6a9863e549e482e7f0d388527f55fabc3cf1c5d3c4e874c3abcec96bde1a8bfdf41caa9f3949d6c254e959a21f2c89550f4736815b3a39dcaad686a62664b9fa7ae26c2546c2d3d67afe9ee28f4281745e30e730d59ee902a1ef84bf3d9d531a02668e7e7c459c20cb75661e024950cbf1f8789b808778c2beb1851babcad98cac09d2336968df5f2fc470f7d34804a3ef7beae24cbe43469b79c9fb89ec2ef50255494240371aa9536f44c4e931f623bfa6b48df6fe05dc21623a42cbfebed5b8ee269d3338be671455a4dcfe7cede3bbb006d266cbf2b185eeb7f6c3c548bba1cc4ea4d6ee73ff8db5f69e8b3113aded43b45a56bcf4b76f897424a9d29d0af23ea516802d9fce186020f7d824fc39eaa0b3a029ec802ee1976fdb57118ffb7037b8e30aee17140edef844b6414b96c3b9e3e8496f2e97555a6f91b8236c935f1f75ea5bc22899631c07b074706b284f29a2de1e4096e7589468f8dbbe437e042427e97fd5b9298bf20b312dbb977d831f15ea9294707f8c800942ec82991cacc65bd0beb9f14dcea44cd1da406b0d0a886056da56c64aec963940c6bdcd7ad689af4de9bac2c41887a569a8a98eca3b4fd40256241e1fd27eeea8efe21cdead1f9aded53659edb70c8f70703aad89ad27d9b48c1f1acbae3aee674c4b18b96eeecdd3610cca845d8cfa1a750da6883fd597636eac8f253080d737900628aea00e25d42f4ab242526febfac3a0692fd46c1500df849cff389a1a8cc7a8388b526227a659a1c2274566bc701a855fcd262e5daa97c5f7e1383cf7cc1c6b4b96fa73913d9f0c62d62eb0a3a4586b9eff5c7ade98f71b24219cbcf9d7d5a5107cf1f66f064ca01cfab012a0c6ac230a504a1664abbea3fafad63212b827de58f6399b22d1240e2a2131f6fce3db3ee566a62a5e65c7a8e36ae7294cd1e76144b6be68a04a290cf6d309624d7fe214bfab2278f0b3930f6e841cdbc748802bb793268646fef4488eb9d6c2fc65f9df934412c556325d93ce8fb1e0b9b4f93bb63038a1f6b42a3a194bc688ce9802b427dc670b12c8399535378b6e25ab858fe06eecee1efbf871122c113667b56b8d75e826c8401a62395d87e362c261925f11e82ff0c7fa8c04aa469346e33650cc8d519d4283ad143992dd826dfff1aa16782110898412871e9cdf1fd7de02918ab8833cd270f57cada656cc5a693bbf3a94534fc2392c69179ad5004d93a848a00ef862fe6b679bd3a80dd512b0288c721ac70a8a0edd00aeb447cac5fae6369572442034c7bc8148a57760bd1c6b97be882b05e76deefa1271cc62141bc0424a41786d3cac951459b2dc7f527ad121527fc68c278bf4fe2e50e179198d390ca7d868eec05979bf0ec8b50963ee8fdc50a4cacb134236432922e7254bbc6f93dea268ee1c8b0bd520b37574cd56d528408f4a93cc5584fd6a88de5b033333965aef8e796f6f140d36998b8ede9067cfd0bdf0f040f30e2db19b6bf8f63b99fef2655327a82d04d1d4eca7f0f6235b71f88041f43fc7ceb416e21ce5eeb2765caa7a38e88e8877c25f26c6b72d9e74eb6e0c3cc3ff4b2971ac6610bf33ff2b7943d0e861a03ad67afffe2ccdb46a509b8bc05f236d1bc403b11cc80ce021ed413cc6a90b24e8710a17960fde0194754816bc9e2031f81851fb2703113fdf8ac3174f75635104ea0fda3d7b1189bc6f52c36ae65b785de16881748c8a0aaa417d48ee62ed1010f676c968e891c60a50c7756cd035926b09c8692f471710dee10c0007f41af36739fb71bf31a7fa47e84a51e2cbe7d26b08f66cc0279b1d2190f39cba9fe626ea2870e34b215954bcfb225038648c763bd90c54204453c370945fad42e6678ac0892cccb7047bf3cdd84e30bb3cea00c4eac0d177e5883503c46ebf0f6e6ceda69d6173c5faf51fa22c6812f2b50861c0250f6068cc24d24147823ec7197846c0c607261d97b655c5336e09b5c94116c13c795dc82807abe76f253075d004085239876c9d5cbfc4e83c93c53b706e873976cd98bff131bf15eac126b32c4b4a3f236923a15ce2030c85658f48c64b88e0f9c9b52e397ea5fd77288d68f6466d24b153032054a6e3522bf32507a49e23c117ca23579ae0e43b899e378bbdb4ece2ff6ef6047c207bb6c498b93e205ae860810de13628a8780518e268bc71806be2b88ec6f55e09a6512e769ee41c141267f8a2facd104ba4d13c08d193a4d833ef27c157be3702d2c89493b69979e3d87b9f1d58e8f75027758674ef5e435506901f6f8e8d7a92f4bab301fce686082de4c7eb351404aeb95bbb67f5e6d49c48b75aeedf228e403ce05198ebbae0be3910f75fe53004956858dbdf1c114531e4e56bb8f1a4f30fd12c43b2fd4efe777e332b3d904cd12c0a4e3ba806ba1f5921f31e747a9f7ab2d6e74508b286f19fdf4cedb2d9c024ccbb225312d111a1ad1422ce575bbc9b11ef3f95f4a94e932e4c61a83bbdaef04fe7d3923cbc33585d70f9f56b7614108613bc2c45d004ccaef88933e8858c99cc76a0529130b5689d6ec3b98e5e8ab6b459ccffb4aaa8572fbd6132478948b16436b0d40c4282e01776e29e3cc6c59c721f7db1f2d95a841739f7ef6e8dbaa855d5ec4118620f3142b77b1e4d875c0859108e1ac8869c2287d89444742322dede4dd9e3c33a8c94849697331e5dca318ea52ae9ec82052bd44550183316f98c969e675bb156067e1457e9563b695e432cfa6f8696edbb6747c1ceaa0f117640b65648f513a32aa61339d525e22d69669e12ad51481a57d05c1e14a063abe28e7a553f7026872c4d03c60ddbaac68d87aa6c119fb3dd199ca41e8203ce70df141322a84fb9440b607ca0a9e9c749827d248d8a7e6c39122aa5ac9cab1bde157782df4759fb2a7c212b446c6e0810a6c764548f6b6ff6122cefbe28eb6cbff31c105be7b7460643514ed3e6a193af8e6c922f4023364836fdefbedd318511361a557e91ada4b01c37e9a3327ab945d4a74d6479036acbb2e9d66d26da1bd1576b91e5dff434d2f3d0ab5fe71e2b7f933ac2f1e7d7b060a4bc0c74cef07a2ccb5f653079068e136c05ab648405fb33e02a8e81b99067b7390a070b0f9ffea757e594ca74b2573a18a0071cd6fec1ad1363ce2bbfb22c0d726d85ef97190d78da059fef82bbd7a30d8af24753b04944a3df892e828f3987887b75b74280e2afa4b044cedd5b562631b38686e444e816982f067fffbe531b7eafc558a5f0fe9c1284b1ac761949aa5c30b8364b67b39b9ae609c96394ad498932468c7056859eb2181b862b8ecb06860310d1b03f90bfa9141e9f2586511f8ac1419bfd8fee5bd5dc71b28929ac4a081345d4d1d07fa250fbbe462ae85321b8c2f76c216819b6332cb0207e19c2dcdd9f0b60f4cc0ab362e70fb664dc82b20e22b7e288b2030cd8afa524f4418cf72caa4dbd6952203f6332dbadcb6d79767f1f84f6bed8270e226d71ef7e0cfb40420a71de3bb7d2e03f67f179b6c4c8737bbbac4383bf126515d4ff69f3f44b32428ccb0c4b380e767c6b12e312d90bcceb0af867b86148e7d901b11c86e17a6a14ff5827524e5a4d0393652afd5868e46f88b9eae01fc57f7831a4b32e4033684d04c080ed235b61a0d9931a4031b3c6426a686d9e3f6018f2704c0e2ed2e7450f7b9409733ccc401fcad4e267c3c5a920cd68ce0ae67e89839a114810944be8ca1c0d424d2d3b71ba35981c35fde767135e040f8096af7783464f6736dbfbab1659bc0be5a6a67c00ec6a3e6c06391c86821803bc8ccb07b9b344f0ff0069028b1e19cf18a7e435b2df7aeb4b1481a1c368eb4cec8dd3a2086cd7231a5de66fd9455cdfab33e6e26df87f47fa723b27bdcf1874a54fdc84fee1653970cf201eb9abe74354a69a6fc64eef26a61f7032ad1007ea73500c682d9ce7c7be465c36d4bcb20b16b43c360ad10f2beb560af416e5112490d897adb55f9f29c6de83e9ba6bd950f95b43e695babe4e9b82e1d624264ec892ae957a695ab4d9ffdd451b6a3457d12a24e5c4156784ec374eac5efcfd546117ad7df4c71ebbb564eca79e104cec2efe4c58ac2f6dfc98c734ae465906d8b35fe0ce51bc078d8e0a0871e41d4f94bed5079f531de07cd8a70d5c06407fc04707365740563020003da6edf1e8bf899691b41223060079d69880b070ab79eb9af0da27ec2dbb26f1ac3f5d5f5acadd763ee2ad37d7febda0a9d35228cae98d105c0d9a06f789a437a972eaa1b0bf760d307189dcde671540540f65f396371530b98da0cc2bd80f06707fc04707365740721036ab94c3698f2d9101431fd6cf1498ad212e1d8ddfb1f62e1f8b1da084ae0a4ee00 \ No newline at end of file diff --git a/examples/test_vector/raw_blind/blinded_signed.hex b/examples/test_vector/raw_blind/blinded_signed.hex new file mode 100644 index 00000000..817b26b8 --- /dev/null +++ b/examples/test_vector/raw_blind/blinded_signed.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c22020334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe7473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b220203df8f51c053ba0dfb443cce9793b6dc3339ffb0ce97af4792dade3aae1eb890f6473044022017c696503f5e1539fe5cb8dd05f793bd3b6e39f193028a7299a80c94c817a02d022007889009088f46cd9d9f4d137815704170410f53d503b68c1e020292a85b93fa01010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc047073657401210896b0978a97e9dcfc549d4c0766f96a30b5749429ffd7bc7c65ca398be0f739c307fc047073657403210b5041a0285b003a640f3b4dc68b6c4b62180aa2089d21a8e8adeb6b4c94ce653f0104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001b29b120154f0ecdb5c958a583268cb5ba8ed4090923754acb737109daa54387297418cf90e7bd527ecf58199d72edf35884040de821dd33b76eed8332b413d74be524c5206db330a298adf1c4b78cf2eb042da7525d4f552ab747c9fa5fd94f9247a23a7034ba8c9fe88604a0c9a4d53d6e50c9b122525b1de47d63a84c7a71b74ffd17dfc28ed0de6bd1f4a7f25c12649fdb0826c35ae61598f07536fbb7ffdbfe7b37e7f40a5115f9db2db739adc5a4c3e3eddb94704bfb344b31cb485f422bcffefc57e1b19861b988ceda2c4869059a4f0d079ad506a0e009a5fab815dd1e6274d90d5b4444fc5e03196adb515a9d7a7b24f790cb08ee1b69fed7673ec57916f116423616152d21b5ed2f3cc395789b63d7545287d6fc3c0850461223437b3abb5f3160a1df4b5e9ca607188869bc0c0402106e3628d301cc63b81da58e52328c267c1a2c4e541047c113e9af1f6d87a501035fcfe6a45972be255f8499956ad8163d54f6947a8c6d4f092be90337a81b84ad4f5b02f63d24f010500df02ad19567d9db0f4f440ad44f566fa2ef996417b4d01cd49120b0f2d09a836ac58a933a776cc473fd89e5a0038b288fc43f8e654f5db3709161183bc5162cc19f535650238cb0d08230e640c5eceaf7e90ed3114b49ce7728851c0490367e6a9815cfd4297d7ca02410768a7a8bb9b3bacd2c0ac548aef0adcf22d5af5dc62c52f5e2eab73d59b0b25c690d34e5b218b29459cc571edd1f70d4045ee0737730f319086bf0969bf90e4ae4120b835d9097317113f5cd09eb7c366d77db6d66989a49be0302fca77b2104cccb4dded82c1467f8d8ef2cb946742d211648aa56d20a9c7d5352865ab62ec4fa29573d98aa9bc5c7c29e3d645c2c8e7f932b8f5a01093ccb7eefcf9cbec64527a01ab05c6ee05eba9ca72cabd260a09657e51f3f0bd4d8688ab22b0a171bb5d42ffa1b7ecc0a6e3c7ce2fbf13c658fff175a5f696778c4b73a0aa5af50dddcfcfc2825a6b6cb558ef1d1defba6585c84ad0a1c115b1b3bb593efac60851d41d1cfd3fb8b9c01af0ca0ca56b6d721411498c6e5e6d6b1291eae4bc805df3676cca5abba5460bf5d15c2f0b4b64f08bb8c05101742ab44157b950ac6b6dfb45070479edd7f3bfd111dd6ba8126e5f74b4055131952cef93b8ad8ee71cd950cc5cceb302ef31cdc4d0449f08dfd6d03360b44e066b01862ef2711e507548b55431e7a1c8078a1b4b4a35677a30604b08494da40b973a395e035631ab3f2f8ee545017acf20c5cc326b9ddf0f9357a664877fab6417247b06321119a690dfed33267e710a14d4073092a06a23e5d0e8b1ca8887ea35ffabfa592beb5ff17bd735eb3e9e100ea5515ef012b70fe3401296c626b671f5db940b16b11f5bf71c70e239c40b59499227d87ab1338df258ea85e169dd5c689c3debfddfe4b0a969263ec6b78236425b849be2974b414f90383b96e375e3cfede78075ba596e70338394165492acf9b2719204051e8ee702db80bf19d6bf8ecc067069c6c3db97025bcaee797d6f14649940fc9ec41a52efcac6d616f899f9b8b5ef1656a4a37f77e6b7e160d9853f86862ebd2a58d8c409b8e131026d2d198fc9ac64e3aa6a80c88de9eea8d1fe98d8352cd4e54c3e3d6e615622c2206e53a8e3e6034f29f709d3e3e4f7ea2452cf07c1da37bac31b898b4de31783bd157b5579ab8bb54b423f188c7c6077e875d97005b85248c44abd4d7262bfacf1a3dbba15f8b8f34c669fad480d3ddaf33cdac41fe3384d0f22eb5c8a22732b1cb64425e1c29e6946993b4a0951e1ddfb029465e938f1247afceb7c9470a3d49822d04fafa416aa85a13c0fe24246f5efcc4a9f92fb540a913cf36146090ffea1d2e7daffa97f3c2f5fc957687b185d0eae884f3add3deaeaff0521f8b36f198c73cb2ae565939bc2757c2b6ee92f2daa6d71b6615d62791b2843c1f28b5aad01cf1e7487a22cce770541cf9037aeab14a5fb69074878713d302c9fe062414ab2e2791b95fa885869139eccabbe689a8e29b313e955aedc0d39cfaabde980fef30862dfc74adf7152eed97437deb3404b18446232b4245310b2b3451450f5198cad691ff1738c38588d18726e4336fd0308671bdbc969858c6f996ffe9edd8b4a1a3c3cd0c8fb9379f1ca93c4c2e26be3f2c124eea83e978210714010b3d4f0e4f89b661fa4409010978ebd5688df3ad21ee5446d5918d1a4b8469e3439b2065fb17eeb2436c9d397fd9a29df1cf61b2a84b89945a6a725b3e952e2947d6774c61c2bfe5d7e0c6d9bc33c6247beac1c597b2bc703d4bcbda20e8662f9b5e06769398e67a13f941ff8de5fbae1c8fa380af44b8801b6e46208e1831e475c818cd9bc5de00d757914a7aa6909a4772d71a26f6bd0ab5def2f6a5dfd8905e733c5ba75315f321e7989ae3217f622f600c701dec3a4dd20405b61f2044e56b134e3c870545ace18a9308ea90b42473b383eb0122e5c549a079e7ae4b40aa7ce4a4d1bc39dcd16ed12cecb564c22a3b2e13a32445f8dbdd8a49fbf66ccb9957cc855b98d5939e2da361d24b4f6e1517f94e21ba58ef423d0e2b40d508ede3b1fa384c3b8c3f1bc010f6a1b46731a57605e4df1b4e2179a0f33fc39f3f99201ead3ef61fdfd6b804df5af79d106190414c6af55bcf477e13ae81e368eda1425107bb15eb6fb9e429598fbb37ce45658f775c7257df73ad3e8b00c18ffe15e110cbd369aae6623f3af5b3de9d6f8373fabbcb1965870fb3b9a02e9bea7d0b05d820293fc11421efcd56fdbd14ba263dc520f4f818165ba043e7e55e754254dea35f92c39fb760b1da5ebe85cc7223b24e226c94d103a0987367bd67c6f19aabf02b3e5c5fbfd286e5fc6c66271b5a6f78ecb81dfa751468716e8aa509b84c8dc99e9cf00150eae5b20beaa0265642c5d1dc772b4ecbb12f4f9e94228d3cd10d459f983d92dabb922ad46b61dd42b2cb764a8629faa384be6bd4294451f93dc8b204f02da065fe4c8c244628a6b7e93054e132b3ff60d4bf3fd4ae11102ef1068e0727ea167c9f68b0badeae01fcf9584303d3ef7c08065fce5dd07f32176f00e283fca015ac95634429f82eea91007d6fe094662015bb5ee1c42faec7540cb213ba9940e6524e226ddd732e332159060db57a062e4cd75379b8a599f2a13bf9fa4262abd0c4f630a2e018bfbb440730080d50f061bdd0764ada6aa4067283ad3bee83b44389004c3a32188ae466b697af2d054baf662af14a7425bd8f79eccc15b9ab5e8382db099ae464a91a08f5bde4c72679aecad9dd24095f78d1c6aecbdf8394e9df640e2c5353a4a6ed4b610efe5784bcf1124272df951e29d7ed0793e66c83c8ded88c698eea1562b5cda7ec181ce42ebbb4dc4b6dd2bac267e2e4820512183639506bb6780ea89bd46bbe18f29c4a6e50f14bc54342f854292362561f579af9086ea5189d4ffd0135ee60c265309a5185090493f0f09039053347adb9bc08b631579be7c6fa8058da829e50c508894a3e805f98f938d06c72ade1fc6a4d442f34424ef17d606ac11ba78f83dac0227e89a8fe56e7d014114a5b6931c31ca087747c133f4ddea0199118b97535c4a12c61e9233544baf6764aaf2766a0258666e125c0655afca230218aca719ee18be27ec2cb82c4cc6e92956eb149ffff22d2d638300f91531da3bcac124ac1f77e9696bea00c5383ff10eddbb4a29626bfae2f2255d7c0c28ea57cbffac5ed5b16055cb9c872016137e4d4c9741c78f11b9086be903850090e6fcfe684a6ccdf8d24971884808cdaed9e2617a1e1b017dd1f3547f3c2a5193540d08270cfc5575f316a31b507223f43f9432fd14ad3135fa8352f857c04aa28e2509674b526aed79006d444f09777b74db6e7a5a1cda55ec53ddfb58ee18fa22fd95e3dabd9206c1d0055a952c42cda88e627572fa51f7eae7577fd6f5055294607ad59f28c22dc40762fa0aecfb80567f55d73d8dd8354d598cc0904a9435cc61998f2ddb18e4e967d104ef028918c3df893a2ffc63be160c415606662e027b00560682dc9272327778d75556ee31472a014b86ebc7b61b2b0f5ab34d0e69853e72e11545a287fc09729ad72d29f99abffa60db06f143636836a8be4d3e952fdf683b99bc2b20ceef4ae15b261f7b0aedc3d3ac8c7db86a7e13945171615539d046db00e14b8a5665cde7a3d2537bf1b9f18becde00fd9044d8c5bc583e0e71c904b3885a8117e44d29b23d93d920ef05b65559584f95b1d9869da1e374cc5797256970d8c322f0a6e6e6564192057930775ab6cc37a161f8701f8c7f8039199afbca8ce293292e0f438e201ce02f877529bb888cbff71c5549e57676ffd7bb544dc93c4c98bdeee514838ab9d6f92d2d102b25bdf4d5e264839a7dc1da9d4f8ff96c5e7ee09047b9f0af143a595fd1623fcd36b6ef5f3f2a134585a3b3d9a76585c129b99d46497dfc5893dffb813a77ac38083e1f5c708d52bef0789dde4061a2dbcb467f23da4aacb9a5ad14af9f6e748fd116522f043960c7dac7324402ac6b4c4056c965900e17b747c8e5d97956c1ea338379c5bf418712aa45559f706c38f25469d1145a9ddfcd7f3120ec54230e4726bee345b91b5d0161896a47a473ef4ebe5d1027cda31e3360ffbfb3e89eb5a03cac0e48cbc321159a45cbbf718ebac1111888d09ec1f12c00cc14f7df0db22fea6b1d2d4ef4e3bfd6fed3e406e392bddda0d51e5bc30ad13cf6a93593ab48741e6533574098a91298d96e7331ac097ad2ce8fe4c9b2ae2bbb42c402d2e2f92f480c77e458c022b7dcc39a932ee9b31addf38b85f931044253797b07f8895e4fc85ab4ba1bd4340e4c07613f173f2b3d0e1302b15529ae49a010d97b3359fffe7f34a446d97dbda9764fa67312248d64eef2f3d072d8d520c4150774cdbf7dcfd1687e02b569be714c621be0555ab3242c54f6288b7595620347124d22d20689772eed740d5936aeef07ac0bea1803028af72058ba989669a87d837fa7d63f916b08acc9522314e6c4caad006d4ba7f84f07b33270efa3ab0a1f5e31584c9210a12f5739a585e07e38ab52b9148b4f7960af35bd98c8428e8a1874392bcb6006388fb46758cf52db940326c3a9892a8f87bbec93dd1f0cfa6a851d3378293c3b65517e4baff86d36e0f4ad6f3a197202bb38bed300870a72b58240b2d25393e349ff5ccff20e8e5faa67c4389087a785c27cdbb5f530a8654aae2ceccac6fd779919519ff27df65024566d0ca0577f6bc995076bcefb53eb1a8229cfcc356c08e0bb34a5fc91c8a27c3411fced988fe79f431a26a33220103785c3274cfbe5f44d634c344cf0ce75a195a5ce2810c9f4bd9ba680aa94ad3d0f8a1aa801ff7086cd4af544ff23e1922c4305620f12f5911c4d59b3744b21924f48d3567fe36eac95a1b6f666c14cca4a6b4914a88980c6f0e20f716697a9819e37e0857d716f495db4a0515c02794439e8d86e827cf0ae2ab5c55e7e2b085de3f282b73c4cc71201ae361f845438b6b40e6cf1090f50dcb03a9e21a6b0deda36855c0a7f693ff89e230072bc3fd96e090e814aaeea7357d8187defa4bb5d1f4c967d55604e77e09dcb8e2a1aad5ad3c09bbd4a30169b94c8f4c23ee9995481ce33f90d8b1522e5538ed8a4ca263c897046adb562c7ef82710efcc5b84e495c0c1ba5dfffe2d15b171891eb22150241a501d715d1e166ad89319f461d2e25df167b57dded55e5ef02308280eed3669f85ea33fe77c68107892fc22de3a423bf5985893fabb9172a02b5e3647b59d7dad75d7d66fa2ad51cd92a14b005a6bc47c7ea948c65901e9bbd711e0045aa803292f77ce9c93ef507fc04707365740563020003602a22f132e60688d667e679018ccfc057080f83c0979fc55ebbcb9cb1fe6bcd48b87ca1a0d5cc02afb5bf047d73093638877bbc2540c46a4d675b6631fe7899d734261d0546c8abebdece60a454e98d897620e7b05c48bd32688143431f468007fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c180007fc04707365740121088ac5243d2d854e84ef3e22b026fa46488ad06804898fad6e701572c00d99dbcc07fc047073657403210b48e11e0f393023028edc637b815b5ff9a892eebedc86b4268c1df424cdece24a010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001aaa0650053b5f349098de466df98745828581f599d319435e9a0fe5688c9e172b923e19227c3dabc2c93ebfdda8ab2356b3be0206da127d8bb5ee29b3b072b8e1538d61adc674b7644fd432e6c8022bdf2a36d44498ea18cd4bdbc309c8c85ea2d60fdfdc3cd3b5a7229a20fa50d9c9ca6c828fc511954bb3dbc8f71fb8ba29529fae86f2d5bc3ceb73bc78f3b0ea5e9a2fb3899a52ebd12ac133183ae52835e2968c82b773929167671adc5cc9dd1f14da825069f2a7693b35c37b2479f204222237c918f7255333c0b8c20086b72a165422b2ca54aa29862c4003412a4eb025e2ed2630edb498b6c85d7dcbd64e4124f5dde0d765103c807efca4e9133ab012ff2e38c1742434d4574a6723f812e15e6373fa66fb3a6e73becd87e3296316f7a4b1c8977f8981400c49cc757e77ef47b196159b1e71902c867b5d42447b6d67e9454b467bc951c31b3e3b92d52abff5a1ae5e475744db99f2041716696264a0727e548b9fadf7551ee05fcac0c2753d16a9649275e6d525a86013b06b72c3a2941149a35c8e2491ba10bc1053f6ebb739cb069865718f2cb6d0ac691ca2895738bd36edbd93b91828f152cd9f3078d7ea7236035a369963516f9a64d0c11deb9056011f2e3a75c2be6988b040790efa5c68c8aca0691135d26e3f2817d26163331e055d6582c37224f7f7922ccc13d2d15b762aa32d88b0456a3a5af6d54a08f85d5e91294d3abdb2bf7cc7f40e37320c22a277991841bdce126820ad7f951877c23c42f8b4c1e1dcf0d6e8ec95efb97b5868f90ec92ab2ac7d2916f15b1662bb55eca4c0788cc56cbc642fca878eb39191634827eb9533584f5e39a8116dd2c4969653067e6954e6b84870bcedc88bdbbdc03219c181c74e2d666537abd372a181ee950a2723c9631dd360e004362cd9b5d711aed5329d26413c3b7b0bf702c16c2f918811bfa4eeeb02de12888f439a35cb499f805769b8a6ddfd2c142b8a171f19046fe621a9977136a4012beba8f1887a9b304290d5c10d2162dd47510f707d8449b8216e5afce2ce580a1c2803ac11b14522f2ade7600ce9d3c90b174f589a5058feada9571068e45b5e8c59ac8e06462794d316b9b137724fea8b2a89900725cc93c98922104381bb16ca2bbbedb582ed66d78f8f3dbac2ffd30c2e19155beca0de138178b2bef1e75fe2b8aea942262b086a11aeeed9e539c624a217b2a0efb5c2a5e9bfb2103249780e16842ccce4d883e5c5a5a0efe6aeb00516069ece5d2284c82a7ba647150f2c6bff3affc53ba4842b6808fc89cfe1108250f029ed0b9dd4500aec695b87143acb8cc30198ca1769ac92e6a4b4bf8ceaf6d89e054502e4606211cf81994957a5ff93414195fecc39d3a5b01414feabed764a238a4171a9e2c14a07ca94c456fc5fd6fe2f4ac93474c2080b0aed891458531f0f7eceb93a58ef36891fc9dcf92726663a307c06626bd6bedc830de8cbf5e778803d3e18bace5a00210c1ec5c8f17792bc394b5099076a24093478f1c879179cc26c13f555852e6b9d1958ab240d9ddd3fafc3bedf8a9e3a9a06add5966f2801140a7d763b77d04842ac7f01554a530aca6b01923e63664297c10668bed361642c9493a0c61bb40aa40e36d496926ca04c6b7424b553accf5f99883c1637cfdd44bb1b4f61e8d990d00118c11d70401ea3654873010427b45c7a7d13390d7cb276b74e412aaa077f9e279dd6fc052eff12674e46f4e6aac2c52cc4e874ebaacd8bc3b4df4b5744c1389f81c8b3ceed9bd72f012bc9ef5b7ee2429815804070e4491b3d636bb0143ca0361a04d2a87e056144c6abfdf1d60913c0785aa322a39fb0def01ea1c054191ded1e673a1b8cc0432cb5ab527c366988206b969b557425068663933a352a1271a57fd67ff05833dad079d504d4b4d1dfefd59a6c65f04282abb073caa9a3345740c3d2be2a7b6313f3de1263a785179ac52c4799b42e1e192a9f65d602fe7932ea5c79f8da31f624256252479025bec444ad2737e122406a8895b8c01b60c7b8de33614ddc59b620145b281818d8e323439adc8cea0f47f3d5e0e8b5de618ed64802813eac962cfc28afaa3b7a3ce1b0ae23dd3d58d804f6f5c9ca538708050a123fa6277a7f249b1b0813111091a226a700818dfc44682b1dc2c1a6604cd07f1a8eb3555164b3619737ae4234507a887d2fcf119193c2968ebba9d6fc5e15de481ddf9b0e5b59f9d0d1b0ab45b531fbf68225851f01e9471d20ad96726c82be213974b1ad9a6ed2d3d3d69246b7c113dd540029f259aadddcbe7adc34dca7b891f932eb89d1b0587a58862ed8c0143b84b856658013b597e2263745c218786a68dbf84af3d7ec4c43a43b924d31f244ca98e63298a4c48020602c6a562b4a20923d1ea25bc70c25041bcf157d178efc1c67f6bdad9a803cb3e7fe49b23752930dc0f3d1b2e17c4c56a6d33f3dc11410e2a5e7b16fbeb8cffd2cf1bf09d8f8adb7fed905d82bbcc472d71b62c4a2c3595b711ac83caf8f94ce5bdf2463ac741bfa18c9129b99d13e159e60956d83a7d3592dcd5462399c08228f53b1fc5b688cda3a685b3825da25b683c05602900cc6a54ecc53fef65e9a3561c040ea496ef425a7e3fa0eabfccd7eedebfd6cf826c552e4f3898f6718dfa9d4d585534efc038f2380d0c8266df29f977eaf1e5c9cfbb6787fb33cabd7377f5e9620ef30d043a592aaf8162b9db54259b699a351433921bc30820091e0c407af094e299de0b938239d6a1d20c91485f43c8de9c9390f85ff4df3b2270f71f80b2510d02dd0758308990de131d447f1f4e97a1dfd746da7c3a505831fb48c42b59d259ec27772c11e1d48dcef30f7b07d2e530d39ce976560bde47dd16830970ad52f0553cb9fd4d141aec5825d8e00d9861b4ae5ee276990f75087e834ba9c34b5cc3c7c508b14206780dd4fa7576f932e8203d77ad2186f4d5e39ccd7b60dde5f4cbd755ae90887f82c31b5189f0b227525d64a5fafea2fd2afd18660ac249d98116787429085ebc07a6ff3f8d7a56a6b19cd59f9fc14d55fc7fcff39db4016bb1f75f76b13eab255946a28d262b4a2ab5b3d14163d797ead63b7d8f0fbc9832b29701a00d9c06e9ff26fd0fe58127c4311c2249e3611010b54bc02614a926985a90ef4b598f16aa0b3970d5cfc1bef37df67095ec5c2a232bb088edbe1b098a1a59af15ef24e7e58c10f18eb229889ca27b7568cd1deb00ddba7b5573b484f946287cf01dc52a7a2794eefea12c5e53c9bb0efcf777ffaadb5a323106c557ad91c74c65f553b418d2c2fc5f5815e14363d32629f07d2acca30cb73c3d5ecf0905d8666beca889c8ad323af81692dc35db78639cb2323bb40786471fcdbc01d15167f675e18e0f39fae8c690185809eaf43cdee3430016a9c0cf8a8e84e58e38118184e73411010dffa5c5096bb45a183eca54318ecf441684fdb5f73d8313d30d8cb6bb7467f08afea56f237d7074cf76a95d628277caff36fc2f3d01eeecefddef9fcd837ee2ea41db771012a0be1f0caee3733c5c272087b4794ff28892bdd4fd01c377dd7d5b2855b2237f3ba23ac03779be543a23f90966106f66c45dba4668b13e38b99bbcf2915c41404af1067a40eb12d644e3cffdda55cc1ca100ee9cb0cc7862182fcca35025d062af9593debd33ab68b0d77f3bc26223b9cb4b61f9582a9ada12b42958df4e07617c69dfb0fa6a608c13ce96605e37b01cea75691e76d0330a37bd1b0cbcf0a5ef41117e5ae8fccfcf1c8ca45ebf0abc43b53feb396fc04d1c58a88a24dc1c7834dc0c649547c6058bc71ba3e04fb95b6998e9c3df897c30c3780f307b7ef822adbfc5ab5d73502e15dfcdcb6470e30e1300085779d0e1b8d4cbfb8f24b290f17bbb6455f50afceea873c7bbbcd1cb7c8ff428e6d796eda81112d22c9869b5cc76385c453033756a8b7c9b35e4861a79c048f920d9333cdc86e7c3e4eb6fd87ed95f151ca46fa2d3ba5c01a8c6d06fd19c312e8fe24717fc72a116f6c0232a77cfcd9a058a9becbb284ab446538e31305b5dec13b70a81ade8b8a715de39f0b0f19abaaa8addc5aef6b301ae69d61da3291f0033b2e70f4ecc28098a0fe8e3a084a38b0463b136e955be93bdb3cc51d03f3f2399b711f44a007f91d26c05a6f6bf5819cde1da47e07c2dd8c876ac66f6997ca47c75ff2fdfddacd2ab88808249cc502e26e999b52950cbd7a9aa121b53cf053e1dae24166f407237c16972e91ac5eb53590c1c835f38a8d6973e181f72824a4cf2f63003569cc281981976903f532ff0e34cd91de77e1daf503cf24b7fefa34ee82abe1f911373ca98fc33863917ca033c16f369d94fd50364563f37ee3f6f74026ab8a8f32bb1adf96eca5c44600228b646e7725c3ad3aeae0bfaee42011165e014daac80965e448dc1c3bf1af14d30d698d152cdd07ea5420618a42c7cdb0de4d84d84d0accfbbbd283cf15bf862bd15d1381fa3208c830e58a64cb9356cde114b09b0460c6ca112f22dc08d6f8c55235e06590e35bd87c366fbd3ffa0361f5dc4daf15d92bbd563fc292235f0f11fe47bebbd7b6eb1ade414023c767b462f7761cd7650b7f1e239d69e4f802e079f3bed7ced8c60904ea5d4e0c0c05f37e5447bd98cdc92aba7d6414e29d6393989a27440da61ae0c04ec102bb5029d576b7cdd8918cbc0edb3e876d70985e89b60be8da284abc00bde0b4137dc7d5f38fedba9fefa596db6033cf8542922b77b710b0b53ec76945f019553ffa530eb43b4b554f2452d28747288735e3067f69a9eea74f30943b492cd88135b7e57cc8b026a999986dba41858a65253e7c57478a4ce9a4f812c5359a104fd8c7b89bfe6275993c8e90596ff311d76ce93e232178d6da87b54bb853281536832a48e3036c8bbb7897cbe7654390a4031447b019c37f7e95217fc476a2c673f9b93209a546e740a53998f1c1dee909339251c9efa738665bd5ee37515c4fb8bd9cc5df6a32c6d9b82889c2a50eff475f2d7eb64fb1b49f379b5aa8814e718722a9682dd66a06c33ebcd7e0630f2b2a8057d3719a5bcbeabe0df9cdf098fd9981f28c4722636acdcfa596f4ec9947ffc77a4279ef4583ed29cd43414c37366faea951c4c45a0a1703e66120445c5e00ea81a3d821c285a692c5b6f2f6b4212ec29c2956e86255fd4e2bcb955a899d77c9c4fce7aedbf6b380b4ae96d11b49bf48551910576585bb926db6654d3215b8aa79a75ceb698999a1fcf88010732500b42718ded7dd6fe9e5a8f8749272a7f8d9f0303dc308fea662777891fe62bf969f69beef58cd17b8b0251aadee3fabe447c7a46d9bad84fdec3f4409c7623387a55e53afb29046f8d51e13a5e9c8519fc5dd9c24d4076ed71ebee6b036060d25d2881d72f2e69a805cc343bddfed567142f8f25a5a16a727548895dada24492c40198faa4aa19f9b7ab3c5331e034545eb158ce7f0699c0b78856860c01b77841323d7f6727a64a06a8794733be9169ea395560fc7565c00e4ad8fd3fc9b1d4b406ec05b4b3f513a33ee1a017030f5876f3650e25b8e95b628307f5c778feee7c4aae1c0e7595386f9db4da321b9988dd00ff883753d01d71588b8b78b9e5275f401d88a421552659d8200920355a12ae25ccfb3dfde5157a0acabcf9c0405be5d141a8d8014705fbf148720fecd61927408a053c1fcdb17bf8e74bf27ebc5a0f3f8298201a754062250cd83b96c0e1f5a8ba1f35abb200b7a0cac3252e1121a59fbbfa950c087c5f0b5e799008d2bfeaf8a0dfed17aa85f7ab7f21e9cd3fb626c0dae1e757fd348b7ae71287ebc7bb8e7e4aaec6084d653123f92a25c3a224bae30c6ef62a47e0b207fc0470736574056302000361c6c7b117d971ab8ea08d293e58e6d6a2a3eb9da254d77bdf63df2f546772854080178f3327297af527c9dae9641bd9ecb03f0040229e861af0ccb5a8eecc63aa2be8bae5e0a2b0aa2a67241b55c066b9a292248a374ca57460ff6ddb30152207fc047073657407210259ecd61fa2d3d92e1891675409a6bcca5b7f5ab595cc2d78624c2b9b4008627e00010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210963046d7e641e758b9c99a198963b82e92cffa6f9d3a5dcfcd09a800e53d975ab07fc047073657403210a122f4cacf06e67087069a5a5e3476e1c6d65471f4ddd7dec99f4d544e43b41080104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e106033000000000000000174576e01f11e062faa81ee9cfc76d35576c5cbe613e79aa8aba990dba3ec5221f47b5991f763efab437ba49816b8e349d46b83710c429aaecf1a971c47cd0e0600fdb8fccf5a9e94b70cee45bb581685ed4a57e7dc922c5bd52df42749eb15f066d4adf902abc6e770de6c0582fb3493e2e8ceed345b4e7b516c403a41dafae86e282689ea5bb47d49ec73148aba3734fe7c5a8b58c38e89a0b200d76980723c6566e073a91533fbff5750414053c8c8f42e7bedd44481e204ca641f1dae1778903b5aaabce670ad57d359431d957ff2e5468b2322c7537913114ce2197d6eb27b76b65a11a222de4c8eaab2018bb1660a20e2b1676209fd60aa7d6f96fa86a3e6c0126c61bac3a2e5d765bff40548f819f40520e93532836c97e9851c6c23160412ec6bcd82e242879937c15de9fd9a32d6f336f4203d50dc51b84086e652d4d9c0b6d18df1a95a4ec11902bde2071a048ec9797bc6e147ddc08f35ed54d8f3983c5a215d94019eb84c5dd388b22aa01c052468e020794b3534f94a80bd4cf3c93549bff617a84f249bf5c7427a77339dcac7065551311baeca5634e9a7eb1381a4db0930486554e03c43088356e78b56ebce57829231e3554e5757bbbb292e6ed42886fbfe8b595ae51bb67f9bf4186a7185a8d5052747f71f922cc540836a69c6d463372bfc23790255c537a2c9934b52c54deb91c203d0f918210e537311ec3388e8c25c5eda9e8a05b6e46ac493c0d754c34d1211046bd19d9387f9311183443c85847e9b49a9c824991cdb40c8055192b6fc5c7bb2fa624e42d6568c9ddb74b4c7b1e391aee7c32fc5eafe36d24d32ce79d45e93e0468ac124f0192207be0f74b46162df2f6c97aa135870a4736d346898ada658a619b5c209da0bc1f16ac956572d2fa5c3d4f1874575e3b8b2412210dd9811185790b5336a32688fbd84c0121c74e3a8736c6b6ec15ddeb986c30a2a0a1582381ea0077fc1cea3276f52913f07fa0afce04da78bb2c5c5a47eb3b75574892db21c8863c5375e169b95dee1f4766f8ebd799890e383d3979018ce2e5c516ad4d81ae42bf2e153432efa3ac907a8700bb1e7b0db2957261a1f08afe65eef9c066aa5efbcedcc2b08a188ad97bca147b809ae5f73fa70acf9697336b9e91f5b40f960cb77e2a583adefee7c1163167b5dac16eb5d4c628f386aecedfaf867a6dc3a9881ed6e754d104fccab23487abb34b9302f17c35df5b35693000879f2efb70eea95d2eff36024071fecdb52bbdddafc38c7ca1ff9a494a61c7afab91b5b1b45061d451386e7a6818c7dfbecc4fb5a731aea43e8a0a158484e7025111358ba9a148a8cde72eff8cd06dca9982733d8dab3a62a92b086949c81d39f988c004bf07009954f1d1ac7058000c894f12fb268baa2a37cee07f6adadcbef3ccdf37478a7067555f9c1a1206a949a6de09889687cdaa24af017769dccf0cddc6015d5298fe2341d9773d994188e5621c4e3edfe78ffa0f6a507d39098094a6b6bd53a73ded29201f66ae0895cf81d3eb98423e8e44042ea4ecdb6df1ef35ce83331b23564db9987340cbc1d2dfffe34f9c03860a774dad4569040011e0b34a4a92daf4e594a2b810e2af36d5a3d8960e5d305586ee699f82ae261e8cb7f1c8790e9cda428d37ac9159ac1de405173686c65f663588da7c54f74445feecc461f0d6cec1bca22b0b07e8c148e2f9abfd074a4e6a9863e549e482e7f0d388527f55fabc3cf1c5d3c4e874c3abcec96bde1a8bfdf41caa9f3949d6c254e959a21f2c89550f4736815b3a39dcaad686a62664b9fa7ae26c2546c2d3d67afe9ee28f4281745e30e730d59ee902a1ef84bf3d9d531a02668e7e7c459c20cb75661e024950cbf1f8789b808778c2beb1851babcad98cac09d2336968df5f2fc470f7d34804a3ef7beae24cbe43469b79c9fb89ec2ef50255494240371aa9536f44c4e931f623bfa6b48df6fe05dc21623a42cbfebed5b8ee269d3338be671455a4dcfe7cede3bbb006d266cbf2b185eeb7f6c3c548bba1cc4ea4d6ee73ff8db5f69e8b3113aded43b45a56bcf4b76f897424a9d29d0af23ea516802d9fce186020f7d824fc39eaa0b3a029ec802ee1976fdb57118ffb7037b8e30aee17140edef844b6414b96c3b9e3e8496f2e97555a6f91b8236c935f1f75ea5bc22899631c07b074706b284f29a2de1e4096e7589468f8dbbe437e042427e97fd5b9298bf20b312dbb977d831f15ea9294707f8c800942ec82991cacc65bd0beb9f14dcea44cd1da406b0d0a886056da56c64aec963940c6bdcd7ad689af4de9bac2c41887a569a8a98eca3b4fd40256241e1fd27eeea8efe21cdead1f9aded53659edb70c8f70703aad89ad27d9b48c1f1acbae3aee674c4b18b96eeecdd3610cca845d8cfa1a750da6883fd597636eac8f253080d737900628aea00e25d42f4ab242526febfac3a0692fd46c1500df849cff389a1a8cc7a8388b526227a659a1c2274566bc701a855fcd262e5daa97c5f7e1383cf7cc1c6b4b96fa73913d9f0c62d62eb0a3a4586b9eff5c7ade98f71b24219cbcf9d7d5a5107cf1f66f064ca01cfab012a0c6ac230a504a1664abbea3fafad63212b827de58f6399b22d1240e2a2131f6fce3db3ee566a62a5e65c7a8e36ae7294cd1e76144b6be68a04a290cf6d309624d7fe214bfab2278f0b3930f6e841cdbc748802bb793268646fef4488eb9d6c2fc65f9df934412c556325d93ce8fb1e0b9b4f93bb63038a1f6b42a3a194bc688ce9802b427dc670b12c8399535378b6e25ab858fe06eecee1efbf871122c113667b56b8d75e826c8401a62395d87e362c261925f11e82ff0c7fa8c04aa469346e33650cc8d519d4283ad143992dd826dfff1aa16782110898412871e9cdf1fd7de02918ab8833cd270f57cada656cc5a693bbf3a94534fc2392c69179ad5004d93a848a00ef862fe6b679bd3a80dd512b0288c721ac70a8a0edd00aeb447cac5fae6369572442034c7bc8148a57760bd1c6b97be882b05e76deefa1271cc62141bc0424a41786d3cac951459b2dc7f527ad121527fc68c278bf4fe2e50e179198d390ca7d868eec05979bf0ec8b50963ee8fdc50a4cacb134236432922e7254bbc6f93dea268ee1c8b0bd520b37574cd56d528408f4a93cc5584fd6a88de5b033333965aef8e796f6f140d36998b8ede9067cfd0bdf0f040f30e2db19b6bf8f63b99fef2655327a82d04d1d4eca7f0f6235b71f88041f43fc7ceb416e21ce5eeb2765caa7a38e88e8877c25f26c6b72d9e74eb6e0c3cc3ff4b2971ac6610bf33ff2b7943d0e861a03ad67afffe2ccdb46a509b8bc05f236d1bc403b11cc80ce021ed413cc6a90b24e8710a17960fde0194754816bc9e2031f81851fb2703113fdf8ac3174f75635104ea0fda3d7b1189bc6f52c36ae65b785de16881748c8a0aaa417d48ee62ed1010f676c968e891c60a50c7756cd035926b09c8692f471710dee10c0007f41af36739fb71bf31a7fa47e84a51e2cbe7d26b08f66cc0279b1d2190f39cba9fe626ea2870e34b215954bcfb225038648c763bd90c54204453c370945fad42e6678ac0892cccb7047bf3cdd84e30bb3cea00c4eac0d177e5883503c46ebf0f6e6ceda69d6173c5faf51fa22c6812f2b50861c0250f6068cc24d24147823ec7197846c0c607261d97b655c5336e09b5c94116c13c795dc82807abe76f253075d004085239876c9d5cbfc4e83c93c53b706e873976cd98bff131bf15eac126b32c4b4a3f236923a15ce2030c85658f48c64b88e0f9c9b52e397ea5fd77288d68f6466d24b153032054a6e3522bf32507a49e23c117ca23579ae0e43b899e378bbdb4ece2ff6ef6047c207bb6c498b93e205ae860810de13628a8780518e268bc71806be2b88ec6f55e09a6512e769ee41c141267f8a2facd104ba4d13c08d193a4d833ef27c157be3702d2c89493b69979e3d87b9f1d58e8f75027758674ef5e435506901f6f8e8d7a92f4bab301fce686082de4c7eb351404aeb95bbb67f5e6d49c48b75aeedf228e403ce05198ebbae0be3910f75fe53004956858dbdf1c114531e4e56bb8f1a4f30fd12c43b2fd4efe777e332b3d904cd12c0a4e3ba806ba1f5921f31e747a9f7ab2d6e74508b286f19fdf4cedb2d9c024ccbb225312d111a1ad1422ce575bbc9b11ef3f95f4a94e932e4c61a83bbdaef04fe7d3923cbc33585d70f9f56b7614108613bc2c45d004ccaef88933e8858c99cc76a0529130b5689d6ec3b98e5e8ab6b459ccffb4aaa8572fbd6132478948b16436b0d40c4282e01776e29e3cc6c59c721f7db1f2d95a841739f7ef6e8dbaa855d5ec4118620f3142b77b1e4d875c0859108e1ac8869c2287d89444742322dede4dd9e3c33a8c94849697331e5dca318ea52ae9ec82052bd44550183316f98c969e675bb156067e1457e9563b695e432cfa6f8696edbb6747c1ceaa0f117640b65648f513a32aa61339d525e22d69669e12ad51481a57d05c1e14a063abe28e7a553f7026872c4d03c60ddbaac68d87aa6c119fb3dd199ca41e8203ce70df141322a84fb9440b607ca0a9e9c749827d248d8a7e6c39122aa5ac9cab1bde157782df4759fb2a7c212b446c6e0810a6c764548f6b6ff6122cefbe28eb6cbff31c105be7b7460643514ed3e6a193af8e6c922f4023364836fdefbedd318511361a557e91ada4b01c37e9a3327ab945d4a74d6479036acbb2e9d66d26da1bd1576b91e5dff434d2f3d0ab5fe71e2b7f933ac2f1e7d7b060a4bc0c74cef07a2ccb5f653079068e136c05ab648405fb33e02a8e81b99067b7390a070b0f9ffea757e594ca74b2573a18a0071cd6fec1ad1363ce2bbfb22c0d726d85ef97190d78da059fef82bbd7a30d8af24753b04944a3df892e828f3987887b75b74280e2afa4b044cedd5b562631b38686e444e816982f067fffbe531b7eafc558a5f0fe9c1284b1ac761949aa5c30b8364b67b39b9ae609c96394ad498932468c7056859eb2181b862b8ecb06860310d1b03f90bfa9141e9f2586511f8ac1419bfd8fee5bd5dc71b28929ac4a081345d4d1d07fa250fbbe462ae85321b8c2f76c216819b6332cb0207e19c2dcdd9f0b60f4cc0ab362e70fb664dc82b20e22b7e288b2030cd8afa524f4418cf72caa4dbd6952203f6332dbadcb6d79767f1f84f6bed8270e226d71ef7e0cfb40420a71de3bb7d2e03f67f179b6c4c8737bbbac4383bf126515d4ff69f3f44b32428ccb0c4b380e767c6b12e312d90bcceb0af867b86148e7d901b11c86e17a6a14ff5827524e5a4d0393652afd5868e46f88b9eae01fc57f7831a4b32e4033684d04c080ed235b61a0d9931a4031b3c6426a686d9e3f6018f2704c0e2ed2e7450f7b9409733ccc401fcad4e267c3c5a920cd68ce0ae67e89839a114810944be8ca1c0d424d2d3b71ba35981c35fde767135e040f8096af7783464f6736dbfbab1659bc0be5a6a67c00ec6a3e6c06391c86821803bc8ccb07b9b344f0ff0069028b1e19cf18a7e435b2df7aeb4b1481a1c368eb4cec8dd3a2086cd7231a5de66fd9455cdfab33e6e26df87f47fa723b27bdcf1874a54fdc84fee1653970cf201eb9abe74354a69a6fc64eef26a61f7032ad1007ea73500c682d9ce7c7be465c36d4bcb20b16b43c360ad10f2beb560af416e5112490d897adb55f9f29c6de83e9ba6bd950f95b43e695babe4e9b82e1d624264ec892ae957a695ab4d9ffdd451b6a3457d12a24e5c4156784ec374eac5efcfd546117ad7df4c71ebbb564eca79e104cec2efe4c58ac2f6dfc98c734ae465906d8b35fe0ce51bc078d8e0a0871e41d4f94bed5079f531de07cd8a70d5c06407fc04707365740563020003da6edf1e8bf899691b41223060079d69880b070ab79eb9af0da27ec2dbb26f1ac3f5d5f5acadd763ee2ad37d7febda0a9d35228cae98d105c0d9a06f789a437a972eaa1b0bf760d307189dcde671540540f65f396371530b98da0cc2bd80f06707fc04707365740721036ab94c3698f2d9101431fd6cf1498ad212e1d8ddfb1f62e1f8b1da084ae0a4ee00 \ No newline at end of file diff --git a/examples/test_vector/raw_blind/blinded_unsigned.hex b/examples/test_vector/raw_blind/blinded_unsigned.hex new file mode 100644 index 00000000..49906ce1 --- /dev/null +++ b/examples/test_vector/raw_blind/blinded_unsigned.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc047073657401210896b0978a97e9dcfc549d4c0766f96a30b5749429ffd7bc7c65ca398be0f739c307fc047073657403210b5041a0285b003a640f3b4dc68b6c4b62180aa2089d21a8e8adeb6b4c94ce653f0104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001b29b120154f0ecdb5c958a583268cb5ba8ed4090923754acb737109daa54387297418cf90e7bd527ecf58199d72edf35884040de821dd33b76eed8332b413d74be524c5206db330a298adf1c4b78cf2eb042da7525d4f552ab747c9fa5fd94f9247a23a7034ba8c9fe88604a0c9a4d53d6e50c9b122525b1de47d63a84c7a71b74ffd17dfc28ed0de6bd1f4a7f25c12649fdb0826c35ae61598f07536fbb7ffdbfe7b37e7f40a5115f9db2db739adc5a4c3e3eddb94704bfb344b31cb485f422bcffefc57e1b19861b988ceda2c4869059a4f0d079ad506a0e009a5fab815dd1e6274d90d5b4444fc5e03196adb515a9d7a7b24f790cb08ee1b69fed7673ec57916f116423616152d21b5ed2f3cc395789b63d7545287d6fc3c0850461223437b3abb5f3160a1df4b5e9ca607188869bc0c0402106e3628d301cc63b81da58e52328c267c1a2c4e541047c113e9af1f6d87a501035fcfe6a45972be255f8499956ad8163d54f6947a8c6d4f092be90337a81b84ad4f5b02f63d24f010500df02ad19567d9db0f4f440ad44f566fa2ef996417b4d01cd49120b0f2d09a836ac58a933a776cc473fd89e5a0038b288fc43f8e654f5db3709161183bc5162cc19f535650238cb0d08230e640c5eceaf7e90ed3114b49ce7728851c0490367e6a9815cfd4297d7ca02410768a7a8bb9b3bacd2c0ac548aef0adcf22d5af5dc62c52f5e2eab73d59b0b25c690d34e5b218b29459cc571edd1f70d4045ee0737730f319086bf0969bf90e4ae4120b835d9097317113f5cd09eb7c366d77db6d66989a49be0302fca77b2104cccb4dded82c1467f8d8ef2cb946742d211648aa56d20a9c7d5352865ab62ec4fa29573d98aa9bc5c7c29e3d645c2c8e7f932b8f5a01093ccb7eefcf9cbec64527a01ab05c6ee05eba9ca72cabd260a09657e51f3f0bd4d8688ab22b0a171bb5d42ffa1b7ecc0a6e3c7ce2fbf13c658fff175a5f696778c4b73a0aa5af50dddcfcfc2825a6b6cb558ef1d1defba6585c84ad0a1c115b1b3bb593efac60851d41d1cfd3fb8b9c01af0ca0ca56b6d721411498c6e5e6d6b1291eae4bc805df3676cca5abba5460bf5d15c2f0b4b64f08bb8c05101742ab44157b950ac6b6dfb45070479edd7f3bfd111dd6ba8126e5f74b4055131952cef93b8ad8ee71cd950cc5cceb302ef31cdc4d0449f08dfd6d03360b44e066b01862ef2711e507548b55431e7a1c8078a1b4b4a35677a30604b08494da40b973a395e035631ab3f2f8ee545017acf20c5cc326b9ddf0f9357a664877fab6417247b06321119a690dfed33267e710a14d4073092a06a23e5d0e8b1ca8887ea35ffabfa592beb5ff17bd735eb3e9e100ea5515ef012b70fe3401296c626b671f5db940b16b11f5bf71c70e239c40b59499227d87ab1338df258ea85e169dd5c689c3debfddfe4b0a969263ec6b78236425b849be2974b414f90383b96e375e3cfede78075ba596e70338394165492acf9b2719204051e8ee702db80bf19d6bf8ecc067069c6c3db97025bcaee797d6f14649940fc9ec41a52efcac6d616f899f9b8b5ef1656a4a37f77e6b7e160d9853f86862ebd2a58d8c409b8e131026d2d198fc9ac64e3aa6a80c88de9eea8d1fe98d8352cd4e54c3e3d6e615622c2206e53a8e3e6034f29f709d3e3e4f7ea2452cf07c1da37bac31b898b4de31783bd157b5579ab8bb54b423f188c7c6077e875d97005b85248c44abd4d7262bfacf1a3dbba15f8b8f34c669fad480d3ddaf33cdac41fe3384d0f22eb5c8a22732b1cb64425e1c29e6946993b4a0951e1ddfb029465e938f1247afceb7c9470a3d49822d04fafa416aa85a13c0fe24246f5efcc4a9f92fb540a913cf36146090ffea1d2e7daffa97f3c2f5fc957687b185d0eae884f3add3deaeaff0521f8b36f198c73cb2ae565939bc2757c2b6ee92f2daa6d71b6615d62791b2843c1f28b5aad01cf1e7487a22cce770541cf9037aeab14a5fb69074878713d302c9fe062414ab2e2791b95fa885869139eccabbe689a8e29b313e955aedc0d39cfaabde980fef30862dfc74adf7152eed97437deb3404b18446232b4245310b2b3451450f5198cad691ff1738c38588d18726e4336fd0308671bdbc969858c6f996ffe9edd8b4a1a3c3cd0c8fb9379f1ca93c4c2e26be3f2c124eea83e978210714010b3d4f0e4f89b661fa4409010978ebd5688df3ad21ee5446d5918d1a4b8469e3439b2065fb17eeb2436c9d397fd9a29df1cf61b2a84b89945a6a725b3e952e2947d6774c61c2bfe5d7e0c6d9bc33c6247beac1c597b2bc703d4bcbda20e8662f9b5e06769398e67a13f941ff8de5fbae1c8fa380af44b8801b6e46208e1831e475c818cd9bc5de00d757914a7aa6909a4772d71a26f6bd0ab5def2f6a5dfd8905e733c5ba75315f321e7989ae3217f622f600c701dec3a4dd20405b61f2044e56b134e3c870545ace18a9308ea90b42473b383eb0122e5c549a079e7ae4b40aa7ce4a4d1bc39dcd16ed12cecb564c22a3b2e13a32445f8dbdd8a49fbf66ccb9957cc855b98d5939e2da361d24b4f6e1517f94e21ba58ef423d0e2b40d508ede3b1fa384c3b8c3f1bc010f6a1b46731a57605e4df1b4e2179a0f33fc39f3f99201ead3ef61fdfd6b804df5af79d106190414c6af55bcf477e13ae81e368eda1425107bb15eb6fb9e429598fbb37ce45658f775c7257df73ad3e8b00c18ffe15e110cbd369aae6623f3af5b3de9d6f8373fabbcb1965870fb3b9a02e9bea7d0b05d820293fc11421efcd56fdbd14ba263dc520f4f818165ba043e7e55e754254dea35f92c39fb760b1da5ebe85cc7223b24e226c94d103a0987367bd67c6f19aabf02b3e5c5fbfd286e5fc6c66271b5a6f78ecb81dfa751468716e8aa509b84c8dc99e9cf00150eae5b20beaa0265642c5d1dc772b4ecbb12f4f9e94228d3cd10d459f983d92dabb922ad46b61dd42b2cb764a8629faa384be6bd4294451f93dc8b204f02da065fe4c8c244628a6b7e93054e132b3ff60d4bf3fd4ae11102ef1068e0727ea167c9f68b0badeae01fcf9584303d3ef7c08065fce5dd07f32176f00e283fca015ac95634429f82eea91007d6fe094662015bb5ee1c42faec7540cb213ba9940e6524e226ddd732e332159060db57a062e4cd75379b8a599f2a13bf9fa4262abd0c4f630a2e018bfbb440730080d50f061bdd0764ada6aa4067283ad3bee83b44389004c3a32188ae466b697af2d054baf662af14a7425bd8f79eccc15b9ab5e8382db099ae464a91a08f5bde4c72679aecad9dd24095f78d1c6aecbdf8394e9df640e2c5353a4a6ed4b610efe5784bcf1124272df951e29d7ed0793e66c83c8ded88c698eea1562b5cda7ec181ce42ebbb4dc4b6dd2bac267e2e4820512183639506bb6780ea89bd46bbe18f29c4a6e50f14bc54342f854292362561f579af9086ea5189d4ffd0135ee60c265309a5185090493f0f09039053347adb9bc08b631579be7c6fa8058da829e50c508894a3e805f98f938d06c72ade1fc6a4d442f34424ef17d606ac11ba78f83dac0227e89a8fe56e7d014114a5b6931c31ca087747c133f4ddea0199118b97535c4a12c61e9233544baf6764aaf2766a0258666e125c0655afca230218aca719ee18be27ec2cb82c4cc6e92956eb149ffff22d2d638300f91531da3bcac124ac1f77e9696bea00c5383ff10eddbb4a29626bfae2f2255d7c0c28ea57cbffac5ed5b16055cb9c872016137e4d4c9741c78f11b9086be903850090e6fcfe684a6ccdf8d24971884808cdaed9e2617a1e1b017dd1f3547f3c2a5193540d08270cfc5575f316a31b507223f43f9432fd14ad3135fa8352f857c04aa28e2509674b526aed79006d444f09777b74db6e7a5a1cda55ec53ddfb58ee18fa22fd95e3dabd9206c1d0055a952c42cda88e627572fa51f7eae7577fd6f5055294607ad59f28c22dc40762fa0aecfb80567f55d73d8dd8354d598cc0904a9435cc61998f2ddb18e4e967d104ef028918c3df893a2ffc63be160c415606662e027b00560682dc9272327778d75556ee31472a014b86ebc7b61b2b0f5ab34d0e69853e72e11545a287fc09729ad72d29f99abffa60db06f143636836a8be4d3e952fdf683b99bc2b20ceef4ae15b261f7b0aedc3d3ac8c7db86a7e13945171615539d046db00e14b8a5665cde7a3d2537bf1b9f18becde00fd9044d8c5bc583e0e71c904b3885a8117e44d29b23d93d920ef05b65559584f95b1d9869da1e374cc5797256970d8c322f0a6e6e6564192057930775ab6cc37a161f8701f8c7f8039199afbca8ce293292e0f438e201ce02f877529bb888cbff71c5549e57676ffd7bb544dc93c4c98bdeee514838ab9d6f92d2d102b25bdf4d5e264839a7dc1da9d4f8ff96c5e7ee09047b9f0af143a595fd1623fcd36b6ef5f3f2a134585a3b3d9a76585c129b99d46497dfc5893dffb813a77ac38083e1f5c708d52bef0789dde4061a2dbcb467f23da4aacb9a5ad14af9f6e748fd116522f043960c7dac7324402ac6b4c4056c965900e17b747c8e5d97956c1ea338379c5bf418712aa45559f706c38f25469d1145a9ddfcd7f3120ec54230e4726bee345b91b5d0161896a47a473ef4ebe5d1027cda31e3360ffbfb3e89eb5a03cac0e48cbc321159a45cbbf718ebac1111888d09ec1f12c00cc14f7df0db22fea6b1d2d4ef4e3bfd6fed3e406e392bddda0d51e5bc30ad13cf6a93593ab48741e6533574098a91298d96e7331ac097ad2ce8fe4c9b2ae2bbb42c402d2e2f92f480c77e458c022b7dcc39a932ee9b31addf38b85f931044253797b07f8895e4fc85ab4ba1bd4340e4c07613f173f2b3d0e1302b15529ae49a010d97b3359fffe7f34a446d97dbda9764fa67312248d64eef2f3d072d8d520c4150774cdbf7dcfd1687e02b569be714c621be0555ab3242c54f6288b7595620347124d22d20689772eed740d5936aeef07ac0bea1803028af72058ba989669a87d837fa7d63f916b08acc9522314e6c4caad006d4ba7f84f07b33270efa3ab0a1f5e31584c9210a12f5739a585e07e38ab52b9148b4f7960af35bd98c8428e8a1874392bcb6006388fb46758cf52db940326c3a9892a8f87bbec93dd1f0cfa6a851d3378293c3b65517e4baff86d36e0f4ad6f3a197202bb38bed300870a72b58240b2d25393e349ff5ccff20e8e5faa67c4389087a785c27cdbb5f530a8654aae2ceccac6fd779919519ff27df65024566d0ca0577f6bc995076bcefb53eb1a8229cfcc356c08e0bb34a5fc91c8a27c3411fced988fe79f431a26a33220103785c3274cfbe5f44d634c344cf0ce75a195a5ce2810c9f4bd9ba680aa94ad3d0f8a1aa801ff7086cd4af544ff23e1922c4305620f12f5911c4d59b3744b21924f48d3567fe36eac95a1b6f666c14cca4a6b4914a88980c6f0e20f716697a9819e37e0857d716f495db4a0515c02794439e8d86e827cf0ae2ab5c55e7e2b085de3f282b73c4cc71201ae361f845438b6b40e6cf1090f50dcb03a9e21a6b0deda36855c0a7f693ff89e230072bc3fd96e090e814aaeea7357d8187defa4bb5d1f4c967d55604e77e09dcb8e2a1aad5ad3c09bbd4a30169b94c8f4c23ee9995481ce33f90d8b1522e5538ed8a4ca263c897046adb562c7ef82710efcc5b84e495c0c1ba5dfffe2d15b171891eb22150241a501d715d1e166ad89319f461d2e25df167b57dded55e5ef02308280eed3669f85ea33fe77c68107892fc22de3a423bf5985893fabb9172a02b5e3647b59d7dad75d7d66fa2ad51cd92a14b005a6bc47c7ea948c65901e9bbd711e0045aa803292f77ce9c93ef507fc04707365740563020003602a22f132e60688d667e679018ccfc057080f83c0979fc55ebbcb9cb1fe6bcd48b87ca1a0d5cc02afb5bf047d73093638877bbc2540c46a4d675b6631fe7899d734261d0546c8abebdece60a454e98d897620e7b05c48bd32688143431f468007fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c180007fc04707365740121088ac5243d2d854e84ef3e22b026fa46488ad06804898fad6e701572c00d99dbcc07fc047073657403210b48e11e0f393023028edc637b815b5ff9a892eebedc86b4268c1df424cdece24a010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001aaa0650053b5f349098de466df98745828581f599d319435e9a0fe5688c9e172b923e19227c3dabc2c93ebfdda8ab2356b3be0206da127d8bb5ee29b3b072b8e1538d61adc674b7644fd432e6c8022bdf2a36d44498ea18cd4bdbc309c8c85ea2d60fdfdc3cd3b5a7229a20fa50d9c9ca6c828fc511954bb3dbc8f71fb8ba29529fae86f2d5bc3ceb73bc78f3b0ea5e9a2fb3899a52ebd12ac133183ae52835e2968c82b773929167671adc5cc9dd1f14da825069f2a7693b35c37b2479f204222237c918f7255333c0b8c20086b72a165422b2ca54aa29862c4003412a4eb025e2ed2630edb498b6c85d7dcbd64e4124f5dde0d765103c807efca4e9133ab012ff2e38c1742434d4574a6723f812e15e6373fa66fb3a6e73becd87e3296316f7a4b1c8977f8981400c49cc757e77ef47b196159b1e71902c867b5d42447b6d67e9454b467bc951c31b3e3b92d52abff5a1ae5e475744db99f2041716696264a0727e548b9fadf7551ee05fcac0c2753d16a9649275e6d525a86013b06b72c3a2941149a35c8e2491ba10bc1053f6ebb739cb069865718f2cb6d0ac691ca2895738bd36edbd93b91828f152cd9f3078d7ea7236035a369963516f9a64d0c11deb9056011f2e3a75c2be6988b040790efa5c68c8aca0691135d26e3f2817d26163331e055d6582c37224f7f7922ccc13d2d15b762aa32d88b0456a3a5af6d54a08f85d5e91294d3abdb2bf7cc7f40e37320c22a277991841bdce126820ad7f951877c23c42f8b4c1e1dcf0d6e8ec95efb97b5868f90ec92ab2ac7d2916f15b1662bb55eca4c0788cc56cbc642fca878eb39191634827eb9533584f5e39a8116dd2c4969653067e6954e6b84870bcedc88bdbbdc03219c181c74e2d666537abd372a181ee950a2723c9631dd360e004362cd9b5d711aed5329d26413c3b7b0bf702c16c2f918811bfa4eeeb02de12888f439a35cb499f805769b8a6ddfd2c142b8a171f19046fe621a9977136a4012beba8f1887a9b304290d5c10d2162dd47510f707d8449b8216e5afce2ce580a1c2803ac11b14522f2ade7600ce9d3c90b174f589a5058feada9571068e45b5e8c59ac8e06462794d316b9b137724fea8b2a89900725cc93c98922104381bb16ca2bbbedb582ed66d78f8f3dbac2ffd30c2e19155beca0de138178b2bef1e75fe2b8aea942262b086a11aeeed9e539c624a217b2a0efb5c2a5e9bfb2103249780e16842ccce4d883e5c5a5a0efe6aeb00516069ece5d2284c82a7ba647150f2c6bff3affc53ba4842b6808fc89cfe1108250f029ed0b9dd4500aec695b87143acb8cc30198ca1769ac92e6a4b4bf8ceaf6d89e054502e4606211cf81994957a5ff93414195fecc39d3a5b01414feabed764a238a4171a9e2c14a07ca94c456fc5fd6fe2f4ac93474c2080b0aed891458531f0f7eceb93a58ef36891fc9dcf92726663a307c06626bd6bedc830de8cbf5e778803d3e18bace5a00210c1ec5c8f17792bc394b5099076a24093478f1c879179cc26c13f555852e6b9d1958ab240d9ddd3fafc3bedf8a9e3a9a06add5966f2801140a7d763b77d04842ac7f01554a530aca6b01923e63664297c10668bed361642c9493a0c61bb40aa40e36d496926ca04c6b7424b553accf5f99883c1637cfdd44bb1b4f61e8d990d00118c11d70401ea3654873010427b45c7a7d13390d7cb276b74e412aaa077f9e279dd6fc052eff12674e46f4e6aac2c52cc4e874ebaacd8bc3b4df4b5744c1389f81c8b3ceed9bd72f012bc9ef5b7ee2429815804070e4491b3d636bb0143ca0361a04d2a87e056144c6abfdf1d60913c0785aa322a39fb0def01ea1c054191ded1e673a1b8cc0432cb5ab527c366988206b969b557425068663933a352a1271a57fd67ff05833dad079d504d4b4d1dfefd59a6c65f04282abb073caa9a3345740c3d2be2a7b6313f3de1263a785179ac52c4799b42e1e192a9f65d602fe7932ea5c79f8da31f624256252479025bec444ad2737e122406a8895b8c01b60c7b8de33614ddc59b620145b281818d8e323439adc8cea0f47f3d5e0e8b5de618ed64802813eac962cfc28afaa3b7a3ce1b0ae23dd3d58d804f6f5c9ca538708050a123fa6277a7f249b1b0813111091a226a700818dfc44682b1dc2c1a6604cd07f1a8eb3555164b3619737ae4234507a887d2fcf119193c2968ebba9d6fc5e15de481ddf9b0e5b59f9d0d1b0ab45b531fbf68225851f01e9471d20ad96726c82be213974b1ad9a6ed2d3d3d69246b7c113dd540029f259aadddcbe7adc34dca7b891f932eb89d1b0587a58862ed8c0143b84b856658013b597e2263745c218786a68dbf84af3d7ec4c43a43b924d31f244ca98e63298a4c48020602c6a562b4a20923d1ea25bc70c25041bcf157d178efc1c67f6bdad9a803cb3e7fe49b23752930dc0f3d1b2e17c4c56a6d33f3dc11410e2a5e7b16fbeb8cffd2cf1bf09d8f8adb7fed905d82bbcc472d71b62c4a2c3595b711ac83caf8f94ce5bdf2463ac741bfa18c9129b99d13e159e60956d83a7d3592dcd5462399c08228f53b1fc5b688cda3a685b3825da25b683c05602900cc6a54ecc53fef65e9a3561c040ea496ef425a7e3fa0eabfccd7eedebfd6cf826c552e4f3898f6718dfa9d4d585534efc038f2380d0c8266df29f977eaf1e5c9cfbb6787fb33cabd7377f5e9620ef30d043a592aaf8162b9db54259b699a351433921bc30820091e0c407af094e299de0b938239d6a1d20c91485f43c8de9c9390f85ff4df3b2270f71f80b2510d02dd0758308990de131d447f1f4e97a1dfd746da7c3a505831fb48c42b59d259ec27772c11e1d48dcef30f7b07d2e530d39ce976560bde47dd16830970ad52f0553cb9fd4d141aec5825d8e00d9861b4ae5ee276990f75087e834ba9c34b5cc3c7c508b14206780dd4fa7576f932e8203d77ad2186f4d5e39ccd7b60dde5f4cbd755ae90887f82c31b5189f0b227525d64a5fafea2fd2afd18660ac249d98116787429085ebc07a6ff3f8d7a56a6b19cd59f9fc14d55fc7fcff39db4016bb1f75f76b13eab255946a28d262b4a2ab5b3d14163d797ead63b7d8f0fbc9832b29701a00d9c06e9ff26fd0fe58127c4311c2249e3611010b54bc02614a926985a90ef4b598f16aa0b3970d5cfc1bef37df67095ec5c2a232bb088edbe1b098a1a59af15ef24e7e58c10f18eb229889ca27b7568cd1deb00ddba7b5573b484f946287cf01dc52a7a2794eefea12c5e53c9bb0efcf777ffaadb5a323106c557ad91c74c65f553b418d2c2fc5f5815e14363d32629f07d2acca30cb73c3d5ecf0905d8666beca889c8ad323af81692dc35db78639cb2323bb40786471fcdbc01d15167f675e18e0f39fae8c690185809eaf43cdee3430016a9c0cf8a8e84e58e38118184e73411010dffa5c5096bb45a183eca54318ecf441684fdb5f73d8313d30d8cb6bb7467f08afea56f237d7074cf76a95d628277caff36fc2f3d01eeecefddef9fcd837ee2ea41db771012a0be1f0caee3733c5c272087b4794ff28892bdd4fd01c377dd7d5b2855b2237f3ba23ac03779be543a23f90966106f66c45dba4668b13e38b99bbcf2915c41404af1067a40eb12d644e3cffdda55cc1ca100ee9cb0cc7862182fcca35025d062af9593debd33ab68b0d77f3bc26223b9cb4b61f9582a9ada12b42958df4e07617c69dfb0fa6a608c13ce96605e37b01cea75691e76d0330a37bd1b0cbcf0a5ef41117e5ae8fccfcf1c8ca45ebf0abc43b53feb396fc04d1c58a88a24dc1c7834dc0c649547c6058bc71ba3e04fb95b6998e9c3df897c30c3780f307b7ef822adbfc5ab5d73502e15dfcdcb6470e30e1300085779d0e1b8d4cbfb8f24b290f17bbb6455f50afceea873c7bbbcd1cb7c8ff428e6d796eda81112d22c9869b5cc76385c453033756a8b7c9b35e4861a79c048f920d9333cdc86e7c3e4eb6fd87ed95f151ca46fa2d3ba5c01a8c6d06fd19c312e8fe24717fc72a116f6c0232a77cfcd9a058a9becbb284ab446538e31305b5dec13b70a81ade8b8a715de39f0b0f19abaaa8addc5aef6b301ae69d61da3291f0033b2e70f4ecc28098a0fe8e3a084a38b0463b136e955be93bdb3cc51d03f3f2399b711f44a007f91d26c05a6f6bf5819cde1da47e07c2dd8c876ac66f6997ca47c75ff2fdfddacd2ab88808249cc502e26e999b52950cbd7a9aa121b53cf053e1dae24166f407237c16972e91ac5eb53590c1c835f38a8d6973e181f72824a4cf2f63003569cc281981976903f532ff0e34cd91de77e1daf503cf24b7fefa34ee82abe1f911373ca98fc33863917ca033c16f369d94fd50364563f37ee3f6f74026ab8a8f32bb1adf96eca5c44600228b646e7725c3ad3aeae0bfaee42011165e014daac80965e448dc1c3bf1af14d30d698d152cdd07ea5420618a42c7cdb0de4d84d84d0accfbbbd283cf15bf862bd15d1381fa3208c830e58a64cb9356cde114b09b0460c6ca112f22dc08d6f8c55235e06590e35bd87c366fbd3ffa0361f5dc4daf15d92bbd563fc292235f0f11fe47bebbd7b6eb1ade414023c767b462f7761cd7650b7f1e239d69e4f802e079f3bed7ced8c60904ea5d4e0c0c05f37e5447bd98cdc92aba7d6414e29d6393989a27440da61ae0c04ec102bb5029d576b7cdd8918cbc0edb3e876d70985e89b60be8da284abc00bde0b4137dc7d5f38fedba9fefa596db6033cf8542922b77b710b0b53ec76945f019553ffa530eb43b4b554f2452d28747288735e3067f69a9eea74f30943b492cd88135b7e57cc8b026a999986dba41858a65253e7c57478a4ce9a4f812c5359a104fd8c7b89bfe6275993c8e90596ff311d76ce93e232178d6da87b54bb853281536832a48e3036c8bbb7897cbe7654390a4031447b019c37f7e95217fc476a2c673f9b93209a546e740a53998f1c1dee909339251c9efa738665bd5ee37515c4fb8bd9cc5df6a32c6d9b82889c2a50eff475f2d7eb64fb1b49f379b5aa8814e718722a9682dd66a06c33ebcd7e0630f2b2a8057d3719a5bcbeabe0df9cdf098fd9981f28c4722636acdcfa596f4ec9947ffc77a4279ef4583ed29cd43414c37366faea951c4c45a0a1703e66120445c5e00ea81a3d821c285a692c5b6f2f6b4212ec29c2956e86255fd4e2bcb955a899d77c9c4fce7aedbf6b380b4ae96d11b49bf48551910576585bb926db6654d3215b8aa79a75ceb698999a1fcf88010732500b42718ded7dd6fe9e5a8f8749272a7f8d9f0303dc308fea662777891fe62bf969f69beef58cd17b8b0251aadee3fabe447c7a46d9bad84fdec3f4409c7623387a55e53afb29046f8d51e13a5e9c8519fc5dd9c24d4076ed71ebee6b036060d25d2881d72f2e69a805cc343bddfed567142f8f25a5a16a727548895dada24492c40198faa4aa19f9b7ab3c5331e034545eb158ce7f0699c0b78856860c01b77841323d7f6727a64a06a8794733be9169ea395560fc7565c00e4ad8fd3fc9b1d4b406ec05b4b3f513a33ee1a017030f5876f3650e25b8e95b628307f5c778feee7c4aae1c0e7595386f9db4da321b9988dd00ff883753d01d71588b8b78b9e5275f401d88a421552659d8200920355a12ae25ccfb3dfde5157a0acabcf9c0405be5d141a8d8014705fbf148720fecd61927408a053c1fcdb17bf8e74bf27ebc5a0f3f8298201a754062250cd83b96c0e1f5a8ba1f35abb200b7a0cac3252e1121a59fbbfa950c087c5f0b5e799008d2bfeaf8a0dfed17aa85f7ab7f21e9cd3fb626c0dae1e757fd348b7ae71287ebc7bb8e7e4aaec6084d653123f92a25c3a224bae30c6ef62a47e0b207fc0470736574056302000361c6c7b117d971ab8ea08d293e58e6d6a2a3eb9da254d77bdf63df2f546772854080178f3327297af527c9dae9641bd9ecb03f0040229e861af0ccb5a8eecc63aa2be8bae5e0a2b0aa2a67241b55c066b9a292248a374ca57460ff6ddb30152207fc047073657407210259ecd61fa2d3d92e1891675409a6bcca5b7f5ab595cc2d78624c2b9b4008627e00010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210963046d7e641e758b9c99a198963b82e92cffa6f9d3a5dcfcd09a800e53d975ab07fc047073657403210a122f4cacf06e67087069a5a5e3476e1c6d65471f4ddd7dec99f4d544e43b41080104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e106033000000000000000174576e01f11e062faa81ee9cfc76d35576c5cbe613e79aa8aba990dba3ec5221f47b5991f763efab437ba49816b8e349d46b83710c429aaecf1a971c47cd0e0600fdb8fccf5a9e94b70cee45bb581685ed4a57e7dc922c5bd52df42749eb15f066d4adf902abc6e770de6c0582fb3493e2e8ceed345b4e7b516c403a41dafae86e282689ea5bb47d49ec73148aba3734fe7c5a8b58c38e89a0b200d76980723c6566e073a91533fbff5750414053c8c8f42e7bedd44481e204ca641f1dae1778903b5aaabce670ad57d359431d957ff2e5468b2322c7537913114ce2197d6eb27b76b65a11a222de4c8eaab2018bb1660a20e2b1676209fd60aa7d6f96fa86a3e6c0126c61bac3a2e5d765bff40548f819f40520e93532836c97e9851c6c23160412ec6bcd82e242879937c15de9fd9a32d6f336f4203d50dc51b84086e652d4d9c0b6d18df1a95a4ec11902bde2071a048ec9797bc6e147ddc08f35ed54d8f3983c5a215d94019eb84c5dd388b22aa01c052468e020794b3534f94a80bd4cf3c93549bff617a84f249bf5c7427a77339dcac7065551311baeca5634e9a7eb1381a4db0930486554e03c43088356e78b56ebce57829231e3554e5757bbbb292e6ed42886fbfe8b595ae51bb67f9bf4186a7185a8d5052747f71f922cc540836a69c6d463372bfc23790255c537a2c9934b52c54deb91c203d0f918210e537311ec3388e8c25c5eda9e8a05b6e46ac493c0d754c34d1211046bd19d9387f9311183443c85847e9b49a9c824991cdb40c8055192b6fc5c7bb2fa624e42d6568c9ddb74b4c7b1e391aee7c32fc5eafe36d24d32ce79d45e93e0468ac124f0192207be0f74b46162df2f6c97aa135870a4736d346898ada658a619b5c209da0bc1f16ac956572d2fa5c3d4f1874575e3b8b2412210dd9811185790b5336a32688fbd84c0121c74e3a8736c6b6ec15ddeb986c30a2a0a1582381ea0077fc1cea3276f52913f07fa0afce04da78bb2c5c5a47eb3b75574892db21c8863c5375e169b95dee1f4766f8ebd799890e383d3979018ce2e5c516ad4d81ae42bf2e153432efa3ac907a8700bb1e7b0db2957261a1f08afe65eef9c066aa5efbcedcc2b08a188ad97bca147b809ae5f73fa70acf9697336b9e91f5b40f960cb77e2a583adefee7c1163167b5dac16eb5d4c628f386aecedfaf867a6dc3a9881ed6e754d104fccab23487abb34b9302f17c35df5b35693000879f2efb70eea95d2eff36024071fecdb52bbdddafc38c7ca1ff9a494a61c7afab91b5b1b45061d451386e7a6818c7dfbecc4fb5a731aea43e8a0a158484e7025111358ba9a148a8cde72eff8cd06dca9982733d8dab3a62a92b086949c81d39f988c004bf07009954f1d1ac7058000c894f12fb268baa2a37cee07f6adadcbef3ccdf37478a7067555f9c1a1206a949a6de09889687cdaa24af017769dccf0cddc6015d5298fe2341d9773d994188e5621c4e3edfe78ffa0f6a507d39098094a6b6bd53a73ded29201f66ae0895cf81d3eb98423e8e44042ea4ecdb6df1ef35ce83331b23564db9987340cbc1d2dfffe34f9c03860a774dad4569040011e0b34a4a92daf4e594a2b810e2af36d5a3d8960e5d305586ee699f82ae261e8cb7f1c8790e9cda428d37ac9159ac1de405173686c65f663588da7c54f74445feecc461f0d6cec1bca22b0b07e8c148e2f9abfd074a4e6a9863e549e482e7f0d388527f55fabc3cf1c5d3c4e874c3abcec96bde1a8bfdf41caa9f3949d6c254e959a21f2c89550f4736815b3a39dcaad686a62664b9fa7ae26c2546c2d3d67afe9ee28f4281745e30e730d59ee902a1ef84bf3d9d531a02668e7e7c459c20cb75661e024950cbf1f8789b808778c2beb1851babcad98cac09d2336968df5f2fc470f7d34804a3ef7beae24cbe43469b79c9fb89ec2ef50255494240371aa9536f44c4e931f623bfa6b48df6fe05dc21623a42cbfebed5b8ee269d3338be671455a4dcfe7cede3bbb006d266cbf2b185eeb7f6c3c548bba1cc4ea4d6ee73ff8db5f69e8b3113aded43b45a56bcf4b76f897424a9d29d0af23ea516802d9fce186020f7d824fc39eaa0b3a029ec802ee1976fdb57118ffb7037b8e30aee17140edef844b6414b96c3b9e3e8496f2e97555a6f91b8236c935f1f75ea5bc22899631c07b074706b284f29a2de1e4096e7589468f8dbbe437e042427e97fd5b9298bf20b312dbb977d831f15ea9294707f8c800942ec82991cacc65bd0beb9f14dcea44cd1da406b0d0a886056da56c64aec963940c6bdcd7ad689af4de9bac2c41887a569a8a98eca3b4fd40256241e1fd27eeea8efe21cdead1f9aded53659edb70c8f70703aad89ad27d9b48c1f1acbae3aee674c4b18b96eeecdd3610cca845d8cfa1a750da6883fd597636eac8f253080d737900628aea00e25d42f4ab242526febfac3a0692fd46c1500df849cff389a1a8cc7a8388b526227a659a1c2274566bc701a855fcd262e5daa97c5f7e1383cf7cc1c6b4b96fa73913d9f0c62d62eb0a3a4586b9eff5c7ade98f71b24219cbcf9d7d5a5107cf1f66f064ca01cfab012a0c6ac230a504a1664abbea3fafad63212b827de58f6399b22d1240e2a2131f6fce3db3ee566a62a5e65c7a8e36ae7294cd1e76144b6be68a04a290cf6d309624d7fe214bfab2278f0b3930f6e841cdbc748802bb793268646fef4488eb9d6c2fc65f9df934412c556325d93ce8fb1e0b9b4f93bb63038a1f6b42a3a194bc688ce9802b427dc670b12c8399535378b6e25ab858fe06eecee1efbf871122c113667b56b8d75e826c8401a62395d87e362c261925f11e82ff0c7fa8c04aa469346e33650cc8d519d4283ad143992dd826dfff1aa16782110898412871e9cdf1fd7de02918ab8833cd270f57cada656cc5a693bbf3a94534fc2392c69179ad5004d93a848a00ef862fe6b679bd3a80dd512b0288c721ac70a8a0edd00aeb447cac5fae6369572442034c7bc8148a57760bd1c6b97be882b05e76deefa1271cc62141bc0424a41786d3cac951459b2dc7f527ad121527fc68c278bf4fe2e50e179198d390ca7d868eec05979bf0ec8b50963ee8fdc50a4cacb134236432922e7254bbc6f93dea268ee1c8b0bd520b37574cd56d528408f4a93cc5584fd6a88de5b033333965aef8e796f6f140d36998b8ede9067cfd0bdf0f040f30e2db19b6bf8f63b99fef2655327a82d04d1d4eca7f0f6235b71f88041f43fc7ceb416e21ce5eeb2765caa7a38e88e8877c25f26c6b72d9e74eb6e0c3cc3ff4b2971ac6610bf33ff2b7943d0e861a03ad67afffe2ccdb46a509b8bc05f236d1bc403b11cc80ce021ed413cc6a90b24e8710a17960fde0194754816bc9e2031f81851fb2703113fdf8ac3174f75635104ea0fda3d7b1189bc6f52c36ae65b785de16881748c8a0aaa417d48ee62ed1010f676c968e891c60a50c7756cd035926b09c8692f471710dee10c0007f41af36739fb71bf31a7fa47e84a51e2cbe7d26b08f66cc0279b1d2190f39cba9fe626ea2870e34b215954bcfb225038648c763bd90c54204453c370945fad42e6678ac0892cccb7047bf3cdd84e30bb3cea00c4eac0d177e5883503c46ebf0f6e6ceda69d6173c5faf51fa22c6812f2b50861c0250f6068cc24d24147823ec7197846c0c607261d97b655c5336e09b5c94116c13c795dc82807abe76f253075d004085239876c9d5cbfc4e83c93c53b706e873976cd98bff131bf15eac126b32c4b4a3f236923a15ce2030c85658f48c64b88e0f9c9b52e397ea5fd77288d68f6466d24b153032054a6e3522bf32507a49e23c117ca23579ae0e43b899e378bbdb4ece2ff6ef6047c207bb6c498b93e205ae860810de13628a8780518e268bc71806be2b88ec6f55e09a6512e769ee41c141267f8a2facd104ba4d13c08d193a4d833ef27c157be3702d2c89493b69979e3d87b9f1d58e8f75027758674ef5e435506901f6f8e8d7a92f4bab301fce686082de4c7eb351404aeb95bbb67f5e6d49c48b75aeedf228e403ce05198ebbae0be3910f75fe53004956858dbdf1c114531e4e56bb8f1a4f30fd12c43b2fd4efe777e332b3d904cd12c0a4e3ba806ba1f5921f31e747a9f7ab2d6e74508b286f19fdf4cedb2d9c024ccbb225312d111a1ad1422ce575bbc9b11ef3f95f4a94e932e4c61a83bbdaef04fe7d3923cbc33585d70f9f56b7614108613bc2c45d004ccaef88933e8858c99cc76a0529130b5689d6ec3b98e5e8ab6b459ccffb4aaa8572fbd6132478948b16436b0d40c4282e01776e29e3cc6c59c721f7db1f2d95a841739f7ef6e8dbaa855d5ec4118620f3142b77b1e4d875c0859108e1ac8869c2287d89444742322dede4dd9e3c33a8c94849697331e5dca318ea52ae9ec82052bd44550183316f98c969e675bb156067e1457e9563b695e432cfa6f8696edbb6747c1ceaa0f117640b65648f513a32aa61339d525e22d69669e12ad51481a57d05c1e14a063abe28e7a553f7026872c4d03c60ddbaac68d87aa6c119fb3dd199ca41e8203ce70df141322a84fb9440b607ca0a9e9c749827d248d8a7e6c39122aa5ac9cab1bde157782df4759fb2a7c212b446c6e0810a6c764548f6b6ff6122cefbe28eb6cbff31c105be7b7460643514ed3e6a193af8e6c922f4023364836fdefbedd318511361a557e91ada4b01c37e9a3327ab945d4a74d6479036acbb2e9d66d26da1bd1576b91e5dff434d2f3d0ab5fe71e2b7f933ac2f1e7d7b060a4bc0c74cef07a2ccb5f653079068e136c05ab648405fb33e02a8e81b99067b7390a070b0f9ffea757e594ca74b2573a18a0071cd6fec1ad1363ce2bbfb22c0d726d85ef97190d78da059fef82bbd7a30d8af24753b04944a3df892e828f3987887b75b74280e2afa4b044cedd5b562631b38686e444e816982f067fffbe531b7eafc558a5f0fe9c1284b1ac761949aa5c30b8364b67b39b9ae609c96394ad498932468c7056859eb2181b862b8ecb06860310d1b03f90bfa9141e9f2586511f8ac1419bfd8fee5bd5dc71b28929ac4a081345d4d1d07fa250fbbe462ae85321b8c2f76c216819b6332cb0207e19c2dcdd9f0b60f4cc0ab362e70fb664dc82b20e22b7e288b2030cd8afa524f4418cf72caa4dbd6952203f6332dbadcb6d79767f1f84f6bed8270e226d71ef7e0cfb40420a71de3bb7d2e03f67f179b6c4c8737bbbac4383bf126515d4ff69f3f44b32428ccb0c4b380e767c6b12e312d90bcceb0af867b86148e7d901b11c86e17a6a14ff5827524e5a4d0393652afd5868e46f88b9eae01fc57f7831a4b32e4033684d04c080ed235b61a0d9931a4031b3c6426a686d9e3f6018f2704c0e2ed2e7450f7b9409733ccc401fcad4e267c3c5a920cd68ce0ae67e89839a114810944be8ca1c0d424d2d3b71ba35981c35fde767135e040f8096af7783464f6736dbfbab1659bc0be5a6a67c00ec6a3e6c06391c86821803bc8ccb07b9b344f0ff0069028b1e19cf18a7e435b2df7aeb4b1481a1c368eb4cec8dd3a2086cd7231a5de66fd9455cdfab33e6e26df87f47fa723b27bdcf1874a54fdc84fee1653970cf201eb9abe74354a69a6fc64eef26a61f7032ad1007ea73500c682d9ce7c7be465c36d4bcb20b16b43c360ad10f2beb560af416e5112490d897adb55f9f29c6de83e9ba6bd950f95b43e695babe4e9b82e1d624264ec892ae957a695ab4d9ffdd451b6a3457d12a24e5c4156784ec374eac5efcfd546117ad7df4c71ebbb564eca79e104cec2efe4c58ac2f6dfc98c734ae465906d8b35fe0ce51bc078d8e0a0871e41d4f94bed5079f531de07cd8a70d5c06407fc04707365740563020003da6edf1e8bf899691b41223060079d69880b070ab79eb9af0da27ec2dbb26f1ac3f5d5f5acadd763ee2ad37d7febda0a9d35228cae98d105c0d9a06f789a437a972eaa1b0bf760d307189dcde671540540f65f396371530b98da0cc2bd80f06707fc04707365740721036ab94c3698f2d9101431fd6cf1498ad212e1d8ddfb1f62e1f8b1da084ae0a4ee00 \ No newline at end of file diff --git a/examples/test_vector/raw_blind/extracted_tx.hex b/examples/test_vector/raw_blind/extracted_tx.hex new file mode 100644 index 00000000..9846d4a5 --- /dev/null +++ b/examples/test_vector/raw_blind/extracted_tx.hex @@ -0,0 +1 @@ +020000000102cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae0000000000ffffffffcbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae0100000000ffffffff040b5041a0285b003a640f3b4dc68b6c4b62180aa2089d21a8e8adeb6b4c94ce653f0896b0978a97e9dcfc549d4c0766f96a30b5749429ffd7bc7c65ca398be0f739c302b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c18220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d930b48e11e0f393023028edc637b815b5ff9a892eebedc86b4268c1df424cdece24a088ac5243d2d854e84ef3e22b026fa46488ad06804898fad6e701572c00d99dbcc0259ecd61fa2d3d92e1891675409a6bcca5b7f5ab595cc2d78624c2b9b4008627e22002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84501230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20100000000000001f400000a122f4cacf06e67087069a5a5e3476e1c6d65471f4ddd7dec99f4d544e43b41080963046d7e641e758b9c99a198963b82e92cffa6f9d3a5dcfcd09a800e53d975ab036ab94c3698f2d9101431fd6cf1498ad212e1d8ddfb1f62e1f8b1da084ae0a4ee220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d00000000000002473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801210334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe700000002473044022017c696503f5e1539fe5cb8dd05f793bd3b6e39f193028a7299a80c94c817a02d022007889009088f46cd9d9f4d137815704170410f53d503b68c1e020292a85b93fa012103df8f51c053ba0dfb443cce9793b6dc3339ffb0ce97af4792dade3aae1eb890f60063020003602a22f132e60688d667e679018ccfc057080f83c0979fc55ebbcb9cb1fe6bcd48b87ca1a0d5cc02afb5bf047d73093638877bbc2540c46a4d675b6631fe7899d734261d0546c8abebdece60a454e98d897620e7b05c48bd32688143431f4680fd4e1060330000000000000001b29b120154f0ecdb5c958a583268cb5ba8ed4090923754acb737109daa54387297418cf90e7bd527ecf58199d72edf35884040de821dd33b76eed8332b413d74be524c5206db330a298adf1c4b78cf2eb042da7525d4f552ab747c9fa5fd94f9247a23a7034ba8c9fe88604a0c9a4d53d6e50c9b122525b1de47d63a84c7a71b74ffd17dfc28ed0de6bd1f4a7f25c12649fdb0826c35ae61598f07536fbb7ffdbfe7b37e7f40a5115f9db2db739adc5a4c3e3eddb94704bfb344b31cb485f422bcffefc57e1b19861b988ceda2c4869059a4f0d079ad506a0e009a5fab815dd1e6274d90d5b4444fc5e03196adb515a9d7a7b24f790cb08ee1b69fed7673ec57916f116423616152d21b5ed2f3cc395789b63d7545287d6fc3c0850461223437b3abb5f3160a1df4b5e9ca607188869bc0c0402106e3628d301cc63b81da58e52328c267c1a2c4e541047c113e9af1f6d87a501035fcfe6a45972be255f8499956ad8163d54f6947a8c6d4f092be90337a81b84ad4f5b02f63d24f010500df02ad19567d9db0f4f440ad44f566fa2ef996417b4d01cd49120b0f2d09a836ac58a933a776cc473fd89e5a0038b288fc43f8e654f5db3709161183bc5162cc19f535650238cb0d08230e640c5eceaf7e90ed3114b49ce7728851c0490367e6a9815cfd4297d7ca02410768a7a8bb9b3bacd2c0ac548aef0adcf22d5af5dc62c52f5e2eab73d59b0b25c690d34e5b218b29459cc571edd1f70d4045ee0737730f319086bf0969bf90e4ae4120b835d9097317113f5cd09eb7c366d77db6d66989a49be0302fca77b2104cccb4dded82c1467f8d8ef2cb946742d211648aa56d20a9c7d5352865ab62ec4fa29573d98aa9bc5c7c29e3d645c2c8e7f932b8f5a01093ccb7eefcf9cbec64527a01ab05c6ee05eba9ca72cabd260a09657e51f3f0bd4d8688ab22b0a171bb5d42ffa1b7ecc0a6e3c7ce2fbf13c658fff175a5f696778c4b73a0aa5af50dddcfcfc2825a6b6cb558ef1d1defba6585c84ad0a1c115b1b3bb593efac60851d41d1cfd3fb8b9c01af0ca0ca56b6d721411498c6e5e6d6b1291eae4bc805df3676cca5abba5460bf5d15c2f0b4b64f08bb8c05101742ab44157b950ac6b6dfb45070479edd7f3bfd111dd6ba8126e5f74b4055131952cef93b8ad8ee71cd950cc5cceb302ef31cdc4d0449f08dfd6d03360b44e066b01862ef2711e507548b55431e7a1c8078a1b4b4a35677a30604b08494da40b973a395e035631ab3f2f8ee545017acf20c5cc326b9ddf0f9357a664877fab6417247b06321119a690dfed33267e710a14d4073092a06a23e5d0e8b1ca8887ea35ffabfa592beb5ff17bd735eb3e9e100ea5515ef012b70fe3401296c626b671f5db940b16b11f5bf71c70e239c40b59499227d87ab1338df258ea85e169dd5c689c3debfddfe4b0a969263ec6b78236425b849be2974b414f90383b96e375e3cfede78075ba596e70338394165492acf9b2719204051e8ee702db80bf19d6bf8ecc067069c6c3db97025bcaee797d6f14649940fc9ec41a52efcac6d616f899f9b8b5ef1656a4a37f77e6b7e160d9853f86862ebd2a58d8c409b8e131026d2d198fc9ac64e3aa6a80c88de9eea8d1fe98d8352cd4e54c3e3d6e615622c2206e53a8e3e6034f29f709d3e3e4f7ea2452cf07c1da37bac31b898b4de31783bd157b5579ab8bb54b423f188c7c6077e875d97005b85248c44abd4d7262bfacf1a3dbba15f8b8f34c669fad480d3ddaf33cdac41fe3384d0f22eb5c8a22732b1cb64425e1c29e6946993b4a0951e1ddfb029465e938f1247afceb7c9470a3d49822d04fafa416aa85a13c0fe24246f5efcc4a9f92fb540a913cf36146090ffea1d2e7daffa97f3c2f5fc957687b185d0eae884f3add3deaeaff0521f8b36f198c73cb2ae565939bc2757c2b6ee92f2daa6d71b6615d62791b2843c1f28b5aad01cf1e7487a22cce770541cf9037aeab14a5fb69074878713d302c9fe062414ab2e2791b95fa885869139eccabbe689a8e29b313e955aedc0d39cfaabde980fef30862dfc74adf7152eed97437deb3404b18446232b4245310b2b3451450f5198cad691ff1738c38588d18726e4336fd0308671bdbc969858c6f996ffe9edd8b4a1a3c3cd0c8fb9379f1ca93c4c2e26be3f2c124eea83e978210714010b3d4f0e4f89b661fa4409010978ebd5688df3ad21ee5446d5918d1a4b8469e3439b2065fb17eeb2436c9d397fd9a29df1cf61b2a84b89945a6a725b3e952e2947d6774c61c2bfe5d7e0c6d9bc33c6247beac1c597b2bc703d4bcbda20e8662f9b5e06769398e67a13f941ff8de5fbae1c8fa380af44b8801b6e46208e1831e475c818cd9bc5de00d757914a7aa6909a4772d71a26f6bd0ab5def2f6a5dfd8905e733c5ba75315f321e7989ae3217f622f600c701dec3a4dd20405b61f2044e56b134e3c870545ace18a9308ea90b42473b383eb0122e5c549a079e7ae4b40aa7ce4a4d1bc39dcd16ed12cecb564c22a3b2e13a32445f8dbdd8a49fbf66ccb9957cc855b98d5939e2da361d24b4f6e1517f94e21ba58ef423d0e2b40d508ede3b1fa384c3b8c3f1bc010f6a1b46731a57605e4df1b4e2179a0f33fc39f3f99201ead3ef61fdfd6b804df5af79d106190414c6af55bcf477e13ae81e368eda1425107bb15eb6fb9e429598fbb37ce45658f775c7257df73ad3e8b00c18ffe15e110cbd369aae6623f3af5b3de9d6f8373fabbcb1965870fb3b9a02e9bea7d0b05d820293fc11421efcd56fdbd14ba263dc520f4f818165ba043e7e55e754254dea35f92c39fb760b1da5ebe85cc7223b24e226c94d103a0987367bd67c6f19aabf02b3e5c5fbfd286e5fc6c66271b5a6f78ecb81dfa751468716e8aa509b84c8dc99e9cf00150eae5b20beaa0265642c5d1dc772b4ecbb12f4f9e94228d3cd10d459f983d92dabb922ad46b61dd42b2cb764a8629faa384be6bd4294451f93dc8b204f02da065fe4c8c244628a6b7e93054e132b3ff60d4bf3fd4ae11102ef1068e0727ea167c9f68b0badeae01fcf9584303d3ef7c08065fce5dd07f32176f00e283fca015ac95634429f82eea91007d6fe094662015bb5ee1c42faec7540cb213ba9940e6524e226ddd732e332159060db57a062e4cd75379b8a599f2a13bf9fa4262abd0c4f630a2e018bfbb440730080d50f061bdd0764ada6aa4067283ad3bee83b44389004c3a32188ae466b697af2d054baf662af14a7425bd8f79eccc15b9ab5e8382db099ae464a91a08f5bde4c72679aecad9dd24095f78d1c6aecbdf8394e9df640e2c5353a4a6ed4b610efe5784bcf1124272df951e29d7ed0793e66c83c8ded88c698eea1562b5cda7ec181ce42ebbb4dc4b6dd2bac267e2e4820512183639506bb6780ea89bd46bbe18f29c4a6e50f14bc54342f854292362561f579af9086ea5189d4ffd0135ee60c265309a5185090493f0f09039053347adb9bc08b631579be7c6fa8058da829e50c508894a3e805f98f938d06c72ade1fc6a4d442f34424ef17d606ac11ba78f83dac0227e89a8fe56e7d014114a5b6931c31ca087747c133f4ddea0199118b97535c4a12c61e9233544baf6764aaf2766a0258666e125c0655afca230218aca719ee18be27ec2cb82c4cc6e92956eb149ffff22d2d638300f91531da3bcac124ac1f77e9696bea00c5383ff10eddbb4a29626bfae2f2255d7c0c28ea57cbffac5ed5b16055cb9c872016137e4d4c9741c78f11b9086be903850090e6fcfe684a6ccdf8d24971884808cdaed9e2617a1e1b017dd1f3547f3c2a5193540d08270cfc5575f316a31b507223f43f9432fd14ad3135fa8352f857c04aa28e2509674b526aed79006d444f09777b74db6e7a5a1cda55ec53ddfb58ee18fa22fd95e3dabd9206c1d0055a952c42cda88e627572fa51f7eae7577fd6f5055294607ad59f28c22dc40762fa0aecfb80567f55d73d8dd8354d598cc0904a9435cc61998f2ddb18e4e967d104ef028918c3df893a2ffc63be160c415606662e027b00560682dc9272327778d75556ee31472a014b86ebc7b61b2b0f5ab34d0e69853e72e11545a287fc09729ad72d29f99abffa60db06f143636836a8be4d3e952fdf683b99bc2b20ceef4ae15b261f7b0aedc3d3ac8c7db86a7e13945171615539d046db00e14b8a5665cde7a3d2537bf1b9f18becde00fd9044d8c5bc583e0e71c904b3885a8117e44d29b23d93d920ef05b65559584f95b1d9869da1e374cc5797256970d8c322f0a6e6e6564192057930775ab6cc37a161f8701f8c7f8039199afbca8ce293292e0f438e201ce02f877529bb888cbff71c5549e57676ffd7bb544dc93c4c98bdeee514838ab9d6f92d2d102b25bdf4d5e264839a7dc1da9d4f8ff96c5e7ee09047b9f0af143a595fd1623fcd36b6ef5f3f2a134585a3b3d9a76585c129b99d46497dfc5893dffb813a77ac38083e1f5c708d52bef0789dde4061a2dbcb467f23da4aacb9a5ad14af9f6e748fd116522f043960c7dac7324402ac6b4c4056c965900e17b747c8e5d97956c1ea338379c5bf418712aa45559f706c38f25469d1145a9ddfcd7f3120ec54230e4726bee345b91b5d0161896a47a473ef4ebe5d1027cda31e3360ffbfb3e89eb5a03cac0e48cbc321159a45cbbf718ebac1111888d09ec1f12c00cc14f7df0db22fea6b1d2d4ef4e3bfd6fed3e406e392bddda0d51e5bc30ad13cf6a93593ab48741e6533574098a91298d96e7331ac097ad2ce8fe4c9b2ae2bbb42c402d2e2f92f480c77e458c022b7dcc39a932ee9b31addf38b85f931044253797b07f8895e4fc85ab4ba1bd4340e4c07613f173f2b3d0e1302b15529ae49a010d97b3359fffe7f34a446d97dbda9764fa67312248d64eef2f3d072d8d520c4150774cdbf7dcfd1687e02b569be714c621be0555ab3242c54f6288b7595620347124d22d20689772eed740d5936aeef07ac0bea1803028af72058ba989669a87d837fa7d63f916b08acc9522314e6c4caad006d4ba7f84f07b33270efa3ab0a1f5e31584c9210a12f5739a585e07e38ab52b9148b4f7960af35bd98c8428e8a1874392bcb6006388fb46758cf52db940326c3a9892a8f87bbec93dd1f0cfa6a851d3378293c3b65517e4baff86d36e0f4ad6f3a197202bb38bed300870a72b58240b2d25393e349ff5ccff20e8e5faa67c4389087a785c27cdbb5f530a8654aae2ceccac6fd779919519ff27df65024566d0ca0577f6bc995076bcefb53eb1a8229cfcc356c08e0bb34a5fc91c8a27c3411fced988fe79f431a26a33220103785c3274cfbe5f44d634c344cf0ce75a195a5ce2810c9f4bd9ba680aa94ad3d0f8a1aa801ff7086cd4af544ff23e1922c4305620f12f5911c4d59b3744b21924f48d3567fe36eac95a1b6f666c14cca4a6b4914a88980c6f0e20f716697a9819e37e0857d716f495db4a0515c02794439e8d86e827cf0ae2ab5c55e7e2b085de3f282b73c4cc71201ae361f845438b6b40e6cf1090f50dcb03a9e21a6b0deda36855c0a7f693ff89e230072bc3fd96e090e814aaeea7357d8187defa4bb5d1f4c967d55604e77e09dcb8e2a1aad5ad3c09bbd4a30169b94c8f4c23ee9995481ce33f90d8b1522e5538ed8a4ca263c897046adb562c7ef82710efcc5b84e495c0c1ba5dfffe2d15b171891eb22150241a501d715d1e166ad89319f461d2e25df167b57dded55e5ef02308280eed3669f85ea33fe77c68107892fc22de3a423bf5985893fabb9172a02b5e3647b59d7dad75d7d66fa2ad51cd92a14b005a6bc47c7ea948c65901e9bbd711e0045aa803292f77ce9c93ef56302000361c6c7b117d971ab8ea08d293e58e6d6a2a3eb9da254d77bdf63df2f546772854080178f3327297af527c9dae9641bd9ecb03f0040229e861af0ccb5a8eecc63aa2be8bae5e0a2b0aa2a67241b55c066b9a292248a374ca57460ff6ddb301522fd4e1060330000000000000001aaa0650053b5f349098de466df98745828581f599d319435e9a0fe5688c9e172b923e19227c3dabc2c93ebfdda8ab2356b3be0206da127d8bb5ee29b3b072b8e1538d61adc674b7644fd432e6c8022bdf2a36d44498ea18cd4bdbc309c8c85ea2d60fdfdc3cd3b5a7229a20fa50d9c9ca6c828fc511954bb3dbc8f71fb8ba29529fae86f2d5bc3ceb73bc78f3b0ea5e9a2fb3899a52ebd12ac133183ae52835e2968c82b773929167671adc5cc9dd1f14da825069f2a7693b35c37b2479f204222237c918f7255333c0b8c20086b72a165422b2ca54aa29862c4003412a4eb025e2ed2630edb498b6c85d7dcbd64e4124f5dde0d765103c807efca4e9133ab012ff2e38c1742434d4574a6723f812e15e6373fa66fb3a6e73becd87e3296316f7a4b1c8977f8981400c49cc757e77ef47b196159b1e71902c867b5d42447b6d67e9454b467bc951c31b3e3b92d52abff5a1ae5e475744db99f2041716696264a0727e548b9fadf7551ee05fcac0c2753d16a9649275e6d525a86013b06b72c3a2941149a35c8e2491ba10bc1053f6ebb739cb069865718f2cb6d0ac691ca2895738bd36edbd93b91828f152cd9f3078d7ea7236035a369963516f9a64d0c11deb9056011f2e3a75c2be6988b040790efa5c68c8aca0691135d26e3f2817d26163331e055d6582c37224f7f7922ccc13d2d15b762aa32d88b0456a3a5af6d54a08f85d5e91294d3abdb2bf7cc7f40e37320c22a277991841bdce126820ad7f951877c23c42f8b4c1e1dcf0d6e8ec95efb97b5868f90ec92ab2ac7d2916f15b1662bb55eca4c0788cc56cbc642fca878eb39191634827eb9533584f5e39a8116dd2c4969653067e6954e6b84870bcedc88bdbbdc03219c181c74e2d666537abd372a181ee950a2723c9631dd360e004362cd9b5d711aed5329d26413c3b7b0bf702c16c2f918811bfa4eeeb02de12888f439a35cb499f805769b8a6ddfd2c142b8a171f19046fe621a9977136a4012beba8f1887a9b304290d5c10d2162dd47510f707d8449b8216e5afce2ce580a1c2803ac11b14522f2ade7600ce9d3c90b174f589a5058feada9571068e45b5e8c59ac8e06462794d316b9b137724fea8b2a89900725cc93c98922104381bb16ca2bbbedb582ed66d78f8f3dbac2ffd30c2e19155beca0de138178b2bef1e75fe2b8aea942262b086a11aeeed9e539c624a217b2a0efb5c2a5e9bfb2103249780e16842ccce4d883e5c5a5a0efe6aeb00516069ece5d2284c82a7ba647150f2c6bff3affc53ba4842b6808fc89cfe1108250f029ed0b9dd4500aec695b87143acb8cc30198ca1769ac92e6a4b4bf8ceaf6d89e054502e4606211cf81994957a5ff93414195fecc39d3a5b01414feabed764a238a4171a9e2c14a07ca94c456fc5fd6fe2f4ac93474c2080b0aed891458531f0f7eceb93a58ef36891fc9dcf92726663a307c06626bd6bedc830de8cbf5e778803d3e18bace5a00210c1ec5c8f17792bc394b5099076a24093478f1c879179cc26c13f555852e6b9d1958ab240d9ddd3fafc3bedf8a9e3a9a06add5966f2801140a7d763b77d04842ac7f01554a530aca6b01923e63664297c10668bed361642c9493a0c61bb40aa40e36d496926ca04c6b7424b553accf5f99883c1637cfdd44bb1b4f61e8d990d00118c11d70401ea3654873010427b45c7a7d13390d7cb276b74e412aaa077f9e279dd6fc052eff12674e46f4e6aac2c52cc4e874ebaacd8bc3b4df4b5744c1389f81c8b3ceed9bd72f012bc9ef5b7ee2429815804070e4491b3d636bb0143ca0361a04d2a87e056144c6abfdf1d60913c0785aa322a39fb0def01ea1c054191ded1e673a1b8cc0432cb5ab527c366988206b969b557425068663933a352a1271a57fd67ff05833dad079d504d4b4d1dfefd59a6c65f04282abb073caa9a3345740c3d2be2a7b6313f3de1263a785179ac52c4799b42e1e192a9f65d602fe7932ea5c79f8da31f624256252479025bec444ad2737e122406a8895b8c01b60c7b8de33614ddc59b620145b281818d8e323439adc8cea0f47f3d5e0e8b5de618ed64802813eac962cfc28afaa3b7a3ce1b0ae23dd3d58d804f6f5c9ca538708050a123fa6277a7f249b1b0813111091a226a700818dfc44682b1dc2c1a6604cd07f1a8eb3555164b3619737ae4234507a887d2fcf119193c2968ebba9d6fc5e15de481ddf9b0e5b59f9d0d1b0ab45b531fbf68225851f01e9471d20ad96726c82be213974b1ad9a6ed2d3d3d69246b7c113dd540029f259aadddcbe7adc34dca7b891f932eb89d1b0587a58862ed8c0143b84b856658013b597e2263745c218786a68dbf84af3d7ec4c43a43b924d31f244ca98e63298a4c48020602c6a562b4a20923d1ea25bc70c25041bcf157d178efc1c67f6bdad9a803cb3e7fe49b23752930dc0f3d1b2e17c4c56a6d33f3dc11410e2a5e7b16fbeb8cffd2cf1bf09d8f8adb7fed905d82bbcc472d71b62c4a2c3595b711ac83caf8f94ce5bdf2463ac741bfa18c9129b99d13e159e60956d83a7d3592dcd5462399c08228f53b1fc5b688cda3a685b3825da25b683c05602900cc6a54ecc53fef65e9a3561c040ea496ef425a7e3fa0eabfccd7eedebfd6cf826c552e4f3898f6718dfa9d4d585534efc038f2380d0c8266df29f977eaf1e5c9cfbb6787fb33cabd7377f5e9620ef30d043a592aaf8162b9db54259b699a351433921bc30820091e0c407af094e299de0b938239d6a1d20c91485f43c8de9c9390f85ff4df3b2270f71f80b2510d02dd0758308990de131d447f1f4e97a1dfd746da7c3a505831fb48c42b59d259ec27772c11e1d48dcef30f7b07d2e530d39ce976560bde47dd16830970ad52f0553cb9fd4d141aec5825d8e00d9861b4ae5ee276990f75087e834ba9c34b5cc3c7c508b14206780dd4fa7576f932e8203d77ad2186f4d5e39ccd7b60dde5f4cbd755ae90887f82c31b5189f0b227525d64a5fafea2fd2afd18660ac249d98116787429085ebc07a6ff3f8d7a56a6b19cd59f9fc14d55fc7fcff39db4016bb1f75f76b13eab255946a28d262b4a2ab5b3d14163d797ead63b7d8f0fbc9832b29701a00d9c06e9ff26fd0fe58127c4311c2249e3611010b54bc02614a926985a90ef4b598f16aa0b3970d5cfc1bef37df67095ec5c2a232bb088edbe1b098a1a59af15ef24e7e58c10f18eb229889ca27b7568cd1deb00ddba7b5573b484f946287cf01dc52a7a2794eefea12c5e53c9bb0efcf777ffaadb5a323106c557ad91c74c65f553b418d2c2fc5f5815e14363d32629f07d2acca30cb73c3d5ecf0905d8666beca889c8ad323af81692dc35db78639cb2323bb40786471fcdbc01d15167f675e18e0f39fae8c690185809eaf43cdee3430016a9c0cf8a8e84e58e38118184e73411010dffa5c5096bb45a183eca54318ecf441684fdb5f73d8313d30d8cb6bb7467f08afea56f237d7074cf76a95d628277caff36fc2f3d01eeecefddef9fcd837ee2ea41db771012a0be1f0caee3733c5c272087b4794ff28892bdd4fd01c377dd7d5b2855b2237f3ba23ac03779be543a23f90966106f66c45dba4668b13e38b99bbcf2915c41404af1067a40eb12d644e3cffdda55cc1ca100ee9cb0cc7862182fcca35025d062af9593debd33ab68b0d77f3bc26223b9cb4b61f9582a9ada12b42958df4e07617c69dfb0fa6a608c13ce96605e37b01cea75691e76d0330a37bd1b0cbcf0a5ef41117e5ae8fccfcf1c8ca45ebf0abc43b53feb396fc04d1c58a88a24dc1c7834dc0c649547c6058bc71ba3e04fb95b6998e9c3df897c30c3780f307b7ef822adbfc5ab5d73502e15dfcdcb6470e30e1300085779d0e1b8d4cbfb8f24b290f17bbb6455f50afceea873c7bbbcd1cb7c8ff428e6d796eda81112d22c9869b5cc76385c453033756a8b7c9b35e4861a79c048f920d9333cdc86e7c3e4eb6fd87ed95f151ca46fa2d3ba5c01a8c6d06fd19c312e8fe24717fc72a116f6c0232a77cfcd9a058a9becbb284ab446538e31305b5dec13b70a81ade8b8a715de39f0b0f19abaaa8addc5aef6b301ae69d61da3291f0033b2e70f4ecc28098a0fe8e3a084a38b0463b136e955be93bdb3cc51d03f3f2399b711f44a007f91d26c05a6f6bf5819cde1da47e07c2dd8c876ac66f6997ca47c75ff2fdfddacd2ab88808249cc502e26e999b52950cbd7a9aa121b53cf053e1dae24166f407237c16972e91ac5eb53590c1c835f38a8d6973e181f72824a4cf2f63003569cc281981976903f532ff0e34cd91de77e1daf503cf24b7fefa34ee82abe1f911373ca98fc33863917ca033c16f369d94fd50364563f37ee3f6f74026ab8a8f32bb1adf96eca5c44600228b646e7725c3ad3aeae0bfaee42011165e014daac80965e448dc1c3bf1af14d30d698d152cdd07ea5420618a42c7cdb0de4d84d84d0accfbbbd283cf15bf862bd15d1381fa3208c830e58a64cb9356cde114b09b0460c6ca112f22dc08d6f8c55235e06590e35bd87c366fbd3ffa0361f5dc4daf15d92bbd563fc292235f0f11fe47bebbd7b6eb1ade414023c767b462f7761cd7650b7f1e239d69e4f802e079f3bed7ced8c60904ea5d4e0c0c05f37e5447bd98cdc92aba7d6414e29d6393989a27440da61ae0c04ec102bb5029d576b7cdd8918cbc0edb3e876d70985e89b60be8da284abc00bde0b4137dc7d5f38fedba9fefa596db6033cf8542922b77b710b0b53ec76945f019553ffa530eb43b4b554f2452d28747288735e3067f69a9eea74f30943b492cd88135b7e57cc8b026a999986dba41858a65253e7c57478a4ce9a4f812c5359a104fd8c7b89bfe6275993c8e90596ff311d76ce93e232178d6da87b54bb853281536832a48e3036c8bbb7897cbe7654390a4031447b019c37f7e95217fc476a2c673f9b93209a546e740a53998f1c1dee909339251c9efa738665bd5ee37515c4fb8bd9cc5df6a32c6d9b82889c2a50eff475f2d7eb64fb1b49f379b5aa8814e718722a9682dd66a06c33ebcd7e0630f2b2a8057d3719a5bcbeabe0df9cdf098fd9981f28c4722636acdcfa596f4ec9947ffc77a4279ef4583ed29cd43414c37366faea951c4c45a0a1703e66120445c5e00ea81a3d821c285a692c5b6f2f6b4212ec29c2956e86255fd4e2bcb955a899d77c9c4fce7aedbf6b380b4ae96d11b49bf48551910576585bb926db6654d3215b8aa79a75ceb698999a1fcf88010732500b42718ded7dd6fe9e5a8f8749272a7f8d9f0303dc308fea662777891fe62bf969f69beef58cd17b8b0251aadee3fabe447c7a46d9bad84fdec3f4409c7623387a55e53afb29046f8d51e13a5e9c8519fc5dd9c24d4076ed71ebee6b036060d25d2881d72f2e69a805cc343bddfed567142f8f25a5a16a727548895dada24492c40198faa4aa19f9b7ab3c5331e034545eb158ce7f0699c0b78856860c01b77841323d7f6727a64a06a8794733be9169ea395560fc7565c00e4ad8fd3fc9b1d4b406ec05b4b3f513a33ee1a017030f5876f3650e25b8e95b628307f5c778feee7c4aae1c0e7595386f9db4da321b9988dd00ff883753d01d71588b8b78b9e5275f401d88a421552659d8200920355a12ae25ccfb3dfde5157a0acabcf9c0405be5d141a8d8014705fbf148720fecd61927408a053c1fcdb17bf8e74bf27ebc5a0f3f8298201a754062250cd83b96c0e1f5a8ba1f35abb200b7a0cac3252e1121a59fbbfa950c087c5f0b5e799008d2bfeaf8a0dfed17aa85f7ab7f21e9cd3fb626c0dae1e757fd348b7ae71287ebc7bb8e7e4aaec6084d653123f92a25c3a224bae30c6ef62a47e0b2000063020003da6edf1e8bf899691b41223060079d69880b070ab79eb9af0da27ec2dbb26f1ac3f5d5f5acadd763ee2ad37d7febda0a9d35228cae98d105c0d9a06f789a437a972eaa1b0bf760d307189dcde671540540f65f396371530b98da0cc2bd80f067fd4e106033000000000000000174576e01f11e062faa81ee9cfc76d35576c5cbe613e79aa8aba990dba3ec5221f47b5991f763efab437ba49816b8e349d46b83710c429aaecf1a971c47cd0e0600fdb8fccf5a9e94b70cee45bb581685ed4a57e7dc922c5bd52df42749eb15f066d4adf902abc6e770de6c0582fb3493e2e8ceed345b4e7b516c403a41dafae86e282689ea5bb47d49ec73148aba3734fe7c5a8b58c38e89a0b200d76980723c6566e073a91533fbff5750414053c8c8f42e7bedd44481e204ca641f1dae1778903b5aaabce670ad57d359431d957ff2e5468b2322c7537913114ce2197d6eb27b76b65a11a222de4c8eaab2018bb1660a20e2b1676209fd60aa7d6f96fa86a3e6c0126c61bac3a2e5d765bff40548f819f40520e93532836c97e9851c6c23160412ec6bcd82e242879937c15de9fd9a32d6f336f4203d50dc51b84086e652d4d9c0b6d18df1a95a4ec11902bde2071a048ec9797bc6e147ddc08f35ed54d8f3983c5a215d94019eb84c5dd388b22aa01c052468e020794b3534f94a80bd4cf3c93549bff617a84f249bf5c7427a77339dcac7065551311baeca5634e9a7eb1381a4db0930486554e03c43088356e78b56ebce57829231e3554e5757bbbb292e6ed42886fbfe8b595ae51bb67f9bf4186a7185a8d5052747f71f922cc540836a69c6d463372bfc23790255c537a2c9934b52c54deb91c203d0f918210e537311ec3388e8c25c5eda9e8a05b6e46ac493c0d754c34d1211046bd19d9387f9311183443c85847e9b49a9c824991cdb40c8055192b6fc5c7bb2fa624e42d6568c9ddb74b4c7b1e391aee7c32fc5eafe36d24d32ce79d45e93e0468ac124f0192207be0f74b46162df2f6c97aa135870a4736d346898ada658a619b5c209da0bc1f16ac956572d2fa5c3d4f1874575e3b8b2412210dd9811185790b5336a32688fbd84c0121c74e3a8736c6b6ec15ddeb986c30a2a0a1582381ea0077fc1cea3276f52913f07fa0afce04da78bb2c5c5a47eb3b75574892db21c8863c5375e169b95dee1f4766f8ebd799890e383d3979018ce2e5c516ad4d81ae42bf2e153432efa3ac907a8700bb1e7b0db2957261a1f08afe65eef9c066aa5efbcedcc2b08a188ad97bca147b809ae5f73fa70acf9697336b9e91f5b40f960cb77e2a583adefee7c1163167b5dac16eb5d4c628f386aecedfaf867a6dc3a9881ed6e754d104fccab23487abb34b9302f17c35df5b35693000879f2efb70eea95d2eff36024071fecdb52bbdddafc38c7ca1ff9a494a61c7afab91b5b1b45061d451386e7a6818c7dfbecc4fb5a731aea43e8a0a158484e7025111358ba9a148a8cde72eff8cd06dca9982733d8dab3a62a92b086949c81d39f988c004bf07009954f1d1ac7058000c894f12fb268baa2a37cee07f6adadcbef3ccdf37478a7067555f9c1a1206a949a6de09889687cdaa24af017769dccf0cddc6015d5298fe2341d9773d994188e5621c4e3edfe78ffa0f6a507d39098094a6b6bd53a73ded29201f66ae0895cf81d3eb98423e8e44042ea4ecdb6df1ef35ce83331b23564db9987340cbc1d2dfffe34f9c03860a774dad4569040011e0b34a4a92daf4e594a2b810e2af36d5a3d8960e5d305586ee699f82ae261e8cb7f1c8790e9cda428d37ac9159ac1de405173686c65f663588da7c54f74445feecc461f0d6cec1bca22b0b07e8c148e2f9abfd074a4e6a9863e549e482e7f0d388527f55fabc3cf1c5d3c4e874c3abcec96bde1a8bfdf41caa9f3949d6c254e959a21f2c89550f4736815b3a39dcaad686a62664b9fa7ae26c2546c2d3d67afe9ee28f4281745e30e730d59ee902a1ef84bf3d9d531a02668e7e7c459c20cb75661e024950cbf1f8789b808778c2beb1851babcad98cac09d2336968df5f2fc470f7d34804a3ef7beae24cbe43469b79c9fb89ec2ef50255494240371aa9536f44c4e931f623bfa6b48df6fe05dc21623a42cbfebed5b8ee269d3338be671455a4dcfe7cede3bbb006d266cbf2b185eeb7f6c3c548bba1cc4ea4d6ee73ff8db5f69e8b3113aded43b45a56bcf4b76f897424a9d29d0af23ea516802d9fce186020f7d824fc39eaa0b3a029ec802ee1976fdb57118ffb7037b8e30aee17140edef844b6414b96c3b9e3e8496f2e97555a6f91b8236c935f1f75ea5bc22899631c07b074706b284f29a2de1e4096e7589468f8dbbe437e042427e97fd5b9298bf20b312dbb977d831f15ea9294707f8c800942ec82991cacc65bd0beb9f14dcea44cd1da406b0d0a886056da56c64aec963940c6bdcd7ad689af4de9bac2c41887a569a8a98eca3b4fd40256241e1fd27eeea8efe21cdead1f9aded53659edb70c8f70703aad89ad27d9b48c1f1acbae3aee674c4b18b96eeecdd3610cca845d8cfa1a750da6883fd597636eac8f253080d737900628aea00e25d42f4ab242526febfac3a0692fd46c1500df849cff389a1a8cc7a8388b526227a659a1c2274566bc701a855fcd262e5daa97c5f7e1383cf7cc1c6b4b96fa73913d9f0c62d62eb0a3a4586b9eff5c7ade98f71b24219cbcf9d7d5a5107cf1f66f064ca01cfab012a0c6ac230a504a1664abbea3fafad63212b827de58f6399b22d1240e2a2131f6fce3db3ee566a62a5e65c7a8e36ae7294cd1e76144b6be68a04a290cf6d309624d7fe214bfab2278f0b3930f6e841cdbc748802bb793268646fef4488eb9d6c2fc65f9df934412c556325d93ce8fb1e0b9b4f93bb63038a1f6b42a3a194bc688ce9802b427dc670b12c8399535378b6e25ab858fe06eecee1efbf871122c113667b56b8d75e826c8401a62395d87e362c261925f11e82ff0c7fa8c04aa469346e33650cc8d519d4283ad143992dd826dfff1aa16782110898412871e9cdf1fd7de02918ab8833cd270f57cada656cc5a693bbf3a94534fc2392c69179ad5004d93a848a00ef862fe6b679bd3a80dd512b0288c721ac70a8a0edd00aeb447cac5fae6369572442034c7bc8148a57760bd1c6b97be882b05e76deefa1271cc62141bc0424a41786d3cac951459b2dc7f527ad121527fc68c278bf4fe2e50e179198d390ca7d868eec05979bf0ec8b50963ee8fdc50a4cacb134236432922e7254bbc6f93dea268ee1c8b0bd520b37574cd56d528408f4a93cc5584fd6a88de5b033333965aef8e796f6f140d36998b8ede9067cfd0bdf0f040f30e2db19b6bf8f63b99fef2655327a82d04d1d4eca7f0f6235b71f88041f43fc7ceb416e21ce5eeb2765caa7a38e88e8877c25f26c6b72d9e74eb6e0c3cc3ff4b2971ac6610bf33ff2b7943d0e861a03ad67afffe2ccdb46a509b8bc05f236d1bc403b11cc80ce021ed413cc6a90b24e8710a17960fde0194754816bc9e2031f81851fb2703113fdf8ac3174f75635104ea0fda3d7b1189bc6f52c36ae65b785de16881748c8a0aaa417d48ee62ed1010f676c968e891c60a50c7756cd035926b09c8692f471710dee10c0007f41af36739fb71bf31a7fa47e84a51e2cbe7d26b08f66cc0279b1d2190f39cba9fe626ea2870e34b215954bcfb225038648c763bd90c54204453c370945fad42e6678ac0892cccb7047bf3cdd84e30bb3cea00c4eac0d177e5883503c46ebf0f6e6ceda69d6173c5faf51fa22c6812f2b50861c0250f6068cc24d24147823ec7197846c0c607261d97b655c5336e09b5c94116c13c795dc82807abe76f253075d004085239876c9d5cbfc4e83c93c53b706e873976cd98bff131bf15eac126b32c4b4a3f236923a15ce2030c85658f48c64b88e0f9c9b52e397ea5fd77288d68f6466d24b153032054a6e3522bf32507a49e23c117ca23579ae0e43b899e378bbdb4ece2ff6ef6047c207bb6c498b93e205ae860810de13628a8780518e268bc71806be2b88ec6f55e09a6512e769ee41c141267f8a2facd104ba4d13c08d193a4d833ef27c157be3702d2c89493b69979e3d87b9f1d58e8f75027758674ef5e435506901f6f8e8d7a92f4bab301fce686082de4c7eb351404aeb95bbb67f5e6d49c48b75aeedf228e403ce05198ebbae0be3910f75fe53004956858dbdf1c114531e4e56bb8f1a4f30fd12c43b2fd4efe777e332b3d904cd12c0a4e3ba806ba1f5921f31e747a9f7ab2d6e74508b286f19fdf4cedb2d9c024ccbb225312d111a1ad1422ce575bbc9b11ef3f95f4a94e932e4c61a83bbdaef04fe7d3923cbc33585d70f9f56b7614108613bc2c45d004ccaef88933e8858c99cc76a0529130b5689d6ec3b98e5e8ab6b459ccffb4aaa8572fbd6132478948b16436b0d40c4282e01776e29e3cc6c59c721f7db1f2d95a841739f7ef6e8dbaa855d5ec4118620f3142b77b1e4d875c0859108e1ac8869c2287d89444742322dede4dd9e3c33a8c94849697331e5dca318ea52ae9ec82052bd44550183316f98c969e675bb156067e1457e9563b695e432cfa6f8696edbb6747c1ceaa0f117640b65648f513a32aa61339d525e22d69669e12ad51481a57d05c1e14a063abe28e7a553f7026872c4d03c60ddbaac68d87aa6c119fb3dd199ca41e8203ce70df141322a84fb9440b607ca0a9e9c749827d248d8a7e6c39122aa5ac9cab1bde157782df4759fb2a7c212b446c6e0810a6c764548f6b6ff6122cefbe28eb6cbff31c105be7b7460643514ed3e6a193af8e6c922f4023364836fdefbedd318511361a557e91ada4b01c37e9a3327ab945d4a74d6479036acbb2e9d66d26da1bd1576b91e5dff434d2f3d0ab5fe71e2b7f933ac2f1e7d7b060a4bc0c74cef07a2ccb5f653079068e136c05ab648405fb33e02a8e81b99067b7390a070b0f9ffea757e594ca74b2573a18a0071cd6fec1ad1363ce2bbfb22c0d726d85ef97190d78da059fef82bbd7a30d8af24753b04944a3df892e828f3987887b75b74280e2afa4b044cedd5b562631b38686e444e816982f067fffbe531b7eafc558a5f0fe9c1284b1ac761949aa5c30b8364b67b39b9ae609c96394ad498932468c7056859eb2181b862b8ecb06860310d1b03f90bfa9141e9f2586511f8ac1419bfd8fee5bd5dc71b28929ac4a081345d4d1d07fa250fbbe462ae85321b8c2f76c216819b6332cb0207e19c2dcdd9f0b60f4cc0ab362e70fb664dc82b20e22b7e288b2030cd8afa524f4418cf72caa4dbd6952203f6332dbadcb6d79767f1f84f6bed8270e226d71ef7e0cfb40420a71de3bb7d2e03f67f179b6c4c8737bbbac4383bf126515d4ff69f3f44b32428ccb0c4b380e767c6b12e312d90bcceb0af867b86148e7d901b11c86e17a6a14ff5827524e5a4d0393652afd5868e46f88b9eae01fc57f7831a4b32e4033684d04c080ed235b61a0d9931a4031b3c6426a686d9e3f6018f2704c0e2ed2e7450f7b9409733ccc401fcad4e267c3c5a920cd68ce0ae67e89839a114810944be8ca1c0d424d2d3b71ba35981c35fde767135e040f8096af7783464f6736dbfbab1659bc0be5a6a67c00ec6a3e6c06391c86821803bc8ccb07b9b344f0ff0069028b1e19cf18a7e435b2df7aeb4b1481a1c368eb4cec8dd3a2086cd7231a5de66fd9455cdfab33e6e26df87f47fa723b27bdcf1874a54fdc84fee1653970cf201eb9abe74354a69a6fc64eef26a61f7032ad1007ea73500c682d9ce7c7be465c36d4bcb20b16b43c360ad10f2beb560af416e5112490d897adb55f9f29c6de83e9ba6bd950f95b43e695babe4e9b82e1d624264ec892ae957a695ab4d9ffdd451b6a3457d12a24e5c4156784ec374eac5efcfd546117ad7df4c71ebbb564eca79e104cec2efe4c58ac2f6dfc98c734ae465906d8b35fe0ce51bc078d8e0a0871e41d4f94bed5079f531de07cd8a70d5c064 \ No newline at end of file diff --git a/examples/test_vector/raw_blind/finalized.hex b/examples/test_vector/raw_blind/finalized.hex new file mode 100644 index 00000000..a45ee45e --- /dev/null +++ b/examples/test_vector/raw_blind/finalized.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010401fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c01086b02473044022040d1802d6e10da4c27f05eff807550e614b3d2fa20c663dbf1ebf162d3952689022001f477c953b7c543bce877e3297fccb00ef5dba21d427e79c8bfb8522713309801210334c307ad8142e7c8a6bf1ad3552b12fbb860885ea7f2d76c1f49f93a7c4bbbe7010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b01086b02473044022017c696503f5e1539fe5cb8dd05f793bd3b6e39f193028a7299a80c94c817a02d022007889009088f46cd9d9f4d137815704170410f53d503b68c1e020292a85b93fa012103df8f51c053ba0dfb443cce9793b6dc3339ffb0ce97af4792dade3aae1eb890f6010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc047073657401210896b0978a97e9dcfc549d4c0766f96a30b5749429ffd7bc7c65ca398be0f739c307fc047073657403210b5041a0285b003a640f3b4dc68b6c4b62180aa2089d21a8e8adeb6b4c94ce653f0104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001b29b120154f0ecdb5c958a583268cb5ba8ed4090923754acb737109daa54387297418cf90e7bd527ecf58199d72edf35884040de821dd33b76eed8332b413d74be524c5206db330a298adf1c4b78cf2eb042da7525d4f552ab747c9fa5fd94f9247a23a7034ba8c9fe88604a0c9a4d53d6e50c9b122525b1de47d63a84c7a71b74ffd17dfc28ed0de6bd1f4a7f25c12649fdb0826c35ae61598f07536fbb7ffdbfe7b37e7f40a5115f9db2db739adc5a4c3e3eddb94704bfb344b31cb485f422bcffefc57e1b19861b988ceda2c4869059a4f0d079ad506a0e009a5fab815dd1e6274d90d5b4444fc5e03196adb515a9d7a7b24f790cb08ee1b69fed7673ec57916f116423616152d21b5ed2f3cc395789b63d7545287d6fc3c0850461223437b3abb5f3160a1df4b5e9ca607188869bc0c0402106e3628d301cc63b81da58e52328c267c1a2c4e541047c113e9af1f6d87a501035fcfe6a45972be255f8499956ad8163d54f6947a8c6d4f092be90337a81b84ad4f5b02f63d24f010500df02ad19567d9db0f4f440ad44f566fa2ef996417b4d01cd49120b0f2d09a836ac58a933a776cc473fd89e5a0038b288fc43f8e654f5db3709161183bc5162cc19f535650238cb0d08230e640c5eceaf7e90ed3114b49ce7728851c0490367e6a9815cfd4297d7ca02410768a7a8bb9b3bacd2c0ac548aef0adcf22d5af5dc62c52f5e2eab73d59b0b25c690d34e5b218b29459cc571edd1f70d4045ee0737730f319086bf0969bf90e4ae4120b835d9097317113f5cd09eb7c366d77db6d66989a49be0302fca77b2104cccb4dded82c1467f8d8ef2cb946742d211648aa56d20a9c7d5352865ab62ec4fa29573d98aa9bc5c7c29e3d645c2c8e7f932b8f5a01093ccb7eefcf9cbec64527a01ab05c6ee05eba9ca72cabd260a09657e51f3f0bd4d8688ab22b0a171bb5d42ffa1b7ecc0a6e3c7ce2fbf13c658fff175a5f696778c4b73a0aa5af50dddcfcfc2825a6b6cb558ef1d1defba6585c84ad0a1c115b1b3bb593efac60851d41d1cfd3fb8b9c01af0ca0ca56b6d721411498c6e5e6d6b1291eae4bc805df3676cca5abba5460bf5d15c2f0b4b64f08bb8c05101742ab44157b950ac6b6dfb45070479edd7f3bfd111dd6ba8126e5f74b4055131952cef93b8ad8ee71cd950cc5cceb302ef31cdc4d0449f08dfd6d03360b44e066b01862ef2711e507548b55431e7a1c8078a1b4b4a35677a30604b08494da40b973a395e035631ab3f2f8ee545017acf20c5cc326b9ddf0f9357a664877fab6417247b06321119a690dfed33267e710a14d4073092a06a23e5d0e8b1ca8887ea35ffabfa592beb5ff17bd735eb3e9e100ea5515ef012b70fe3401296c626b671f5db940b16b11f5bf71c70e239c40b59499227d87ab1338df258ea85e169dd5c689c3debfddfe4b0a969263ec6b78236425b849be2974b414f90383b96e375e3cfede78075ba596e70338394165492acf9b2719204051e8ee702db80bf19d6bf8ecc067069c6c3db97025bcaee797d6f14649940fc9ec41a52efcac6d616f899f9b8b5ef1656a4a37f77e6b7e160d9853f86862ebd2a58d8c409b8e131026d2d198fc9ac64e3aa6a80c88de9eea8d1fe98d8352cd4e54c3e3d6e615622c2206e53a8e3e6034f29f709d3e3e4f7ea2452cf07c1da37bac31b898b4de31783bd157b5579ab8bb54b423f188c7c6077e875d97005b85248c44abd4d7262bfacf1a3dbba15f8b8f34c669fad480d3ddaf33cdac41fe3384d0f22eb5c8a22732b1cb64425e1c29e6946993b4a0951e1ddfb029465e938f1247afceb7c9470a3d49822d04fafa416aa85a13c0fe24246f5efcc4a9f92fb540a913cf36146090ffea1d2e7daffa97f3c2f5fc957687b185d0eae884f3add3deaeaff0521f8b36f198c73cb2ae565939bc2757c2b6ee92f2daa6d71b6615d62791b2843c1f28b5aad01cf1e7487a22cce770541cf9037aeab14a5fb69074878713d302c9fe062414ab2e2791b95fa885869139eccabbe689a8e29b313e955aedc0d39cfaabde980fef30862dfc74adf7152eed97437deb3404b18446232b4245310b2b3451450f5198cad691ff1738c38588d18726e4336fd0308671bdbc969858c6f996ffe9edd8b4a1a3c3cd0c8fb9379f1ca93c4c2e26be3f2c124eea83e978210714010b3d4f0e4f89b661fa4409010978ebd5688df3ad21ee5446d5918d1a4b8469e3439b2065fb17eeb2436c9d397fd9a29df1cf61b2a84b89945a6a725b3e952e2947d6774c61c2bfe5d7e0c6d9bc33c6247beac1c597b2bc703d4bcbda20e8662f9b5e06769398e67a13f941ff8de5fbae1c8fa380af44b8801b6e46208e1831e475c818cd9bc5de00d757914a7aa6909a4772d71a26f6bd0ab5def2f6a5dfd8905e733c5ba75315f321e7989ae3217f622f600c701dec3a4dd20405b61f2044e56b134e3c870545ace18a9308ea90b42473b383eb0122e5c549a079e7ae4b40aa7ce4a4d1bc39dcd16ed12cecb564c22a3b2e13a32445f8dbdd8a49fbf66ccb9957cc855b98d5939e2da361d24b4f6e1517f94e21ba58ef423d0e2b40d508ede3b1fa384c3b8c3f1bc010f6a1b46731a57605e4df1b4e2179a0f33fc39f3f99201ead3ef61fdfd6b804df5af79d106190414c6af55bcf477e13ae81e368eda1425107bb15eb6fb9e429598fbb37ce45658f775c7257df73ad3e8b00c18ffe15e110cbd369aae6623f3af5b3de9d6f8373fabbcb1965870fb3b9a02e9bea7d0b05d820293fc11421efcd56fdbd14ba263dc520f4f818165ba043e7e55e754254dea35f92c39fb760b1da5ebe85cc7223b24e226c94d103a0987367bd67c6f19aabf02b3e5c5fbfd286e5fc6c66271b5a6f78ecb81dfa751468716e8aa509b84c8dc99e9cf00150eae5b20beaa0265642c5d1dc772b4ecbb12f4f9e94228d3cd10d459f983d92dabb922ad46b61dd42b2cb764a8629faa384be6bd4294451f93dc8b204f02da065fe4c8c244628a6b7e93054e132b3ff60d4bf3fd4ae11102ef1068e0727ea167c9f68b0badeae01fcf9584303d3ef7c08065fce5dd07f32176f00e283fca015ac95634429f82eea91007d6fe094662015bb5ee1c42faec7540cb213ba9940e6524e226ddd732e332159060db57a062e4cd75379b8a599f2a13bf9fa4262abd0c4f630a2e018bfbb440730080d50f061bdd0764ada6aa4067283ad3bee83b44389004c3a32188ae466b697af2d054baf662af14a7425bd8f79eccc15b9ab5e8382db099ae464a91a08f5bde4c72679aecad9dd24095f78d1c6aecbdf8394e9df640e2c5353a4a6ed4b610efe5784bcf1124272df951e29d7ed0793e66c83c8ded88c698eea1562b5cda7ec181ce42ebbb4dc4b6dd2bac267e2e4820512183639506bb6780ea89bd46bbe18f29c4a6e50f14bc54342f854292362561f579af9086ea5189d4ffd0135ee60c265309a5185090493f0f09039053347adb9bc08b631579be7c6fa8058da829e50c508894a3e805f98f938d06c72ade1fc6a4d442f34424ef17d606ac11ba78f83dac0227e89a8fe56e7d014114a5b6931c31ca087747c133f4ddea0199118b97535c4a12c61e9233544baf6764aaf2766a0258666e125c0655afca230218aca719ee18be27ec2cb82c4cc6e92956eb149ffff22d2d638300f91531da3bcac124ac1f77e9696bea00c5383ff10eddbb4a29626bfae2f2255d7c0c28ea57cbffac5ed5b16055cb9c872016137e4d4c9741c78f11b9086be903850090e6fcfe684a6ccdf8d24971884808cdaed9e2617a1e1b017dd1f3547f3c2a5193540d08270cfc5575f316a31b507223f43f9432fd14ad3135fa8352f857c04aa28e2509674b526aed79006d444f09777b74db6e7a5a1cda55ec53ddfb58ee18fa22fd95e3dabd9206c1d0055a952c42cda88e627572fa51f7eae7577fd6f5055294607ad59f28c22dc40762fa0aecfb80567f55d73d8dd8354d598cc0904a9435cc61998f2ddb18e4e967d104ef028918c3df893a2ffc63be160c415606662e027b00560682dc9272327778d75556ee31472a014b86ebc7b61b2b0f5ab34d0e69853e72e11545a287fc09729ad72d29f99abffa60db06f143636836a8be4d3e952fdf683b99bc2b20ceef4ae15b261f7b0aedc3d3ac8c7db86a7e13945171615539d046db00e14b8a5665cde7a3d2537bf1b9f18becde00fd9044d8c5bc583e0e71c904b3885a8117e44d29b23d93d920ef05b65559584f95b1d9869da1e374cc5797256970d8c322f0a6e6e6564192057930775ab6cc37a161f8701f8c7f8039199afbca8ce293292e0f438e201ce02f877529bb888cbff71c5549e57676ffd7bb544dc93c4c98bdeee514838ab9d6f92d2d102b25bdf4d5e264839a7dc1da9d4f8ff96c5e7ee09047b9f0af143a595fd1623fcd36b6ef5f3f2a134585a3b3d9a76585c129b99d46497dfc5893dffb813a77ac38083e1f5c708d52bef0789dde4061a2dbcb467f23da4aacb9a5ad14af9f6e748fd116522f043960c7dac7324402ac6b4c4056c965900e17b747c8e5d97956c1ea338379c5bf418712aa45559f706c38f25469d1145a9ddfcd7f3120ec54230e4726bee345b91b5d0161896a47a473ef4ebe5d1027cda31e3360ffbfb3e89eb5a03cac0e48cbc321159a45cbbf718ebac1111888d09ec1f12c00cc14f7df0db22fea6b1d2d4ef4e3bfd6fed3e406e392bddda0d51e5bc30ad13cf6a93593ab48741e6533574098a91298d96e7331ac097ad2ce8fe4c9b2ae2bbb42c402d2e2f92f480c77e458c022b7dcc39a932ee9b31addf38b85f931044253797b07f8895e4fc85ab4ba1bd4340e4c07613f173f2b3d0e1302b15529ae49a010d97b3359fffe7f34a446d97dbda9764fa67312248d64eef2f3d072d8d520c4150774cdbf7dcfd1687e02b569be714c621be0555ab3242c54f6288b7595620347124d22d20689772eed740d5936aeef07ac0bea1803028af72058ba989669a87d837fa7d63f916b08acc9522314e6c4caad006d4ba7f84f07b33270efa3ab0a1f5e31584c9210a12f5739a585e07e38ab52b9148b4f7960af35bd98c8428e8a1874392bcb6006388fb46758cf52db940326c3a9892a8f87bbec93dd1f0cfa6a851d3378293c3b65517e4baff86d36e0f4ad6f3a197202bb38bed300870a72b58240b2d25393e349ff5ccff20e8e5faa67c4389087a785c27cdbb5f530a8654aae2ceccac6fd779919519ff27df65024566d0ca0577f6bc995076bcefb53eb1a8229cfcc356c08e0bb34a5fc91c8a27c3411fced988fe79f431a26a33220103785c3274cfbe5f44d634c344cf0ce75a195a5ce2810c9f4bd9ba680aa94ad3d0f8a1aa801ff7086cd4af544ff23e1922c4305620f12f5911c4d59b3744b21924f48d3567fe36eac95a1b6f666c14cca4a6b4914a88980c6f0e20f716697a9819e37e0857d716f495db4a0515c02794439e8d86e827cf0ae2ab5c55e7e2b085de3f282b73c4cc71201ae361f845438b6b40e6cf1090f50dcb03a9e21a6b0deda36855c0a7f693ff89e230072bc3fd96e090e814aaeea7357d8187defa4bb5d1f4c967d55604e77e09dcb8e2a1aad5ad3c09bbd4a30169b94c8f4c23ee9995481ce33f90d8b1522e5538ed8a4ca263c897046adb562c7ef82710efcc5b84e495c0c1ba5dfffe2d15b171891eb22150241a501d715d1e166ad89319f461d2e25df167b57dded55e5ef02308280eed3669f85ea33fe77c68107892fc22de3a423bf5985893fabb9172a02b5e3647b59d7dad75d7d66fa2ad51cd92a14b005a6bc47c7ea948c65901e9bbd711e0045aa803292f77ce9c93ef507fc04707365740563020003602a22f132e60688d667e679018ccfc057080f83c0979fc55ebbcb9cb1fe6bcd48b87ca1a0d5cc02afb5bf047d73093638877bbc2540c46a4d675b6631fe7899d734261d0546c8abebdece60a454e98d897620e7b05c48bd32688143431f468007fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c180007fc04707365740121088ac5243d2d854e84ef3e22b026fa46488ad06804898fad6e701572c00d99dbcc07fc047073657403210b48e11e0f393023028edc637b815b5ff9a892eebedc86b4268c1df424cdece24a010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001aaa0650053b5f349098de466df98745828581f599d319435e9a0fe5688c9e172b923e19227c3dabc2c93ebfdda8ab2356b3be0206da127d8bb5ee29b3b072b8e1538d61adc674b7644fd432e6c8022bdf2a36d44498ea18cd4bdbc309c8c85ea2d60fdfdc3cd3b5a7229a20fa50d9c9ca6c828fc511954bb3dbc8f71fb8ba29529fae86f2d5bc3ceb73bc78f3b0ea5e9a2fb3899a52ebd12ac133183ae52835e2968c82b773929167671adc5cc9dd1f14da825069f2a7693b35c37b2479f204222237c918f7255333c0b8c20086b72a165422b2ca54aa29862c4003412a4eb025e2ed2630edb498b6c85d7dcbd64e4124f5dde0d765103c807efca4e9133ab012ff2e38c1742434d4574a6723f812e15e6373fa66fb3a6e73becd87e3296316f7a4b1c8977f8981400c49cc757e77ef47b196159b1e71902c867b5d42447b6d67e9454b467bc951c31b3e3b92d52abff5a1ae5e475744db99f2041716696264a0727e548b9fadf7551ee05fcac0c2753d16a9649275e6d525a86013b06b72c3a2941149a35c8e2491ba10bc1053f6ebb739cb069865718f2cb6d0ac691ca2895738bd36edbd93b91828f152cd9f3078d7ea7236035a369963516f9a64d0c11deb9056011f2e3a75c2be6988b040790efa5c68c8aca0691135d26e3f2817d26163331e055d6582c37224f7f7922ccc13d2d15b762aa32d88b0456a3a5af6d54a08f85d5e91294d3abdb2bf7cc7f40e37320c22a277991841bdce126820ad7f951877c23c42f8b4c1e1dcf0d6e8ec95efb97b5868f90ec92ab2ac7d2916f15b1662bb55eca4c0788cc56cbc642fca878eb39191634827eb9533584f5e39a8116dd2c4969653067e6954e6b84870bcedc88bdbbdc03219c181c74e2d666537abd372a181ee950a2723c9631dd360e004362cd9b5d711aed5329d26413c3b7b0bf702c16c2f918811bfa4eeeb02de12888f439a35cb499f805769b8a6ddfd2c142b8a171f19046fe621a9977136a4012beba8f1887a9b304290d5c10d2162dd47510f707d8449b8216e5afce2ce580a1c2803ac11b14522f2ade7600ce9d3c90b174f589a5058feada9571068e45b5e8c59ac8e06462794d316b9b137724fea8b2a89900725cc93c98922104381bb16ca2bbbedb582ed66d78f8f3dbac2ffd30c2e19155beca0de138178b2bef1e75fe2b8aea942262b086a11aeeed9e539c624a217b2a0efb5c2a5e9bfb2103249780e16842ccce4d883e5c5a5a0efe6aeb00516069ece5d2284c82a7ba647150f2c6bff3affc53ba4842b6808fc89cfe1108250f029ed0b9dd4500aec695b87143acb8cc30198ca1769ac92e6a4b4bf8ceaf6d89e054502e4606211cf81994957a5ff93414195fecc39d3a5b01414feabed764a238a4171a9e2c14a07ca94c456fc5fd6fe2f4ac93474c2080b0aed891458531f0f7eceb93a58ef36891fc9dcf92726663a307c06626bd6bedc830de8cbf5e778803d3e18bace5a00210c1ec5c8f17792bc394b5099076a24093478f1c879179cc26c13f555852e6b9d1958ab240d9ddd3fafc3bedf8a9e3a9a06add5966f2801140a7d763b77d04842ac7f01554a530aca6b01923e63664297c10668bed361642c9493a0c61bb40aa40e36d496926ca04c6b7424b553accf5f99883c1637cfdd44bb1b4f61e8d990d00118c11d70401ea3654873010427b45c7a7d13390d7cb276b74e412aaa077f9e279dd6fc052eff12674e46f4e6aac2c52cc4e874ebaacd8bc3b4df4b5744c1389f81c8b3ceed9bd72f012bc9ef5b7ee2429815804070e4491b3d636bb0143ca0361a04d2a87e056144c6abfdf1d60913c0785aa322a39fb0def01ea1c054191ded1e673a1b8cc0432cb5ab527c366988206b969b557425068663933a352a1271a57fd67ff05833dad079d504d4b4d1dfefd59a6c65f04282abb073caa9a3345740c3d2be2a7b6313f3de1263a785179ac52c4799b42e1e192a9f65d602fe7932ea5c79f8da31f624256252479025bec444ad2737e122406a8895b8c01b60c7b8de33614ddc59b620145b281818d8e323439adc8cea0f47f3d5e0e8b5de618ed64802813eac962cfc28afaa3b7a3ce1b0ae23dd3d58d804f6f5c9ca538708050a123fa6277a7f249b1b0813111091a226a700818dfc44682b1dc2c1a6604cd07f1a8eb3555164b3619737ae4234507a887d2fcf119193c2968ebba9d6fc5e15de481ddf9b0e5b59f9d0d1b0ab45b531fbf68225851f01e9471d20ad96726c82be213974b1ad9a6ed2d3d3d69246b7c113dd540029f259aadddcbe7adc34dca7b891f932eb89d1b0587a58862ed8c0143b84b856658013b597e2263745c218786a68dbf84af3d7ec4c43a43b924d31f244ca98e63298a4c48020602c6a562b4a20923d1ea25bc70c25041bcf157d178efc1c67f6bdad9a803cb3e7fe49b23752930dc0f3d1b2e17c4c56a6d33f3dc11410e2a5e7b16fbeb8cffd2cf1bf09d8f8adb7fed905d82bbcc472d71b62c4a2c3595b711ac83caf8f94ce5bdf2463ac741bfa18c9129b99d13e159e60956d83a7d3592dcd5462399c08228f53b1fc5b688cda3a685b3825da25b683c05602900cc6a54ecc53fef65e9a3561c040ea496ef425a7e3fa0eabfccd7eedebfd6cf826c552e4f3898f6718dfa9d4d585534efc038f2380d0c8266df29f977eaf1e5c9cfbb6787fb33cabd7377f5e9620ef30d043a592aaf8162b9db54259b699a351433921bc30820091e0c407af094e299de0b938239d6a1d20c91485f43c8de9c9390f85ff4df3b2270f71f80b2510d02dd0758308990de131d447f1f4e97a1dfd746da7c3a505831fb48c42b59d259ec27772c11e1d48dcef30f7b07d2e530d39ce976560bde47dd16830970ad52f0553cb9fd4d141aec5825d8e00d9861b4ae5ee276990f75087e834ba9c34b5cc3c7c508b14206780dd4fa7576f932e8203d77ad2186f4d5e39ccd7b60dde5f4cbd755ae90887f82c31b5189f0b227525d64a5fafea2fd2afd18660ac249d98116787429085ebc07a6ff3f8d7a56a6b19cd59f9fc14d55fc7fcff39db4016bb1f75f76b13eab255946a28d262b4a2ab5b3d14163d797ead63b7d8f0fbc9832b29701a00d9c06e9ff26fd0fe58127c4311c2249e3611010b54bc02614a926985a90ef4b598f16aa0b3970d5cfc1bef37df67095ec5c2a232bb088edbe1b098a1a59af15ef24e7e58c10f18eb229889ca27b7568cd1deb00ddba7b5573b484f946287cf01dc52a7a2794eefea12c5e53c9bb0efcf777ffaadb5a323106c557ad91c74c65f553b418d2c2fc5f5815e14363d32629f07d2acca30cb73c3d5ecf0905d8666beca889c8ad323af81692dc35db78639cb2323bb40786471fcdbc01d15167f675e18e0f39fae8c690185809eaf43cdee3430016a9c0cf8a8e84e58e38118184e73411010dffa5c5096bb45a183eca54318ecf441684fdb5f73d8313d30d8cb6bb7467f08afea56f237d7074cf76a95d628277caff36fc2f3d01eeecefddef9fcd837ee2ea41db771012a0be1f0caee3733c5c272087b4794ff28892bdd4fd01c377dd7d5b2855b2237f3ba23ac03779be543a23f90966106f66c45dba4668b13e38b99bbcf2915c41404af1067a40eb12d644e3cffdda55cc1ca100ee9cb0cc7862182fcca35025d062af9593debd33ab68b0d77f3bc26223b9cb4b61f9582a9ada12b42958df4e07617c69dfb0fa6a608c13ce96605e37b01cea75691e76d0330a37bd1b0cbcf0a5ef41117e5ae8fccfcf1c8ca45ebf0abc43b53feb396fc04d1c58a88a24dc1c7834dc0c649547c6058bc71ba3e04fb95b6998e9c3df897c30c3780f307b7ef822adbfc5ab5d73502e15dfcdcb6470e30e1300085779d0e1b8d4cbfb8f24b290f17bbb6455f50afceea873c7bbbcd1cb7c8ff428e6d796eda81112d22c9869b5cc76385c453033756a8b7c9b35e4861a79c048f920d9333cdc86e7c3e4eb6fd87ed95f151ca46fa2d3ba5c01a8c6d06fd19c312e8fe24717fc72a116f6c0232a77cfcd9a058a9becbb284ab446538e31305b5dec13b70a81ade8b8a715de39f0b0f19abaaa8addc5aef6b301ae69d61da3291f0033b2e70f4ecc28098a0fe8e3a084a38b0463b136e955be93bdb3cc51d03f3f2399b711f44a007f91d26c05a6f6bf5819cde1da47e07c2dd8c876ac66f6997ca47c75ff2fdfddacd2ab88808249cc502e26e999b52950cbd7a9aa121b53cf053e1dae24166f407237c16972e91ac5eb53590c1c835f38a8d6973e181f72824a4cf2f63003569cc281981976903f532ff0e34cd91de77e1daf503cf24b7fefa34ee82abe1f911373ca98fc33863917ca033c16f369d94fd50364563f37ee3f6f74026ab8a8f32bb1adf96eca5c44600228b646e7725c3ad3aeae0bfaee42011165e014daac80965e448dc1c3bf1af14d30d698d152cdd07ea5420618a42c7cdb0de4d84d84d0accfbbbd283cf15bf862bd15d1381fa3208c830e58a64cb9356cde114b09b0460c6ca112f22dc08d6f8c55235e06590e35bd87c366fbd3ffa0361f5dc4daf15d92bbd563fc292235f0f11fe47bebbd7b6eb1ade414023c767b462f7761cd7650b7f1e239d69e4f802e079f3bed7ced8c60904ea5d4e0c0c05f37e5447bd98cdc92aba7d6414e29d6393989a27440da61ae0c04ec102bb5029d576b7cdd8918cbc0edb3e876d70985e89b60be8da284abc00bde0b4137dc7d5f38fedba9fefa596db6033cf8542922b77b710b0b53ec76945f019553ffa530eb43b4b554f2452d28747288735e3067f69a9eea74f30943b492cd88135b7e57cc8b026a999986dba41858a65253e7c57478a4ce9a4f812c5359a104fd8c7b89bfe6275993c8e90596ff311d76ce93e232178d6da87b54bb853281536832a48e3036c8bbb7897cbe7654390a4031447b019c37f7e95217fc476a2c673f9b93209a546e740a53998f1c1dee909339251c9efa738665bd5ee37515c4fb8bd9cc5df6a32c6d9b82889c2a50eff475f2d7eb64fb1b49f379b5aa8814e718722a9682dd66a06c33ebcd7e0630f2b2a8057d3719a5bcbeabe0df9cdf098fd9981f28c4722636acdcfa596f4ec9947ffc77a4279ef4583ed29cd43414c37366faea951c4c45a0a1703e66120445c5e00ea81a3d821c285a692c5b6f2f6b4212ec29c2956e86255fd4e2bcb955a899d77c9c4fce7aedbf6b380b4ae96d11b49bf48551910576585bb926db6654d3215b8aa79a75ceb698999a1fcf88010732500b42718ded7dd6fe9e5a8f8749272a7f8d9f0303dc308fea662777891fe62bf969f69beef58cd17b8b0251aadee3fabe447c7a46d9bad84fdec3f4409c7623387a55e53afb29046f8d51e13a5e9c8519fc5dd9c24d4076ed71ebee6b036060d25d2881d72f2e69a805cc343bddfed567142f8f25a5a16a727548895dada24492c40198faa4aa19f9b7ab3c5331e034545eb158ce7f0699c0b78856860c01b77841323d7f6727a64a06a8794733be9169ea395560fc7565c00e4ad8fd3fc9b1d4b406ec05b4b3f513a33ee1a017030f5876f3650e25b8e95b628307f5c778feee7c4aae1c0e7595386f9db4da321b9988dd00ff883753d01d71588b8b78b9e5275f401d88a421552659d8200920355a12ae25ccfb3dfde5157a0acabcf9c0405be5d141a8d8014705fbf148720fecd61927408a053c1fcdb17bf8e74bf27ebc5a0f3f8298201a754062250cd83b96c0e1f5a8ba1f35abb200b7a0cac3252e1121a59fbbfa950c087c5f0b5e799008d2bfeaf8a0dfed17aa85f7ab7f21e9cd3fb626c0dae1e757fd348b7ae71287ebc7bb8e7e4aaec6084d653123f92a25c3a224bae30c6ef62a47e0b207fc0470736574056302000361c6c7b117d971ab8ea08d293e58e6d6a2a3eb9da254d77bdf63df2f546772854080178f3327297af527c9dae9641bd9ecb03f0040229e861af0ccb5a8eecc63aa2be8bae5e0a2b0aa2a67241b55c066b9a292248a374ca57460ff6ddb30152207fc047073657407210259ecd61fa2d3d92e1891675409a6bcca5b7f5ab595cc2d78624c2b9b4008627e00010308f40100000000000007fc04707365740220230f4f5d4b7c6fa845806ee4f67713459e1b69e8e60fcee2e4940c7a0d5de1b20104000007fc047073657401210963046d7e641e758b9c99a198963b82e92cffa6f9d3a5dcfcd09a800e53d975ab07fc047073657403210a122f4cacf06e67087069a5a5e3476e1c6d65471f4ddd7dec99f4d544e43b41080104220020cd4ed5f0db8c450e8b0be595b6410c1759c19f1f6926279095c83dade9862b6d07fc047073657404fd4e106033000000000000000174576e01f11e062faa81ee9cfc76d35576c5cbe613e79aa8aba990dba3ec5221f47b5991f763efab437ba49816b8e349d46b83710c429aaecf1a971c47cd0e0600fdb8fccf5a9e94b70cee45bb581685ed4a57e7dc922c5bd52df42749eb15f066d4adf902abc6e770de6c0582fb3493e2e8ceed345b4e7b516c403a41dafae86e282689ea5bb47d49ec73148aba3734fe7c5a8b58c38e89a0b200d76980723c6566e073a91533fbff5750414053c8c8f42e7bedd44481e204ca641f1dae1778903b5aaabce670ad57d359431d957ff2e5468b2322c7537913114ce2197d6eb27b76b65a11a222de4c8eaab2018bb1660a20e2b1676209fd60aa7d6f96fa86a3e6c0126c61bac3a2e5d765bff40548f819f40520e93532836c97e9851c6c23160412ec6bcd82e242879937c15de9fd9a32d6f336f4203d50dc51b84086e652d4d9c0b6d18df1a95a4ec11902bde2071a048ec9797bc6e147ddc08f35ed54d8f3983c5a215d94019eb84c5dd388b22aa01c052468e020794b3534f94a80bd4cf3c93549bff617a84f249bf5c7427a77339dcac7065551311baeca5634e9a7eb1381a4db0930486554e03c43088356e78b56ebce57829231e3554e5757bbbb292e6ed42886fbfe8b595ae51bb67f9bf4186a7185a8d5052747f71f922cc540836a69c6d463372bfc23790255c537a2c9934b52c54deb91c203d0f918210e537311ec3388e8c25c5eda9e8a05b6e46ac493c0d754c34d1211046bd19d9387f9311183443c85847e9b49a9c824991cdb40c8055192b6fc5c7bb2fa624e42d6568c9ddb74b4c7b1e391aee7c32fc5eafe36d24d32ce79d45e93e0468ac124f0192207be0f74b46162df2f6c97aa135870a4736d346898ada658a619b5c209da0bc1f16ac956572d2fa5c3d4f1874575e3b8b2412210dd9811185790b5336a32688fbd84c0121c74e3a8736c6b6ec15ddeb986c30a2a0a1582381ea0077fc1cea3276f52913f07fa0afce04da78bb2c5c5a47eb3b75574892db21c8863c5375e169b95dee1f4766f8ebd799890e383d3979018ce2e5c516ad4d81ae42bf2e153432efa3ac907a8700bb1e7b0db2957261a1f08afe65eef9c066aa5efbcedcc2b08a188ad97bca147b809ae5f73fa70acf9697336b9e91f5b40f960cb77e2a583adefee7c1163167b5dac16eb5d4c628f386aecedfaf867a6dc3a9881ed6e754d104fccab23487abb34b9302f17c35df5b35693000879f2efb70eea95d2eff36024071fecdb52bbdddafc38c7ca1ff9a494a61c7afab91b5b1b45061d451386e7a6818c7dfbecc4fb5a731aea43e8a0a158484e7025111358ba9a148a8cde72eff8cd06dca9982733d8dab3a62a92b086949c81d39f988c004bf07009954f1d1ac7058000c894f12fb268baa2a37cee07f6adadcbef3ccdf37478a7067555f9c1a1206a949a6de09889687cdaa24af017769dccf0cddc6015d5298fe2341d9773d994188e5621c4e3edfe78ffa0f6a507d39098094a6b6bd53a73ded29201f66ae0895cf81d3eb98423e8e44042ea4ecdb6df1ef35ce83331b23564db9987340cbc1d2dfffe34f9c03860a774dad4569040011e0b34a4a92daf4e594a2b810e2af36d5a3d8960e5d305586ee699f82ae261e8cb7f1c8790e9cda428d37ac9159ac1de405173686c65f663588da7c54f74445feecc461f0d6cec1bca22b0b07e8c148e2f9abfd074a4e6a9863e549e482e7f0d388527f55fabc3cf1c5d3c4e874c3abcec96bde1a8bfdf41caa9f3949d6c254e959a21f2c89550f4736815b3a39dcaad686a62664b9fa7ae26c2546c2d3d67afe9ee28f4281745e30e730d59ee902a1ef84bf3d9d531a02668e7e7c459c20cb75661e024950cbf1f8789b808778c2beb1851babcad98cac09d2336968df5f2fc470f7d34804a3ef7beae24cbe43469b79c9fb89ec2ef50255494240371aa9536f44c4e931f623bfa6b48df6fe05dc21623a42cbfebed5b8ee269d3338be671455a4dcfe7cede3bbb006d266cbf2b185eeb7f6c3c548bba1cc4ea4d6ee73ff8db5f69e8b3113aded43b45a56bcf4b76f897424a9d29d0af23ea516802d9fce186020f7d824fc39eaa0b3a029ec802ee1976fdb57118ffb7037b8e30aee17140edef844b6414b96c3b9e3e8496f2e97555a6f91b8236c935f1f75ea5bc22899631c07b074706b284f29a2de1e4096e7589468f8dbbe437e042427e97fd5b9298bf20b312dbb977d831f15ea9294707f8c800942ec82991cacc65bd0beb9f14dcea44cd1da406b0d0a886056da56c64aec963940c6bdcd7ad689af4de9bac2c41887a569a8a98eca3b4fd40256241e1fd27eeea8efe21cdead1f9aded53659edb70c8f70703aad89ad27d9b48c1f1acbae3aee674c4b18b96eeecdd3610cca845d8cfa1a750da6883fd597636eac8f253080d737900628aea00e25d42f4ab242526febfac3a0692fd46c1500df849cff389a1a8cc7a8388b526227a659a1c2274566bc701a855fcd262e5daa97c5f7e1383cf7cc1c6b4b96fa73913d9f0c62d62eb0a3a4586b9eff5c7ade98f71b24219cbcf9d7d5a5107cf1f66f064ca01cfab012a0c6ac230a504a1664abbea3fafad63212b827de58f6399b22d1240e2a2131f6fce3db3ee566a62a5e65c7a8e36ae7294cd1e76144b6be68a04a290cf6d309624d7fe214bfab2278f0b3930f6e841cdbc748802bb793268646fef4488eb9d6c2fc65f9df934412c556325d93ce8fb1e0b9b4f93bb63038a1f6b42a3a194bc688ce9802b427dc670b12c8399535378b6e25ab858fe06eecee1efbf871122c113667b56b8d75e826c8401a62395d87e362c261925f11e82ff0c7fa8c04aa469346e33650cc8d519d4283ad143992dd826dfff1aa16782110898412871e9cdf1fd7de02918ab8833cd270f57cada656cc5a693bbf3a94534fc2392c69179ad5004d93a848a00ef862fe6b679bd3a80dd512b0288c721ac70a8a0edd00aeb447cac5fae6369572442034c7bc8148a57760bd1c6b97be882b05e76deefa1271cc62141bc0424a41786d3cac951459b2dc7f527ad121527fc68c278bf4fe2e50e179198d390ca7d868eec05979bf0ec8b50963ee8fdc50a4cacb134236432922e7254bbc6f93dea268ee1c8b0bd520b37574cd56d528408f4a93cc5584fd6a88de5b033333965aef8e796f6f140d36998b8ede9067cfd0bdf0f040f30e2db19b6bf8f63b99fef2655327a82d04d1d4eca7f0f6235b71f88041f43fc7ceb416e21ce5eeb2765caa7a38e88e8877c25f26c6b72d9e74eb6e0c3cc3ff4b2971ac6610bf33ff2b7943d0e861a03ad67afffe2ccdb46a509b8bc05f236d1bc403b11cc80ce021ed413cc6a90b24e8710a17960fde0194754816bc9e2031f81851fb2703113fdf8ac3174f75635104ea0fda3d7b1189bc6f52c36ae65b785de16881748c8a0aaa417d48ee62ed1010f676c968e891c60a50c7756cd035926b09c8692f471710dee10c0007f41af36739fb71bf31a7fa47e84a51e2cbe7d26b08f66cc0279b1d2190f39cba9fe626ea2870e34b215954bcfb225038648c763bd90c54204453c370945fad42e6678ac0892cccb7047bf3cdd84e30bb3cea00c4eac0d177e5883503c46ebf0f6e6ceda69d6173c5faf51fa22c6812f2b50861c0250f6068cc24d24147823ec7197846c0c607261d97b655c5336e09b5c94116c13c795dc82807abe76f253075d004085239876c9d5cbfc4e83c93c53b706e873976cd98bff131bf15eac126b32c4b4a3f236923a15ce2030c85658f48c64b88e0f9c9b52e397ea5fd77288d68f6466d24b153032054a6e3522bf32507a49e23c117ca23579ae0e43b899e378bbdb4ece2ff6ef6047c207bb6c498b93e205ae860810de13628a8780518e268bc71806be2b88ec6f55e09a6512e769ee41c141267f8a2facd104ba4d13c08d193a4d833ef27c157be3702d2c89493b69979e3d87b9f1d58e8f75027758674ef5e435506901f6f8e8d7a92f4bab301fce686082de4c7eb351404aeb95bbb67f5e6d49c48b75aeedf228e403ce05198ebbae0be3910f75fe53004956858dbdf1c114531e4e56bb8f1a4f30fd12c43b2fd4efe777e332b3d904cd12c0a4e3ba806ba1f5921f31e747a9f7ab2d6e74508b286f19fdf4cedb2d9c024ccbb225312d111a1ad1422ce575bbc9b11ef3f95f4a94e932e4c61a83bbdaef04fe7d3923cbc33585d70f9f56b7614108613bc2c45d004ccaef88933e8858c99cc76a0529130b5689d6ec3b98e5e8ab6b459ccffb4aaa8572fbd6132478948b16436b0d40c4282e01776e29e3cc6c59c721f7db1f2d95a841739f7ef6e8dbaa855d5ec4118620f3142b77b1e4d875c0859108e1ac8869c2287d89444742322dede4dd9e3c33a8c94849697331e5dca318ea52ae9ec82052bd44550183316f98c969e675bb156067e1457e9563b695e432cfa6f8696edbb6747c1ceaa0f117640b65648f513a32aa61339d525e22d69669e12ad51481a57d05c1e14a063abe28e7a553f7026872c4d03c60ddbaac68d87aa6c119fb3dd199ca41e8203ce70df141322a84fb9440b607ca0a9e9c749827d248d8a7e6c39122aa5ac9cab1bde157782df4759fb2a7c212b446c6e0810a6c764548f6b6ff6122cefbe28eb6cbff31c105be7b7460643514ed3e6a193af8e6c922f4023364836fdefbedd318511361a557e91ada4b01c37e9a3327ab945d4a74d6479036acbb2e9d66d26da1bd1576b91e5dff434d2f3d0ab5fe71e2b7f933ac2f1e7d7b060a4bc0c74cef07a2ccb5f653079068e136c05ab648405fb33e02a8e81b99067b7390a070b0f9ffea757e594ca74b2573a18a0071cd6fec1ad1363ce2bbfb22c0d726d85ef97190d78da059fef82bbd7a30d8af24753b04944a3df892e828f3987887b75b74280e2afa4b044cedd5b562631b38686e444e816982f067fffbe531b7eafc558a5f0fe9c1284b1ac761949aa5c30b8364b67b39b9ae609c96394ad498932468c7056859eb2181b862b8ecb06860310d1b03f90bfa9141e9f2586511f8ac1419bfd8fee5bd5dc71b28929ac4a081345d4d1d07fa250fbbe462ae85321b8c2f76c216819b6332cb0207e19c2dcdd9f0b60f4cc0ab362e70fb664dc82b20e22b7e288b2030cd8afa524f4418cf72caa4dbd6952203f6332dbadcb6d79767f1f84f6bed8270e226d71ef7e0cfb40420a71de3bb7d2e03f67f179b6c4c8737bbbac4383bf126515d4ff69f3f44b32428ccb0c4b380e767c6b12e312d90bcceb0af867b86148e7d901b11c86e17a6a14ff5827524e5a4d0393652afd5868e46f88b9eae01fc57f7831a4b32e4033684d04c080ed235b61a0d9931a4031b3c6426a686d9e3f6018f2704c0e2ed2e7450f7b9409733ccc401fcad4e267c3c5a920cd68ce0ae67e89839a114810944be8ca1c0d424d2d3b71ba35981c35fde767135e040f8096af7783464f6736dbfbab1659bc0be5a6a67c00ec6a3e6c06391c86821803bc8ccb07b9b344f0ff0069028b1e19cf18a7e435b2df7aeb4b1481a1c368eb4cec8dd3a2086cd7231a5de66fd9455cdfab33e6e26df87f47fa723b27bdcf1874a54fdc84fee1653970cf201eb9abe74354a69a6fc64eef26a61f7032ad1007ea73500c682d9ce7c7be465c36d4bcb20b16b43c360ad10f2beb560af416e5112490d897adb55f9f29c6de83e9ba6bd950f95b43e695babe4e9b82e1d624264ec892ae957a695ab4d9ffdd451b6a3457d12a24e5c4156784ec374eac5efcfd546117ad7df4c71ebbb564eca79e104cec2efe4c58ac2f6dfc98c734ae465906d8b35fe0ce51bc078d8e0a0871e41d4f94bed5079f531de07cd8a70d5c06407fc04707365740563020003da6edf1e8bf899691b41223060079d69880b070ab79eb9af0da27ec2dbb26f1ac3f5d5f5acadd763ee2ad37d7febda0a9d35228cae98d105c0d9a06f789a437a972eaa1b0bf760d307189dcde671540540f65f396371530b98da0cc2bd80f06707fc04707365740721036ab94c3698f2d9101431fd6cf1498ad212e1d8ddfb1f62e1f8b1da084ae0a4ee00 \ No newline at end of file diff --git a/examples/test_vector/raw_blind/two_inp_two_out.hex b/examples/test_vector/raw_blind/two_inp_two_out.hex new file mode 100644 index 00000000..88c77123 --- /dev/null +++ b/examples/test_vector/raw_blind/two_inp_two_out.hex @@ -0,0 +1 @@ +70736574ff01020402000000010401020105010201fb04020000000001017a0bab8c49f1fce77440be124c72ce22bb23b58c6f52baf4cdde1f656056cd6b96440980610bc88e4ab656c2e5ff6fe6c6a39967a1c0d386682240c5ff039148dc335d03b636cc4beba2967c418a9443e161cd0ac77bec5e44c4bf98e72fc28857abca331600142d2186719dc0c245e7b4a30f17834f371ca7377c010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04000000000001017a0b90df52169792d13db9b7d074d091aaa3e83aff261b1cc19d291441b62e7a03190899a91403ca5cd8bded09945bc99c2f980fd27601cada66833a5f4bc108baf63902e8bed2778bf381d17241be029f228664c7d1522ced55379e275b83fe805b370216001403bb7619d51d2af2c5538d3908ead081a7ef2b2b010e20cbbe4671915035276d8df41a7ef0b6a36dd101de48a4076046fdba3b0bec20ae010f04010000000007fc047073657401210896b0978a97e9dcfc549d4c0766f96a30b5749429ffd7bc7c65ca398be0f739c307fc047073657403210b5041a0285b003a640f3b4dc68b6c4b62180aa2089d21a8e8adeb6b4c94ce653f0104220020c731ad44c00a2928d508ad82b05868cb42733a5b0d0b208f483307ce8c328d9307fc047073657404fd4e1060330000000000000001b29b120154f0ecdb5c958a583268cb5ba8ed4090923754acb737109daa54387297418cf90e7bd527ecf58199d72edf35884040de821dd33b76eed8332b413d74be524c5206db330a298adf1c4b78cf2eb042da7525d4f552ab747c9fa5fd94f9247a23a7034ba8c9fe88604a0c9a4d53d6e50c9b122525b1de47d63a84c7a71b74ffd17dfc28ed0de6bd1f4a7f25c12649fdb0826c35ae61598f07536fbb7ffdbfe7b37e7f40a5115f9db2db739adc5a4c3e3eddb94704bfb344b31cb485f422bcffefc57e1b19861b988ceda2c4869059a4f0d079ad506a0e009a5fab815dd1e6274d90d5b4444fc5e03196adb515a9d7a7b24f790cb08ee1b69fed7673ec57916f116423616152d21b5ed2f3cc395789b63d7545287d6fc3c0850461223437b3abb5f3160a1df4b5e9ca607188869bc0c0402106e3628d301cc63b81da58e52328c267c1a2c4e541047c113e9af1f6d87a501035fcfe6a45972be255f8499956ad8163d54f6947a8c6d4f092be90337a81b84ad4f5b02f63d24f010500df02ad19567d9db0f4f440ad44f566fa2ef996417b4d01cd49120b0f2d09a836ac58a933a776cc473fd89e5a0038b288fc43f8e654f5db3709161183bc5162cc19f535650238cb0d08230e640c5eceaf7e90ed3114b49ce7728851c0490367e6a9815cfd4297d7ca02410768a7a8bb9b3bacd2c0ac548aef0adcf22d5af5dc62c52f5e2eab73d59b0b25c690d34e5b218b29459cc571edd1f70d4045ee0737730f319086bf0969bf90e4ae4120b835d9097317113f5cd09eb7c366d77db6d66989a49be0302fca77b2104cccb4dded82c1467f8d8ef2cb946742d211648aa56d20a9c7d5352865ab62ec4fa29573d98aa9bc5c7c29e3d645c2c8e7f932b8f5a01093ccb7eefcf9cbec64527a01ab05c6ee05eba9ca72cabd260a09657e51f3f0bd4d8688ab22b0a171bb5d42ffa1b7ecc0a6e3c7ce2fbf13c658fff175a5f696778c4b73a0aa5af50dddcfcfc2825a6b6cb558ef1d1defba6585c84ad0a1c115b1b3bb593efac60851d41d1cfd3fb8b9c01af0ca0ca56b6d721411498c6e5e6d6b1291eae4bc805df3676cca5abba5460bf5d15c2f0b4b64f08bb8c05101742ab44157b950ac6b6dfb45070479edd7f3bfd111dd6ba8126e5f74b4055131952cef93b8ad8ee71cd950cc5cceb302ef31cdc4d0449f08dfd6d03360b44e066b01862ef2711e507548b55431e7a1c8078a1b4b4a35677a30604b08494da40b973a395e035631ab3f2f8ee545017acf20c5cc326b9ddf0f9357a664877fab6417247b06321119a690dfed33267e710a14d4073092a06a23e5d0e8b1ca8887ea35ffabfa592beb5ff17bd735eb3e9e100ea5515ef012b70fe3401296c626b671f5db940b16b11f5bf71c70e239c40b59499227d87ab1338df258ea85e169dd5c689c3debfddfe4b0a969263ec6b78236425b849be2974b414f90383b96e375e3cfede78075ba596e70338394165492acf9b2719204051e8ee702db80bf19d6bf8ecc067069c6c3db97025bcaee797d6f14649940fc9ec41a52efcac6d616f899f9b8b5ef1656a4a37f77e6b7e160d9853f86862ebd2a58d8c409b8e131026d2d198fc9ac64e3aa6a80c88de9eea8d1fe98d8352cd4e54c3e3d6e615622c2206e53a8e3e6034f29f709d3e3e4f7ea2452cf07c1da37bac31b898b4de31783bd157b5579ab8bb54b423f188c7c6077e875d97005b85248c44abd4d7262bfacf1a3dbba15f8b8f34c669fad480d3ddaf33cdac41fe3384d0f22eb5c8a22732b1cb64425e1c29e6946993b4a0951e1ddfb029465e938f1247afceb7c9470a3d49822d04fafa416aa85a13c0fe24246f5efcc4a9f92fb540a913cf36146090ffea1d2e7daffa97f3c2f5fc957687b185d0eae884f3add3deaeaff0521f8b36f198c73cb2ae565939bc2757c2b6ee92f2daa6d71b6615d62791b2843c1f28b5aad01cf1e7487a22cce770541cf9037aeab14a5fb69074878713d302c9fe062414ab2e2791b95fa885869139eccabbe689a8e29b313e955aedc0d39cfaabde980fef30862dfc74adf7152eed97437deb3404b18446232b4245310b2b3451450f5198cad691ff1738c38588d18726e4336fd0308671bdbc969858c6f996ffe9edd8b4a1a3c3cd0c8fb9379f1ca93c4c2e26be3f2c124eea83e978210714010b3d4f0e4f89b661fa4409010978ebd5688df3ad21ee5446d5918d1a4b8469e3439b2065fb17eeb2436c9d397fd9a29df1cf61b2a84b89945a6a725b3e952e2947d6774c61c2bfe5d7e0c6d9bc33c6247beac1c597b2bc703d4bcbda20e8662f9b5e06769398e67a13f941ff8de5fbae1c8fa380af44b8801b6e46208e1831e475c818cd9bc5de00d757914a7aa6909a4772d71a26f6bd0ab5def2f6a5dfd8905e733c5ba75315f321e7989ae3217f622f600c701dec3a4dd20405b61f2044e56b134e3c870545ace18a9308ea90b42473b383eb0122e5c549a079e7ae4b40aa7ce4a4d1bc39dcd16ed12cecb564c22a3b2e13a32445f8dbdd8a49fbf66ccb9957cc855b98d5939e2da361d24b4f6e1517f94e21ba58ef423d0e2b40d508ede3b1fa384c3b8c3f1bc010f6a1b46731a57605e4df1b4e2179a0f33fc39f3f99201ead3ef61fdfd6b804df5af79d106190414c6af55bcf477e13ae81e368eda1425107bb15eb6fb9e429598fbb37ce45658f775c7257df73ad3e8b00c18ffe15e110cbd369aae6623f3af5b3de9d6f8373fabbcb1965870fb3b9a02e9bea7d0b05d820293fc11421efcd56fdbd14ba263dc520f4f818165ba043e7e55e754254dea35f92c39fb760b1da5ebe85cc7223b24e226c94d103a0987367bd67c6f19aabf02b3e5c5fbfd286e5fc6c66271b5a6f78ecb81dfa751468716e8aa509b84c8dc99e9cf00150eae5b20beaa0265642c5d1dc772b4ecbb12f4f9e94228d3cd10d459f983d92dabb922ad46b61dd42b2cb764a8629faa384be6bd4294451f93dc8b204f02da065fe4c8c244628a6b7e93054e132b3ff60d4bf3fd4ae11102ef1068e0727ea167c9f68b0badeae01fcf9584303d3ef7c08065fce5dd07f32176f00e283fca015ac95634429f82eea91007d6fe094662015bb5ee1c42faec7540cb213ba9940e6524e226ddd732e332159060db57a062e4cd75379b8a599f2a13bf9fa4262abd0c4f630a2e018bfbb440730080d50f061bdd0764ada6aa4067283ad3bee83b44389004c3a32188ae466b697af2d054baf662af14a7425bd8f79eccc15b9ab5e8382db099ae464a91a08f5bde4c72679aecad9dd24095f78d1c6aecbdf8394e9df640e2c5353a4a6ed4b610efe5784bcf1124272df951e29d7ed0793e66c83c8ded88c698eea1562b5cda7ec181ce42ebbb4dc4b6dd2bac267e2e4820512183639506bb6780ea89bd46bbe18f29c4a6e50f14bc54342f854292362561f579af9086ea5189d4ffd0135ee60c265309a5185090493f0f09039053347adb9bc08b631579be7c6fa8058da829e50c508894a3e805f98f938d06c72ade1fc6a4d442f34424ef17d606ac11ba78f83dac0227e89a8fe56e7d014114a5b6931c31ca087747c133f4ddea0199118b97535c4a12c61e9233544baf6764aaf2766a0258666e125c0655afca230218aca719ee18be27ec2cb82c4cc6e92956eb149ffff22d2d638300f91531da3bcac124ac1f77e9696bea00c5383ff10eddbb4a29626bfae2f2255d7c0c28ea57cbffac5ed5b16055cb9c872016137e4d4c9741c78f11b9086be903850090e6fcfe684a6ccdf8d24971884808cdaed9e2617a1e1b017dd1f3547f3c2a5193540d08270cfc5575f316a31b507223f43f9432fd14ad3135fa8352f857c04aa28e2509674b526aed79006d444f09777b74db6e7a5a1cda55ec53ddfb58ee18fa22fd95e3dabd9206c1d0055a952c42cda88e627572fa51f7eae7577fd6f5055294607ad59f28c22dc40762fa0aecfb80567f55d73d8dd8354d598cc0904a9435cc61998f2ddb18e4e967d104ef028918c3df893a2ffc63be160c415606662e027b00560682dc9272327778d75556ee31472a014b86ebc7b61b2b0f5ab34d0e69853e72e11545a287fc09729ad72d29f99abffa60db06f143636836a8be4d3e952fdf683b99bc2b20ceef4ae15b261f7b0aedc3d3ac8c7db86a7e13945171615539d046db00e14b8a5665cde7a3d2537bf1b9f18becde00fd9044d8c5bc583e0e71c904b3885a8117e44d29b23d93d920ef05b65559584f95b1d9869da1e374cc5797256970d8c322f0a6e6e6564192057930775ab6cc37a161f8701f8c7f8039199afbca8ce293292e0f438e201ce02f877529bb888cbff71c5549e57676ffd7bb544dc93c4c98bdeee514838ab9d6f92d2d102b25bdf4d5e264839a7dc1da9d4f8ff96c5e7ee09047b9f0af143a595fd1623fcd36b6ef5f3f2a134585a3b3d9a76585c129b99d46497dfc5893dffb813a77ac38083e1f5c708d52bef0789dde4061a2dbcb467f23da4aacb9a5ad14af9f6e748fd116522f043960c7dac7324402ac6b4c4056c965900e17b747c8e5d97956c1ea338379c5bf418712aa45559f706c38f25469d1145a9ddfcd7f3120ec54230e4726bee345b91b5d0161896a47a473ef4ebe5d1027cda31e3360ffbfb3e89eb5a03cac0e48cbc321159a45cbbf718ebac1111888d09ec1f12c00cc14f7df0db22fea6b1d2d4ef4e3bfd6fed3e406e392bddda0d51e5bc30ad13cf6a93593ab48741e6533574098a91298d96e7331ac097ad2ce8fe4c9b2ae2bbb42c402d2e2f92f480c77e458c022b7dcc39a932ee9b31addf38b85f931044253797b07f8895e4fc85ab4ba1bd4340e4c07613f173f2b3d0e1302b15529ae49a010d97b3359fffe7f34a446d97dbda9764fa67312248d64eef2f3d072d8d520c4150774cdbf7dcfd1687e02b569be714c621be0555ab3242c54f6288b7595620347124d22d20689772eed740d5936aeef07ac0bea1803028af72058ba989669a87d837fa7d63f916b08acc9522314e6c4caad006d4ba7f84f07b33270efa3ab0a1f5e31584c9210a12f5739a585e07e38ab52b9148b4f7960af35bd98c8428e8a1874392bcb6006388fb46758cf52db940326c3a9892a8f87bbec93dd1f0cfa6a851d3378293c3b65517e4baff86d36e0f4ad6f3a197202bb38bed300870a72b58240b2d25393e349ff5ccff20e8e5faa67c4389087a785c27cdbb5f530a8654aae2ceccac6fd779919519ff27df65024566d0ca0577f6bc995076bcefb53eb1a8229cfcc356c08e0bb34a5fc91c8a27c3411fced988fe79f431a26a33220103785c3274cfbe5f44d634c344cf0ce75a195a5ce2810c9f4bd9ba680aa94ad3d0f8a1aa801ff7086cd4af544ff23e1922c4305620f12f5911c4d59b3744b21924f48d3567fe36eac95a1b6f666c14cca4a6b4914a88980c6f0e20f716697a9819e37e0857d716f495db4a0515c02794439e8d86e827cf0ae2ab5c55e7e2b085de3f282b73c4cc71201ae361f845438b6b40e6cf1090f50dcb03a9e21a6b0deda36855c0a7f693ff89e230072bc3fd96e090e814aaeea7357d8187defa4bb5d1f4c967d55604e77e09dcb8e2a1aad5ad3c09bbd4a30169b94c8f4c23ee9995481ce33f90d8b1522e5538ed8a4ca263c897046adb562c7ef82710efcc5b84e495c0c1ba5dfffe2d15b171891eb22150241a501d715d1e166ad89319f461d2e25df167b57dded55e5ef02308280eed3669f85ea33fe77c68107892fc22de3a423bf5985893fabb9172a02b5e3647b59d7dad75d7d66fa2ad51cd92a14b005a6bc47c7ea948c65901e9bbd711e0045aa803292f77ce9c93ef507fc04707365740563020003602a22f132e60688d667e679018ccfc057080f83c0979fc55ebbcb9cb1fe6bcd48b87ca1a0d5cc02afb5bf047d73093638877bbc2540c46a4d675b6631fe7899d734261d0546c8abebdece60a454e98d897620e7b05c48bd32688143431f468007fc0470736574072102b48422c932e841410f407c557fc46960c5941b10348d433f2899b8b7591a2c180007fc04707365740121088ac5243d2d854e84ef3e22b026fa46488ad06804898fad6e701572c00d99dbcc07fc047073657403210b48e11e0f393023028edc637b815b5ff9a892eebedc86b4268c1df424cdece24a010422002058037c2d81d3122185c8704d4276e2629122c95b8ea68575c451628d37eea84507fc047073657404fd4e1060330000000000000001aaa0650053b5f349098de466df98745828581f599d319435e9a0fe5688c9e172b923e19227c3dabc2c93ebfdda8ab2356b3be0206da127d8bb5ee29b3b072b8e1538d61adc674b7644fd432e6c8022bdf2a36d44498ea18cd4bdbc309c8c85ea2d60fdfdc3cd3b5a7229a20fa50d9c9ca6c828fc511954bb3dbc8f71fb8ba29529fae86f2d5bc3ceb73bc78f3b0ea5e9a2fb3899a52ebd12ac133183ae52835e2968c82b773929167671adc5cc9dd1f14da825069f2a7693b35c37b2479f204222237c918f7255333c0b8c20086b72a165422b2ca54aa29862c4003412a4eb025e2ed2630edb498b6c85d7dcbd64e4124f5dde0d765103c807efca4e9133ab012ff2e38c1742434d4574a6723f812e15e6373fa66fb3a6e73becd87e3296316f7a4b1c8977f8981400c49cc757e77ef47b196159b1e71902c867b5d42447b6d67e9454b467bc951c31b3e3b92d52abff5a1ae5e475744db99f2041716696264a0727e548b9fadf7551ee05fcac0c2753d16a9649275e6d525a86013b06b72c3a2941149a35c8e2491ba10bc1053f6ebb739cb069865718f2cb6d0ac691ca2895738bd36edbd93b91828f152cd9f3078d7ea7236035a369963516f9a64d0c11deb9056011f2e3a75c2be6988b040790efa5c68c8aca0691135d26e3f2817d26163331e055d6582c37224f7f7922ccc13d2d15b762aa32d88b0456a3a5af6d54a08f85d5e91294d3abdb2bf7cc7f40e37320c22a277991841bdce126820ad7f951877c23c42f8b4c1e1dcf0d6e8ec95efb97b5868f90ec92ab2ac7d2916f15b1662bb55eca4c0788cc56cbc642fca878eb39191634827eb9533584f5e39a8116dd2c4969653067e6954e6b84870bcedc88bdbbdc03219c181c74e2d666537abd372a181ee950a2723c9631dd360e004362cd9b5d711aed5329d26413c3b7b0bf702c16c2f918811bfa4eeeb02de12888f439a35cb499f805769b8a6ddfd2c142b8a171f19046fe621a9977136a4012beba8f1887a9b304290d5c10d2162dd47510f707d8449b8216e5afce2ce580a1c2803ac11b14522f2ade7600ce9d3c90b174f589a5058feada9571068e45b5e8c59ac8e06462794d316b9b137724fea8b2a89900725cc93c98922104381bb16ca2bbbedb582ed66d78f8f3dbac2ffd30c2e19155beca0de138178b2bef1e75fe2b8aea942262b086a11aeeed9e539c624a217b2a0efb5c2a5e9bfb2103249780e16842ccce4d883e5c5a5a0efe6aeb00516069ece5d2284c82a7ba647150f2c6bff3affc53ba4842b6808fc89cfe1108250f029ed0b9dd4500aec695b87143acb8cc30198ca1769ac92e6a4b4bf8ceaf6d89e054502e4606211cf81994957a5ff93414195fecc39d3a5b01414feabed764a238a4171a9e2c14a07ca94c456fc5fd6fe2f4ac93474c2080b0aed891458531f0f7eceb93a58ef36891fc9dcf92726663a307c06626bd6bedc830de8cbf5e778803d3e18bace5a00210c1ec5c8f17792bc394b5099076a24093478f1c879179cc26c13f555852e6b9d1958ab240d9ddd3fafc3bedf8a9e3a9a06add5966f2801140a7d763b77d04842ac7f01554a530aca6b01923e63664297c10668bed361642c9493a0c61bb40aa40e36d496926ca04c6b7424b553accf5f99883c1637cfdd44bb1b4f61e8d990d00118c11d70401ea3654873010427b45c7a7d13390d7cb276b74e412aaa077f9e279dd6fc052eff12674e46f4e6aac2c52cc4e874ebaacd8bc3b4df4b5744c1389f81c8b3ceed9bd72f012bc9ef5b7ee2429815804070e4491b3d636bb0143ca0361a04d2a87e056144c6abfdf1d60913c0785aa322a39fb0def01ea1c054191ded1e673a1b8cc0432cb5ab527c366988206b969b557425068663933a352a1271a57fd67ff05833dad079d504d4b4d1dfefd59a6c65f04282abb073caa9a3345740c3d2be2a7b6313f3de1263a785179ac52c4799b42e1e192a9f65d602fe7932ea5c79f8da31f624256252479025bec444ad2737e122406a8895b8c01b60c7b8de33614ddc59b620145b281818d8e323439adc8cea0f47f3d5e0e8b5de618ed64802813eac962cfc28afaa3b7a3ce1b0ae23dd3d58d804f6f5c9ca538708050a123fa6277a7f249b1b0813111091a226a700818dfc44682b1dc2c1a6604cd07f1a8eb3555164b3619737ae4234507a887d2fcf119193c2968ebba9d6fc5e15de481ddf9b0e5b59f9d0d1b0ab45b531fbf68225851f01e9471d20ad96726c82be213974b1ad9a6ed2d3d3d69246b7c113dd540029f259aadddcbe7adc34dca7b891f932eb89d1b0587a58862ed8c0143b84b856658013b597e2263745c218786a68dbf84af3d7ec4c43a43b924d31f244ca98e63298a4c48020602c6a562b4a20923d1ea25bc70c25041bcf157d178efc1c67f6bdad9a803cb3e7fe49b23752930dc0f3d1b2e17c4c56a6d33f3dc11410e2a5e7b16fbeb8cffd2cf1bf09d8f8adb7fed905d82bbcc472d71b62c4a2c3595b711ac83caf8f94ce5bdf2463ac741bfa18c9129b99d13e159e60956d83a7d3592dcd5462399c08228f53b1fc5b688cda3a685b3825da25b683c05602900cc6a54ecc53fef65e9a3561c040ea496ef425a7e3fa0eabfccd7eedebfd6cf826c552e4f3898f6718dfa9d4d585534efc038f2380d0c8266df29f977eaf1e5c9cfbb6787fb33cabd7377f5e9620ef30d043a592aaf8162b9db54259b699a351433921bc30820091e0c407af094e299de0b938239d6a1d20c91485f43c8de9c9390f85ff4df3b2270f71f80b2510d02dd0758308990de131d447f1f4e97a1dfd746da7c3a505831fb48c42b59d259ec27772c11e1d48dcef30f7b07d2e530d39ce976560bde47dd16830970ad52f0553cb9fd4d141aec5825d8e00d9861b4ae5ee276990f75087e834ba9c34b5cc3c7c508b14206780dd4fa7576f932e8203d77ad2186f4d5e39ccd7b60dde5f4cbd755ae90887f82c31b5189f0b227525d64a5fafea2fd2afd18660ac249d98116787429085ebc07a6ff3f8d7a56a6b19cd59f9fc14d55fc7fcff39db4016bb1f75f76b13eab255946a28d262b4a2ab5b3d14163d797ead63b7d8f0fbc9832b29701a00d9c06e9ff26fd0fe58127c4311c2249e3611010b54bc02614a926985a90ef4b598f16aa0b3970d5cfc1bef37df67095ec5c2a232bb088edbe1b098a1a59af15ef24e7e58c10f18eb229889ca27b7568cd1deb00ddba7b5573b484f946287cf01dc52a7a2794eefea12c5e53c9bb0efcf777ffaadb5a323106c557ad91c74c65f553b418d2c2fc5f5815e14363d32629f07d2acca30cb73c3d5ecf0905d8666beca889c8ad323af81692dc35db78639cb2323bb40786471fcdbc01d15167f675e18e0f39fae8c690185809eaf43cdee3430016a9c0cf8a8e84e58e38118184e73411010dffa5c5096bb45a183eca54318ecf441684fdb5f73d8313d30d8cb6bb7467f08afea56f237d7074cf76a95d628277caff36fc2f3d01eeecefddef9fcd837ee2ea41db771012a0be1f0caee3733c5c272087b4794ff28892bdd4fd01c377dd7d5b2855b2237f3ba23ac03779be543a23f90966106f66c45dba4668b13e38b99bbcf2915c41404af1067a40eb12d644e3cffdda55cc1ca100ee9cb0cc7862182fcca35025d062af9593debd33ab68b0d77f3bc26223b9cb4b61f9582a9ada12b42958df4e07617c69dfb0fa6a608c13ce96605e37b01cea75691e76d0330a37bd1b0cbcf0a5ef41117e5ae8fccfcf1c8ca45ebf0abc43b53feb396fc04d1c58a88a24dc1c7834dc0c649547c6058bc71ba3e04fb95b6998e9c3df897c30c3780f307b7ef822adbfc5ab5d73502e15dfcdcb6470e30e1300085779d0e1b8d4cbfb8f24b290f17bbb6455f50afceea873c7bbbcd1cb7c8ff428e6d796eda81112d22c9869b5cc76385c453033756a8b7c9b35e4861a79c048f920d9333cdc86e7c3e4eb6fd87ed95f151ca46fa2d3ba5c01a8c6d06fd19c312e8fe24717fc72a116f6c0232a77cfcd9a058a9becbb284ab446538e31305b5dec13b70a81ade8b8a715de39f0b0f19abaaa8addc5aef6b301ae69d61da3291f0033b2e70f4ecc28098a0fe8e3a084a38b0463b136e955be93bdb3cc51d03f3f2399b711f44a007f91d26c05a6f6bf5819cde1da47e07c2dd8c876ac66f6997ca47c75ff2fdfddacd2ab88808249cc502e26e999b52950cbd7a9aa121b53cf053e1dae24166f407237c16972e91ac5eb53590c1c835f38a8d6973e181f72824a4cf2f63003569cc281981976903f532ff0e34cd91de77e1daf503cf24b7fefa34ee82abe1f911373ca98fc33863917ca033c16f369d94fd50364563f37ee3f6f74026ab8a8f32bb1adf96eca5c44600228b646e7725c3ad3aeae0bfaee42011165e014daac80965e448dc1c3bf1af14d30d698d152cdd07ea5420618a42c7cdb0de4d84d84d0accfbbbd283cf15bf862bd15d1381fa3208c830e58a64cb9356cde114b09b0460c6ca112f22dc08d6f8c55235e06590e35bd87c366fbd3ffa0361f5dc4daf15d92bbd563fc292235f0f11fe47bebbd7b6eb1ade414023c767b462f7761cd7650b7f1e239d69e4f802e079f3bed7ced8c60904ea5d4e0c0c05f37e5447bd98cdc92aba7d6414e29d6393989a27440da61ae0c04ec102bb5029d576b7cdd8918cbc0edb3e876d70985e89b60be8da284abc00bde0b4137dc7d5f38fedba9fefa596db6033cf8542922b77b710b0b53ec76945f019553ffa530eb43b4b554f2452d28747288735e3067f69a9eea74f30943b492cd88135b7e57cc8b026a999986dba41858a65253e7c57478a4ce9a4f812c5359a104fd8c7b89bfe6275993c8e90596ff311d76ce93e232178d6da87b54bb853281536832a48e3036c8bbb7897cbe7654390a4031447b019c37f7e95217fc476a2c673f9b93209a546e740a53998f1c1dee909339251c9efa738665bd5ee37515c4fb8bd9cc5df6a32c6d9b82889c2a50eff475f2d7eb64fb1b49f379b5aa8814e718722a9682dd66a06c33ebcd7e0630f2b2a8057d3719a5bcbeabe0df9cdf098fd9981f28c4722636acdcfa596f4ec9947ffc77a4279ef4583ed29cd43414c37366faea951c4c45a0a1703e66120445c5e00ea81a3d821c285a692c5b6f2f6b4212ec29c2956e86255fd4e2bcb955a899d77c9c4fce7aedbf6b380b4ae96d11b49bf48551910576585bb926db6654d3215b8aa79a75ceb698999a1fcf88010732500b42718ded7dd6fe9e5a8f8749272a7f8d9f0303dc308fea662777891fe62bf969f69beef58cd17b8b0251aadee3fabe447c7a46d9bad84fdec3f4409c7623387a55e53afb29046f8d51e13a5e9c8519fc5dd9c24d4076ed71ebee6b036060d25d2881d72f2e69a805cc343bddfed567142f8f25a5a16a727548895dada24492c40198faa4aa19f9b7ab3c5331e034545eb158ce7f0699c0b78856860c01b77841323d7f6727a64a06a8794733be9169ea395560fc7565c00e4ad8fd3fc9b1d4b406ec05b4b3f513a33ee1a017030f5876f3650e25b8e95b628307f5c778feee7c4aae1c0e7595386f9db4da321b9988dd00ff883753d01d71588b8b78b9e5275f401d88a421552659d8200920355a12ae25ccfb3dfde5157a0acabcf9c0405be5d141a8d8014705fbf148720fecd61927408a053c1fcdb17bf8e74bf27ebc5a0f3f8298201a754062250cd83b96c0e1f5a8ba1f35abb200b7a0cac3252e1121a59fbbfa950c087c5f0b5e799008d2bfeaf8a0dfed17aa85f7ab7f21e9cd3fb626c0dae1e757fd348b7ae71287ebc7bb8e7e4aaec6084d653123f92a25c3a224bae30c6ef62a47e0b207fc0470736574056302000361c6c7b117d971ab8ea08d293e58e6d6a2a3eb9da254d77bdf63df2f546772854080178f3327297af527c9dae9641bd9ecb03f0040229e861af0ccb5a8eecc63aa2be8bae5e0a2b0aa2a67241b55c066b9a292248a374ca57460ff6ddb30152207fc047073657407210259ecd61fa2d3d92e1891675409a6bcca5b7f5ab595cc2d78624c2b9b4008627e00 \ No newline at end of file