{
  "_format": "hh-sol-artifact-1",
  "contractName": "DropuERC721AReference",
  "sourceName": "contracts/implementations/DropuERC721AReference.sol",
  "abi": [
    {
      "inputs": [],
      "name": "CORI_SUBSCRIPTION_ADDRESS",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EMPTY_SUBSCRIPTION_ADDRESS",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "adminRetrieveLoan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "adminUnstake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "baseTokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "burnAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes32[][]",
          "name": "_merkleProofs",
          "type": "bytes32[][]"
        }
      ],
      "name": "burnDepositTokensToMint",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "burnPaymentInWei",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[][]",
          "name": "_tokenIds",
          "type": "uint256[][]"
        },
        {
          "internalType": "uint256",
          "name": "_tokensToMint",
          "type": "uint256"
        }
      ],
      "name": "burnToMint",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "burnToRefund",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIDs",
          "type": "uint256[]"
        }
      ],
      "name": "checkFreeClaimEligibility",
      "outputs": [
        {
          "internalType": "bool[]",
          "name": "",
          "type": "bool[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_numTokens",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "creditCardMint",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "currentTokenStakeTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultDropuFeePerToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "determineFundingSuccess",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "disableSoulbindAdminTransfersPermanently",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "dropuAdminAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "dropuFeePerToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "dropuPayoutAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "explicitOwnershipOf",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "startTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bool",
              "name": "burned",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "extraData",
              "type": "uint24"
            }
          ],
          "internalType": "struct DropuERC721AReference.TokenOwnership",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "explicitOwnershipsOf",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "startTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bool",
              "name": "burned",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "extraData",
              "type": "uint24"
            }
          ],
          "internalType": "struct DropuERC721AReference.TokenOwnership[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIDs",
          "type": "uint256[]"
        }
      ],
      "name": "freeClaim",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "freezeMetadata",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "freezePayoutAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "fundingTargetInWei",
      "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": "getDefaultCreditCardMintAddresses",
      "outputs": [
        {
          "internalType": "address[5]",
          "name": "",
          "type": "address[5]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIDs",
          "type": "uint256[]"
        }
      ],
      "name": "getRandomHashes",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSettings",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "publicSaleActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "usePublicSaleTimes",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "presaleActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "usePresaleTimes",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "soulbindingActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "randomHashActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "enforceRoyalties",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "dropuFeeActive",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "publicMintsAllowedPerAddress",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "presaleMintsAllowedPerAddress",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "publicMintsAllowedPerTransaction",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "presaleMintsAllowedPerTransaction",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "maxSupply",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "presaleMaxSupply",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "royaltyBps",
              "type": "uint16"
            },
            {
              "internalType": "uint32",
              "name": "publicPrice",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presalePrice",
              "type": "uint32"
            },
            {
              "internalType": "uint24",
              "name": "projectId",
              "type": "uint24"
            },
            {
              "internalType": "string",
              "name": "uriBase",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "presaleSignerAddress",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "publicSaleStartTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "publicSaleEndTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presaleStartTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presaleEndTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "fundingEndsAt",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "fundingTarget",
              "type": "uint32"
            }
          ],
          "internalType": "struct DropuERC721AReference.BaseConfig",
          "name": "",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "bool",
              "name": "stakingActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "loaningActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "freeClaimActive",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "mintsPerFreeClaim",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "freeClaimContractAddress",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "burnClaimActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "useBurnTokenIdForMetadata",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "mintsPerBurn",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "burnPayment",
              "type": "uint32"
            },
            {
              "internalType": "bool",
              "name": "payoutAddressesFrozen",
              "type": "bool"
            },
            {
              "internalType": "uint32",
              "name": "refundEndsAt",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "refundPrice",
              "type": "uint32"
            },
            {
              "internalType": "bool",
              "name": "metadataFrozen",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "soulbindAdminTransfersPermanentlyDisabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "depositClaimActive",
              "type": "bool"
            },
            {
              "internalType": "uint32",
              "name": "remainingDepositPayment",
              "type": "uint32"
            },
            {
              "internalType": "address",
              "name": "depositContractAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "depositMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint16[]",
              "name": "payoutBasisPoints",
              "type": "uint16[]"
            },
            {
              "internalType": "address[]",
              "name": "payoutAddresses",
              "type": "address[]"
            },
            {
              "internalType": "address",
              "name": "royaltyPayoutAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "soulboundAdminAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "refundAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "creditCardMintAddress",
              "type": "address"
            }
          ],
          "internalType": "struct DropuERC721AReference.AdvancedConfig",
          "name": "",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "contractAddress",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "tokenType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "tokensPerBurn",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "tokenId",
              "type": "uint16"
            }
          ],
          "internalType": "struct DropuERC721AReference.BurnToken[]",
          "name": "",
          "type": "tuple[]"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_mintNumber",
          "type": "uint256[]"
        }
      ],
      "name": "gift",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_newRefundEndsAt",
          "type": "uint32"
        }
      ],
      "name": "increaseRefundEndsAt",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "components": [
            {
              "internalType": "bool",
              "name": "publicSaleActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "usePublicSaleTimes",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "presaleActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "usePresaleTimes",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "soulbindingActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "randomHashActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "enforceRoyalties",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "dropuFeeActive",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "publicMintsAllowedPerAddress",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "presaleMintsAllowedPerAddress",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "publicMintsAllowedPerTransaction",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "presaleMintsAllowedPerTransaction",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "maxSupply",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "presaleMaxSupply",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "royaltyBps",
              "type": "uint16"
            },
            {
              "internalType": "uint32",
              "name": "publicPrice",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presalePrice",
              "type": "uint32"
            },
            {
              "internalType": "uint24",
              "name": "projectId",
              "type": "uint24"
            },
            {
              "internalType": "string",
              "name": "uriBase",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "presaleSignerAddress",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "publicSaleStartTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "publicSaleEndTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presaleStartTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presaleEndTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "fundingEndsAt",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "fundingTarget",
              "type": "uint32"
            }
          ],
          "internalType": "struct DropuERC721AReference.BaseConfig",
          "name": "_config",
          "type": "tuple"
        }
      ],
      "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": [],
      "name": "isOperatorFilterRegistryRevoked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_receiver",
          "type": "address"
        }
      ],
      "name": "loan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "loanedBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "loanedTokensByAddress",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "numberMinted",
      "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": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_messageHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_numTokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maximumAllowedMints",
          "type": "uint256"
        }
      ],
      "name": "presaleMint",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "presalePriceInWei",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "presaleTimeIsActive",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_numTokens",
          "type": "uint256"
        }
      ],
      "name": "publicMint",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "publicPriceInWei",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "publicSaleTimeIsActive",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_newMaxSupply",
          "type": "uint16"
        }
      ],
      "name": "reduceMaxSupply",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_newPresaleMaxSupply",
          "type": "uint16"
        }
      ],
      "name": "reducePresaleMaxSupply",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "refund",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "refundGuaranteeActive",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "refundPriceInWei",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "remainingDepositPaymentInWei",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "retrieveLoan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "revokeOperatorFilterRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_salePrice",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "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": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "payable",
      "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": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_newBaseURI",
          "type": "string"
        }
      ],
      "name": "setBaseURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_burnClaimActive",
          "type": "bool"
        }
      ],
      "name": "setBurnClaimState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_creditCardMintAddress",
          "type": "address"
        }
      ],
      "name": "setCreditCardMintAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_depositClaimActive",
          "type": "bool"
        }
      ],
      "name": "setDepositClaimState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_depositContractAddress",
          "type": "address"
        }
      ],
      "name": "setDepositContractAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_depositMerkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "setDepositMerkleRoot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_dropuFeePerToken",
          "type": "uint256"
        }
      ],
      "name": "setDropuFeePerToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_freeClaimContractAddress",
          "type": "address"
        }
      ],
      "name": "setFreeClaimContractAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_freeClaimActive",
          "type": "bool"
        }
      ],
      "name": "setFreeClaimState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_randomHashActive",
          "type": "bool"
        }
      ],
      "name": "setGenerateRandomHashState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_loaningActive",
          "type": "bool"
        }
      ],
      "name": "setLoaningActive",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_presaleEndTime",
          "type": "uint32"
        }
      ],
      "name": "setPresaleEndTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mintsAllowed",
          "type": "uint8"
        }
      ],
      "name": "setPresaleMintsAllowedPerAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mintsAllowed",
          "type": "uint8"
        }
      ],
      "name": "setPresaleMintsAllowedPerTransaction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_presalePrice",
          "type": "uint32"
        }
      ],
      "name": "setPresalePrice",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_presaleSignerAddress",
          "type": "address"
        }
      ],
      "name": "setPresaleSignerAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_presaleStartTime",
          "type": "uint32"
        }
      ],
      "name": "setPresaleStartTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_saleActiveState",
          "type": "bool"
        }
      ],
      "name": "setPresaleState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mintsAllowed",
          "type": "uint8"
        }
      ],
      "name": "setPublicMintsAllowedPerAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mintsAllowed",
          "type": "uint8"
        }
      ],
      "name": "setPublicMintsAllowedPerTransaction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_publicPrice",
          "type": "uint32"
        }
      ],
      "name": "setPublicPrice",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_publicSaleEndTime",
          "type": "uint32"
        }
      ],
      "name": "setPublicSaleEndTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_publicSaleStartTime",
          "type": "uint32"
        }
      ],
      "name": "setPublicSaleStartTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_saleActiveState",
          "type": "bool"
        }
      ],
      "name": "setPublicSaleState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_refundAddress",
          "type": "address"
        }
      ],
      "name": "setRefundAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_remainingDepositPayment",
          "type": "uint32"
        }
      ],
      "name": "setRemainingDepositPayment",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_royaltyBps",
          "type": "uint16"
        }
      ],
      "name": "setRoyaltyBasisPoints",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_royaltyPayoutAddress",
          "type": "address"
        }
      ],
      "name": "setRoyaltyPayoutAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_soulbindingActive",
          "type": "bool"
        }
      ],
      "name": "setSoulbindingState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_adminAddress",
          "type": "address"
        }
      ],
      "name": "setSoulboundAdminAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_stakingState",
          "type": "bool"
        }
      ],
      "name": "setStakingState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "_newURIs",
          "type": "string[]"
        }
      ],
      "name": "setTokenURIs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_useBurnTokenIdForMetadata",
          "type": "bool"
        }
      ],
      "name": "setUseBurnTokenIdForMetadata",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_usePresaleTimes",
          "type": "bool"
        }
      ],
      "name": "setUsePresaleTimes",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_usePublicSaleTimes",
          "type": "bool"
        }
      ],
      "name": "setUsePublicSaleTimes",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "expires",
          "type": "uint64"
        }
      ],
      "name": "setUser",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "soulboundAdminTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "stakeTokens",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "stakingTransfer",
      "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": "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": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "stop",
          "type": "uint256"
        }
      ],
      "name": "tokensOfOwnerIn",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalLoaned",
      "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": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "totalTokenStakeTime",
      "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": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "unstakeTokens",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "stakingActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "loaningActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "freeClaimActive",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "mintsPerFreeClaim",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "freeClaimContractAddress",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "burnClaimActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "useBurnTokenIdForMetadata",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "mintsPerBurn",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "burnPayment",
              "type": "uint32"
            },
            {
              "internalType": "bool",
              "name": "payoutAddressesFrozen",
              "type": "bool"
            },
            {
              "internalType": "uint32",
              "name": "refundEndsAt",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "refundPrice",
              "type": "uint32"
            },
            {
              "internalType": "bool",
              "name": "metadataFrozen",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "soulbindAdminTransfersPermanentlyDisabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "depositClaimActive",
              "type": "bool"
            },
            {
              "internalType": "uint32",
              "name": "remainingDepositPayment",
              "type": "uint32"
            },
            {
              "internalType": "address",
              "name": "depositContractAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "depositMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint16[]",
              "name": "payoutBasisPoints",
              "type": "uint16[]"
            },
            {
              "internalType": "address[]",
              "name": "payoutAddresses",
              "type": "address[]"
            },
            {
              "internalType": "address",
              "name": "royaltyPayoutAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "soulboundAdminAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "refundAddress",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "creditCardMintAddress",
              "type": "address"
            }
          ],
          "internalType": "struct DropuERC721AReference.AdvancedConfig",
          "name": "_advancedConfig",
          "type": "tuple"
        }
      ],
      "name": "updateAdvancedConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "publicSaleActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "usePublicSaleTimes",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "presaleActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "usePresaleTimes",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "soulbindingActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "randomHashActive",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "enforceRoyalties",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "dropuFeeActive",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "publicMintsAllowedPerAddress",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "presaleMintsAllowedPerAddress",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "publicMintsAllowedPerTransaction",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "presaleMintsAllowedPerTransaction",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "maxSupply",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "presaleMaxSupply",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "royaltyBps",
              "type": "uint16"
            },
            {
              "internalType": "uint32",
              "name": "publicPrice",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presalePrice",
              "type": "uint32"
            },
            {
              "internalType": "uint24",
              "name": "projectId",
              "type": "uint24"
            },
            {
              "internalType": "string",
              "name": "uriBase",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "presaleSignerAddress",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "publicSaleStartTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "publicSaleEndTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presaleStartTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "presaleEndTime",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "fundingEndsAt",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "fundingTarget",
              "type": "uint32"
            }
          ],
          "internalType": "struct DropuERC721AReference.BaseConfig",
          "name": "_baseConfig",
          "type": "tuple"
        }
      ],
      "name": "updateBaseConfig",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "contractAddress",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "tokenType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "tokensPerBurn",
              "type": "uint8"
            },
            {
              "internalType": "uint16",
              "name": "tokenId",
              "type": "uint16"
            }
          ],
          "internalType": "struct DropuERC721AReference.BurnToken[]",
          "name": "_burnTokens",
          "type": "tuple[]"
        }
      ],
      "name": "updateBurnTokens",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mintsPerBurn",
          "type": "uint8"
        }
      ],
      "name": "updateMintsPerBurn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mintsPerFreeClaim",
          "type": "uint8"
        }
      ],
      "name": "updateMintsPerFreeClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_burnPayment",
          "type": "uint32"
        }
      ],
      "name": "updatePaymentPerBurn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_payoutAddresses",
          "type": "address[]"
        },
        {
          "internalType": "uint16[]",
          "name": "_payoutBasisPoints",
          "type": "uint16[]"
        }
      ],
      "name": "updatePayoutAddressesAndBasisPoints",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "userExpires",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "userOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506125a8806100206000396000f3fe6080604052600436106107625760003560e01c80637e9ab37f116103c7578063c2f1f14a116101fd578063db3e4c8411610118578063ed5a2ec1116100ab578063f636f0eb1161007a578063f636f0eb146108d0578063fd13e8971461079d578063fdec72f21461090d578063ffd9ac7d146107ad57600080fd5b8063ed5a2ec114610ae5578063f2fde38b146108a2578063f3143163146108a2578063f47749fc146108a257600080fd5b8063e030565e116100e7578063e030565e14610e72578063e88fd02114610a72578063e985e9c514610e8d578063ecba222a146109e557600080fd5b8063db3e4c8414610e57578063dc33e68114610a21578063dd4b4ddf14610a57578063df14a56c1461083b57600080fd5b8063c92dae4f11610190578063d58bcaf01161015f578063d58bcaf014610856578063d8d988da146107ad578063d92d1602146108f9578063d93eab1d1461083b57600080fd5b8063c92dae4f14610e3c578063cdd94d4d146108f9578063d111515d1461079d578063d547cfb7146107cb57600080fd5b8063c6a83384116101cc578063c6a83384146108d0578063c782311c14610a72578063c7a2152814610856578063c87b56dd14610e2157600080fd5b8063c2f1f14a146107e8578063c4b7705814610aca578063c529c7b8146107ad578063c580ad66146108d057600080fd5b806399a2557a116102ed578063b05caff011610280578063bce4d6ae1161024f578063bce4d6ae146108d0578063be683af114610d5b578063c16bed4014610d76578063c23dc68f14610d9157600080fd5b8063b05caff01461090d578063b4c9cb6a14610d3f578063b602ae66146107ad578063b88d4fde14610d4d57600080fd5b8063a39b269c116102bc578063a39b269c146109e5578063a4156b61146108d0578063a528891f146108a2578063a91dae6a146108a257600080fd5b806399a2557a14610cde5780639bb7fb03146107ad578063a060e7fa14610d02578063a22cb46514610d2457600080fd5b806388a4f6d1116103655780639293a5c7116103345780639293a5c7146108d057806395d89b41146107cb578063989f98381461085657806398fa6c4514610a5757600080fd5b806388a4f6d11461085657806389fcc53c14610cd05780638da5cb5b146108f95780638fc88c481461099457600080fd5b80638456cb59116103a15780638456cb591461079d5780638462151c14610ae557806385b4bb5314610b0d57806386ad19ab146108d057600080fd5b80637e9ab37f1461090d57806380355fe2146107ad57806381a842ad14610aca57600080fd5b806343bf08391161059c5780636352211e116104c257806372c8ddf8116104555780637705f9b5116104245780637705f9b514610aa15780637da4d18114610aaf5780637e62f3b3146108d05780637e8011f41461085657600080fd5b806372c8ddf8146108d0578063751c1a8e1461090d5780637572756b14610856578063759990fb14610a8d57600080fd5b806370a082311161049157806370a0823114610a2157806370d5ae05146108f957806370ea028f14610a72578063715018a61461079d57600080fd5b80636352211e146107e8578063664b73511461090d5780636701b2bf146109e5578063676c7e5e14610a5757600080fd5b806357c333921161053a5780635e03a6aa116105095780635e03a6aa14610a215780635ef9432a1461079d5780635fd84c28146107ad57806360e8772d14610a3c57600080fd5b806357c33392146107ad5780635a32baec146109e55780635bbb2177146109f95780635c975abb146109e557600080fd5b80634d8e0ea3116105765780634d8e0ea31461083b578063514a0eb71461099457806355f804b3146109af57806356f96758146109ca57600080fd5b806343bf08391461083b57806345aeefde146108a257806348fc6f1a146108d057600080fd5b8063254fedde1161068c57806335a825b01161061f5780633ccfd60b116105ee5780633ccfd60b1461079d5780633f4ba83a1461079d5780633f5495a21461085657806342842e0e146108bd57600080fd5b806335a825b014610979578063380d9006146109945780633a838c2a146108565780633b51e5cf146108d057600080fd5b80632a55205a1161065b5780632a55205a146109285780632db115441461096b57806330ef295b146108a25780633153597d1461079d57600080fd5b8063254fedde146108eb57806326cd5ec4146108f9578063278ecde11461090d57806329d9bf96146108f957600080fd5b80630a0bb5fa1161070457806318160ddd116106d357806318160ddd146108565780631b7d0ffe1461083b57806323b872dd146108bd57806323dabe19146108d057600080fd5b80630a0bb5fa1461083b5780630be67fb11461085657806313aa4e071461087457806315b75bea146108a257600080fd5b806306fdde031161074057806306fdde03146107cb578063081812fc146107e8578063081af6161461081b578063095ea7b31461082d57600080fd5b806301ffc9a71461076757806304ff2d071461079d5780630662069d146107ad575b600080fd5b34801561077357600080fd5b50610788610782366004610ede565b50600090565b60405190151581526020015b60405180910390f35b3480156107a957600080fd5b505b005b3480156107b957600080fd5b506107ab6107c8366004610f3b565b50565b3480156107d757600080fd5b5060605b6040516107949190610f9c565b3480156107f457600080fd5b50610803610782366004610faf565b6040516001600160a01b039091168152602001610794565b6107ab610829366004610fdf565b5050565b6107ab61082936600461100b565b34801561084757600080fd5b506107ab6107c8366004611046565b34801561086257600080fd5b5060005b604051908152602001610794565b34801561088057600080fd5b5061089561088f3660046111c1565b50606090565b60405161079491906111fe565b3480156108ae57600080fd5b506107ab6107c8366004611244565b6107ab6108cb36600461125f565b505050565b3480156108dc57600080fd5b506107ab6107c83660046112ab565b6107ab6107c83660046111c1565b34801561090557600080fd5b506000610803565b34801561091957600080fd5b506107ab6107c8366004610faf565b34801561093457600080fd5b5061094c6109433660046112c6565b50600091829150565b604080516001600160a01b039093168352602083019190915201610794565b6107ab6107c8366004610faf565b34801561098557600080fd5b506107ab6108cb366004611582565b3480156109a057600080fd5b50610866610782366004610faf565b3480156109bb57600080fd5b506107ab6107c836600461160a565b3480156109d657600080fd5b506107ab610829366004611703565b3480156109f157600080fd5b506000610788565b348015610a0557600080fd5b50610a1461088f3660046111c1565b6040516107949190611767565b348015610a2d57600080fd5b50610866610782366004611244565b348015610a4857600080fd5b506107ab6107c83660046117e4565b348015610a6357600080fd5b506107ab6107c83660046118cb565b348015610a7e57600080fd5b506107ab6107c83660046111c1565b6107ab610a9b3660046118e6565b50505050565b6107ab61082936600461193d565b348015610abb57600080fd5b506107ab6107c8366004611997565b348015610ad657600080fd5b506107ab6108cb36600461125f565b348015610af157600080fd5b50610b0061088f366004611244565b60405161079491906119cc565b348015610b1957600080fd5b50610cbd604080516103408101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018390526101c082018390526101e0820183905261020082018390526102208201839052610240820152610260810182905261028081018290526102a081018290526102c081018290526102e081018290526103008101829052610320810191909152604080516103008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018390526101c082018390526101e0820183905261020082018390526102208201839052610240820181905261026082015261028081018290526102a081018290526102c081018290526102e08101919091526060600080600080919293949596565b6040516107949796959493929190611ca2565b6107ab6108cb366004611f02565b348015610cea57600080fd5b50610b00610cf9366004611fdf565b60609392505050565b348015610d0e57600080fd5b50610d17610eb0565b6040516107949190612012565b348015610d3057600080fd5b506107ab61082936600461204c565b6107ab610829366004612076565b6107ab610a9b3660046121a1565b348015610d6757600080fd5b506107ab6107c8366004612209565b348015610d8257600080fd5b50610b0061088f3660046111c1565b348015610d9d57600080fd5b50610dd4610dac366004610faf565b5060408051608081018252600080825260208201819052918101829052606081019190915290565b604051610794919081516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260609182015162ffffff169181019190915260800190565b348015610e2d57600080fd5b506107db61088f366004610faf565b348015610e4857600080fd5b506107ab610829366004610fdf565b348015610e6357600080fd5b506107ab610829366004612426565b348015610e7e57600080fd5b506107ab6108cb3660046124fb565b348015610e9957600080fd5b50610788610ea8366004612548565b600092915050565b610eb8610ec0565b90565b919050565b6040518060a001604052806005906020820280368337509192915050565b600060208284031215610ef057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f2057600080fd5b9392505050565b803563ffffffff81168114610ebb57600080fd5b600060208284031215610f4d57600080fd5b610f2082610f27565b6000815180845260005b81811015610f7c57602081850181015186830182015201610f60565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610f206020830184610f56565b600060208284031215610fc157600080fd5b5035919050565b80356001600160a01b0381168114610ebb57600080fd5b60008060408385031215610ff257600080fd5b8235915061100260208401610fc8565b90509250929050565b6000806040838503121561101e57600080fd5b61102783610fc8565b946020939093013593505050565b803560ff81168114610ebb57600080fd5b60006020828403121561105857600080fd5b610f2082611035565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610340810167ffffffffffffffff811182821017156110b4576110b4611061565b60405290565b6040516080810167ffffffffffffffff811182821017156110b4576110b4611061565b604051610300810167ffffffffffffffff811182821017156110b4576110b4611061565b604051601f8201601f1916810167ffffffffffffffff8111828210171561112a5761112a611061565b604052919050565b600067ffffffffffffffff82111561114c5761114c611061565b5060051b60200190565b600082601f83011261116757600080fd5b8135602061117c61117783611132565b611101565b82815260059290921b8401810191818101908684111561119b57600080fd5b8286015b848110156111b6578035835291830191830161119f565b509695505050505050565b6000602082840312156111d357600080fd5b813567ffffffffffffffff8111156111ea57600080fd5b6111f684828501611156565b949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561123857835115158352928401929184019160010161121a565b50909695505050505050565b60006020828403121561125657600080fd5b610f2082610fc8565b60008060006060848603121561127457600080fd5b61127d84610fc8565b925061128b60208501610fc8565b9150604084013590509250925092565b80358015158114610ebb57600080fd5b6000602082840312156112bd57600080fd5b610f208261129b565b600080604083850312156112d957600080fd5b50508035926020909101359150565b600082601f8301126112f957600080fd5b813567ffffffffffffffff81111561131357611313611061565b611326601f8201601f1916602001611101565b81815284602083860101111561133b57600080fd5b816020850160208301376000918101602001919091529392505050565b803561ffff81168114610ebb57600080fd5b803562ffffff81168114610ebb57600080fd5b6000610340828403121561139057600080fd5b611398611090565b90506113a38261129b565b81526113b16020830161129b565b60208201526113c26040830161129b565b60408201526113d36060830161129b565b60608201526113e46080830161129b565b60808201526113f560a0830161129b565b60a082015261140660c0830161129b565b60c082015261141760e0830161129b565b60e082015261010061142a818401611035565b9082015261012061143c838201611035565b9082015261014061144e838201611035565b90820152610160611460838201611035565b90820152610180611472838201611358565b908201526101a0611484838201611358565b908201526101c0611496838201611358565b908201526101e06114a8838201610f27565b908201526102006114ba838201610f27565b908201526102206114cc83820161136a565b908201526102408281013567ffffffffffffffff8111156114ec57600080fd5b6114f8858286016112e8565b82840152505061026061150c818401610fc8565b9082015261028061151e838201610f27565b908201526102a0611530838201610f27565b908201526102c0611542838201610f27565b908201526102e0611554838201610f27565b90820152610300611566838201610f27565b90820152610320611578838201610f27565b9082015292915050565b60008060006060848603121561159757600080fd5b833567ffffffffffffffff808211156115af57600080fd5b6115bb878388016112e8565b945060208601359150808211156115d157600080fd5b6115dd878388016112e8565b935060408601359150808211156115f357600080fd5b506116008682870161137d565b9150509250925092565b60006020828403121561161c57600080fd5b813567ffffffffffffffff81111561163357600080fd5b6111f6848285016112e8565b600082601f83011261165057600080fd5b8135602061166061117783611132565b82815260059290921b8401810191818101908684111561167f57600080fd5b8286015b848110156111b65761169481610fc8565b8352918301918301611683565b600082601f8301126116b257600080fd5b813560206116c261117783611132565b82815260059290921b840181019181810190868411156116e157600080fd5b8286015b848110156111b6576116f681611358565b83529183019183016116e5565b6000806040838503121561171657600080fd5b823567ffffffffffffffff8082111561172e57600080fd5b61173a8683870161163f565b9350602085013591508082111561175057600080fd5b5061175d858286016116a1565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611238576117d18385516001600160a01b03815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b9284019260809290920191600101611783565b600060208083850312156117f757600080fd5b823567ffffffffffffffff81111561180e57600080fd5b8301601f8101851361181f57600080fd5b803561182d61117782611132565b81815260079190911b8201830190838101908783111561184c57600080fd5b928401925b828410156118c0576080848903121561186a5760008081fd5b6118726110ba565b61187b85610fc8565b8152611888868601611035565b868201526040611899818701611035565b9082015260606118aa868201611358565b9082015282526080939093019290840190611851565b979650505050505050565b6000602082840312156118dd57600080fd5b610f2082611358565b600080600080608085870312156118fc57600080fd5b84359350602085013567ffffffffffffffff81111561191a57600080fd5b611926878288016112e8565b949794965050505060408301359260600135919050565b6000806040838503121561195057600080fd5b823567ffffffffffffffff8082111561196857600080fd5b6119748683870161163f565b9350602085013591508082111561198a57600080fd5b5061175d85828601611156565b6000602082840312156119a957600080fd5b813567ffffffffffffffff8111156119c057600080fd5b6111f68482850161137d565b6020808252825182820181905260009190848201906040850190845b81811015611238578351835292840192918401916001016119e8565b600081518084526020808501945080840160005b83811015611a3857815161ffff1687529582019590820190600101611a18565b509495945050505050565b600081518084526020808501945080840160005b83811015611a385781516001600160a01b031687529582019590820190600101611a57565b80511515825260006103006020830151611a9a602086018215159052565b506040830151611aae604086018215159052565b506060830151611ac3606086018260ff169052565b506080830151611ade60808601826001600160a01b03169052565b5060a0830151611af260a086018215159052565b5060c0830151611b0660c086018215159052565b5060e0830151611b1b60e086018260ff169052565b506101008381015163ffffffff90811691860191909152610120808501511515908601526101408085015182169086015261016080850151821690860152610180808501511515908601526101a0808501511515908601526101c0808501511515908601526101e08085015190911690850152610200808401516001600160a01b031690850152610220808401519085015261024080840151818601839052611bc683870182611a04565b925050506102608084015185830382870152611be28382611a43565b9250505061028080840151611c01828701826001600160a01b03169052565b50506102a0838101516001600160a01b03908116918601919091526102c0808501518216908601526102e0938401511692909301919091525090565b600081518084526020808501945080840160005b83811015611a3857815180516001600160a01b031688528381015160ff908116858a01526040808301519091169089015260609081015161ffff169088015260809096019590820190600101611c51565b60e08152611cb560e08201895115159052565b60006020890151611ccb61010084018215159052565b5060408901518015156101208401525060608901518015156101408401525060808901518015156101608401525060a08901518015156101808401525060c08901518015156101a08401525060e08901518015156101c08401525061010089015160ff81166101e08401525061012089015160ff81166102008401525061014089015160ff81166102208401525061016089015160ff81166102408401525061018089015161ffff8116610260840152506101a089015161ffff8116610280840152506101c089015161ffff81166102a0840152506101e08901516102c0611dba8185018363ffffffff169052565b6102008b015191506102e0611dd68186018463ffffffff169052565b6102208c01519250610300611df18187018562ffffff169052565b6102408d015193506103406103208181890152611e12610420890187610f56565b95506102608f0151611e2e838a01826001600160a01b03169052565b506102808f015163ffffffff81166103608a015291506102a08f015163ffffffff81166103808a01529150938e015163ffffffff81166103a0890152938e84015163ffffffff81166103c08a015294508e83015163ffffffff81166103e08a015294508e015163ffffffff81166104008901529350611eac92505050565b508281036020840152611ebf818a611a7c565b90508281036040840152611ed38189611c3d565b915050611ee4606083018715159052565b931515608082015291151560a083015260c090910152949350505050565b600080600060608486031215611f1757600080fd5b833567ffffffffffffffff80821115611f2f57600080fd5b611f3b8783880161163f565b9450602091508186013581811115611f5257600080fd5b8601601f81018813611f6357600080fd5b8035611f7161117782611132565b81815260059190911b8201840190848101908a831115611f9057600080fd5b8584015b83811015611fc857803586811115611fac5760008081fd5b611fba8d8983890101611156565b845250918601918601611f94565b50979a979950505050604095909501359450505050565b600080600060608486031215611ff457600080fd5b611ffd84610fc8565b95602085013595506040909401359392505050565b60a08101818360005b60058110156120435781516001600160a01b031683526020928301929091019060010161201b565b50505092915050565b6000806040838503121561205f57600080fd5b61206883610fc8565b91506110026020840161129b565b600080604080848603121561208a57600080fd5b833567ffffffffffffffff808211156120a257600080fd5b6120ae87838801611156565b94506020915081860135818111156120c557600080fd5b8601601f810188136120d657600080fd5b80356120e461117782611132565b81815260059190911b8201840190848101908a83111561210357600080fd5b8584015b8381101561218f5780358681111561211f5760008081fd5b8501603f81018d136121315760008081fd5b8781013561214161117782611132565b81815260059190911b82018a0190898101908f8311156121615760008081fd5b928b01925b8284101561217f5783358252928a0192908a0190612166565b8652505050918601918601612107565b50809750505050505050509250929050565b600080600080608085870312156121b757600080fd5b6121c085610fc8565b93506121ce60208601610fc8565b925060408501359150606085013567ffffffffffffffff8111156121f157600080fd5b6121fd878288016112e8565b91505092959194509250565b60006020828403121561221b57600080fd5b813567ffffffffffffffff8082111561223357600080fd5b90830190610300828603121561224857600080fd5b6122506110dd565b6122598361129b565b81526122676020840161129b565b60208201526122786040840161129b565b604082015261228960608401611035565b606082015261229a60808401610fc8565b60808201526122ab60a0840161129b565b60a08201526122bc60c0840161129b565b60c08201526122cd60e08401611035565b60e08201526101006122e0818501610f27565b908201526101206122f284820161129b565b90820152610140612304848201610f27565b90820152610160612316848201610f27565b9082015261018061232884820161129b565b908201526101a061233a84820161129b565b908201526101c061234c84820161129b565b908201526101e061235e848201610f27565b90820152610200612370848201610fc8565b908201526102208381013590820152610240808401358381111561239357600080fd5b61239f888287016116a1565b82840152505061026080840135838111156123b957600080fd5b6123c58882870161163f565b82840152505061028091506123db828401610fc8565b828201526102a091506123ef828401610fc8565b828201526102c09150612403828401610fc8565b828201526102e09150612417828401610fc8565b91810191909152949350505050565b6000806040838503121561243957600080fd5b823567ffffffffffffffff8082111561245157600080fd5b61245d86838701611156565b935060209150818501358181111561247457600080fd5b8501601f8101871361248557600080fd5b803561249361117782611132565b81815260059190911b820184019084810190898311156124b257600080fd5b8584015b838110156124ea578035868111156124ce5760008081fd5b6124dc8c89838901016112e8565b8452509186019186016124b6565b508096505050505050509250929050565b60008060006060848603121561251057600080fd5b8335925061252060208501610fc8565b9150604084013567ffffffffffffffff8116811461253d57600080fd5b809150509250925092565b6000806040838503121561255b57600080fd5b61256483610fc8565b915061100260208401610fc856fea26469706673582212203028f7f2fe8e6e2c385cdeef65a908de9d7898dd15caa7e382d61297a1890c3b64736f6c63430008120033",
  "deployedBytecode": "0x6080604052600436106107625760003560e01c80637e9ab37f116103c7578063c2f1f14a116101fd578063db3e4c8411610118578063ed5a2ec1116100ab578063f636f0eb1161007a578063f636f0eb146108d0578063fd13e8971461079d578063fdec72f21461090d578063ffd9ac7d146107ad57600080fd5b8063ed5a2ec114610ae5578063f2fde38b146108a2578063f3143163146108a2578063f47749fc146108a257600080fd5b8063e030565e116100e7578063e030565e14610e72578063e88fd02114610a72578063e985e9c514610e8d578063ecba222a146109e557600080fd5b8063db3e4c8414610e57578063dc33e68114610a21578063dd4b4ddf14610a57578063df14a56c1461083b57600080fd5b8063c92dae4f11610190578063d58bcaf01161015f578063d58bcaf014610856578063d8d988da146107ad578063d92d1602146108f9578063d93eab1d1461083b57600080fd5b8063c92dae4f14610e3c578063cdd94d4d146108f9578063d111515d1461079d578063d547cfb7146107cb57600080fd5b8063c6a83384116101cc578063c6a83384146108d0578063c782311c14610a72578063c7a2152814610856578063c87b56dd14610e2157600080fd5b8063c2f1f14a146107e8578063c4b7705814610aca578063c529c7b8146107ad578063c580ad66146108d057600080fd5b806399a2557a116102ed578063b05caff011610280578063bce4d6ae1161024f578063bce4d6ae146108d0578063be683af114610d5b578063c16bed4014610d76578063c23dc68f14610d9157600080fd5b8063b05caff01461090d578063b4c9cb6a14610d3f578063b602ae66146107ad578063b88d4fde14610d4d57600080fd5b8063a39b269c116102bc578063a39b269c146109e5578063a4156b61146108d0578063a528891f146108a2578063a91dae6a146108a257600080fd5b806399a2557a14610cde5780639bb7fb03146107ad578063a060e7fa14610d02578063a22cb46514610d2457600080fd5b806388a4f6d1116103655780639293a5c7116103345780639293a5c7146108d057806395d89b41146107cb578063989f98381461085657806398fa6c4514610a5757600080fd5b806388a4f6d11461085657806389fcc53c14610cd05780638da5cb5b146108f95780638fc88c481461099457600080fd5b80638456cb59116103a15780638456cb591461079d5780638462151c14610ae557806385b4bb5314610b0d57806386ad19ab146108d057600080fd5b80637e9ab37f1461090d57806380355fe2146107ad57806381a842ad14610aca57600080fd5b806343bf08391161059c5780636352211e116104c257806372c8ddf8116104555780637705f9b5116104245780637705f9b514610aa15780637da4d18114610aaf5780637e62f3b3146108d05780637e8011f41461085657600080fd5b806372c8ddf8146108d0578063751c1a8e1461090d5780637572756b14610856578063759990fb14610a8d57600080fd5b806370a082311161049157806370a0823114610a2157806370d5ae05146108f957806370ea028f14610a72578063715018a61461079d57600080fd5b80636352211e146107e8578063664b73511461090d5780636701b2bf146109e5578063676c7e5e14610a5757600080fd5b806357c333921161053a5780635e03a6aa116105095780635e03a6aa14610a215780635ef9432a1461079d5780635fd84c28146107ad57806360e8772d14610a3c57600080fd5b806357c33392146107ad5780635a32baec146109e55780635bbb2177146109f95780635c975abb146109e557600080fd5b80634d8e0ea3116105765780634d8e0ea31461083b578063514a0eb71461099457806355f804b3146109af57806356f96758146109ca57600080fd5b806343bf08391461083b57806345aeefde146108a257806348fc6f1a146108d057600080fd5b8063254fedde1161068c57806335a825b01161061f5780633ccfd60b116105ee5780633ccfd60b1461079d5780633f4ba83a1461079d5780633f5495a21461085657806342842e0e146108bd57600080fd5b806335a825b014610979578063380d9006146109945780633a838c2a146108565780633b51e5cf146108d057600080fd5b80632a55205a1161065b5780632a55205a146109285780632db115441461096b57806330ef295b146108a25780633153597d1461079d57600080fd5b8063254fedde146108eb57806326cd5ec4146108f9578063278ecde11461090d57806329d9bf96146108f957600080fd5b80630a0bb5fa1161070457806318160ddd116106d357806318160ddd146108565780631b7d0ffe1461083b57806323b872dd146108bd57806323dabe19146108d057600080fd5b80630a0bb5fa1461083b5780630be67fb11461085657806313aa4e071461087457806315b75bea146108a257600080fd5b806306fdde031161074057806306fdde03146107cb578063081812fc146107e8578063081af6161461081b578063095ea7b31461082d57600080fd5b806301ffc9a71461076757806304ff2d071461079d5780630662069d146107ad575b600080fd5b34801561077357600080fd5b50610788610782366004610ede565b50600090565b60405190151581526020015b60405180910390f35b3480156107a957600080fd5b505b005b3480156107b957600080fd5b506107ab6107c8366004610f3b565b50565b3480156107d757600080fd5b5060605b6040516107949190610f9c565b3480156107f457600080fd5b50610803610782366004610faf565b6040516001600160a01b039091168152602001610794565b6107ab610829366004610fdf565b5050565b6107ab61082936600461100b565b34801561084757600080fd5b506107ab6107c8366004611046565b34801561086257600080fd5b5060005b604051908152602001610794565b34801561088057600080fd5b5061089561088f3660046111c1565b50606090565b60405161079491906111fe565b3480156108ae57600080fd5b506107ab6107c8366004611244565b6107ab6108cb36600461125f565b505050565b3480156108dc57600080fd5b506107ab6107c83660046112ab565b6107ab6107c83660046111c1565b34801561090557600080fd5b506000610803565b34801561091957600080fd5b506107ab6107c8366004610faf565b34801561093457600080fd5b5061094c6109433660046112c6565b50600091829150565b604080516001600160a01b039093168352602083019190915201610794565b6107ab6107c8366004610faf565b34801561098557600080fd5b506107ab6108cb366004611582565b3480156109a057600080fd5b50610866610782366004610faf565b3480156109bb57600080fd5b506107ab6107c836600461160a565b3480156109d657600080fd5b506107ab610829366004611703565b3480156109f157600080fd5b506000610788565b348015610a0557600080fd5b50610a1461088f3660046111c1565b6040516107949190611767565b348015610a2d57600080fd5b50610866610782366004611244565b348015610a4857600080fd5b506107ab6107c83660046117e4565b348015610a6357600080fd5b506107ab6107c83660046118cb565b348015610a7e57600080fd5b506107ab6107c83660046111c1565b6107ab610a9b3660046118e6565b50505050565b6107ab61082936600461193d565b348015610abb57600080fd5b506107ab6107c8366004611997565b348015610ad657600080fd5b506107ab6108cb36600461125f565b348015610af157600080fd5b50610b0061088f366004611244565b60405161079491906119cc565b348015610b1957600080fd5b50610cbd604080516103408101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018390526101c082018390526101e0820183905261020082018390526102208201839052610240820152610260810182905261028081018290526102a081018290526102c081018290526102e081018290526103008101829052610320810191909152604080516103008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018390526101c082018390526101e0820183905261020082018390526102208201839052610240820181905261026082015261028081018290526102a081018290526102c081018290526102e08101919091526060600080600080919293949596565b6040516107949796959493929190611ca2565b6107ab6108cb366004611f02565b348015610cea57600080fd5b50610b00610cf9366004611fdf565b60609392505050565b348015610d0e57600080fd5b50610d17610eb0565b6040516107949190612012565b348015610d3057600080fd5b506107ab61082936600461204c565b6107ab610829366004612076565b6107ab610a9b3660046121a1565b348015610d6757600080fd5b506107ab6107c8366004612209565b348015610d8257600080fd5b50610b0061088f3660046111c1565b348015610d9d57600080fd5b50610dd4610dac366004610faf565b5060408051608081018252600080825260208201819052918101829052606081019190915290565b604051610794919081516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260609182015162ffffff169181019190915260800190565b348015610e2d57600080fd5b506107db61088f366004610faf565b348015610e4857600080fd5b506107ab610829366004610fdf565b348015610e6357600080fd5b506107ab610829366004612426565b348015610e7e57600080fd5b506107ab6108cb3660046124fb565b348015610e9957600080fd5b50610788610ea8366004612548565b600092915050565b610eb8610ec0565b90565b919050565b6040518060a001604052806005906020820280368337509192915050565b600060208284031215610ef057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f2057600080fd5b9392505050565b803563ffffffff81168114610ebb57600080fd5b600060208284031215610f4d57600080fd5b610f2082610f27565b6000815180845260005b81811015610f7c57602081850181015186830182015201610f60565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610f206020830184610f56565b600060208284031215610fc157600080fd5b5035919050565b80356001600160a01b0381168114610ebb57600080fd5b60008060408385031215610ff257600080fd5b8235915061100260208401610fc8565b90509250929050565b6000806040838503121561101e57600080fd5b61102783610fc8565b946020939093013593505050565b803560ff81168114610ebb57600080fd5b60006020828403121561105857600080fd5b610f2082611035565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610340810167ffffffffffffffff811182821017156110b4576110b4611061565b60405290565b6040516080810167ffffffffffffffff811182821017156110b4576110b4611061565b604051610300810167ffffffffffffffff811182821017156110b4576110b4611061565b604051601f8201601f1916810167ffffffffffffffff8111828210171561112a5761112a611061565b604052919050565b600067ffffffffffffffff82111561114c5761114c611061565b5060051b60200190565b600082601f83011261116757600080fd5b8135602061117c61117783611132565b611101565b82815260059290921b8401810191818101908684111561119b57600080fd5b8286015b848110156111b6578035835291830191830161119f565b509695505050505050565b6000602082840312156111d357600080fd5b813567ffffffffffffffff8111156111ea57600080fd5b6111f684828501611156565b949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561123857835115158352928401929184019160010161121a565b50909695505050505050565b60006020828403121561125657600080fd5b610f2082610fc8565b60008060006060848603121561127457600080fd5b61127d84610fc8565b925061128b60208501610fc8565b9150604084013590509250925092565b80358015158114610ebb57600080fd5b6000602082840312156112bd57600080fd5b610f208261129b565b600080604083850312156112d957600080fd5b50508035926020909101359150565b600082601f8301126112f957600080fd5b813567ffffffffffffffff81111561131357611313611061565b611326601f8201601f1916602001611101565b81815284602083860101111561133b57600080fd5b816020850160208301376000918101602001919091529392505050565b803561ffff81168114610ebb57600080fd5b803562ffffff81168114610ebb57600080fd5b6000610340828403121561139057600080fd5b611398611090565b90506113a38261129b565b81526113b16020830161129b565b60208201526113c26040830161129b565b60408201526113d36060830161129b565b60608201526113e46080830161129b565b60808201526113f560a0830161129b565b60a082015261140660c0830161129b565b60c082015261141760e0830161129b565b60e082015261010061142a818401611035565b9082015261012061143c838201611035565b9082015261014061144e838201611035565b90820152610160611460838201611035565b90820152610180611472838201611358565b908201526101a0611484838201611358565b908201526101c0611496838201611358565b908201526101e06114a8838201610f27565b908201526102006114ba838201610f27565b908201526102206114cc83820161136a565b908201526102408281013567ffffffffffffffff8111156114ec57600080fd5b6114f8858286016112e8565b82840152505061026061150c818401610fc8565b9082015261028061151e838201610f27565b908201526102a0611530838201610f27565b908201526102c0611542838201610f27565b908201526102e0611554838201610f27565b90820152610300611566838201610f27565b90820152610320611578838201610f27565b9082015292915050565b60008060006060848603121561159757600080fd5b833567ffffffffffffffff808211156115af57600080fd5b6115bb878388016112e8565b945060208601359150808211156115d157600080fd5b6115dd878388016112e8565b935060408601359150808211156115f357600080fd5b506116008682870161137d565b9150509250925092565b60006020828403121561161c57600080fd5b813567ffffffffffffffff81111561163357600080fd5b6111f6848285016112e8565b600082601f83011261165057600080fd5b8135602061166061117783611132565b82815260059290921b8401810191818101908684111561167f57600080fd5b8286015b848110156111b65761169481610fc8565b8352918301918301611683565b600082601f8301126116b257600080fd5b813560206116c261117783611132565b82815260059290921b840181019181810190868411156116e157600080fd5b8286015b848110156111b6576116f681611358565b83529183019183016116e5565b6000806040838503121561171657600080fd5b823567ffffffffffffffff8082111561172e57600080fd5b61173a8683870161163f565b9350602085013591508082111561175057600080fd5b5061175d858286016116a1565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611238576117d18385516001600160a01b03815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b9284019260809290920191600101611783565b600060208083850312156117f757600080fd5b823567ffffffffffffffff81111561180e57600080fd5b8301601f8101851361181f57600080fd5b803561182d61117782611132565b81815260079190911b8201830190838101908783111561184c57600080fd5b928401925b828410156118c0576080848903121561186a5760008081fd5b6118726110ba565b61187b85610fc8565b8152611888868601611035565b868201526040611899818701611035565b9082015260606118aa868201611358565b9082015282526080939093019290840190611851565b979650505050505050565b6000602082840312156118dd57600080fd5b610f2082611358565b600080600080608085870312156118fc57600080fd5b84359350602085013567ffffffffffffffff81111561191a57600080fd5b611926878288016112e8565b949794965050505060408301359260600135919050565b6000806040838503121561195057600080fd5b823567ffffffffffffffff8082111561196857600080fd5b6119748683870161163f565b9350602085013591508082111561198a57600080fd5b5061175d85828601611156565b6000602082840312156119a957600080fd5b813567ffffffffffffffff8111156119c057600080fd5b6111f68482850161137d565b6020808252825182820181905260009190848201906040850190845b81811015611238578351835292840192918401916001016119e8565b600081518084526020808501945080840160005b83811015611a3857815161ffff1687529582019590820190600101611a18565b509495945050505050565b600081518084526020808501945080840160005b83811015611a385781516001600160a01b031687529582019590820190600101611a57565b80511515825260006103006020830151611a9a602086018215159052565b506040830151611aae604086018215159052565b506060830151611ac3606086018260ff169052565b506080830151611ade60808601826001600160a01b03169052565b5060a0830151611af260a086018215159052565b5060c0830151611b0660c086018215159052565b5060e0830151611b1b60e086018260ff169052565b506101008381015163ffffffff90811691860191909152610120808501511515908601526101408085015182169086015261016080850151821690860152610180808501511515908601526101a0808501511515908601526101c0808501511515908601526101e08085015190911690850152610200808401516001600160a01b031690850152610220808401519085015261024080840151818601839052611bc683870182611a04565b925050506102608084015185830382870152611be28382611a43565b9250505061028080840151611c01828701826001600160a01b03169052565b50506102a0838101516001600160a01b03908116918601919091526102c0808501518216908601526102e0938401511692909301919091525090565b600081518084526020808501945080840160005b83811015611a3857815180516001600160a01b031688528381015160ff908116858a01526040808301519091169089015260609081015161ffff169088015260809096019590820190600101611c51565b60e08152611cb560e08201895115159052565b60006020890151611ccb61010084018215159052565b5060408901518015156101208401525060608901518015156101408401525060808901518015156101608401525060a08901518015156101808401525060c08901518015156101a08401525060e08901518015156101c08401525061010089015160ff81166101e08401525061012089015160ff81166102008401525061014089015160ff81166102208401525061016089015160ff81166102408401525061018089015161ffff8116610260840152506101a089015161ffff8116610280840152506101c089015161ffff81166102a0840152506101e08901516102c0611dba8185018363ffffffff169052565b6102008b015191506102e0611dd68186018463ffffffff169052565b6102208c01519250610300611df18187018562ffffff169052565b6102408d015193506103406103208181890152611e12610420890187610f56565b95506102608f0151611e2e838a01826001600160a01b03169052565b506102808f015163ffffffff81166103608a015291506102a08f015163ffffffff81166103808a01529150938e015163ffffffff81166103a0890152938e84015163ffffffff81166103c08a015294508e83015163ffffffff81166103e08a015294508e015163ffffffff81166104008901529350611eac92505050565b508281036020840152611ebf818a611a7c565b90508281036040840152611ed38189611c3d565b915050611ee4606083018715159052565b931515608082015291151560a083015260c090910152949350505050565b600080600060608486031215611f1757600080fd5b833567ffffffffffffffff80821115611f2f57600080fd5b611f3b8783880161163f565b9450602091508186013581811115611f5257600080fd5b8601601f81018813611f6357600080fd5b8035611f7161117782611132565b81815260059190911b8201840190848101908a831115611f9057600080fd5b8584015b83811015611fc857803586811115611fac5760008081fd5b611fba8d8983890101611156565b845250918601918601611f94565b50979a979950505050604095909501359450505050565b600080600060608486031215611ff457600080fd5b611ffd84610fc8565b95602085013595506040909401359392505050565b60a08101818360005b60058110156120435781516001600160a01b031683526020928301929091019060010161201b565b50505092915050565b6000806040838503121561205f57600080fd5b61206883610fc8565b91506110026020840161129b565b600080604080848603121561208a57600080fd5b833567ffffffffffffffff808211156120a257600080fd5b6120ae87838801611156565b94506020915081860135818111156120c557600080fd5b8601601f810188136120d657600080fd5b80356120e461117782611132565b81815260059190911b8201840190848101908a83111561210357600080fd5b8584015b8381101561218f5780358681111561211f5760008081fd5b8501603f81018d136121315760008081fd5b8781013561214161117782611132565b81815260059190911b82018a0190898101908f8311156121615760008081fd5b928b01925b8284101561217f5783358252928a0192908a0190612166565b8652505050918601918601612107565b50809750505050505050509250929050565b600080600080608085870312156121b757600080fd5b6121c085610fc8565b93506121ce60208601610fc8565b925060408501359150606085013567ffffffffffffffff8111156121f157600080fd5b6121fd878288016112e8565b91505092959194509250565b60006020828403121561221b57600080fd5b813567ffffffffffffffff8082111561223357600080fd5b90830190610300828603121561224857600080fd5b6122506110dd565b6122598361129b565b81526122676020840161129b565b60208201526122786040840161129b565b604082015261228960608401611035565b606082015261229a60808401610fc8565b60808201526122ab60a0840161129b565b60a08201526122bc60c0840161129b565b60c08201526122cd60e08401611035565b60e08201526101006122e0818501610f27565b908201526101206122f284820161129b565b90820152610140612304848201610f27565b90820152610160612316848201610f27565b9082015261018061232884820161129b565b908201526101a061233a84820161129b565b908201526101c061234c84820161129b565b908201526101e061235e848201610f27565b90820152610200612370848201610fc8565b908201526102208381013590820152610240808401358381111561239357600080fd5b61239f888287016116a1565b82840152505061026080840135838111156123b957600080fd5b6123c58882870161163f565b82840152505061028091506123db828401610fc8565b828201526102a091506123ef828401610fc8565b828201526102c09150612403828401610fc8565b828201526102e09150612417828401610fc8565b91810191909152949350505050565b6000806040838503121561243957600080fd5b823567ffffffffffffffff8082111561245157600080fd5b61245d86838701611156565b935060209150818501358181111561247457600080fd5b8501601f8101871361248557600080fd5b803561249361117782611132565b81815260059190911b820184019084810190898311156124b257600080fd5b8584015b838110156124ea578035868111156124ce5760008081fd5b6124dc8c89838901016112e8565b8452509186019186016124b6565b508096505050505050509250929050565b60008060006060848603121561251057600080fd5b8335925061252060208501610fc8565b9150604084013567ffffffffffffffff8116811461253d57600080fd5b809150509250925092565b6000806040838503121561255b57600080fd5b61256483610fc8565b915061100260208401610fc856fea26469706673582212203028f7f2fe8e6e2c385cdeef65a908de9d7898dd15caa7e382d61297a1890c3b64736f6c63430008120033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
