Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 11 internal transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
SemaphoreVerifier
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // Part of this file was generated with [snarkJS](https://github.com/iden3/snarkjs). pragma solidity >=0.8.23 <=0.8.28; import {MAX_DEPTH} from "./Constants.sol"; import {SemaphoreVerifierKeyPts} from "./SemaphoreVerifierKeyPts.sol"; contract SemaphoreVerifier { // Scalar field size uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; // Base field size uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; // Verification Key data uint256 constant alphax = 16428432848801857252194528405604668803277877773566238944394625302971855135431; uint256 constant alphay = 16846502678714586896801519656441059708016666274385668027902869494772365009666; uint256 constant betax1 = 3182164110458002340215786955198810119980427837186618912744689678939861918171; uint256 constant betax2 = 16348171800823588416173124589066524623406261996681292662100840445103873053252; uint256 constant betay1 = 4920802715848186258981584729175884379674325733638798907835771393452862684714; uint256 constant betay2 = 19687132236965066906216944365591810874384658708175106803089633851114028275753; uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; // Memory data uint16 constant pVk = 0; uint16 constant pPairing = 128; uint16 constant pLastMem = 896; constructor() { SemaphoreVerifierKeyPts.checkInvariant(MAX_DEPTH); } function verifyProof( uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[4] calldata _pubSignals, uint merkleTreeDepth ) external view returns (bool) { uint[14] memory _vkPoints = SemaphoreVerifierKeyPts.getPts(merkleTreeDepth); assembly { function checkField(v) { if iszero(lt(v, r)) { mstore(0, 0) return(0, 0x20) } } // G1 function to multiply a G1 value(x,y) to value in an address function g1_mulAccC(pR, x, y, s) { let success let mIn := mload(0x40) mstore(mIn, x) mstore(add(mIn, 32), y) mstore(add(mIn, 64), s) // ecMul gas cost is fixed at 6000. Add 33.3% gas for safety buffer. // Last checked in 2024 Oct, evm codename Cancun // ref: https://www.evm.codes/precompiled?fork=cancun#0x07 success := staticcall(8000, 7, mIn, 96, mIn, 64) if iszero(success) { mstore(0, 0) return(0, 0x20) } mstore(add(mIn, 64), mload(pR)) mstore(add(mIn, 96), mload(add(pR, 32))) // ecAdd gas cost is fixed at 150. Add 33.3% gas for safety buffer. // Last checked in 2024 Oct, evm codename Cancun // ref: https://www.evm.codes/precompiled?fork=cancun#0x06 success := staticcall(200, 6, mIn, 128, pR, 64) if iszero(success) { mstore(0, 0) return(0, 0x20) } } function checkPairing(pA, pB, pC, pubSignals, pMem, vkPoints) -> isOk { let _pPairing := add(pMem, pPairing) let _pVk := add(pMem, pVk) mstore(_pVk, mload(add(vkPoints, 128))) mstore(add(_pVk, 32), mload(add(vkPoints, 160))) // Compute the linear combination vk_x g1_mulAccC(_pVk, mload(add(vkPoints, 192)), mload(add(vkPoints, 224)), calldataload(add(pubSignals, 0))) g1_mulAccC( _pVk, mload(add(vkPoints, 256)), mload(add(vkPoints, 288)), calldataload(add(pubSignals, 32)) ) g1_mulAccC( _pVk, mload(add(vkPoints, 320)), mload(add(vkPoints, 352)), calldataload(add(pubSignals, 64)) ) g1_mulAccC( _pVk, mload(add(vkPoints, 384)), mload(add(vkPoints, 416)), calldataload(add(pubSignals, 96)) ) // -A mstore(_pPairing, calldataload(pA)) mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) // B mstore(add(_pPairing, 64), calldataload(pB)) mstore(add(_pPairing, 96), calldataload(add(pB, 32))) mstore(add(_pPairing, 128), calldataload(add(pB, 64))) mstore(add(_pPairing, 160), calldataload(add(pB, 96))) // alpha1 mstore(add(_pPairing, 192), alphax) mstore(add(_pPairing, 224), alphay) // beta2 mstore(add(_pPairing, 256), betax1) mstore(add(_pPairing, 288), betax2) mstore(add(_pPairing, 320), betay1) mstore(add(_pPairing, 352), betay2) // vk_x mstore(add(_pPairing, 384), mload(add(pMem, pVk))) mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) // gamma2 mstore(add(_pPairing, 448), gammax1) mstore(add(_pPairing, 480), gammax2) mstore(add(_pPairing, 512), gammay1) mstore(add(_pPairing, 544), gammay2) // C mstore(add(_pPairing, 576), calldataload(pC)) mstore(add(_pPairing, 608), calldataload(add(pC, 32))) // delta2 mstore(add(_pPairing, 640), mload(vkPoints)) mstore(add(_pPairing, 672), mload(add(vkPoints, 32))) mstore(add(_pPairing, 704), mload(add(vkPoints, 64))) mstore(add(_pPairing, 736), mload(add(vkPoints, 96))) // ecPairing gas cost at 181000 given 768 bytes input. Add 33.3% gas for safety buffer. // Last checked in 2024 Oct, evm codename Cancun // ref: https://www.evm.codes/precompiled?fork=cancun#0x08 let success := staticcall(241333, 8, _pPairing, 768, _pPairing, 0x20) isOk := and(success, mload(_pPairing)) } let pMem := mload(0x40) mstore(0x40, add(pMem, pLastMem)) // Validate that all evaluations ∈ F checkField(calldataload(add(_pubSignals, 0))) checkField(calldataload(add(_pubSignals, 32))) checkField(calldataload(add(_pubSignals, 64))) checkField(calldataload(add(_pubSignals, 96))) checkField(calldataload(add(_pubSignals, 128))) // Validate all evaluations let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem, _vkPoints) mstore(0, isValid) return(0, 0x20) } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.23 <=0.8.28; /// @dev Minimum supported tree depth. uint8 constant MIN_DEPTH = 1; /// @dev Maximum supported tree depth. uint8 constant MAX_DEPTH = 32;
// SPDX-License-Identifier: MIT // Part of this file was generated with [snarkJS](https://github.com/iden3/snarkjs). pragma solidity >=0.8.23 <=0.8.28; library SemaphoreVerifierKeyPts { error Semaphore__VKPtBytesMaxDepthInvariantViolated(uint256 actual, uint256 expected); // Verification Key points. // These values are taken from the verification key json file generated with snarkjs. // It allows to use the same verifier to verify proofs for all the tree depths supported by Semaphore. uint256 private constant SET_SIZE = 14; bytes private constant VK_POINT_BYTES = hex"289691d7705934b5504ae4bd7be283f3465af66f62fc7f1e66f03876b445efdd" hex"22a0bebada6ba60c3e190e9e8c2b1420244a14c9e02868b862c7945667416f9a" hex"036ab5249fee75e0644ed259d45fbbd0142b638e421b948f5dc00cf3ff14a530" hex"1bcf8d4f8bf886d2c7960badc94b3abf6beb4e43571d2b4b0f14928c10e0d594" hex"2d8c51b7fa4ea9ea16765377aaae4ae0a416a89b600fc0b8ec35e9e6e5621976" hex"1f2c636b4954a865946d69fed3ecd2bb60a61af38fa31f2a290ae28915d1f6e1" hex"0b412b14d9dddf3f9031ffb51eb3f73602b9e49cfa9bec4a02ec9c0e3020ccc3" hex"0ae9889ae5f4f6021af9e16dd1f2c445ed863fd6a374b329337f2fef4715350d" hex"07f75b300b401d2435b96459d2b64f6f848411f246d8478199dd2351a35c1b5e" hex"195a26806d907b6d9a9a9c235e09a48e94f8eb8da80f0d40bc4143e3d006e6d2" hex"2d0006337513747c51f8f3e87364d2852113a83e586ef629c88cee6d4cbd422f" hex"257aeaec24103ea15e4592c32d0ad9846ff1a2f3a836e0c19947980912b9006b" hex"294bead7a3378f80183af735f6bc8529ddc73d9e0a35d594dcf93524403c9e3e" hex"0cf84e9163744a9a65520f4b8cbb4ca35c428d1c4a5789e11f42636c6d197473" hex"21f43b1ffa301d565dbc37ef1eb2ef669b8a1876e3754b79657b26fe43c845ce" hex"1e558b2ca618dfa02f0d640fdd45f56492a577154989cd09523829b5e15f2d62" hex"04db437b7b4fa0f6eea95403dd25c6a674b3e81be98ad4532affe8507ec05380" hex"20376c16b97ad98b8dfaa6f10d42a3c5e264c56018d32b0e8af528db157eb60d" hex"234219fd49f941520883c13c1f01ff7b2f7f512a3046f91d33cdc3900ffb9de9" hex"1d754d84438f79e6b701f7d665d59755a7bcd0b63f7c2da94b737606c16de1d3" hex"287a08af195521f756271ec64bdc4ca8a7a95fae892c0fd2cf0c148d6c0cb653" hex"0e16af35936b356d5974b385528f6d9a873568eda614ed0e54be4494c2acdefd" hex"0fae7f745efa5884dc82f1595b5c10d931ed6da07b5dc4bd6f99dd5318c7c2a8" hex"21f41494c6685503d748b45672c65d059260bb205113882458c86f6da7ea3813" hex"1ec11e919c80981c8a905161c48caab360994e8f31cfe88536c5ad8b2c360039" hex"14f32ba1f584bafc3aa283f79d5d65e97a6a280c7c51cec192ee9e48d593a2be" hex"0cec3b3618ebb60152be2987b910940e79a421d666a71764f25ded99159de90f" hex"075a80d650b5c6f8a0b3261ae5ec4c5a1b53762f30c559aaa6c501e207c2514f" hex"026c5d81cf4e6cbade3622323c4ee3b4568333e79504044d2ad4d2ba01abefc5" hex"286bacad6fb92895c85483e837d7c821d3f7bd612ddd932c16d618455ee62a45" hex"11a11b68cb7aa85f42325a3d0fa45e0887719f05c9cd472183b1c7c78eabd0ef" hex"0674f14710e453bc1f9255babc8d2aeb3b2e321c68e6871b54c285e71456be4d" hex"11bf8be1878d5dee6820ec405b079360da81da7b79f29aa54096ae195ea1108d" hex"2a02d0a645dcfcafb2235e7f9ed37df27c3f7cbd5ad11ee831fa17cb36881d3f" hex"1e2338342dcdeec5d3ebd82d4b767ed93989d9147ac711dd07d8aebac0962c20" hex"174c21361611783b0dc90d87a6128cd4d7e427cca10db1d713495d8281ce3dac" hex"22654673d8af40026294acb3c0e51f0f367576d83a554bd9ad72de06a796095e" hex"08f410159146e32feb7a585ad437c4a48ff2109d7f74f58e709b66c292e1c690" hex"160928e9343db00c99255a53ea3948b547d0bb68332069c2d5ca632156a53ac8" hex"1b8e0ca895ea976f5d42029c964ea52d622388e90f947cba08b3924b470d84a0" hex"2f21e5bcc52e6d794afbf44a0dcb938554c7c94fbde66c1b7965ebb2d266d6be" hex"106d51a9231260949c37fcb7c8296c246566259829e98ef52683900a433ad7d7" hex"1f0691902d412d4afe6e49f546ad03d739f42a159af9530d717c01a3e9bc86b7" hex"26c15552cf455e161693ea7f01601fed166f79653153fb5beec9e8393c1efde5" hex"0223f9fa8192ae6be752d29b47e8b8a75e2172fbd4c89cfec400a9766e1430a8" hex"100341a4e94a5cfffa3c6cfa1be6ac3bf6b0c4fe578f8c99cc4f67e4d7bf4886" hex"1a9194b8c654ebf4f3cbb607c8bff2ddebaff87b8bdec06745ad4ed802728a6f" hex"0a7e869e75859fe47e51b3b79ad155670af4e6780d3edd3c13812db0197854d3" hex"0ef4a576b0bef4d037549aa24282378e13b438fc9bf49efcfd65cf3aa8935d28" hex"199af24c0e98e72c37d87bfb9386003c2a0192ccf015be777c4305d5eaaf0e81" hex"06e7f2d897f05617580ccc132040f3b83f3fe1a496354b33f39d27b15fb2a5fe" hex"07968d5b67877cf32da7858c85479a891164a19b1ddc26fdb2772d294addf3b6" hex"1b4dc215f06081e276803f1650d67324801c0a4f48d4b4fac9f6650d2fcd901c" hex"0c5a5f0969147d312118768cd73a762e53d3984088be93e46d8433d129939427" hex"1a948b5fcbf5918fad1f3c69d9d58c2df72cd9a15ff57a35c86c9e5082ee4090" hex"0532f7499522ad56592a815a303b33b648fe170e0c2f47d831255298200cd775" hex"22cce52f921a79b56993baaa1854b37ea74caf7e6f2d957048fe5e5d1e536ce2" hex"1ca9ca03dcd6b6539118fc036663b6deae0bdb0df258f18e23613f4e80bd5bca" hex"2f7a2d324bace30583592592d82bb970ed33f9753d03dcd3b54a44af04a0f1c0" hex"0f6008b6f13bcf8f2663e7392e2538406a7cdf15ad387e2eda92bb1de03f74f0" hex"06e30762808351c935656ddd7ac3499a2b497991d02f54c178277fce024ce89b" hex"1a087e883f78b0e1ecbc92dbe9d82258e4c91baac53d71836902953f8e5a6961" hex"0d35fd011b125ac12fd1d7c655fbb7b1ebc9eb47008676c750907f7768f6d644" hex"183a077e1a0a2dba1ffcf7e2a490859a5f60d5d04b3599506249b6d534848ba2" hex"24230c1864237bf6dc8d6b3e40bb277c02dab92e86aa515aaa62b1ad496b8290" hex"075a995ae152c5f9737f6848a2d5ef93a8e7809981a06834ef8b684390456011" hex"2dcfb2766574efd57331146186055ee967cdd14d5efac43389a29605d13d561c" hex"05a4a1353e53e1b5622a2200ee1fb2e1a8e224a8ec5554bb670bb377505cb615" hex"064cb205829acdaf1af3d45060ffa3433c02d3a7ae61b66ece50967b97e1f04a" hex"1af278018cfd4d2edc11dd77454ed0cc4ef3ca1dba5b0ba96bb2bdc43f1e8ef0" hex"23e7488f10d910e129d466443a7adb99fad7ac0b0bb37a51c9d0f1b7c527a98d" hex"29594b068af04ce6fe6b248aeb06051d6f66a39d9f3d13cdde5b343f31ec16ea" hex"1e63fabe17ec748ba86bf78cd84029d23ca6c543ee800179dad25964fae41cca" hex"2acc46fb9f4ba2abecc49ddb33c0314c7a940bfa021c07d44a73614599995ea1" hex"0d520400f15c87d18376ebfc03c8ed06b9ed713a654a0024cf310b64175d1064" hex"188ef3fd8a2134f2d4237dd7657f410ba5172ae081a6ca117dc21c7ffe71d6bf" hex"06a71b093737f1ebae5924f2d5f47b8b14526c4831c50f9e9c7c032dc011e511" hex"175921f58fb9fd90e2a1d2cf951ad606104a1676c9d2e6fc8fee6ea105239035" hex"236859cb45dff68ffa2524619936a9cb457d2c0defe59b5863607e439369f316" hex"28e0e101f6b62767f587d7dd8e0a4d4e32fbed3fc65c940d8aa8509bd826e33f" hex"0158d4f5cd5085c6e4ae2fd1330a52435eb0745d54c7c8a6ad5b7a3cf5333a7a" hex"05dfca18855acba1a5409f714a77297952277658af5e7d5e3a05bacd0b8005d1" hex"1edb9f2871655c1418f9c7b5851dd8b1713d1f9d7d78c9b915b2d3ecb62e7569" hex"10d33c3349ddff796b66b2c800a9fdf51d44235d14d74def1b2c112bf88647d0" hex"0e55341297ed43dfa1312685a260ec51b42ed6c24e46b79900549fd023441282" hex"0a1654efc1b702b4ffbcd21a9e0e3323a40e4a136bfa0cf81cf01bd89d433c56" hex"148f5bd214818a2b59ed67a8d79e54a048f357989e2046b3e7b587dc4893896b" hex"24d21716ac3c7fa8d8945b7b04479a0b397b8fe46e3424c0db7e1d7d824e40de" hex"2830e9e432e9bc3e8dc48c98c12ee9081273f5be246347769d0a34e2f0e7ec3f" hex"012e850e98e970f096522ef6f4f537529f296f7f3ec9ade921780c45fca74e57" hex"1eb45ad2eccb950133aec7d4da6d03c301cebe782ba71e3533d5a0879bd6d0c7" hex"1ce082f6108befc4c6133865cdf1b35a587868b99c36f59811bd3771a75c3753" hex"21d1d3327b86bcb2514eac6f11a77867856f5a2cb24ff4f72f65742854baa0a3" hex"072a1c2e8d55ba7a49807bbf09ad71e000d67b09bba8ea2ec6009086342753a7" hex"1c9b7142435f0c29a9ad5549dcb9ac289104f48d39d4e196025268dfa1b6a255" hex"00e7f5e830053d6bd9dbd5a2546f2b38820b7ec18b55b638f189c2cb86598288" hex"0ab8a2d0b81f7a40ac8a6a8bed4df0643df2a4dd4606194c8508595e116f39f3" hex"166b4f313145815f8ab8a09e6fac91e3cfa404438c8c430dda4d121eef70a9bc" hex"0937ff264a4c22904c66b8466165d9302052f5687326970486277a54f458717b" hex"23d014ce251eb044d74105355f1ae0b5dcdf0ef73fece10777328b86b0bb4d07" hex"276c1c219fdc62892dd095536db3525c18d0409121171197c99bdd8a95eb2f5a" hex"235d6ab6cef9830493b2c71bacd3782d67eeffacf4aed5bc07c2524203344cd3" hex"1ad0bb296be4e478c61149c736ad66168c2d0ba4410e05513c1af1ebe644b076" hex"0360722094dd4a26a16d8f12264b25accafdc6a3f55736f0de1e55dbdb28d02a" hex"088b276813522c901c6ac134a1ffa00cd61276e1221bbd7ff377d1dba5e1beb1" hex"243cd531b8f9fcb0cd9e8d9418c6e9306b89d96e0136eeaa66ebdb248bfd08f4" hex"02a12915178a6e7d4a612dbc3a878db9ce7153bdc9130d3df7308c13b2e97fb0" hex"05819bfdd569b0009e9bd1f9a41c7eb23ec33d8cd37d5d05b705b4511dc09f0e" hex"05d2260582a4a391c8180a17189b98a53b831ebced724333194f2f6809571401" hex"185017332cad227b54dca48915a4a78875967f8ed352fd96d5446946a64b4297" hex"08192db4386fcba811f000733a6f28b929be4f9aa1d2140ccc3f9616f82f34cc" hex"1281dc4a2838c70842102a997a6bc26a737209d42266e815738ec3943516e150" hex"279e9dd39bd768a08ad9ceca41993b8e8408d025affd64237b5985ed9a37d52a" hex"11bee6efbee9ff1ffe2f060d79bd751d43bfdec4d5fa5e323582f8d735f44c7b" hex"1bb75e2ad0bf3e1f255a9e983428b9baa96cfae8bf71d1aa4d3a786235e21065" hex"28941f264db478bce46c697bc574a5dc0b956d033eb29194de103a9a70bccdeb" hex"19d5cfb9c2ace7ec529ea27438d22668f09c2acbdc9c099bbd5554a6f3ae145a" hex"29fbde88fcb5e46ca563fad42cc7e26ddbdc0e655f88057a8a8f6e51354f74db" hex"1dd99423b0d860b8ee34e292b4616f7c870094c265f52cc450f98a575323872e" hex"2400a80de9d38f539c9b0b9580ccb9ae2e382f3092a657ff50a83ea03a4ba7d6" hex"20a5b9553d48bdf8ff66139e723e6a1655823b62add790b62e605d90044bec0e" hex"196df524c0987fe4b832add37f546b835dd259e7c03de7226a43a6a062b4e61c" hex"2ea4e4d02236497c570aeac4ea1896e1e3a19343f6e50eadb273cb5a7becdad2" hex"0800ed797700c5e269e0c1edf4947c65348976d4a67e16ee547c6c870c36e3d7" hex"09df4796e7cc0d89f1fc722c7d967d4c0baa823f93f9c4d6c7913edd185bc11c" hex"23442bab611ff64c7eb49ab07f32f52008673d80ba54e04bbc5c61ca1f0c3836" hex"2f5baea6ca93f7a41762a2b4f5b6c31c4e0d140e422fbe379f2686522dccb035" hex"288e0e05b537a48d5470921b9d724c26fb8d2900dc7d6f0741ba2c1a35138c17" hex"24584003a84247aeb78b30e2d8fb4cf7147785647ddeb68a7df6a79ff84fb008" hex"219b35214df5048253b823fcaf329a45a2ae7f959af6539ae7753e3554d28996" hex"21795fa4312815b80472036b9f35c1495378f172c7157a9440e62ee46692ace6" hex"1052d93c57b9902620b22e1c29b9106ad076f25f69fed4106736de133d72ecb7" hex"1948cc83425a81e7f7c6486e0f08b4b412724759ce41f950d65fa5283c31a4c2" hex"26769518d0ab71ba583b0022557cddceec3566637a6c1c519999523b44d953ba" hex"13a68997032013798fc580d466367a6a04502f500f7dcf4c2e6e03e777484908" hex"2668cc07461b1088861db6bf4c03528227a20d2b473e088aff34daa78be83800" hex"0bed18cab0f02716c9ee5e68f2434a241e6784ba03ca69df0edd97dd72038b6c" hex"2e04d93cc4f54309390fe572d6affd4cbb1989ddcf410fb476e3a8681656efaf" hex"18b0b7c0a137e1454dd3ca510d220987b5aaa51124e157fa372ec6099a03a714" hex"0354150d34ffc1b4ea2bcc2d705f72e2bfac4619f6ba35de7a5c08d5d7ec34b7" hex"12c1195df5fc75284ebe217430760ab4862de0255f75dbe24f4fe60f90c3419d" hex"03630b0da0e292c1088354c075dd1e00694fc14db1878a5cfacf2b7b797742e5" hex"16d451a52d64de482f4bf60beb30fa565a4e29904042fe36288002bb84325d5a" hex"0664003075b0ef9bfd1573f70b84f7b75ce76563169be92df533d5aeb47ffbe7" hex"0b41ef4deb720d4d2fe7dc11b4483b3d0b226ef5cfd8ba9a4e46bea1018fbb64" hex"298c7227e27ecf7291ff64ebbab81169202697e8e76afbe9fe1504243b4077b3" hex"0cddb62d67cbb120c38a93a9d10466381bcc71a202ee0a75f1bf952ac1c61a00" hex"1f251e0231fb968a4b39bd089704ca99438b645cfc29920e0f8f4988f77e9597" hex"0ec2e8e1aa9376bd31702a93e024f654ed26a324bf744d53271e510a1f7cc2ff" hex"1155f64822affa2c0d2fcd555aa5dad8698731fca61bd3a3d072cf33c1a8d9f8" hex"15699cea496017d4bf9fcf96e5a384e7c105d2ac074571e600afd0e9b4e7e8b2" hex"1e85323381cf7d3ba3431e64e894ce4d693f0c463b6d104dd33dedd7f1b9f081" hex"004b64f1d7c848aa7c28d6a815b7ec34ff2bb76d2d8c25f93265ad8b20b7140b" hex"0dd34779b2145df8b131bfb71ffed5c835d2b696299ed813bb472be2f3a880ea" hex"0e1abda56faf0df6daf6b166c95c5edc97bac1f73d539a4e419e36cae7ee1d92" hex"11c1659cf668bedf75fe21edb2ff2b1fc695bbd538c1331845f24839897b6200" hex"21bdf685c361d30014b4396b358599cefdc9d5f3b464d67a54c9cb2978925710" hex"1b7153446f1040fd153236c214b0b502ccb8c202c54ddfa527132962133d3988" hex"19a23ee53b40796801a094627b87364921ae981e57f9f478ddb3fe9e3050dbf3" hex"0c3793885e6423402d09a54736d9a0fab9f8e5edf858b7be1710b5ee2a46c8ae" hex"1dad8846162762182f95a6360199cd0ccad756cea2e4fbb6f17bf7bb643cc6ea" hex"0185b530295447254ce398130e4f1bac6a4135c8b9be462422bb6ed88d7d8156" hex"0cc09061f82989f499b935c855c6446ee4c02f2b5ec74205bb2681a3d39cae95" hex"1e785e3c3ce8c5a93d9a16f466e1df548f855d70d18613fe8dd861f3e4f486c6" hex"04715136d512b998cab28f4cada627caf8da082e1b11e2438ae4f8ed17b259ec" hex"16b21b75881cfd9f0ae30c2ebb472bcfafd4c09ff390f3a381e2098d9b057cf1" hex"1ce1a91c61b317ca6f871105d6034a1ae73832671555965c2deeb24c5da51ce2" hex"1382891a3df8d5ba54ddcbd4a9061a4574b0a4813c7d5fd49797bcd8ebbda4b6" hex"28b1699345f2327ed7e3a35dbcac11e9704a2d019568e273b2ddbbdda61b96f1" hex"1875cf03eaefd3c4a503d2499a9524ba9c8e8b1906511a4a85800ee21ad424b3" hex"2d1b12c661616bf91e9616cf0dd1823f5e33799035dd1bcb92bbb8bd7b9fb5cd" hex"1764a79b21973a65541bb9bf58bae57a63de6e20a207369f85b0ece77b1da388" hex"22852209e2034dac637154e40c26004c7d2f8d6b0f2f649fe920d916a0b9608b" hex"19bad11fd19291c1d7aba146796c8bc076303184293b05257a2e95aa1b35be93" hex"017ede6c3a4fadb0c3b384fc1bb3ba2515ede2ddf470bbc5279817dccba8486f" hex"20dc05e84fe2b3674dbf6cfbc4ea1888a95c385a682b198665ea24fe875f9182" hex"0c6eb30738c6c686153cef7a45b97d5da153ed62a67f725af666c8f545414326" hex"1b2e0303ea261450c0505cdcf6d8c5a1fe7c840287ff532d632de4cd4b899b07" hex"25d247a3eaf394fba18917bc67089efdf773445090ab333538b9db6dd2aa34bc" hex"0189a235ce7315920cc9633d5dc1c072cad0ebe0e95a07a0a7f6152bb14345c5" hex"118ec9dfcdb51980db3cdbc0b4917ecc57a03dd0c8586ed23145fb8af86e64f9" hex"2af16757fe4fb59efbf68b60493d51df19d06df73ff34828b9b0805b3a12512c" hex"0649e85e611b0ea226cd5195e88f479ca348748e3aceb994208fdeca397d1c93" hex"0d13a131ca0eb5a309eed385c046002c368bc570ea227bb02cc92be5e30820fd" hex"2444558ba0ba9ab3e990299dc09f450bae4c4c92829a42c6943c451cc858e346" hex"24e06233837107b33fc5cb27ac7baf78d48735d71cabebf68bbe8437ec15e57a" hex"1f5903dfda34ef89110f00cc07959025cf325ee02f81046cc48105d3e5930bfc" hex"20093ac8cbfca0030d78cc010018beb1b3e689d52956baa0c54ceaf858488e22" hex"2ee9cc8d4c5e47162bf7386e4325e3a513e6d4f4458f5e01fc343e340124c0fd" hex"1e2f5897ab3f2279bc761e37a8c20cf48a6bb27fb6da5bf0a5f67fca6ad93e1a" hex"0e9ae19d75c9f500b45f68de80244090eb66f42dab81886a78645cb1bfb27931" hex"0f78e982ab46a572920bb2e18383e1427da1df92db1f3665498c719a7af869d2" hex"22c0107166bb0aa5b0885983712566f8e0b4471e69d88ebdb7d0173345a2cee8" hex"0d8d1c4837d9de3b2d429fe96aa4f29fce440e52141ae4571cb1f1d7735af86c" hex"07240e3b2aa1472c3c81dbc49bfb3e866b43f778158a3fd6641a773da5241474" hex"037cb0fc644b2a88c90ee66cc4ddb962336347ccaecd1f4fa8eb567c04544655" hex"11badee113262abf691cc75f28c0236812d76537940e970f4488fbce2ccb46e7" hex"0e0fec7749cda728fb17b5b1ff968bd3b6433dd6dd6cc619e8ab2eae099ffb48" hex"28f906c82568287d2256b56129e8b83944f9ee180627afbc9d510fdb7b392458" hex"129e691ecb7b6fe77c01d70bf2628fe69e5f6e962f1029ce626a0d1888624145" hex"2f8d1c3dddbd8cb59cbec15b623aa1309d12221f7c62d956815c924114ec8677" hex"27db4f836bee8aa950940cc1732aa52d0e741ae355a8c3621ad068c043f77cff" hex"2005b28ce7c5532ebf6b7e51d10c344c9a9b00836e4fc37f7eb1176d640c1906" hex"0aa65efff54d1d497ece96910f6661001fb199d24c3cf997ce1e401788a382ac" hex"17dbdc878bd81276bd23b35fe31d93f4d7cb65b722e65d58fe039d126524bb4b" hex"26dadd32b90572e617c96576afcb2fcd9605b1d898b2366fd9a7cd0c23769da9" hex"2e46b7b8c48234c4466b0be922a9525a8896b2d6cc9651b2f6f291cf2bd72b85" hex"04523ff71405a30800020b61ac9a1e6b61ca68f9859f6bf1106f2a0fb66d5da3" hex"05a3e48cdcb56d89222f017078cf35af105ab2b2e2cdb7adc3d71de732d2f220" hex"08d6aec49dcb622b4b6033438a7b990f6e08a2d41909392a890d6ab2970c4fcb" hex"2de53850b4466695b93e50172ffcc6ff47c882aa9444bb09652ee9f5a4f43e82" hex"19963fd677971a8f8f1fe5d09bd27ad0676c59c6b99cc2c46d8a886716e16a0a" hex"2b0e85311370de1c8442d4216cb8ccff3d36a6765addb8a188408eff04a488a6" hex"30620acc22c938e923607f077ab953afc8412ab4cd325b812e18b36db9ea03c2" hex"1a2fd212df4bf20f8e47cfe5c5285a3706f8ab9863ea128054bafa1fe192afc2" hex"28dad5eeef0e864876e671e4a960e451d5cb11204eb0f7dedb1d1bea322aeaad" hex"09ce122c5b6d149f0192436aeccf959f73db3968cbe69f6c2dc955c1a8644eff" hex"00b33c6fe57db259f1f62f8df50692e8d8c36a22c77234e0d81dea745254adbf" hex"2b5b16738d4e4e8f30d8073c01e34d8a784bc6b41ec8e2afa5c8d2347b145ed4" hex"0ce970cfdbc28f9bb3195dd2fb274f9895a29a996aadbdaa4cee11b546cfdfdb" hex"0822416fe28cab89c713f9ab14d28a3d22a7033c1ada634ce7928681369e9b61" hex"15d6ee8f939ad0609d6eb842084c6ca07a055e83ae2d1a0109498f8b7ee9bbf0" hex"24cd8f5ffaa9da4f482d9efec43b3e1c77e8eab2f44007269b14614c932ebdd0" hex"2093e404029042625197d41362d07884031eb192890e18ac0b1e4237afe74020" hex"06c7641b87a6aff30a7828f5a61b6b79949489013a23ae8f138bb6458a727980" hex"11945363118e8c1728e09565b5ba8e9c322b281d50c81d9ff94a18612ac41f7e" hex"1e0557a57f3b98074694b3bc37edf005f0129ba8ab7aeef1346dc1b94cc283ef" hex"2be1c91a0c0747ed6b472d5a6103ca79844f6fac466e756e51599951b0ad1c8b" hex"0f4dca5aaa01292e52a8a19a994dfb8ae96163872353ec485ccf1a2c6bf2b0a3" hex"16be623636b1118ec0511c5c0aa630833c542c80ca87898c8d8a0c9c6432f920" hex"0dfe1f87f83f760e4779993ebb87b600763a78a1e0022f2a3c083730c09930e2" hex"185bb62bd0f1e1ec17991ed4246cbcadc9d17af7f85d2583b555b293b85cb3ba" hex"103959d3005c53566ecf636f2d99b94266ae10f20d7941d94ab52b1e66c99a2a" hex"24903de01d4c24236f18e0a72f1485b8e8e0eba5385dd2ccf3da36f42f29f29c" hex"0b5c24e7cd6e5d92ca2e92b79c3cd608a0cbfe8b2940aca50db477bbbf676188" hex"191656e0acf10df4d56c25255747160742762fc2d37e507e563b9c2b2158231c" hex"24fda5b8762d28c2cb390432cce54693def5c5d8cf3f1a820bff33763673116e" hex"0bb80254eea5b1630deb61300db47c2e3e9d43c0ae79ac6d8d8e5dacb30b421c" hex"0e88460520595dd83aefc1ea925bc7b76faabbd79339a6862c8b8ae500e61ad9" hex"244cffc3946a184f713d5239638a2e1d795aeee5ee445c9f9aab6409e735b88f" hex"021554cd4ee080447d929f96556906a5504df942919385bc5e64cedbf2ae394d" hex"27ace9d675fc4a5fbaa1418f1420ae54e57c8343a69843ac97c5ebcc81782032" hex"0e5d6c9eda47e171d3f5a2edb52448f00acda78580b066fc588b39aa09638a85" hex"0a2a0dcb9dd824a85d72255623c47308a71ac9c4b4f6bda9d273b1c1f88b629c" hex"2d80cf2b46f3ac5285aad169e96b067b01de824253f4156311196ba6e4bc2104" hex"0cf1b3cc75b68e63af37eb275714561af525bfbb82497cd4730215975d8a3cd6" hex"1df43394141f318ee9571c1ed93198d282288da8bcb5b33e3c6f1e9269a76304" hex"1064a0d92da154a1b43895e1833b6bac67e096996e0db5bc1447c30bbdcb5bc3" hex"0253f837b9e9f89777891e37357c8654e1a5d5ea0262afd58136f1c1c969d395" hex"0173e90b1dc6b589a510c7364be31128cacd0baf495fbb9161024b880c18e97e" hex"2a3395c5515973f8ebbdf18b8fb573eb46a4e8fc88c2f159cc6be94c7aa35e0d" hex"1be4bfc35f47cd93bee0e1adc16a0957f824a9e24f31a32c372e97b6a2f9a71d" hex"147f33857a0febcfe896dc770f9a2a86a7089b55a396afffe4bb21d5321e1d7a" hex"1230faf580d4ac8a0a7d8f3fcf457f63ab27cc54c5820739bf6437bc43eaecbb" hex"2cbf7af588268ced22cad9f5a9254d95c5f47127387655ee36dc94d70d139296" hex"0825e78b37cc551183bcb25b98363522c0a801206000c6ded60985718b46ab24" hex"00ad0b22c9addd5f71d90a7578913c0da692d7bb9230c78d6f6273114df69d73" hex"210957b327089cd3495ba001efc730c8f84d824fdf9448c277d02379b694d0bd" hex"1a4012ba18c18efb60b94d7fb0fb750ba948a5c73e55ffe464ebf7acbd04fb81" hex"24a0432f67e42bc4409433b85588fa6d16dc93432fb633ec1170e1de3d258e7e" hex"287d7479896cec61832a3e7e5e257209609c6af97c315bb08473de27be705f83" hex"1301c5336b7f37607888212f40b73bd0aea535cc7148be0f9cddeef1f397b8dc" hex"1c1bd11368695d776b6d4f51d8b9a3ff091dc23b438ad3a8e00f435768543c95" hex"20ed4fde81fe5b8cde1b1b005cc5a470003b8a12d74d4178d03351cfd620c9a4" hex"1861979a4209de561feab4faa20b540fafe14a2f47815d1d6f756882735645e3" hex"0f50fe0714b48545aad0aa47edf4cf85b77edef8420cadbb2ab055537896841d" hex"009bb5d21aeb5bf32e1a0a2c6d2f7a0044c7bae33fa95f6264135534b5aa1a17" hex"10398fce470a822d6e5bf4a572fc5aa091e664335a8f0e5f4b82ba80dbd25d8d" hex"050d8d517b496e2067860366e267a33cceafe24e53584565511927952e43f160" hex"218634834c0bd7a41a100548c68c54d6d47e30ba6841925ce0afeb3aea683856" hex"00156ed62144c5a67173008b02d76e28126ca00a2819c0bb3eb4cc92c196f893" hex"2b0efd5fccfbbd5f77198a0d800e01d63679db7ee5dc4213c4a1e82b47ce07ca" hex"040540c023f617d52c1ccbd2d9e825d8f60a2f6cc6c7e0230f8c259659cdc082" hex"11739844b03202e6faab271c897dfa7bef337a5b0672ab13ebe547f572a089fe" hex"304aeed0c9d0c871f87128dbbb634322c5449164a13028e7f8e46ea7eaf5861a" hex"1eb1cdadf95c5ae983ef642bfb86f103558afc4571483cb7585a00715580fdd8" hex"06c4f741b7246e5655a575e85661422ec7b71e79535db2ab86ca6105124a2f14" hex"28d9f82f7cf626d8bf29d5a074bf2e8a64a11e8b415465ec3366cc0e4af15eb0" hex"0af3afb40024843ffe9126a492594cff90682e2c4afa7237bc901e70a081e68a" hex"01e0d9ee7d4bfb5b07b2d9102409de25c281bbbdd10f2bbdb04adf4a2e467df3" hex"108a7206cd0ab67ebc298481ce73bbff082a5434b01e26d8ec53ea69f7dddf6b" hex"08619279b0aa0c5e4f7e0ba18b37dfcb3ab7762debd778e1675539e2023fe000" hex"26df8a6518857f2cf15a8dd27eb05fd4854710b80ae479cc3dbb4963dbb61401" hex"29ebe07739ab8b1f23d828751d533ea3630788c03835c7ade9de2fc725639be6" hex"27448ecbcaa51b958aee7c6415c041b815de8940e427fe2152c77639f3c5e7db" hex"0699e2a03a056f4a0323541d174c4d8c1d71a7b04c664aeea06aaf2f97849623" hex"1f2c0d82e6d3dbd8f29d81dcba037666a0567564fed3a90a34f4c2a0864fe6a1" hex"18678798666318a2f6c93fc93d788c258f01c5aa450b65f4927ba6308f7a99ab" hex"0fae315f1aa96516b51b9a35b0bf04a303290f7a4b0f107434e88c9b897d8ef3" hex"2dbea8b90191f27ec6c6a71c3b576ccc10b6945a2d651b526b36c86929d7dab3" hex"195b1cd7777a95a1dccfab7ad95d9815d143fc6d86f974cd07417038811e143f" hex"157f37337b54b492a344d0bdd2d2dfd3f27a74d529898ae3243bd532983b58d2" hex"2337c69e87af024d6cb0d8f29c96ee48114d2e7b2c1535ad6b00e178977380bb" hex"17569028d04252e77d46764676068c2e1d43bee814688c6881424210bee531ef" hex"156682b6b037656dd8a82fd83ca1924074f752a207b2585ae4c9ea6f4c78c75d" hex"1ed96542fc65f19260e0a755919c2e24659105c4c9df00ded15f93f442f6887c" hex"12fadbd7a3c4fe425a3f30f0ddb2f375e471a373f27e43c8a494d9678e8e6093" hex"1292950805f2f6b9f28b3182436c2a975dd365a59195dc4df585e87395c7c3a4" hex"236a0085c40b7af8c4448e830057b33fe8df95a33647c37c55b225bd5f8b1c59" hex"1db855703240e2f49d63e43c62f8c30b2a39b67bea6e9a9481146c046af276d6" hex"11b6ed9c39e7cc8f66dc7f9b386ba00528af573aea6d008433d39881470fb564" hex"29fde8616fbc9e483e1222d447832cb7bc58170c7ec86e8f4de9070e07eacaf6" hex"08aaaf73c42c827990cd0c64687ae8cfa0b373da849a767ef3b63ca08327663a" hex"0c85a554dd2ecef748e891cbd90386b5737d945603b56c887986f9a306d7de4b" hex"18564645c2a77acd8cde744455ead6f28819282b59f662f7da89dec13b7623df" hex"1b44633048278c6435e1449517b0235bc9f4c2cf39aaf34908726c3dd3a07a1b" hex"29aa41f4a0e91cec6a4481c3280a94398f6ff1b0b07b39ab0e6668dde4383082" hex"09a6e0f5ddbfbb30481e978e215f67468f31eaf930dca350f0fc53bee83f988b" hex"04310eb11496a8955d0a91b51aead8dcd1703cdc4b0e7f2f4674ae3e588b595b" hex"2a10a00f88b3abcfdb5d1c8dc9f8727d16373ae7fd05b239f7e5bc22909682d9" hex"0901653987feda97752895523e956cffbcaa8d3f088d280cb19cf4d71f010a67" hex"1d8b1d6227e7d72dbea884042ee1324bd31a5fbb7ed49b79f04e834245a552b5" hex"157fdd0e905e98e890291c69bdcdf6307771876bb8288809b44e63bdc934710e" hex"039909b2ef090b39137e7420aa7ef195656037f3482b4fc10e554341d68ec93d" hex"2294fcb6a8d69542b31f9942a59c4f4503e188912dd1cff39640cc2217e1cc87" hex"1865202fa3c02e817f2fcf395c446a3eecac5d97950a44ffe1e8d299e064e551" hex"2aab2c1581a7dde08e01d9efd6c7fdc561b8c7e6fa75020b9534f2d3b35afc0b" hex"0e550b117eb8b4be6223be3b32b3367819c099e5cee581ef44a2cc483073514b" hex"0c317541eccfeb5a470e62a4a7183b1b22839e1a1c23bf58b6ee43d1fe87fa10" hex"0c1bba8cab5dc7f68592841c2f9cee4e068d6791e55f4dd54edf7ecf336cef35" hex"10f331f64e0bfe4a9226e772e395f992634eeb6219cc239dd5d8e03cbe1f4581" hex"0bd16714d1d83b871586d6c721608db6150796aa7d942a7d6b7f37e1fe54d591" hex"0ff184c75453103ce3e832ab21e3f16110827890bdeaef035641417fcb9b2c3c" hex"142549f5302f25b6f4fd1abb1b586555dec7abb108c3d988222356f8845157a9" hex"1a934f239cf4d919aa5a54e5706f63ccaedaa2a523aa75b6cb425fccd9b30276" hex"0f63efea5bb28d9047c8ef3d06ef698f6eb8d69cc2968256b56ba2c6b1aa3250" hex"07ccc054bd8707ae6a7e1136a7d734ca437bc91640e819bdb1161db6285b8482" hex"09f695c935d12262fc81ea65c312cab7c604cebf8a7a8e32199912d3fc172f2d" hex"0c39e4c9610d79d226d090265c7f961ce63aeab2e824e029ce1b89601913496a" hex"0dc3486866c4ae74c9f7227bb2bc821fe2ea1a265a34e961cfe8e0548f0b2ff6" hex"29b111d35a7ba7b41a2e65e5412dcceb796b31d0d87b9f1a4d24b028f2377d52" hex"01ebd6d03eef5c45e78c52247c3282fcf64558e43ff15e1d39533389bd7a86f4" hex"037518906b748ee732531e22b29338f4a4f42a0f216226011632c4fc7a592872" hex"08482ad4d100cefeb5679cb8b4f6af5aa6b87f87d0a7815aebb30da0d927d3e6" hex"13ba71984e13a4480217ff47b1055dbef0ed7333ff8403935f10785b4d212031" hex"267080070a80b5f94ea5c4363d2d971036e8446f2c055ca49495145eca1ae9fe" hex"2992670c4c90a20991d63058dd4a885b9ec25f2307e6dfb364be99f0ab596b56" hex"0e91d00167f0fcdc484e4510cea659d39a58ea6d94188082c301d82be3a5beaa" hex"06007fd0fb2de248dbc4fe010a14285eb1c67ab1035575cfe2c4a46e7169be02" hex"24093f309708216779d4be610fbad6c37027359a6cd9af3253023c94bab25009" hex"27dca5e53ccf2bcfabd9f056b2381845a855bf7947d600e6f85117b69e57ab64" hex"124efae3d5bf327ab6ba6d4526a495aa613a1c141b4ccbe97dce4d2174af4975" hex"1a32d049a2624f7c385673c88d7fea82a5c517b7fac655774c395cdce73099b6" hex"0602b40c9255dbac3b084808ab31e76a1f050751bb6775dbada5d84691d27653" hex"27ca9346b73ccb979a8d2890fd43bf51eedcd0a78af072f64ee41abb954bacfb" hex"0b59bbaf1fcc4321f763a03b112189c055a31078afd0954b7d7ccf311615d3d0" hex"1712fa34ac64c32e7ba17168f04876190ff32077be969a20cf83be9d04ecc5ba" hex"2287f65a7cb3a473300d133636ba395a1cfe1b9cfbe68f106f114d46d453ac6e" hex"058d32c610ee7b8e0025aa2f8fa532b3a6a45214fd7df4c35ad5112f545fbde3" hex"14772040257c0366286283200970b7ee56d048cf3f6725fc8d9651a8234a6594" hex"149de5e4a643c98e7261b75a27baeb89147605258f470c0291bf22880e6a9006" hex"12c1e251dddced6445c3dcdcfcccc1c36736068f9e1f7bbc4063895df782b115" hex"10427a865028d998dcea094cc2f8d0fa2efbd0040d0b118e4415dae71c92cfa3" hex"1dced774d8572bfb42107f480682ff1c5ef95f657787a06997f53061d44cee6b" hex"2033fe9a65b025cd7e27764e34562fbc6391cf8d31623f31b68f03d6a1d1404d" hex"04b8c60cbb003fd65b2886da9263ee92021683e1af25189631d1725df8c16357" hex"2d5f76b195591eca401fbd5d43e2992245ea9a4009a8ed600fcb0962ea5b845a" hex"18cd73d9f8a31eab2560b9f00b08cc4517309f7100c34df4c3aeccbb3df8eb49" hex"244478321b4748aef75677808a6a5d92a6964f298eb5e5337621398b0c1a4355" hex"0700ca5f97215da057c3a4a16a260471ca887e12ab3a9fbaac6a61c67c38fb9b" hex"1c8b2eec6c0535832e1ea214b890bcc72682c5bddb39f4ddf34500a5cb9a81aa" hex"2d3d9f09f802a02b7324b79e9681debd2833f6238b22ae6622ba1a64e744f790" hex"29e3aef42dc679892840c82352fa28d9140106d6c2ba6ada66fae52bff965eb4" hex"0eb54e3e94c92cd24f6ec52eab577e80d8c8e9f2d39d6b8d69503967d9809fd2" hex"1036bd833a94dd6a85559c519bb7a2769b6486b00d34996da228c08994f285b2" hex"2f7362c30b976680185fcb2d6c1a9fc47ce47e77d3af5b773534e2ce7c2063dc" hex"0f148ba271ab4c9b17837d44c14d231fe85b7644462249299a68b506bff87f4d" hex"23eee74e2f9b8ee256ebaa6e03b545afa196f22ef7e96d7255f5e79bbb786c1c" hex"165a455c205655a47926176b91f2d2c02ac5c00ad29b467bfdbd51b0768b3529" hex"0d4bbf22a70348d22efdd5235eb6e682385197b4e17330c46c44ca6d5dfc6791" hex"2841ddb730006e521446f952117b78effc601d10372438c4ba4f6e2608e9a510" hex"21960d7a065af49c4c06053d32596d990c1a43cac1658dad807ae48de098e417" hex"2a749e9fc0fea8a55e57cdb05166ad9692c00bf103ac30881c6ea8c6b86c244a" hex"0792663fbe195bacf4bffe700777c5fb07db9bcf94404ce90d0ed74a50febf9e" hex"2b4d7bb4c6dae168809b1e8687e2e668d2680f40733b7d6877b27eaaa2021daa" hex"212f5c9650237c6013810fbf50f8c160395a487a5cd535ddcc85437383d7fd40" hex"1e42318881baf153d5c6a0f3ae7c933daff9cd10c89c0f7d9c1253e65995e7af" hex"082ba05d83761cb163b4ca9d55e5dbb43c74bf3f456988438da2b3e62a90097a" hex"188bb1d3cfb110267f28a328777328ee715c575923e5517216a551b7e4bca464" hex"26c9def697692dbd245316df1b3d3ebc23d2e7f26282bb8c3c77383b633d1fee" hex"09e269116a30414bd9701c5e0878caadf29773b5e4c010a7f519d6c8ed4ab64a" hex"0b0dd617d9c5b993d32b538129fa4404c7371453aec2448ad60caedef2521774" hex"2955e9b0087cc084f3750b6474cf9ccc1b91b93088093fb9b65512bb41c7fe13" hex"25742cb05d49c540c0db2fe8cecba3202fa75c3652f8a0632c901284718de2f0" hex"197e4469bc4e63f957318e61dfc0b47f3612c833faa62fbbc758bea7747a919c" hex"10434862eebeac7e95316632cb2a81e786f3148d551e82d4b5f3952dac0e84a8" hex"1a35b2d833ae99e441f064acd0efe3ec75d0180f0dc898edb2ec4e6104c43d91" hex"21095529dcc976329670baf3bc91051208b4d62984741144c2795189811c35d4" hex"1cb3ed4bbd682aa625880beac8855c5fea04d41e00eab4f0d06318c229f650e1" hex"0fdb194388dbc4bbbe4e95fd302d9cf15deba158f7c686da98f0c51b56a9c3bf" hex"2355c510225e1b58ab2af9314c08bd8adff1ada7c9a457c0c1deb47b814f2c2f" hex"2c04d7711fd02ba586d4a50ad99a1723e5bf2916b4b5ecba863947a98fbbbb30" hex"0bbfceff43f6717beb8ca8fcefb59c672661fb46da69df22870a4c52fa4cd0f2" hex"2bcca13d376d46c173fc2901c265dc09ad688e67b9726845e03944ee966ec01b" hex"285bd066f7c5357304cec840041d33e776badbda4e0007a505004e070b9520ed" hex"0794a82f878b218f741d0cb293956b5273b429c885d893d1113d73aa26c1d423" hex"271b72ec18a3db9d3d0e838edd70c2ce3869f8dfa7a2990839b8dd9e1172e87b" hex"0a636a0eaaf2172cf943d025179ff1617471d89f89258b34a3bbca00641a9cd8" hex"1a528d6c2a802448da3ad3d59f777313c16a671482e39b8cb7da9ac35c1ff2d8" hex"18c053d772d3b5a8a648244ccc209c808ebe141ba2f9d5650d0da14819aadde1" hex"1048336a6121c302669d43eec43639872901bf281af7a1688aa3d3928ebdd907" hex"12c4211198d7728995d57f5bcc090cf7beca8045d513deb1b175ebb36796f0e4" hex"1834db39abc7b5ecd1a514dcb9228530e81361aea5811ca208a650daf968e6d8" hex"10ec1c14ddd45f0d5cc72b4bb6c9b567381cd3f8ff34d9591c48f845ea50846b" hex"056e828c137df3632d6225d8c3c7df355ea62f2e0d113a7e36852b6764afb9f1" hex"1759ab5b4dc7063a18dd2b491a4a3d073bfdf8f4d33df3f339a83e3ba2953d7f" hex"09876c8f4e48e48b158ea3f41eb7f19716f44512bf7cdaaeb3915798ce22707b" hex"1a45579944f3cb644003ac2430ac63799964bce8f0125b487e5e84f986f46a83" hex"14921030ad6e51af6e9a654d191b8562e8acab6542844de111650de2ce37659f" hex"29baa8a03a66a40d48856ec10f47f554e884258e4eff26ce0f15c6b5171f9581" hex"2f14a2b03d6b68f4bf5be1acb77702105951d5f13a423c1b21960b0c129fa99d" hex"1a8dc9e0aba8f76e0f8bf6db5523758d5ec321d0857a2df1134b5dae2faccf3b" hex"2373925e13c17f70c80783a3664e984c082f251bbe3c4698dff5daf3c70e5fdf" hex"14c66f792e18c3133a0ec195583065986f5d8f297f5750ed78aee7b7fb6efaa1" hex"1546abb4feb014cf7206953bcb52e5f16ac8d232723683674bc02854efa9c811" hex"2dd9d7b31522a6b7fb653afd18e987a926fbd5377b5b0e415cf2614bdf0c2635" hex"0102b6d8a26892985e76fd744ab01d06b524f57d634fc0b69a5d91355398d6ac" hex"1ec5b7588982ece0b103edde74a6f327e6ccf694bc534195fe0effc7483f13a1" hex"2b278acb099ad84fbc96b27d36269ba06a660e2bc9093059a2acb1998cf3f1fe" hex"129253e64f00669a4cf7480180edd5c242544581499b9a233f0ce088acf1e4db" hex"14f35ce5d343461157dbe0adb07355d95d2cd5aa6dba222b6a702af1e325d2bc" hex"2d106ec5d71809dff7aec68762661bdfd5dbfe456cba5a7c150c73da2510f752" hex"16ed7e6f631af32c7e9c7884b0ab0cf71a834ddc4c825748eb5d35451d809240" hex"2dd68235d74c633a111bd167dec9a6371b137ae89530106a928c87743b38be3d" hex"0076cc22cae0c2544d7e6d49cb00182253dab5dfcf6cbdb378f56b0714b9d4bf" hex"2af75f56bee1cdbf00f1a0af44ee6ca3d7f8b3b42d38f87bf1da869240dc6477" hex"092f4b09a0af31220825e29d275eeb08977e8d3a6a934cc16a6d562b2eca001a" hex"04cb8d5ffe9fe85b21a785e261721288e9b5b75b400545a31d0d53270608b104" hex"08287f21c644121d27ec9aa9f50ccbce17e7ebe37a9858da78ca1d207bd9d637" hex"08d64375d1c8b872172ed0e50612b60c4b049e807f23d6fa8f4e61e06d52047a" hex"034d11c3fb63ed48fc75af072a1084b3d0982b796c9dbb70c295e4c938688dd6" hex"03457e18852f8480e869f8aa0665890d85a78c5458b77f682cbde6b7954b55d8" hex"2cdc590f35d097cd61fc65b0dbaac9cd05916c807ec0e318de09c55d6facb637" hex"0f2b077d67767da3df753109cb25329348253b3bb8a474b8f2383d269e7af7d3" hex"1188362ee1c47b51ae57ee87cdc133d212b205f43ad871011e82684b3251a168" hex"17b80922192c7ef6e95042838827e749bc017d1a96c6e69f4d945f6a40c80678" hex"09380df1270bf5638a0dd4f2c7b7af4a5798b4280a4c98abd97c99272b34488d" hex"055c100b6e332bb5d2bf6ba8f3f5945bd877926df3eaab055c5d42be090db0bf" hex"02cc36716e8608d8ddd908e019707e77d50ecaae8f83a61fac66303fe0d98038" hex"1913d591367d4749326ea822b20c1f015974fcd5ec6d659aedeac7b56f6fb789" hex"1706e619141f6b4a93840023bb2342e759da6438e07ed974a5f1e3d506144c96" hex"0bbe067b718cb861fe927716cba85cfc466eed0e9d2c1067bc7f9e356bc5d23c" hex"1094541933220c2bef5ec7afe91782ec245208d58f93a08ec25eb59710a73623" hex"03daf04d7a256119a10ba5f6653564dff54f8eb78577360ac477abab5ce87bf7" hex"0cce5000e4686fab8ca621f1c65dda94eb8b5892b1aff79a9a5eb0a2e65efd53" hex"14e0969768884cab782cafd4b81555a818559c4835fb6821ec46fd08ea418ac6" hex"1ff343732becbc72450b2faedef7112b951edf2ee03bebe4b71365755e6d5518" hex"10e06fbbc2176bff93433750bcbfec05aea120f193a1e4c5bf5993e098916f96"; function getPts(uint256 merkleTreeDepth) internal pure returns (uint256[SET_SIZE] memory pts) { bytes memory ptBytes = VK_POINT_BYTES; uint256 byteOffset = 32 + (merkleTreeDepth - 1) * SET_SIZE * 32; for (uint256 idx = 0; idx < SET_SIZE; ++idx) { // solhint-disable-next-line no-inline-assembly assembly { let val := mload(add(ptBytes, add(byteOffset, mul(idx, 32)))) let storedAt := add(pts, mul(idx, 32)) mstore(storedAt, val) } } } function checkInvariant(uint8 maxDepth) internal pure { uint256 expected = maxDepth * SET_SIZE * 32; if (VK_POINT_BYTES.length != expected) { revert Semaphore__VKPtBytesMaxDepthInvariantViolated(VK_POINT_BYTES.length, expected); } } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"}],"name":"Semaphore__VKPtBytesMaxDepthInvariantViolated","type":"error"},{"inputs":[{"internalType":"uint256[2]","name":"_pA","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"_pB","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"_pC","type":"uint256[2]"},{"internalType":"uint256[4]","name":"_pubSignals","type":"uint256[4]"},{"internalType":"uint256","name":"merkleTreeDepth","type":"uint256"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061001b6020610020565b6100d4565b6000610030600e60ff84166100a9565b61003b9060206100a9565b9050806040518061382001604052806138008152602001613ef1613800913951146100a5576040518061382001604052806138008152602001613ef161380091395160405163bd6021b560e01b815260048101919091526024810182905260440160405180910390fd5b5050565b80820281158282048414176100ce57634e487b7160e01b600052601160045260246000fd5b92915050565b613e0e806100e36000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a23f019914610030575b600080fd5b61004361003e366004610522565b610057565b604051901515815260200160405180910390f35b60008061006383610458565b90506103f2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061009b576000805260206000f35b50565b60006040518381528460208201528560408201526040816060836007611f40fa9150816100cf576000805260206000f35b8251604082015260208301516060820152604083608083600660c8fa915050806100fd576000805260206000f35b5050505050565b600060808601600087016080890151815260a08901516020820152610137600088013560e08b015160c08c01518461009e565b61015160208801356101208b01516101008c01518461009e565b61016b60408801356101608b01516101408c01518461009e565b61018560608801356101a08b01516101808c01518461009e565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f245229d9b076b3c0e8a4d70bde8c1cccffa08a9fae7557b165b3b0dbd653e2c760c08201527f253ec85988dbb84e46e94b5efa3373b47a000b4ac6c86b2d4b798d274a18230260e08201527f07090a82e8fabbd39299be24705b92cf208ee8b3487f6f2b39ff27978a29a1db6101008201527f2424bcc1f60a5472685fd50705b2809626e170120acaf441e133a2bd5e61d2446101208201527f0ae1135cffdaf227c5dc266740607aa930bc3bd92ddc2b135086d9da2dfd3e2a6101408201527f2b86859fd3d55c9d150fb3f0aeba798826493dd73d357ab0f9fdaced9fc81829610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa61022082015284356102408201526020850135610260820152875161028082015260208801516102a082015260408801516102c082015260608801516102e08201526020816103008360086203aeb5fa905116979650505050505050565b604051610380810160405261040a600086013561006a565b610417602086013561006a565b610424604086013561006a565b610431606086013561006a565b61043e608086013561006a565b61044c828287898b8d610104565b90508060005260206000f35b6104606104db565b600060405180613820016040528061380081526020016105d9613800913990506000600e61048f60018661059b565b61049991906105ae565b6104a49060206105ae565b6104af9060206105c5565b905060005b600e8110156104d35760208102828101840151908501526001016104b4565b505050919050565b604051806101c00160405280600e906020820280368337509192915050565b806040810183101561050b57600080fd5b92915050565b806080810183101561050b57600080fd5b60008060008060006101a0868803121561053b57600080fd5b61054587876104fa565b94506105548760408801610511565b93506105638760c088016104fa565b9250610573876101008801610511565b94979396509194610180013592915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561050b5761050b610585565b808202811582820484141761050b5761050b610585565b8082018082111561050b5761050b61058556fe289691d7705934b5504ae4bd7be283f3465af66f62fc7f1e66f03876b445efdd22a0bebada6ba60c3e190e9e8c2b1420244a14c9e02868b862c7945667416f9a036ab5249fee75e0644ed259d45fbbd0142b638e421b948f5dc00cf3ff14a5301bcf8d4f8bf886d2c7960badc94b3abf6beb4e43571d2b4b0f14928c10e0d5942d8c51b7fa4ea9ea16765377aaae4ae0a416a89b600fc0b8ec35e9e6e56219761f2c636b4954a865946d69fed3ecd2bb60a61af38fa31f2a290ae28915d1f6e10b412b14d9dddf3f9031ffb51eb3f73602b9e49cfa9bec4a02ec9c0e3020ccc30ae9889ae5f4f6021af9e16dd1f2c445ed863fd6a374b329337f2fef4715350d07f75b300b401d2435b96459d2b64f6f848411f246d8478199dd2351a35c1b5e195a26806d907b6d9a9a9c235e09a48e94f8eb8da80f0d40bc4143e3d006e6d22d0006337513747c51f8f3e87364d2852113a83e586ef629c88cee6d4cbd422f257aeaec24103ea15e4592c32d0ad9846ff1a2f3a836e0c19947980912b9006b294bead7a3378f80183af735f6bc8529ddc73d9e0a35d594dcf93524403c9e3e0cf84e9163744a9a65520f4b8cbb4ca35c428d1c4a5789e11f42636c6d19747321f43b1ffa301d565dbc37ef1eb2ef669b8a1876e3754b79657b26fe43c845ce1e558b2ca618dfa02f0d640fdd45f56492a577154989cd09523829b5e15f2d6204db437b7b4fa0f6eea95403dd25c6a674b3e81be98ad4532affe8507ec0538020376c16b97ad98b8dfaa6f10d42a3c5e264c56018d32b0e8af528db157eb60d234219fd49f941520883c13c1f01ff7b2f7f512a3046f91d33cdc3900ffb9de91d754d84438f79e6b701f7d665d59755a7bcd0b63f7c2da94b737606c16de1d3287a08af195521f756271ec64bdc4ca8a7a95fae892c0fd2cf0c148d6c0cb6530e16af35936b356d5974b385528f6d9a873568eda614ed0e54be4494c2acdefd0fae7f745efa5884dc82f1595b5c10d931ed6da07b5dc4bd6f99dd5318c7c2a821f41494c6685503d748b45672c65d059260bb205113882458c86f6da7ea38131ec11e919c80981c8a905161c48caab360994e8f31cfe88536c5ad8b2c36003914f32ba1f584bafc3aa283f79d5d65e97a6a280c7c51cec192ee9e48d593a2be0cec3b3618ebb60152be2987b910940e79a421d666a71764f25ded99159de90f075a80d650b5c6f8a0b3261ae5ec4c5a1b53762f30c559aaa6c501e207c2514f026c5d81cf4e6cbade3622323c4ee3b4568333e79504044d2ad4d2ba01abefc5286bacad6fb92895c85483e837d7c821d3f7bd612ddd932c16d618455ee62a4511a11b68cb7aa85f42325a3d0fa45e0887719f05c9cd472183b1c7c78eabd0ef0674f14710e453bc1f9255babc8d2aeb3b2e321c68e6871b54c285e71456be4d11bf8be1878d5dee6820ec405b079360da81da7b79f29aa54096ae195ea1108d2a02d0a645dcfcafb2235e7f9ed37df27c3f7cbd5ad11ee831fa17cb36881d3f1e2338342dcdeec5d3ebd82d4b767ed93989d9147ac711dd07d8aebac0962c20174c21361611783b0dc90d87a6128cd4d7e427cca10db1d713495d8281ce3dac22654673d8af40026294acb3c0e51f0f367576d83a554bd9ad72de06a796095e08f410159146e32feb7a585ad437c4a48ff2109d7f74f58e709b66c292e1c690160928e9343db00c99255a53ea3948b547d0bb68332069c2d5ca632156a53ac81b8e0ca895ea976f5d42029c964ea52d622388e90f947cba08b3924b470d84a02f21e5bcc52e6d794afbf44a0dcb938554c7c94fbde66c1b7965ebb2d266d6be106d51a9231260949c37fcb7c8296c246566259829e98ef52683900a433ad7d71f0691902d412d4afe6e49f546ad03d739f42a159af9530d717c01a3e9bc86b726c15552cf455e161693ea7f01601fed166f79653153fb5beec9e8393c1efde50223f9fa8192ae6be752d29b47e8b8a75e2172fbd4c89cfec400a9766e1430a8100341a4e94a5cfffa3c6cfa1be6ac3bf6b0c4fe578f8c99cc4f67e4d7bf48861a9194b8c654ebf4f3cbb607c8bff2ddebaff87b8bdec06745ad4ed802728a6f0a7e869e75859fe47e51b3b79ad155670af4e6780d3edd3c13812db0197854d30ef4a576b0bef4d037549aa24282378e13b438fc9bf49efcfd65cf3aa8935d28199af24c0e98e72c37d87bfb9386003c2a0192ccf015be777c4305d5eaaf0e8106e7f2d897f05617580ccc132040f3b83f3fe1a496354b33f39d27b15fb2a5fe07968d5b67877cf32da7858c85479a891164a19b1ddc26fdb2772d294addf3b61b4dc215f06081e276803f1650d67324801c0a4f48d4b4fac9f6650d2fcd901c0c5a5f0969147d312118768cd73a762e53d3984088be93e46d8433d1299394271a948b5fcbf5918fad1f3c69d9d58c2df72cd9a15ff57a35c86c9e5082ee40900532f7499522ad56592a815a303b33b648fe170e0c2f47d831255298200cd77522cce52f921a79b56993baaa1854b37ea74caf7e6f2d957048fe5e5d1e536ce21ca9ca03dcd6b6539118fc036663b6deae0bdb0df258f18e23613f4e80bd5bca2f7a2d324bace30583592592d82bb970ed33f9753d03dcd3b54a44af04a0f1c00f6008b6f13bcf8f2663e7392e2538406a7cdf15ad387e2eda92bb1de03f74f006e30762808351c935656ddd7ac3499a2b497991d02f54c178277fce024ce89b1a087e883f78b0e1ecbc92dbe9d82258e4c91baac53d71836902953f8e5a69610d35fd011b125ac12fd1d7c655fbb7b1ebc9eb47008676c750907f7768f6d644183a077e1a0a2dba1ffcf7e2a490859a5f60d5d04b3599506249b6d534848ba224230c1864237bf6dc8d6b3e40bb277c02dab92e86aa515aaa62b1ad496b8290075a995ae152c5f9737f6848a2d5ef93a8e7809981a06834ef8b6843904560112dcfb2766574efd57331146186055ee967cdd14d5efac43389a29605d13d561c05a4a1353e53e1b5622a2200ee1fb2e1a8e224a8ec5554bb670bb377505cb615064cb205829acdaf1af3d45060ffa3433c02d3a7ae61b66ece50967b97e1f04a1af278018cfd4d2edc11dd77454ed0cc4ef3ca1dba5b0ba96bb2bdc43f1e8ef023e7488f10d910e129d466443a7adb99fad7ac0b0bb37a51c9d0f1b7c527a98d29594b068af04ce6fe6b248aeb06051d6f66a39d9f3d13cdde5b343f31ec16ea1e63fabe17ec748ba86bf78cd84029d23ca6c543ee800179dad25964fae41cca2acc46fb9f4ba2abecc49ddb33c0314c7a940bfa021c07d44a73614599995ea10d520400f15c87d18376ebfc03c8ed06b9ed713a654a0024cf310b64175d1064188ef3fd8a2134f2d4237dd7657f410ba5172ae081a6ca117dc21c7ffe71d6bf06a71b093737f1ebae5924f2d5f47b8b14526c4831c50f9e9c7c032dc011e511175921f58fb9fd90e2a1d2cf951ad606104a1676c9d2e6fc8fee6ea105239035236859cb45dff68ffa2524619936a9cb457d2c0defe59b5863607e439369f31628e0e101f6b62767f587d7dd8e0a4d4e32fbed3fc65c940d8aa8509bd826e33f0158d4f5cd5085c6e4ae2fd1330a52435eb0745d54c7c8a6ad5b7a3cf5333a7a05dfca18855acba1a5409f714a77297952277658af5e7d5e3a05bacd0b8005d11edb9f2871655c1418f9c7b5851dd8b1713d1f9d7d78c9b915b2d3ecb62e756910d33c3349ddff796b66b2c800a9fdf51d44235d14d74def1b2c112bf88647d00e55341297ed43dfa1312685a260ec51b42ed6c24e46b79900549fd0234412820a1654efc1b702b4ffbcd21a9e0e3323a40e4a136bfa0cf81cf01bd89d433c56148f5bd214818a2b59ed67a8d79e54a048f357989e2046b3e7b587dc4893896b24d21716ac3c7fa8d8945b7b04479a0b397b8fe46e3424c0db7e1d7d824e40de2830e9e432e9bc3e8dc48c98c12ee9081273f5be246347769d0a34e2f0e7ec3f012e850e98e970f096522ef6f4f537529f296f7f3ec9ade921780c45fca74e571eb45ad2eccb950133aec7d4da6d03c301cebe782ba71e3533d5a0879bd6d0c71ce082f6108befc4c6133865cdf1b35a587868b99c36f59811bd3771a75c375321d1d3327b86bcb2514eac6f11a77867856f5a2cb24ff4f72f65742854baa0a3072a1c2e8d55ba7a49807bbf09ad71e000d67b09bba8ea2ec6009086342753a71c9b7142435f0c29a9ad5549dcb9ac289104f48d39d4e196025268dfa1b6a25500e7f5e830053d6bd9dbd5a2546f2b38820b7ec18b55b638f189c2cb865982880ab8a2d0b81f7a40ac8a6a8bed4df0643df2a4dd4606194c8508595e116f39f3166b4f313145815f8ab8a09e6fac91e3cfa404438c8c430dda4d121eef70a9bc0937ff264a4c22904c66b8466165d9302052f5687326970486277a54f458717b23d014ce251eb044d74105355f1ae0b5dcdf0ef73fece10777328b86b0bb4d07276c1c219fdc62892dd095536db3525c18d0409121171197c99bdd8a95eb2f5a235d6ab6cef9830493b2c71bacd3782d67eeffacf4aed5bc07c2524203344cd31ad0bb296be4e478c61149c736ad66168c2d0ba4410e05513c1af1ebe644b0760360722094dd4a26a16d8f12264b25accafdc6a3f55736f0de1e55dbdb28d02a088b276813522c901c6ac134a1ffa00cd61276e1221bbd7ff377d1dba5e1beb1243cd531b8f9fcb0cd9e8d9418c6e9306b89d96e0136eeaa66ebdb248bfd08f402a12915178a6e7d4a612dbc3a878db9ce7153bdc9130d3df7308c13b2e97fb005819bfdd569b0009e9bd1f9a41c7eb23ec33d8cd37d5d05b705b4511dc09f0e05d2260582a4a391c8180a17189b98a53b831ebced724333194f2f6809571401185017332cad227b54dca48915a4a78875967f8ed352fd96d5446946a64b429708192db4386fcba811f000733a6f28b929be4f9aa1d2140ccc3f9616f82f34cc1281dc4a2838c70842102a997a6bc26a737209d42266e815738ec3943516e150279e9dd39bd768a08ad9ceca41993b8e8408d025affd64237b5985ed9a37d52a11bee6efbee9ff1ffe2f060d79bd751d43bfdec4d5fa5e323582f8d735f44c7b1bb75e2ad0bf3e1f255a9e983428b9baa96cfae8bf71d1aa4d3a786235e2106528941f264db478bce46c697bc574a5dc0b956d033eb29194de103a9a70bccdeb19d5cfb9c2ace7ec529ea27438d22668f09c2acbdc9c099bbd5554a6f3ae145a29fbde88fcb5e46ca563fad42cc7e26ddbdc0e655f88057a8a8f6e51354f74db1dd99423b0d860b8ee34e292b4616f7c870094c265f52cc450f98a575323872e2400a80de9d38f539c9b0b9580ccb9ae2e382f3092a657ff50a83ea03a4ba7d620a5b9553d48bdf8ff66139e723e6a1655823b62add790b62e605d90044bec0e196df524c0987fe4b832add37f546b835dd259e7c03de7226a43a6a062b4e61c2ea4e4d02236497c570aeac4ea1896e1e3a19343f6e50eadb273cb5a7becdad20800ed797700c5e269e0c1edf4947c65348976d4a67e16ee547c6c870c36e3d709df4796e7cc0d89f1fc722c7d967d4c0baa823f93f9c4d6c7913edd185bc11c23442bab611ff64c7eb49ab07f32f52008673d80ba54e04bbc5c61ca1f0c38362f5baea6ca93f7a41762a2b4f5b6c31c4e0d140e422fbe379f2686522dccb035288e0e05b537a48d5470921b9d724c26fb8d2900dc7d6f0741ba2c1a35138c1724584003a84247aeb78b30e2d8fb4cf7147785647ddeb68a7df6a79ff84fb008219b35214df5048253b823fcaf329a45a2ae7f959af6539ae7753e3554d2899621795fa4312815b80472036b9f35c1495378f172c7157a9440e62ee46692ace61052d93c57b9902620b22e1c29b9106ad076f25f69fed4106736de133d72ecb71948cc83425a81e7f7c6486e0f08b4b412724759ce41f950d65fa5283c31a4c226769518d0ab71ba583b0022557cddceec3566637a6c1c519999523b44d953ba13a68997032013798fc580d466367a6a04502f500f7dcf4c2e6e03e7774849082668cc07461b1088861db6bf4c03528227a20d2b473e088aff34daa78be838000bed18cab0f02716c9ee5e68f2434a241e6784ba03ca69df0edd97dd72038b6c2e04d93cc4f54309390fe572d6affd4cbb1989ddcf410fb476e3a8681656efaf18b0b7c0a137e1454dd3ca510d220987b5aaa51124e157fa372ec6099a03a7140354150d34ffc1b4ea2bcc2d705f72e2bfac4619f6ba35de7a5c08d5d7ec34b712c1195df5fc75284ebe217430760ab4862de0255f75dbe24f4fe60f90c3419d03630b0da0e292c1088354c075dd1e00694fc14db1878a5cfacf2b7b797742e516d451a52d64de482f4bf60beb30fa565a4e29904042fe36288002bb84325d5a0664003075b0ef9bfd1573f70b84f7b75ce76563169be92df533d5aeb47ffbe70b41ef4deb720d4d2fe7dc11b4483b3d0b226ef5cfd8ba9a4e46bea1018fbb64298c7227e27ecf7291ff64ebbab81169202697e8e76afbe9fe1504243b4077b30cddb62d67cbb120c38a93a9d10466381bcc71a202ee0a75f1bf952ac1c61a001f251e0231fb968a4b39bd089704ca99438b645cfc29920e0f8f4988f77e95970ec2e8e1aa9376bd31702a93e024f654ed26a324bf744d53271e510a1f7cc2ff1155f64822affa2c0d2fcd555aa5dad8698731fca61bd3a3d072cf33c1a8d9f815699cea496017d4bf9fcf96e5a384e7c105d2ac074571e600afd0e9b4e7e8b21e85323381cf7d3ba3431e64e894ce4d693f0c463b6d104dd33dedd7f1b9f081004b64f1d7c848aa7c28d6a815b7ec34ff2bb76d2d8c25f93265ad8b20b7140b0dd34779b2145df8b131bfb71ffed5c835d2b696299ed813bb472be2f3a880ea0e1abda56faf0df6daf6b166c95c5edc97bac1f73d539a4e419e36cae7ee1d9211c1659cf668bedf75fe21edb2ff2b1fc695bbd538c1331845f24839897b620021bdf685c361d30014b4396b358599cefdc9d5f3b464d67a54c9cb29789257101b7153446f1040fd153236c214b0b502ccb8c202c54ddfa527132962133d398819a23ee53b40796801a094627b87364921ae981e57f9f478ddb3fe9e3050dbf30c3793885e6423402d09a54736d9a0fab9f8e5edf858b7be1710b5ee2a46c8ae1dad8846162762182f95a6360199cd0ccad756cea2e4fbb6f17bf7bb643cc6ea0185b530295447254ce398130e4f1bac6a4135c8b9be462422bb6ed88d7d81560cc09061f82989f499b935c855c6446ee4c02f2b5ec74205bb2681a3d39cae951e785e3c3ce8c5a93d9a16f466e1df548f855d70d18613fe8dd861f3e4f486c604715136d512b998cab28f4cada627caf8da082e1b11e2438ae4f8ed17b259ec16b21b75881cfd9f0ae30c2ebb472bcfafd4c09ff390f3a381e2098d9b057cf11ce1a91c61b317ca6f871105d6034a1ae73832671555965c2deeb24c5da51ce21382891a3df8d5ba54ddcbd4a9061a4574b0a4813c7d5fd49797bcd8ebbda4b628b1699345f2327ed7e3a35dbcac11e9704a2d019568e273b2ddbbdda61b96f11875cf03eaefd3c4a503d2499a9524ba9c8e8b1906511a4a85800ee21ad424b32d1b12c661616bf91e9616cf0dd1823f5e33799035dd1bcb92bbb8bd7b9fb5cd1764a79b21973a65541bb9bf58bae57a63de6e20a207369f85b0ece77b1da38822852209e2034dac637154e40c26004c7d2f8d6b0f2f649fe920d916a0b9608b19bad11fd19291c1d7aba146796c8bc076303184293b05257a2e95aa1b35be93017ede6c3a4fadb0c3b384fc1bb3ba2515ede2ddf470bbc5279817dccba8486f20dc05e84fe2b3674dbf6cfbc4ea1888a95c385a682b198665ea24fe875f91820c6eb30738c6c686153cef7a45b97d5da153ed62a67f725af666c8f5454143261b2e0303ea261450c0505cdcf6d8c5a1fe7c840287ff532d632de4cd4b899b0725d247a3eaf394fba18917bc67089efdf773445090ab333538b9db6dd2aa34bc0189a235ce7315920cc9633d5dc1c072cad0ebe0e95a07a0a7f6152bb14345c5118ec9dfcdb51980db3cdbc0b4917ecc57a03dd0c8586ed23145fb8af86e64f92af16757fe4fb59efbf68b60493d51df19d06df73ff34828b9b0805b3a12512c0649e85e611b0ea226cd5195e88f479ca348748e3aceb994208fdeca397d1c930d13a131ca0eb5a309eed385c046002c368bc570ea227bb02cc92be5e30820fd2444558ba0ba9ab3e990299dc09f450bae4c4c92829a42c6943c451cc858e34624e06233837107b33fc5cb27ac7baf78d48735d71cabebf68bbe8437ec15e57a1f5903dfda34ef89110f00cc07959025cf325ee02f81046cc48105d3e5930bfc20093ac8cbfca0030d78cc010018beb1b3e689d52956baa0c54ceaf858488e222ee9cc8d4c5e47162bf7386e4325e3a513e6d4f4458f5e01fc343e340124c0fd1e2f5897ab3f2279bc761e37a8c20cf48a6bb27fb6da5bf0a5f67fca6ad93e1a0e9ae19d75c9f500b45f68de80244090eb66f42dab81886a78645cb1bfb279310f78e982ab46a572920bb2e18383e1427da1df92db1f3665498c719a7af869d222c0107166bb0aa5b0885983712566f8e0b4471e69d88ebdb7d0173345a2cee80d8d1c4837d9de3b2d429fe96aa4f29fce440e52141ae4571cb1f1d7735af86c07240e3b2aa1472c3c81dbc49bfb3e866b43f778158a3fd6641a773da5241474037cb0fc644b2a88c90ee66cc4ddb962336347ccaecd1f4fa8eb567c0454465511badee113262abf691cc75f28c0236812d76537940e970f4488fbce2ccb46e70e0fec7749cda728fb17b5b1ff968bd3b6433dd6dd6cc619e8ab2eae099ffb4828f906c82568287d2256b56129e8b83944f9ee180627afbc9d510fdb7b392458129e691ecb7b6fe77c01d70bf2628fe69e5f6e962f1029ce626a0d18886241452f8d1c3dddbd8cb59cbec15b623aa1309d12221f7c62d956815c924114ec867727db4f836bee8aa950940cc1732aa52d0e741ae355a8c3621ad068c043f77cff2005b28ce7c5532ebf6b7e51d10c344c9a9b00836e4fc37f7eb1176d640c19060aa65efff54d1d497ece96910f6661001fb199d24c3cf997ce1e401788a382ac17dbdc878bd81276bd23b35fe31d93f4d7cb65b722e65d58fe039d126524bb4b26dadd32b90572e617c96576afcb2fcd9605b1d898b2366fd9a7cd0c23769da92e46b7b8c48234c4466b0be922a9525a8896b2d6cc9651b2f6f291cf2bd72b8504523ff71405a30800020b61ac9a1e6b61ca68f9859f6bf1106f2a0fb66d5da305a3e48cdcb56d89222f017078cf35af105ab2b2e2cdb7adc3d71de732d2f22008d6aec49dcb622b4b6033438a7b990f6e08a2d41909392a890d6ab2970c4fcb2de53850b4466695b93e50172ffcc6ff47c882aa9444bb09652ee9f5a4f43e8219963fd677971a8f8f1fe5d09bd27ad0676c59c6b99cc2c46d8a886716e16a0a2b0e85311370de1c8442d4216cb8ccff3d36a6765addb8a188408eff04a488a630620acc22c938e923607f077ab953afc8412ab4cd325b812e18b36db9ea03c21a2fd212df4bf20f8e47cfe5c5285a3706f8ab9863ea128054bafa1fe192afc228dad5eeef0e864876e671e4a960e451d5cb11204eb0f7dedb1d1bea322aeaad09ce122c5b6d149f0192436aeccf959f73db3968cbe69f6c2dc955c1a8644eff00b33c6fe57db259f1f62f8df50692e8d8c36a22c77234e0d81dea745254adbf2b5b16738d4e4e8f30d8073c01e34d8a784bc6b41ec8e2afa5c8d2347b145ed40ce970cfdbc28f9bb3195dd2fb274f9895a29a996aadbdaa4cee11b546cfdfdb0822416fe28cab89c713f9ab14d28a3d22a7033c1ada634ce7928681369e9b6115d6ee8f939ad0609d6eb842084c6ca07a055e83ae2d1a0109498f8b7ee9bbf024cd8f5ffaa9da4f482d9efec43b3e1c77e8eab2f44007269b14614c932ebdd02093e404029042625197d41362d07884031eb192890e18ac0b1e4237afe7402006c7641b87a6aff30a7828f5a61b6b79949489013a23ae8f138bb6458a72798011945363118e8c1728e09565b5ba8e9c322b281d50c81d9ff94a18612ac41f7e1e0557a57f3b98074694b3bc37edf005f0129ba8ab7aeef1346dc1b94cc283ef2be1c91a0c0747ed6b472d5a6103ca79844f6fac466e756e51599951b0ad1c8b0f4dca5aaa01292e52a8a19a994dfb8ae96163872353ec485ccf1a2c6bf2b0a316be623636b1118ec0511c5c0aa630833c542c80ca87898c8d8a0c9c6432f9200dfe1f87f83f760e4779993ebb87b600763a78a1e0022f2a3c083730c09930e2185bb62bd0f1e1ec17991ed4246cbcadc9d17af7f85d2583b555b293b85cb3ba103959d3005c53566ecf636f2d99b94266ae10f20d7941d94ab52b1e66c99a2a24903de01d4c24236f18e0a72f1485b8e8e0eba5385dd2ccf3da36f42f29f29c0b5c24e7cd6e5d92ca2e92b79c3cd608a0cbfe8b2940aca50db477bbbf676188191656e0acf10df4d56c25255747160742762fc2d37e507e563b9c2b2158231c24fda5b8762d28c2cb390432cce54693def5c5d8cf3f1a820bff33763673116e0bb80254eea5b1630deb61300db47c2e3e9d43c0ae79ac6d8d8e5dacb30b421c0e88460520595dd83aefc1ea925bc7b76faabbd79339a6862c8b8ae500e61ad9244cffc3946a184f713d5239638a2e1d795aeee5ee445c9f9aab6409e735b88f021554cd4ee080447d929f96556906a5504df942919385bc5e64cedbf2ae394d27ace9d675fc4a5fbaa1418f1420ae54e57c8343a69843ac97c5ebcc817820320e5d6c9eda47e171d3f5a2edb52448f00acda78580b066fc588b39aa09638a850a2a0dcb9dd824a85d72255623c47308a71ac9c4b4f6bda9d273b1c1f88b629c2d80cf2b46f3ac5285aad169e96b067b01de824253f4156311196ba6e4bc21040cf1b3cc75b68e63af37eb275714561af525bfbb82497cd4730215975d8a3cd61df43394141f318ee9571c1ed93198d282288da8bcb5b33e3c6f1e9269a763041064a0d92da154a1b43895e1833b6bac67e096996e0db5bc1447c30bbdcb5bc30253f837b9e9f89777891e37357c8654e1a5d5ea0262afd58136f1c1c969d3950173e90b1dc6b589a510c7364be31128cacd0baf495fbb9161024b880c18e97e2a3395c5515973f8ebbdf18b8fb573eb46a4e8fc88c2f159cc6be94c7aa35e0d1be4bfc35f47cd93bee0e1adc16a0957f824a9e24f31a32c372e97b6a2f9a71d147f33857a0febcfe896dc770f9a2a86a7089b55a396afffe4bb21d5321e1d7a1230faf580d4ac8a0a7d8f3fcf457f63ab27cc54c5820739bf6437bc43eaecbb2cbf7af588268ced22cad9f5a9254d95c5f47127387655ee36dc94d70d1392960825e78b37cc551183bcb25b98363522c0a801206000c6ded60985718b46ab2400ad0b22c9addd5f71d90a7578913c0da692d7bb9230c78d6f6273114df69d73210957b327089cd3495ba001efc730c8f84d824fdf9448c277d02379b694d0bd1a4012ba18c18efb60b94d7fb0fb750ba948a5c73e55ffe464ebf7acbd04fb8124a0432f67e42bc4409433b85588fa6d16dc93432fb633ec1170e1de3d258e7e287d7479896cec61832a3e7e5e257209609c6af97c315bb08473de27be705f831301c5336b7f37607888212f40b73bd0aea535cc7148be0f9cddeef1f397b8dc1c1bd11368695d776b6d4f51d8b9a3ff091dc23b438ad3a8e00f435768543c9520ed4fde81fe5b8cde1b1b005cc5a470003b8a12d74d4178d03351cfd620c9a41861979a4209de561feab4faa20b540fafe14a2f47815d1d6f756882735645e30f50fe0714b48545aad0aa47edf4cf85b77edef8420cadbb2ab055537896841d009bb5d21aeb5bf32e1a0a2c6d2f7a0044c7bae33fa95f6264135534b5aa1a1710398fce470a822d6e5bf4a572fc5aa091e664335a8f0e5f4b82ba80dbd25d8d050d8d517b496e2067860366e267a33cceafe24e53584565511927952e43f160218634834c0bd7a41a100548c68c54d6d47e30ba6841925ce0afeb3aea68385600156ed62144c5a67173008b02d76e28126ca00a2819c0bb3eb4cc92c196f8932b0efd5fccfbbd5f77198a0d800e01d63679db7ee5dc4213c4a1e82b47ce07ca040540c023f617d52c1ccbd2d9e825d8f60a2f6cc6c7e0230f8c259659cdc08211739844b03202e6faab271c897dfa7bef337a5b0672ab13ebe547f572a089fe304aeed0c9d0c871f87128dbbb634322c5449164a13028e7f8e46ea7eaf5861a1eb1cdadf95c5ae983ef642bfb86f103558afc4571483cb7585a00715580fdd806c4f741b7246e5655a575e85661422ec7b71e79535db2ab86ca6105124a2f1428d9f82f7cf626d8bf29d5a074bf2e8a64a11e8b415465ec3366cc0e4af15eb00af3afb40024843ffe9126a492594cff90682e2c4afa7237bc901e70a081e68a01e0d9ee7d4bfb5b07b2d9102409de25c281bbbdd10f2bbdb04adf4a2e467df3108a7206cd0ab67ebc298481ce73bbff082a5434b01e26d8ec53ea69f7dddf6b08619279b0aa0c5e4f7e0ba18b37dfcb3ab7762debd778e1675539e2023fe00026df8a6518857f2cf15a8dd27eb05fd4854710b80ae479cc3dbb4963dbb6140129ebe07739ab8b1f23d828751d533ea3630788c03835c7ade9de2fc725639be627448ecbcaa51b958aee7c6415c041b815de8940e427fe2152c77639f3c5e7db0699e2a03a056f4a0323541d174c4d8c1d71a7b04c664aeea06aaf2f978496231f2c0d82e6d3dbd8f29d81dcba037666a0567564fed3a90a34f4c2a0864fe6a118678798666318a2f6c93fc93d788c258f01c5aa450b65f4927ba6308f7a99ab0fae315f1aa96516b51b9a35b0bf04a303290f7a4b0f107434e88c9b897d8ef32dbea8b90191f27ec6c6a71c3b576ccc10b6945a2d651b526b36c86929d7dab3195b1cd7777a95a1dccfab7ad95d9815d143fc6d86f974cd07417038811e143f157f37337b54b492a344d0bdd2d2dfd3f27a74d529898ae3243bd532983b58d22337c69e87af024d6cb0d8f29c96ee48114d2e7b2c1535ad6b00e178977380bb17569028d04252e77d46764676068c2e1d43bee814688c6881424210bee531ef156682b6b037656dd8a82fd83ca1924074f752a207b2585ae4c9ea6f4c78c75d1ed96542fc65f19260e0a755919c2e24659105c4c9df00ded15f93f442f6887c12fadbd7a3c4fe425a3f30f0ddb2f375e471a373f27e43c8a494d9678e8e60931292950805f2f6b9f28b3182436c2a975dd365a59195dc4df585e87395c7c3a4236a0085c40b7af8c4448e830057b33fe8df95a33647c37c55b225bd5f8b1c591db855703240e2f49d63e43c62f8c30b2a39b67bea6e9a9481146c046af276d611b6ed9c39e7cc8f66dc7f9b386ba00528af573aea6d008433d39881470fb56429fde8616fbc9e483e1222d447832cb7bc58170c7ec86e8f4de9070e07eacaf608aaaf73c42c827990cd0c64687ae8cfa0b373da849a767ef3b63ca08327663a0c85a554dd2ecef748e891cbd90386b5737d945603b56c887986f9a306d7de4b18564645c2a77acd8cde744455ead6f28819282b59f662f7da89dec13b7623df1b44633048278c6435e1449517b0235bc9f4c2cf39aaf34908726c3dd3a07a1b29aa41f4a0e91cec6a4481c3280a94398f6ff1b0b07b39ab0e6668dde438308209a6e0f5ddbfbb30481e978e215f67468f31eaf930dca350f0fc53bee83f988b04310eb11496a8955d0a91b51aead8dcd1703cdc4b0e7f2f4674ae3e588b595b2a10a00f88b3abcfdb5d1c8dc9f8727d16373ae7fd05b239f7e5bc22909682d90901653987feda97752895523e956cffbcaa8d3f088d280cb19cf4d71f010a671d8b1d6227e7d72dbea884042ee1324bd31a5fbb7ed49b79f04e834245a552b5157fdd0e905e98e890291c69bdcdf6307771876bb8288809b44e63bdc934710e039909b2ef090b39137e7420aa7ef195656037f3482b4fc10e554341d68ec93d2294fcb6a8d69542b31f9942a59c4f4503e188912dd1cff39640cc2217e1cc871865202fa3c02e817f2fcf395c446a3eecac5d97950a44ffe1e8d299e064e5512aab2c1581a7dde08e01d9efd6c7fdc561b8c7e6fa75020b9534f2d3b35afc0b0e550b117eb8b4be6223be3b32b3367819c099e5cee581ef44a2cc483073514b0c317541eccfeb5a470e62a4a7183b1b22839e1a1c23bf58b6ee43d1fe87fa100c1bba8cab5dc7f68592841c2f9cee4e068d6791e55f4dd54edf7ecf336cef3510f331f64e0bfe4a9226e772e395f992634eeb6219cc239dd5d8e03cbe1f45810bd16714d1d83b871586d6c721608db6150796aa7d942a7d6b7f37e1fe54d5910ff184c75453103ce3e832ab21e3f16110827890bdeaef035641417fcb9b2c3c142549f5302f25b6f4fd1abb1b586555dec7abb108c3d988222356f8845157a91a934f239cf4d919aa5a54e5706f63ccaedaa2a523aa75b6cb425fccd9b302760f63efea5bb28d9047c8ef3d06ef698f6eb8d69cc2968256b56ba2c6b1aa325007ccc054bd8707ae6a7e1136a7d734ca437bc91640e819bdb1161db6285b848209f695c935d12262fc81ea65c312cab7c604cebf8a7a8e32199912d3fc172f2d0c39e4c9610d79d226d090265c7f961ce63aeab2e824e029ce1b89601913496a0dc3486866c4ae74c9f7227bb2bc821fe2ea1a265a34e961cfe8e0548f0b2ff629b111d35a7ba7b41a2e65e5412dcceb796b31d0d87b9f1a4d24b028f2377d5201ebd6d03eef5c45e78c52247c3282fcf64558e43ff15e1d39533389bd7a86f4037518906b748ee732531e22b29338f4a4f42a0f216226011632c4fc7a59287208482ad4d100cefeb5679cb8b4f6af5aa6b87f87d0a7815aebb30da0d927d3e613ba71984e13a4480217ff47b1055dbef0ed7333ff8403935f10785b4d212031267080070a80b5f94ea5c4363d2d971036e8446f2c055ca49495145eca1ae9fe2992670c4c90a20991d63058dd4a885b9ec25f2307e6dfb364be99f0ab596b560e91d00167f0fcdc484e4510cea659d39a58ea6d94188082c301d82be3a5beaa06007fd0fb2de248dbc4fe010a14285eb1c67ab1035575cfe2c4a46e7169be0224093f309708216779d4be610fbad6c37027359a6cd9af3253023c94bab2500927dca5e53ccf2bcfabd9f056b2381845a855bf7947d600e6f85117b69e57ab64124efae3d5bf327ab6ba6d4526a495aa613a1c141b4ccbe97dce4d2174af49751a32d049a2624f7c385673c88d7fea82a5c517b7fac655774c395cdce73099b60602b40c9255dbac3b084808ab31e76a1f050751bb6775dbada5d84691d2765327ca9346b73ccb979a8d2890fd43bf51eedcd0a78af072f64ee41abb954bacfb0b59bbaf1fcc4321f763a03b112189c055a31078afd0954b7d7ccf311615d3d01712fa34ac64c32e7ba17168f04876190ff32077be969a20cf83be9d04ecc5ba2287f65a7cb3a473300d133636ba395a1cfe1b9cfbe68f106f114d46d453ac6e058d32c610ee7b8e0025aa2f8fa532b3a6a45214fd7df4c35ad5112f545fbde314772040257c0366286283200970b7ee56d048cf3f6725fc8d9651a8234a6594149de5e4a643c98e7261b75a27baeb89147605258f470c0291bf22880e6a900612c1e251dddced6445c3dcdcfcccc1c36736068f9e1f7bbc4063895df782b11510427a865028d998dcea094cc2f8d0fa2efbd0040d0b118e4415dae71c92cfa31dced774d8572bfb42107f480682ff1c5ef95f657787a06997f53061d44cee6b2033fe9a65b025cd7e27764e34562fbc6391cf8d31623f31b68f03d6a1d1404d04b8c60cbb003fd65b2886da9263ee92021683e1af25189631d1725df8c163572d5f76b195591eca401fbd5d43e2992245ea9a4009a8ed600fcb0962ea5b845a18cd73d9f8a31eab2560b9f00b08cc4517309f7100c34df4c3aeccbb3df8eb49244478321b4748aef75677808a6a5d92a6964f298eb5e5337621398b0c1a43550700ca5f97215da057c3a4a16a260471ca887e12ab3a9fbaac6a61c67c38fb9b1c8b2eec6c0535832e1ea214b890bcc72682c5bddb39f4ddf34500a5cb9a81aa2d3d9f09f802a02b7324b79e9681debd2833f6238b22ae6622ba1a64e744f79029e3aef42dc679892840c82352fa28d9140106d6c2ba6ada66fae52bff965eb40eb54e3e94c92cd24f6ec52eab577e80d8c8e9f2d39d6b8d69503967d9809fd21036bd833a94dd6a85559c519bb7a2769b6486b00d34996da228c08994f285b22f7362c30b976680185fcb2d6c1a9fc47ce47e77d3af5b773534e2ce7c2063dc0f148ba271ab4c9b17837d44c14d231fe85b7644462249299a68b506bff87f4d23eee74e2f9b8ee256ebaa6e03b545afa196f22ef7e96d7255f5e79bbb786c1c165a455c205655a47926176b91f2d2c02ac5c00ad29b467bfdbd51b0768b35290d4bbf22a70348d22efdd5235eb6e682385197b4e17330c46c44ca6d5dfc67912841ddb730006e521446f952117b78effc601d10372438c4ba4f6e2608e9a51021960d7a065af49c4c06053d32596d990c1a43cac1658dad807ae48de098e4172a749e9fc0fea8a55e57cdb05166ad9692c00bf103ac30881c6ea8c6b86c244a0792663fbe195bacf4bffe700777c5fb07db9bcf94404ce90d0ed74a50febf9e2b4d7bb4c6dae168809b1e8687e2e668d2680f40733b7d6877b27eaaa2021daa212f5c9650237c6013810fbf50f8c160395a487a5cd535ddcc85437383d7fd401e42318881baf153d5c6a0f3ae7c933daff9cd10c89c0f7d9c1253e65995e7af082ba05d83761cb163b4ca9d55e5dbb43c74bf3f456988438da2b3e62a90097a188bb1d3cfb110267f28a328777328ee715c575923e5517216a551b7e4bca46426c9def697692dbd245316df1b3d3ebc23d2e7f26282bb8c3c77383b633d1fee09e269116a30414bd9701c5e0878caadf29773b5e4c010a7f519d6c8ed4ab64a0b0dd617d9c5b993d32b538129fa4404c7371453aec2448ad60caedef25217742955e9b0087cc084f3750b6474cf9ccc1b91b93088093fb9b65512bb41c7fe1325742cb05d49c540c0db2fe8cecba3202fa75c3652f8a0632c901284718de2f0197e4469bc4e63f957318e61dfc0b47f3612c833faa62fbbc758bea7747a919c10434862eebeac7e95316632cb2a81e786f3148d551e82d4b5f3952dac0e84a81a35b2d833ae99e441f064acd0efe3ec75d0180f0dc898edb2ec4e6104c43d9121095529dcc976329670baf3bc91051208b4d62984741144c2795189811c35d41cb3ed4bbd682aa625880beac8855c5fea04d41e00eab4f0d06318c229f650e10fdb194388dbc4bbbe4e95fd302d9cf15deba158f7c686da98f0c51b56a9c3bf2355c510225e1b58ab2af9314c08bd8adff1ada7c9a457c0c1deb47b814f2c2f2c04d7711fd02ba586d4a50ad99a1723e5bf2916b4b5ecba863947a98fbbbb300bbfceff43f6717beb8ca8fcefb59c672661fb46da69df22870a4c52fa4cd0f22bcca13d376d46c173fc2901c265dc09ad688e67b9726845e03944ee966ec01b285bd066f7c5357304cec840041d33e776badbda4e0007a505004e070b9520ed0794a82f878b218f741d0cb293956b5273b429c885d893d1113d73aa26c1d423271b72ec18a3db9d3d0e838edd70c2ce3869f8dfa7a2990839b8dd9e1172e87b0a636a0eaaf2172cf943d025179ff1617471d89f89258b34a3bbca00641a9cd81a528d6c2a802448da3ad3d59f777313c16a671482e39b8cb7da9ac35c1ff2d818c053d772d3b5a8a648244ccc209c808ebe141ba2f9d5650d0da14819aadde11048336a6121c302669d43eec43639872901bf281af7a1688aa3d3928ebdd90712c4211198d7728995d57f5bcc090cf7beca8045d513deb1b175ebb36796f0e41834db39abc7b5ecd1a514dcb9228530e81361aea5811ca208a650daf968e6d810ec1c14ddd45f0d5cc72b4bb6c9b567381cd3f8ff34d9591c48f845ea50846b056e828c137df3632d6225d8c3c7df355ea62f2e0d113a7e36852b6764afb9f11759ab5b4dc7063a18dd2b491a4a3d073bfdf8f4d33df3f339a83e3ba2953d7f09876c8f4e48e48b158ea3f41eb7f19716f44512bf7cdaaeb3915798ce22707b1a45579944f3cb644003ac2430ac63799964bce8f0125b487e5e84f986f46a8314921030ad6e51af6e9a654d191b8562e8acab6542844de111650de2ce37659f29baa8a03a66a40d48856ec10f47f554e884258e4eff26ce0f15c6b5171f95812f14a2b03d6b68f4bf5be1acb77702105951d5f13a423c1b21960b0c129fa99d1a8dc9e0aba8f76e0f8bf6db5523758d5ec321d0857a2df1134b5dae2faccf3b2373925e13c17f70c80783a3664e984c082f251bbe3c4698dff5daf3c70e5fdf14c66f792e18c3133a0ec195583065986f5d8f297f5750ed78aee7b7fb6efaa11546abb4feb014cf7206953bcb52e5f16ac8d232723683674bc02854efa9c8112dd9d7b31522a6b7fb653afd18e987a926fbd5377b5b0e415cf2614bdf0c26350102b6d8a26892985e76fd744ab01d06b524f57d634fc0b69a5d91355398d6ac1ec5b7588982ece0b103edde74a6f327e6ccf694bc534195fe0effc7483f13a12b278acb099ad84fbc96b27d36269ba06a660e2bc9093059a2acb1998cf3f1fe129253e64f00669a4cf7480180edd5c242544581499b9a233f0ce088acf1e4db14f35ce5d343461157dbe0adb07355d95d2cd5aa6dba222b6a702af1e325d2bc2d106ec5d71809dff7aec68762661bdfd5dbfe456cba5a7c150c73da2510f75216ed7e6f631af32c7e9c7884b0ab0cf71a834ddc4c825748eb5d35451d8092402dd68235d74c633a111bd167dec9a6371b137ae89530106a928c87743b38be3d0076cc22cae0c2544d7e6d49cb00182253dab5dfcf6cbdb378f56b0714b9d4bf2af75f56bee1cdbf00f1a0af44ee6ca3d7f8b3b42d38f87bf1da869240dc6477092f4b09a0af31220825e29d275eeb08977e8d3a6a934cc16a6d562b2eca001a04cb8d5ffe9fe85b21a785e261721288e9b5b75b400545a31d0d53270608b10408287f21c644121d27ec9aa9f50ccbce17e7ebe37a9858da78ca1d207bd9d63708d64375d1c8b872172ed0e50612b60c4b049e807f23d6fa8f4e61e06d52047a034d11c3fb63ed48fc75af072a1084b3d0982b796c9dbb70c295e4c938688dd603457e18852f8480e869f8aa0665890d85a78c5458b77f682cbde6b7954b55d82cdc590f35d097cd61fc65b0dbaac9cd05916c807ec0e318de09c55d6facb6370f2b077d67767da3df753109cb25329348253b3bb8a474b8f2383d269e7af7d31188362ee1c47b51ae57ee87cdc133d212b205f43ad871011e82684b3251a16817b80922192c7ef6e95042838827e749bc017d1a96c6e69f4d945f6a40c8067809380df1270bf5638a0dd4f2c7b7af4a5798b4280a4c98abd97c99272b34488d055c100b6e332bb5d2bf6ba8f3f5945bd877926df3eaab055c5d42be090db0bf02cc36716e8608d8ddd908e019707e77d50ecaae8f83a61fac66303fe0d980381913d591367d4749326ea822b20c1f015974fcd5ec6d659aedeac7b56f6fb7891706e619141f6b4a93840023bb2342e759da6438e07ed974a5f1e3d506144c960bbe067b718cb861fe927716cba85cfc466eed0e9d2c1067bc7f9e356bc5d23c1094541933220c2bef5ec7afe91782ec245208d58f93a08ec25eb59710a7362303daf04d7a256119a10ba5f6653564dff54f8eb78577360ac477abab5ce87bf70cce5000e4686fab8ca621f1c65dda94eb8b5892b1aff79a9a5eb0a2e65efd5314e0969768884cab782cafd4b81555a818559c4835fb6821ec46fd08ea418ac61ff343732becbc72450b2faedef7112b951edf2ee03bebe4b71365755e6d551810e06fbbc2176bff93433750bcbfec05aea120f193a1e4c5bf5993e098916f96a2646970667358221220f84601a885dc9dbc8707c85700d569beb6eb6ff5680ef10b528a7f7b203b02c364736f6c63430008170033289691d7705934b5504ae4bd7be283f3465af66f62fc7f1e66f03876b445efdd22a0bebada6ba60c3e190e9e8c2b1420244a14c9e02868b862c7945667416f9a036ab5249fee75e0644ed259d45fbbd0142b638e421b948f5dc00cf3ff14a5301bcf8d4f8bf886d2c7960badc94b3abf6beb4e43571d2b4b0f14928c10e0d5942d8c51b7fa4ea9ea16765377aaae4ae0a416a89b600fc0b8ec35e9e6e56219761f2c636b4954a865946d69fed3ecd2bb60a61af38fa31f2a290ae28915d1f6e10b412b14d9dddf3f9031ffb51eb3f73602b9e49cfa9bec4a02ec9c0e3020ccc30ae9889ae5f4f6021af9e16dd1f2c445ed863fd6a374b329337f2fef4715350d07f75b300b401d2435b96459d2b64f6f848411f246d8478199dd2351a35c1b5e195a26806d907b6d9a9a9c235e09a48e94f8eb8da80f0d40bc4143e3d006e6d22d0006337513747c51f8f3e87364d2852113a83e586ef629c88cee6d4cbd422f257aeaec24103ea15e4592c32d0ad9846ff1a2f3a836e0c19947980912b9006b294bead7a3378f80183af735f6bc8529ddc73d9e0a35d594dcf93524403c9e3e0cf84e9163744a9a65520f4b8cbb4ca35c428d1c4a5789e11f42636c6d19747321f43b1ffa301d565dbc37ef1eb2ef669b8a1876e3754b79657b26fe43c845ce1e558b2ca618dfa02f0d640fdd45f56492a577154989cd09523829b5e15f2d6204db437b7b4fa0f6eea95403dd25c6a674b3e81be98ad4532affe8507ec0538020376c16b97ad98b8dfaa6f10d42a3c5e264c56018d32b0e8af528db157eb60d234219fd49f941520883c13c1f01ff7b2f7f512a3046f91d33cdc3900ffb9de91d754d84438f79e6b701f7d665d59755a7bcd0b63f7c2da94b737606c16de1d3287a08af195521f756271ec64bdc4ca8a7a95fae892c0fd2cf0c148d6c0cb6530e16af35936b356d5974b385528f6d9a873568eda614ed0e54be4494c2acdefd0fae7f745efa5884dc82f1595b5c10d931ed6da07b5dc4bd6f99dd5318c7c2a821f41494c6685503d748b45672c65d059260bb205113882458c86f6da7ea38131ec11e919c80981c8a905161c48caab360994e8f31cfe88536c5ad8b2c36003914f32ba1f584bafc3aa283f79d5d65e97a6a280c7c51cec192ee9e48d593a2be0cec3b3618ebb60152be2987b910940e79a421d666a71764f25ded99159de90f075a80d650b5c6f8a0b3261ae5ec4c5a1b53762f30c559aaa6c501e207c2514f026c5d81cf4e6cbade3622323c4ee3b4568333e79504044d2ad4d2ba01abefc5286bacad6fb92895c85483e837d7c821d3f7bd612ddd932c16d618455ee62a4511a11b68cb7aa85f42325a3d0fa45e0887719f05c9cd472183b1c7c78eabd0ef0674f14710e453bc1f9255babc8d2aeb3b2e321c68e6871b54c285e71456be4d11bf8be1878d5dee6820ec405b079360da81da7b79f29aa54096ae195ea1108d2a02d0a645dcfcafb2235e7f9ed37df27c3f7cbd5ad11ee831fa17cb36881d3f1e2338342dcdeec5d3ebd82d4b767ed93989d9147ac711dd07d8aebac0962c20174c21361611783b0dc90d87a6128cd4d7e427cca10db1d713495d8281ce3dac22654673d8af40026294acb3c0e51f0f367576d83a554bd9ad72de06a796095e08f410159146e32feb7a585ad437c4a48ff2109d7f74f58e709b66c292e1c690160928e9343db00c99255a53ea3948b547d0bb68332069c2d5ca632156a53ac81b8e0ca895ea976f5d42029c964ea52d622388e90f947cba08b3924b470d84a02f21e5bcc52e6d794afbf44a0dcb938554c7c94fbde66c1b7965ebb2d266d6be106d51a9231260949c37fcb7c8296c246566259829e98ef52683900a433ad7d71f0691902d412d4afe6e49f546ad03d739f42a159af9530d717c01a3e9bc86b726c15552cf455e161693ea7f01601fed166f79653153fb5beec9e8393c1efde50223f9fa8192ae6be752d29b47e8b8a75e2172fbd4c89cfec400a9766e1430a8100341a4e94a5cfffa3c6cfa1be6ac3bf6b0c4fe578f8c99cc4f67e4d7bf48861a9194b8c654ebf4f3cbb607c8bff2ddebaff87b8bdec06745ad4ed802728a6f0a7e869e75859fe47e51b3b79ad155670af4e6780d3edd3c13812db0197854d30ef4a576b0bef4d037549aa24282378e13b438fc9bf49efcfd65cf3aa8935d28199af24c0e98e72c37d87bfb9386003c2a0192ccf015be777c4305d5eaaf0e8106e7f2d897f05617580ccc132040f3b83f3fe1a496354b33f39d27b15fb2a5fe07968d5b67877cf32da7858c85479a891164a19b1ddc26fdb2772d294addf3b61b4dc215f06081e276803f1650d67324801c0a4f48d4b4fac9f6650d2fcd901c0c5a5f0969147d312118768cd73a762e53d3984088be93e46d8433d1299394271a948b5fcbf5918fad1f3c69d9d58c2df72cd9a15ff57a35c86c9e5082ee40900532f7499522ad56592a815a303b33b648fe170e0c2f47d831255298200cd77522cce52f921a79b56993baaa1854b37ea74caf7e6f2d957048fe5e5d1e536ce21ca9ca03dcd6b6539118fc036663b6deae0bdb0df258f18e23613f4e80bd5bca2f7a2d324bace30583592592d82bb970ed33f9753d03dcd3b54a44af04a0f1c00f6008b6f13bcf8f2663e7392e2538406a7cdf15ad387e2eda92bb1de03f74f006e30762808351c935656ddd7ac3499a2b497991d02f54c178277fce024ce89b1a087e883f78b0e1ecbc92dbe9d82258e4c91baac53d71836902953f8e5a69610d35fd011b125ac12fd1d7c655fbb7b1ebc9eb47008676c750907f7768f6d644183a077e1a0a2dba1ffcf7e2a490859a5f60d5d04b3599506249b6d534848ba224230c1864237bf6dc8d6b3e40bb277c02dab92e86aa515aaa62b1ad496b8290075a995ae152c5f9737f6848a2d5ef93a8e7809981a06834ef8b6843904560112dcfb2766574efd57331146186055ee967cdd14d5efac43389a29605d13d561c05a4a1353e53e1b5622a2200ee1fb2e1a8e224a8ec5554bb670bb377505cb615064cb205829acdaf1af3d45060ffa3433c02d3a7ae61b66ece50967b97e1f04a1af278018cfd4d2edc11dd77454ed0cc4ef3ca1dba5b0ba96bb2bdc43f1e8ef023e7488f10d910e129d466443a7adb99fad7ac0b0bb37a51c9d0f1b7c527a98d29594b068af04ce6fe6b248aeb06051d6f66a39d9f3d13cdde5b343f31ec16ea1e63fabe17ec748ba86bf78cd84029d23ca6c543ee800179dad25964fae41cca2acc46fb9f4ba2abecc49ddb33c0314c7a940bfa021c07d44a73614599995ea10d520400f15c87d18376ebfc03c8ed06b9ed713a654a0024cf310b64175d1064188ef3fd8a2134f2d4237dd7657f410ba5172ae081a6ca117dc21c7ffe71d6bf06a71b093737f1ebae5924f2d5f47b8b14526c4831c50f9e9c7c032dc011e511175921f58fb9fd90e2a1d2cf951ad606104a1676c9d2e6fc8fee6ea105239035236859cb45dff68ffa2524619936a9cb457d2c0defe59b5863607e439369f31628e0e101f6b62767f587d7dd8e0a4d4e32fbed3fc65c940d8aa8509bd826e33f0158d4f5cd5085c6e4ae2fd1330a52435eb0745d54c7c8a6ad5b7a3cf5333a7a05dfca18855acba1a5409f714a77297952277658af5e7d5e3a05bacd0b8005d11edb9f2871655c1418f9c7b5851dd8b1713d1f9d7d78c9b915b2d3ecb62e756910d33c3349ddff796b66b2c800a9fdf51d44235d14d74def1b2c112bf88647d00e55341297ed43dfa1312685a260ec51b42ed6c24e46b79900549fd0234412820a1654efc1b702b4ffbcd21a9e0e3323a40e4a136bfa0cf81cf01bd89d433c56148f5bd214818a2b59ed67a8d79e54a048f357989e2046b3e7b587dc4893896b24d21716ac3c7fa8d8945b7b04479a0b397b8fe46e3424c0db7e1d7d824e40de2830e9e432e9bc3e8dc48c98c12ee9081273f5be246347769d0a34e2f0e7ec3f012e850e98e970f096522ef6f4f537529f296f7f3ec9ade921780c45fca74e571eb45ad2eccb950133aec7d4da6d03c301cebe782ba71e3533d5a0879bd6d0c71ce082f6108befc4c6133865cdf1b35a587868b99c36f59811bd3771a75c375321d1d3327b86bcb2514eac6f11a77867856f5a2cb24ff4f72f65742854baa0a3072a1c2e8d55ba7a49807bbf09ad71e000d67b09bba8ea2ec6009086342753a71c9b7142435f0c29a9ad5549dcb9ac289104f48d39d4e196025268dfa1b6a25500e7f5e830053d6bd9dbd5a2546f2b38820b7ec18b55b638f189c2cb865982880ab8a2d0b81f7a40ac8a6a8bed4df0643df2a4dd4606194c8508595e116f39f3166b4f313145815f8ab8a09e6fac91e3cfa404438c8c430dda4d121eef70a9bc0937ff264a4c22904c66b8466165d9302052f5687326970486277a54f458717b23d014ce251eb044d74105355f1ae0b5dcdf0ef73fece10777328b86b0bb4d07276c1c219fdc62892dd095536db3525c18d0409121171197c99bdd8a95eb2f5a235d6ab6cef9830493b2c71bacd3782d67eeffacf4aed5bc07c2524203344cd31ad0bb296be4e478c61149c736ad66168c2d0ba4410e05513c1af1ebe644b0760360722094dd4a26a16d8f12264b25accafdc6a3f55736f0de1e55dbdb28d02a088b276813522c901c6ac134a1ffa00cd61276e1221bbd7ff377d1dba5e1beb1243cd531b8f9fcb0cd9e8d9418c6e9306b89d96e0136eeaa66ebdb248bfd08f402a12915178a6e7d4a612dbc3a878db9ce7153bdc9130d3df7308c13b2e97fb005819bfdd569b0009e9bd1f9a41c7eb23ec33d8cd37d5d05b705b4511dc09f0e05d2260582a4a391c8180a17189b98a53b831ebced724333194f2f6809571401185017332cad227b54dca48915a4a78875967f8ed352fd96d5446946a64b429708192db4386fcba811f000733a6f28b929be4f9aa1d2140ccc3f9616f82f34cc1281dc4a2838c70842102a997a6bc26a737209d42266e815738ec3943516e150279e9dd39bd768a08ad9ceca41993b8e8408d025affd64237b5985ed9a37d52a11bee6efbee9ff1ffe2f060d79bd751d43bfdec4d5fa5e323582f8d735f44c7b1bb75e2ad0bf3e1f255a9e983428b9baa96cfae8bf71d1aa4d3a786235e2106528941f264db478bce46c697bc574a5dc0b956d033eb29194de103a9a70bccdeb19d5cfb9c2ace7ec529ea27438d22668f09c2acbdc9c099bbd5554a6f3ae145a29fbde88fcb5e46ca563fad42cc7e26ddbdc0e655f88057a8a8f6e51354f74db1dd99423b0d860b8ee34e292b4616f7c870094c265f52cc450f98a575323872e2400a80de9d38f539c9b0b9580ccb9ae2e382f3092a657ff50a83ea03a4ba7d620a5b9553d48bdf8ff66139e723e6a1655823b62add790b62e605d90044bec0e196df524c0987fe4b832add37f546b835dd259e7c03de7226a43a6a062b4e61c2ea4e4d02236497c570aeac4ea1896e1e3a19343f6e50eadb273cb5a7becdad20800ed797700c5e269e0c1edf4947c65348976d4a67e16ee547c6c870c36e3d709df4796e7cc0d89f1fc722c7d967d4c0baa823f93f9c4d6c7913edd185bc11c23442bab611ff64c7eb49ab07f32f52008673d80ba54e04bbc5c61ca1f0c38362f5baea6ca93f7a41762a2b4f5b6c31c4e0d140e422fbe379f2686522dccb035288e0e05b537a48d5470921b9d724c26fb8d2900dc7d6f0741ba2c1a35138c1724584003a84247aeb78b30e2d8fb4cf7147785647ddeb68a7df6a79ff84fb008219b35214df5048253b823fcaf329a45a2ae7f959af6539ae7753e3554d2899621795fa4312815b80472036b9f35c1495378f172c7157a9440e62ee46692ace61052d93c57b9902620b22e1c29b9106ad076f25f69fed4106736de133d72ecb71948cc83425a81e7f7c6486e0f08b4b412724759ce41f950d65fa5283c31a4c226769518d0ab71ba583b0022557cddceec3566637a6c1c519999523b44d953ba13a68997032013798fc580d466367a6a04502f500f7dcf4c2e6e03e7774849082668cc07461b1088861db6bf4c03528227a20d2b473e088aff34daa78be838000bed18cab0f02716c9ee5e68f2434a241e6784ba03ca69df0edd97dd72038b6c2e04d93cc4f54309390fe572d6affd4cbb1989ddcf410fb476e3a8681656efaf18b0b7c0a137e1454dd3ca510d220987b5aaa51124e157fa372ec6099a03a7140354150d34ffc1b4ea2bcc2d705f72e2bfac4619f6ba35de7a5c08d5d7ec34b712c1195df5fc75284ebe217430760ab4862de0255f75dbe24f4fe60f90c3419d03630b0da0e292c1088354c075dd1e00694fc14db1878a5cfacf2b7b797742e516d451a52d64de482f4bf60beb30fa565a4e29904042fe36288002bb84325d5a0664003075b0ef9bfd1573f70b84f7b75ce76563169be92df533d5aeb47ffbe70b41ef4deb720d4d2fe7dc11b4483b3d0b226ef5cfd8ba9a4e46bea1018fbb64298c7227e27ecf7291ff64ebbab81169202697e8e76afbe9fe1504243b4077b30cddb62d67cbb120c38a93a9d10466381bcc71a202ee0a75f1bf952ac1c61a001f251e0231fb968a4b39bd089704ca99438b645cfc29920e0f8f4988f77e95970ec2e8e1aa9376bd31702a93e024f654ed26a324bf744d53271e510a1f7cc2ff1155f64822affa2c0d2fcd555aa5dad8698731fca61bd3a3d072cf33c1a8d9f815699cea496017d4bf9fcf96e5a384e7c105d2ac074571e600afd0e9b4e7e8b21e85323381cf7d3ba3431e64e894ce4d693f0c463b6d104dd33dedd7f1b9f081004b64f1d7c848aa7c28d6a815b7ec34ff2bb76d2d8c25f93265ad8b20b7140b0dd34779b2145df8b131bfb71ffed5c835d2b696299ed813bb472be2f3a880ea0e1abda56faf0df6daf6b166c95c5edc97bac1f73d539a4e419e36cae7ee1d9211c1659cf668bedf75fe21edb2ff2b1fc695bbd538c1331845f24839897b620021bdf685c361d30014b4396b358599cefdc9d5f3b464d67a54c9cb29789257101b7153446f1040fd153236c214b0b502ccb8c202c54ddfa527132962133d398819a23ee53b40796801a094627b87364921ae981e57f9f478ddb3fe9e3050dbf30c3793885e6423402d09a54736d9a0fab9f8e5edf858b7be1710b5ee2a46c8ae1dad8846162762182f95a6360199cd0ccad756cea2e4fbb6f17bf7bb643cc6ea0185b530295447254ce398130e4f1bac6a4135c8b9be462422bb6ed88d7d81560cc09061f82989f499b935c855c6446ee4c02f2b5ec74205bb2681a3d39cae951e785e3c3ce8c5a93d9a16f466e1df548f855d70d18613fe8dd861f3e4f486c604715136d512b998cab28f4cada627caf8da082e1b11e2438ae4f8ed17b259ec16b21b75881cfd9f0ae30c2ebb472bcfafd4c09ff390f3a381e2098d9b057cf11ce1a91c61b317ca6f871105d6034a1ae73832671555965c2deeb24c5da51ce21382891a3df8d5ba54ddcbd4a9061a4574b0a4813c7d5fd49797bcd8ebbda4b628b1699345f2327ed7e3a35dbcac11e9704a2d019568e273b2ddbbdda61b96f11875cf03eaefd3c4a503d2499a9524ba9c8e8b1906511a4a85800ee21ad424b32d1b12c661616bf91e9616cf0dd1823f5e33799035dd1bcb92bbb8bd7b9fb5cd1764a79b21973a65541bb9bf58bae57a63de6e20a207369f85b0ece77b1da38822852209e2034dac637154e40c26004c7d2f8d6b0f2f649fe920d916a0b9608b19bad11fd19291c1d7aba146796c8bc076303184293b05257a2e95aa1b35be93017ede6c3a4fadb0c3b384fc1bb3ba2515ede2ddf470bbc5279817dccba8486f20dc05e84fe2b3674dbf6cfbc4ea1888a95c385a682b198665ea24fe875f91820c6eb30738c6c686153cef7a45b97d5da153ed62a67f725af666c8f5454143261b2e0303ea261450c0505cdcf6d8c5a1fe7c840287ff532d632de4cd4b899b0725d247a3eaf394fba18917bc67089efdf773445090ab333538b9db6dd2aa34bc0189a235ce7315920cc9633d5dc1c072cad0ebe0e95a07a0a7f6152bb14345c5118ec9dfcdb51980db3cdbc0b4917ecc57a03dd0c8586ed23145fb8af86e64f92af16757fe4fb59efbf68b60493d51df19d06df73ff34828b9b0805b3a12512c0649e85e611b0ea226cd5195e88f479ca348748e3aceb994208fdeca397d1c930d13a131ca0eb5a309eed385c046002c368bc570ea227bb02cc92be5e30820fd2444558ba0ba9ab3e990299dc09f450bae4c4c92829a42c6943c451cc858e34624e06233837107b33fc5cb27ac7baf78d48735d71cabebf68bbe8437ec15e57a1f5903dfda34ef89110f00cc07959025cf325ee02f81046cc48105d3e5930bfc20093ac8cbfca0030d78cc010018beb1b3e689d52956baa0c54ceaf858488e222ee9cc8d4c5e47162bf7386e4325e3a513e6d4f4458f5e01fc343e340124c0fd1e2f5897ab3f2279bc761e37a8c20cf48a6bb27fb6da5bf0a5f67fca6ad93e1a0e9ae19d75c9f500b45f68de80244090eb66f42dab81886a78645cb1bfb279310f78e982ab46a572920bb2e18383e1427da1df92db1f3665498c719a7af869d222c0107166bb0aa5b0885983712566f8e0b4471e69d88ebdb7d0173345a2cee80d8d1c4837d9de3b2d429fe96aa4f29fce440e52141ae4571cb1f1d7735af86c07240e3b2aa1472c3c81dbc49bfb3e866b43f778158a3fd6641a773da5241474037cb0fc644b2a88c90ee66cc4ddb962336347ccaecd1f4fa8eb567c0454465511badee113262abf691cc75f28c0236812d76537940e970f4488fbce2ccb46e70e0fec7749cda728fb17b5b1ff968bd3b6433dd6dd6cc619e8ab2eae099ffb4828f906c82568287d2256b56129e8b83944f9ee180627afbc9d510fdb7b392458129e691ecb7b6fe77c01d70bf2628fe69e5f6e962f1029ce626a0d18886241452f8d1c3dddbd8cb59cbec15b623aa1309d12221f7c62d956815c924114ec867727db4f836bee8aa950940cc1732aa52d0e741ae355a8c3621ad068c043f77cff2005b28ce7c5532ebf6b7e51d10c344c9a9b00836e4fc37f7eb1176d640c19060aa65efff54d1d497ece96910f6661001fb199d24c3cf997ce1e401788a382ac17dbdc878bd81276bd23b35fe31d93f4d7cb65b722e65d58fe039d126524bb4b26dadd32b90572e617c96576afcb2fcd9605b1d898b2366fd9a7cd0c23769da92e46b7b8c48234c4466b0be922a9525a8896b2d6cc9651b2f6f291cf2bd72b8504523ff71405a30800020b61ac9a1e6b61ca68f9859f6bf1106f2a0fb66d5da305a3e48cdcb56d89222f017078cf35af105ab2b2e2cdb7adc3d71de732d2f22008d6aec49dcb622b4b6033438a7b990f6e08a2d41909392a890d6ab2970c4fcb2de53850b4466695b93e50172ffcc6ff47c882aa9444bb09652ee9f5a4f43e8219963fd677971a8f8f1fe5d09bd27ad0676c59c6b99cc2c46d8a886716e16a0a2b0e85311370de1c8442d4216cb8ccff3d36a6765addb8a188408eff04a488a630620acc22c938e923607f077ab953afc8412ab4cd325b812e18b36db9ea03c21a2fd212df4bf20f8e47cfe5c5285a3706f8ab9863ea128054bafa1fe192afc228dad5eeef0e864876e671e4a960e451d5cb11204eb0f7dedb1d1bea322aeaad09ce122c5b6d149f0192436aeccf959f73db3968cbe69f6c2dc955c1a8644eff00b33c6fe57db259f1f62f8df50692e8d8c36a22c77234e0d81dea745254adbf2b5b16738d4e4e8f30d8073c01e34d8a784bc6b41ec8e2afa5c8d2347b145ed40ce970cfdbc28f9bb3195dd2fb274f9895a29a996aadbdaa4cee11b546cfdfdb0822416fe28cab89c713f9ab14d28a3d22a7033c1ada634ce7928681369e9b6115d6ee8f939ad0609d6eb842084c6ca07a055e83ae2d1a0109498f8b7ee9bbf024cd8f5ffaa9da4f482d9efec43b3e1c77e8eab2f44007269b14614c932ebdd02093e404029042625197d41362d07884031eb192890e18ac0b1e4237afe7402006c7641b87a6aff30a7828f5a61b6b79949489013a23ae8f138bb6458a72798011945363118e8c1728e09565b5ba8e9c322b281d50c81d9ff94a18612ac41f7e1e0557a57f3b98074694b3bc37edf005f0129ba8ab7aeef1346dc1b94cc283ef2be1c91a0c0747ed6b472d5a6103ca79844f6fac466e756e51599951b0ad1c8b0f4dca5aaa01292e52a8a19a994dfb8ae96163872353ec485ccf1a2c6bf2b0a316be623636b1118ec0511c5c0aa630833c542c80ca87898c8d8a0c9c6432f9200dfe1f87f83f760e4779993ebb87b600763a78a1e0022f2a3c083730c09930e2185bb62bd0f1e1ec17991ed4246cbcadc9d17af7f85d2583b555b293b85cb3ba103959d3005c53566ecf636f2d99b94266ae10f20d7941d94ab52b1e66c99a2a24903de01d4c24236f18e0a72f1485b8e8e0eba5385dd2ccf3da36f42f29f29c0b5c24e7cd6e5d92ca2e92b79c3cd608a0cbfe8b2940aca50db477bbbf676188191656e0acf10df4d56c25255747160742762fc2d37e507e563b9c2b2158231c24fda5b8762d28c2cb390432cce54693def5c5d8cf3f1a820bff33763673116e0bb80254eea5b1630deb61300db47c2e3e9d43c0ae79ac6d8d8e5dacb30b421c0e88460520595dd83aefc1ea925bc7b76faabbd79339a6862c8b8ae500e61ad9244cffc3946a184f713d5239638a2e1d795aeee5ee445c9f9aab6409e735b88f021554cd4ee080447d929f96556906a5504df942919385bc5e64cedbf2ae394d27ace9d675fc4a5fbaa1418f1420ae54e57c8343a69843ac97c5ebcc817820320e5d6c9eda47e171d3f5a2edb52448f00acda78580b066fc588b39aa09638a850a2a0dcb9dd824a85d72255623c47308a71ac9c4b4f6bda9d273b1c1f88b629c2d80cf2b46f3ac5285aad169e96b067b01de824253f4156311196ba6e4bc21040cf1b3cc75b68e63af37eb275714561af525bfbb82497cd4730215975d8a3cd61df43394141f318ee9571c1ed93198d282288da8bcb5b33e3c6f1e9269a763041064a0d92da154a1b43895e1833b6bac67e096996e0db5bc1447c30bbdcb5bc30253f837b9e9f89777891e37357c8654e1a5d5ea0262afd58136f1c1c969d3950173e90b1dc6b589a510c7364be31128cacd0baf495fbb9161024b880c18e97e2a3395c5515973f8ebbdf18b8fb573eb46a4e8fc88c2f159cc6be94c7aa35e0d1be4bfc35f47cd93bee0e1adc16a0957f824a9e24f31a32c372e97b6a2f9a71d147f33857a0febcfe896dc770f9a2a86a7089b55a396afffe4bb21d5321e1d7a1230faf580d4ac8a0a7d8f3fcf457f63ab27cc54c5820739bf6437bc43eaecbb2cbf7af588268ced22cad9f5a9254d95c5f47127387655ee36dc94d70d1392960825e78b37cc551183bcb25b98363522c0a801206000c6ded60985718b46ab2400ad0b22c9addd5f71d90a7578913c0da692d7bb9230c78d6f6273114df69d73210957b327089cd3495ba001efc730c8f84d824fdf9448c277d02379b694d0bd1a4012ba18c18efb60b94d7fb0fb750ba948a5c73e55ffe464ebf7acbd04fb8124a0432f67e42bc4409433b85588fa6d16dc93432fb633ec1170e1de3d258e7e287d7479896cec61832a3e7e5e257209609c6af97c315bb08473de27be705f831301c5336b7f37607888212f40b73bd0aea535cc7148be0f9cddeef1f397b8dc1c1bd11368695d776b6d4f51d8b9a3ff091dc23b438ad3a8e00f435768543c9520ed4fde81fe5b8cde1b1b005cc5a470003b8a12d74d4178d03351cfd620c9a41861979a4209de561feab4faa20b540fafe14a2f47815d1d6f756882735645e30f50fe0714b48545aad0aa47edf4cf85b77edef8420cadbb2ab055537896841d009bb5d21aeb5bf32e1a0a2c6d2f7a0044c7bae33fa95f6264135534b5aa1a1710398fce470a822d6e5bf4a572fc5aa091e664335a8f0e5f4b82ba80dbd25d8d050d8d517b496e2067860366e267a33cceafe24e53584565511927952e43f160218634834c0bd7a41a100548c68c54d6d47e30ba6841925ce0afeb3aea68385600156ed62144c5a67173008b02d76e28126ca00a2819c0bb3eb4cc92c196f8932b0efd5fccfbbd5f77198a0d800e01d63679db7ee5dc4213c4a1e82b47ce07ca040540c023f617d52c1ccbd2d9e825d8f60a2f6cc6c7e0230f8c259659cdc08211739844b03202e6faab271c897dfa7bef337a5b0672ab13ebe547f572a089fe304aeed0c9d0c871f87128dbbb634322c5449164a13028e7f8e46ea7eaf5861a1eb1cdadf95c5ae983ef642bfb86f103558afc4571483cb7585a00715580fdd806c4f741b7246e5655a575e85661422ec7b71e79535db2ab86ca6105124a2f1428d9f82f7cf626d8bf29d5a074bf2e8a64a11e8b415465ec3366cc0e4af15eb00af3afb40024843ffe9126a492594cff90682e2c4afa7237bc901e70a081e68a01e0d9ee7d4bfb5b07b2d9102409de25c281bbbdd10f2bbdb04adf4a2e467df3108a7206cd0ab67ebc298481ce73bbff082a5434b01e26d8ec53ea69f7dddf6b08619279b0aa0c5e4f7e0ba18b37dfcb3ab7762debd778e1675539e2023fe00026df8a6518857f2cf15a8dd27eb05fd4854710b80ae479cc3dbb4963dbb6140129ebe07739ab8b1f23d828751d533ea3630788c03835c7ade9de2fc725639be627448ecbcaa51b958aee7c6415c041b815de8940e427fe2152c77639f3c5e7db0699e2a03a056f4a0323541d174c4d8c1d71a7b04c664aeea06aaf2f978496231f2c0d82e6d3dbd8f29d81dcba037666a0567564fed3a90a34f4c2a0864fe6a118678798666318a2f6c93fc93d788c258f01c5aa450b65f4927ba6308f7a99ab0fae315f1aa96516b51b9a35b0bf04a303290f7a4b0f107434e88c9b897d8ef32dbea8b90191f27ec6c6a71c3b576ccc10b6945a2d651b526b36c86929d7dab3195b1cd7777a95a1dccfab7ad95d9815d143fc6d86f974cd07417038811e143f157f37337b54b492a344d0bdd2d2dfd3f27a74d529898ae3243bd532983b58d22337c69e87af024d6cb0d8f29c96ee48114d2e7b2c1535ad6b00e178977380bb17569028d04252e77d46764676068c2e1d43bee814688c6881424210bee531ef156682b6b037656dd8a82fd83ca1924074f752a207b2585ae4c9ea6f4c78c75d1ed96542fc65f19260e0a755919c2e24659105c4c9df00ded15f93f442f6887c12fadbd7a3c4fe425a3f30f0ddb2f375e471a373f27e43c8a494d9678e8e60931292950805f2f6b9f28b3182436c2a975dd365a59195dc4df585e87395c7c3a4236a0085c40b7af8c4448e830057b33fe8df95a33647c37c55b225bd5f8b1c591db855703240e2f49d63e43c62f8c30b2a39b67bea6e9a9481146c046af276d611b6ed9c39e7cc8f66dc7f9b386ba00528af573aea6d008433d39881470fb56429fde8616fbc9e483e1222d447832cb7bc58170c7ec86e8f4de9070e07eacaf608aaaf73c42c827990cd0c64687ae8cfa0b373da849a767ef3b63ca08327663a0c85a554dd2ecef748e891cbd90386b5737d945603b56c887986f9a306d7de4b18564645c2a77acd8cde744455ead6f28819282b59f662f7da89dec13b7623df1b44633048278c6435e1449517b0235bc9f4c2cf39aaf34908726c3dd3a07a1b29aa41f4a0e91cec6a4481c3280a94398f6ff1b0b07b39ab0e6668dde438308209a6e0f5ddbfbb30481e978e215f67468f31eaf930dca350f0fc53bee83f988b04310eb11496a8955d0a91b51aead8dcd1703cdc4b0e7f2f4674ae3e588b595b2a10a00f88b3abcfdb5d1c8dc9f8727d16373ae7fd05b239f7e5bc22909682d90901653987feda97752895523e956cffbcaa8d3f088d280cb19cf4d71f010a671d8b1d6227e7d72dbea884042ee1324bd31a5fbb7ed49b79f04e834245a552b5157fdd0e905e98e890291c69bdcdf6307771876bb8288809b44e63bdc934710e039909b2ef090b39137e7420aa7ef195656037f3482b4fc10e554341d68ec93d2294fcb6a8d69542b31f9942a59c4f4503e188912dd1cff39640cc2217e1cc871865202fa3c02e817f2fcf395c446a3eecac5d97950a44ffe1e8d299e064e5512aab2c1581a7dde08e01d9efd6c7fdc561b8c7e6fa75020b9534f2d3b35afc0b0e550b117eb8b4be6223be3b32b3367819c099e5cee581ef44a2cc483073514b0c317541eccfeb5a470e62a4a7183b1b22839e1a1c23bf58b6ee43d1fe87fa100c1bba8cab5dc7f68592841c2f9cee4e068d6791e55f4dd54edf7ecf336cef3510f331f64e0bfe4a9226e772e395f992634eeb6219cc239dd5d8e03cbe1f45810bd16714d1d83b871586d6c721608db6150796aa7d942a7d6b7f37e1fe54d5910ff184c75453103ce3e832ab21e3f16110827890bdeaef035641417fcb9b2c3c142549f5302f25b6f4fd1abb1b586555dec7abb108c3d988222356f8845157a91a934f239cf4d919aa5a54e5706f63ccaedaa2a523aa75b6cb425fccd9b302760f63efea5bb28d9047c8ef3d06ef698f6eb8d69cc2968256b56ba2c6b1aa325007ccc054bd8707ae6a7e1136a7d734ca437bc91640e819bdb1161db6285b848209f695c935d12262fc81ea65c312cab7c604cebf8a7a8e32199912d3fc172f2d0c39e4c9610d79d226d090265c7f961ce63aeab2e824e029ce1b89601913496a0dc3486866c4ae74c9f7227bb2bc821fe2ea1a265a34e961cfe8e0548f0b2ff629b111d35a7ba7b41a2e65e5412dcceb796b31d0d87b9f1a4d24b028f2377d5201ebd6d03eef5c45e78c52247c3282fcf64558e43ff15e1d39533389bd7a86f4037518906b748ee732531e22b29338f4a4f42a0f216226011632c4fc7a59287208482ad4d100cefeb5679cb8b4f6af5aa6b87f87d0a7815aebb30da0d927d3e613ba71984e13a4480217ff47b1055dbef0ed7333ff8403935f10785b4d212031267080070a80b5f94ea5c4363d2d971036e8446f2c055ca49495145eca1ae9fe2992670c4c90a20991d63058dd4a885b9ec25f2307e6dfb364be99f0ab596b560e91d00167f0fcdc484e4510cea659d39a58ea6d94188082c301d82be3a5beaa06007fd0fb2de248dbc4fe010a14285eb1c67ab1035575cfe2c4a46e7169be0224093f309708216779d4be610fbad6c37027359a6cd9af3253023c94bab2500927dca5e53ccf2bcfabd9f056b2381845a855bf7947d600e6f85117b69e57ab64124efae3d5bf327ab6ba6d4526a495aa613a1c141b4ccbe97dce4d2174af49751a32d049a2624f7c385673c88d7fea82a5c517b7fac655774c395cdce73099b60602b40c9255dbac3b084808ab31e76a1f050751bb6775dbada5d84691d2765327ca9346b73ccb979a8d2890fd43bf51eedcd0a78af072f64ee41abb954bacfb0b59bbaf1fcc4321f763a03b112189c055a31078afd0954b7d7ccf311615d3d01712fa34ac64c32e7ba17168f04876190ff32077be969a20cf83be9d04ecc5ba2287f65a7cb3a473300d133636ba395a1cfe1b9cfbe68f106f114d46d453ac6e058d32c610ee7b8e0025aa2f8fa532b3a6a45214fd7df4c35ad5112f545fbde314772040257c0366286283200970b7ee56d048cf3f6725fc8d9651a8234a6594149de5e4a643c98e7261b75a27baeb89147605258f470c0291bf22880e6a900612c1e251dddced6445c3dcdcfcccc1c36736068f9e1f7bbc4063895df782b11510427a865028d998dcea094cc2f8d0fa2efbd0040d0b118e4415dae71c92cfa31dced774d8572bfb42107f480682ff1c5ef95f657787a06997f53061d44cee6b2033fe9a65b025cd7e27764e34562fbc6391cf8d31623f31b68f03d6a1d1404d04b8c60cbb003fd65b2886da9263ee92021683e1af25189631d1725df8c163572d5f76b195591eca401fbd5d43e2992245ea9a4009a8ed600fcb0962ea5b845a18cd73d9f8a31eab2560b9f00b08cc4517309f7100c34df4c3aeccbb3df8eb49244478321b4748aef75677808a6a5d92a6964f298eb5e5337621398b0c1a43550700ca5f97215da057c3a4a16a260471ca887e12ab3a9fbaac6a61c67c38fb9b1c8b2eec6c0535832e1ea214b890bcc72682c5bddb39f4ddf34500a5cb9a81aa2d3d9f09f802a02b7324b79e9681debd2833f6238b22ae6622ba1a64e744f79029e3aef42dc679892840c82352fa28d9140106d6c2ba6ada66fae52bff965eb40eb54e3e94c92cd24f6ec52eab577e80d8c8e9f2d39d6b8d69503967d9809fd21036bd833a94dd6a85559c519bb7a2769b6486b00d34996da228c08994f285b22f7362c30b976680185fcb2d6c1a9fc47ce47e77d3af5b773534e2ce7c2063dc0f148ba271ab4c9b17837d44c14d231fe85b7644462249299a68b506bff87f4d23eee74e2f9b8ee256ebaa6e03b545afa196f22ef7e96d7255f5e79bbb786c1c165a455c205655a47926176b91f2d2c02ac5c00ad29b467bfdbd51b0768b35290d4bbf22a70348d22efdd5235eb6e682385197b4e17330c46c44ca6d5dfc67912841ddb730006e521446f952117b78effc601d10372438c4ba4f6e2608e9a51021960d7a065af49c4c06053d32596d990c1a43cac1658dad807ae48de098e4172a749e9fc0fea8a55e57cdb05166ad9692c00bf103ac30881c6ea8c6b86c244a0792663fbe195bacf4bffe700777c5fb07db9bcf94404ce90d0ed74a50febf9e2b4d7bb4c6dae168809b1e8687e2e668d2680f40733b7d6877b27eaaa2021daa212f5c9650237c6013810fbf50f8c160395a487a5cd535ddcc85437383d7fd401e42318881baf153d5c6a0f3ae7c933daff9cd10c89c0f7d9c1253e65995e7af082ba05d83761cb163b4ca9d55e5dbb43c74bf3f456988438da2b3e62a90097a188bb1d3cfb110267f28a328777328ee715c575923e5517216a551b7e4bca46426c9def697692dbd245316df1b3d3ebc23d2e7f26282bb8c3c77383b633d1fee09e269116a30414bd9701c5e0878caadf29773b5e4c010a7f519d6c8ed4ab64a0b0dd617d9c5b993d32b538129fa4404c7371453aec2448ad60caedef25217742955e9b0087cc084f3750b6474cf9ccc1b91b93088093fb9b65512bb41c7fe1325742cb05d49c540c0db2fe8cecba3202fa75c3652f8a0632c901284718de2f0197e4469bc4e63f957318e61dfc0b47f3612c833faa62fbbc758bea7747a919c10434862eebeac7e95316632cb2a81e786f3148d551e82d4b5f3952dac0e84a81a35b2d833ae99e441f064acd0efe3ec75d0180f0dc898edb2ec4e6104c43d9121095529dcc976329670baf3bc91051208b4d62984741144c2795189811c35d41cb3ed4bbd682aa625880beac8855c5fea04d41e00eab4f0d06318c229f650e10fdb194388dbc4bbbe4e95fd302d9cf15deba158f7c686da98f0c51b56a9c3bf2355c510225e1b58ab2af9314c08bd8adff1ada7c9a457c0c1deb47b814f2c2f2c04d7711fd02ba586d4a50ad99a1723e5bf2916b4b5ecba863947a98fbbbb300bbfceff43f6717beb8ca8fcefb59c672661fb46da69df22870a4c52fa4cd0f22bcca13d376d46c173fc2901c265dc09ad688e67b9726845e03944ee966ec01b285bd066f7c5357304cec840041d33e776badbda4e0007a505004e070b9520ed0794a82f878b218f741d0cb293956b5273b429c885d893d1113d73aa26c1d423271b72ec18a3db9d3d0e838edd70c2ce3869f8dfa7a2990839b8dd9e1172e87b0a636a0eaaf2172cf943d025179ff1617471d89f89258b34a3bbca00641a9cd81a528d6c2a802448da3ad3d59f777313c16a671482e39b8cb7da9ac35c1ff2d818c053d772d3b5a8a648244ccc209c808ebe141ba2f9d5650d0da14819aadde11048336a6121c302669d43eec43639872901bf281af7a1688aa3d3928ebdd90712c4211198d7728995d57f5bcc090cf7beca8045d513deb1b175ebb36796f0e41834db39abc7b5ecd1a514dcb9228530e81361aea5811ca208a650daf968e6d810ec1c14ddd45f0d5cc72b4bb6c9b567381cd3f8ff34d9591c48f845ea50846b056e828c137df3632d6225d8c3c7df355ea62f2e0d113a7e36852b6764afb9f11759ab5b4dc7063a18dd2b491a4a3d073bfdf8f4d33df3f339a83e3ba2953d7f09876c8f4e48e48b158ea3f41eb7f19716f44512bf7cdaaeb3915798ce22707b1a45579944f3cb644003ac2430ac63799964bce8f0125b487e5e84f986f46a8314921030ad6e51af6e9a654d191b8562e8acab6542844de111650de2ce37659f29baa8a03a66a40d48856ec10f47f554e884258e4eff26ce0f15c6b5171f95812f14a2b03d6b68f4bf5be1acb77702105951d5f13a423c1b21960b0c129fa99d1a8dc9e0aba8f76e0f8bf6db5523758d5ec321d0857a2df1134b5dae2faccf3b2373925e13c17f70c80783a3664e984c082f251bbe3c4698dff5daf3c70e5fdf14c66f792e18c3133a0ec195583065986f5d8f297f5750ed78aee7b7fb6efaa11546abb4feb014cf7206953bcb52e5f16ac8d232723683674bc02854efa9c8112dd9d7b31522a6b7fb653afd18e987a926fbd5377b5b0e415cf2614bdf0c26350102b6d8a26892985e76fd744ab01d06b524f57d634fc0b69a5d91355398d6ac1ec5b7588982ece0b103edde74a6f327e6ccf694bc534195fe0effc7483f13a12b278acb099ad84fbc96b27d36269ba06a660e2bc9093059a2acb1998cf3f1fe129253e64f00669a4cf7480180edd5c242544581499b9a233f0ce088acf1e4db14f35ce5d343461157dbe0adb07355d95d2cd5aa6dba222b6a702af1e325d2bc2d106ec5d71809dff7aec68762661bdfd5dbfe456cba5a7c150c73da2510f75216ed7e6f631af32c7e9c7884b0ab0cf71a834ddc4c825748eb5d35451d8092402dd68235d74c633a111bd167dec9a6371b137ae89530106a928c87743b38be3d0076cc22cae0c2544d7e6d49cb00182253dab5dfcf6cbdb378f56b0714b9d4bf2af75f56bee1cdbf00f1a0af44ee6ca3d7f8b3b42d38f87bf1da869240dc6477092f4b09a0af31220825e29d275eeb08977e8d3a6a934cc16a6d562b2eca001a04cb8d5ffe9fe85b21a785e261721288e9b5b75b400545a31d0d53270608b10408287f21c644121d27ec9aa9f50ccbce17e7ebe37a9858da78ca1d207bd9d63708d64375d1c8b872172ed0e50612b60c4b049e807f23d6fa8f4e61e06d52047a034d11c3fb63ed48fc75af072a1084b3d0982b796c9dbb70c295e4c938688dd603457e18852f8480e869f8aa0665890d85a78c5458b77f682cbde6b7954b55d82cdc590f35d097cd61fc65b0dbaac9cd05916c807ec0e318de09c55d6facb6370f2b077d67767da3df753109cb25329348253b3bb8a474b8f2383d269e7af7d31188362ee1c47b51ae57ee87cdc133d212b205f43ad871011e82684b3251a16817b80922192c7ef6e95042838827e749bc017d1a96c6e69f4d945f6a40c8067809380df1270bf5638a0dd4f2c7b7af4a5798b4280a4c98abd97c99272b34488d055c100b6e332bb5d2bf6ba8f3f5945bd877926df3eaab055c5d42be090db0bf02cc36716e8608d8ddd908e019707e77d50ecaae8f83a61fac66303fe0d980381913d591367d4749326ea822b20c1f015974fcd5ec6d659aedeac7b56f6fb7891706e619141f6b4a93840023bb2342e759da6438e07ed974a5f1e3d506144c960bbe067b718cb861fe927716cba85cfc466eed0e9d2c1067bc7f9e356bc5d23c1094541933220c2bef5ec7afe91782ec245208d58f93a08ec25eb59710a7362303daf04d7a256119a10ba5f6653564dff54f8eb78577360ac477abab5ce87bf70cce5000e4686fab8ca621f1c65dda94eb8b5892b1aff79a9a5eb0a2e65efd5314e0969768884cab782cafd4b81555a818559c4835fb6821ec46fd08ea418ac61ff343732becbc72450b2faedef7112b951edf2ee03bebe4b71365755e6d551810e06fbbc2176bff93433750bcbfec05aea120f193a1e4c5bf5993e098916f96
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a23f019914610030575b600080fd5b61004361003e366004610522565b610057565b604051901515815260200160405180910390f35b60008061006383610458565b90506103f2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061009b576000805260206000f35b50565b60006040518381528460208201528560408201526040816060836007611f40fa9150816100cf576000805260206000f35b8251604082015260208301516060820152604083608083600660c8fa915050806100fd576000805260206000f35b5050505050565b600060808601600087016080890151815260a08901516020820152610137600088013560e08b015160c08c01518461009e565b61015160208801356101208b01516101008c01518461009e565b61016b60408801356101608b01516101408c01518461009e565b61018560608801356101a08b01516101808c01518461009e565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f245229d9b076b3c0e8a4d70bde8c1cccffa08a9fae7557b165b3b0dbd653e2c760c08201527f253ec85988dbb84e46e94b5efa3373b47a000b4ac6c86b2d4b798d274a18230260e08201527f07090a82e8fabbd39299be24705b92cf208ee8b3487f6f2b39ff27978a29a1db6101008201527f2424bcc1f60a5472685fd50705b2809626e170120acaf441e133a2bd5e61d2446101208201527f0ae1135cffdaf227c5dc266740607aa930bc3bd92ddc2b135086d9da2dfd3e2a6101408201527f2b86859fd3d55c9d150fb3f0aeba798826493dd73d357ab0f9fdaced9fc81829610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa61022082015284356102408201526020850135610260820152875161028082015260208801516102a082015260408801516102c082015260608801516102e08201526020816103008360086203aeb5fa905116979650505050505050565b604051610380810160405261040a600086013561006a565b610417602086013561006a565b610424604086013561006a565b610431606086013561006a565b61043e608086013561006a565b61044c828287898b8d610104565b90508060005260206000f35b6104606104db565b600060405180613820016040528061380081526020016105d9613800913990506000600e61048f60018661059b565b61049991906105ae565b6104a49060206105ae565b6104af9060206105c5565b905060005b600e8110156104d35760208102828101840151908501526001016104b4565b505050919050565b604051806101c00160405280600e906020820280368337509192915050565b806040810183101561050b57600080fd5b92915050565b806080810183101561050b57600080fd5b60008060008060006101a0868803121561053b57600080fd5b61054587876104fa565b94506105548760408801610511565b93506105638760c088016104fa565b9250610573876101008801610511565b94979396509194610180013592915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561050b5761050b610585565b808202811582820484141761050b5761050b610585565b8082018082111561050b5761050b61058556fe289691d7705934b5504ae4bd7be283f3465af66f62fc7f1e66f03876b445efdd22a0bebada6ba60c3e190e9e8c2b1420244a14c9e02868b862c7945667416f9a036ab5249fee75e0644ed259d45fbbd0142b638e421b948f5dc00cf3ff14a5301bcf8d4f8bf886d2c7960badc94b3abf6beb4e43571d2b4b0f14928c10e0d5942d8c51b7fa4ea9ea16765377aaae4ae0a416a89b600fc0b8ec35e9e6e56219761f2c636b4954a865946d69fed3ecd2bb60a61af38fa31f2a290ae28915d1f6e10b412b14d9dddf3f9031ffb51eb3f73602b9e49cfa9bec4a02ec9c0e3020ccc30ae9889ae5f4f6021af9e16dd1f2c445ed863fd6a374b329337f2fef4715350d07f75b300b401d2435b96459d2b64f6f848411f246d8478199dd2351a35c1b5e195a26806d907b6d9a9a9c235e09a48e94f8eb8da80f0d40bc4143e3d006e6d22d0006337513747c51f8f3e87364d2852113a83e586ef629c88cee6d4cbd422f257aeaec24103ea15e4592c32d0ad9846ff1a2f3a836e0c19947980912b9006b294bead7a3378f80183af735f6bc8529ddc73d9e0a35d594dcf93524403c9e3e0cf84e9163744a9a65520f4b8cbb4ca35c428d1c4a5789e11f42636c6d19747321f43b1ffa301d565dbc37ef1eb2ef669b8a1876e3754b79657b26fe43c845ce1e558b2ca618dfa02f0d640fdd45f56492a577154989cd09523829b5e15f2d6204db437b7b4fa0f6eea95403dd25c6a674b3e81be98ad4532affe8507ec0538020376c16b97ad98b8dfaa6f10d42a3c5e264c56018d32b0e8af528db157eb60d234219fd49f941520883c13c1f01ff7b2f7f512a3046f91d33cdc3900ffb9de91d754d84438f79e6b701f7d665d59755a7bcd0b63f7c2da94b737606c16de1d3287a08af195521f756271ec64bdc4ca8a7a95fae892c0fd2cf0c148d6c0cb6530e16af35936b356d5974b385528f6d9a873568eda614ed0e54be4494c2acdefd0fae7f745efa5884dc82f1595b5c10d931ed6da07b5dc4bd6f99dd5318c7c2a821f41494c6685503d748b45672c65d059260bb205113882458c86f6da7ea38131ec11e919c80981c8a905161c48caab360994e8f31cfe88536c5ad8b2c36003914f32ba1f584bafc3aa283f79d5d65e97a6a280c7c51cec192ee9e48d593a2be0cec3b3618ebb60152be2987b910940e79a421d666a71764f25ded99159de90f075a80d650b5c6f8a0b3261ae5ec4c5a1b53762f30c559aaa6c501e207c2514f026c5d81cf4e6cbade3622323c4ee3b4568333e79504044d2ad4d2ba01abefc5286bacad6fb92895c85483e837d7c821d3f7bd612ddd932c16d618455ee62a4511a11b68cb7aa85f42325a3d0fa45e0887719f05c9cd472183b1c7c78eabd0ef0674f14710e453bc1f9255babc8d2aeb3b2e321c68e6871b54c285e71456be4d11bf8be1878d5dee6820ec405b079360da81da7b79f29aa54096ae195ea1108d2a02d0a645dcfcafb2235e7f9ed37df27c3f7cbd5ad11ee831fa17cb36881d3f1e2338342dcdeec5d3ebd82d4b767ed93989d9147ac711dd07d8aebac0962c20174c21361611783b0dc90d87a6128cd4d7e427cca10db1d713495d8281ce3dac22654673d8af40026294acb3c0e51f0f367576d83a554bd9ad72de06a796095e08f410159146e32feb7a585ad437c4a48ff2109d7f74f58e709b66c292e1c690160928e9343db00c99255a53ea3948b547d0bb68332069c2d5ca632156a53ac81b8e0ca895ea976f5d42029c964ea52d622388e90f947cba08b3924b470d84a02f21e5bcc52e6d794afbf44a0dcb938554c7c94fbde66c1b7965ebb2d266d6be106d51a9231260949c37fcb7c8296c246566259829e98ef52683900a433ad7d71f0691902d412d4afe6e49f546ad03d739f42a159af9530d717c01a3e9bc86b726c15552cf455e161693ea7f01601fed166f79653153fb5beec9e8393c1efde50223f9fa8192ae6be752d29b47e8b8a75e2172fbd4c89cfec400a9766e1430a8100341a4e94a5cfffa3c6cfa1be6ac3bf6b0c4fe578f8c99cc4f67e4d7bf48861a9194b8c654ebf4f3cbb607c8bff2ddebaff87b8bdec06745ad4ed802728a6f0a7e869e75859fe47e51b3b79ad155670af4e6780d3edd3c13812db0197854d30ef4a576b0bef4d037549aa24282378e13b438fc9bf49efcfd65cf3aa8935d28199af24c0e98e72c37d87bfb9386003c2a0192ccf015be777c4305d5eaaf0e8106e7f2d897f05617580ccc132040f3b83f3fe1a496354b33f39d27b15fb2a5fe07968d5b67877cf32da7858c85479a891164a19b1ddc26fdb2772d294addf3b61b4dc215f06081e276803f1650d67324801c0a4f48d4b4fac9f6650d2fcd901c0c5a5f0969147d312118768cd73a762e53d3984088be93e46d8433d1299394271a948b5fcbf5918fad1f3c69d9d58c2df72cd9a15ff57a35c86c9e5082ee40900532f7499522ad56592a815a303b33b648fe170e0c2f47d831255298200cd77522cce52f921a79b56993baaa1854b37ea74caf7e6f2d957048fe5e5d1e536ce21ca9ca03dcd6b6539118fc036663b6deae0bdb0df258f18e23613f4e80bd5bca2f7a2d324bace30583592592d82bb970ed33f9753d03dcd3b54a44af04a0f1c00f6008b6f13bcf8f2663e7392e2538406a7cdf15ad387e2eda92bb1de03f74f006e30762808351c935656ddd7ac3499a2b497991d02f54c178277fce024ce89b1a087e883f78b0e1ecbc92dbe9d82258e4c91baac53d71836902953f8e5a69610d35fd011b125ac12fd1d7c655fbb7b1ebc9eb47008676c750907f7768f6d644183a077e1a0a2dba1ffcf7e2a490859a5f60d5d04b3599506249b6d534848ba224230c1864237bf6dc8d6b3e40bb277c02dab92e86aa515aaa62b1ad496b8290075a995ae152c5f9737f6848a2d5ef93a8e7809981a06834ef8b6843904560112dcfb2766574efd57331146186055ee967cdd14d5efac43389a29605d13d561c05a4a1353e53e1b5622a2200ee1fb2e1a8e224a8ec5554bb670bb377505cb615064cb205829acdaf1af3d45060ffa3433c02d3a7ae61b66ece50967b97e1f04a1af278018cfd4d2edc11dd77454ed0cc4ef3ca1dba5b0ba96bb2bdc43f1e8ef023e7488f10d910e129d466443a7adb99fad7ac0b0bb37a51c9d0f1b7c527a98d29594b068af04ce6fe6b248aeb06051d6f66a39d9f3d13cdde5b343f31ec16ea1e63fabe17ec748ba86bf78cd84029d23ca6c543ee800179dad25964fae41cca2acc46fb9f4ba2abecc49ddb33c0314c7a940bfa021c07d44a73614599995ea10d520400f15c87d18376ebfc03c8ed06b9ed713a654a0024cf310b64175d1064188ef3fd8a2134f2d4237dd7657f410ba5172ae081a6ca117dc21c7ffe71d6bf06a71b093737f1ebae5924f2d5f47b8b14526c4831c50f9e9c7c032dc011e511175921f58fb9fd90e2a1d2cf951ad606104a1676c9d2e6fc8fee6ea105239035236859cb45dff68ffa2524619936a9cb457d2c0defe59b5863607e439369f31628e0e101f6b62767f587d7dd8e0a4d4e32fbed3fc65c940d8aa8509bd826e33f0158d4f5cd5085c6e4ae2fd1330a52435eb0745d54c7c8a6ad5b7a3cf5333a7a05dfca18855acba1a5409f714a77297952277658af5e7d5e3a05bacd0b8005d11edb9f2871655c1418f9c7b5851dd8b1713d1f9d7d78c9b915b2d3ecb62e756910d33c3349ddff796b66b2c800a9fdf51d44235d14d74def1b2c112bf88647d00e55341297ed43dfa1312685a260ec51b42ed6c24e46b79900549fd0234412820a1654efc1b702b4ffbcd21a9e0e3323a40e4a136bfa0cf81cf01bd89d433c56148f5bd214818a2b59ed67a8d79e54a048f357989e2046b3e7b587dc4893896b24d21716ac3c7fa8d8945b7b04479a0b397b8fe46e3424c0db7e1d7d824e40de2830e9e432e9bc3e8dc48c98c12ee9081273f5be246347769d0a34e2f0e7ec3f012e850e98e970f096522ef6f4f537529f296f7f3ec9ade921780c45fca74e571eb45ad2eccb950133aec7d4da6d03c301cebe782ba71e3533d5a0879bd6d0c71ce082f6108befc4c6133865cdf1b35a587868b99c36f59811bd3771a75c375321d1d3327b86bcb2514eac6f11a77867856f5a2cb24ff4f72f65742854baa0a3072a1c2e8d55ba7a49807bbf09ad71e000d67b09bba8ea2ec6009086342753a71c9b7142435f0c29a9ad5549dcb9ac289104f48d39d4e196025268dfa1b6a25500e7f5e830053d6bd9dbd5a2546f2b38820b7ec18b55b638f189c2cb865982880ab8a2d0b81f7a40ac8a6a8bed4df0643df2a4dd4606194c8508595e116f39f3166b4f313145815f8ab8a09e6fac91e3cfa404438c8c430dda4d121eef70a9bc0937ff264a4c22904c66b8466165d9302052f5687326970486277a54f458717b23d014ce251eb044d74105355f1ae0b5dcdf0ef73fece10777328b86b0bb4d07276c1c219fdc62892dd095536db3525c18d0409121171197c99bdd8a95eb2f5a235d6ab6cef9830493b2c71bacd3782d67eeffacf4aed5bc07c2524203344cd31ad0bb296be4e478c61149c736ad66168c2d0ba4410e05513c1af1ebe644b0760360722094dd4a26a16d8f12264b25accafdc6a3f55736f0de1e55dbdb28d02a088b276813522c901c6ac134a1ffa00cd61276e1221bbd7ff377d1dba5e1beb1243cd531b8f9fcb0cd9e8d9418c6e9306b89d96e0136eeaa66ebdb248bfd08f402a12915178a6e7d4a612dbc3a878db9ce7153bdc9130d3df7308c13b2e97fb005819bfdd569b0009e9bd1f9a41c7eb23ec33d8cd37d5d05b705b4511dc09f0e05d2260582a4a391c8180a17189b98a53b831ebced724333194f2f6809571401185017332cad227b54dca48915a4a78875967f8ed352fd96d5446946a64b429708192db4386fcba811f000733a6f28b929be4f9aa1d2140ccc3f9616f82f34cc1281dc4a2838c70842102a997a6bc26a737209d42266e815738ec3943516e150279e9dd39bd768a08ad9ceca41993b8e8408d025affd64237b5985ed9a37d52a11bee6efbee9ff1ffe2f060d79bd751d43bfdec4d5fa5e323582f8d735f44c7b1bb75e2ad0bf3e1f255a9e983428b9baa96cfae8bf71d1aa4d3a786235e2106528941f264db478bce46c697bc574a5dc0b956d033eb29194de103a9a70bccdeb19d5cfb9c2ace7ec529ea27438d22668f09c2acbdc9c099bbd5554a6f3ae145a29fbde88fcb5e46ca563fad42cc7e26ddbdc0e655f88057a8a8f6e51354f74db1dd99423b0d860b8ee34e292b4616f7c870094c265f52cc450f98a575323872e2400a80de9d38f539c9b0b9580ccb9ae2e382f3092a657ff50a83ea03a4ba7d620a5b9553d48bdf8ff66139e723e6a1655823b62add790b62e605d90044bec0e196df524c0987fe4b832add37f546b835dd259e7c03de7226a43a6a062b4e61c2ea4e4d02236497c570aeac4ea1896e1e3a19343f6e50eadb273cb5a7becdad20800ed797700c5e269e0c1edf4947c65348976d4a67e16ee547c6c870c36e3d709df4796e7cc0d89f1fc722c7d967d4c0baa823f93f9c4d6c7913edd185bc11c23442bab611ff64c7eb49ab07f32f52008673d80ba54e04bbc5c61ca1f0c38362f5baea6ca93f7a41762a2b4f5b6c31c4e0d140e422fbe379f2686522dccb035288e0e05b537a48d5470921b9d724c26fb8d2900dc7d6f0741ba2c1a35138c1724584003a84247aeb78b30e2d8fb4cf7147785647ddeb68a7df6a79ff84fb008219b35214df5048253b823fcaf329a45a2ae7f959af6539ae7753e3554d2899621795fa4312815b80472036b9f35c1495378f172c7157a9440e62ee46692ace61052d93c57b9902620b22e1c29b9106ad076f25f69fed4106736de133d72ecb71948cc83425a81e7f7c6486e0f08b4b412724759ce41f950d65fa5283c31a4c226769518d0ab71ba583b0022557cddceec3566637a6c1c519999523b44d953ba13a68997032013798fc580d466367a6a04502f500f7dcf4c2e6e03e7774849082668cc07461b1088861db6bf4c03528227a20d2b473e088aff34daa78be838000bed18cab0f02716c9ee5e68f2434a241e6784ba03ca69df0edd97dd72038b6c2e04d93cc4f54309390fe572d6affd4cbb1989ddcf410fb476e3a8681656efaf18b0b7c0a137e1454dd3ca510d220987b5aaa51124e157fa372ec6099a03a7140354150d34ffc1b4ea2bcc2d705f72e2bfac4619f6ba35de7a5c08d5d7ec34b712c1195df5fc75284ebe217430760ab4862de0255f75dbe24f4fe60f90c3419d03630b0da0e292c1088354c075dd1e00694fc14db1878a5cfacf2b7b797742e516d451a52d64de482f4bf60beb30fa565a4e29904042fe36288002bb84325d5a0664003075b0ef9bfd1573f70b84f7b75ce76563169be92df533d5aeb47ffbe70b41ef4deb720d4d2fe7dc11b4483b3d0b226ef5cfd8ba9a4e46bea1018fbb64298c7227e27ecf7291ff64ebbab81169202697e8e76afbe9fe1504243b4077b30cddb62d67cbb120c38a93a9d10466381bcc71a202ee0a75f1bf952ac1c61a001f251e0231fb968a4b39bd089704ca99438b645cfc29920e0f8f4988f77e95970ec2e8e1aa9376bd31702a93e024f654ed26a324bf744d53271e510a1f7cc2ff1155f64822affa2c0d2fcd555aa5dad8698731fca61bd3a3d072cf33c1a8d9f815699cea496017d4bf9fcf96e5a384e7c105d2ac074571e600afd0e9b4e7e8b21e85323381cf7d3ba3431e64e894ce4d693f0c463b6d104dd33dedd7f1b9f081004b64f1d7c848aa7c28d6a815b7ec34ff2bb76d2d8c25f93265ad8b20b7140b0dd34779b2145df8b131bfb71ffed5c835d2b696299ed813bb472be2f3a880ea0e1abda56faf0df6daf6b166c95c5edc97bac1f73d539a4e419e36cae7ee1d9211c1659cf668bedf75fe21edb2ff2b1fc695bbd538c1331845f24839897b620021bdf685c361d30014b4396b358599cefdc9d5f3b464d67a54c9cb29789257101b7153446f1040fd153236c214b0b502ccb8c202c54ddfa527132962133d398819a23ee53b40796801a094627b87364921ae981e57f9f478ddb3fe9e3050dbf30c3793885e6423402d09a54736d9a0fab9f8e5edf858b7be1710b5ee2a46c8ae1dad8846162762182f95a6360199cd0ccad756cea2e4fbb6f17bf7bb643cc6ea0185b530295447254ce398130e4f1bac6a4135c8b9be462422bb6ed88d7d81560cc09061f82989f499b935c855c6446ee4c02f2b5ec74205bb2681a3d39cae951e785e3c3ce8c5a93d9a16f466e1df548f855d70d18613fe8dd861f3e4f486c604715136d512b998cab28f4cada627caf8da082e1b11e2438ae4f8ed17b259ec16b21b75881cfd9f0ae30c2ebb472bcfafd4c09ff390f3a381e2098d9b057cf11ce1a91c61b317ca6f871105d6034a1ae73832671555965c2deeb24c5da51ce21382891a3df8d5ba54ddcbd4a9061a4574b0a4813c7d5fd49797bcd8ebbda4b628b1699345f2327ed7e3a35dbcac11e9704a2d019568e273b2ddbbdda61b96f11875cf03eaefd3c4a503d2499a9524ba9c8e8b1906511a4a85800ee21ad424b32d1b12c661616bf91e9616cf0dd1823f5e33799035dd1bcb92bbb8bd7b9fb5cd1764a79b21973a65541bb9bf58bae57a63de6e20a207369f85b0ece77b1da38822852209e2034dac637154e40c26004c7d2f8d6b0f2f649fe920d916a0b9608b19bad11fd19291c1d7aba146796c8bc076303184293b05257a2e95aa1b35be93017ede6c3a4fadb0c3b384fc1bb3ba2515ede2ddf470bbc5279817dccba8486f20dc05e84fe2b3674dbf6cfbc4ea1888a95c385a682b198665ea24fe875f91820c6eb30738c6c686153cef7a45b97d5da153ed62a67f725af666c8f5454143261b2e0303ea261450c0505cdcf6d8c5a1fe7c840287ff532d632de4cd4b899b0725d247a3eaf394fba18917bc67089efdf773445090ab333538b9db6dd2aa34bc0189a235ce7315920cc9633d5dc1c072cad0ebe0e95a07a0a7f6152bb14345c5118ec9dfcdb51980db3cdbc0b4917ecc57a03dd0c8586ed23145fb8af86e64f92af16757fe4fb59efbf68b60493d51df19d06df73ff34828b9b0805b3a12512c0649e85e611b0ea226cd5195e88f479ca348748e3aceb994208fdeca397d1c930d13a131ca0eb5a309eed385c046002c368bc570ea227bb02cc92be5e30820fd2444558ba0ba9ab3e990299dc09f450bae4c4c92829a42c6943c451cc858e34624e06233837107b33fc5cb27ac7baf78d48735d71cabebf68bbe8437ec15e57a1f5903dfda34ef89110f00cc07959025cf325ee02f81046cc48105d3e5930bfc20093ac8cbfca0030d78cc010018beb1b3e689d52956baa0c54ceaf858488e222ee9cc8d4c5e47162bf7386e4325e3a513e6d4f4458f5e01fc343e340124c0fd1e2f5897ab3f2279bc761e37a8c20cf48a6bb27fb6da5bf0a5f67fca6ad93e1a0e9ae19d75c9f500b45f68de80244090eb66f42dab81886a78645cb1bfb279310f78e982ab46a572920bb2e18383e1427da1df92db1f3665498c719a7af869d222c0107166bb0aa5b0885983712566f8e0b4471e69d88ebdb7d0173345a2cee80d8d1c4837d9de3b2d429fe96aa4f29fce440e52141ae4571cb1f1d7735af86c07240e3b2aa1472c3c81dbc49bfb3e866b43f778158a3fd6641a773da5241474037cb0fc644b2a88c90ee66cc4ddb962336347ccaecd1f4fa8eb567c0454465511badee113262abf691cc75f28c0236812d76537940e970f4488fbce2ccb46e70e0fec7749cda728fb17b5b1ff968bd3b6433dd6dd6cc619e8ab2eae099ffb4828f906c82568287d2256b56129e8b83944f9ee180627afbc9d510fdb7b392458129e691ecb7b6fe77c01d70bf2628fe69e5f6e962f1029ce626a0d18886241452f8d1c3dddbd8cb59cbec15b623aa1309d12221f7c62d956815c924114ec867727db4f836bee8aa950940cc1732aa52d0e741ae355a8c3621ad068c043f77cff2005b28ce7c5532ebf6b7e51d10c344c9a9b00836e4fc37f7eb1176d640c19060aa65efff54d1d497ece96910f6661001fb199d24c3cf997ce1e401788a382ac17dbdc878bd81276bd23b35fe31d93f4d7cb65b722e65d58fe039d126524bb4b26dadd32b90572e617c96576afcb2fcd9605b1d898b2366fd9a7cd0c23769da92e46b7b8c48234c4466b0be922a9525a8896b2d6cc9651b2f6f291cf2bd72b8504523ff71405a30800020b61ac9a1e6b61ca68f9859f6bf1106f2a0fb66d5da305a3e48cdcb56d89222f017078cf35af105ab2b2e2cdb7adc3d71de732d2f22008d6aec49dcb622b4b6033438a7b990f6e08a2d41909392a890d6ab2970c4fcb2de53850b4466695b93e50172ffcc6ff47c882aa9444bb09652ee9f5a4f43e8219963fd677971a8f8f1fe5d09bd27ad0676c59c6b99cc2c46d8a886716e16a0a2b0e85311370de1c8442d4216cb8ccff3d36a6765addb8a188408eff04a488a630620acc22c938e923607f077ab953afc8412ab4cd325b812e18b36db9ea03c21a2fd212df4bf20f8e47cfe5c5285a3706f8ab9863ea128054bafa1fe192afc228dad5eeef0e864876e671e4a960e451d5cb11204eb0f7dedb1d1bea322aeaad09ce122c5b6d149f0192436aeccf959f73db3968cbe69f6c2dc955c1a8644eff00b33c6fe57db259f1f62f8df50692e8d8c36a22c77234e0d81dea745254adbf2b5b16738d4e4e8f30d8073c01e34d8a784bc6b41ec8e2afa5c8d2347b145ed40ce970cfdbc28f9bb3195dd2fb274f9895a29a996aadbdaa4cee11b546cfdfdb0822416fe28cab89c713f9ab14d28a3d22a7033c1ada634ce7928681369e9b6115d6ee8f939ad0609d6eb842084c6ca07a055e83ae2d1a0109498f8b7ee9bbf024cd8f5ffaa9da4f482d9efec43b3e1c77e8eab2f44007269b14614c932ebdd02093e404029042625197d41362d07884031eb192890e18ac0b1e4237afe7402006c7641b87a6aff30a7828f5a61b6b79949489013a23ae8f138bb6458a72798011945363118e8c1728e09565b5ba8e9c322b281d50c81d9ff94a18612ac41f7e1e0557a57f3b98074694b3bc37edf005f0129ba8ab7aeef1346dc1b94cc283ef2be1c91a0c0747ed6b472d5a6103ca79844f6fac466e756e51599951b0ad1c8b0f4dca5aaa01292e52a8a19a994dfb8ae96163872353ec485ccf1a2c6bf2b0a316be623636b1118ec0511c5c0aa630833c542c80ca87898c8d8a0c9c6432f9200dfe1f87f83f760e4779993ebb87b600763a78a1e0022f2a3c083730c09930e2185bb62bd0f1e1ec17991ed4246cbcadc9d17af7f85d2583b555b293b85cb3ba103959d3005c53566ecf636f2d99b94266ae10f20d7941d94ab52b1e66c99a2a24903de01d4c24236f18e0a72f1485b8e8e0eba5385dd2ccf3da36f42f29f29c0b5c24e7cd6e5d92ca2e92b79c3cd608a0cbfe8b2940aca50db477bbbf676188191656e0acf10df4d56c25255747160742762fc2d37e507e563b9c2b2158231c24fda5b8762d28c2cb390432cce54693def5c5d8cf3f1a820bff33763673116e0bb80254eea5b1630deb61300db47c2e3e9d43c0ae79ac6d8d8e5dacb30b421c0e88460520595dd83aefc1ea925bc7b76faabbd79339a6862c8b8ae500e61ad9244cffc3946a184f713d5239638a2e1d795aeee5ee445c9f9aab6409e735b88f021554cd4ee080447d929f96556906a5504df942919385bc5e64cedbf2ae394d27ace9d675fc4a5fbaa1418f1420ae54e57c8343a69843ac97c5ebcc817820320e5d6c9eda47e171d3f5a2edb52448f00acda78580b066fc588b39aa09638a850a2a0dcb9dd824a85d72255623c47308a71ac9c4b4f6bda9d273b1c1f88b629c2d80cf2b46f3ac5285aad169e96b067b01de824253f4156311196ba6e4bc21040cf1b3cc75b68e63af37eb275714561af525bfbb82497cd4730215975d8a3cd61df43394141f318ee9571c1ed93198d282288da8bcb5b33e3c6f1e9269a763041064a0d92da154a1b43895e1833b6bac67e096996e0db5bc1447c30bbdcb5bc30253f837b9e9f89777891e37357c8654e1a5d5ea0262afd58136f1c1c969d3950173e90b1dc6b589a510c7364be31128cacd0baf495fbb9161024b880c18e97e2a3395c5515973f8ebbdf18b8fb573eb46a4e8fc88c2f159cc6be94c7aa35e0d1be4bfc35f47cd93bee0e1adc16a0957f824a9e24f31a32c372e97b6a2f9a71d147f33857a0febcfe896dc770f9a2a86a7089b55a396afffe4bb21d5321e1d7a1230faf580d4ac8a0a7d8f3fcf457f63ab27cc54c5820739bf6437bc43eaecbb2cbf7af588268ced22cad9f5a9254d95c5f47127387655ee36dc94d70d1392960825e78b37cc551183bcb25b98363522c0a801206000c6ded60985718b46ab2400ad0b22c9addd5f71d90a7578913c0da692d7bb9230c78d6f6273114df69d73210957b327089cd3495ba001efc730c8f84d824fdf9448c277d02379b694d0bd1a4012ba18c18efb60b94d7fb0fb750ba948a5c73e55ffe464ebf7acbd04fb8124a0432f67e42bc4409433b85588fa6d16dc93432fb633ec1170e1de3d258e7e287d7479896cec61832a3e7e5e257209609c6af97c315bb08473de27be705f831301c5336b7f37607888212f40b73bd0aea535cc7148be0f9cddeef1f397b8dc1c1bd11368695d776b6d4f51d8b9a3ff091dc23b438ad3a8e00f435768543c9520ed4fde81fe5b8cde1b1b005cc5a470003b8a12d74d4178d03351cfd620c9a41861979a4209de561feab4faa20b540fafe14a2f47815d1d6f756882735645e30f50fe0714b48545aad0aa47edf4cf85b77edef8420cadbb2ab055537896841d009bb5d21aeb5bf32e1a0a2c6d2f7a0044c7bae33fa95f6264135534b5aa1a1710398fce470a822d6e5bf4a572fc5aa091e664335a8f0e5f4b82ba80dbd25d8d050d8d517b496e2067860366e267a33cceafe24e53584565511927952e43f160218634834c0bd7a41a100548c68c54d6d47e30ba6841925ce0afeb3aea68385600156ed62144c5a67173008b02d76e28126ca00a2819c0bb3eb4cc92c196f8932b0efd5fccfbbd5f77198a0d800e01d63679db7ee5dc4213c4a1e82b47ce07ca040540c023f617d52c1ccbd2d9e825d8f60a2f6cc6c7e0230f8c259659cdc08211739844b03202e6faab271c897dfa7bef337a5b0672ab13ebe547f572a089fe304aeed0c9d0c871f87128dbbb634322c5449164a13028e7f8e46ea7eaf5861a1eb1cdadf95c5ae983ef642bfb86f103558afc4571483cb7585a00715580fdd806c4f741b7246e5655a575e85661422ec7b71e79535db2ab86ca6105124a2f1428d9f82f7cf626d8bf29d5a074bf2e8a64a11e8b415465ec3366cc0e4af15eb00af3afb40024843ffe9126a492594cff90682e2c4afa7237bc901e70a081e68a01e0d9ee7d4bfb5b07b2d9102409de25c281bbbdd10f2bbdb04adf4a2e467df3108a7206cd0ab67ebc298481ce73bbff082a5434b01e26d8ec53ea69f7dddf6b08619279b0aa0c5e4f7e0ba18b37dfcb3ab7762debd778e1675539e2023fe00026df8a6518857f2cf15a8dd27eb05fd4854710b80ae479cc3dbb4963dbb6140129ebe07739ab8b1f23d828751d533ea3630788c03835c7ade9de2fc725639be627448ecbcaa51b958aee7c6415c041b815de8940e427fe2152c77639f3c5e7db0699e2a03a056f4a0323541d174c4d8c1d71a7b04c664aeea06aaf2f978496231f2c0d82e6d3dbd8f29d81dcba037666a0567564fed3a90a34f4c2a0864fe6a118678798666318a2f6c93fc93d788c258f01c5aa450b65f4927ba6308f7a99ab0fae315f1aa96516b51b9a35b0bf04a303290f7a4b0f107434e88c9b897d8ef32dbea8b90191f27ec6c6a71c3b576ccc10b6945a2d651b526b36c86929d7dab3195b1cd7777a95a1dccfab7ad95d9815d143fc6d86f974cd07417038811e143f157f37337b54b492a344d0bdd2d2dfd3f27a74d529898ae3243bd532983b58d22337c69e87af024d6cb0d8f29c96ee48114d2e7b2c1535ad6b00e178977380bb17569028d04252e77d46764676068c2e1d43bee814688c6881424210bee531ef156682b6b037656dd8a82fd83ca1924074f752a207b2585ae4c9ea6f4c78c75d1ed96542fc65f19260e0a755919c2e24659105c4c9df00ded15f93f442f6887c12fadbd7a3c4fe425a3f30f0ddb2f375e471a373f27e43c8a494d9678e8e60931292950805f2f6b9f28b3182436c2a975dd365a59195dc4df585e87395c7c3a4236a0085c40b7af8c4448e830057b33fe8df95a33647c37c55b225bd5f8b1c591db855703240e2f49d63e43c62f8c30b2a39b67bea6e9a9481146c046af276d611b6ed9c39e7cc8f66dc7f9b386ba00528af573aea6d008433d39881470fb56429fde8616fbc9e483e1222d447832cb7bc58170c7ec86e8f4de9070e07eacaf608aaaf73c42c827990cd0c64687ae8cfa0b373da849a767ef3b63ca08327663a0c85a554dd2ecef748e891cbd90386b5737d945603b56c887986f9a306d7de4b18564645c2a77acd8cde744455ead6f28819282b59f662f7da89dec13b7623df1b44633048278c6435e1449517b0235bc9f4c2cf39aaf34908726c3dd3a07a1b29aa41f4a0e91cec6a4481c3280a94398f6ff1b0b07b39ab0e6668dde438308209a6e0f5ddbfbb30481e978e215f67468f31eaf930dca350f0fc53bee83f988b04310eb11496a8955d0a91b51aead8dcd1703cdc4b0e7f2f4674ae3e588b595b2a10a00f88b3abcfdb5d1c8dc9f8727d16373ae7fd05b239f7e5bc22909682d90901653987feda97752895523e956cffbcaa8d3f088d280cb19cf4d71f010a671d8b1d6227e7d72dbea884042ee1324bd31a5fbb7ed49b79f04e834245a552b5157fdd0e905e98e890291c69bdcdf6307771876bb8288809b44e63bdc934710e039909b2ef090b39137e7420aa7ef195656037f3482b4fc10e554341d68ec93d2294fcb6a8d69542b31f9942a59c4f4503e188912dd1cff39640cc2217e1cc871865202fa3c02e817f2fcf395c446a3eecac5d97950a44ffe1e8d299e064e5512aab2c1581a7dde08e01d9efd6c7fdc561b8c7e6fa75020b9534f2d3b35afc0b0e550b117eb8b4be6223be3b32b3367819c099e5cee581ef44a2cc483073514b0c317541eccfeb5a470e62a4a7183b1b22839e1a1c23bf58b6ee43d1fe87fa100c1bba8cab5dc7f68592841c2f9cee4e068d6791e55f4dd54edf7ecf336cef3510f331f64e0bfe4a9226e772e395f992634eeb6219cc239dd5d8e03cbe1f45810bd16714d1d83b871586d6c721608db6150796aa7d942a7d6b7f37e1fe54d5910ff184c75453103ce3e832ab21e3f16110827890bdeaef035641417fcb9b2c3c142549f5302f25b6f4fd1abb1b586555dec7abb108c3d988222356f8845157a91a934f239cf4d919aa5a54e5706f63ccaedaa2a523aa75b6cb425fccd9b302760f63efea5bb28d9047c8ef3d06ef698f6eb8d69cc2968256b56ba2c6b1aa325007ccc054bd8707ae6a7e1136a7d734ca437bc91640e819bdb1161db6285b848209f695c935d12262fc81ea65c312cab7c604cebf8a7a8e32199912d3fc172f2d0c39e4c9610d79d226d090265c7f961ce63aeab2e824e029ce1b89601913496a0dc3486866c4ae74c9f7227bb2bc821fe2ea1a265a34e961cfe8e0548f0b2ff629b111d35a7ba7b41a2e65e5412dcceb796b31d0d87b9f1a4d24b028f2377d5201ebd6d03eef5c45e78c52247c3282fcf64558e43ff15e1d39533389bd7a86f4037518906b748ee732531e22b29338f4a4f42a0f216226011632c4fc7a59287208482ad4d100cefeb5679cb8b4f6af5aa6b87f87d0a7815aebb30da0d927d3e613ba71984e13a4480217ff47b1055dbef0ed7333ff8403935f10785b4d212031267080070a80b5f94ea5c4363d2d971036e8446f2c055ca49495145eca1ae9fe2992670c4c90a20991d63058dd4a885b9ec25f2307e6dfb364be99f0ab596b560e91d00167f0fcdc484e4510cea659d39a58ea6d94188082c301d82be3a5beaa06007fd0fb2de248dbc4fe010a14285eb1c67ab1035575cfe2c4a46e7169be0224093f309708216779d4be610fbad6c37027359a6cd9af3253023c94bab2500927dca5e53ccf2bcfabd9f056b2381845a855bf7947d600e6f85117b69e57ab64124efae3d5bf327ab6ba6d4526a495aa613a1c141b4ccbe97dce4d2174af49751a32d049a2624f7c385673c88d7fea82a5c517b7fac655774c395cdce73099b60602b40c9255dbac3b084808ab31e76a1f050751bb6775dbada5d84691d2765327ca9346b73ccb979a8d2890fd43bf51eedcd0a78af072f64ee41abb954bacfb0b59bbaf1fcc4321f763a03b112189c055a31078afd0954b7d7ccf311615d3d01712fa34ac64c32e7ba17168f04876190ff32077be969a20cf83be9d04ecc5ba2287f65a7cb3a473300d133636ba395a1cfe1b9cfbe68f106f114d46d453ac6e058d32c610ee7b8e0025aa2f8fa532b3a6a45214fd7df4c35ad5112f545fbde314772040257c0366286283200970b7ee56d048cf3f6725fc8d9651a8234a6594149de5e4a643c98e7261b75a27baeb89147605258f470c0291bf22880e6a900612c1e251dddced6445c3dcdcfcccc1c36736068f9e1f7bbc4063895df782b11510427a865028d998dcea094cc2f8d0fa2efbd0040d0b118e4415dae71c92cfa31dced774d8572bfb42107f480682ff1c5ef95f657787a06997f53061d44cee6b2033fe9a65b025cd7e27764e34562fbc6391cf8d31623f31b68f03d6a1d1404d04b8c60cbb003fd65b2886da9263ee92021683e1af25189631d1725df8c163572d5f76b195591eca401fbd5d43e2992245ea9a4009a8ed600fcb0962ea5b845a18cd73d9f8a31eab2560b9f00b08cc4517309f7100c34df4c3aeccbb3df8eb49244478321b4748aef75677808a6a5d92a6964f298eb5e5337621398b0c1a43550700ca5f97215da057c3a4a16a260471ca887e12ab3a9fbaac6a61c67c38fb9b1c8b2eec6c0535832e1ea214b890bcc72682c5bddb39f4ddf34500a5cb9a81aa2d3d9f09f802a02b7324b79e9681debd2833f6238b22ae6622ba1a64e744f79029e3aef42dc679892840c82352fa28d9140106d6c2ba6ada66fae52bff965eb40eb54e3e94c92cd24f6ec52eab577e80d8c8e9f2d39d6b8d69503967d9809fd21036bd833a94dd6a85559c519bb7a2769b6486b00d34996da228c08994f285b22f7362c30b976680185fcb2d6c1a9fc47ce47e77d3af5b773534e2ce7c2063dc0f148ba271ab4c9b17837d44c14d231fe85b7644462249299a68b506bff87f4d23eee74e2f9b8ee256ebaa6e03b545afa196f22ef7e96d7255f5e79bbb786c1c165a455c205655a47926176b91f2d2c02ac5c00ad29b467bfdbd51b0768b35290d4bbf22a70348d22efdd5235eb6e682385197b4e17330c46c44ca6d5dfc67912841ddb730006e521446f952117b78effc601d10372438c4ba4f6e2608e9a51021960d7a065af49c4c06053d32596d990c1a43cac1658dad807ae48de098e4172a749e9fc0fea8a55e57cdb05166ad9692c00bf103ac30881c6ea8c6b86c244a0792663fbe195bacf4bffe700777c5fb07db9bcf94404ce90d0ed74a50febf9e2b4d7bb4c6dae168809b1e8687e2e668d2680f40733b7d6877b27eaaa2021daa212f5c9650237c6013810fbf50f8c160395a487a5cd535ddcc85437383d7fd401e42318881baf153d5c6a0f3ae7c933daff9cd10c89c0f7d9c1253e65995e7af082ba05d83761cb163b4ca9d55e5dbb43c74bf3f456988438da2b3e62a90097a188bb1d3cfb110267f28a328777328ee715c575923e5517216a551b7e4bca46426c9def697692dbd245316df1b3d3ebc23d2e7f26282bb8c3c77383b633d1fee09e269116a30414bd9701c5e0878caadf29773b5e4c010a7f519d6c8ed4ab64a0b0dd617d9c5b993d32b538129fa4404c7371453aec2448ad60caedef25217742955e9b0087cc084f3750b6474cf9ccc1b91b93088093fb9b65512bb41c7fe1325742cb05d49c540c0db2fe8cecba3202fa75c3652f8a0632c901284718de2f0197e4469bc4e63f957318e61dfc0b47f3612c833faa62fbbc758bea7747a919c10434862eebeac7e95316632cb2a81e786f3148d551e82d4b5f3952dac0e84a81a35b2d833ae99e441f064acd0efe3ec75d0180f0dc898edb2ec4e6104c43d9121095529dcc976329670baf3bc91051208b4d62984741144c2795189811c35d41cb3ed4bbd682aa625880beac8855c5fea04d41e00eab4f0d06318c229f650e10fdb194388dbc4bbbe4e95fd302d9cf15deba158f7c686da98f0c51b56a9c3bf2355c510225e1b58ab2af9314c08bd8adff1ada7c9a457c0c1deb47b814f2c2f2c04d7711fd02ba586d4a50ad99a1723e5bf2916b4b5ecba863947a98fbbbb300bbfceff43f6717beb8ca8fcefb59c672661fb46da69df22870a4c52fa4cd0f22bcca13d376d46c173fc2901c265dc09ad688e67b9726845e03944ee966ec01b285bd066f7c5357304cec840041d33e776badbda4e0007a505004e070b9520ed0794a82f878b218f741d0cb293956b5273b429c885d893d1113d73aa26c1d423271b72ec18a3db9d3d0e838edd70c2ce3869f8dfa7a2990839b8dd9e1172e87b0a636a0eaaf2172cf943d025179ff1617471d89f89258b34a3bbca00641a9cd81a528d6c2a802448da3ad3d59f777313c16a671482e39b8cb7da9ac35c1ff2d818c053d772d3b5a8a648244ccc209c808ebe141ba2f9d5650d0da14819aadde11048336a6121c302669d43eec43639872901bf281af7a1688aa3d3928ebdd90712c4211198d7728995d57f5bcc090cf7beca8045d513deb1b175ebb36796f0e41834db39abc7b5ecd1a514dcb9228530e81361aea5811ca208a650daf968e6d810ec1c14ddd45f0d5cc72b4bb6c9b567381cd3f8ff34d9591c48f845ea50846b056e828c137df3632d6225d8c3c7df355ea62f2e0d113a7e36852b6764afb9f11759ab5b4dc7063a18dd2b491a4a3d073bfdf8f4d33df3f339a83e3ba2953d7f09876c8f4e48e48b158ea3f41eb7f19716f44512bf7cdaaeb3915798ce22707b1a45579944f3cb644003ac2430ac63799964bce8f0125b487e5e84f986f46a8314921030ad6e51af6e9a654d191b8562e8acab6542844de111650de2ce37659f29baa8a03a66a40d48856ec10f47f554e884258e4eff26ce0f15c6b5171f95812f14a2b03d6b68f4bf5be1acb77702105951d5f13a423c1b21960b0c129fa99d1a8dc9e0aba8f76e0f8bf6db5523758d5ec321d0857a2df1134b5dae2faccf3b2373925e13c17f70c80783a3664e984c082f251bbe3c4698dff5daf3c70e5fdf14c66f792e18c3133a0ec195583065986f5d8f297f5750ed78aee7b7fb6efaa11546abb4feb014cf7206953bcb52e5f16ac8d232723683674bc02854efa9c8112dd9d7b31522a6b7fb653afd18e987a926fbd5377b5b0e415cf2614bdf0c26350102b6d8a26892985e76fd744ab01d06b524f57d634fc0b69a5d91355398d6ac1ec5b7588982ece0b103edde74a6f327e6ccf694bc534195fe0effc7483f13a12b278acb099ad84fbc96b27d36269ba06a660e2bc9093059a2acb1998cf3f1fe129253e64f00669a4cf7480180edd5c242544581499b9a233f0ce088acf1e4db14f35ce5d343461157dbe0adb07355d95d2cd5aa6dba222b6a702af1e325d2bc2d106ec5d71809dff7aec68762661bdfd5dbfe456cba5a7c150c73da2510f75216ed7e6f631af32c7e9c7884b0ab0cf71a834ddc4c825748eb5d35451d8092402dd68235d74c633a111bd167dec9a6371b137ae89530106a928c87743b38be3d0076cc22cae0c2544d7e6d49cb00182253dab5dfcf6cbdb378f56b0714b9d4bf2af75f56bee1cdbf00f1a0af44ee6ca3d7f8b3b42d38f87bf1da869240dc6477092f4b09a0af31220825e29d275eeb08977e8d3a6a934cc16a6d562b2eca001a04cb8d5ffe9fe85b21a785e261721288e9b5b75b400545a31d0d53270608b10408287f21c644121d27ec9aa9f50ccbce17e7ebe37a9858da78ca1d207bd9d63708d64375d1c8b872172ed0e50612b60c4b049e807f23d6fa8f4e61e06d52047a034d11c3fb63ed48fc75af072a1084b3d0982b796c9dbb70c295e4c938688dd603457e18852f8480e869f8aa0665890d85a78c5458b77f682cbde6b7954b55d82cdc590f35d097cd61fc65b0dbaac9cd05916c807ec0e318de09c55d6facb6370f2b077d67767da3df753109cb25329348253b3bb8a474b8f2383d269e7af7d31188362ee1c47b51ae57ee87cdc133d212b205f43ad871011e82684b3251a16817b80922192c7ef6e95042838827e749bc017d1a96c6e69f4d945f6a40c8067809380df1270bf5638a0dd4f2c7b7af4a5798b4280a4c98abd97c99272b34488d055c100b6e332bb5d2bf6ba8f3f5945bd877926df3eaab055c5d42be090db0bf02cc36716e8608d8ddd908e019707e77d50ecaae8f83a61fac66303fe0d980381913d591367d4749326ea822b20c1f015974fcd5ec6d659aedeac7b56f6fb7891706e619141f6b4a93840023bb2342e759da6438e07ed974a5f1e3d506144c960bbe067b718cb861fe927716cba85cfc466eed0e9d2c1067bc7f9e356bc5d23c1094541933220c2bef5ec7afe91782ec245208d58f93a08ec25eb59710a7362303daf04d7a256119a10ba5f6653564dff54f8eb78577360ac477abab5ce87bf70cce5000e4686fab8ca621f1c65dda94eb8b5892b1aff79a9a5eb0a2e65efd5314e0969768884cab782cafd4b81555a818559c4835fb6821ec46fd08ea418ac61ff343732becbc72450b2faedef7112b951edf2ee03bebe4b71365755e6d551810e06fbbc2176bff93433750bcbfec05aea120f193a1e4c5bf5993e098916f96a2646970667358221220f84601a885dc9dbc8707c85700d569beb6eb6ff5680ef10b528a7f7b203b02c364736f6c63430008170033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.