XDC Price: $0.0329 (+1.45%)

Contract

0x1CcaFdffBC1b7B5C499c97322F961B7d929a41b4

Overview

XDC Balance

XDC LogoXDC LogoXDC Logo0 XDC

XDC Value

$0.00

More Info

Private Name Tags

Multichain Info

Transaction Hash
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
926240252025-08-21 10:35:22410 days ago1755772522  Contract Creation0 XDC
Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

TokenMessengerV2

Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled
Yes with 100000 runs
Other Settings
istanbul EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"_messageTransmitter","type":"address"},{"internalType":"uint32","name":"_messageBodyVersion","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Denylisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldDenylister","type":"address"},{"indexed":true,"internalType":"address","name":"newDenylister","type":"address"}],"name":"DenylisterChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"bytes32","name":"mintRecipient","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"destinationDomain","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"destinationTokenMessenger","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"destinationCaller","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"maxFee","type":"uint256"},{"indexed":true,"internalType":"uint32","name":"minFinalityThreshold","type":"uint32"},{"indexed":false,"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"DepositForBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeRecipient","type":"address"}],"name":"FeeRecipientSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"localMinter","type":"address"}],"name":"LocalMinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"localMinter","type":"address"}],"name":"LocalMinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"minFeeController","type":"address"}],"name":"MinFeeControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minFee","type":"uint256"}],"name":"MinFeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"mintRecipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"mintToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"feeCollected","type":"uint256"}],"name":"MintAndWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"domain","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"tokenMessenger","type":"bytes32"}],"name":"RemoteTokenMessengerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"domain","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"tokenMessenger","type":"bytes32"}],"name":"RemoteTokenMessengerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newRescuer","type":"address"}],"name":"RescuerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"UnDenylisted","type":"event"},{"inputs":[],"name":"MIN_FEE_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLocalMinter","type":"address"}],"name":"addLocalMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"bytes32","name":"tokenMessenger","type":"bytes32"}],"name":"addRemoteTokenMessenger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"denylist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"denylister","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"destinationDomain","type":"uint32"},{"internalType":"bytes32","name":"mintRecipient","type":"bytes32"},{"internalType":"address","name":"burnToken","type":"address"},{"internalType":"bytes32","name":"destinationCaller","type":"bytes32"},{"internalType":"uint256","name":"maxFee","type":"uint256"},{"internalType":"uint32","name":"minFinalityThreshold","type":"uint32"}],"name":"depositForBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"destinationDomain","type":"uint32"},{"internalType":"bytes32","name":"mintRecipient","type":"bytes32"},{"internalType":"address","name":"burnToken","type":"address"},{"internalType":"bytes32","name":"destinationCaller","type":"bytes32"},{"internalType":"uint256","name":"maxFee","type":"uint256"},{"internalType":"uint32","name":"minFinalityThreshold","type":"uint32"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"depositForBurnWithHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getMinFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"remoteDomain","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes","name":"messageBody","type":"bytes"}],"name":"handleReceiveFinalizedMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"remoteDomain","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint32","name":"finalityThresholdExecuted","type":"uint32"},{"internalType":"bytes","name":"messageBody","type":"bytes"}],"name":"handleReceiveUnfinalizedMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"rescuer","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"address","name":"denylister","type":"address"},{"internalType":"address","name":"tokenMinter","type":"address"},{"internalType":"address","name":"minFeeController","type":"address"}],"internalType":"struct TokenMessengerV2.TokenMessengerV2Roles","name":"roles","type":"tuple"},{"internalType":"uint256","name":"minFee_","type":"uint256"},{"internalType":"uint32[]","name":"remoteDomains_","type":"uint32[]"},{"internalType":"bytes32[]","name":"remoteTokenMessengers_","type":"bytes32[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializedVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isDenylisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"localMessageTransmitter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"localMinter","outputs":[{"internalType":"contract ITokenMinterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageBodyVersion","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minFeeController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"remoteTokenMessengers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLocalMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"domain","type":"uint32"}],"name":"removeRemoteTokenMessenger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenContract","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescuer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeRecipient","type":"address"}],"name":"setFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minFee","type":"uint256"}],"name":"setMinFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minFeeController","type":"address"}],"name":"setMinFeeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unDenylist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDenylister","type":"address"}],"name":"updateDenylister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRescuer","type":"address"}],"name":"updateRescuer","outputs":[],"stateMutability":"nonpayable","type":"function"}]
60c06040523480156200001157600080fd5b50604051620042893803806200428983398101604081905262000034916200023c565b81816200004a62000044620000db565b620000df565b6001600160a01b038216620000a6576040805162461bcd60e51b815260206004820152601a60248201527f4d6573736167655472616e736d6974746572206e6f7420736574000000000000604482015290519081900360640190fd5b60609190911b6001600160601b03191660805260e01b6001600160e01b03191660a052620000d362000109565b50506200028b565b3390565b600180546001600160a01b03191690556200010681620001c8602090811b6200124617901c565b50565b60006200011562000218565b805490915068010000000000000000900460ff1615620001675760405162461bcd60e51b8152600401808060200182810382526025815260200180620042646025913960400191505060405180910390fd5b80546001600160401b0390811614620001065780546001600160401b0319166001600160401b03908117825560408051918252517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29181900360200190a150565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b600080604083850312156200024f578182fd5b82516001600160a01b038116811462000266578283fd5b602084015190925063ffffffff8116811462000280578182fd5b809150509250929050565b60805160601c60a05160e01c613f9b620002c960003980610f4a5280611d8c52806120315250806108ce5280611a6c5280611e1d5250613f9b6000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c80638da5cb5b1161012a578063b2118a8d116100bd578063e30c39781161008c578063e877a52611610071578063e877a5261461042a578063f2fde38b1461043d578063f79fd08e1461045057610226565b8063e30c39781461040f578063e74b981b1461041757610226565b8063b2118a8d146103d9578063bcc76c60146103ec578063cb75c11c146103f4578063da87e448146103fc57610226565b80639cab0c1c116100f95780639cab0c1c1461038b5780639cdbb1811461039e578063a5b8d04e146103b3578063a946de04146103c657610226565b80638da5cb5b146103605780638e0250ee1461036857806391f178881461037b578063966dfbd51461038357610226565b8063369c4f1b116101bd578063779b432d1161018c5780637c92f219116101715780637c92f219146103275780638197beb91461033a57806382a5e6651461034d57610226565b8063779b432d1461030c57806379ba50971461031f57610226565b8063369c4f1b146102e157806338a63183146102e957806346904840146102f1578063516990e3146102f957610226565b80632ab60045116101f95780632ab60045146102935780632c121921146102a657806331ac9920146102bb5780633371bfff146102ce57610226565b806302db402e1461022b57806308828eb71461024057806311cffb671461025e57806324ec75901461027e575b600080fd5b61023e6102393660046135d8565b610463565b005b610248610774565b6040516102559190613caa565b60405180910390f35b61027161026c3660046137cd565b610783565b604051610255919061385b565b6102866108b2565b6040516102559190613866565b61023e6102a136600461357c565b6108b8565b6102ae6108cc565b604051610255919061383a565b61023e6102c9366004613668565b6108f0565b61023e6102dc36600461357c565b610969565b6102ae610a2b565b6102ae610a47565b6102ae610a63565b610286610307366004613668565b610a7f565b61023e61031a3660046136eb565b610adf565b61023e610b4b565b6102716103353660046137cd565b610beb565b61023e61034836600461357c565b610d03565b61028661035b36600461378a565b610d14565b6102ae610d26565b61023e610376366004613680565b610d42565b61023e610d7f565b610286610e80565b61023e61039936600461357c565b610e87565b6103a6610f48565b6040516102559190613c00565b61023e6103c136600461357c565b610f6c565b61023e6103d436600461357c565b610f7d565b61023e6103e7366004613598565b610f8e565b6102ae611024565b6102ae611040565b61023e61040a3660046137a4565b61105c565b6102ae611072565b61023e61042536600461357c565b61108e565b61027161043836600461357c565b61109f565b61023e61044b36600461357c565b6110ca565b61023e61045e36600461378a565b611162565b600061046d6112bb565b805490915060ff68010000000000000000820416159067ffffffffffffffff1660008115801561049a5750825b905060008267ffffffffffffffff1660011480156104be57506104bc306112df565b155b905081806104c95750805b61051e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613d0a6025913960400191505060405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561057f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b600061058e60208d018d61357c565b73ffffffffffffffffffffffffffffffffffffffff1614156105e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc906139cc565b60405180910390fd5b87861461061e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc906138db565b61063361062e60208d018d61357c565b6112e5565b61064b61064660408d0160208e0161357c565b611316565b61066361065e60808d0160608e0161357c565b6113f1565b61067b61067660608d0160408e0161357c565b6114d4565b61069361068e60a08d0160808e0161357c565b6115cf565b6106ab6106a660c08d0160a08e0161357c565b61174f565b6106b48a61184a565b8760005b81811015610704576106fc8b8b838181106106cf57fe5b90506020020160208101906106e4919061378a565b8a8a848181106106f057fe5b905060200201356118f6565b6001016106b8565b505083156107675784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604080516001815290517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29181900360200190a15b5050505050505050505050565b600061077e611a3a565b905090565b600061078d611a54565b6107f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964206d657373616765207472616e736d69747465720000000000604482015290519081900360640190fd5b85856108048282611a90565b610859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613db26021913960400191505060405180910390fd5b6108a66108a0600087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611abe9050565b89611ae2565b98975050505050505050565b601d5481565b6108c0611b17565b6108c981611316565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601c5473ffffffffffffffffffffffffffffffffffffffff163314610960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613ebd6024913960400191505060405180910390fd5b6108c98161184a565b60035473ffffffffffffffffffffffffffffffffffffffff1633146109d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f0b6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526004602052604080822060019055517ffa4507bc1f9c730e6e95897024f1fe7d576cf2deb53579d55c14f1ac3439e1149190a250565b601c5473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b601b5473ffffffffffffffffffffffffffffffffffffffff1681565b6000601d5460001415610a9457506000610ada565b60018211610ace576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613b4d565b610ad782611bc1565b90505b919050565b610ae833611bfd565b333214610af857610af832611bfd565b80610b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613a3a565b610b40898989898989898989611c79565b505050505050505050565b6000610b55611f13565b90508073ffffffffffffffffffffffffffffffffffffffff16610b76611072565b73ffffffffffffffffffffffffffffffffffffffff1614610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613d2f6029913960400191505060405180910390fd5b6108c9816112e5565b6000610bf5611a54565b610c6057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964206d657373616765207472616e736d69747465720000000000604482015290519081900360640190fd5b8585610c6c8282611a90565b610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613db26021913960400191505060405180910390fd5b6101f463ffffffff87161015610859576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613a71565b610d0b611b17565b6108c9816115cf565b601a6020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610d4b33611bfd565b333214610d5b57610d5b32611bfd565b366000610d6a81808481613cbf565b91509150610b40898989898989898989611c79565b610d87611b17565b60195473ffffffffffffffffffffffffffffffffffffffff1680610e0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206c6f63616c206d696e746572206973207365742e000000000000000000604482015290519081900360640190fd5b601980547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f2db49fbf671271826a27b02ebc496209c85fffffb4bccc67430d2a0f22b4d1ac9181900360200190a150565b6298968081565b60035473ffffffffffffffffffffffffffffffffffffffff163314610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f0b6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260046020526040808220829055517fc904e1b03de0c20d7fcf9dbd056daf1bd3815e93f251199de815fd0f0b96e1669190a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f74611b17565b6108c98161174f565b610f85611b17565b6108c9816113f1565b60025473ffffffffffffffffffffffffffffffffffffffff163314610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e1a6024913960400191505060405180910390fd5b61101f73ffffffffffffffffffffffffffffffffffffffff84168383611f17565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60195473ffffffffffffffffffffffffffffffffffffffff1681565b611064611b17565b61106e82826118f6565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b611096611b17565b6108c9816114d4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205460011490565b6110d2611b17565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915561111d610d26565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61116a611b17565b63ffffffff81166000908152601a60205260409020546111eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20546f6b656e4d657373656e676572207365740000000000000000000000604482015290519081900360640190fd5b63ffffffff81166000818152601a6020908152604080832080549390558051938452908301829052805191927f3dcea012093dbca2bb8ed7fd2b2ff90305ab70bddda8bbb94d4152735a98f0b1929081900390910190a15050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b3b151590565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556108c981611246565b73ffffffffffffffffffffffffffffffffffffffff8116611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613d58602a913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b73ffffffffffffffffffffffffffffffffffffffff811661145d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613d826030913960400191505060405180910390fd5b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907fe144e84038182cefebda68c192c222085b2c12a85d135d3c938498c0165c01d390600090a35050565b73ffffffffffffffffffffffffffffffffffffffff811661155657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b601b805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fbf9a9534339a9d6b81696e05dcfb614b7dc518a31d48be3cfb757988381fb3239181900360200190a150565b73ffffffffffffffffffffffffffffffffffffffff811661165157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b60195473ffffffffffffffffffffffffffffffffffffffff16156116d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c6f63616c206d696e74657220697320616c7265616479207365742e00000000604482015290519081900360640190fd5b6019805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f109bb3e70cbf1931e295b49e75c67013b85ff80d64e6f1d321f37157b90c38309181900360200190a150565b73ffffffffffffffffffffffffffffffffffffffff81166117d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b601c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f4a381820aeb373f402117f6280a310f11cf06f1ef064b9550f5b6f94f1aaa2a89181900360200190a150565b6298968081106118bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d696e2066656520746f6f206869676800000000000000000000000000000000604482015290519081900360640190fd5b601d8190556040805182815290517fd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac9181900360200190a150565b8061196257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62797465733332283029206e6f7420616c6c6f77656400000000000000000000604482015290519081900360640190fd5b63ffffffff82166000908152601a6020526040902054156119e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f546f6b656e4d657373656e67657220616c726561647920736574000000000000604482015290519081900360640190fd5b63ffffffff82166000818152601a60209081526040918290208490558151928352820183905280517f4bba2b08298cf59661b4895e384cc2ac3962ce2d71f1b7c11bca52e1169f95999281900390910190a15050565b6000611a446112bb565b5467ffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161490565b60008115801590611ab5575063ffffffff83166000908152601a602052604090205482145b90505b92915050565b815160009060208401611ad964ffffffffff85168284611fa4565b95945050505050565b6000806000806000611af387611ffa565b9350935093509350611b0a86848684860385612294565b5060019695505050505050565b611b1f611f13565b73ffffffffffffffffffffffffffffffffffffffff16611b3d610d26565b73ffffffffffffffffffffffffffffffffffffffff1614611bbf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b60008062989680611bdd601d54856124aa90919063ffffffff16565b81611be457fe5b0490508015611bf35780611bf6565b60015b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020526040902054156108c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e996024913960400191505060405180910390fd5b60008911611cb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613995565b86611cea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613adf565b888410611d23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc9061386f565b601d5415611d6d57611d3489611bc1565b841015611d6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613aa8565b6000611d788961251d565b9050611d8587338c61259f565b6000611ddd7f0000000000000000000000000000000000000000000000000000000000000000611dca8a73ffffffffffffffffffffffffffffffffffffffff1661274b565b8b8e611dd53361274b565b8b8a8a612764565b6040517f14b157ab00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906314b157ab90611e5a908d9086908c908b908890600401613c11565b600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050508463ffffffff163373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f0c8c1cbdc5190613ebd485511d4e2812cfa45eecb79d845893331fedad5130a58e8d8f888e8e8d8d604051611efe989796959493929190613b84565b60405180910390a45050505050505050505050565b3390565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261101f9084906127e7565b600080611fb184846128bf565b9050604051811115611fc1575060005b80611fef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611bf6565b611ad9858585612931565b600080808061202a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612944565b63ffffffff7f00000000000000000000000000000000000000000000000000000000000000001661207c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612a82565b63ffffffff16146120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc906138a4565b60006120e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612aaf565b90508015806120f457504381115b61212a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613938565b6121557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612ae0565b92506121827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612b0d565b915081158061219057508282105b6121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613a03565b6121f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612b3e565b82111561222a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613b16565b61225d6122587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612b6f565b612b9c565b945061228a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612b9f565b9350509193509193565b600061229e612bcc565b90506000821561237957601b54604080517f8dfcfa9000000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201526024810189905273ffffffffffffffffffffffffffffffffffffffff888116604483015292831660648201526084810187905260a48101869052905191841691638dfcfa909160c4808201926020929091908290030181600087803b15801561234657600080fd5b505af115801561235a573d6000803e3d6000fd5b505050506040513d602081101561237057600080fd5b50519050612434565b604080517fd54de06f00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526024810188905273ffffffffffffffffffffffffffffffffffffffff87811660448301526064820187905291519184169163d54de06f916084808201926020929091908290030181600087803b15801561240557600080fd5b505af1158015612419573d6000803e3d6000fd5b505050506040513d602081101561242f57600080fd5b505190505b8073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f50c55e915134d457debfa58eb6f4342956f8b0616d51a89a3659360178e1ab638686604051808381526020018281526020019250505060405180910390a350505050505050565b6000826124b957506000611ab8565b828202828482816124c657fe5b0414611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613e3e6021913960400191505060405180910390fd5b63ffffffff81166000908152601a602052604081205480610ad757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6f20546f6b656e4d657373656e67657220666f7220646f6d61696e00000000604482015290519081900360640190fd5b60006125a9612bcc565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015280841660248301526044820186905291519293508692918316916323b872dd916064808201926020929091908290030181600087803b15801561262f57600080fd5b505af1158015612643573d6000803e3d6000fd5b505050506040513d602081101561265957600080fd5b50516126c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e73666572206f7065726174696f6e206661696c656400000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff16639dc29fac86856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561273757600080fd5b505af1158015610b40573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b60608888888888886000808a8a604051602001808b63ffffffff1660e01b81526004018a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838380828437808301925050509a5050505050505050505050604051602081830303815290604052905098975050505050505050565b6000612849826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612c709092919063ffffffff16565b80519091501561101f5780806020019051602081101561286857600080fd5b505161101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ee1602a913960400191505060405180910390fd5b81810182811015611ab857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b61296f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216612c87565b6129da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b60e4612a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612cc4565b6bffffffffffffffffffffffff1610156108c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964206275726e206d6573736167653a20746f6f2073686f727400604482015290519081900360640190fd5b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612cd8565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660c46020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d25565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660a46020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660846020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d56565b90565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d87565b60195460009073ffffffffffffffffffffffffffffffffffffffff16612c5357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c6f63616c206d696e746572206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b5060195473ffffffffffffffffffffffffffffffffffffffff1690565b6060612c7f8484600085612db8565b949350505050565b6000612c9282612f72565b64ffffffffff1664ffffffffff1415612cad57506000610ada565b6000612cb883612f78565b60405110159392505050565b60181c6bffffffffffffffffffffffff1690565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260045b60008160200360080260ff16612d1b858585612fa2565b901c949350505050565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660446020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246020612fa2565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612fa2565b606082471015612e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613dd36026913960400191505060405180910390fd5b612e1c856112df565b612e8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612ef057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612eb3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612f52576040519150601f19603f3d011682016040523d82523d6000602084013e612f57565b606091505b5091509150612f6782828661314d565b979650505050505050565b60d81c90565b6000612f8382612cc4565b612f8c836131cd565b016bffffffffffffffffffffffff169050919050565b600060ff8216612fb457506000611bf6565b612fbd84612cc4565b6bffffffffffffffffffffffff16612fd88460ff85166128bf565b11156130b757613019612fea856131cd565b6bffffffffffffffffffffffff1661300186612cc4565b6bffffffffffffffffffffffff16858560ff166131e1565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561307c578181015183820152602001613064565b50505050905090810190601f1680156130a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115613114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e5f603a913960400191505060405180910390fd5b600882026000613123866131cd565b6bffffffffffffffffffffffff169050600061313e8361333c565b91909501511695945050505050565b6060831561315c575081611bf6565b82511561316c5782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561307c578181015183820152602001613064565b60781c6bffffffffffffffffffffffff1690565b606060006131ee86613385565b91505060006131fc86613385565b915050600061320a86613385565b915050600061321886613385565b915050838383836040516020018080613f31603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021613df982397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff1611156133ed5760ff600882021684901c6133aa81613459565b61ffff16841793508160ff166010146133c557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161338b565b50600f5b60ff8160ff1610156134535760ff600882021684901c61341081613459565b61ffff16831792508160ff1660001461342b57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016133f1565b50915091565b600061346b60048360ff16901c613489565b60ff161760081b62ffff001661348082613489565b60ff1617919050565b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106134d057fe5b016020015160f81c9392505050565b60008083601f8401126134f0578182fd5b50813567ffffffffffffffff811115613507578182fd5b602083019150836020808302850101111561352157600080fd5b9250929050565b60008083601f840112613539578182fd5b50813567ffffffffffffffff811115613550578182fd5b60208301915083602082850101111561352157600080fd5b803563ffffffff81168114610ada57600080fd5b60006020828403121561358d578081fd5b8135611ab581613ce7565b6000806000606084860312156135ac578182fd5b83356135b781613ce7565b925060208401356135c781613ce7565b929592945050506040919091013590565b6000806000806000808688036101208112156135f2578283fd5b60c08112156135ff578283fd5b5086955060c0870135945060e087013567ffffffffffffffff80821115613624578384fd5b6136308a838b016134df565b9096509450610100890135915080821115613649578384fd5b5061365689828a016134df565b979a9699509497509295939492505050565b600060208284031215613679578081fd5b5035919050565b600080600080600080600060e0888a03121561369a578081fd5b873596506136aa60208901613568565b95506040880135945060608801356136c181613ce7565b93506080880135925060a088013591506136dd60c08901613568565b905092959891949750929550565b60008060008060008060008060006101008a8c031215613709578182fd5b8935985061371960208b01613568565b975060408a0135965060608a013561373081613ce7565b955060808a0135945060a08a0135935061374c60c08b01613568565b925060e08a013567ffffffffffffffff811115613767578283fd5b6137738c828d01613528565b915080935050809150509295985092959850929598565b60006020828403121561379b578081fd5b611ab582613568565b600080604083850312156137b6578182fd5b6137bf83613568565b946020939093013593505050565b6000806000806000608086880312156137e4578081fd5b6137ed86613568565b94506020860135935061380260408701613568565b9250606086013567ffffffffffffffff81111561381d578182fd5b61382988828901613528565b969995985093965092949392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b6020808252818101527f4d617820666565206d757374206265206c657373207468616e20616d6f756e74604082015260600190565b6020808252601c908201527f496e76616c6964206d65737361676520626f64792076657273696f6e00000000604082015260600190565b60208082526023908201527f496e76616c69642072656d6f746520646f6d61696e20636f6e6669677572617460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f4d657373616765206578706972656420616e64206d7573742062652072652d7360408201527f69676e6564000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526016908201527f416d6f756e74206d757374206265206e6f6e7a65726f00000000000000000000604082015260600190565b60208082526019908201527f4f776e657220697320746865207a65726f206164647265737300000000000000604082015260600190565b6020808252601c908201527f46656520657175616c73206f72206578636565647320616d6f756e7400000000604082015260600190565b60208082526012908201527f486f6f6b206461746120697320656d7074790000000000000000000000000000604082015260600190565b6020808252601e908201527f556e737570706f727465642066696e616c697479207468726573686f6c640000604082015260600190565b60208082526014908201527f496e73756666696369656e74206d617820666565000000000000000000000000604082015260600190565b6020808252601e908201527f4d696e7420726563697069656e74206d757374206265206e6f6e7a65726f0000604082015260600190565b60208082526013908201527f4665652065786365656473206d61782066656500000000000000000000000000604082015260600190565b6020808252600e908201527f416d6f756e7420746f6f206c6f77000000000000000000000000000000000000604082015260600190565b600089825288602083015263ffffffff881660408301528660608301528560808301528460a083015260e060c08301528260e0830152610100838582850137828401810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101979650505050505050565b63ffffffff91909116815260200190565b600063ffffffff808816835260208781850152866040850152818616606085015260a06080850152845191508160a0850152825b82811015613c615785810182015185820160c001528101613c45565b82811115613c72578360c084870101525b5050601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b67ffffffffffffffff91909116815260200190565b60008085851115613cce578182fd5b83861115613cda578182fd5b5050820193919092039150565b73ffffffffffffffffffffffffffffffffffffffff811681146108c957600080fdfe496e697469616c697a61626c653a20696e76616c696420696e697469616c697a6174696f6e4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737344656e796c69737461626c653a206e65772064656e796c697374657220697320746865207a65726f206164647265737352656d6f746520546f6b656e4d657373656e67657220756e737570706f72746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078526573637561626c653a2063616c6c6572206973206e6f74207468652072657363756572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7754797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657344656e796c69737461626c653a206163636f756e74206973206f6e2064656e796c69737443616c6c6572206973206e6f7420746865206d696e2066656520636f6e74726f6c6c65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656444656e796c69737461626c653a2063616c6c6572206973206e6f742064656e796c697374657254797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122015e830bad8e277f4cac7ef6e08e6592b7a7c2ccbfece2d2eb557ad23a0ef2f9964736f6c63430007060033496e697469616c697a61626c653a20696e76616c696420696e697469616c697a6174696f6e00000000000000000000000081d40f21f12a8f0e3252bccb954d722d4c464b640000000000000000000000000000000000000000000000000000000000000001
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102265760003560e01c80638da5cb5b1161012a578063b2118a8d116100bd578063e30c39781161008c578063e877a52611610071578063e877a5261461042a578063f2fde38b1461043d578063f79fd08e1461045057610226565b8063e30c39781461040f578063e74b981b1461041757610226565b8063b2118a8d146103d9578063bcc76c60146103ec578063cb75c11c146103f4578063da87e448146103fc57610226565b80639cab0c1c116100f95780639cab0c1c1461038b5780639cdbb1811461039e578063a5b8d04e146103b3578063a946de04146103c657610226565b80638da5cb5b146103605780638e0250ee1461036857806391f178881461037b578063966dfbd51461038357610226565b8063369c4f1b116101bd578063779b432d1161018c5780637c92f219116101715780637c92f219146103275780638197beb91461033a57806382a5e6651461034d57610226565b8063779b432d1461030c57806379ba50971461031f57610226565b8063369c4f1b146102e157806338a63183146102e957806346904840146102f1578063516990e3146102f957610226565b80632ab60045116101f95780632ab60045146102935780632c121921146102a657806331ac9920146102bb5780633371bfff146102ce57610226565b806302db402e1461022b57806308828eb71461024057806311cffb671461025e57806324ec75901461027e575b600080fd5b61023e6102393660046135d8565b610463565b005b610248610774565b6040516102559190613caa565b60405180910390f35b61027161026c3660046137cd565b610783565b604051610255919061385b565b6102866108b2565b6040516102559190613866565b61023e6102a136600461357c565b6108b8565b6102ae6108cc565b604051610255919061383a565b61023e6102c9366004613668565b6108f0565b61023e6102dc36600461357c565b610969565b6102ae610a2b565b6102ae610a47565b6102ae610a63565b610286610307366004613668565b610a7f565b61023e61031a3660046136eb565b610adf565b61023e610b4b565b6102716103353660046137cd565b610beb565b61023e61034836600461357c565b610d03565b61028661035b36600461378a565b610d14565b6102ae610d26565b61023e610376366004613680565b610d42565b61023e610d7f565b610286610e80565b61023e61039936600461357c565b610e87565b6103a6610f48565b6040516102559190613c00565b61023e6103c136600461357c565b610f6c565b61023e6103d436600461357c565b610f7d565b61023e6103e7366004613598565b610f8e565b6102ae611024565b6102ae611040565b61023e61040a3660046137a4565b61105c565b6102ae611072565b61023e61042536600461357c565b61108e565b61027161043836600461357c565b61109f565b61023e61044b36600461357c565b6110ca565b61023e61045e36600461378a565b611162565b600061046d6112bb565b805490915060ff68010000000000000000820416159067ffffffffffffffff1660008115801561049a5750825b905060008267ffffffffffffffff1660011480156104be57506104bc306112df565b155b905081806104c95750805b61051e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613d0a6025913960400191505060405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561057f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b600061058e60208d018d61357c565b73ffffffffffffffffffffffffffffffffffffffff1614156105e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc906139cc565b60405180910390fd5b87861461061e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc906138db565b61063361062e60208d018d61357c565b6112e5565b61064b61064660408d0160208e0161357c565b611316565b61066361065e60808d0160608e0161357c565b6113f1565b61067b61067660608d0160408e0161357c565b6114d4565b61069361068e60a08d0160808e0161357c565b6115cf565b6106ab6106a660c08d0160a08e0161357c565b61174f565b6106b48a61184a565b8760005b81811015610704576106fc8b8b838181106106cf57fe5b90506020020160208101906106e4919061378a565b8a8a848181106106f057fe5b905060200201356118f6565b6001016106b8565b505083156107675784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604080516001815290517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29181900360200190a15b5050505050505050505050565b600061077e611a3a565b905090565b600061078d611a54565b6107f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964206d657373616765207472616e736d69747465720000000000604482015290519081900360640190fd5b85856108048282611a90565b610859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613db26021913960400191505060405180910390fd5b6108a66108a0600087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611abe9050565b89611ae2565b98975050505050505050565b601d5481565b6108c0611b17565b6108c981611316565b50565b7f00000000000000000000000081d40f21f12a8f0e3252bccb954d722d4c464b6481565b601c5473ffffffffffffffffffffffffffffffffffffffff163314610960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613ebd6024913960400191505060405180910390fd5b6108c98161184a565b60035473ffffffffffffffffffffffffffffffffffffffff1633146109d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f0b6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526004602052604080822060019055517ffa4507bc1f9c730e6e95897024f1fe7d576cf2deb53579d55c14f1ac3439e1149190a250565b601c5473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b601b5473ffffffffffffffffffffffffffffffffffffffff1681565b6000601d5460001415610a9457506000610ada565b60018211610ace576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613b4d565b610ad782611bc1565b90505b919050565b610ae833611bfd565b333214610af857610af832611bfd565b80610b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613a3a565b610b40898989898989898989611c79565b505050505050505050565b6000610b55611f13565b90508073ffffffffffffffffffffffffffffffffffffffff16610b76611072565b73ffffffffffffffffffffffffffffffffffffffff1614610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613d2f6029913960400191505060405180910390fd5b6108c9816112e5565b6000610bf5611a54565b610c6057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c6964206d657373616765207472616e736d69747465720000000000604482015290519081900360640190fd5b8585610c6c8282611a90565b610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613db26021913960400191505060405180910390fd5b6101f463ffffffff87161015610859576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613a71565b610d0b611b17565b6108c9816115cf565b601a6020526000908152604090205481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b610d4b33611bfd565b333214610d5b57610d5b32611bfd565b366000610d6a81808481613cbf565b91509150610b40898989898989898989611c79565b610d87611b17565b60195473ffffffffffffffffffffffffffffffffffffffff1680610e0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f206c6f63616c206d696e746572206973207365742e000000000000000000604482015290519081900360640190fd5b601980547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f2db49fbf671271826a27b02ebc496209c85fffffb4bccc67430d2a0f22b4d1ac9181900360200190a150565b6298968081565b60035473ffffffffffffffffffffffffffffffffffffffff163314610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f0b6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260046020526040808220829055517fc904e1b03de0c20d7fcf9dbd056daf1bd3815e93f251199de815fd0f0b96e1669190a250565b7f000000000000000000000000000000000000000000000000000000000000000181565b610f74611b17565b6108c98161174f565b610f85611b17565b6108c9816113f1565b60025473ffffffffffffffffffffffffffffffffffffffff163314610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e1a6024913960400191505060405180910390fd5b61101f73ffffffffffffffffffffffffffffffffffffffff84168383611f17565b505050565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60195473ffffffffffffffffffffffffffffffffffffffff1681565b611064611b17565b61106e82826118f6565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b611096611b17565b6108c9816114d4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205460011490565b6110d2611b17565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915561111d610d26565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61116a611b17565b63ffffffff81166000908152601a60205260409020546111eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20546f6b656e4d657373656e676572207365740000000000000000000000604482015290519081900360640190fd5b63ffffffff81166000818152601a6020908152604080832080549390558051938452908301829052805191927f3dcea012093dbca2bb8ed7fd2b2ff90305ab70bddda8bbb94d4152735a98f0b1929081900390910190a15050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b3b151590565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556108c981611246565b73ffffffffffffffffffffffffffffffffffffffff8116611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613d58602a913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b73ffffffffffffffffffffffffffffffffffffffff811661145d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613d826030913960400191505060405180910390fd5b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907fe144e84038182cefebda68c192c222085b2c12a85d135d3c938498c0165c01d390600090a35050565b73ffffffffffffffffffffffffffffffffffffffff811661155657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b601b805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fbf9a9534339a9d6b81696e05dcfb614b7dc518a31d48be3cfb757988381fb3239181900360200190a150565b73ffffffffffffffffffffffffffffffffffffffff811661165157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b60195473ffffffffffffffffffffffffffffffffffffffff16156116d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c6f63616c206d696e74657220697320616c7265616479207365742e00000000604482015290519081900360640190fd5b6019805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f109bb3e70cbf1931e295b49e75c67013b85ff80d64e6f1d321f37157b90c38309181900360200190a150565b73ffffffffffffffffffffffffffffffffffffffff81166117d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604482015290519081900360640190fd5b601c805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f4a381820aeb373f402117f6280a310f11cf06f1ef064b9550f5b6f94f1aaa2a89181900360200190a150565b6298968081106118bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d696e2066656520746f6f206869676800000000000000000000000000000000604482015290519081900360640190fd5b601d8190556040805182815290517fd4c19c993aeeb50b76da8b158f84806c9d235eff5b86f3a36f12a2e1dd4e6eac9181900360200190a150565b8061196257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f62797465733332283029206e6f7420616c6c6f77656400000000000000000000604482015290519081900360640190fd5b63ffffffff82166000908152601a6020526040902054156119e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f546f6b656e4d657373656e67657220616c726561647920736574000000000000604482015290519081900360640190fd5b63ffffffff82166000818152601a60209081526040918290208490558151928352820183905280517f4bba2b08298cf59661b4895e384cc2ac3962ce2d71f1b7c11bca52e1169f95999281900390910190a15050565b6000611a446112bb565b5467ffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000081d40f21f12a8f0e3252bccb954d722d4c464b64161490565b60008115801590611ab5575063ffffffff83166000908152601a602052604090205482145b90505b92915050565b815160009060208401611ad964ffffffffff85168284611fa4565b95945050505050565b6000806000806000611af387611ffa565b9350935093509350611b0a86848684860385612294565b5060019695505050505050565b611b1f611f13565b73ffffffffffffffffffffffffffffffffffffffff16611b3d610d26565b73ffffffffffffffffffffffffffffffffffffffff1614611bbf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b60008062989680611bdd601d54856124aa90919063ffffffff16565b81611be457fe5b0490508015611bf35780611bf6565b60015b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260046020526040902054156108c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e996024913960400191505060405180910390fd5b60008911611cb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613995565b86611cea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613adf565b888410611d23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc9061386f565b601d5415611d6d57611d3489611bc1565b841015611d6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613aa8565b6000611d788961251d565b9050611d8587338c61259f565b6000611ddd7f0000000000000000000000000000000000000000000000000000000000000001611dca8a73ffffffffffffffffffffffffffffffffffffffff1661274b565b8b8e611dd53361274b565b8b8a8a612764565b6040517f14b157ab00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000081d40f21f12a8f0e3252bccb954d722d4c464b6416906314b157ab90611e5a908d9086908c908b908890600401613c11565b600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050508463ffffffff163373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f0c8c1cbdc5190613ebd485511d4e2812cfa45eecb79d845893331fedad5130a58e8d8f888e8e8d8d604051611efe989796959493929190613b84565b60405180910390a45050505050505050505050565b3390565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261101f9084906127e7565b600080611fb184846128bf565b9050604051811115611fc1575060005b80611fef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000915050611bf6565b611ad9858585612931565b600080808061202a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008616612944565b63ffffffff7f00000000000000000000000000000000000000000000000000000000000000011661207c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612a82565b63ffffffff16146120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc906138a4565b60006120e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612aaf565b90508015806120f457504381115b61212a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613938565b6121557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612ae0565b92506121827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612b0d565b915081158061219057508282105b6121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613a03565b6121f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612b3e565b82111561222a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105dc90613b16565b61225d6122587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008816612b6f565b612b9c565b945061228a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008716612b9f565b9350509193509193565b600061229e612bcc565b90506000821561237957601b54604080517f8dfcfa9000000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201526024810189905273ffffffffffffffffffffffffffffffffffffffff888116604483015292831660648201526084810187905260a48101869052905191841691638dfcfa909160c4808201926020929091908290030181600087803b15801561234657600080fd5b505af115801561235a573d6000803e3d6000fd5b505050506040513d602081101561237057600080fd5b50519050612434565b604080517fd54de06f00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526024810188905273ffffffffffffffffffffffffffffffffffffffff87811660448301526064820187905291519184169163d54de06f916084808201926020929091908290030181600087803b15801561240557600080fd5b505af1158015612419573d6000803e3d6000fd5b505050506040513d602081101561242f57600080fd5b505190505b8073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f50c55e915134d457debfa58eb6f4342956f8b0616d51a89a3659360178e1ab638686604051808381526020018281526020019250505060405180910390a350505050505050565b6000826124b957506000611ab8565b828202828482816124c657fe5b0414611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613e3e6021913960400191505060405180910390fd5b63ffffffff81166000908152601a602052604081205480610ad757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6f20546f6b656e4d657373656e67657220666f7220646f6d61696e00000000604482015290519081900360640190fd5b60006125a9612bcc565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015280841660248301526044820186905291519293508692918316916323b872dd916064808201926020929091908290030181600087803b15801561262f57600080fd5b505af1158015612643573d6000803e3d6000fd5b505050506040513d602081101561265957600080fd5b50516126c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5472616e73666572206f7065726174696f6e206661696c656400000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff16639dc29fac86856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561273757600080fd5b505af1158015610b40573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b60608888888888886000808a8a604051602001808b63ffffffff1660e01b81526004018a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838380828437808301925050509a5050505050505050505050604051602081830303815290604052905098975050505050505050565b6000612849826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612c709092919063ffffffff16565b80519091501561101f5780806020019051602081101561286857600080fd5b505161101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ee1602a913960400191505060405180910390fd5b81810182811015611ab857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000604482015290519081900360640190fd5b606092831b9190911790911b1760181b90565b61296f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008216612c87565b6129da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4d616c666f726d6564206d657373616765000000000000000000000000000000604482015290519081900360640190fd5b60e4612a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612cc4565b6bffffffffffffffffffffffff1610156108c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964206275726e206d6573736167653a20746f6f2073686f727400604482015290519081900360640190fd5b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612cd8565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660c46020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d25565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660a46020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660846020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d56565b90565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008316612d87565b60195460009073ffffffffffffffffffffffffffffffffffffffff16612c5357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c6f63616c206d696e746572206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b5060195473ffffffffffffffffffffffffffffffffffffffff1690565b6060612c7f8484600085612db8565b949350505050565b6000612c9282612f72565b64ffffffffff1664ffffffffff1415612cad57506000610ada565b6000612cb883612f78565b60405110159392505050565b60181c6bffffffffffffffffffffffff1690565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000083168260045b60008160200360080260ff16612d1b858585612fa2565b901c949350505050565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660446020612d04565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660246020612fa2565b6000610ad77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000831660046020612fa2565b606082471015612e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613dd36026913960400191505060405180910390fd5b612e1c856112df565b612e8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612ef057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612eb3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612f52576040519150601f19603f3d011682016040523d82523d6000602084013e612f57565b606091505b5091509150612f6782828661314d565b979650505050505050565b60d81c90565b6000612f8382612cc4565b612f8c836131cd565b016bffffffffffffffffffffffff169050919050565b600060ff8216612fb457506000611bf6565b612fbd84612cc4565b6bffffffffffffffffffffffff16612fd88460ff85166128bf565b11156130b757613019612fea856131cd565b6bffffffffffffffffffffffff1661300186612cc4565b6bffffffffffffffffffffffff16858560ff166131e1565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561307c578181015183820152602001613064565b50505050905090810190601f1680156130a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60208260ff161115613114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e5f603a913960400191505060405180910390fd5b600882026000613123866131cd565b6bffffffffffffffffffffffff169050600061313e8361333c565b91909501511695945050505050565b6060831561315c575081611bf6565b82511561316c5782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561307c578181015183820152602001613064565b60781c6bffffffffffffffffffffffff1690565b606060006131ee86613385565b91505060006131fc86613385565b915050600061320a86613385565b915050600061321886613385565b915050838383836040516020018080613f31603591397fffffffffffff000000000000000000000000000000000000000000000000000060d087811b821660358401527f2077697468206c656e6774682030780000000000000000000000000000000000603b84015286901b16604a8201526050016021613df982397fffffffffffff000000000000000000000000000000000000000000000000000060d094851b811660218301527f2077697468206c656e677468203078000000000000000000000000000000000060278301529290931b9091166036830152507f2e00000000000000000000000000000000000000000000000000000000000000603c82015260408051601d818403018152603d90920190529b9a5050505050505050505050565b7f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091011d90565b600080601f5b600f8160ff1611156133ed5760ff600882021684901c6133aa81613459565b61ffff16841793508160ff166010146133c557601084901b93505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161338b565b50600f5b60ff8160ff1610156134535760ff600882021684901c61341081613459565b61ffff16831792508160ff1660001461342b57601083901b92505b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016133f1565b50915091565b600061346b60048360ff16901c613489565b60ff161760081b62ffff001661348082613489565b60ff1617919050565b6040805180820190915260108082527f30313233343536373839616263646566000000000000000000000000000000006020830152600091600f841691829081106134d057fe5b016020015160f81c9392505050565b60008083601f8401126134f0578182fd5b50813567ffffffffffffffff811115613507578182fd5b602083019150836020808302850101111561352157600080fd5b9250929050565b60008083601f840112613539578182fd5b50813567ffffffffffffffff811115613550578182fd5b60208301915083602082850101111561352157600080fd5b803563ffffffff81168114610ada57600080fd5b60006020828403121561358d578081fd5b8135611ab581613ce7565b6000806000606084860312156135ac578182fd5b83356135b781613ce7565b925060208401356135c781613ce7565b929592945050506040919091013590565b6000806000806000808688036101208112156135f2578283fd5b60c08112156135ff578283fd5b5086955060c0870135945060e087013567ffffffffffffffff80821115613624578384fd5b6136308a838b016134df565b9096509450610100890135915080821115613649578384fd5b5061365689828a016134df565b979a9699509497509295939492505050565b600060208284031215613679578081fd5b5035919050565b600080600080600080600060e0888a03121561369a578081fd5b873596506136aa60208901613568565b95506040880135945060608801356136c181613ce7565b93506080880135925060a088013591506136dd60c08901613568565b905092959891949750929550565b60008060008060008060008060006101008a8c031215613709578182fd5b8935985061371960208b01613568565b975060408a0135965060608a013561373081613ce7565b955060808a0135945060a08a0135935061374c60c08b01613568565b925060e08a013567ffffffffffffffff811115613767578283fd5b6137738c828d01613528565b915080935050809150509295985092959850929598565b60006020828403121561379b578081fd5b611ab582613568565b600080604083850312156137b6578182fd5b6137bf83613568565b946020939093013593505050565b6000806000806000608086880312156137e4578081fd5b6137ed86613568565b94506020860135935061380260408701613568565b9250606086013567ffffffffffffffff81111561381d578182fd5b61382988828901613528565b969995985093965092949392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b6020808252818101527f4d617820666565206d757374206265206c657373207468616e20616d6f756e74604082015260600190565b6020808252601c908201527f496e76616c6964206d65737361676520626f64792076657273696f6e00000000604082015260600190565b60208082526023908201527f496e76616c69642072656d6f746520646f6d61696e20636f6e6669677572617460408201527f696f6e0000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f4d657373616765206578706972656420616e64206d7573742062652072652d7360408201527f69676e6564000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526016908201527f416d6f756e74206d757374206265206e6f6e7a65726f00000000000000000000604082015260600190565b60208082526019908201527f4f776e657220697320746865207a65726f206164647265737300000000000000604082015260600190565b6020808252601c908201527f46656520657175616c73206f72206578636565647320616d6f756e7400000000604082015260600190565b60208082526012908201527f486f6f6b206461746120697320656d7074790000000000000000000000000000604082015260600190565b6020808252601e908201527f556e737570706f727465642066696e616c697479207468726573686f6c640000604082015260600190565b60208082526014908201527f496e73756666696369656e74206d617820666565000000000000000000000000604082015260600190565b6020808252601e908201527f4d696e7420726563697069656e74206d757374206265206e6f6e7a65726f0000604082015260600190565b60208082526013908201527f4665652065786365656473206d61782066656500000000000000000000000000604082015260600190565b6020808252600e908201527f416d6f756e7420746f6f206c6f77000000000000000000000000000000000000604082015260600190565b600089825288602083015263ffffffff881660408301528660608301528560808301528460a083015260e060c08301528260e0830152610100838582850137828401810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101979650505050505050565b63ffffffff91909116815260200190565b600063ffffffff808816835260208781850152866040850152818616606085015260a06080850152845191508160a0850152825b82811015613c615785810182015185820160c001528101613c45565b82811115613c72578360c084870101525b5050601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b67ffffffffffffffff91909116815260200190565b60008085851115613cce578182fd5b83861115613cda578182fd5b5050820193919092039150565b73ffffffffffffffffffffffffffffffffffffffff811681146108c957600080fdfe496e697469616c697a61626c653a20696e76616c696420696e697469616c697a6174696f6e4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737344656e796c69737461626c653a206e65772064656e796c697374657220697320746865207a65726f206164647265737352656d6f746520546f6b656e4d657373656e67657220756e737570706f72746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c2e20417474656d7074656420746f20696e646578206174206f6666736574203078526573637561626c653a2063616c6c6572206973206e6f74207468652072657363756572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7754797065644d656d566965772f696e646578202d20417474656d7074656420746f20696e646578206d6f7265207468616e20333220627974657344656e796c69737461626c653a206163636f756e74206973206f6e2064656e796c69737443616c6c6572206973206e6f7420746865206d696e2066656520636f6e74726f6c6c65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656444656e796c69737461626c653a2063616c6c6572206973206e6f742064656e796c697374657254797065644d656d566965772f696e646578202d204f76657272616e2074686520766965772e20536c696365206973206174203078a264697066735822122015e830bad8e277f4cac7ef6e08e6592b7a7c2ccbfece2d2eb557ad23a0ef2f9964736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000081d40f21f12a8f0e3252bccb954d722d4c464b640000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : _messageTransmitter (address): 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64
Arg [1] : _messageBodyVersion (uint32): 1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000081d40f21f12a8f0e3252bccb954d722d4c464b64
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001

🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Custom Contract ABI

                            

Block Transaction Gas Used Reward
view all blocks validated

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0x1CcaFdffBC1b7B5C499c97322F961B7d929a41b4
Loading...
Loading
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.