@settlemint/solidity-token-erc721
Version:
Smart contract set to build an ERC721 token in SettleMint
1 lines • 246 kB
JSON
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testBurn","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testCollectReserves","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testDeployment","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testDisableWhitelistMerkleRoot","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetAllowance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGift","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testIncreaseBalance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testMintPauseUnpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPauseUnpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPublicSale","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testReveal","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSupportsInterface","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUpdate","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testWhitelistMint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testWhitelistMintFailsWithInvalidProof","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testWithdrawFunds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040523461041457600c805460ff199081166001908117909255601f805490911682179055602080546001600160a01b031990811690921790556021805482166002179055602280548216905560238054909116600317905560245461006690610418565b601f81116103c1575b50608760249081555f525f5160206192b85f395f51905f525f5160206193385f395f51905f52555f5160206192585f395f51905f527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec5556236712f60e81b7f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec6556025546100fb90610418565b601f811161036e575b50609360259081555f525f5160206192b85f395f51905f525f5160206192785f395f51905f52555f5160206192585f395f51905f527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4d55681b389798973539b7b760b91b7f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4e5560265461019690610418565b601f811161031b575b50608760269081555f525f5160206192f85f395f51905f525f5160206192d85f395f51905f52555f5160206193185f395f51905f527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3595556265692f60e81b7f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35965560275461022b90610418565b601f81116102c8575b609360279081555f525f5160206192f85f395f51905f525f5160206192985f395f51905f52555f5160206193185f395f51905f527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195c556832b49798973539b7b760b91b7f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195d55604051618e0790816104518239f35b60275f52601f0160051c5f5160206192985f395f51905f52017f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195e5b8181106103105750610234565b5f8155600101610303565b60265f52601f0160051c5f5160206192d85f395f51905f52017f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35975b818110610363575061019f565b5f8155600101610356565b60255f52601f0160051c5f5160206192785f395f51905f52017f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4f5b8181106103b65750610104565b5f81556001016103a9565b60245f52601f0160051c5f5160206193385f395f51905f52017f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec75b818110610409575061006f565b5f81556001016103fc565b5f80fd5b90600182811c92168015610446575b602083101461043257565b634e487b7160e01b5f52602260045260245ffd5b91607f169161042756fe6080806040526004361015610012575f80fd5b5f905f3560e01c908163039849d014614752575080630a9254e4146144605780631d0dfb58146140f85780631ed7831c1461407a57806323f8603a14613e435780632ade388014613c47578063356a66d9146135635780633e5e3c23146134e55780633f7286f41461346757806349d287c7146132f957806357b7cbdb14612be557806366d9a9a014612aa057806385226c8114612a0e578063916a17c6146129645780639a49f8b514612441578063b0464fdc14612397578063b5508aa9146122fe578063ba414fa6146122d9578063cfabdfd814612083578063d8a843bc14611b46578063e13aba4814611491578063e20c9f7114611403578063e4d1fbe914610e9d578063e5da437314610c2c578063e9b0714914610a37578063f2acf6f0146107e4578063f4df3df7146104ef578063f966d2c0146101825763fa7626d41461015d575f80fd5b3461017f578060031936011261017f57602060ff601f54166040519015158152f35b80fd5b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576104da575b506001600160a01b03601f5460081c16803b15610464578180916024604051809481937fbd32fb660000000000000000000000000000000000000000000000000000000083527fab0ad1fd11f066c49fc6a47ba91cb9e6acf73026b82a0907c282efbadefd10c260048401525af180156104cf576104ba575b505080604080516102808282614beb565b600181527f3200000000000000000000000000000000000000000000000000000000000000602082015281516102b68382614beb565b60018152601f1983013660208301377fe49914a3a1644dc92d0362120e4111d4373036cf861e3da9358d6fadafdb64cc6102ef82614dc1565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156104ab5782516303223eab60e11b81527315d34aaf54267db7d7c367839aaf71a00a2c6a656004820152848160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104b057908591610496575b506103bf916001600160a01b03601f5460081c16855180809581947f66fddfa90000000000000000000000000000000000000000000000000000000083528960048401526103ad604484018a614a14565b90600319848303016024850152614dfb565b03915afa90811561048957906103dd92918591610467575b506152ab565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464578051907f90c5013b000000000000000000000000000000000000000000000000000000008252828260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af190811561045b575061044a5750f35b8161045491614beb565b61017f5780f35b513d84823e3d90fd5b50fd5b61048391503d8087833e61047b8183614beb565b810190614d36565b5f6103d7565b50505051903d90823e3d90fd5b816104a091614beb565b6104ab57835f61035c565b505050fd5b84513d87823e3d90fd5b816104c491614beb565b61017f57805f61026f565b6040513d84823e3d90fd5b816104e491614beb565b61017f57805f6101f6565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576107cf575b506001600160a01b03601f5460081c16803b15610464578180916024604051809481937fbd32fb660000000000000000000000000000000000000000000000000000000083527fab0ad1fd11f066c49fc6a47ba91cb9e6acf73026b82a0907c282efbadefd10c260048401525af180156104cf576107ba575b506001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576107a5575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937fb44029790000000000000000000000000000000000000000000000000000000083525af180156104cf57610790575b50600460206001600160a01b03601f5460081c16604051928380927fa0b303900000000000000000000000000000000000000000000000000000000082525afa9081156104cf578291610757575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051907f7c84c69b00000000000000000000000000000000000000000000000000000000825260048201528160248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104cf5761044a5750f35b9150506020813d602011610788575b8161077360209383614beb565b81010312610784578190515f6106e0565b5f80fd5b3d9150610766565b8161079a91614beb565b61017f57805f610692565b816107af91614beb565b61017f57805f61063f565b816107c491614beb565b61017f57805f6105dc565b816107d991614beb565b61017f57805f610563565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57610a22575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f8456cb590000000000000000000000000000000000000000000000000000000083525af180156104cf57610a0d575b506001600160a01b03601f5460081c166040517f5c975abb000000000000000000000000000000000000000000000000000000008152602081600481855afa8015610a02576109019184916109e3575b506153b9565b803b15610464578180916004604051809481937f3f4ba83a0000000000000000000000000000000000000000000000000000000083525af180156104cf576109ce575b5050600460206001600160a01b03601f5460081c16604051928380927f5c975abb0000000000000000000000000000000000000000000000000000000082525afa80156104cf5761099c91839161099f575b50615432565b80f35b6109c1915060203d6020116109c7575b6109b98183614beb565b810190614d1e565b5f610996565b503d6109af565b816109d891614beb565b61017f57805f610944565b6109fc915060203d6020116109c7576109b98183614beb565b5f6108fb565b6040513d85823e3d90fd5b81610a1791614beb565b61017f57805f6108ab565b81610a2c91614beb565b61017f57805f610858565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57610c17575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937fcd85cdb50000000000000000000000000000000000000000000000000000000083525af180156104cf57610c02575b506001600160a01b03601f5460081c166040517f7e4831d3000000000000000000000000000000000000000000000000000000008152602081600481855afa8015610a0257610b539184916109e357506153b9565b803b15610464578180916004604051809481937f1a8bd2da0000000000000000000000000000000000000000000000000000000083525af180156104cf57610bed575b5050600460206001600160a01b03601f5460081c16604051928380927f7e4831d30000000000000000000000000000000000000000000000000000000082525afa80156104cf5761099c91839161099f5750615432565b81610bf791614beb565b61017f57805f610b96565b81610c0c91614beb565b61017f57805f610afe565b81610c2191614beb565b61017f57805f610aab565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57610e88575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf57610e73575b50506001906001600160a01b03601f5460081c16916001600160a01b0360235416905b6040517f0922f9c5000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610e33578491610e42575b508111610e3e576040517f6352211e000000000000000000000000000000000000000000000000000000008152816004820152602081602481885afa908115610e3357610da99184918691610e05575b506151ad565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610dd857600101610d16565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b610e26915060203d8111610e2c575b610e1e8183614beb565b810190614c0e565b5f610da3565b503d610e14565b6040513d86823e3d90fd5b8280f35b90506020813d8211610e6b575b81610e5c60209383614beb565b8101031261078457515f610d53565b3d9150610e4f565b81610e7d91614beb565b61017f57805f610cf3565b81610e9291614beb565b61017f57805f610ca0565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576113ee575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf576113d9575b506001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576113c4575b506001600160a01b03601f5460081c16803b156104645781906024604051809481937fbd32fb660000000000000000000000000000000000000000000000000000000083527fbc56477505b21fd7409dbc693cf9a006e29ec44e460308c25437bb647c3effb360048401525af180156104cf576113af575b5060049060408051906110528183614beb565b60018252601f1981013660208401377ff2e82b3a90979175611bdde3e3ad666497bf331847d930e33a91a3602a44875b61108b83614dc1565b5260206001600160a01b03601f5460081c168251958680927f7ad7614d0000000000000000000000000000000000000000000000000000000082525afa9384156113a5578394611371575b5083800460011484151715610dd8578293737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156104ab578151907fc88a5e6d000000000000000000000000000000000000000000000000000000008252739965507d1a55bcc2695c58ba16fb37d819b0a4dc60048301526024820152838160448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561133d5790849161135c575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156113395780517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f496e76616c6964204d65726b6c6520547265652070726f6f6620737570706c6960448201527f65640000000000000000000000000000000000000000000000000000000000006064820152838160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561133d57908491611347575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561133957805163ca669fa760e01b8152739965507d1a55bcc2695c58ba16fb37d819b0a4dc6004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561133d57908491611324575b50506001600160a01b03601f5460081c16803b156104ab57611311849391849284519586809481937fc4be5b590000000000000000000000000000000000000000000000000000000083526001600484015260026024840152606060448401526064830190614dfb565b03925af190811561045b575061044a5750f35b8161132e91614beb565b61133957825f6112a7565b5050fd5b82513d86823e3d90fd5b8161135191614beb565b61133957825f611239565b8161136691614beb565b61133957825f611172565b9093506020813d60201161139d575b8161138d60209383614beb565b810103126107845751925f6110d6565b3d9150611380565b81513d85823e3d90fd5b6113ba828092614beb565b61017f575f61103f565b816113ce91614beb565b61017f57805f610fc7565b816113e391614beb565b61017f57805f610f64565b816113f891614beb565b61017f57805f610f11565b503461017f578060031936011261017f5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106114725761146e8561146281870382614beb565b604051918291826149d2565b0390f35b82546001600160a01b031684526020909301926001928301920161144b565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57611b31575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf57611b1c575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f0c1c972a0000000000000000000000000000000000000000000000000000000083525af180156104cf57611b07575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57611af2575b50600460206001600160a01b03601f5460081c16604051928380927ffbd9b92d0000000000000000000000000000000000000000000000000000000082525afa9081156104cf578291611abd575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040517fc88a5e6d000000000000000000000000000000000000000000000000000000008152600160048201526024810191909152818160448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57611aa8575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040516303223eab60e11b815260016004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57611a93575b506001600160a01b03601f5460081c16604051907ffbd9b92d000000000000000000000000000000000000000000000000000000008252602082600481845afa918215610a02578392611a5c575b50803b156113395782906024604051809481937f2db11544000000000000000000000000000000000000000000000000000000008352600160048401525af180156104cf57611a47575b506001600160a01b03601f5460081c166040517f70a0823100000000000000000000000000000000000000000000000000000000815260016004820152602081602481855afa908115610a02578391611a0f575b5061182e90615342565b803b15610464578180916024604051809481937f42966c68000000000000000000000000000000000000000000000000000000008352600660048401525af180156104cf576119fa575b50602460206001600160a01b03601f5460081c16604051928380927f70a08231000000000000000000000000000000000000000000000000000000008252600160048301525afa9081156104cf5782916119c5575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051907f98296c5400000000000000000000000000000000000000000000000000000000825260048201528160248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104cf576119b0575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761044a5750f35b816119ba91614beb565b61017f57805f611942565b9150506020813d6020116119f2575b816119e160209383614beb565b81010312610784578190515f6118cd565b3d91506119d4565b81611a0491614beb565b61017f57805f611878565b9250506020823d602011611a3f575b81611a2b60209383614beb565b810103126107845761182e83925190611824565b3d9150611a1e565b81611a5191614beb565b61017f57805f6117d0565b925090506020823d602011611a8b575b81611a7960209383614beb565b8101031261078457829151905f611786565b3d9150611a6c565b81611a9d91614beb565b61017f57805f611738565b81611ab291614beb565b61017f57805f6116de565b9150506020813d602011611aea575b81611ad960209383614beb565b81010312610784578190515f611665565b3d9150611acc565b81611afc91614beb565b61017f57805f611617565b81611b1191614beb565b61017f57805f6115ab565b81611b2691614beb565b61017f57805f611558565b81611b3b91614beb565b61017f57805f611505565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761206e575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf57612059575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f0c1c972a0000000000000000000000000000000000000000000000000000000083525af180156104cf57612044575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761202f575b50600460206001600160a01b03601f5460081c16604051928380927ffbd9b92d0000000000000000000000000000000000000000000000000000000082525afa9081156104cf578291611ffa575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040517fc88a5e6d000000000000000000000000000000000000000000000000000000008152600160048201526024810191909152818160448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57611fe5575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040516303223eab60e11b815260016004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57611fd0575b506001600160a01b03601f5460081c16604051907ffbd9b92d000000000000000000000000000000000000000000000000000000008252602082600481845afa918215610a02578392611f99575b50803b156113395782906024604051809481937f2db11544000000000000000000000000000000000000000000000000000000008352600160048401525af180156104cf57611f84575b5050602460206001600160a01b03601f5460081c16604051928380927f70a08231000000000000000000000000000000000000000000000000000000008252600160048301525afa80156104cf578290611f50575b611ee49150615342565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761044a5750f35b506020813d602011611f7c575b81611f6a60209383614beb565b8101031261078457611ee49051611eda565b3d9150611f5d565b81611f8e91614beb565b61017f57805f611e85565b925090506020823d602011611fc8575b81611fb660209383614beb565b8101031261078457829151905f611e3b565b3d9150611fa9565b81611fda91614beb565b61017f57805f611ded565b81611fef91614beb565b61017f57805f611d93565b9150506020813d602011612027575b8161201660209383614beb565b81010312610784578190515f611d1a565b3d9150612009565b8161203991614beb565b61017f57805f611ccc565b8161204e91614beb565b61017f57805f611c60565b8161206391614beb565b61017f57805f611c0d565b8161207891614beb565b61017f57805f611bba565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576122c4575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf576122af575b5050604081815161215b8382614beb565b60018152601f1983013660208301377315d34aaf54267db7d7c367839aaf71a00a2c6a6561218882614dc1565b526001600160a01b03601f5460081c16803b156122ab576121db839291839286519485809481937f163e1e61000000000000000000000000000000000000000000000000000000008352600483016149d2565b03925af1801561048957612292575b505060249060206001600160a01b03601f5460081c168251938480927f70a082310000000000000000000000000000000000000000000000000000000082527315d34aaf54267db7d7c367839aaf71a00a2c6a6560048301525afa90811561045b5750829061225e575b61099c9150615342565b506020813d60201161228a575b8161227860209383614beb565b810103126107845761099c9051612254565b3d915061226b565b8161229c91614beb565b6122a757815f6121ea565b5080fd5b8280fd5b816122b991614beb565b61017f57805f61214a565b816122ce91614beb565b61017f57805f6120f7565b503461017f578060031936011261017f5760206122f46150d4565b6040519015158152f35b503461017f578060031936011261017f5760195461231b81614da9565b916123296040519384614beb565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061236b576040518061146e8782614a8e565b600160208192604051612389816123828189614c7e565b0382614beb565b815201920192019190612356565b503461017f578060031936011261017f57601c546123b481614da9565b916123c26040519384614beb565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310612404576040518061146e8782614b0b565b6002602060019260405161241781614ba2565b6001600160a01b03865416815261242f858701614e2e565b838201528152019201920191906123ef565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761294f575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf5761293a575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f0c1c972a0000000000000000000000000000000000000000000000000000000083525af180156104cf57612925575b50506001600160a01b03601f5460081c166040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600160048201528281602481855afa908115610a0257839161290b575b5060405190836025546125c181614c2d565b80855290600181169081156128c95750600114612868575b50906125eb836125f094930383614beb565b6152ab565b803b156122a7578160405180927f55f804b3000000000000000000000000000000000000000000000000000000008252602060048301528260265461263481614c2d565b9081602486015284866001831692835f14612828575050506001146127ce575b508383809203925af180156104cf576127b9575b50806024916001600160a01b03601f5460081c16604051938480927fc87b56dd000000000000000000000000000000000000000000000000000000008252600160048301525afa9182156127ac578192612790575b5060405181926027546126cf81614c2d565b808452906001811690811561274e57506001146126f8575b506125eb82611ee494950383614beb565b602784529350827f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b5b8582106127385750820160200193506125eb6126e7565b6001816020925483858801015201910190612721565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910194506125eb90506126e7565b6127a59192503d8084833e61047b8183614beb565b905f6126bd565b50604051903d90823e3d90fd5b6127c4828092614beb565b61017f575f612668565b602685528491507f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81831061280b575050820160440183612654565b8054838801604401528795508694506020909201916001016127f7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660448084019190915293151560051b90910190920192506126549050565b602586527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9392915085905b8082106128ad57509192509082016020016125eb6125d9565b9192936001816020925483858901015201910190939291612894565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915291151560051b850190910191506125eb90506125d9565b61291f91503d8085833e61047b8183614beb565b5f6125af565b8161292f91614beb565b61017f57805f61255b565b8161294491614beb565b61017f57805f612508565b8161295991614beb565b61017f57805f6124b5565b503461017f578060031936011261017f57601d5461298181614da9565b9161298f6040519384614beb565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106129d1576040518061146e8782614b0b565b600260206001926040516129e481614ba2565b6001600160a01b0386541681526129fc858701614e2e565b838201528152019201920191906129bc565b503461017f578060031936011261017f57601a54612a2b81614da9565b91612a396040519384614beb565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310612a7b576040518061146e8782614a8e565b600160208192604051612a92816123828189614c7e565b815201920192019190612a66565b503461017f578060031936011261017f57601b54612abd81614da9565b612aca6040519182614beb565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310612ba257868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210612b3757505050500390f35b91936020612b92827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0600195979984950301865288519083612b828351604084526040840190614a14565b9201519084818403910152614a39565b9601920192018594939192612b28565b60026020600192604051612bb581614ba2565b604051612bc681612382818a614c7e565b8152612bd3858701614e2e565b83820152815201920192019190612afa565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576132e4575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf576132cf575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f0c1c972a0000000000000000000000000000000000000000000000000000000083525af180156104cf576132ba575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576132a5575b50600460206001600160a01b03601f5460081c16604051928380927ffbd9b92d0000000000000000000000000000000000000000000000000000000082525afa9081156104cf578291613270575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040517fc88a5e6d000000000000000000000000000000000000000000000000000000008152600160048201526024810191909152818160448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761325b575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040516303223eab60e11b815260016004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57613246575b506001600160a01b03601f5460081c16604051907ffbd9b92d000000000000000000000000000000000000000000000000000000008252602082600481845afa918215610a0257839261320f575b50803b156113395782906024604051809481937f2db11544000000000000000000000000000000000000000000000000000000008352600160048401525af180156104cf576131fa575b5050602460206001600160a01b03601f5460081c16604051928380927f70a08231000000000000000000000000000000000000000000000000000000008252600160048301525afa80156104cf5782906131c6575b612f839150615342565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf576131b1575b50506001600160a01b03601f5460081c1631906001600160a01b036023541631916001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156122ab576040519063ca669fa760e01b82526004820152828160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610a025790839161319c575b50506001600160a01b03601f5460081c16803b156122ab578280916004604051809481937f3ccfd60b0000000000000000000000000000000000000000000000000000000083525af18015610a0257908391613187575b50506001600160a01b03602354163190830180931161315a578192737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561133957604051917f98296c54000000000000000000000000000000000000000000000000000000008352600483015260248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104cf5761044a5750f35b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b8161319191614beb565b6122a757815f6130ca565b816131a691614beb565b6122a757815f613073565b816131bb91614beb565b61017f57805f612fed565b506020813d6020116131f2575b816131e060209383614beb565b8101031261078457612f839051612f79565b3d91506131d3565b8161320491614beb565b61017f57805f612f24565b925090506020823d60201161323e575b8161322c60209383614beb565b8101031261078457829151905f612eda565b3d915061321f565b8161325091614beb565b61017f57805f612e8c565b8161326591614beb565b61017f57805f612e32565b9150506020813d60201161329d575b8161328c60209383614beb565b81010312610784578190515f612db9565b3d915061327f565b816132af91614beb565b61017f57805f612d6b565b816132c491614beb565b61017f57805f612cff565b816132d991614beb565b61017f57805f612cac565b816132ee91614beb565b61017f57805f612c59565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57613452575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517ff4844814000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761343d575b506001600160a01b03601f5460081c16803b15610464578180916044604051809481937fd283e3cc0000000000000000000000000000000000000000000000000000000083526107896004840152600160248401525af180156104cf5761044a5750f35b8161344791614beb565b61017f57805f6133d9565b8161345c91614beb565b61017f57805f61336d565b503461017f578060031936011261017f5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106134c65761146e8561146281870382614beb565b82546001600160a01b03168452602090930192600192830192016134af565b503461017f578060031936011261017f5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106135445761146e8561146281870382614beb565b82546001600160a01b031684526020909301926001928301920161352d565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57613c32575b506001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf57613c1d575b506001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf57613c08575b506001600160a01b03601f5460081c16803b15610464578180916024604051809481937fbd32fb660000000000000000000000000000000000000000000000000000000083527fab0ad1fd11f066c49fc6a47ba91cb9e6acf73026b82a0907c282efbadefd10c260048401525af180156104cf57613bf3575b50506040908151916137188184614beb565b60018352601f1981013660208501377fe49914a3a1644dc92d0362120e4111d4373036cf861e3da9358d6fadafdb64cc61375184614dc1565b52600460206001600160a01b03601f5460081c168351928380927f7ad7614d0000000000000000000000000000000000000000000000000000000082525afa908115613adc578391613bc1575b508060011b9080820460021490151715610dd857737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156122ab578151907fc88a5e6d0000000000000000000000000000000000000000000000000000000082527315d34aaf54267db7d7c367839aaf71a00a2c6a6560048301526024820152828160448183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015613adc57908391613bac575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156122a75780516303223eab60e11b81527315d34aaf54267db7d7c367839aaf71a00a2c6a656004820152828160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015613adc57908391613b97575b50506001600160a01b03601f5460081c168151907f7ad7614d000000000000000000000000000000000000000000000000000000008252602082600481845afa918215610489578492613b63575b508160011b9180830460021490151715613b36578394813b15613b325784916139669185519485809481937fc4be5b590000000000000000000000000000000000000000000000000000000083526002600484015260026024840152606060448401526064830190614dfb565b03925af18015613adc57908391613b1d575b5050602460206001600160a01b03601f5460081c168351928380927f70a082310000000000000000000000000000000000000000000000000000000082527315d34aaf54267db7d7c367839aaf71a00a2c6a6560048301525afa908115613adc578391613ae8575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15611339578151907f98296c540000000000000000000000000000000000000000000000000000000082526004820152600260248201528281604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015613adc57908391613ac7575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464578051907f90c5013b000000000000000000000000000000000000000000000000000000008252828260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af190811561045b575061044a5750f35b81613ad191614beb565b61046457815f613a58565b505051903d90823e3d90fd5b9250506020823d602011613b15575b81613b0460209383614beb565b81010312610784578291515f6139e0565b3d9150613af7565b81613b2791614beb565b61046457815f613978565b8480fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9091506020813d602011613b8f575b81613b7f60209383614beb565b810103126107845751905f6138f9565b3d9150613b72565b81613ba191614beb565b6122a757815f6138ab565b81613bb691614beb565b6122a757815f61383d565b90506020813d602011613beb575b81613bdc60209383614beb565b8101031261078457515f61379e565b3d9150613bcf565b81613bfd91614beb565b61017f57805f613706565b81613c1291614beb565b61017f57805f61368d565b81613c2791614beb565b61017f57805f61362a565b81613c3c91614beb565b61017f57805f6135d7565b503461017f578060031936011261017f57601e54613c6481614da9565b613c716040519182614beb565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b838310613db25786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310613cdd5786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0908692949603018352855190602060408201926001600160a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110613d6957505050505060208060019297019301930190928695949293613cd0565b9091929394602080613da5837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951614a14565b9701950193929101613d45565b604051613dbe81614ba2565b6001600160a01b038354168152600183018054613dda81614da9565b91613de86040519384614beb565b8183528a526020808b20908b9084015b838210613e1e575050505060019282602092836002950152815201920192019190613ca1565b600160208192604051613e3581612382818a614c7e565b815201930191019091613df8565b503461017f578060031936011261017f576001600160a01b03601f5460081c16604051907f06fdde030000000000000000000000000000000000000000000000000000000082528282600481845afa918215610a0257839261405e575b50613ee3604092835190613eb48583614beb565b600d82527f4578616d706c6520546f6b656e0000000000000000000000000000000000000060208301526152ab565b81517f95d89b410000000000000000000000000000000000000000000000000000000081528381600481855afa801561048957613f5e918591614044575b50835190613f2f8583614beb565b600382527f455854000000000000000000000000000000000000000000000000000000000060208301526152ab565b8151907f521eb273000000000000000000000000000000000000000000000000000000008252602082600481845afa90811561048957613fb76020926004948791614027575b506001600160a01b0360235416906151ad565b8351928380927f8da5cb5b0000000000000000000000000000000000000000000000000000000082525afa908115613adc5761099c92508391614008575b506001600160a01b0360205416906151ad565b614021915060203d602011610e2c57610e1e8183614beb565b5f613ff5565b61403e9150843d8611610e2c57610e1e8183614beb565b5f613fa4565b61405891503d8087833e61047b8183614beb565b5f613f21565b6140739192503d8085833e61047b8183614beb565b905f613ea0565b503461017f578060031936011261017f5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106140d95761146e8561146281870382614beb565b82546001600160a01b03168452602090930192600192830192016140c2565b503461017f578060031936011261017f57806001600160a01b03601f5460081c166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa8015610a0257614185918491614447575b50615239565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f0e083076000000000000000000000000000000000000000000000000000000006004820152602081602481855afa8015610a02576141f09184916144475750615239565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f79f154c4000000000000000000000000000000000000000000000000000000006004820152602081602481855afa8015610a025761425b9184916144475750615239565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f01ffc9a7000000000000000000000000000000000000000000000000000000006004820152602081602481855afa8015610a02576142c69184916144475750615239565b604051907f01ffc9a70000000000000000000000000000000000000000000000000000000082527f42966c68000000000000000000000000000000000000000000000000000000006004830152602082602481845afa908115610a0257614338602092602494869161442a5750615239565b604051928380927f01ffc9a70000000000000000000000000000000000000000000000000000000082527fffffffff0000000000000000000000000000000000000000000000000000000060048301525afa9081156104cf57829161440b575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051907fa5982885000000000000000000000000000000000000000000000000000000008252151560048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104cf5761044a5750f35b614424915060203d6020116109c7576109b98183614beb565b5f614398565b6144419150843d86116109c7576109b98183614beb565b5f61417f565b614441915060203d6020116109c7576109b98183614beb565b503461017f578060031936011261017f57806001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046457604051906303223eab60e11b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761473d575b50506001600160a01b0360225416906001600160a01b03602354169160405190613927938483019483861067ffffffffffffffff871117614710576154ab843960a08552600d60a08601527f4578616d706c6520546f6b656e0000000000000000000000000000000000000060c086015260e06020860152600360e08601527f45585400000000000000000000000000000000000000000000000000000000006101008601526101206040860152839160245461459081614c2d565b90816101208901526001811690815f146146cf5750600114614676575b5085608091606086979801520152039082f080156127ac577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b16911617601f55737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561017f57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761044a5750f35b6024865290925084907f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec45b8183106146b757505085016101400191836145ad565b805483890161014001526020909201916001016146a1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016610140808a019190915291151560051b880190910193508490506145ad565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8161474791614beb565b61017f57805f6144d4565b905034610784575f600319360112610784576001600160a01b0360205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156107845763ca669fa760e01b825260048201525f8160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156149c7576149b4575b50806001600160a01b03601f5460081c16803b15610464578180916004604051809481937f029877b60000000000000000000000000000000000000000000000000000000083525af180156104cf5761499f575b506001600160a01b0360235416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610464576040519063ca669fa760e01b82526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156104cf5761498a575b5060206001600160a01b03601f5460081c1660646001600160a01b036021541660405194859384927f501a51620000000000000000000000000000000000000000000000000000000084526004840152600160248401528160448401525af180156104cf5761496d575b50602460206001600160a01b03601f5460081c16604051928380927f6352211e000000000000000000000000000000000000000000000000000000008252600160048301525afa80156104cf5761099c91839161494e575b506001600160a01b0360215416906151ad565b614967915060203d602011610e2c57610e1e8183614beb565b5f61493b565b6149859060203d602011610e2c57610e1e8183614beb565b6148e3565b8161499491614beb565b61017f57805f614879565b816149a991614beb565b61017f57805f614816565b6149c091505f90614beb565b5f5f6147c2565b6040513d5f823e3d90fd5b60206040818301928281528451809452019201905f5b8181106149f55750505090565b82516001600160a01b03168452602093840193909201916001016149e8565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b818110614a565750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101614a49565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310614ac057505050505090565b9091929394602080614afc837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951614a14565b97019301930191939290614ab1565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310614b3d57505050505090565b9091929394602080614b93837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b516001600160a01b03815116845201519181858201520190614a39565b97019301930191939290614b2e565b6040810190811067ffffffffffffffff821117614bbe57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f601f19910116810190811067ffffffffffffffff821117614bbe57604052565b9081602091031261078457516001600160a01b03811681036107845790565b90600182811c92168015614c74575b6020831014614c4757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691614c3c565b5f9291815491614c8d83614c2d565b8083529260018116908115614ce25750600114614ca957505050565b5f9081526020812093945091925b838310614cc8575060209250010190565b600181602092949394548385870101520191019190614cb756