Overview ERC721
Total Supply:
0 OT

Holders:
2
Profile Summary
Blockchain:
Sepolia (11155111)

Contract Source Code Verified (Partial Match)
Contract Name:
CollectibleToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1337 runs

Created At:
Tue, 28 May 2024 11:02:12 GMT
CollectibleToken.sol
contracts
CollectibleToken.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name_",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol_",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "maxSupply_",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "maxPerUser_",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "mintPrice_",
        "type": "uint256"
      },
      {
        "internalType": "address payable",
        "name": "creatorAddress",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "publicMint_",
        "type": "bool"
      },
      {
        "internalType": "uint40",
        "name": "startMintBlock_",
        "type": "uint40"
      },
      {
        "internalType": "uint40",
        "name": "endMintBlock_",
        "type": "uint40"
      },
      {
        "internalType": "string",
        "name": "tokenURI_",
        "type": "string"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "InvalidFeeAmount",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxPerUser",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "maxSupply",
        "type": "uint256"
      }
    ],
    "name": "MaxPerUserGtMaxSupply",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxPerUser",
        "type": "uint256"
      }
    ],
    "name": "MaxPerUserReached",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "maxSupply",
        "type": "uint256"
      }
    ],
    "name": "MaxSupplyReached",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PublicMintNotAllowed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SaleAlreadyEnded",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SaleNotStarted",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "_fromTokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "_toTokenId",
        "type": "uint256"
      }
    ],
    "name": "BatchMetadataUpdate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      }
    ],
    "name": "MetadataUpdate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "defaultTokenUri",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "endMintBlock",
    "outputs": [
      {
        "internalType": "uint40",
        "name": "",
        "type": "uint40"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxPerUser",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "mint",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "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": "price",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "publicMint",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "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": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "startMintBlock",
    "outputs": [
      {
        "internalType": "uint40",
        "name": "",
        "type": "uint40"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalMinted",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
6101406040523480156200001257600080fd5b50604051620027d1380380620027d183398101604081905262000035916200034d565b89896000620000458382620004d7565b506001620000548282620004d7565b505050620000716200006b6200011160201b60201c565b62000115565b87158015906200008057508787115b15620000ae5760405163c2f2924160e01b815260048101889052602481018990526044015b60405180910390fd5b608088905260a087905260c08690528315156101205264ffffffffff80841660e0528216610100526009620000e48282620004d7565b506001600160a01b03851633146200010157620001018562000167565b50505050505050505050620005a3565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000171620001e6565b6001600160a01b038116620001d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620000a5565b620001e38162000115565b50565b6007546001600160a01b03163314620002425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000a5565b565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200026c57600080fd5b81516001600160401b038082111562000289576200028962000244565b604051601f8301601f19908116603f01168101908282118183101715620002b457620002b462000244565b81604052838152602092508683858801011115620002d157600080fd5b600091505b83821015620002f55785820183015181830184015290820190620002d6565b600093810190920192909252949350505050565b80516001600160a01b03811681146200032157600080fd5b919050565b805180151581146200032157600080fd5b805164ffffffffff811681146200032157600080fd5b6000806000806000806000806000806101408b8d0312156200036e57600080fd5b8a516001600160401b03808211156200038657600080fd5b620003948e838f016200025a565b9b5060208d0151915080821115620003ab57600080fd5b620003b98e838f016200025a565b9a5060408d0151995060608d0151985060808d01519750620003de60a08e0162000309565b9650620003ee60c08e0162000326565b9550620003fe60e08e0162000337565b94506200040f6101008e0162000337565b93506101208d01519150808211156200042757600080fd5b50620004368d828e016200025a565b9150509295989b9194979a5092959850565b600181811c908216806200045d57607f821691505b6020821081036200047e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004d257600081815260208120601f850160051c81016020861015620004ad5750805b601f850160051c820191505b81811015620004ce57828155600101620004b9565b5050505b505050565b81516001600160401b03811115620004f357620004f362000244565b6200050b8162000504845462000448565b8462000484565b602080601f8311600181146200054357600084156200052a5750858301515b600019600386901b1c1916600185901b178555620004ce565b600085815260208120601f198616915b82811015620005745788860151825594840194600190910190840162000553565b5085821015620005935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e051610100516101205161218a62000647600039600081816102c001526108b60152600081816105350152818161099001526109bb01526000818161033401526109290152600081816103f901528181610a1e0152610a480152600081816101e201528181610b5101528181610b7b0152610bd30152600081816104a301528181610aa601528181610ad00152610b22015261218a6000f3fe6080604052600436106101965760003560e01c8063715018a6116100e1578063b88d4fde1161008a578063dd5ffa1e11610064578063dd5ffa1e146104c5578063e985e9c5146104da578063ec07410714610523578063f2fde38b1461055757600080fd5b8063b88d4fde14610451578063c87b56dd14610471578063d5abeb011461049157600080fd5b8063a035b1fe116100bb578063a035b1fe146103e7578063a22cb4651461041b578063a2309ff81461043b57600080fd5b8063715018a61461039f5780638da5cb5b146103b457806395d89b41146103d257600080fd5b806326092b8311610143578063698a90c91161011d578063698a90c9146103225780636a6278421461036c57806370a082311461037f57600080fd5b806326092b83146102ae57806342842e0e146102e25780636352211e1461030257600080fd5b8063081812fc11610174578063081812fc14610234578063095ea7b31461026c57806323b872dd1461028e57600080fd5b806301ffc9a71461019b57806306d586bb146101d057806306fdde0314610212575b600080fd5b3480156101a757600080fd5b506101bb6101b6366004611ced565b610577565b60405190151581526020015b60405180910390f35b3480156101dc57600080fd5b506102047f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101c7565b34801561021e57600080fd5b506102276105bb565b6040516101c79190611d5a565b34801561024057600080fd5b5061025461024f366004611d6d565b61064d565b6040516001600160a01b0390911681526020016101c7565b34801561027857600080fd5b5061028c610287366004611da2565b610674565b005b34801561029a57600080fd5b5061028c6102a9366004611dcc565b6107aa565b3480156102ba57600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ee57600080fd5b5061028c6102fd366004611dcc565b610831565b34801561030e57600080fd5b5061025461031d366004611d6d565b61084c565b34801561032e57600080fd5b506103567f000000000000000000000000000000000000000000000000000000000000000081565b60405164ffffffffff90911681526020016101c7565b61020461037a366004611e08565b6108b1565b34801561038b57600080fd5b5061020461039a366004611e08565b610ccb565b3480156103ab57600080fd5b5061028c610d65565b3480156103c057600080fd5b506007546001600160a01b0316610254565b3480156103de57600080fd5b50610227610d79565b3480156103f357600080fd5b506102047f000000000000000000000000000000000000000000000000000000000000000081565b34801561042757600080fd5b5061028c610436366004611e23565b610d88565b34801561044757600080fd5b5061020460085481565b34801561045d57600080fd5b5061028c61046c366004611e75565b610d97565b34801561047d57600080fd5b5061022761048c366004611d6d565b610e25565b34801561049d57600080fd5b506102047f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d157600080fd5b50610227610f2d565b3480156104e657600080fd5b506101bb6104f5366004611f51565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561052f57600080fd5b506103567f000000000000000000000000000000000000000000000000000000000000000081565b34801561056357600080fd5b5061028c610572366004611e08565b610fbb565b60006001600160e01b031982167f490649060000000000000000000000000000000000000000000000000000000014806105b557506105b58261104b565b92915050565b6060600080546105ca90611f84565b80601f01602080910402602001604051908101604052809291908181526020018280546105f690611f84565b80156106435780601f1061061857610100808354040283529160200191610643565b820191906000526020600020905b81548152906001019060200180831161062657829003601f168201915b5050505050905090565b6000610658826110e6565b506000908152600460205260409020546001600160a01b031690565b600061067f8261084c565b9050806001600160a01b0316836001600160a01b03160361070d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b0382161480610729575061072981336104f5565b61079b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610704565b6107a5838361114a565b505050565b6107b433826111c5565b6108265760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610704565b6107a5838383611243565b6107a583838360405180602001604052806000815250610d97565b6000818152600260205260408120546001600160a01b0316806105b55760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610704565b6000817f00000000000000000000000000000000000000000000000000000000000000001580156108f057506007546001600160a01b03828116911614155b15610927576040517fb1f931f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000064ffffffffff16421015610988576040517f2d0a346e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b64ffffffffff7f000000000000000000000000000000000000000000000000000000000000000016158015906109e557507f000000000000000000000000000000000000000000000000000000000000000064ffffffffff164210155b15610a1c576040517ff9ca9fd600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015801590610a6b57507f00000000000000000000000000000000000000000000000000000000000000003414155b15610aa4576040517f3d83b267000000000000000000000000000000000000000000000000000000008152346004820152602401610704565b7f000000000000000000000000000000000000000000000000000000000000000015801590610af557507f000000000000000000000000000000000000000000000000000000000000000060085410155b15610b4e576040517ff9f849150000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610704565b827f000000000000000000000000000000000000000000000000000000000000000015801590610ba657507f0000000000000000000000000000000000000000000000000000000000000000610ba382610ccb565b10155b15610bff576040517ff7a484e90000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610704565b6008805460018101909155610c25610c1f6007546001600160a01b031690565b34611449565b610c2f8582611465565b610cc38160098054610c4090611f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6c90611f84565b8015610cb95780601f10610c8e57610100808354040283529160200191610cb9565b820191906000526020600020905b815481529060010190602001808311610c9c57829003601f168201915b505050505061147f565b949350505050565b60006001600160a01b038216610d495760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610704565b506001600160a01b031660009081526003602052604090205490565b610d6d611559565b610d7760006115b3565b565b6060600180546105ca90611f84565b610d93338383611612565b5050565b610da133836111c5565b610e135760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610704565b610e1f848484846116e0565b50505050565b6060610e30826110e6565b60008281526006602052604081208054610e4990611f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7590611f84565b8015610ec25780601f10610e9757610100808354040283529160200191610ec2565b820191906000526020600020905b815481529060010190602001808311610ea557829003601f168201915b505050505090506000610ee060408051602081019091526000815290565b90508051600003610ef2575092915050565b815115610f24578082604051602001610f0c929190611fbe565b60405160208183030381529060405292505050919050565b610cc384611769565b60098054610f3a90611f84565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6690611f84565b8015610fb35780601f10610f8857610100808354040283529160200191610fb3565b820191906000526020600020905b815481529060010190602001808311610f9657829003601f168201915b505050505081565b610fc3611559565b6001600160a01b03811661103f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610704565b611048816115b3565b50565b60006001600160e01b031982167f80ac58cd0000000000000000000000000000000000000000000000000000000014806110ae57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806105b557507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146105b5565b6000818152600260205260409020546001600160a01b03166110485760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610704565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155819061118c8261084c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806111d18361084c565b9050806001600160a01b0316846001600160a01b0316148061121857506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610cc35750836001600160a01b03166112318461064d565b6001600160a01b031614949350505050565b826001600160a01b03166112568261084c565b6001600160a01b0316146112ba5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610704565b6001600160a01b0382166113355760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610704565b826001600160a01b03166113488261084c565b6001600160a01b0316146113ac5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610704565b6000818152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008060008084865af1610d935763b12d13eb6000526004601cfd5b610d938282604051806020016040528060008152506117dd565b6000828152600260205260409020546001600160a01b03166115095760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201527f6578697374656e7420746f6b656e0000000000000000000000000000000000006064820152608401610704565b6000828152600660205260409020611521828261203b565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b6007546001600160a01b03163314610d775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610704565b600780546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036116735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610704565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6116eb848484611243565b6116f784848484611866565b610e1f5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610704565b6060611774826110e6565b600061178b60408051602081019091526000815290565b905060008151116117ab57604051806020016040528060008152506117d6565b806117b5846119bd565b6040516020016117c6929190611fbe565b6040516020818303038152906040525b9392505050565b6117e78383611a5d565b6117f46000848484611866565b6107a55760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610704565b60006001600160a01b0384163b156119b257604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906118aa9033908990889088906004016120fb565b6020604051808303816000875af19250505080156118e5575060408051601f3d908101601f191682019092526118e291810190612137565b60015b611998573d808015611913576040519150601f19603f3d011682016040523d82523d6000602084013e611918565b606091505b5080516000036119905760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610704565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610cc3565b506001949350505050565b606060006119ca83611bf5565b600101905060008167ffffffffffffffff8111156119ea576119ea611e5f565b6040519080825280601f01601f191660200182016040528015611a14576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611a1e57509392505050565b6001600160a01b038216611ab35760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610704565b6000818152600260205260409020546001600160a01b031615611b185760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610704565b6000818152600260205260409020546001600160a01b031615611b7d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610704565b6001600160a01b0382166000818152600360209081526040808320805460010190558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff19168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611c3e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611c6a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c8857662386f26fc10000830492506010015b6305f5e1008310611ca0576305f5e100830492506008015b6127108310611cb457612710830492506004015b60648310611cc6576064830492506002015b600a83106105b55760010192915050565b6001600160e01b03198116811461104857600080fd5b600060208284031215611cff57600080fd5b81356117d681611cd7565b60005b83811015611d25578181015183820152602001611d0d565b50506000910152565b60008151808452611d46816020860160208601611d0a565b601f01601f19169290920160200192915050565b6020815260006117d66020830184611d2e565b600060208284031215611d7f57600080fd5b5035919050565b80356001600160a01b0381168114611d9d57600080fd5b919050565b60008060408385031215611db557600080fd5b611dbe83611d86565b946020939093013593505050565b600080600060608486031215611de157600080fd5b611dea84611d86565b9250611df860208501611d86565b9150604084013590509250925092565b600060208284031215611e1a57600080fd5b6117d682611d86565b60008060408385031215611e3657600080fd5b611e3f83611d86565b915060208301358015158114611e5457600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611e8b57600080fd5b611e9485611d86565b9350611ea260208601611d86565b925060408501359150606085013567ffffffffffffffff80821115611ec657600080fd5b818701915087601f830112611eda57600080fd5b813581811115611eec57611eec611e5f565b604051601f8201601f19908116603f01168101908382118183101715611f1457611f14611e5f565b816040528281528a6020848701011115611f2d57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611f6457600080fd5b611f6d83611d86565b9150611f7b60208401611d86565b90509250929050565b600181811c90821680611f9857607f821691505b602082108103611fb857634e487b7160e01b600052602260045260246000fd5b50919050565b60008351611fd0818460208801611d0a565b835190830190611fe4818360208801611d0a565b01949350505050565b601f8211156107a557600081815260208120601f850160051c810160208610156120145750805b601f850160051c820191505b8181101561203357828155600101612020565b505050505050565b815167ffffffffffffffff81111561205557612055611e5f565b612069816120638454611f84565b84611fed565b602080601f83116001811461209e57600084156120865750858301515b600019600386901b1c1916600185901b178555612033565b600085815260208120601f198616915b828110156120cd578886015182559484019460019091019084016120ae565b50858210156120eb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261212d6080830184611d2e565b9695505050505050565b60006020828403121561214957600080fd5b81516117d681611cd756fea2646970667358221220e32d26ce888138b3b7d30ee22a9b00758ac0f4f2653f3fb18d17bb772adf730564736f6c63430008110033000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000098e18d880842b4b8b3d209b0ed3d769477f297600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000c4f6c642054726166666f7264000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005068747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d6565716948656b63794648417735624362644c3537694743454856787a556b58547876733353436457464b6200000000000000000000000000000000