[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccountBalanceOverflow", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "ExceedsMaxBPS", "type": "error" }, { "inputs": [], "name": "ExceedsMaxNumberMinted", "type": "error" }, { "inputs": [], "name": "ExceedsMaxRecipients", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidLifeCycleStatus", "type": "error" }, { "inputs": [], "name": "InvalidMerkleProof", "type": "error" }, { "inputs": [], "name": "InvalidNumberOfDays", "type": "error" }, { "inputs": [], "name": "InvalidOwner", "type": "error" }, { "inputs": [], "name": "InvalidTierId", "type": "error" }, { "inputs": [], "name": "InvalidTimeToInitialize", "type": "error" }, { "inputs": [], "name": "InvalidTimeToUpdate", "type": "error" }, { "inputs": [], "name": "InvalidTimestamp", "type": "error" }, { "inputs": [], "name": "MintIsNotActive", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "NotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "Paused", "type": "error" }, { "inputs": [], "name": "RoyaltyOverflow", "type": "error" }, { "inputs": [], "name": "RoyaltyReceiverIsZeroAddress", "type": "error" }, { "inputs": [], "name": "TokenAlreadyExists", "type": "error" }, { "inputs": [], "name": "TokenDoesNotExist", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "UnableToUpdate", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnauthorizedForwarder", "type": "error" }, { "inputs": [], "name": "UndefinedFee", "type": "error" }, { "inputs": [], "name": "UndefinedLifeCycle", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "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": "isApproved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "atTimestamp", "type": "uint256" } ], "name": "EndOfLifeCycleSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "atTimestamp", "type": "uint256" } ], "name": "LifeCycleIsFinished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "atTimestamp", "type": "uint256" } ], "name": "LifeCycleIsLive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "atTimestamp", "type": "uint256" } ], "name": "LifeCycleIsPaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "atTimestamp", "type": "uint256" } ], "name": "LifeCycleIsUnpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "totalSeconds", "type": "uint256" } ], "name": "LifeCycleUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierIsOwned", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "tierToMint", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "discountedMintFee", "type": "uint256" } ], "name": "MintFeeForGenesisOwnerUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "mintFee", "type": "uint256" } ], "name": "MintFeeUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "state", "type": "bool" } ], "name": "MintStatusUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "RolesUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "StartOfLifeCycleUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "string", "name": "description", "type": "string" }, { "indexed": false, "internalType": "string", "name": "tierName", "type": "string" }, { "indexed": false, "internalType": "string[2]", "name": "images", "type": "string[2]" }, { "indexed": false, "internalType": "string[2]", "name": "animationURLs", "type": "string[2]" } ], "name": "TierDataURIUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "atTimeStamp", "type": "uint256" } ], "name": "TierSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "TokenLifeCycleFeeUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "currentTimeStamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentLifeCycle", "type": "uint256" } ], "name": "TokenLifeCycleUpdate", "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": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldValidator", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newValidator", "type": "address" } ], "name": "TransferValidatorUpdated", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "recipients", "type": "address[]" }, { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "internalType": "uint256", "name": "toTokenId", "type": "uint256" } ], "name": "emitMetadataUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "endOfLifeCycle", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "endOfLifeCycleToken", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "endOfLifeCycleTokenUnchecked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "finishLifeCycle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "genesisPublicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTransferValidationFunction", "outputs": [ { "internalType": "bytes4", "name": "functionSignature", "type": "bytes4" }, { "internalType": "bool", "name": "isViewFunction", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "getTransferValidator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "grantRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "hasAllRoles", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "hasAnyRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isItPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "isMintActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "isTierOwned", "outputs": [ { "internalType": "bool", "name": "result", "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": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "lifeCycle", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "lifeCycleStatus", "outputs": [ { "internalType": "enum TierLifeCycle.LifeCycleStatus", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "lifeCycleToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "merkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "mintFeeForTierOneOwner", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "mintFeeForTierTwoOwner", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "mintTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "numberMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "pauseLifeCycle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "pauseOfLifeCycle", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "publicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "renounceRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "resetDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "resetTransferValidator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "resetTrustedForwarder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "revokeRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "rolesOf", "outputs": [ { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "setEndOfLifeCycle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "uint256", "name": "numberOfMinutes", "type": "uint256" } ], "name": "setLifeCycle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "setLifeCycleToLive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "bytes32", "name": "root", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "setMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierToMint", "type": "uint256" }, { "internalType": "uint256", "name": "totalDiscount", "type": "uint256" } ], "name": "setMintFeeForTierOneOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierToMint", "type": "uint256" }, { "internalType": "uint256", "name": "totalDiscount", "type": "uint256" } ], "name": "setMintFeeForTierTwoOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "setMintStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setPausedStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "setStartOfLifeCycle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "tierName", "type": "string" }, { "internalType": "string[2]", "name": "images", "type": "string[2]" }, { "internalType": "string[2]", "name": "animationURLs", "type": "string[2]" } ], "name": "setTierDataURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "validator", "type": "address" } ], "name": "setTransferValidator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "setTrustedForwarder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "setUpdateFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "setWithdrawalAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "startOfLifeCycle", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "startOfLifeCycleToken", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "tierDataURI", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "tierName", "type": "string" }, { "internalType": "string[2]", "name": "images", "type": "string[2]" }, { "internalType": "string[2]", "name": "animationURLs", "type": "string[2]" } ], "internalType": "struct ERC721TLCDataURI.DataURI", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tierId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tiersOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenStatus", "outputs": [ { "internalType": "string", "name": "result", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "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": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "trustedForwarder", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "unpauseLifeCycle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" } ], "name": "updateFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "updateTokenFee", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "updateTokenLifeCycle", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tierId", "type": "uint256" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "name": "whitelistMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawalAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b506040518060400160405280600e81526020016d0455243373231544c432044726f760941b8152506040518060400160405280600b81526020016a0373231544c435f44524f560ac1b815250816003908161006b9190610281565b5060046100788282610281565b5050600160025550610089326100f0565b6100a673a000027a9b2802e1ddf7000061001e5c005a000061012c565b6100c573fa98afe34d343d0e63c4c801ebce01d9d4459eca6019610195565b600c80546001600160a01b03191673fa98afe34d343d0e63c4c801ebce01d9d4459eca179055610340565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b600754604080516001600160a01b03928316815291831660208301527fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac910160405180910390a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160601b0316612710808211156101b75763350a88b36000526004601cfd5b8260601b806101ce5763b4457eaa6000526004601cfd5b90911768aa4ec00224afccfdb7555050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061020a57607f821691505b60208210810361022a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561027c576000816000526020600020601f850160051c810160208610156102595750805b601f850160051c820191505b8181101561027857828155600101610265565b5050505b505050565b81516001600160401b0381111561029a5761029a6101e0565b6102ae816102a884546101f6565b84610230565b602080601f8311600181146102e357600084156102cb5750858301515b600019600386901b1c1916600185901b178555610278565b600085815260208120601f198616915b82811015610312578886015182559484019460019091019084016102f3565b50858210156103305787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b615ce38061034f6000396000f3fe6080604052600436106104e15760003560e01c806387391b2f11610281578063bea3c0b51161015a578063ddff6810116100cc578063f04e283e11610085578063f04e283e14610f5d578063f2bcd02214610f70578063f2fde38b14610f90578063f72054c614610fa3578063f75fb10414610fc3578063fee81cf414610fe357600080fd5b8063ddff681014610e9f578063e1baf3af14610ebf578063e985e9c514610edf578063eb50411e14610f15578063ee437dae14610f28578063eeddb65614610f3d57600080fd5b8063cca29e711161011e578063cca29e7114610e02578063d2cab05614610e22578063d564b04e14610e35578063d944ad2614610e4a578063da74222814610e5f578063dc6f5ecb14610e7f57600080fd5b8063bea3c0b514610d6d578063c204642c14610d8d578063c71f6c1d14610dad578063c87b56dd14610dcd578063cab1dfa614610ded57600080fd5b80639d5c8d44116101f3578063aad3ec96116101b7578063aad3ec9614610cad578063ac9650d814610ccd578063af14aa9314610cfa578063b01ce31f14610d1a578063b0cb054914610d3a578063b88d4fde14610d5a57600080fd5b80639d5c8d4414610bdd578063a0f8ae4714610c0a578063a22cb46514610c4d578063a486a60014610c6d578063a9fc664e14610c8d57600080fd5b8063937fdb7311610245578063937fdb7314610b0b578063941c73f214610b2b57806395d89b4114610b4b57806395eac10c14610b6057806398c9a24314610b9d5780639be021a114610bbd57600080fd5b806387391b2f14610a72578063887fee3114610a925780638a35ace314610ab25780638da5cb5b14610ad25780639012c4a814610aeb57600080fd5b806335081f3e116103be57806357df6ca3116103305780636ca2728c116102e95780636ca2728c146109bf57806370a08231146109df578063715018a6146109ff5780637755da0c14610a075780637da0a87714610a275780638462151c14610a4557600080fd5b806357df6ca3146109175780635e95210a1461092c578063630d76581461093f5780636352211e1461095f57806369fa06471461097f5780636ba335cc1461099f57600080fd5b80634a4ee7b1116103825780634a4ee7b1146108655780635138392e14610878578063514e62fc146108985780635231968c146108cf57806354d1f13d146108ef578063572b6c05146108f757600080fd5b806335081f3e146107d05780633c70b357146107f05780633ccfd60b1461081d57806342842e0e14610832578063449a52f81461084557600080fd5b806318712c211161045757806323b1a7ce1161041b57806323b1a7ce1461071057806323b872dd1461073057806325692962146107435780632a55205a1461074b5780632db115441461078a5780632de948071461079d57600080fd5b806318712c21146106665780631989b05b146106865780631c10893f146106a65780631cd64df4146106b957806321b8092e146106f057600080fd5b8063081812fc116104a9578063081812fc146105ad578063095ea7b3146105e5578063098144d4146105f85780630d705df61461061657806318160ddd1461063e578063183a4f6e1461065357600080fd5b806301ffc9a7146104e657806304634d8d1461051b578063047dfbe81461053d5780630637c8311461056b57806306fdde031461058b575b600080fd5b3480156104f257600080fd5b50610506610501366004614f25565b611016565b60405190151581526020015b60405180910390f35b34801561052757600080fd5b5061053b610536366004614f66565b61105c565b005b34801561054957600080fd5b5061055d610558366004614fa9565b611076565b604051908152602001610512565b34801561057757600080fd5b5061053b610586366004614fc2565b6110a5565b34801561059757600080fd5b506105a0611112565b6040516105129190615034565b3480156105b957600080fd5b506105cd6105c8366004614fa9565b6111a4565b6040516001600160a01b039091168152602001610512565b61053b6105f3366004615047565b6111e3565b34801561060457600080fd5b506007546001600160a01b03166105cd565b34801561062257600080fd5b506040805163657711f560e11b81526001602082015201610512565b34801561064a57600080fd5b5061055d6111f2565b61053b610661366004614fa9565b61120c565b34801561067257600080fd5b5061053b610681366004614fc2565b611219565b34801561069257600080fd5b5061053b6106a1366004614fc2565b61125d565b61053b6106b4366004615047565b6112e2565b3480156106c557600080fd5b506105066106d4366004615047565b638b78c6d8600c90815260009290925260209091205481161490565b3480156106fc57600080fd5b5061053b61070b366004615071565b6112f4565b34801561071c57600080fd5b5061053b61072b366004614fc2565b61131a565b61053b61073e36600461508c565b61138a565b61053b611495565b34801561075757600080fd5b5061076b610766366004614fc2565b6114e4565b604080516001600160a01b039093168352602083019190915201610512565b61053b610798366004614fa9565b611539565b3480156107a957600080fd5b5061055d6107b8366004615071565b638b78c6d8600c908152600091909152602090205490565b3480156107dc57600080fd5b5061055d6107eb366004614fa9565b6115d7565b3480156107fc57600080fd5b5061055d61080b366004614fa9565b6000908152600a602052604090205490565b34801561082957600080fd5b5061053b611615565b61053b61084036600461508c565b611638565b34801561085157600080fd5b5061053b610860366004615047565b611665565b61053b610873366004615047565b6116fb565b34801561088457600080fd5b5061055d610893366004614fa9565b61170d565b3480156108a457600080fd5b506105066108b3366004615047565b638b78c6d8600c90815260009290925260209091205416151590565b3480156108db57600080fd5b5061053b6108ea366004614fc2565b611765565b61053b6117e8565b34801561090357600080fd5b50610506610912366004615071565b611824565b34801561092357600080fd5b50610506611853565b61053b61093a366004614fa9565b611884565b34801561094b57600080fd5b5061050661095a366004615047565b6118e5565b34801561096b57600080fd5b506105cd61097a366004614fa9565b61190f565b34801561098b57600080fd5b5061050661099a366004614fa9565b61194d565b3480156109ab57600080fd5b5061053b6109ba366004614fa9565b61196e565b3480156109cb57600080fd5b5061055d6109da366004614fa9565b6119c7565b3480156109eb57600080fd5b5061055d6109fa366004615071565b6119ed565b61053b611a28565b348015610a1357600080fd5b5061053b610a22366004614fc2565b611a3a565b348015610a3357600080fd5b506008546001600160a01b03166105cd565b348015610a5157600080fd5b50610a65610a60366004615071565b611a81565b60405161051291906150c8565b348015610a7e57600080fd5b5061053b610a8d366004614fc2565b611b53565b348015610a9e57600080fd5b5061053b610aad366004614fa9565b611b9a565b348015610abe57600080fd5b5061055d610acd366004614fa9565b611c4e565b348015610ade57600080fd5b50638b78c6d819546105cd565b348015610af757600080fd5b5061055d610b06366004614fa9565b611c5e565b348015610b1757600080fd5b5061055d610b26366004614fa9565b611c80565b348015610b3757600080fd5b5061053b610b46366004614fc2565b611c8b565b348015610b5757600080fd5b506105a0611cd2565b348015610b6c57600080fd5b50610b90610b7b366004614fa9565b60009081526020819052604090205460ff1690565b6040516105129190615122565b348015610ba957600080fd5b5061053b610bb8366004614fc2565b611ce1565b348015610bc957600080fd5b5061053b610bd83660046151a3565b611cf6565b348015610be957600080fd5b50610bfd610bf8366004614fa9565b611dfc565b60405161051291906152d2565b348015610c1657600080fd5b5061055d610c25366004615047565b6001600160a01b03919091166000908152600960209081526040808320938352929052205490565b348015610c5957600080fd5b5061053b610c6836600461536d565b612160565b348015610c7957600080fd5b5061055d610c88366004614fa9565b6121b6565b348015610c9957600080fd5b5061053b610ca8366004615071565b6121cd565b348015610cb957600080fd5b5061053b610cc8366004615047565b6121e1565b348015610cd957600080fd5b50610ced610ce83660046153e2565b612283565b6040516105129190615423565b348015610d0657600080fd5b5061053b610d15366004614fa9565b6122a2565b348015610d2657600080fd5b506105a0610d35366004614fa9565b6122ff565b348015610d4657600080fd5b5061055d610d55366004614fa9565b612385565b61053b610d68366004615487565b612395565b348015610d7957600080fd5b5061053b610d88366004614fc2565b6123e9565b348015610d9957600080fd5b5061053b610da83660046154f5565b612430565b348015610db957600080fd5b5061053b610dc8366004614fa9565b61253a565b348015610dd957600080fd5b506105a0610de8366004614fa9565b61258b565b348015610df957600080fd5b5061053b612707565b348015610e0e57600080fd5b5061055d610e1d366004614fa9565b612727565b61053b610e30366004615540565b6128ba565b348015610e4157600080fd5b5061053b61296c565b348015610e5657600080fd5b5061053b6129a7565b348015610e6b57600080fd5b5061053b610e7a366004615071565b6129ba565b348015610e8b57600080fd5b5061055d610e9a366004614fa9565b6129e4565b348015610eab57600080fd5b5061055d610eba366004614fa9565b612ac4565b348015610ecb57600080fd5b50610a65610eda366004615071565b612bc5565b348015610eeb57600080fd5b50610506610efa36600461558b565b601c52670a5a2e7a000000006008526000526030600c205490565b61053b610f23366004614fa9565b612c76565b348015610f3457600080fd5b5061053b612d0b565b348015610f4957600080fd5b5061055d610f58366004614fa9565b612d28565b61053b610f6b366004615071565b612d45565b348015610f7c57600080fd5b50600c546105cd906001600160a01b031681565b61053b610f9e366004615071565b612d82565b348015610faf57600080fd5b5061055d610fbe366004614fa9565b612da9565b348015610fcf57600080fd5b5061055d610fde366004614fa9565b612dcf565b348015610fef57600080fd5b5061055d610ffe366004615071565b63389a75e1600c908152600091909152602090205490565b600063152a902d60e11b6001600160e01b0319831614806110475750632b435fdb60e21b6001600160e01b03198316145b80611056575061105682612df0565b92915050565b600261106781612e32565b6110718383612e65565b505050565b6006600a820181810460009081526001602052604081205490929091066028021c5b64ffffffffff1692915050565b81806000036110be576110be63907e751560e01b612eb0565b600a8111156110d7576110d763907e751560e01b612eb0565b60026110e281612e32565b6110eb84611c5e565b60000361110257611102635a7a35a360e01b612eb0565b61110c8484612eba565b50505050565b606060038054611121906155be565b80601f016020809104026020016040519081016040528092919081815260200182805461114d906155be565b801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050905090565b600081600052673ec412a9852d173d60c11b601c52602060002082018201805460601b6111d95763ceea21b66000526004601cfd5b6001015492915050565b6111ee338383612f88565b5050565b6000611207600254611202600190565b900390565b905090565b6112163382613029565b50565b8160018110806112295750600281115b1561123e5761123e63907e751560e01b612eb0565b600161124981612e32565b50506000918252600a602052604090912055565b81600381108061126d5750600781115b156112825761128263907e751560e01b612eb0565b600161128d81612e32565b60006112998585613035565b90506112ab6005600f87015b836130a8565b808560017f2de1deccd0d06349ac773396e6aeaaf00de02d0332bb1b990e5cc1994087551060405160405180910390a45050505050565b6112ea6130df565b6111ee82826130fa565b6112fc6130df565b600c80546001600160a01b0319166001600160a01b03831617905550565b600161132581612e32565b60018310806113345750600783115b156113495761134963907e751560e01b612eb0565b6113586005600a8501846130a8565b604051829084907f06255fba5f99bcc77a5d27ee1222dd110e196ad4cfba488e1fceccbec8dedc6890600090a3505050565b611395838383613106565b6000818152673ec412a9852d173d60c11b3317601c52602090208101810180546001600160a01b0394851694938416938116919082861483026113e75767ceea21b6a1148100831560021b526004601cfd5b856000528160010154925082331486331417611415576030600c205461141557634b6e7f186000526004601cfd5b821561142357600082600101555b85851818905550601c600c8181208054600019019055600084905220805460010163ffffffff811684026114665767ea553b3401336cea841560021b526004601cfd5b90558082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4505050565b60006202a3006001600160401b03164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600082815268aa4ec00224afccfdb76020526040812054606081901c91906127109083611518576020515490508060601c93505b606084901b1884600019829004811182023d3d3e9396930204935090915050565b8060038110806115495750600781115b1561155e5761155e63907e751560e01b612eb0565b8161156881612dcf565b60000361157f5761157f63e1e6c49960e01b612eb0565b826115898161194d565b61159d5761159d63fbfb610360e01b612eb0565b6115a5611853565b156115ba576115ba6313d0ff5960e31b612eb0565b6115c433856131ac565b6115cd84613213565b61110c3385613232565b60006116066005600f84015b600181901c600090815260209290925260409091205460079190911b6080161c90565b6001600160801b031692915050565b61161d6130df565b600c54611636906001600160a01b031662033450613290565b565b61164383838361138a565b813b1561107157611071838383604051806020016040528060008152506132ba565b808060000361167e5761167e63907e751560e01b612eb0565b600a8111156116975761169763907e751560e01b612eb0565b816116a181612dcf565b6000036116b8576116b863e1e6c49960e01b612eb0565b60016116c38161333e565b6116cb611853565b156116e0576116e06313d0ff5960e31b612eb0565b6116ea85856131ac565b6116f48585613232565b5050505050565b6117036130df565b6111ee8282613029565b600080611719836121b6565b905061172481611076565b61172d84612d28565b11156117535761174c61173f84612d28565b61174885611c80565b0190565b9392505050565b61174c61173f82611076565b50919050565b8160038110806117755750600781115b1561178a5761178a63907e751560e01b612eb0565b600161179581612e32565b60006117a18585613035565b90506117b16005601487016112a5565b808560027f2de1deccd0d06349ac773396e6aeaaf00de02d0332bb1b990e5cc1994087551060405160405180910390a45050505050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b60006118386008546001600160a01b031690565b6001600160a01b0316826001600160a01b0316149050919050565b60008052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765460011690565b8061188e8161190f565b6001600160a01b0316336001600160a01b0316146118b6576118b66349e27cff60e01b612eb0565b6118be611853565b156118d3576118d36313d0ff5960e31b612eb0565b6118dc82613371565b6111ee8261347d565b6000806118f184612bc5565b90506118fc81613535565b61190681846136d9565b50949350505050565b6000818152673ec412a9852d173d60c11b601c526020902081018101546001600160a01b0316806119485763ceea21b66000526004601cfd5b919050565b600881901c6000908152600b602052604081205460ff83161c600116611056565b80806000036119875761198763907e751560e01b612eb0565b600a8111156119a0576119a063907e751560e01b612eb0565b60026119ab81612e32565b6119b4836136f3565b61107160015b6119c26111f2565b613787565b6006601e820181810460009081526001602052604081205490929091066028021c611098565b600081611a0257638f4eb6046000526004601cfd5b673ec412a9852d173d60c11b601c528160005263ffffffff601c600c2054169050919050565b611a306130df565b61163660006137fc565b8180600003611a5357611a5363907e751560e01b612eb0565b600a811115611a6c57611a6c63907e751560e01b612eb0565b6002611a7781612e32565b61110c848461383a565b60606000611a8e836119ed565b90506000816001600160401b03811115611aaa57611aaa6155f2565b604051908082528060200260200182016040528015611ad3578160200160208202803683370190505b509050600060015b83821015611b4957611aec816138ad565b8015611b115750856001600160a01b0316611b068261190f565b6001600160a01b0316145b15611b4157808383611b228161561e565b945081518110611b3457611b34615637565b6020026020010181815250505b600101611adb565b5090949350505050565b8180600003611b6c57611b6c63907e751560e01b612eb0565b600a811115611b8557611b8563907e751560e01b612eb0565b6002611b9081612e32565b61110c84846138d1565b8080600003611bb357611bb363907e751560e01b612eb0565b600a811115611bcc57611bcc63907e751560e01b612eb0565b6001611bd781612e32565b6000611be28461194d565b611bee57506001611bf2565b5060005b600b6020908152600885901c60009081526040908190208054600160ff89161b18905551821515815285917f84b25fa3b33a853925f81a1a723eceeaf2079ce5dac7e75a85da6e59ab5f4596910160405180910390a250505050565b60006116066005600a84016115e3565b600181901c600090815260056020526040812054600783901b6080161c611606565b600061105682613a46565b8180600003611ca457611ca463907e751560e01b612eb0565b600a811115611cbd57611cbd63907e751560e01b612eb0565b6001611cc881612e32565b61110c8484613a63565b606060048054611121906155be565b6002611cec8161333e565b6110718383613787565b8880600003611d0f57611d0f63907e751560e01b612eb0565b600a811115611d2857611d2863907e751560e01b612eb0565b6002611d3381612e32565b611def8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c908190840183828082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b9081908401838280828437600092019190915250611de192508b91506156a59050565b611dea896156a5565b613b53565b5050505050505050505050565b611e04614e14565b60008281526006602052604090819020815160a08101909252805482908290611e2c906155be565b80601f0160208091040260200160405190810160405280929190818152602001828054611e58906155be565b8015611ea55780601f10611e7a57610100808354040283529160200191611ea5565b820191906000526020600020905b815481529060010190602001808311611e8857829003601f168201915b50505050508152602001600182018054611ebe906155be565b80601f0160208091040260200160405190810160405280929190818152602001828054611eea906155be565b8015611f375780601f10611f0c57610100808354040283529160200191611f37565b820191906000526020600020905b815481529060010190602001808311611f1a57829003601f168201915b50505050508152602001600282018054611f50906155be565b80601f0160208091040260200160405190810160405280929190818152602001828054611f7c906155be565b8015611fc95780601f10611f9e57610100808354040283529160200191611fc9565b820191906000526020600020905b815481529060010190602001808311611fac57829003601f168201915b5050509183525050604080518082019091526020909101906003830160026000835b8282101561208e578382018054612001906155be565b80601f016020809104026020016040519081016040528092919081815260200182805461202d906155be565b801561207a5780601f1061204f5761010080835404028352916020019161207a565b820191906000526020600020905b81548152906001019060200180831161205d57829003601f168201915b505050505081526020019060010190611feb565b50505090825250604080518082019091526020909101906005830160026000835b828210156121525783820180546120c5906155be565b80601f01602080910402602001604051908101604052809291908181526020018280546120f1906155be565b801561213e5780601f106121135761010080835404028352916020019161213e565b820191906000526020600020905b81548152906001019060200180831161212157829003601f168201915b5050505050815260200190600101906120af565b505050915250909392505050565b801515905081601c52670a5a2e7a0000000060085233600052806030600c2055806000528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206000a35050565b6000806121c283613c49565b61ffff169392505050565b60026121d881612e32565b6111ee82613c6b565b8060088110806121f15750600a81115b156122065761220663907e751560e01b612eb0565b8161221081612dcf565b6000036122275761222763e1e6c49960e01b612eb0565b6008546001600160a01b031633146122525760405163d79e123d60e01b815260040160405180910390fd5b61225a611853565b1561226f5761226f6313d0ff5960e31b612eb0565b61227984846131ac565b61110c8484613232565b606060016122908161333e565b61229a8484613cd4565b505092915050565b80806000036122bb576122bb63907e751560e01b612eb0565b600a8111156122d4576122d463907e751560e01b612eb0565b60026122df81612e32565b6122e883613d55565b6122f06111f2565b156110715761107160016119ba565b606061230a826138ad565b61231e5761231e63677510db60e11b612eb0565b600061232983613df5565b90508060000361235757505060408051808201909152600681526541637469766560d01b6020820152919050565b8060010361175f575050604080518082019091526008815267496e61637469766560c01b6020820152919050565b60006116066005601484016115e3565b6123a085858561138a565b833b156116f4576116f485858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132ba92505050565b81806000036124025761240263907e751560e01b612eb0565b600a81111561241b5761241b63907e751560e01b612eb0565b600261242681612e32565b61110c8484613e5b565b80806000036124495761244963907e751560e01b612eb0565b600a8111156124625761246263907e751560e01b612eb0565b8161246c81612dcf565b6000036124835761248363e1e6c49960e01b612eb0565b600161248e8161333e565b612496611853565b156124ab576124ab6313d0ff5960e31b612eb0565b60148511156124c4576124c46302253e6160e61b612eb0565b60005b6124f78787838181106124dc576124dc615637565b90506020020160208101906124f19190615071565b866131ac565b61252787878381811061250c5761250c615637565b90506020020160208101906125219190615071565b86613232565b6001018581106124c75750505050505050565b80806000036125535761255363907e751560e01b612eb0565b600a81111561256c5761256c63907e751560e01b612eb0565b600261257781612e32565b612582836000613a63565b6119b483613ece565b6060612596826138ad565b6125aa576125aa63677510db60e11b612eb0565b60006125b5836121b6565b9050600360008281526020819052604090205460ff1660068111156125dc576125dc61510c565b1480156125f157506125ed81611076565b4210155b806126315750600460008281526020819052604090205460ff16600681111561261c5761261c61510c565b148015612631575061262d81612da9565b4211155b806126715750600560008281526020819052604090205460ff16600681111561265c5761265c61510c565b148015612671575061266d816119c7565b4211155b156126e1576126ba61268284614003565b61268b856140b0565b612694866140fa565b6040516020016126a69392919061575b565b6040516020818303038152906040526141d0565b6040516020016126ca91906157ad565b604051602081830303815290604052915050919050565b6126ba6126ed84614003565b6126f6856140b0565b6040516020016126a69291906157f2565b60016127128161333e565b611216600880546001600160a01b0319169055565b600080612733836121b6565b905061273e816142b5565b50600360008281526020819052604090205460ff1660068111156127645761276461510c565b036127725761174c81611c5e565b600460008281526020819052604090205460ff1660068111156127975761279761510c565b03612824576127a581612da9565b421161281b5760006127bf6127b983612da9565b42900390565b90506127ca82612dcf565b81106127e1576127d982611c5e565b949350505050565b6127ea82612dcf565b811015612803576127d9826127fe84612da9565b61437e565b80600003612815575060009392505050565b50612824565b50600092915050565b600560008281526020819052604090205460ff1660068111156128495761284961510c565b0361175f57612857816119c7565b421161281b57600061286b6127b9836119c7565b905061287682612dcf565b8110612885576127d982611c5e565b61288e82612dcf565b8110156128a2576127d9826127fe846119c7565b806000036128b4575060009392505050565b5061175f565b8260018110806128ca5750600281115b156128df576128df63907e751560e01b612eb0565b836128e981612dcf565b6000036129005761290063e1e6c49960e01b612eb0565b8461290a8161194d565b61291e5761291e63fbfb610360e01b612eb0565b612926611853565b1561293b5761293b6313d0ff5960e31b612eb0565b61294533876131ac565b612951338787876143a9565b61295a86613213565b6129643387613232565b505050505050565b6129746130df565b600b602052600080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7680546001189055565b60026129b281612e32565b611216614435565b60016129c58161333e565b600880546001600160a01b0319166001600160a01b0384161790555050565b6000806129f0836121b6565b90506129fb8361448d565b50600360008281526020819052604090205460ff166006811115612a2157612a2161510c565b148015612a365750612a3281611076565b4210155b80612a765750600460008281526020819052604090205460ff166006811115612a6157612a6161510c565b148015612a765750612a7281612da9565b4211155b80612ab65750600560008281526020819052604090205460ff166006811115612aa157612aa161510c565b148015612ab65750612ab2816119c7565b4211155b1561175f5761174c8361170d565b600080612ad0836121b6565b9050612adb8361448d565b50600360008281526020819052604090205460ff166006811115612b0157612b0161510c565b148015612b165750612b1281611076565b4210155b80612b565750600460008281526020819052604090205460ff166006811115612b4157612b4161510c565b148015612b565750612b5281612da9565b4211155b80612b965750600560008281526020819052604090205460ff166006811115612b8157612b8161510c565b148015612b965750612b92816119c7565b4211155b1561175f57612ba481611076565b612bad84612d28565b1115612bbc5761174c83612d28565b61174c81611076565b60606000612bd283611a81565b9050600081516001600160401b03811115612bef57612bef6155f2565b604051908082528060200260200182016040528015612c18578160200160208202803683370190505b50905060005b8151811015612c6e57612c49838281518110612c3c57612c3c615637565b60200260200101516121b6565b828281518110612c5b57612c5b615637565b6020908102919091010152600101612c1e565b509392505050565b806003811080612c865750600781115b15612c9b57612c9b63907e751560e01b612eb0565b81612ca581612dcf565b600003612cbc57612cbc63e1e6c49960e01b612eb0565b82612cc68161194d565b612cda57612cda63fbfb610360e01b612eb0565b612ce2611853565b15612cf757612cf76313d0ff5960e31b612eb0565b612d0133856131ac565b6115cd338561462b565b6002612d1681612e32565b611216600068aa4ec00224afccfdb755565b600080612d3483613c49565b60101c64ffffffffff169392505050565b612d4d6130df565b63389a75e1600c52806000526020600c208054421115612d7557636f5e88186000526004601cfd5b60009055611216816137fc565b612d8a6130df565b8060601b612da057637448fbae6000526004601cfd5b611216816137fc565b60066014820181810460009081526001602052604081205490929091066028021c611098565b6006808204600090815260016020526040812054909183066028021c611098565b6000632483248360e11b6001600160e01b0319831614806110565750611056826301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b638b78c6d8600c5233600052806020600c20541661121657638b78c6d819543314611216576382b429006000526004601cfd5b6001600160601b031661271080821115612e875763350a88b36000526004601cfd5b8260601b80612e9e5763b4457eaa6000526004601cfd5b90911768aa4ec00224afccfdb7555050565b8060005260046000fd5b612ec3826146bf565b612ecc816147e1565b600160008381526020819052604090205460ff166006811115612ef157612ef161510c565b03612f1f576000828152602081905260409020805460ff19166002179055612f1f6001600a84015b83614815565b600260008381526020819052604090205460ff166006811115612f4457612f4461510c565b03612f5757612f576001600a8401612f19565b604051819083907f0bdde6339acf564fe3c2c80469ba4bd11a24e6fc4708e6f2d69ae6eeba18c89d90600090a35050565b60001960601c828116925083811693508160005283673ec412a9852d173d60c11b17601c5260206000208201820180548216915081612fcf5763ceea21b66000526004601cfd5b818514851517612ff557816000526030600c2054612ff557634b6e7f186000526004601cfd5b6001018390558183827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a450505050565b6111ee8282600061484a565b600061304083611c4e565b60000361305757613057635a7a35a360e01b612eb0565b6127108211156130715761307163b49de9a560e01b612eb0565b60006127108361308086611c4e565b61308a9190615830565b6130949190615847565b90506127d96130a285611c4e565b82900390565b826020528160011c60005260406000206001831660071b81546001600160801b038482841c188116831b8218845550505050505050565b638b78c6d819543314611636576382b429006000526004601cfd5b6111ee8282600161484a565b6001600160a01b03831615611071576001600160a01b03821615611071576007546001600160a01b0316156110715760075460405163657711f560e11b81523360048201526001600160a01b0385811660248301528481166044830152606482018490529091169063caee23ea9060840160006040518083038186803b15801561318f57600080fd5b505afa1580156131a3573d6000803e3d6000fd5b50505050505050565b6001600160a01b03821660009081526009602090815260408083208484529091529020546001036131e7576131e76371e6dc4b60e11b612eb0565b6001600160a01b0390911660009081526009602090815260408083209383529290522080546001019055565b61321c81611c4e565b156112165761121661322d82611c4e565b6148a3565b600061323d60025490565b600280546001019055905061325281836148bb565b61325c83826148f0565b4282827f834cc6b59b3cde68921a932284aba232def2a681a83c5c44f5d25e8f2ef4a28360405160405180910390a4505050565b600038600038478686f16111ee57816000526073600b5360ff6020536016600b47f06111ee573838fd5b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015613301578060c08401826020870160045afa505b60208360a48301601c860160008a5af1613324573d15613324573d6000843e3d83fd5b508060e01b8251146129645763d1a57ed66000526004601cfd5b638b78c6d81954331461121657638b78c6d8600c5233600052806020600c205416611216576382b429006000526004601cfd5b600061337c826121b6565b9050600360008281526020819052604090205460ff1660068111156133a3576133a361510c565b036133db576133bb6133b4836129e4565b6077190190565b4210156133d2576133d2633a938fbb60e21b612eb0565b6111ee8261490a565b600460008281526020819052604090205460ff1660068111156134005761340061510c565b03613429576134178261341283612da9565b614937565b6111ee8261342483612da9565b614976565b600560008281526020819052604090205460ff16600681111561344e5761344e61510c565b0361346d5761346082613412836119c7565b6111ee82613424836119c7565b6111ee6315bffde560e01b612eb0565b6000613488826121b6565b90506000603861349783612dcf565b6001600160601b0316901b6010426001600160601b0316901b83171790506134bf83826149d0565b4282847fd5f18f2c38a40d42ec1a76797250f41db861d63d0231672c18ee00ace1a1b2776134ec86612dcf565b60405190815260200160405180910390a46040518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a1505050565b601f196020825160008452604051600282106135c3578285018260051b8601815b858101518151118282141761356c578501613556565b81810361357b575050506135c3565b50805b8681015181511161359057860161357e565b8281036135b7575b82518251845282529185019190860190818310613598575050506135c3565b50908252838201526040015b6040515b8082146136d0576040820391508151848301516101808282031161363b5785820180518351106135fa5780518351825283525b5b8601818111613633578051888201805182811161361a575050506135fb565b5b818a01528901805182811161361b57508801526135fb565b5050506135c7565b81601f1681830160061c60051b018251825180821061365657905b825181811061366157905b80831061366a57915b835283528352518190835b5b88018051821161367657825b8a0180518310613682579250828110156136a3578051835182528352613675565b50508681018552818782011060061b85019450828552808786015282811160061b850194505050506135c7565b50509092525050565b6000806136e884846000614a01565b909590945092505050565b600460008281526020819052604090205460ff1660068111156137185761371861510c565b1461372d5761372d6315bffde560e01b612eb0565b6000818152602081905260409020805460ff191660031790556137576001601483015b6000614815565b604051429082907fa76b59bfe05a8c8bf83a040e84b15c912c5a4392996c72d7e42314a0b871d46490600090a350565b8082036137c6576040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7906020015b60405180910390a15050565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91016137ba565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b61384382614a65565b61384c82614a9f565b613855816147e1565b6000828152602081905260409020805460ff1916600517905561387c6001601e8401612f19565b604051819083907f7b6382a0857965531b719f2afdac97d46ad1162dd942a769f4dfac75a78a4e3990600090a35050565b6000818152673ec412a9852d173d60c11b601c52602090208101015460601b151590565b6138da82614ad4565b600a8110156138f3576138f36361d1b57b60e11b612eb0565b600061390082603c615830565b90506000808481526020819052604090205460ff1660068111156139265761392661510c565b03613952576000838152602081905260409020805460ff19166001908117909155613952908483614815565b600360008481526020819052604090205460ff1660068111156139775761397761510c565b036139bf57600061399361398a85611076565b61174886612dcf565b905060771981014210156139b1576139b1630eeecf2f60e31b612eb0565b6139bd60018584614815565b505b600460008481526020819052604090205460ff1660068111156139e4576139e461510c565b03613a14576139f283612da9565b4211613a0857613a08630eeecf2f60e31b612eb0565b613a1460018483614815565b604051819084907f50a308e5488cc3e0bfbaeb9d3c5021320754c019dbed91fc0f38db48a7c5025f90600090a3505050565b600080613a5283613c49565b60381c64ffffffffff169392505050565b613a6c826147a7565b600460008381526020819052604090205460ff166006811115613a9157613a9161510c565b03613ac157613a9f82612da9565b4211613ab557613ab5630eeecf2f60e31b612eb0565b613ac1600583836130a8565b600560008381526020819052604090205460ff166006811115613ae657613ae661510c565b03613b1657613af4826119c7565b4211613b0a57613b0a630eeecf2f60e31b612eb0565b613b16600583836130a8565b613b22600583836130a8565b604051819083907f306ffbf9e4b918b606371fdc8fee0a189ed3111e4b06542f0cc6cdac6f74673790600090a35050565b6040805160a08101825286815260208082018790528183018690526060820185905260808201849052600089815260069091529190912081518190613b9890826158b1565b5060208201516001820190613bad90826158b1565b5060408201516002820190613bc290826158b1565b506060820151613bd89060038301906002614e4e565b506080820151613bee9060058301906002614e4e565b50905050857f5bed3900db4167247da577537f9e0a36d4256f138c4469c29ea9f864f334de7f8686868686604051613c2a959493929190615970565b60405180910390a2613c3a6111f2565b156129645761296460016119ba565b6000818152673ec412a9852d173d60c11b601c52602090208101015460a01c90565b600754604080516001600160a01b03928316815291831660208301527fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac910160405180910390a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b606060206000528160205281613cea5760406000f35b60408260051b8085604037818101905b82518601604082018135602083018237600038833583305af4613d21573d6000803e3d6000fd5b8285526020850194503d81523d6000602083013e50503d01603f0167ffffffffffffffe016818310613cfa57604081016000f35b600260008281526020819052604090205460ff166006811115613d7a57613d7a61510c565b14613d8f57613d8f6315bffde560e01b612eb0565b613d9881611076565b421115613daf57613daf630eeecf2f60e31b612eb0565b600081815260208190526040808220805460ff1916600317905551429183917fe135c9a43f988f5c3b63d899e8eb745ac54437b69dd280927eb757f9893a8ab49190a350565b6000613e0082612ac4565b600003613e1f57613e10826129e4565b600003613e1f57506000919050565b613e2882612ac4565b1561194857613e36826129e4565b1561194857613e44826129e4565b421115613e5357506001919050565b506000919050565b613e6482614a65565b613e6d82614a9f565b613e76816147e1565b6000828152602081905260409020805460ff19166004179055613e9d600160148401612f19565b604051819083907f6ab8a7c5ca86fd865f45b3b78d0c48ba9c43a950bb4cc772ff1d14062ff953ea90600090a35050565b613ed781614b15565b600460008281526020819052604090205460ff166006811115613efc57613efc61510c565b03613f5557613f0a81612da9565b4211613f2057613f20630eeecf2f60e31b612eb0565b6000818152602081905260409020805460ff19166006179055613f47600160148301613750565b613f556001600a8301613750565b600560008281526020819052604090205460ff166006811115613f7a57613f7a61510c565b03613fd357613f88816119c7565b4211613f9e57613f9e630eeecf2f60e31b612eb0565b6000818152602081905260409020805460ff19166006179055613fc56001601e8301613750565b613fd36001600a8301613750565b604051429082907f2c76226796c0f82868e2e1c04cd428824e48df2648c3ef16331ce144d1ee65bb90600090a350565b60606000614010836121b6565b9050600061401d84613df5565b600083815260066020526040902090915061403785614bc8565b60008481526006602052604090206001810190600301846002811061405e5761405e615637565b6000878152600660205260409020910190600501856002811061408357614083615637565b01604051602001614098959493929190615a50565b60405160208183030381529060405292505050919050565b606060006140bd836121b6565b905060006140ca846122ff565b90506140d582614bc8565b6000838152600660209081526040918290209151614098939260020191859101615b0c565b6060600080600061410a85614c0c565b925092509250600061411b84614bc8565b9050600061412884614bc8565b9050600061413584614bc8565b9050600a85101561416b5761414985614bc8565b6040516020016141599190615bf0565b60405160208183030381529060405291505b600a84101561419f5761417d84614bc8565b60405160200161418d9190615bf0565b60405160208183030381529060405290505b8282826040516020016141b493929190615c19565b6040516020818303038152906040529650505050505050919050565b60608151801561175f576003600282010460021b60405192507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f52610670600015027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f52602083018181018386602001018051600082525b6003880197508751603f8160121c1651600053603f81600c1c1651600153603f8160061c1651600253603f81165160035350600051845260048401935082841061424d579052602001604052613d3d60f01b6003840660020482035260009052825250919050565b60008060008381526020819052604090205460ff1660068111156142db576142db61510c565b036142e857506000919050565b600360008381526020819052604090205460ff16600681111561430d5761430d61510c565b1461431a57506000919050565b600460008381526020819052604090205460ff16600681111561433f5761433f61510c565b1461434c57506000919050565b600560008381526020819052604090205460ff1660068111156143715761437161510c565b1461194857506000919050565b600042820361438c84612dcf565b61439585611c5e565b61439f9083615830565b6127d99190615847565b604080516001600160a01b038616602082015290810184905260009060600160408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050600061441e8484600a60008981526020019081526020016000205485614c2f565b9050806129645761296463582f497d60e11b612eb0565b600754604080516001600160a01b039092168252600060208301527fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac910160405180910390a1600780546001600160a01b0319169055565b600080614499836121b6565b90506000808281526020819052604090205460ff1660068111156144bf576144bf61510c565b036144cd5750600092915050565b600160008281526020819052604090205460ff1660068111156144f2576144f261510c565b036145005750600092915050565b600260008281526020819052604090205460ff1660068111156145255761452561510c565b036145335750600092915050565b600660008281526020819052604090205460ff1660068111156145585761455861510c565b036145665750600092915050565b600360008281526020819052604090205460ff16600681111561458b5761458b61510c565b14801561459f575061459c81611076565b42105b806145de5750600460008281526020819052604090205460ff1660068111156145ca576145ca61510c565b1480156145de57506145db81612da9565b42115b8061461d5750600560008281526020819052604090205460ff1660068111156146095761460961510c565b14801561461d575061461a816119c7565b42115b1561175f5750600092915050565b61463481611c4e565b156146af576146448260016118e5565b801561465657506146568260026118e5565b15614667576111ee61322d826115d7565b6146728260016118e5565b15614683576111ee61322d826115d7565b61468e8260026118e5565b1561469f576111ee61322d82612385565b6111ee6349e27cff60e01b612eb0565b6111ee635a7a35a360e01b612eb0565b60008181526020819052604081205460ff1660068111156146e2576146e261510c565b036146f7576146f76315bffde560e01b612eb0565b600360008281526020819052604090205460ff16600681111561471c5761471c61510c565b03614731576147316315bffde560e01b612eb0565b60045b60008281526020819052604090205460ff1660068111156147575761475761510c565b0361476c5761476c6315bffde560e01b612eb0565b60055b60008281526020819052604090205460ff1660068111156147925761479261510c565b036147a7576147a76315bffde560e01b612eb0565b600660008281526020819052604090205460ff1660068111156147cc576147cc61510c565b03611216576112166315bffde560e01b612eb0565b4281116147f8576147f863b7d0949760e01b612eb0565b64ffffffffff8111156112165761121663b7d0949760e01b612eb0565b8260205260068204600052604060002060068306602802815464ffffffffff8482841c188116831b8218845550505050505050565b638b78c6d8600c52826000526020600c2080548381178361486c575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b8034101561121657611216631e9acf1760e31b612eb0565b600060386148c883612dcf565b6001600160601b0316901b6010426001600160601b0316901b831717905061107183826149d0565b6111ee828260405180602001604052806000815250614c69565b6000614915826121b6565b905061492081611c5e565b3410156111ee576111ee631e9acf1760e31b612eb0565b6149436133b4836129e4565b42101561495a5761495a633a938fbb60e21b612eb0565b603b1981014211156111ee576111ee633a938fbb60e21b612eb0565b6000614981836121b6565b905042820361498f82612dcf565b811061499e5761499e8461490a565b6149a782612dcf565b8110156149b8576149b88484614c87565b8060000361110c5761110c631faeea6160e01b612eb0565b81600052673ec412a9852d173d60c11b601c5260206000208201820180548060a01c831860a01b8118825550505050565b60008060001960018651600087870197505b81830160011c94508460051b8901518701905087811482841117614a4d57808811614a42578385019150614a13565b600185019250614a13565b84151597148716989290930190950295509350505050565b600360008281526020819052604090205460ff166006811115614a8a57614a8a61510c565b14611216576112166315bffde560e01b612eb0565b6000614ab6614aad83611076565b61174884612dcf565b905060771981014210156111ee576111ee630eeecf2f60e31b612eb0565b600160008281526020819052604090205460ff166006811115614af957614af961510c565b03614b0e57614b0e6315bffde560e01b612eb0565b6002614734565b60008181526020819052604081205460ff166006811115614b3857614b3861510c565b03614b4d57614b4d6315bffde560e01b612eb0565b600160008281526020819052604090205460ff166006811115614b7257614b7261510c565b03614b8757614b876315bffde560e01b612eb0565b600260008281526020819052604090205460ff166006811115614bac57614bac61510c565b03614bc157614bc16315bffde560e01b612eb0565b600361476f565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480614be25750819003601f19909101908152919050565b6000806000614c22614c1d856129e4565b614cba565b9250925092509193909250565b60008315614c61578360051b8501855b803580851160051b94855260209485185260406000209301818110614c3f5750505b501492915050565b614c738383614d67565b823b156110715761107160008484846132ba565b6000614c92836121b6565b90506000614ca0828461437e565b90508034101561110c5761110c631e9acf1760e31b612eb0565b60008080614d5a614cce6201518086615847565b6000806000620afa6c8401935062023ab1840661016d62023ab082146105b48304618eac84048401030304606481048160021c8261016d0201038203915060996002836005020104600161030161f4ff830201600b1c84030193506b030405060708090a0b0c010260a01b811a9450506003841061019062023ab1880402820101945050509193909250565b9196909550909350915050565b614d7360008383613106565b8160601b60601c915080600052673ec412a9852d173d60c11b601c5260206000208101810180548060601b15614db15763c991cbb16000526004601cfd5b831790556000829052601c600c20805460010163ffffffff81168402614de65767ea553b3401336cea841560021b526004601cfd5b9055808260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8138a45050565b6040518060a00160405280606081526020016060815260200160608152602001614e3c614e97565b8152602001614e49614e97565b905290565b8260028101928215614e87579160200282015b82811115614e875782518290614e7790826158b1565b5091602001919060010190614e61565b50614e93929150614ebe565b5090565b60405180604001604052806002905b6060815260200190600190039081614ea65790505090565b80821115614e93576000614ed28282614edb565b50600101614ebe565b508054614ee7906155be565b6000825580601f10614ef7575050565b601f01602090049060005260206000209081019061121691905b80821115614e935760008155600101614f11565b600060208284031215614f3757600080fd5b81356001600160e01b03198116811461174c57600080fd5b80356001600160a01b038116811461194857600080fd5b60008060408385031215614f7957600080fd5b614f8283614f4f565b915060208301356001600160601b0381168114614f9e57600080fd5b809150509250929050565b600060208284031215614fbb57600080fd5b5035919050565b60008060408385031215614fd557600080fd5b50508035926020909101359150565b60005b83811015614fff578181015183820152602001614fe7565b50506000910152565b60008151808452615020816020860160208601614fe4565b601f01601f19169290920160200192915050565b60208152600061174c6020830184615008565b6000806040838503121561505a57600080fd5b61506383614f4f565b946020939093013593505050565b60006020828403121561508357600080fd5b61174c82614f4f565b6000806000606084860312156150a157600080fd5b6150aa84614f4f565b92506150b860208501614f4f565b9150604084013590509250925092565b6020808252825182820181905260009190848201906040850190845b81811015615100578351835292840192918401916001016150e4565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b602081016007831061514457634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f84011261515c57600080fd5b5081356001600160401b0381111561517357600080fd5b60208301915083602082850101111561518b57600080fd5b9250929050565b806040810183101561105657600080fd5b600080600080600080600080600060c08a8c0312156151c157600080fd5b8935985060208a01356001600160401b03808211156151df57600080fd5b6151eb8d838e0161514a565b909a50985060408c013591508082111561520457600080fd5b6152108d838e0161514a565b909850965060608c013591508082111561522957600080fd5b6152358d838e0161514a565b909650945060808c013591508082111561524e57600080fd5b61525a8d838e01615192565b935060a08c013591508082111561527057600080fd5b5061527d8c828d01615192565b9150509295985092959850929598565b600082604081018360005b60028110156152c75783830387526152b1838351615008565b6020978801979093509190910190600101615298565b509095945050505050565b602081526000825160a060208401526152ee60c0840182615008565b90506020840151601f198085840301604086015261530c8383615008565b925060408601519150808584030160608601526153298383615008565b92506060860151915080858403016080860152615346838361528d565b925060808601519150808584030160a086015250615364828261528d565b95945050505050565b6000806040838503121561538057600080fd5b61538983614f4f565b915060208301358015158114614f9e57600080fd5b60008083601f8401126153b057600080fd5b5081356001600160401b038111156153c757600080fd5b6020830191508360208260051b850101111561518b57600080fd5b600080602083850312156153f557600080fd5b82356001600160401b0381111561540b57600080fd5b6154178582860161539e565b90969095509350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561547a57603f19888603018452615468858351615008565b9450928501929085019060010161544c565b5092979650505050505050565b60008060008060006080868803121561549f57600080fd5b6154a886614f4f565b94506154b660208701614f4f565b93506040860135925060608601356001600160401b038111156154d857600080fd5b6154e48882890161514a565b969995985093965092949392505050565b60008060006040848603121561550a57600080fd5b83356001600160401b0381111561552057600080fd5b61552c8682870161539e565b909790965060209590950135949350505050565b60008060006040848603121561555557600080fd5b8335925060208401356001600160401b0381111561557257600080fd5b61557e8682870161539e565b9497909650939450505050565b6000806040838503121561559e57600080fd5b6155a783614f4f565b91506155b560208401614f4f565b90509250929050565b600181811c908216806155d257607f821691505b60208210810361175f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161563057615630615608565b5060010190565b634e487b7160e01b600052603260045260246000fd5b604080519081016001600160401b038111828210171561566f5761566f6155f2565b60405290565b604051601f8201601f191681016001600160401b038111828210171561569d5761569d6155f2565b604052919050565b60006156af61564d565b8060408401368111156156c157600080fd5b845b81811015611b495780356001600160401b03808211156156e35760008081fd5b90870190601f36818401126156f85760008081fd5b823560208382111561570c5761570c6155f2565b61571d828401601f19168201615675565b9350818452368183870101111561573657600092508283fd5b81818601828601376000918401810191909152918752509490940193506020016156c3565b6000845161576d818460208901614fe4565b845190830190615781818360208901614fe4565b8451910190615794818360208801614fe4565b63227d5d7d60e01b910190815260040195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516157e581601d850160208701614fe4565b91909101601d0192915050565b60008351615804818460208801614fe4565b835190830190615818818360208801614fe4565b63227d5d7d60e01b9101908152600401949350505050565b808202811582820484141761105657611056615608565b60008261586457634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611071576000816000526020600020601f850160051c810160208610156158925750805b601f850160051c820191505b818110156129645782815560010161589e565b81516001600160401b038111156158ca576158ca6155f2565b6158de816158d884546155be565b84615869565b602080601f83116001811461591357600084156158fb5750858301515b600019600386901b1c1916600185901b178555612964565b600085815260208120601f198616915b8281101561594257888601518255948401946001909101908401615923565b50858210156159605787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60a08152600061598360a0830188615008565b82810360208401526159958188615008565b905082810360408401526159a98187615008565b905082810360608401526159bd818661528d565b905082810360808401526159d1818561528d565b98975050505050505050565b600081546159ea816155be565b60018281168015615a025760018114615a1757615a46565b60ff1984168752821515830287019450615a46565b8560005260208060002060005b85811015615a3d5781548a820152908401908201615a24565b50505082870194505b5050505092915050565b683d913730b6b2911d1160b91b81526000615a6e60098301886159dd565b61202360f01b81528651615a89816002840160208b01614fe4565b701116113232b9b1b934b83a34b7b7111d1160791b60029290910191820152615ab560138201876159dd565b61088b60f21b808252681134b6b0b3b2911d1160b91b6002830152909150615ae0600b8301876159dd565b908152701130b734b6b0ba34b7b72fbab936111d1160791b600282015290506159d160138201856159dd565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a225481527034b2b91024a21116113b30b63ab2911d1160791b602082015260008451615b5e816031850160208901614fe4565b7f227d2c7b2274726169745f74797065223a2254696572222c2276616c7565223a603191840191820152601160f91b6051820152615b9f60528201866159dd565b90507f227d2c7b2274726169745f74797065223a22537461747573222c2276616c7565815262111d1160e91b60208201528351615be3816023840160208801614fe4565b0160230195945050505050565b600360fc1b815260008251615c0c816001850160208701614fe4565b9190910160010192915050565b7f227d2c7b2274726169745f74797065223a224578706972792044617465222c228152673b30b63ab2911d1160c11b602082015260008451615c62816028850160208901614fe4565b8083019050602d60f81b8060288301528551615c85816029850160208a01614fe4565b60299201918201528351615ca081602a840160208801614fe4565b01602a019594505050505056fea26469706673582212203634b529031e2735b891532eefdeebaffbd10d2697312d19678e41ab4ecb22e064736f6c63430008190033