[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "BatchMintInvalidBatchId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "BatchMintInvalidTokenId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "batchId", "type": "uint256" } ], "name": "BatchMintMetadataFrozen", "type": "error" }, { "inputs": [], "name": "ContractMetadataUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "CurrencyTransferLibFailedNativeTransfer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimExceedLimit", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimExceedMaxSupply", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "expectedCurrency", "type": "address" }, { "internalType": "uint256", "name": "expectedPricePerToken", "type": "uint256" }, { "internalType": "address", "name": "actualCurrency", "type": "address" }, { "internalType": "uint256", "name": "actualExpectedPricePerToken", "type": "uint256" } ], "name": "DropClaimInvalidTokenPrice", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimNotStarted", "type": "error" }, { "inputs": [], "name": "DropDelayRevealUnsupported", "type": "error" }, { "inputs": [], "name": "DropExceedMaxSupply", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropInvalidMsgValue", "type": "error" }, { "inputs": [], "name": "DropNoActiveCondition", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "DropNotApprovedOrOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "DropTransferRestricted", "type": "error" }, { "inputs": [], "name": "DropUnauthorized", "type": "error" }, { "inputs": [], "name": "LazyMintInvalidAmount", "type": "error" }, { "inputs": [], "name": "LazyMintUnauthorized", "type": "error" }, { "inputs": [], "name": "OwnableUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "PermissionsAlreadyGranted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "expected", "type": "address" }, { "internalType": "address", "name": "actual", "type": "address" } ], "name": "PermissionsInvalidPermission", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "PermissionsUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "PlatformFeeExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PlatformFeeInvalidRecipient", "type": "error" }, { "inputs": [], "name": "PlatformFeeUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PrimarySaleInvalidRecipient", "type": "error" }, { "inputs": [], "name": "PrimarySaleUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "RoyaltyExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "RoyaltyInvalidRecipient", "type": "error" }, { "inputs": [], "name": "RoyaltyUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateAlreadyMigrated", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateInvalidProof", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateInvalidTokenId", "type": "error" }, { "inputs": [], "name": "TokenMigrateUnauthorized", "type": "error" }, { "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": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "indexed": false, "internalType": "struct IClaimCondition.ClaimCondition[]", "name": "claimConditions", "type": "tuple[]" }, { "indexed": false, "internalType": "bool", "name": "resetEligibility", "type": "bool" } ], "name": "ClaimConditionsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "prevURI", "type": "string" }, { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" } ], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newRoyaltyRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newRoyaltyBps", "type": "uint256" } ], "name": "DefaultRoyalty", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "platformFeeRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "flatFee", "type": "uint256" } ], "name": "FlatPlatformFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxTotalSupply", "type": "uint256" } ], "name": "MaxTotalSupplyUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MetadataFrozen", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "prevOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "platformFeeRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "platformFeeBps", "type": "uint256" } ], "name": "PlatformFeeInfoUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum IPlatformFee.PlatformFeeType", "name": "feeType", "type": "uint8" } ], "name": "PlatformFeeTypeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PrimarySaleRecipientUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "royaltyBps", "type": "uint256" } ], "name": "RoyaltyForToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "claimConditionIndex", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "quantityClaimed", "type": "uint256" } ], "name": "TokensClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "startTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "endTokenId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "baseURI", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "encryptedBaseURI", "type": "bytes" } ], "name": "TokensLazyMinted", "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" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "batchFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" }, { "internalType": "address", "name": "_currency", "type": "address" }, { "internalType": "uint256", "name": "_pricePerToken", "type": "uint256" }, { "components": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" } ], "internalType": "struct IDrop.AllowlistProof", "name": "_allowlistProof", "type": "tuple" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "claimCondition", "outputs": [ { "internalType": "uint256", "name": "currentStartId", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractType", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractVersion", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "freezeBatchBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getActiveClaimConditionId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBaseURICount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getBatchIdAtIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_conditionId", "type": "uint256" } ], "name": "getClaimConditionById", "outputs": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct IClaimCondition.ClaimCondition", "name": "condition", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDefaultRoyaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFlatPlatformFeeInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPlatformFeeInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPlatformFeeType", "outputs": [ { "internalType": "enum IPlatformFee.PlatformFeeType", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "member", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getRoyaltyInfoForToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_conditionId", "type": "uint256" }, { "internalType": "address", "name": "_claimer", "type": "address" } ], "name": "getSupplyClaimedByWallet", "outputs": [ { "internalType": "uint256", "name": "supplyClaimedByWallet", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRoleWithSwitch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_defaultAdmin", "type": "address" }, { "internalType": "address", "name": "__originalContract", "type": "address" }, { "internalType": "bytes32", "name": "_ownershipMerkleRoot", "type": "bytes32" }, { "internalType": "string", "name": "_contractURI", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "string", "name": "_baseURIForTokens", "type": "string" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "lazyMint", "outputs": [ { "internalType": "uint256", "name": "batchId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenOwner", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_proof", "type": "bytes32[]" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenIdToClaim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenIdToMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [], "name": "primarySaleRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "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": "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": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct IClaimCondition.ClaimCondition[]", "name": "_conditions", "type": "tuple[]" }, { "internalType": "bool", "name": "_resetClaimEligibility", "type": "bool" } ], "name": "setClaimConditions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "_royaltyBps", "type": "uint256" } ], "name": "setDefaultRoyaltyInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_platformFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_flatFee", "type": "uint256" } ], "name": "setFlatPlatformFeeInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxTotalSupply", "type": "uint256" } ], "name": "setMaxTotalSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_platformFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_platformFeeBps", "type": "uint256" } ], "name": "setPlatformFeeInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum IPlatformFee.PlatformFeeType", "name": "_feeType", "type": "uint8" } ], "name": "setPlatformFeeType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_saleRecipient", "type": "address" } ], "name": "setPrimarySaleRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_bps", "type": "uint256" } ], "name": "setRoyaltyInfoForToken", "outputs": [], "stateMutability": "nonpayable", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "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": [], "name": "totalMinted", "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": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateBatchBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_conditionId", "type": "uint256" }, { "internalType": "address", "name": "_claimer", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" }, { "internalType": "address", "name": "_currency", "type": "address" }, { "internalType": "uint256", "name": "_pricePerToken", "type": "uint256" }, { "components": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" } ], "internalType": "struct IDrop.AllowlistProof", "name": "_allowlistProof", "type": "tuple" } ], "name": "verifyClaim", "outputs": [ { "internalType": "bool", "name": "isOverride", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b806200004f5750303b1580156200004f575060005460ff166001145b620000b75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000db576000805461ff0019166101001790555b801562000122576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50615b6180620001336000396000f3fe6080604052600436106103245760003560e01c806384bb1e42116101a8578063b24f2d39116100e8578063b24f2d39146109ae578063b6f10c79146109d9578063b88d4fde146109f9578063c68907de14610a19578063c87b56dd14610a2e578063ca15c87314610a4e578063cb2ef6f714610a6e578063d1959f4814610a8f578063d37c353b14610aaf578063d45573f614610acf578063d547741f14610ae4578063d637ed5914610b04578063de903ddd14610b2d578063e57553da14610b4d578063e8a3d48514610b71578063e985e9c514610b86578063f28083c314610ba657600080fd5b806384bb1e421461079d5780638da5cb5b146107b05780639010d07c146107ce57806391d14854146107ee57806392928e041461080e578063938e3d7b1461082e57806395d89b411461084e5780639bcf7a1514610863578063a07ced9e14610883578063a0a8e460146108a3578063a217fddf146108bf578063a22cb465146108d4578063a2309ff8146108f4578063a32fa5b314610909578063ac9650d814610929578063acd083f814610956578063ad1eefc51461096c57600080fd5b806336568abe1161027357806336568abe146105545780633b1475a7146105745780633f3e4c111461058957806342842e0e146105a957806342966c68146105c95780634cc157df146105e95780634f6ccce71461062b578063600dd5ea1461064b5780636352211e1461066b57806363b45e2d1461068b5780636f4f2837146106a05780636f8934f4146106c057806370a08231146106ed57806374bc7db71461070d5780637cb647591461072d5780637e54523c1461074d578063830405321461076d57600080fd5b806301ffc9a71461032957806306fdde031461035e578063079fe40e14610380578063081812fc146103a2578063095ea7b3146103c257806313af4035146103e457806318160ddd146104045780631e7ac4881461042357806323a2902b1461044357806323b872dd146104635780632419f51b14610483578063248a9ca3146104a35780632a55205a146104d05780632ab4d052146104fe5780632f2ff15d146105145780632f745c5914610534575b600080fd5b34801561033557600080fd5b50610349610344366004614981565b610bcd565b60405190151581526020015b60405180910390f35b34801561036a57600080fd5b50610373610bf9565b60405161035591906149ee565b34801561038c57600080fd5b50610395610c8b565b6040516103559190614a01565b3480156103ae57600080fd5b506103956103bd366004614a15565b610c9a565b3480156103ce57600080fd5b506103e26103dd366004614a43565b610cc1565b005b3480156103f057600080fd5b506103e26103ff366004614a6f565b610ddb565b34801561041057600080fd5b5060ab545b604051908152602001610355565b34801561042f57600080fd5b506103e261043e366004614a43565b610e0c565b34801561044f57600080fd5b5061034961045e366004614a9e565b610e3f565b34801561046f57600080fd5b506103e261047e366004614b1b565b6111a5565b34801561048f57600080fd5b5061041561049e366004614a15565b6111d6565b3480156104af57600080fd5b506104156104be366004614a15565b6000908152600d602052604090205490565b3480156104dc57600080fd5b506104f06104eb366004614b5c565b611228565b604051610355929190614b7e565b34801561050a57600080fd5b5061041560de5481565b34801561052057600080fd5b506103e261052f366004614b97565b611265565b34801561054057600080fd5b5061041561054f366004614a43565b6112d0565b34801561056057600080fd5b506103e261056f366004614b97565b611366565b34801561058057600080fd5b50600b54610415565b34801561059557600080fd5b506103e26105a4366004614a15565b61139d565b3480156105b557600080fd5b506103e26105c4366004614b1b565b6113e6565b3480156105d557600080fd5b506103e26105e4366004614a15565b611401565b3480156105f557600080fd5b50610609610604366004614a15565b611435565b604080516001600160a01b03909316835261ffff909116602083015201610355565b34801561063757600080fd5b50610415610646366004614a15565b611549565b34801561065757600080fd5b506103e2610666366004614a43565b6115ca565b34801561067757600080fd5b50610395610686366004614a15565b6115f9565b34801561069757600080fd5b50600854610415565b3480156106ac57600080fd5b506103e26106bb366004614a6f565b61162d565b3480156106cc57600080fd5b506106e06106db366004614a15565b61165b565b6040516103559190614bc7565b3480156106f957600080fd5b50610415610708366004614a6f565b6117b8565b34801561071957600080fd5b506103e2610728366004614c8d565b61183e565b34801561073957600080fd5b506103e2610748366004614a15565b611b3e565b34801561075957600080fd5b506103e2610768366004614a43565b611b6c565b34801561077957600080fd5b50610349610788366004614a15565b600a6020526000908152604090205460ff1681565b6103e26107ab366004614da6565b611b9b565b3480156107bc57600080fd5b506007546001600160a01b0316610395565b3480156107da57600080fd5b506103956107e9366004614b5c565b611c8c565b3480156107fa57600080fd5b50610349610809366004614b97565b611d7a565b34801561081a57600080fd5b506103e2610829366004614e33565b611da5565b34801561083a57600080fd5b506103e2610849366004614e9e565b612333565b34801561085a57600080fd5b50610373612361565b34801561086f57600080fd5b506103e261087e366004614ed2565b612370565b34801561088f57600080fd5b506103e261089e366004614a15565b6123a0565b3480156108af57600080fd5b5060405160048152602001610355565b3480156108cb57600080fd5b50610415600081565b3480156108e057600080fd5b506103e26108ef366004614ef9565b6123cf565b34801561090057600080fd5b5060df54610415565b34801561091557600080fd5b50610349610924366004614b97565b6123da565b34801561093557600080fd5b50610949610944366004614f27565b612430565b6040516103559190614f68565b34801561096257600080fd5b5061041560df5481565b34801561097857600080fd5b50610415610987366004614b97565b60009182526012602090815260408084206001600160a01b03909316845291905290205490565b3480156109ba57600080fd5b506004546001600160a01b03811690600160a01b900461ffff16610609565b3480156109e557600080fd5b506103e26109f4366004614fcc565b612519565b348015610a0557600080fd5b506103e2610a14366004614e33565b612547565b348015610a2557600080fd5b5061041561257f565b348015610a3a57600080fd5b50610373610a49366004614a15565b612605565b348015610a5a57600080fd5b50610415610a69366004614a15565b6126c1565b348015610a7a57600080fd5b506a44726f704552433732314d60a81b610415565b348015610a9b57600080fd5b506103e2610aaa366004614fed565b61274a565b348015610abb57600080fd5b50610415610aca366004615089565b612897565b348015610adb57600080fd5b506106096128cf565b348015610af057600080fd5b506103e2610aff366004614b97565b6128ec565b348015610b1057600080fd5b50600f54601054610b1f919082565b604051610355929190615102565b348015610b3957600080fd5b506103e2610b48366004615110565b612905565b348015610b5957600080fd5b506104f06002546003546001600160a01b0390911691565b348015610b7d57600080fd5b5061037361296b565b348015610b9257600080fd5b50610349610ba136600461515b565b6129f9565b348015610bb257600080fd5b50600254600160b01b900460ff16604051610355919061519f565b6000610bd882612a27565b80610bf3575063152a902d60e11b6001600160e01b03198316145b92915050565b606060778054610c08906151c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c34906151c7565b8015610c815780601f10610c5657610100808354040283529160200191610c81565b820191906000526020600020905b815481529060010190602001808311610c6457829003601f168201915b5050505050905090565b6006546001600160a01b031690565b6000610ca582612a4c565b506000908152607b60205260409020546001600160a01b031690565b6000610ccc826115f9565b9050806001600160a01b0316836001600160a01b031603610d3e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610d5a5750610d5a81336129f9565b610dcc5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610d35565b610dd68383612a71565b505050565b610de3612adf565b610e00576040516316ccb9cb60e11b815260040160405180910390fd5b610e0981612af0565b50565b610e14612adf565b610e31576040516387d20a6d60e01b815260040160405180910390fd5b610e3b8282612b42565b5050565b6000868152601160209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015460a083015260068101546001600160a01b031660c08301526007810180548493929160e0840191610ebe906151c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610eea906151c7565b8015610f375780601f10610f0c57610100808354040283529160200191610f37565b820191906000526020600020905b815481529060010190602001808311610f1a57829003601f168201915b50505091909252505050606081015160a082015160c08301516080840151939450919290919015610fe657610fe2610f6f87806151fb565b86608001518d8a602001358b604001358c6060016020810190610f929190614a6f565b6040516001600160601b0319606095861b811660208301526034820194909452605481019290925290921b1660748201526088015b60405160208183030381529060405280519060200120612c00565b5094505b841561106d578560200135600003610ffe5782611004565b85602001355b9250600019866040013503611019578161101f565b85604001355b9150600019866040013514158015611050575060006110446080880160608901614a6f565b6001600160a01b031614155b61105a578061106a565b61106a6080870160608801614a6f565b90505b60008b81526012602090815260408083206001600160a01b03808f168552925290912054908981169083161415806110a55750828814155b156110e45760405163f13474e960e01b81526001600160a01b03808b166004830152602482018a90528316604482015260648101849052608401610d35565b8915806110f95750836110f7828c61525a565b115b156111245783611109828c61525a565b604051639e7762db60e01b8152600401610d35929190615102565b84602001518a8660400151611139919061525a565b111561116f5784602001518a8660400151611154919061525a565b60405163fe381cc960e01b8152600401610d35929190615102565b84514210156111965784516040516322b1048f60e11b8152610d3591904290600401615102565b50505050509695505050505050565b6111af3382612c8b565b6111cb5760405162461bcd60e51b8152600401610d359061526d565b610dd6838383612cea565b60006111e160085490565b821061120357604051630793127760e11b815260048101839052602401610d35565b60088281548110611216576112166152ba565b90600052602060002001549050919050565b60008060008061123786611435565b90945084925061ffff16905061271061125082876152d0565b61125a91906152e7565b925050509250929050565b6000828152600d602052604090205461127e9033612e49565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16156112c6578082604051636a4e0b3560e11b8152600401610d35929190614b7e565b610e3b8282612e90565b60006112db836117b8565b821061133d5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610d35565b506001600160a01b0391909116600090815260a960209081526040808320938352929052205490565b336001600160a01b038216146113935733816040516320b4e31160e11b8152600401610d35929190615309565b610e3b8282612ea4565b60006113a98133612e49565b60de8290556040518281527ff2672935fc79f5237559e2e2999dbe743bf65430894ac2b37666890e7c69e1af906020015b60405180910390a15050565b610dd683838360405180602001604052806000815250612547565b61140b3382612c8b565b61142c57338160405163feb80be360e01b8152600401610d35929190614b7e565b610e0981612efb565b6000818152600560209081526040808320815180830190925280546001600160a01b03168252600101549181019190915260e05482919084108015611482575080516001600160a01b0316155b801561149057506020810151155b1561150b5760dc54604051634cc157df60e01b8152600481018690526001600160a01b0390911690634cc157df906024016040805180830381865afa1580156114dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115019190615323565b9250925050915091565b80516001600160a01b0316156115275780516020820151611501565b50506004546001600160a01b03811693600160a01b90910461ffff1692509050565b600061155460ab5490565b82106115b75760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610d35565b60ab8281548110611216576112166152ba565b6115d2612adf565b6115ef57604051636fae358160e11b815260040160405180910390fd5b610e3b8282612f8c565b60008061160583613010565b90506001600160a01b038116610bf35760405162461bcd60e51b8152600401610d3590615359565b611635612adf565b61165257604051631c98210f60e21b815260040160405180910390fd5b610e098161302b565b6116af60405180610100016040528060008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b03168152602001606081525090565b600082815260116020908152604091829020825161010081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a082015260068201546001600160a01b031660c082015260078201805491929160e08401919061172f906151c7565b80601f016020809104026020016040519081016040528092919081815260200182805461175b906151c7565b80156117a85780601f1061177d576101008083540402835291602001916117a8565b820191906000526020600020905b81548152906001019060200180831161178b57829003601f168201915b5050505050815250509050919050565b60006001600160a01b0382166118225760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610d35565b506001600160a01b03166000908152607a602052604090205490565b611846612adf565b611863576040516356c4ef5160e01b815260040160405180910390fd5b600f5460105481831561187d5761187a828461525a565b90505b6010859055600f8190556000805b86811015611a01578015806118c357508787828181106118ad576118ad6152ba565b90506020028101906118bf919061538b565b3582105b6118f45760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610d35565b6000601181611903848761525a565b8152602001908152602001600020600201549050888883818110611929576119296152ba565b905060200281019061193b919061538b565b6020013581111561195f5760405163032b539f60e11b815260040160405180910390fd5b888883818110611971576119716152ba565b9050602002810190611983919061538b565b60116000611991858861525a565b815260200190815260200160002081816119ab9190615507565b50819050601160006119bd858861525a565b81526020810191909152604001600020600201558888838181106119e3576119e36152ba565b90506020028101906119f5919061538b565b3592505060010161188b565b508415611a7657835b82811015611a7057600081815260116020526040812081815560018101829055600281018290556003810182905560048101829055600581018290556006810180546001600160a01b031916905590611a66600783018261491d565b5050600101611a0a565b50611afa565b85831115611afa57855b83811015611af85760116000611a96838661525a565b81526020810191909152604001600090812081815560018101829055600281018290556003810182905560048101829055600581018290556006810180546001600160a01b031916905590611aee600783018261491d565b5050600101611a80565b505b7fbf4016fceeaaa4ac5cf4be865b559ff85825ab4ca7aa7b661d16e2f544c03098878787604051611b2d939291906155f3565b60405180910390a150505050505050565b611b4661309e565b611b63576040516327e8d25560e01b815260040160405180910390fd5b610e098160db55565b611b74612adf565b611b91576040516387d20a6d60e01b815260040160405180910390fd5b610e3b82826130ca565b611ba986868686868661311c565b6000611bb361257f565b9050611bc3813388888888610e3f565b5060008181526011602052604081206002018054889290611be590849061525a565b9091555050600081815260126020908152604080832033845290915281208054889290611c1390849061525a565b90915550611c2690506000878787613191565b6000611c3288886132be565b90506001600160a01b038816336001600160a01b0316837ffa76a4010d9533e3e964f2930a65fb6042a12fa6ff5b08281837a10b0be7321e848b604051611c7a929190615102565b60405180910390a45050505050505050565b6000828152600e602052604081205481805b82811015611d71576000868152600e602090815260408083208484526001019091529020546001600160a01b031615611d1a57848203611d08576000868152600e602090815260408083209383526001909301905220546001600160a01b03169250610bf3915050565b611d1360018361525a565b9150611d5f565b611d25866000611d7a565b8015611d4c57506000868152600e6020908152604080832083805260020190915290205481145b15611d5f57611d5c60018361525a565b91505b611d6a60018261525a565b9050611c9e565b50505092915050565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff1615808015611dc55750600054600160ff909116105b80611de65750611dd430613301565b158015611de6575060005460ff166001145b611e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d35565b6000805460ff191660011790558015611e6c576000805461ff0019166101001790555b611f40846001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015611ead573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ed591908101906156db565b856001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611f13573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f3b91908101906156db565b613310565b60dc80546001600160a01b0319166001600160a01b038616179055611f648360db55565b60dc546040805163159a107f60e31b815290516000926001600160a01b03169163acd083f89160048083019260209291908290030181865afa158015611fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd29190615751565b9050600060dc60009054906101000a90046001600160a01b03166001600160a01b0316633b1475a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204d9190615751565b90508160df8190555080600b819055508060e081905550600080876001600160a01b031663b24f2d396040518163ffffffff1660e01b81526004016040805180830381865afa1580156120a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c89190615323565b91509150600080896001600160a01b031663d45573f66040518163ffffffff1660e01b81526004016040805180830381865afa15801561210c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121309190615323565b61ffff169150915060008a6001600160a01b031663079fe40e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219c919061576a565b90506001600160a01b038316156121b7576121b78383612b42565b6001600160a01b038516156121d4576121d4858561ffff16612f8c565b6001600160a01b038116156121ec576121ec8161302b565b50505050505050836001600160a01b0316632ab4d0526040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561224d575060408051601f3d908101601f1916820190925261224a91810190615751565b60015b156122565760de555b61225f82613341565b61226885612af0565b612273600086612e90565b61229d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a686612e90565b6122b6600080516020615aa58339815191526000612e90565b6122ce600080516020615ac583398151915286612e90565b6122e6600080516020615ac583398151915280613411565b801561232c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b61233b612adf565b61235857604051639f7f092560e01b815260040160405180910390fd5b610e0981613341565b606060788054610c08906151c7565b612378612adf565b61239557604051636fae358160e11b815260040160405180910390fd5b610dd6838383613459565b600080516020615ac58339815191526123b98133612e49565b60006123c4836111d6565b9050610dd681613508565b610e3b338383613609565b6000828152600c6020908152604080832083805290915281205460ff1661242757506000828152600c602090815260408083206001600160a01b038516845290915290205460ff16610bf3565b50600192915050565b6060816001600160401b0381111561244a5761244a614ce3565b60405190808252806020026020018201604052801561247d57816020015b60608152602001906001900390816124685790505b50905060005b82811015612512576124ed308585848181106124a1576124a16152ba565b90506020028101906124b391906153ab565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136cb92505050565b8282815181106124ff576124ff6152ba565b6020908102919091010152600101612483565b5092915050565b612521612adf565b61253e576040516387d20a6d60e01b815260040160405180910390fd5b610e09816136f7565b6125513383612c8b565b61256d5760405162461bcd60e51b8152600401610d359061526d565b6125798484848461375b565b50505050565b601054600f546000918291612594919061525a565b90505b600f548111156125eb57601160006125b0600184615787565b81526020019081526020016000206000015442106125d9576125d3600182615787565b91505090565b806125e38161579a565b915050612597565b506040516303d03c7360e61b815260040160405180910390fd5b606060e0548210156126825760dc5460405163c87b56dd60e01b8152600481018490526001600160a01b039091169063c87b56dd90602401600060405180830381865afa15801561265a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bf391908101906156db565b600061268d8361378e565b9050806126998461390c565b6040516020016126aa9291906157b1565b604051602081830303815290604052915050919050565b6000818152600e6020526040812054815b81811015612725576000848152600e602090815260408083208484526001019091529020546001600160a01b0316156127135761271060018461525a565b92505b61271e60018261525a565b90506126d2565b50612731836000611d7a565b156127445761274160018361525a565b91505b50919050565b600083815260dd602052604090205460ff161561277d57604051639eee288160e01b815260048101849052602401610d35565b60dc60009054906101000a90046001600160a01b03166001600160a01b0316633b1475a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f49190615751565b831061281657604051634e369fbd60e11b815260048101849052602401610d35565b600061284f838361282660db5490565b8789604051602001610fc792919091825260601b6001600160601b031916602082015260340190565b50905080612874578484604051630b860e6360e11b8152600401610d35929190614b7e565b600084815260dd60205260409020805460ff1916600117905561232c858561399e565b600081156128b857604051631480d36b60e21b815260040160405180910390fd5b6128c586868686866139a8565b9695505050505050565b6002546001600160a01b03811691600160a01b90910461ffff1690565b6000828152600d60205260409020546113939033612e49565b600080516020615ac583398151915261291e8133612e49565b6000612929856111d6565b905061232c8185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613a9f92505050565b60018054612978906151c7565b80601f01602080910402602001604051908101604052809291908181526020018280546129a4906151c7565b80156129f15780601f106129c6576101008083540402835291602001916129f1565b820191906000526020600020905b8154815290600101906020018083116129d457829003601f168201915b505050505081565b6001600160a01b039182166000908152607c6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b0319821663780e9d6360e01b1480610bf35750610bf382613b24565b612a5581613b74565b610e095760405162461bcd60e51b8152600401610d3590615359565b6000818152607b6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612aa6826115f9565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612aeb8133611d7a565b905090565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b612710811115612b6b5761271081604051631c1a1fe960e11b8152600401610d35929190615102565b6001600160a01b038216612b9457816040516334c5763b60e21b8152600401610d359190614a01565b600280546001600160b01b031916600160a01b61ffff8416026001600160a01b031916176001600160a01b0384169081179091556040518281527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f18304906020015b60405180910390a25050565b6000808281805b87811015612c7c57612c1a6002836152d0565b91506000898983818110612c3057612c306152ba565b905060200201359050808411612c555760008481526020829052604090209350612c73565b60008181526020859052604090209350612c7060018461525a565b92505b50600101612c07565b50941496939550929350505050565b600080612c97836115f9565b9050806001600160a01b0316846001600160a01b03161480612cbe5750612cbe81856129f9565b80612ce25750836001600160a01b0316612cd784610c9a565b6001600160a01b0316145b949350505050565b826001600160a01b0316612cfd826115f9565b6001600160a01b031614612d235760405162461bcd60e51b8152600401610d35906157e0565b6001600160a01b038216612d855760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610d35565b612d928383836001613b91565b826001600160a01b0316612da5826115f9565b6001600160a01b031614612dcb5760405162461bcd60e51b8152600401610d35906157e0565b6000818152607b6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652607a855283862080546000190190559087168086528386208054600101905586865260799094528285208054909216841790915590518493600080516020615b0c83398151915291a4505050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16610e3b57808260405163043c588360e11b8152600401610d35929190614b7e565b612e9a8282613c40565b610e3b8282613c9b565b612eae8282613d08565b6000828152600e602090815260408083206001600160a01b03851680855260028201808552838620805487526001909301855292852080546001600160a01b031916905584529152555050565b6000612f06826115f9565b9050612f16816000846001613b91565b612f1f826115f9565b6000838152607b6020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552607a84528285208054600019019055878552607990935281842080549091169055519293508492600080516020615b0c833981519152908390a45050565b612710811115612fb55761271081604051630a4930ad60e31b8152600401610d35929190615102565b600480546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb90602001612bf4565b6000908152607960205260409020546001600160a01b031690565b6001600160a01b0381166130545780604051630f7cac3760e21b8152600401610d359190614a01565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b6000612aeb7f9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e33611d7a565b6003819055600280546001600160a01b0319166001600160a01b0384161790556040517ff8086cee80709bd44c82f89dbca54115ebd05e840a88ab81df9cf5be9754eb63906113da9084908490614b7e565b600b548560df5461312d919061525a565b111561314c5760405163032b539f60e11b815260040160405180910390fd5b60de541580159061316b575060de548560df54613169919061525a565b115b156131895760405163032b539f60e11b815260040160405180910390fd5b505050505050565b806000036131c25734156131bd57600034604051631d6e402560e21b8152600401610d35929190615102565b612579565b6000806131cd6128cf565b909250905060006001600160a01b038716156131e957866131f1565b6131f1610c8b565b905060006131ff85886152d0565b9050600061271061321461ffff8616846152d0565b61321e91906152e7565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0388160161326e57813414613269578134604051631d6e402560e21b8152600401610d35929190615102565b613292565b341561329257600034604051631d6e402560e21b8152600401610d35929190615102565b61329e87338784613d6a565b6132b38733856132ae8587615787565b613d6a565b505050505050505050565b60df5460005b828110156132f5576132d68483613dab565b6132e160018361525a565b91506132ee60018261525a565b90506132c4565b5060df81905592915050565b6001600160a01b03163b151590565b600054610100900460ff166133375760405162461bcd60e51b8152600401610d3590615825565b610e3b8282613dc5565b600060018054613350906151c7565b80601f016020809104026020016040519081016040528092919081815260200182805461337c906151c7565b80156133c95780601f1061339e576101008083540402835291602001916133c9565b820191906000526020600020905b8154815290600101906020018083116133ac57829003601f168201915b5050505050905081600190816133df9190615870565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a1681836040516113da929190615929565b6000828152600d6020526040808220805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6127108111156134825761271081604051630a4930ad60e31b8152600401610d35929190615102565b6040805180820182526001600160a01b038481168083526020808401868152600089815260058352869020945185546001600160a01b031916941693909317845591516001909301929092559151838152909185917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d91015b60405180910390a3505050565b60008181526009602052604081208054613521906151c7565b80601f016020809104026020016040519081016040528092919081815260200182805461354d906151c7565b801561359a5780601f1061356f5761010080835404028352916020019161359a565b820191906000526020600020905b81548152906001019060200180831161357d57829003601f168201915b5050505050905080516000036135c657604051630793127760e11b815260048101839052602401610d35565b6000828152600a6020526040808220805460ff19166001179055517feef043febddf4e1d1cf1f72ff1407b84e036e805aa0934418cb82095da8d71649190a15050565b816001600160a01b0316836001600160a01b0316036136665760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610d35565b6001600160a01b038381166000818152607c6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016134fb565b60606136f08383604051806060016040528060278152602001615ae560279139613e05565b9392505050565b6002805482919060ff60b01b1916600160b01b83600181111561371c5761371c615189565b02179055507fd246da9440709ce0dd3f4fd669abc85ada012ab9774b8ecdcc5059ba1486b9c181604051613750919061519f565b60405180910390a150565b613766848484612cea565b61377284848484613e73565b6125795760405162461bcd60e51b8152600401610d359061594e565b6060600061379b60085490565b9050600060088054806020026020016040519081016040528092919081815260200182805480156137eb57602002820191906000526020600020905b8154815260200190600101908083116137d7575b5050505050905060005b828110156138ef5781818151811061380f5761380f6152ba565b60200260200101518510156138dd5760096000838381518110613834576138346152ba565b602002602001015181526020019081526020016000208054613855906151c7565b80601f0160208091040260200160405190810160405280929190818152602001828054613881906151c7565b80156138ce5780601f106138a3576101008083540402835291602001916138ce565b820191906000526020600020905b8154815290600101906020018083116138b157829003601f168201915b50505050509350505050919050565b6138e860018261525a565b90506137f5565b506040516309797f6960e21b815260048101859052602401610d35565b6060600061391983613f7b565b60010190506000816001600160401b0381111561393857613938614ce3565b6040519080825280601f01601f191660200182016040528015613962576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461396c57509392505050565b610e3b8282613dab565b60006139b2614051565b6139cf5760405163f409ec7360e01b815260040160405180910390fd5b856000036139f057604051638fd36a9b60e01b815260040160405180910390fd5b6000600b549050613a38818888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061407d92505050565b600b919091559150807f2a0365091ef1a40953c670dce28177e37520648a6fdc91506bffac0ab045570d6001613a6e8a8461525a565b613a789190615787565b88888888604051613a8d9594939291906159a0565b60405180910390a25095945050505050565b6000828152600a602052604090205460ff1615613ad257604051635d079ac960e11b815260048101839052602401610d35565b6000828152600960205260409020613aea8282615870565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c613b15836140e1565b836040516113da929190615102565b60006001600160e01b031982166380ac58cd60e01b1480613b5557506001600160e01b03198216635b5e139f60e01b145b80610bf357506301ffc9a760e01b6001600160e01b0319831614610bf3565b600080613b8083613010565b6001600160a01b0316141592915050565b613b9d848484846141d3565b613bb6600080516020615aa58339815191526000611d7a565b158015613bcb57506001600160a01b03841615155b8015613bdf57506001600160a01b03831615155b1561257957613bfc600080516020615aa583398151915285611d7a565b158015613c1e5750613c1c600080516020615aa583398151915284611d7a565b155b156125795783836040516313d4381960e11b8152600401610d35929190615309565b6000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000828152600e6020526040812080549160019190613cba838561525a565b90915550506000928352600e6020908152604080852083865260018101835281862080546001600160a01b039096166001600160a01b03199096168617905593855260029093019052912055565b613d128282612e49565b6000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b80156125795773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601613d9f576131bd8282614300565b61257984848484614378565b610e3b8282604051806020016040528060008152506143cb565b600054610100900460ff16613dec5760405162461bcd60e51b8152600401610d3590615825565b6077613df88382615870565b506078610dd68282615870565b6060600080856001600160a01b031685604051613e2291906159d9565b600060405180830381855af49150503d8060008114613e5d576040519150601f19603f3d011682016040523d82523d6000602084013e613e62565b606091505b50915091506128c5868383876143fe565b6000613e87846001600160a01b0316613301565b15613f7057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613ebe9033908990889088906004016159eb565b6020604051808303816000875af1925050508015613ef9575060408051601f3d908101601f19168201909252613ef691810190615a1e565b60015b613f56573d808015613f27576040519150601f19603f3d011682016040523d82523d6000602084013e613f2c565b606091505b508051600003613f4e5760405162461bcd60e51b8152600401610d359061594e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612ce2565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613fba5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613fe4576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061400257662386f26fc10000830492506010015b6305f5e100831061401a576305f5e100830492506008015b612710831061402e57612710830492506004015b60648310614040576064830492506002015b600a8310610bf35760010192915050565b6000612aeb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633611d7a565b60008061408a848661525a565b60088054600181019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30181905560008181526009602052604090209092508291506140d88482615870565b50935093915050565b6000806140ed60085490565b90506000600880548060200260200160405190810160405280929190818152602001828054801561413d57602002820191906000526020600020905b815481526020019060010190808311614129575b5050505050905060005b828110156141b657818181518110614161576141616152ba565b602002602001015185036141ae5780156141a35781614181600183615787565b81518110614191576141916152ba565b60200260200101519350505050919050565b506000949350505050565b600101614147565b50604051630793127760e11b815260048101859052602401610d35565b60018111156142425760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610d35565b816001600160a01b03851661429e576142998160ab8054600083815260ac60205260408120829055600182018355919091527ffc377260a69a39dd786235c89f4bcd5d9639157731cac38071a0508750eb115a0155565b6142c1565b836001600160a01b0316856001600160a01b0316146142c1576142c18582614475565b6001600160a01b0384166142dd576142d881614512565b61232c565b846001600160a01b0316846001600160a01b03161461232c5761232c84826145c1565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461434d576040519150601f19603f3d011682016040523d82523d6000602084013e614352565b606091505b5050905080610dd6578282604051635fdc4ec160e11b8152600401610d35929190614b7e565b816001600160a01b0316836001600160a01b0316031561257957306001600160a01b038416036143b6576131bd6001600160a01b0385168383614605565b6125796001600160a01b03851684848461465b565b6143d58383614693565b6143e26000848484613e73565b610dd65760405162461bcd60e51b8152600401610d359061594e565b6060831561446b5782516000036144645761441885613301565b6144645760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d35565b5081612ce2565b612ce2838361479c565b60006001614482846117b8565b61448c9190615787565b600083815260aa60205260409020549091508082146144df576001600160a01b038416600090815260a960209081526040808320858452825280832054848452818420819055835260aa90915290208190555b50600091825260aa602090815260408084208490556001600160a01b03909416835260a981528383209183525290812055565b60ab5460009061452490600190615787565b600083815260ac602052604081205460ab805493945090928490811061454c5761454c6152ba565b906000526020600020015490508060ab838154811061456d5761456d6152ba565b600091825260208083209091019290925582815260ac909152604080822084905585825281205560ab8054806145a5576145a5615a3b565b6001900381819060005260206000200160009055905550505050565b60006145cc836117b8565b6001600160a01b03909316600090815260a960209081526040808320868452825280832085905593825260aa9052919091209190915550565b610dd68363a9059cbb60e01b8484604051602401614624929190614b7e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526147c6565b6040516001600160a01b03808516602483015283166044820152606481018290526125799085906323b872dd60e01b90608401614624565b6001600160a01b0382166146e95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610d35565b6146f281613b74565b1561470f5760405162461bcd60e51b8152600401610d3590615a51565b61471d600083836001613b91565b61472681613b74565b156147435760405162461bcd60e51b8152600401610d3590615a51565b6001600160a01b0382166000818152607a6020908152604080832080546001019055848352607990915280822080546001600160a01b031916841790555183929190600080516020615b0c833981519152908290a45050565b8151156147ac5781518083602001fd5b8060405162461bcd60e51b8152600401610d3591906149ee565b600061481b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166148989092919063ffffffff16565b805190915015610dd657808060200190518101906148399190615a87565b610dd65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d35565b6060612ce2848460008585600080866001600160a01b031685876040516148bf91906159d9565b60006040518083038185875af1925050503d80600081146148fc576040519150601f19603f3d011682016040523d82523d6000602084013e614901565b606091505b5091509150614912878383876143fe565b979650505050505050565b508054614929906151c7565b6000825580601f10614939575050565b601f016020900490600052602060002090810190610e0991905b808211156149675760008155600101614953565b5090565b6001600160e01b031981168114610e0957600080fd5b60006020828403121561499357600080fd5b81356136f08161496b565b60005b838110156149b95781810151838201526020016149a1565b50506000910152565b600081518084526149da81602086016020860161499e565b601f01601f19169290920160200192915050565b6020815260006136f060208301846149c2565b6001600160a01b0391909116815260200190565b600060208284031215614a2757600080fd5b5035919050565b6001600160a01b0381168114610e0957600080fd5b60008060408385031215614a5657600080fd5b8235614a6181614a2e565b946020939093013593505050565b600060208284031215614a8157600080fd5b81356136f081614a2e565b60006080828403121561274457600080fd5b60008060008060008060c08789031215614ab757600080fd5b863595506020870135614ac981614a2e565b9450604087013593506060870135614ae081614a2e565b92506080870135915060a08701356001600160401b03811115614b0257600080fd5b614b0e89828a01614a8c565b9150509295509295509295565b600080600060608486031215614b3057600080fd5b8335614b3b81614a2e565b92506020840135614b4b81614a2e565b929592945050506040919091013590565b60008060408385031215614b6f57600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b60008060408385031215614baa57600080fd5b823591506020830135614bbc81614a2e565b809150509250929050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260018060a01b0360c08301511660e0820152600060e0830151610100808185015250612ce26101208401826149c2565b60008083601f840112614c4657600080fd5b5081356001600160401b03811115614c5d57600080fd5b6020830191508360208260051b8501011115614c7857600080fd5b9250929050565b8015158114610e0957600080fd5b600080600060408486031215614ca257600080fd5b83356001600160401b03811115614cb857600080fd5b614cc486828701614c34565b9094509250506020840135614cd881614c7f565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614d2157614d21614ce3565b604052919050565b60006001600160401b03821115614d4257614d42614ce3565b50601f01601f191660200190565b600082601f830112614d6157600080fd5b8135614d74614d6f82614d29565b614cf9565b818152846020838601011115614d8957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215614dbf57600080fd5b8635614dca81614a2e565b9550602087013594506040870135614de181614a2e565b93506060870135925060808701356001600160401b0380821115614e0457600080fd5b614e108a838b01614a8c565b935060a0890135915080821115614e2657600080fd5b50614b0e89828a01614d50565b60008060008060808587031215614e4957600080fd5b8435614e5481614a2e565b93506020850135614e6481614a2e565b92506040850135915060608501356001600160401b03811115614e8657600080fd5b614e9287828801614d50565b91505092959194509250565b600060208284031215614eb057600080fd5b81356001600160401b03811115614ec657600080fd5b612ce284828501614d50565b600080600060608486031215614ee757600080fd5b833592506020840135614b4b81614a2e565b60008060408385031215614f0c57600080fd5b8235614f1781614a2e565b91506020830135614bbc81614c7f565b60008060208385031215614f3a57600080fd5b82356001600160401b03811115614f5057600080fd5b614f5c85828601614c34565b90969095509350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614fbf57603f19888603018452614fad8583516149c2565b94509285019290850190600101614f91565b5092979650505050505050565b600060208284031215614fde57600080fd5b8135600281106136f057600080fd5b6000806000806060858703121561500357600080fd5b843561500e81614a2e565b93506020850135925060408501356001600160401b0381111561503057600080fd5b61503c87828801614c34565b95989497509550505050565b60008083601f84011261505a57600080fd5b5081356001600160401b0381111561507157600080fd5b602083019150836020828501011115614c7857600080fd5b6000806000806000606086880312156150a157600080fd5b8535945060208601356001600160401b03808211156150bf57600080fd5b6150cb89838a01615048565b909650945060408801359150808211156150e457600080fd5b506150f188828901615048565b969995985093965092949392505050565b918252602082015260400190565b60008060006040848603121561512557600080fd5b8335925060208401356001600160401b0381111561514257600080fd5b61514e86828701615048565b9497909650939450505050565b6000806040838503121561516e57600080fd5b823561517981614a2e565b91506020830135614bbc81614a2e565b634e487b7160e01b600052602160045260246000fd5b60208101600283106151c157634e487b7160e01b600052602160045260246000fd5b91905290565b600181811c908216806151db57607f821691505b60208210810361274457634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261521257600080fd5b8301803591506001600160401b0382111561522c57600080fd5b6020019150600581901b3603821315614c7857600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610bf357610bf3615244565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610bf357610bf3615244565b60008261530457634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0392831681529116602082015260400190565b6000806040838503121561533657600080fd5b825161534181614a2e565b602084015190925061ffff81168114614bbc57600080fd5b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6000823560fe198336030181126153a157600080fd5b9190910192915050565b6000808335601e198436030181126153c257600080fd5b8301803591506001600160401b038211156153dc57600080fd5b602001915036819003821315614c7857600080fd5b601f821115610dd6576000816000526020600020601f850160051c8101602086101561541a5750805b601f850160051c820191505b8181101561318957828155600101615426565b600019600383901b1c191660019190911b1790565b6001600160401b0383111561546557615465614ce3565b6154798361547383546151c7565b836153f1565b6000601f8411600181146154a757600085156154955750838201355b61549f8682615439565b84555061232c565b600083815260209020601f19861690835b828110156154d857868501358255602094850194600190920191016154b8565b50868210156154f55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813581556020820135600182015560408201356002820155606082013560038201556080820135600482015560a082013560058201556006810160c083013561554f81614a2e565b81546001600160a01b0319166001600160a01b039190911617905561557760e08301836153ab565b61257981836007860161544e565b6000808335601e1984360301811261559c57600080fd5b83016020810192503590506001600160401b038111156155bb57600080fd5b803603821315614c7857600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408082528181018490526000906060808401600587901b850182018885805b8a8110156156c557888403605f190185528235368d900360fe19018112615638578283fd5b8c018035855260208082013581870152888201358987015287820135888701526080808301359087015260a080830135908701526101009060c08084013561567f81614a2e565b6001600160a01b03169088015260e061569a84820185615585565b945083828a01526156ae848a0186836155ca565b998301999850505094909401935050600101615613565b50505086151560208701529350612ce292505050565b6000602082840312156156ed57600080fd5b81516001600160401b0381111561570357600080fd5b8201601f8101841361571457600080fd5b8051615722614d6f82614d29565b81815285602083850101111561573757600080fd5b61574882602083016020860161499e565b95945050505050565b60006020828403121561576357600080fd5b5051919050565b60006020828403121561577c57600080fd5b81516136f081614a2e565b81810381811115610bf357610bf3615244565b6000816157a9576157a9615244565b506000190190565b600083516157c381846020880161499e565b8351908301906157d781836020880161499e565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b81516001600160401b0381111561588957615889614ce3565b61589d8161589784546151c7565b846153f1565b602080601f8311600181146158cc57600084156158ba5750858301515b6158c48582615439565b865550613189565b600085815260208120601f198616915b828110156158fb578886015182559484019460019091019084016158dc565b50858210156159195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600061593c60408301856149c2565b828103602084015261574881856149c2565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8581526060602082015260006159ba6060830186886155ca565b82810360408401526159cd8185876155ca565b98975050505050505050565b600082516153a181846020870161499e565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906128c5908301846149c2565b600060208284031215615a3057600080fd5b81516136f08161496b565b634e487b7160e01b600052603160045260246000fd5b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b604082015260600190565b600060208284031215615a9957600080fd5b81516136f081614c7f56fe8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f80416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c34a5056ce9f3417fb7bf6e6470bc758f109a6e9294afc2b094a631dce588b3064736f6c63430008170033