[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_minGasToStore", "type": "uint256" }, { "internalType": "address", "name": "_layerZeroEndpoint", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "_hashedPayload", "type": "bytes32" } ], "name": "CreditCleared", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "_hashedPayload", "type": "bytes32" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "CreditStored", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "_reason", "type": "bytes" } ], "name": "MessageFailed", "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": true, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": true, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": true, "internalType": "address", "name": "_toAddress", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "ReceiveFromChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_payloadHash", "type": "bytes32" } ], "name": "RetryMessageSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "SendToChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_dstChainIdToBatchLimit", "type": "uint256" } ], "name": "SetDstChainIdToBatchLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_dstChainIdToTransferGas", "type": "uint256" } ], "name": "SetDstChainIdToTransferGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "_type", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_minDstGas", "type": "uint256" } ], "name": "SetMinDstGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_minGasToTransferAndStore", "type": "uint256" } ], "name": "SetMinGasToTransferAndStore", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "precrime", "type": "address" } ], "name": "SetPrecrime", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "SetTrustedRemote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "SetTrustedRemoteAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "DEFAULT_PAYLOAD_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FUNCTION_TYPE_SEND", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cashout", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "clearCredits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "dstChainIdToBatchLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "dstChainIdToTransferGas", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendBatchFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "failedMessages", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" } ], "name": "getConfig", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" } ], "name": "getTrustedRemoteAddress", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "isTrustedRemote", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lzEndpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "minDstGasLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minGasToTransferAndStore", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "nonblockingLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "payloadSizeLimitLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "precrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "address payable", "name": "_refundAddress", "type": "address" }, { "internalType": "address", "name": "_zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "sendBatchFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address payable", "name": "_refundAddress", "type": "address" }, { "internalType": "address", "name": "_zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "sendFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_dstChainIdToBatchLimit", "type": "uint256" } ], "name": "setDstChainIdToBatchLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_dstChainIdToTransferGas", "type": "uint256" } ], "name": "setDstChainIdToTransferGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint16", "name": "_packetType", "type": "uint16" }, { "internalType": "uint256", "name": "_minGas", "type": "uint256" } ], "name": "setMinDstGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minGasToTransferAndStore", "type": "uint256" } ], "name": "setMinGasToTransferAndStore", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_size", "type": "uint256" } ], "name": "setPayloadSizeLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_precrime", "type": "address" } ], "name": "setPrecrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "setTrustedRemote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "setTrustedRemoteAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "storedCredits", "outputs": [ { "internalType": "uint16", "name": "srcChainId", "type": "uint16" }, { "internalType": "address", "name": "toAddress", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "bool", "name": "creditsRemain", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
610100604052602160a08181529062004bb660c03960119062000023908262000207565b5060006012553480156200003657600080fd5b5060405162004bd738038062004bd7833981016040819052620000599162000385565b838383838383838380806200006e3362000110565b6001600160a01b031660805250600160065581620000de5760405162461bcd60e51b8152602060048201526024808201527f6d696e476173546f5472616e73666572416e6453746f7265206d7573742062656044820152630203e20360e41b606482015260840160405180910390fd5b50600755600b620000f0838262000207565b50600c620000ff828262000207565b50505050505050505050506200041a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018b57607f821691505b602082108103620001ac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000202576000816000526020600020601f850160051c81016020861015620001dd5750805b601f850160051c820191505b81811015620001fe57828155600101620001e9565b5050505b505050565b81516001600160401b0381111562000223576200022362000160565b6200023b8162000234845462000176565b84620001b2565b602080601f8311600181146200027357600084156200025a5750858301515b600019600386901b1c1916600185901b178555620001fe565b600085815260208120601f198616915b82811015620002a45788860151825594840194600190910190840162000283565b5085821015620002c35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082601f830112620002e557600080fd5b81516001600160401b038082111562000302576200030262000160565b604051601f8301601f19908116603f011681019082821181831017156200032d576200032d62000160565b81604052838152602092508660208588010111156200034b57600080fd5b600091505b838210156200036f578582018301518183018401529082019062000350565b6000602085830101528094505050505092915050565b600080600080608085870312156200039c57600080fd5b84516001600160401b0380821115620003b457600080fd5b620003c288838901620002d3565b95506020870151915080821115620003d957600080fd5b50620003e887828801620002d3565b60408701516060880151919550935090506001600160a01b03811681146200040f57600080fd5b939692955090935050565b6080516147486200046e600039600081816108e901528181610ae401528181610de80152818161106c0152818161121701528181611c1501528181612082015281816121b5015261303b01526147486000f3fe6080604052600436106103265760003560e01c806384054d3d116101ae578063baf3292d116100eb578063df2a5b3b1161008f578063f23536411161006c578063f235364114610a54578063f2fde38b14610a74578063f5ecbdbc14610a94578063fa25f9b614610ab457005b8063df2a5b3b146109f4578063e985e9c514610a14578063eb8d72b714610a3457005b8063c87b56dd116100c8578063c87b56dd14610981578063cbed8b9c146109a1578063d12473a5146109c1578063d1deba1f146109e157005b8063baf3292d1461092b578063c30f4a5a1461094b578063c44618341461096b57005b80639f38369a11610152578063ab3ffb931161012f578063ab3ffb931461089c578063af3fb21c146108af578063b353aaa7146108d7578063b88d4fde1461090b57005b80639f38369a1461083c578063a22cb4651461085c578063a6c3d1651461087c57005b80638ffa1f2a1161018b5780638ffa1f2a146107c7578063950c8a74146107e757806395d89b41146108075780639ea5d6b11461081c57005b806384054d3d1461075c5780638cfd8f5c146107715780638da5cb5b146107a957005b80633d8b38f61161027c5780635b8c41e6116102205780636a627842116101fd5780636a627842146106e757806370a0823114610707578063715018a6146107275780637533d7881461073c57005b80635b8c41e6146106585780636352211e146106a757806366ad5c8a146106c757005b806342d65a8d1161025957806342d65a8d146105e257806348288190146106025780634ac3f4ff14610618578063519056361461064557005b80633d8b38f6146105755780633f1f4fa41461059557806342842e0e146105c257005b80630b4cad4c116102e357806318160ddd116102c057806318160ddd1461047e57806322a3ecf91461049d57806323b872dd146105205780632a205e3d1461054057005b80630b4cad4c1461041e5780630df374831461043e57806310ddb1371461045e57005b80621d35671461032f57806301ffc9a71461034f57806306fdde031461038457806307e0db17146103a6578063081812fc146103c6578063095ea7b3146103fe57005b3661032d57005b005b34801561033b57600080fd5b5061032d61034a366004613606565b610ae1565b34801561035b57600080fd5b5061036f61036a3660046136af565b610d12565b60405190151581526020015b60405180910390f35b34801561039057600080fd5b50610399610d35565b60405161037b919061371c565b3480156103b257600080fd5b5061032d6103c136600461372f565b610dc7565b3480156103d257600080fd5b506103e66103e136600461374a565b610e50565b6040516001600160a01b03909116815260200161037b565b34801561040a57600080fd5b5061032d610419366004613783565b610e77565b34801561042a57600080fd5b5061032d61043936600461374a565b610f8c565b34801561044a57600080fd5b5061032d6104593660046137af565b61102c565b34801561046a57600080fd5b5061032d61047936600461372f565b61104b565b34801561048a57600080fd5b506012545b60405190815260200161037b565b3480156104a957600080fd5b506104f16104b836600461374a565b600a6020526000908152604090208054600182015460029092015461ffff821692620100009092046001600160a01b0316919060ff1684565b6040805161ffff90951685526001600160a01b039093166020850152918301521515606082015260800161037b565b34801561052c57600080fd5b5061032d61053b3660046137cb565b6110a3565b34801561054c57600080fd5b5061056061055b3660046138e7565b6110eb565b6040805192835260208301919091520161037b565b34801561058157600080fd5b5061036f610590366004613975565b611111565b3480156105a157600080fd5b5061048f6105b036600461372f565b60036020526000908152604090205481565b3480156105ce57600080fd5b5061032d6105dd3660046137cb565b6111dd565b3480156105ee57600080fd5b5061032d6105fd366004613975565b6111f8565b34801561060e57600080fd5b5061048f60075481565b34801561062457600080fd5b5061048f61063336600461372f565b60086020526000908152604090205481565b61032d6106533660046139c7565b61127e565b34801561066457600080fd5b5061048f610673366004613a80565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b3480156106b357600080fd5b506103e66106c236600461374a565b611295565b3480156106d357600080fd5b5061032d6106e2366004613606565b6112f5565b3480156106f357600080fd5b5061032d610702366004613add565b6113d1565b34801561071357600080fd5b5061048f610722366004613add565b611464565b34801561073357600080fd5b5061032d6114ea565b34801561074857600080fd5b5061039961075736600461372f565b6114fe565b34801561076857600080fd5b5061032d611598565b34801561077d57600080fd5b5061048f61078c366004613afa565b600260209081526000928352604080842090915290825290205481565b3480156107b557600080fd5b506000546001600160a01b03166103e6565b3480156107d357600080fd5b5061032d6107e2366004613b2d565b6115dd565b3480156107f357600080fd5b506004546103e6906001600160a01b031681565b34801561081357600080fd5b50610399611825565b34801561082857600080fd5b5061032d6108373660046137af565b611834565b34801561084857600080fd5b5061039961085736600461372f565b6118eb565b34801561086857600080fd5b5061032d610877366004613b61565b611a01565b34801561088857600080fd5b5061032d610897366004613975565b611a10565b61032d6108aa366004613c1a565b611a99565b3480156108bb57600080fd5b506108c4600181565b60405161ffff909116815260200161037b565b3480156108e357600080fd5b506103e67f000000000000000000000000000000000000000000000000000000000000000081565b34801561091757600080fd5b5061032d610926366004613ccf565b611aa8565b34801561093757600080fd5b5061032d610946366004613add565b611b26565b34801561095757600080fd5b5061032d610966366004613d3a565b611b7c565b34801561097757600080fd5b5061048f61271081565b34801561098d57600080fd5b5061039961099c36600461374a565b611b90565b3480156109ad57600080fd5b5061032d6109bc366004613d82565b611bf6565b3480156109cd57600080fd5b5061032d6109dc3660046137af565b611c8b565b61032d6109ef366004613606565b611d3b565b348015610a0057600080fd5b5061032d610a0f366004613df0565b611f51565b348015610a2057600080fd5b5061036f610a2f366004613e2c565b611fbb565b348015610a4057600080fd5b5061032d610a4f366004613975565b611fe9565b348015610a6057600080fd5b50610560610a6f366004613e65565b612043565b348015610a8057600080fd5b5061032d610a8f366004613add565b61210e565b348015610aa057600080fd5b50610399610aaf366004613ede565b612184565b348015610ac057600080fd5b5061048f610acf36600461372f565b60096020526000908152604090205481565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610b5e5760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526001602052604081208054610b7c90613f2b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba890613f2b565b8015610bf55780601f10610bca57610100808354040283529160200191610bf5565b820191906000526020600020905b815481529060010190602001808311610bd857829003601f168201915b50505050509050805186869050148015610c10575060008151115b8015610c38575080516020820120604051610c2e9088908890613f65565b6040518091039020145b610c935760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b6064820152608401610b55565b610d098787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061223792505050565b50505050505050565b60006001600160e01b031982161580610d2f5750610d2f826122b0565b92915050565b6060600b8054610d4490613f2b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7090613f2b565b8015610dbd5780601f10610d9257610100808354040283529160200191610dbd565b820191906000526020600020905b815481529060010190602001808311610da057829003601f168201915b5050505050905090565b610dcf6122cd565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b158015610e3557600080fd5b505af1158015610e49573d6000803e3d6000fd5b5050505050565b6000610e5b82612327565b506000908152600f60205260409020546001600160a01b031690565b6000610e8282611295565b9050806001600160a01b0316836001600160a01b031603610eef5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610b55565b336001600160a01b0382161480610f0b5750610f0b8133611fbb565b610f7d5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610b55565b610f878383612377565b505050565b610f946122cd565b60008111610ff05760405162461bcd60e51b8152602060048201526024808201527f6d696e476173546f5472616e73666572416e6453746f7265206d7573742062656044820152630203e20360e41b6064820152608401610b55565b60078190556040518181527ffebbc4f8bb9ec2313950c718d43123124b15778efda4c1f1d529de2995b4f34d906020015b60405180910390a150565b6110346122cd565b61ffff909116600090815260036020526040902055565b6110536122cd565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb13790602401610e1b565b60405162461bcd60e51b815260206004820152601c60248201527f4e4f4d49533a20546f6b656e732061726520736f756c20626f756e64000000006044820152606401610b55565b60008061110387876110fc886123e5565b8787612043565b915091509550959350505050565b61ffff83166000908152600160205260408120805482919061113290613f2b565b80601f016020809104026020016040519081016040528092919081815260200182805461115e90613f2b565b80156111ab5780601f10611180576101008083540402835291602001916111ab565b820191906000526020600020905b81548152906001019060200180831161118e57829003601f168201915b5050505050905083836040516111c2929190613f65565b60405180910390208180519060200120149150509392505050565b610f8783838360405180602001604052806000815250611aa8565b6112006122cd565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061125090869086908690600401613f9e565b600060405180830381600087803b15801561126a57600080fd5b505af1158015610d09573d6000803e3d6000fd5b610d0987878761128d886123e5565b878787612430565b6000818152600d60205260408120546001600160a01b031680610d2f5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610b55565b3330146113535760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b6064820152608401610b55565b6113c98686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506125c092505050565b505050505050565b6113d96122cd565b6113e281611464565b1561143e5760405162461bcd60e51b815260206004820152602660248201527f4e4f4d49533a20596f75206d6179206f6e6c79206d696e74203120706572206160448201526518d8dbdd5b9d60d21b6064820152608401610b55565b611449816001612757565b60016012600082825461145c9190613fd2565b909155505050565b60006001600160a01b0382166114ce5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610b55565b506001600160a01b03166000908152600e602052604090205490565b6114f26122cd565b6114fc60006128c4565b565b6001602052600090815260409020805461151790613f2b565b80601f016020809104026020016040519081016040528092919081815260200182805461154390613f2b565b80156115905780601f1061156557610100808354040283529160200191611590565b820191906000526020600020905b81548152906001019060200180831161157357829003601f168201915b505050505081565b6115a06122cd565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f193505050501580156115da573d6000803e3d6000fd5b50565b6115e5612914565b80516020808301919091206000818152600a90925260409091206002015460ff166116465760405162461bcd60e51b81526020600482015260116024820152701b9bc818dc99591a5d1cc81cdd1bdc9959607a1b6044820152606401610b55565b60008280602001905181019061165c919061402a565b6000848152600a6020526040812080546001909101549294509092506116989161ffff8216916201000090046001600160a01b0316908561296d565b6000848152600a6020526040902060010154909150811161170d5760405162461bcd60e51b815260206004820152602960248201527f6e6f7420656e6f7567682067617320746f2070726f6365737320637265646974604482015268103a3930b739b332b960b91b6064820152608401610b55565b81518103611784576000838152600a602052604080822080546001600160b01b031916815560018101929092556002909101805460ff19169055517fd7be02b8dd0d27bd0517a9cb4d7469ce27df4313821ae5ec1ff69acc594ba233906117779085815260200190565b60405180910390a1611818565b604080516080810182526000858152600a6020818152848320805461ffff80821687526001600160a01b03620100008084048216868a019081529989018b8152600160608b01818152998f90529790965297519851169096026001600160b01b03199091169690951695909517939093178455915191830191909155516002909101805491151560ff199092169190911790555b5050506115da6001600655565b6060600c8054610d4490613f2b565b61183c6122cd565b600081116118975760405162461bcd60e51b815260206004820152602260248201527f647374436861696e4964546f42617463684c696d6974206d757374206265203e604482015261020360f41b6064820152608401610b55565b61ffff8216600081815260086020908152604091829020849055815192835282018390527f7315f7654d594ead24a30160ed9ba2d23247f543016b918343591e93d7afdb6d91015b60405180910390a15050565b61ffff811660009081526001602052604081208054606092919061190e90613f2b565b80601f016020809104026020016040519081016040528092919081815260200182805461193a90613f2b565b80156119875780601f1061195c57610100808354040283529160200191611987565b820191906000526020600020905b81548152906001019060200180831161196a57829003601f168201915b5050505050905080516000036119df5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610b55565b6119fa6000601483516119f291906140e4565b8391906129ac565b9392505050565b611a0c338383612ab9565b5050565b611a186122cd565b818130604051602001611a2d939291906140f7565b60408051601f1981840301815291815261ffff8516600090815260016020522090611a589082614165565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051611a8c93929190613f9e565b60405180910390a1505050565b610d0987878787878787612430565b611ab23383612b87565b611b145760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610b55565b611b2084848484612be5565b50505050565b611b2e6122cd565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b90602001611021565b611b846122cd565b6011611a0c8282614165565b6060611b9b82612327565b6000611ba5612c18565b90506000815111611bc557604051806020016040528060008152506119fa565b80611bcf84612c27565b604051602001611be0929190614224565b6040516020818303038152906040529392505050565b611bfe6122cd565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90611c529088908890889088908890600401614253565b600060405180830381600087803b158015611c6c57600080fd5b505af1158015611c80573d6000803e3d6000fd5b505050505050505050565b611c936122cd565b60008111611cef5760405162461bcd60e51b815260206004820152602360248201527f647374436861696e4964546f5472616e73666572476173206d7573742062652060448201526203e20360ec1b6064820152608401610b55565b61ffff8216600081815260096020908152604091829020849055815192835282018390527fc46df2983228ac2d9754e94a0d565e6671665dc8ad38602bc8e544f0685a29fb91016118df565b61ffff86166000908152600560205260408082209051611d5e9088908890613f65565b90815260408051602092819003830190206001600160401b03871660009081529252902054905080611dde5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b6064820152608401610b55565b808383604051611def929190613f65565b604051809103902014611e4e5760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b6064820152608401610b55565b61ffff87166000908152600560205260408082209051611e719089908990613f65565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252611f09918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506125c092505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051611f4095949392919061428c565b60405180910390a150505050505050565b611f596122cd565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611a8c565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205460ff1690565b611ff16122cd565b61ffff8316600090815260016020526040902061200f8284836142c7565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051611a8c93929190613f9e565b6000806000868660405160200161205b9291906143c2565b60408051601f198184030181529082905263040a7bb160e41b825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906120bf908b90309086908b908b906004016143f0565b6040805180830381865afa1580156120db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ff9190614444565b92509250509550959350505050565b6121166122cd565b6001600160a01b03811661217b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b55565b6115da816128c4565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015612204573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261222c9190810190614468565b90505b949350505050565b60008061229a5a60966366ad5c8a60e01b8989898960405160240161225f949392919061449c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612cb9565b91509150816113c9576113c98686868685612d43565b60006001600160e01b031982161580610d2f5750610d2f82612de0565b6000546001600160a01b031633146114fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b55565b61233081612e20565b6115da5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610b55565b6000818152600f6020526040902080546001600160a01b0319166001600160a01b03841690811790915581906123ac82611295565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061241f5761241f6144da565b602090810291909101015292915050565b60008451116124775760405162461bcd60e51b8152602060048201526013602482015272746f6b656e4964735b5d20697320656d70747960681b6044820152606401610b55565b83516001148061249b575061ffff8616600090815260086020526040902054845111155b6124f25760405162461bcd60e51b815260206004820152602260248201527f62617463682073697a65206578636565647320647374206261746368206c696d6044820152611a5d60f21b6064820152608401610b55565b600085856040516020016125079291906143c2565b604051602081830303815290604052905061254c876001848851600960008d61ffff1661ffff1681526020019081526020016000205461254791906144f0565b612e3d565b61255a878286868634612f12565b856040516125689190614507565b6040518091039020886001600160a01b03168861ffff167fe1b87c47fdeb4f9cbadbca9df3af7aba453bb6e501075d0440d88125b711522a886040516125ae9190614523565b60405180910390a45050505050505050565b600080828060200190518101906125d7919061402a565b6014820151919350915060006125ef8883838661296d565b905082518110156126c35784516020808701919091206040805160808101825261ffff808d1682526001600160a01b038088168387019081528385018881526001606086018181526000898152600a909a529887902095518654935190941662010000026001600160b01b03199093169390941692909217178355519082015592516002909301805493151560ff199094169390931790925590517f10e0b70d256bccc84b7027506978bd8b68984a870788b93b479def144c839ad7906126b99083908990614536565b60405180910390a1505b816001600160a01b0316876040516126db9190614507565b60405180910390208961ffff167f5b821db8a46f8ecbe1941ba2f51cfeea9643268b56631f70d45e2a745d990265866040516127179190614523565b60405180910390a460005b8351811015611c805761274f8984868481518110612742576127426144da565b60200260200101516130b7565b600101612722565b6001600160a01b0382166127ad5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610b55565b6127b681612e20565b156128035760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b55565b61280c81612e20565b156128595760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610b55565b6001600160a01b0382166000818152600e6020908152604080832080546001019055848352600d90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600654036129665760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b55565b6002600655565b6000825b825181101561222c576007545a1061222c5761299a8686858481518110612742576127426144da565b806129a48161454f565b915050612971565b6060816129ba81601f613fd2565b10156129f95760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610b55565b612a038284613fd2565b84511015612a475760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610b55565b606082158015612a665760405191506000825260208201604052612ab0565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612a9f578051835260209283019201612a87565b5050858452601f01601f1916604052505b50949350505050565b816001600160a01b0316836001600160a01b031603612b1a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610b55565b6001600160a01b03838116600081815260106020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600080612b9383611295565b9050806001600160a01b0316846001600160a01b03161480612bba5750612bba8185611fbb565b8061222f5750836001600160a01b0316612bd384610e50565b6001600160a01b031614949350505050565b612bf084848461310c565b612bfc84848484613270565b611b205760405162461bcd60e51b8152600401610b5590614568565b606060118054610d4490613f2b565b60606000612c348361336e565b60010190506000816001600160401b03811115612c5357612c5361380c565b6040519080825280601f01601f191660200182016040528015612c7d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612c8757509392505050565b6000606060008060008661ffff166001600160401b03811115612cde57612cde61380c565b6040519080825280601f01601f191660200182016040528015612d08576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612d2a578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612d749190614507565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612dd190879087908790879087906145ba565b60405180910390a15050505050565b60006001600160e01b031982166380ac58cd60e01b1480612e1157506001600160e01b03198216635b5e139f60e01b145b80610d2f5750610d2f82613446565b6000908152600d60205260409020546001600160a01b0316151590565b6000612e488361347b565b61ffff80871660009081526002602090815260408083209389168352929052205490915080612eb95760405162461bcd60e51b815260206004820152601a60248201527f4c7a4170703a206d696e4761734c696d6974206e6f74207365740000000000006044820152606401610b55565b612ec38382613fd2565b8210156113c95760405162461bcd60e51b815260206004820152601b60248201527f4c7a4170703a20676173206c696d697420697320746f6f206c6f7700000000006044820152606401610b55565b61ffff861660009081526001602052604081208054612f3090613f2b565b80601f0160208091040260200160405190810160405280929190818152602001828054612f5c90613f2b565b8015612fa95780601f10612f7e57610100808354040283529160200191612fa9565b820191906000526020600020905b815481529060010190602001808311612f8c57829003601f168201915b50505050509050805160000361301a5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b6064820152608401610b55565b6130258787516134d7565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c580310090849061307c908b9086908c908c908c908c9060040161460c565b6000604051808303818588803b15801561309557600080fd5b505af11580156130a9573d6000803e3d6000fd5b505050505050505050505050565b6130c081612e20565b15806130ec57506130d081612e20565b80156130ec5750306130e182611295565b6001600160a01b0316145b6130f557600080fd5b6130fe81612e20565b610f8757610f878282613548565b826001600160a01b031661311f82611295565b6001600160a01b0316146131455760405162461bcd60e51b8152600401610b5590614673565b6001600160a01b0382166131a75760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610b55565b826001600160a01b03166131ba82611295565b6001600160a01b0316146131e05760405162461bcd60e51b8152600401610b5590614673565b6000818152600f6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652600e8552838620805460001901905590871680865283862080546001019055868652600d90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006001600160a01b0384163b1561336657604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906132b49033908990889088906004016146b8565b6020604051808303816000875af19250505080156132ef575060408051601f3d908101601f191682019092526132ec918101906146f5565b60015b61334c573d80801561331d576040519150601f19603f3d011682016040523d82523d6000602084013e613322565b606091505b5080516000036133445760405162461bcd60e51b8152600401610b5590614568565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061222f565b50600161222f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106133ad5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106133d9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106133f757662386f26fc10000830492506010015b6305f5e100831061340f576305f5e100830492506008015b612710831061342357612710830492506004015b60648310613435576064830492506002015b600a8310610d2f5760010192915050565b60006001600160e01b031982166322bac5d960e01b1480610d2f57506301ffc9a760e01b6001600160e01b0319831614610d2f565b60006022825110156134cf5760405162461bcd60e51b815260206004820152601c60248201527f4c7a4170703a20696e76616c69642061646170746572506172616d73000000006044820152606401610b55565b506022015190565b61ffff8216600090815260036020526040812054908190036134f857506127105b80821115610f875760405162461bcd60e51b815260206004820181905260248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152606401610b55565b611a0c8282604051806020016040528060008152506135678383612757565b6135746000848484613270565b610f875760405162461bcd60e51b8152600401610b5590614568565b803561ffff811681146135a257600080fd5b919050565b60008083601f8401126135b957600080fd5b5081356001600160401b038111156135d057600080fd5b6020830191508360208285010111156135e857600080fd5b9250929050565b80356001600160401b03811681146135a257600080fd5b6000806000806000806080878903121561361f57600080fd5b61362887613590565b955060208701356001600160401b038082111561364457600080fd5b6136508a838b016135a7565b909750955085915061366460408a016135ef565b9450606089013591508082111561367a57600080fd5b5061368789828a016135a7565b979a9699509497509295939492505050565b6001600160e01b0319811681146115da57600080fd5b6000602082840312156136c157600080fd5b81356119fa81613699565b60005b838110156136e75781810151838201526020016136cf565b50506000910152565b600081518084526137088160208601602086016136cc565b601f01601f19169290920160200192915050565b6020815260006119fa60208301846136f0565b60006020828403121561374157600080fd5b6119fa82613590565b60006020828403121561375c57600080fd5b5035919050565b6001600160a01b03811681146115da57600080fd5b80356135a281613763565b6000806040838503121561379657600080fd5b82356137a181613763565b946020939093013593505050565b600080604083850312156137c257600080fd5b6137a183613590565b6000806000606084860312156137e057600080fd5b83356137eb81613763565b925060208401356137fb81613763565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561384a5761384a61380c565b604052919050565b60006001600160401b0382111561386b5761386b61380c565b50601f01601f191660200190565b600061388c61388784613852565b613822565b90508281528383830111156138a057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126138c857600080fd5b6119fa83833560208501613879565b803580151581146135a257600080fd5b600080600080600060a086880312156138ff57600080fd5b61390886613590565b945060208601356001600160401b038082111561392457600080fd5b61393089838a016138b7565b955060408801359450613945606089016138d7565b9350608088013591508082111561395b57600080fd5b50613968888289016138b7565b9150509295509295909350565b60008060006040848603121561398a57600080fd5b61399384613590565b925060208401356001600160401b038111156139ae57600080fd5b6139ba868287016135a7565b9497909650939450505050565b600080600080600080600060e0888a0312156139e257600080fd5b87356139ed81613763565b96506139fb60208901613590565b955060408801356001600160401b0380821115613a1757600080fd5b613a238b838c016138b7565b965060608a0135955060808a01359150613a3c82613763565b90935060a089013590613a4e82613763565b90925060c08901359080821115613a6457600080fd5b50613a718a828b016138b7565b91505092959891949750929550565b600080600060608486031215613a9557600080fd5b613a9e84613590565b925060208401356001600160401b03811115613ab957600080fd5b613ac5868287016138b7565b925050613ad4604085016135ef565b90509250925092565b600060208284031215613aef57600080fd5b81356119fa81613763565b60008060408385031215613b0d57600080fd5b613b1683613590565b9150613b2460208401613590565b90509250929050565b600060208284031215613b3f57600080fd5b81356001600160401b03811115613b5557600080fd5b61222f848285016138b7565b60008060408385031215613b7457600080fd5b8235613b7f81613763565b9150613b24602084016138d7565b60006001600160401b03821115613ba657613ba661380c565b5060051b60200190565b600082601f830112613bc157600080fd5b81356020613bd161388783613b8d565b8083825260208201915060208460051b870101935086841115613bf357600080fd5b602086015b84811015613c0f5780358352918301918301613bf8565b509695505050505050565b600080600080600080600060e0888a031215613c3557600080fd5b8735613c4081613763565b9650613c4e60208901613590565b955060408801356001600160401b0380821115613c6a57600080fd5b613c768b838c016138b7565b965060608a0135915080821115613c8c57600080fd5b613c988b838c01613bb0565b955060808a01359150613caa82613763565b819450613cb960a08b01613778565b935060c08a0135915080821115613a6457600080fd5b60008060008060808587031215613ce557600080fd5b8435613cf081613763565b93506020850135613d0081613763565b92506040850135915060608501356001600160401b03811115613d2257600080fd5b613d2e878288016138b7565b91505092959194509250565b600060208284031215613d4c57600080fd5b81356001600160401b03811115613d6257600080fd5b8201601f81018413613d7357600080fd5b61222f84823560208401613879565b600080600080600060808688031215613d9a57600080fd5b613da386613590565b9450613db160208701613590565b93506040860135925060608601356001600160401b03811115613dd357600080fd5b613ddf888289016135a7565b969995985093965092949392505050565b600080600060608486031215613e0557600080fd5b613e0e84613590565b9250613e1c60208501613590565b9150604084013590509250925092565b60008060408385031215613e3f57600080fd5b8235613e4a81613763565b91506020830135613e5a81613763565b809150509250929050565b600080600080600060a08688031215613e7d57600080fd5b613e8686613590565b945060208601356001600160401b0380821115613ea257600080fd5b613eae89838a016138b7565b95506040880135915080821115613ec457600080fd5b613ed089838a01613bb0565b9450613945606089016138d7565b60008060008060808587031215613ef457600080fd5b613efd85613590565b9350613f0b60208601613590565b92506040850135613f1b81613763565b9396929550929360600135925050565b600181811c90821680613f3f57607f821691505b602082108103613f5f57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff8416815260406020820152600061222c604083018486613f75565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d2f57610d2f613fbc565b600082601f830112613ff657600080fd5b815161400461388782613852565b81815284602083860101111561401957600080fd5b61222f8260208301602087016136cc565b6000806040838503121561403d57600080fd5b82516001600160401b038082111561405457600080fd5b61406086838701613fe5565b935060209150818501518181111561407757600080fd5b85019050601f8101861361408a57600080fd5b805161409861388782613b8d565b81815260059190911b820183019083810190888311156140b757600080fd5b928401925b828410156140d5578351825292840192908401906140bc565b80955050505050509250929050565b81810381811115610d2f57610d2f613fbc565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b601f821115610f87576000816000526020600020601f850160051c810160208610156141465750805b601f850160051c820191505b818110156113c957828155600101614152565b81516001600160401b0381111561417e5761417e61380c565b6141928161418c8454613f2b565b8461411d565b602080601f8311600181146141c757600084156141af5750858301515b600019600386901b1c1916600185901b1785556113c9565b600085815260208120601f198616915b828110156141f6578886015182559484019460019091019084016141d7565b50858210156142145787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600083516142368184602088016136cc565b83519083019061424a8183602088016136cc565b01949350505050565b600061ffff808816835280871660208401525084604083015260806060830152614281608083018486613f75565b979650505050505050565b61ffff861681526080602082015260006142aa608083018688613f75565b6001600160401b0394909416604083015250606001529392505050565b6001600160401b038311156142de576142de61380c565b6142f2836142ec8354613f2b565b8361411d565b6000601f841160018114614326576000851561430e5750838201355b600019600387901b1c1916600186901b178355610e49565b600083815260209020601f19861690835b828110156143575786850135825560209485019460019092019101614337565b50868210156143745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008151808452602080850194506020840160005b838110156143b75781518752958201959082019060010161439b565b509495945050505050565b6040815260006143d560408301856136f0565b82810360208401526143e78185614386565b95945050505050565b61ffff861681526001600160a01b038516602082015260a06040820181905260009061441e908301866136f0565b8415156060840152828103608084015261443881856136f0565b98975050505050505050565b6000806040838503121561445757600080fd5b505080516020909101519092909150565b60006020828403121561447a57600080fd5b81516001600160401b0381111561449057600080fd5b61222f84828501613fe5565b61ffff851681526080602082015260006144b960808301866136f0565b6001600160401b0385166040840152828103606084015261428181856136f0565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610d2f57610d2f613fbc565b600082516145198184602087016136cc565b9190910192915050565b6020815260006119fa6020830184614386565b82815260406020820152600061222f60408301846136f0565b60006001820161456157614561613fbc565b5060010190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b61ffff8616815260a0602082015260006145d760a08301876136f0565b6001600160401b038616604084015282810360608401526145f881866136f0565b9050828103608084015261443881856136f0565b61ffff8716815260c06020820152600061462960c08301886136f0565b828103604084015261463b81886136f0565b6001600160a01b0387811660608601528616608085015283810360a0850152905061466681856136f0565b9998505050505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906146eb908301846136f0565b9695505050505050565b60006020828403121561470757600080fd5b81516119fa8161369956fea26469706673582212208edee5cc0f14587f5e232dbc9393afa8f8e96a3db1d98c1efaac2c373f042eda64736f6c6343000818003368747470733a2f2f6170702e6e6f6d69732e78797a2f6170692f6e66742f69642f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000055370e0fbb5f5b8daed978ba1c075a499eb107b800000000000000000000000000000000000000000000000000000000000000054e4f4d495300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034e4f4d0000000000000000000000000000000000000000000000000000000000
0x000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000055370e0fbb5f5b8daed978ba1c075a499eb107b800000000000000000000000000000000000000000000000000000000000000054e4f4d495300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034e4f4d0000000000000000000000000000000000000000000000000000000000
----Decoded View------------Arg [0] : _name (string): NOMISArg [1] : _symbol (string): NOMArg [2] : _minGasToStore (uint256): 200000Arg [3] : _layerZeroEndpoint (address): 0x55370E0fBB5f5b8dAeD978BA1c075a499eB107B8
----Encoded View------------Arg [0] : 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000054e4f4d4953000000000000000000000000000000000000000000000000000000Arg [1] : 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034e4f4d0000000000000000000000000000000000000000000000000000000000Arg [2] : 0x0000000000000000000000000000000000000000000000000000000000030d40Arg [3] : 0x00000000000000000000000055370e0fbb5f5b8daed978ba1c075a499eb107b8