[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "endpoint_", "type": "address" }, { "internalType": "address", "name": "forwarder_", "type": "address" }, { "internalType": "address", "name": "admin_", "type": "address" }, { "internalType": "uint256", "name": "supply_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InvalidDelegate", "type": "error" }, { "inputs": [], "name": "InvalidEndpointCall", "type": "error" }, { "inputs": [], "name": "InvalidLocalDecimals", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "options", "type": "bytes" } ], "name": "InvalidOptions", "type": "error" }, { "inputs": [], "name": "LzTokenUnavailable", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "NoPeer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "msgValue", "type": "uint256" } ], "name": "NotEnoughNative", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "OnlyEndpoint", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" } ], "name": "OnlyPeer", "type": "error" }, { "inputs": [], "name": "OnlySelf", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "result", "type": "bytes" } ], "name": "SimulationResult", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" } ], "name": "SlippageExceeded", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" }, { "internalType": "bytes", "name": "options", "type": "bytes" } ], "indexed": false, "internalType": "struct EnforcedOptionParam[]", "name": "_enforcedOptions", "type": "tuple[]" } ], "name": "EnforcedOptionSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "inspector", "type": "address" } ], "name": "MsgInspectorSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "toAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountLD", "type": "uint256" } ], "name": "OFTReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "indexed": false, "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "fromAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountLD", "type": "uint256" } ], "name": "OFTSent", "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": "eid", "type": "uint32" }, { "indexed": false, "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "name": "PeerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "preCrimeAddress", "type": "address" } ], "name": "PreCrimeSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "SEND", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SEND_AND_CALL", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" } ], "name": "allowInitializePath", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "approvalRequired", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "uint16", "name": "_msgType", "type": "uint16" }, { "internalType": "bytes", "name": "_extraOptions", "type": "bytes" } ], "name": "combineOptions", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "composeMsgSender", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimalConversionRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "endpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpointV2", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" } ], "name": "enforcedOptions", "outputs": [ { "internalType": "bytes", "name": "enforcedOption", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "isPeer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "origin", "type": "tuple" }, { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "address", "name": "executor", "type": "address" }, { "internalType": "bytes", "name": "message", "type": "bytes" }, { "internalType": "bytes", "name": "extraData", "type": "bytes" } ], "internalType": "struct InboundPacket[]", "name": "_packets", "type": "tuple[]" } ], "name": "lzReceiveAndRevert", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "srcEid", "type": "uint32" }, { "internalType": "bytes32", "name": "sender", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "internalType": "struct Origin", "name": "_origin", "type": "tuple" }, { "internalType": "bytes32", "name": "_guid", "type": "bytes32" }, { "internalType": "bytes", "name": "_message", "type": "bytes" }, { "internalType": "address", "name": "_executor", "type": "address" }, { "internalType": "bytes", "name": "_extraData", "type": "bytes" } ], "name": "lzReceiveSimulate", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "msgInspector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "", "type": "uint32" }, { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "nextNonce", "outputs": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oApp", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oAppVersion", "outputs": [ { "internalType": "uint64", "name": "senderVersion", "type": "uint64" }, { "internalType": "uint64", "name": "receiverVersion", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "oftVersion", "outputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }, { "internalType": "uint64", "name": "version", "type": "uint64" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "eid", "type": "uint32" } ], "name": "peers", "outputs": [ { "internalType": "bytes32", "name": "peer", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "preCrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" } ], "name": "quoteOFT", "outputs": [ { "components": [ { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "uint256", "name": "maxAmountLD", "type": "uint256" } ], "internalType": "struct OFTLimit", "name": "oftLimit", "type": "tuple" }, { "components": [ { "internalType": "int256", "name": "feeAmountLD", "type": "int256" }, { "internalType": "string", "name": "description", "type": "string" } ], "internalType": "struct OFTFeeDetail[]", "name": "oftFeeDetails", "type": "tuple[]" }, { "components": [ { "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "internalType": "struct OFTReceipt", "name": "oftReceipt", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" }, { "internalType": "bool", "name": "_payInLzToken", "type": "bool" } ], "name": "quoteSend", "outputs": [ { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "msgFee", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "dstEid", "type": "uint32" }, { "internalType": "bytes32", "name": "to", "type": "bytes32" }, { "internalType": "uint256", "name": "amountLD", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountLD", "type": "uint256" }, { "internalType": "bytes", "name": "extraOptions", "type": "bytes" }, { "internalType": "bytes", "name": "composeMsg", "type": "bytes" }, { "internalType": "bytes", "name": "oftCmd", "type": "bytes" } ], "internalType": "struct SendParam", "name": "_sendParam", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "_fee", "type": "tuple" }, { "internalType": "address", "name": "_refundAddress", "type": "address" } ], "name": "send", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "guid", "type": "bytes32" }, { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "components": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "lzTokenFee", "type": "uint256" } ], "internalType": "struct MessagingFee", "name": "fee", "type": "tuple" } ], "internalType": "struct MessagingReceipt", "name": "msgReceipt", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "amountSentLD", "type": "uint256" }, { "internalType": "uint256", "name": "amountReceivedLD", "type": "uint256" } ], "internalType": "struct OFTReceipt", "name": "oftReceipt", "type": "tuple" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegate", "type": "address" } ], "name": "setDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "eid", "type": "uint32" }, { "internalType": "uint16", "name": "msgType", "type": "uint16" }, { "internalType": "bytes", "name": "options", "type": "bytes" } ], "internalType": "struct EnforcedOptionParam[]", "name": "_enforcedOptions", "type": "tuple[]" } ], "name": "setEnforcedOptions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_msgInspector", "type": "address" } ], "name": "setMsgInspector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_eid", "type": "uint32" }, { "internalType": "bytes32", "name": "_peer", "type": "bytes32" } ], "name": "setPeer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_preCrime", "type": "address" } ], "name": "setPreCrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sharedDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "trustedForwarder", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60e060409080825234620008a1576000620035078038038091620000248286620008a6565b843982019160c0818403126200089d5780516001600160401b03811162000899578362000053918301620008e0565b60208201519093906001600160401b03811162000895579062000078918301620008e0565b906200008685820162000957565b91620000956060830162000957565b9460a0620000a66080850162000957565b9301519333156200087d578554336001600160a01b03198083168217895598916001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08980a36080526001600160a01b031660a0819052803b15620008795785809160248a518094819363ca5eb5e160e01b83523360048401525af180156200086f576200083f575b5064e8d4a5100060c05280516001600160401b0381116200066557600854600181811c9116801562000834575b60208210146200064657601f8111620007dd575b50806020601f8211600114620007685787916200075c575b508160011b916000199060031b1c1916176008555b81516001600160401b0381116200066557600954600181811c9116801562000751575b60208210146200064657601f8111620006fa575b50806020601f82116001146200068557879162000679575b508160011b916000199060031b1c1916176009555b8051906001600160401b0382116200066557600a54600181811c911680156200065a575b602082101462000646579081601f849311620005e4575b50602090601f83116001146200056d57879262000561575b50508160011b916000199060031b1c191617600a555b8051906001600160401b0382116200054d57600b54600181811c9116801562000542575b60208210146200052e579081601f849311620004bb575b50602090601f83116001146200043357869262000427575b50508160011b916000199060031b1c191617600b555b60018060a01b03168093600c541617600c5582158015806200041d575b6200037b575b8451612b3a90816200096d823960805181818161132b015281816115390152612aae015260a051818181610571015281816106800152818161086b015281816109bb01528181611498015281816116de0152611a0a015260c05181818161044001528181610782015281816111c601528181611a8a015261264f0152f35b670de0b6b3a764000091828102928184041490151715620003f1576200040557600754818101809111620003f1577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91602091600755848452600582528584208181540190558551908152a338808080620002fd565b634e487b7160e01b83526011600452602483fd5b835163ec442f0560e01b815260048101839052602490fd5b50811515620002f7565b015190503880620002c4565b600b87527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99250601f198416875b818110620004a2575090846001959493921062000488575b505050811b01600b55620002da565b015160001960f88460031b161c1916905538808062000479565b9293602060018192878601518155019501930162000461565b600b87529091507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9601f840160051c8101916020851062000523575b90601f859493920160051c01905b818110620005145750620002ac565b87815584935060010162000505565b9091508190620004f7565b634e487b7160e01b86526022600452602486fd5b90607f169062000295565b634e487b7160e01b85526041600452602485fd5b0151905038806200025b565b600a8852600080516020620034a78339815191529250601f198416885b818110620005cb5750908460019594939210620005b1575b505050811b01600a5562000271565b015160001960f88460031b161c19169055388080620005a2565b929360206001819287860151815501950193016200058a565b600a8852909150600080516020620034a7833981519152601f840160051c810191602085106200063b575b90601f859493920160051c01905b8181106200062c575062000243565b8881558493506001016200061d565b90915081906200060f565b634e487b7160e01b87526022600452602487fd5b90607f16906200022c565b634e487b7160e01b86526041600452602486fd5b905083015138620001f3565b60098852600080516020620034e78339815191529150601f198316885b818110620006e157509083600194939210620006c7575b5050811b0160095562000208565b85015160001960f88460031b161c191690553880620006b9565b9192602060018192868a015181550194019201620006a2565b60098752600080516020620034e7833981519152601f830160051c8101916020841062000746575b601f0160051c01905b8181106200073a5750620001db565b8781556001016200072b565b909150819062000722565b90607f1690620001c7565b9050820151386200018f565b60088852600080516020620034c78339815191529150601f198316885b818110620007c457509083600194939210620007aa575b5050811b01600855620001a4565b84015160001960f88460031b161c1916905538806200079c565b9192602060018192868901518155019401920162000785565b60088752600080516020620034c7833981519152601f830160051c8101916020841062000829575b601f0160051c01905b8181106200081d575062000177565b8781556001016200080e565b909150819062000805565b90607f169062000163565b9094906001600160401b0381116200085b578752933862000136565b634e487b7160e01b82526041600452602482fd5b88513d88823e3d90fd5b8580fd5b8751631e4fbdf760e01b815260048101879052602490fd5b8380fd5b8280fd5b5080fd5b600080fd5b601f909101601f19168101906001600160401b03821190821017620008ca57604052565b634e487b7160e01b600052604160045260246000fd5b919080601f84011215620008a1578251906001600160401b038211620008ca57604051916020916200091c601f8301601f1916840185620008a6565b818452828287010111620008a15760005b8181106200094357508260009394955001015290565b85810183015184820184015282016200092d565b51906001600160a01b0382168203620008a15756fe6080604081815260048036101561001557600080fd5b60009260e08435811c91826306fdde0314611ef357508163095ea7b314611e415781630d35b41514611ccc578163111ecdad14611ca457816313137d65146119e9578163134d4f25146119cc578163156a0d0f146119a557816317442b701461198357816318160ddd146119635781631f5e13341461194657816323b872dd14611832578163313ce567146118155781633400288b146117935781633b6f743b146115e857816342966c68146115c057816352ae2879146102625781635535d46114611560578163572b6c051461150d5781635a0dfe4d146114c75781635e280f11146114825781636fc1b31e1461141357816370a08231146113da578163715018a6146113805781637d25a05e1461135a5781637da0a87714611315578163857749b0146112f85781638da5cb5b146112cf57816395d89b41146111e9578163963efcaa146111ad5781639f68b96414611191578163a9059cbb14611158578163b731ea0a1461112e578163b92d0eff14610262578163b98bd07014610e4b578163bb0b6a5314610e16578163bc70b35414610daa578163bd815db014610b44578163c7c7f5b3146106f557848263ca5eb5e11461065257508163d045a0dc146103e157508063d424388514610372578063dd62ed3e14610324578063f2fde38b14610294578063f851a44014610267578063fc0c546a146102625763ff7bd03d1461022157600080fd5b3461025e57606036600319011261025e573563ffffffff81168091036102595782829160209452600184522054905190602435148152f35b600080fd5b8280fd5b6120f4565b505034610290578160031936011261029057600c5490516001600160a01b039091168152602090f35b5080fd5b503461025e57602036600319011261025e576102ae61200c565b906102b7612810565b6001600160a01b0391821692831561030e575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b50503461029057806003193601126102905760209161034161200c565b8261034a612022565b6001600160a01b03928316845260068652922091166000908152908352819020549051908152f35b5050346102905760203660031901126102905760207fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760916103b161200c565b6103b9612810565b600280546001600160a01b0319166001600160a01b039290921691821790559051908152a180f35b9190506103ed36612065565b5050509591949092933033036106445786602011610613576001600160a01b03843581169761046a93906104218188612406565b6001600160c01b0319969187919035828116916008811061062e575b507f000000000000000000000000000000000000000000000000000000000000000092505060c01c6127dd565b96610474896122bb565b508a1561061757908b959493929161048c898d612931565b602882116104ed575b505050505050506104e76104c97fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c946122bb565b9151928392836020909392919363ffffffff60408201951681520152565b0390a380f35b878a0135906001600160401b03821682036106135761056f9361052761052085604c968f61051a906122bb565b95612417565b36916123cf565b918a5198899460c01b16602085015263ffffffff60e01b911b16602883015289602c83015261055f8151809260208686019101611fc4565b810103602c81018652018461226a565b7f00000000000000000000000000000000000000000000000000000000000000001691823b1561060f576105d49289858094885196879586948593633e5ac80960e11b85528401528d6024840152836044840152608060648401526084830190611fe7565b03925af18015610605576105ed575b8080808080610495565b6105f690612221565b6106015785386105e3565b8580fd5b83513d84823e3d90fd5b8380fd5b8780fd5b865163ec442f0560e01b81528086018d9052602490fd5b8391925060080360031b1b16168690388061043d565b825163029a949d60e31b8152fd5b808486346106f15760203660031901126106f15761066e61200c565b610676612810565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116803b15610601578592836024928651978895869463ca5eb5e160e01b865216908401525af19081156106e857506106d55750f35b6106de90612221565b6106e55780f35b80fd5b513d84823e3d90fd5b5050fd5b9260031992608092503684018313610601578035916001600160401b039586841161061357838301958436030112610b405780602319360112610b4057606435966001600160a01b0380891689036102595761074f6125f0565b5082519361075c856121f0565b6000855260006020809601526107b060446107ab60648901359861077f8c6122bb565b507f000000000000000000000000000000000000000000000000000000000000000092839101356127f0565b6127dd565b95808710610b2357506107c386336129a4565b6107cd868961263e565b916107d78a6122bb565b928651906107e4826121f0565b60243582528882019160443583526107fa6125f0565b505193843403610b0d578251806109ad575b50918593916108679f96936108238e9997956122cc565b925115159263ffffffff8c519761083989612234565b1687528c8701528a86015260608501528684015287516302637a4560e41b81529d8e95869485938401612582565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19788156109a1578198610936575b50508060c0978151946108ad866121f0565b808652848601978189527ffff873bb909b73d08a8c1af4b21779e87103bb8ea8cf3b3a0067eb8526b8b80a6109066108e68551936122bb565b865163ffffffff9091168152602081019490945233939081906040820190565b0390a3815197815189528482015116848901520151908151908701520151606085015251908301525160a0820152f35b909750843d861161099a575b61094c818361226a565b8101908581830312610996578251986109648a61224f565b81518a52848201519089821682036106e557508392838b9361098c938860c09e01520161255a565b828201529761089b565b8880fd5b503d610942565b509051903d90823e3d90fd5b895163393f876560e21b81527f00000000000000000000000000000000000000000000000000000000000000008916908c818881855afa908115610b0357908a918c91610ac5575b5016918215610ab5578a80610a67938f938f5190858201926323b872dd60e01b84523360248401526044830152606482015260648152610a3481612234565b519082875af13d15610aac578c3d610a57610a4e826123b4565b9251928361226a565b81528c81933d92013e5b83612a48565b8051908c8215159283610a93575b5050501561080c57846024918b5191635274afe760e01b8352820152fd5b610aa39350820181019101612626565b15388c81610a75565b60609150610a61565b8b516329b99a9560e11b81528790fd5b8092508e8092503d8311610afc575b610ade818361226a565b81010312610af857518981168103610af8578990386109f5565b8a80fd5b503d610ad4565b8c513d8d823e3d90fd5b88516304fb820960e51b81523481860152602490fd5b84516371c4efed60e01b8152918201879052602482015260449150fd5b8680fd5b84939150602093600319918583360112610290576001600160401b0392853584811161060f57610b77903690880161228b565b9290845b848110610c54575050505050825190638e9e709960e01b825280828681335afa928315610c48578193610bcf575b505050610bcb9151938493638351eea760e01b85528401526024830190611fe7565b0390fd5b909192503d8083853e610be2818561226a565b830192868185031261025e57805191821161025e570182601f8201121561029057805191610c0f836123b4565b93610c1c8651958661226a565b8385528784840101116106e557508291610c3f918780610bcb9796019101611fc4565b90918580610ba9565b508351903d90823e3d90fd5b8060051b82013561013e1983360301811215610b40578201610c75816122bb565b610c968c830135809263ffffffff1660005260016020526040600020541490565b15610d7457610ca9610100830183612361565b868401356001600160a01b03811693919290849003610af857610cd0610120860186612361565b939092303b15610da657908f9695949392918f8f91815199633411683760e21b8b5263ffffffff610d008b6120e3565b16908b015260248a0152870135908116809103610da25787958e979587958e610d4b8f97899760c099610d5f9860448b015260a08d013560648b015260848a015260e4890191612393565b9360a48701528584030160c4860152612393565b03920135305af18015610d9857908791610d84575b5050610d7f90612304565b610b7b565b610d8d90612221565b61060157858b610d74565b89513d89823e3d90fd5b8d80fd5b8c80fd5b50503461025e57606036600319011261025e57610dc56120d0565b90610dce61210f565b93604435906001600160401b0382116106e5575091610df7610e129592610dff94369101612038565b929091612434565b9051918291602083526020830190611fe7565b0390f35b50505034610290576020366003190112610290578060209263ffffffff610e3b6120d0565b1681526001845220549051908152f35b5050903461025e576020918260031936011261060f576001600160401b0392813584811161060157838693610e8487933690830161228b565b9091610e8e612810565b865b828110610f84575050825194818187018288525283860192848360051b88010195819589925b858410610ee7578a7fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748b8b038ca180f35b9091929394959697603f198a82030188528835605e1983360301811215610f8057820163ffffffff610f18826120e3565b1682528681013561ffff8116809103610259578783015283810135601e1982360301811215610da657018681019035858111610da6578036038213610da657610f7088928392600195606090818a8201520191612393565b9a01980196959401929190610eb6565b8b80fd5b610fa9610fa3610f9a838688999a9b9798612329565b88810190612361565b9061251d565b610fc0610fb7828688612329565b87810190612361565b63ffffffff610fd8610fd385898b612329565b6122bb565b168a5260038552878a2085610fee85898b612329565b013561ffff8116809103610f80576000528552876000209189821161111b576110178354612120565b90601f918281116110d6575b508b91831160011461106d57611057949392918c9183611062575b50508160011b916000199060031b1c1916179055612304565b959493929195610e90565b013590508c8061103e565b838c52868c2091601f1984168d5b898282106110c05750509084611057979695949392106110a6575b505050600190811b019055612304565b0135600019600384901b60f8161c191690558b8080611096565b600184968293958701358155019501920161107b565b848d52878d208380860160051c8201928a8710611112575b0160051c01908d905b828110611105575050611023565b6001918155018d906110f7565b925081926110ee565b634e487b7160e01b8b526041855260248bfd5b5050503461029057816003193601126102905760025490516001600160a01b039091168152602090f35b5050503461029057806003193601126102905760209061118a61117961200c565b60243590611185612aab565b612851565b5160018152f35b5050503461029057816003193601126102905751908152602090f35b50505034610290578160031936011261029057602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b8385346106e557806003193601126106e557508051600091600b5461120d81612120565b808452906001908181169081156112a7575060011461124a575b505061123882610e1294038361226a565b51918291602083526020830190611fe7565b600b600090815294507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b82861061128f575050509181016020019161123882611227565b80546020878701810191909152909501948101611275565b610e12965085925060209150926112389360ff191682840152151560051b8201019450611227565b50505034610290578160031936011261029057905490516001600160a01b039091168152602090f35b505050346102905781600319360112610290576020905160068152f35b50505034610290578160031936011261029057517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50505034610290578060031936011261029057906020916113796120d0565b5051908152f35b84346106e557806003193601126106e557611399612810565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b505050346102905760203660031901126102905760209181906001600160a01b0361140361200c565b1681526005845220549051908152f35b5050903461025e57602036600319011261025e577ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d44141979160209161145461200c565b61145c612810565b82546001600160a01b0319166001600160a01b039190911690811790925551908152a180f35b50505034610290578160031936011261029057517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b505050346102905780600319360112610290576020906115046114e86120d0565b6024359063ffffffff1660005260016020526040600020541490565b90519015158152f35b505050346102905760203660031901126102905760209061152c61200c565b90519060018060a01b03807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b5050503461029057806003193601126102905780610e129261ffff6115b9936115876120d0565b9263ffffffff61159561210f565b9416815260036020522091166000526020526112388160002082519384809261215a565b038361226a565b848334610290576020366003190112610290576115e590356115e0612aab565b6129a4565b80f35b849291503461025e5760031990848236011261060f578235906001600160401b03821161178f5781840192823603011261060f576024359081151580920361178f57600060208751611639816121f0565b828152015261165560446107ab60648401359361077f876122bb565b908082106117725750916116da94939161167b61167388958461263e565b9190936122bb565b9260006020875161168b816121f0565b8281520152611699846122cc565b63ffffffff8751956116aa87612234565b168552602085015285840152606083015260808201528251631bb8518b60e31b8152948592839230918401612582565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561176657819261172a575b505060208251918051835201516020820152f35b90928092503d831161175f575b611741818361226a565b810190828183031261060f5761175892935061255a565b8280611716565b503d611737565b508251903d90823e3d90fd5b86516371c4efed60e01b8152808601929092526024820152604490fd5b8480fd5b505050346102905780600319360112610290577f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906117d06120d0565b61180f602435926117df612810565b63ffffffff831686526001602052838187205551928392836020909392919363ffffffff60408201951681520152565b0390a180f35b505050346102905781600319360112610290576020905160128152f35b505082346106e55760603660031901126106e55761184e61200c565b611856612022565b9160443593611863612aab565b9160018060a01b03918783861692838152600660205220928416928360005260205287600020549360001985036118a3575b60208961118a8a8a8a612851565b878510611911575081156118fa5782156118e3575060009081526006602090815287822092825291825286902091859003909155829061118a8780611895565b6024906000895191634a1406b160e11b8352820152fd5b602490600089519163e602df0560e01b8352820152fd5b8851637dc7a0d960e11b81526001600160a01b0390911691810191825260208201859052604082018890529081906060010390fd5b505050346102905781600319360112610290576020905160018152f35b505050346102905781600319360112610290576020906007549051908152f35b8385346106e557806003193601126106e5575080516001815260016020820152f35b8385346106e557806003193601126106e55750805162b9270b60e21b815260016020820152f35b505050346102905781600319360112610290576020905160028152f35b90506119f436612065565b509197939692959394936001600160a01b0392507f000000000000000000000000000000000000000000000000000000000000000083169150338203611c8e57611a45611a40866122bb565b6122cc565b6020860135809103611c58575088602011611c5457611ab49287351698611a6c8189612406565b6001600160c01b03199591869190358281169160088110611c3e57507f000000000000000000000000000000000000000000000000000000000000000092505060c01c6127dd565b97611abe876122bb565b508a15611c2757908b94939291611ad58a8d612931565b60288211611b10575b858c8c7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8d8d6104e76104c98f6122bb565b88880135906001600160401b0382168203610b4057611b8493611b3c61052085604c9661051a8e6122bb565b918b5197889460c01b16602085015263ffffffff60e01b911b1660288301528a602c830152611b748151809260208686019101611fc4565b810103602c81018552018361226a565b803b1561025e578883611bc495885196879586948593633e5ac80960e11b85528401528c6024840152836044840152608060648401526084830190611fe7565b03925af18015611c1d57611bde575b868180808080611ade565b6104c97fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c94939297611c126104e793612221565b979293945050611bd3565b83513d89823e3d90fd5b875163ec442f0560e01b81528087018d9052602490fd5b8391925060080360031b1b16168590388061043d565b8980fd5b84610bcb8892611c67896122bb565b935163309afaf360e21b815263ffffffff9094169284019283526020830152829160400190565b85516391ac5e4f60e01b81523381860152602490fd5b50503461025e578260031936011261025e575490516001600160a01b03909116815260209150f35b848484923461025e57600319916020368401811361178f578535926001600160401b0394858511610b4057843603011261178f5784818351611d0d816121f0565b828152015284818351611d1f816121f0565b8281520152815191611d30836121f0565b858352818301958587528151978389019689881090881117611e2e57868352818952611d6b60446107ab60648901359861077f8186016122bb565b95808710611e11575050929190805197611d84896121f0565b85895282890195865281519760a0890194518952518389015260a0828901525180935260c0870160c08460051b8901019694915b848310611dd357895160608a0152865160808a015288880389f35b9091929394968480611e0160019360bf198d820301875285838d518051845201519181858201520190611fe7565b9901930193019194939290611db8565b83516371c4efed60e01b8152918201879052602482015260449150fd5b634e487b7160e01b825260419052602490fd5b50503461025e578160031936011261025e57611e5b61200c565b602435936001600160a01b0380611e70612aab565b16928315611edc5716928315611ec7575060208581968684867f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925965260068552818120888252855220558551908152a35160018152f35b602491855191634a1406b160e11b8352820152fd5b855163e602df0560e01b8152808601849052602490fd5b8590853461025e578260031936011261025e5782600a54611f1381612120565b80855291600191808316908115611f9c5750600114611f3f575b50505061123882610e1294038361226a565b9450600a85527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a85b828610611f8457505050611238826020610e129582010194611f2d565b80546020878701810191909152909501948101611f67565b610e1297508693506020925061123894915060ff191682840152151560051b82010194611f2d565b60005b838110611fd75750506000910152565b8181015183820152602001611fc7565b9060209161200081518092818552858086019101611fc4565b601f01601f1916010190565b600435906001600160a01b038216820361025957565b602435906001600160a01b038216820361025957565b9181601f84011215610259578235916001600160401b038311610259576020838186019501011161025957565b600319810160e081126102595760601361025957600491606435916001600160401b0390608435828111610259578161209f918701612038565b9093909260a4356001600160a01b0381168103610259579260c435918211610259576120cc918801612038565b9091565b6004359063ffffffff8216820361025957565b359063ffffffff8216820361025957565b34610259576000366003190112610259576020604051308152f35b6024359061ffff8216820361025957565b90600182811c92168015612150575b602083101461213a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161212f565b906000929180549161216b83612120565b9182825260019384811690816000146121cd575060011461218d575b50505050565b90919394506000526020928360002092846000945b8386106121b9575050505001019038808080612187565b8054858701830152940193859082016121a2565b9294505050602093945060ff191683830152151560051b01019038808080612187565b604081019081106001600160401b0382111761220b57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161220b57604052565b60a081019081106001600160401b0382111761220b57604052565b606081019081106001600160401b0382111761220b57604052565b90601f801991011681019081106001600160401b0382111761220b57604052565b9181601f84011215610259578235916001600160401b038311610259576020808501948460051b01011161025957565b3563ffffffff811681036102595790565b63ffffffff168060005260016020526040600020549081156122ec575090565b6024906040519063f6ff4fb760e01b82526004820152fd5b60001981146123135760010190565b634e487b7160e01b600052601160045260246000fd5b919081101561234b5760051b81013590605e1981360301821215610259570190565b634e487b7160e01b600052603260045260246000fd5b903590601e198136030182121561025957018035906001600160401b0382116102595760200191813603831361025957565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160401b03811161220b57601f01601f191660200190565b9291926123db826123b4565b916123e9604051938461226a565b829481845281830111610259578281602093846000960137010152565b906028116102595760200190600890565b909291928360281161025957831161025957602801916027190190565b6115b99092919263ffffffff6000911681526020936003855261ffff6040832091168252845261246d604082206040519384809261215a565b81511561250e5784156125065760028510156124a8575050610bcb90604051938493639a6d49cd60e01b855260048501526024840191612393565b9091936124b5818661251d565b8060021161029057916125039391601e9360405196836124de8995518092888089019101611fc4565b840190600119956002878501920190830137019084820152039081018452018261226a565b90565b509250505090565b505090506125039136916123cf565b9080600211610259576003823560f01c03612536575050565b610bcb604051928392639a6d49cd60e01b8452602060048501526024840191612393565b919082604091031261025957604051612572816121f0565b6020808294805184520151910152565b906020909392936040835263ffffffff815116604084015281810151606084015260806125d66125c0604084015160a08488015260e0870190611fe7565b6060840151868203603f190160a0880152611fe7565b910151151560c08401526001600160a01b03909416910152565b604051906125fd8261224f565b8160008152600060208201526040805191612617836121f0565b60008352600060208401520152565b90816020910312610259575180151581036102595790565b9091602061270461267482850135957f0000000000000000000000000000000000000000000000000000000000000000906127f0565b61268461052060a0870187612361565b80511580159791906127ab576126de91606891604051948592888401526001600160401b0360c01b9060c01b1660408301523360488301526126ce81518092898686019101611fc4565b810103604881018452018261226a565b935b84956000146127a3576002905b610df76126f9826122bb565b916080810190612361565b6004549093906001600160a01b03168061271d57505050565b61274a839161275c9360405180958194829363043a78eb60e01b8452604060048501526044840190611fe7565b8281036003190160248401528a611fe7565b03915afa80156127975761276e575050565b8161278d92903d10612790575b612785818361226a565b810190612626565b50565b503d61277b565b6040513d6000823e3d90fd5b6001906126ed565b509060405191848301526001600160401b0360c01b9060c01b166040820152602881526127d78161224f565b936126e0565b8181029291811591840414171561231357565b81156127fa570490565b634e487b7160e01b600052601260045260246000fd5b6000546001600160a01b0390811681612827612aab565b16036128305750565b60249061283b612aab565b60405163118cdaa760e01b815291166004820152fd5b916001600160a01b0380841692831561291857169283156128ff5760009083825260056020526040822054908382106128cd575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260058652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b60075490828201809211612313576007919091556001600160a01b0316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461298e5780600754036007555b604051908152a3565b8484526005825260408420818154019055612985565b91906001600160a01b0383169081156129185781600052600560205260406000205493818510612a1657506020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260009596858752600584520360408620558060075403600755604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481018590526044810191909152606490fd5b90612a6f5750805115612a5d57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580612aa2575b612a80575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612a78565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612af9575b15612af5576013193601368111612313573560601c90565b3390565b506014361015612add56fea264697066735822122016f6430c9780fa241c771a84c0265080e6392f7a92da868ea3f2b598f080307a64736f6c63430008140033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee36e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000006edce65403992e310a62460808c4b910d972f10f0000000000000000000000000319aefbf6206142b4be626b395e0dbbe8583e5c00000000000000000000000070296897e52ac0a3737a11b95f8ba294cbe67f6200000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000065365636f6e64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065345434f4e440000000000000000000000000000000000000000000000000000