Overview ERC721
Total Supply:
609 SPOT

Holders:
291
Profile Summary
Blockchain:
C-Chain (43114)

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No

Created At:
Thu, 23 Dec 2021 15:52:02 GMT
TheSpot.sol
TheSpot.sol
Address.sol
Context.sol
Counters.sol
ERC165.sol
ERC721.sol
IERC165.sol
IERC721.sol
IERC721Metadata.sol
IERC721Receiver.sol
Ownable.sol
SafeMath.sol
Strings.sol
TheSpot.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": 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": [],
    "name": "ADMIN_WALLET",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MINT_NFT_FEE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "NFT_MINTED_PER_USER",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "baseURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "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": [
      {
        "internalType": "uint256",
        "name": "tokenAmount",
        "type": "uint256"
      }
    ],
    "name": "mintSPOT",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "nftCount",
    "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": "remainingSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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": [
      {
        "internalType": "string",
        "name": "baseURI_",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "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": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdrawEth",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60806040527332bd2811fb91bc46756232a0b8c6b2902d7d8763600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b506040518060400160405280600881526020017f5468652053706f740000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f53504f54000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000eb92919062000252565b5080600190805190602001906200010492919062000252565b505050620001276200011b6200018460201b60201c565b6200018c60201b60201c565b6040518060400160405280601f81526020017f68747470733a2f2f6170692e74686573706f746e66742e636f6d2f6e66742f00815250600890805190602001906200017492919062000252565b5061026160098190555062000367565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002609062000302565b90600052602060002090601f016020900481019282620002845760008555620002d0565b82601f106200029f57805160ff1916838001178555620002d0565b82800160010185558215620002d0579182015b82811115620002cf578251825591602001919060010190620002b2565b5b509050620002df9190620002e3565b5090565b5b80821115620002fe576000816000905550600101620002e4565b5090565b600060028204905060018216806200031b57607f821691505b6020821081141562000332576200033162000338565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61352c80620003776000396000f3fe6080604052600436106101815760003560e01c8063715018a6116100d1578063b88d4fde1161008a578063da0239a611610064578063da0239a614610575578063da41f338146105a0578063e985e9c5146105cb578063f2fde38b1461060857610181565b8063b88d4fde146104e4578063c2cd4a071461050d578063c87b56dd1461053857610181565b8063715018a6146103fa5780637989a2cf146104115780638da5cb5b1461044e57806395d89b4114610479578063a0ef91df146104a4578063a22cb465146104bb57610181565b806323b872dd1161013e57806355f804b31161011857806355f804b31461032c5780636352211e146103555780636c0360eb1461039257806370a08231146103bd57610181565b806323b872dd146102aa57806342842e0e146102d35780634f2fafe9146102fc57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780630af2c6ca1461025457806318160ddd1461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906123c9565b610631565b6040516101ba919061288d565b60405180910390f35b3480156101cf57600080fd5b506101d8610713565b6040516101e591906128a8565b60405180910390f35b3480156101fa57600080fd5b506102156004803603810190610210919061246c565b6107a5565b6040516102229190612826565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612389565b61082a565b005b34801561026057600080fd5b50610269610942565b6040516102769190612b2a565b60405180910390f35b34801561028b57600080fd5b50610294610953565b6040516102a19190612b2a565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612273565b61095d565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612273565b6109bd565b005b6103166004803603810190610311919061246c565b6109dd565b604051610323919061288d565b60405180910390f35b34801561033857600080fd5b50610353600480360381019061034e9190612423565b610bdf565b005b34801561036157600080fd5b5061037c6004803603810190610377919061246c565b610c75565b6040516103899190612826565b60405180910390f35b34801561039e57600080fd5b506103a7610d27565b6040516103b491906128a8565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190612206565b610db9565b6040516103f19190612b2a565b60405180910390f35b34801561040657600080fd5b5061040f610e71565b005b34801561041d57600080fd5b5061043860048036038101906104339190612206565b610ef9565b6040516104459190612b2a565b60405180910390f35b34801561045a57600080fd5b50610463610f11565b6040516104709190612826565b60405180910390f35b34801561048557600080fd5b5061048e610f3b565b60405161049b91906128a8565b60405180910390f35b3480156104b057600080fd5b506104b9610fcd565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190612349565b611099565b005b3480156104f057600080fd5b5061050b600480360381019061050691906122c6565b6110af565b005b34801561051957600080fd5b50610522611111565b60405161052f9190612826565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a919061246c565b611137565b60405161056c91906128a8565b60405180910390f35b34801561058157600080fd5b5061058a6111b9565b6040516105979190612b2a565b60405180910390f35b3480156105ac57600080fd5b506105b56111de565b6040516105c29190612b2a565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190612233565b6111ea565b6040516105ff919061288d565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a9190612206565b61127e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106fc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061070c575061070b82611376565b5b9050919050565b60606000805461072290612dda565b80601f016020809104026020016040519081016040528092919081815260200182805461074e90612dda565b801561079b5780601f106107705761010080835404028352916020019161079b565b820191906000526020600020905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b60006107b0826113e0565b6107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690612a2a565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061083582610c75565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d90612aaa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108c561144c565b73ffffffffffffffffffffffffffffffffffffffff1614806108f457506108f3816108ee61144c565b6111ea565b5b610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a906129aa565b60405180910390fd5b61093d8383611454565b505050565b600061094e600761150d565b905090565b6000600954905090565b61096e61096861144c565b8261151b565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490612aea565b60405180910390fd5b6109b88383836115f9565b505050565b6109d8838383604051806020016040528060008152506110af565b505050565b6000600954826109ed600761150d565b6109f79190612c0f565b1115610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061290a565b60405180910390fd5b610a53826709935f581f05000061185590919063ffffffff16565b3414610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90612aca565b60405180910390fd5b600a821115610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612b0a565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610b40573d6000803e3d6000fd5b5060005b82811015610b82576000610b58600761150d565b9050610b64338261186b565b610b6e6007611a39565b508080610b7a90612e3d565b915050610b44565b50610bd582600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b5060019050919050565b610be761144c565b73ffffffffffffffffffffffffffffffffffffffff16610c05610f11565b73ffffffffffffffffffffffffffffffffffffffff1614610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612a4a565b60405180910390fd5b8060089080519060200190610c7192919061201a565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d15906129ea565b60405180910390fd5b80915050919050565b606060088054610d3690612dda565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6290612dda565b8015610daf5780601f10610d8457610100808354040283529160200191610daf565b820191906000526020600020905b815481529060010190602001808311610d9257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906129ca565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e7961144c565b73ffffffffffffffffffffffffffffffffffffffff16610e97610f11565b73ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee490612a4a565b60405180910390fd5b610ef76000611a65565b565b600a6020528060005260406000206000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610f4a90612dda565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690612dda565b8015610fc35780601f10610f9857610100808354040283529160200191610fc3565b820191906000526020600020905b815481529060010190602001808311610fa657829003601f168201915b5050505050905090565b610fd561144c565b73ffffffffffffffffffffffffffffffffffffffff16610ff3610f11565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090612a4a565b60405180910390fd5b611051610f11565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611096573d6000803e3d6000fd5b50565b6110ab6110a461144c565b8383611b2b565b5050565b6110c06110ba61144c565b8361151b565b6110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690612aea565b60405180910390fd5b61110b84848484611c98565b50505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060611142826113e0565b611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890612a8a565b60405180910390fd5b611189610d27565b61119283611cf4565b6040516020016111a3929190612802565b6040516020818303038152906040529050919050565b60006111d96111c8600761150d565b600954611e5590919063ffffffff16565b905090565b6709935f581f05000081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61128661144c565b73ffffffffffffffffffffffffffffffffffffffff166112a4610f11565b73ffffffffffffffffffffffffffffffffffffffff16146112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612a4a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561136a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611361906128ea565b60405180910390fd5b61137381611a65565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166114c783610c75565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6000611526826113e0565b611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9061298a565b60405180910390fd5b600061157083610c75565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115df57508373ffffffffffffffffffffffffffffffffffffffff166115c7846107a5565b73ffffffffffffffffffffffffffffffffffffffff16145b806115f057506115ef81856111ea565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661161982610c75565b73ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612a6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d69061294a565b60405180910390fd5b6116ea838383611e6b565b6116f5600082611454565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117459190612cf0565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461179c9190612c0f565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836118639190612c96565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290612a0a565b60405180910390fd5b6118e4816113e0565b15611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b9061292a565b60405180910390fd5b61193060008383611e6b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119809190612c0f565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6001816000016000828254019250508190555050565b60008183611a5d9190612c0f565b905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b919061296a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c8b919061288d565b60405180910390a3505050565b611ca38484846115f9565b611caf84848484611e70565b611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce5906128ca565b60405180910390fd5b50505050565b60606000821415611d3c576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611e50565b600082905060005b60008214611d6e578080611d5790612e3d565b915050600a82611d679190612c65565b9150611d44565b60008167ffffffffffffffff811115611d8a57611d89612f73565b5b6040519080825280601f01601f191660200182016040528015611dbc5781602001600182028036833780820191505090505b5090505b60008514611e4957600182611dd59190612cf0565b9150600a85611de49190612e86565b6030611df09190612c0f565b60f81b818381518110611e0657611e05612f44565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611e429190612c65565b9450611dc0565b8093505050505b919050565b60008183611e639190612cf0565b905092915050565b505050565b6000611e918473ffffffffffffffffffffffffffffffffffffffff16612007565b15611ffa578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611eba61144c565b8786866040518563ffffffff1660e01b8152600401611edc9493929190612841565b602060405180830381600087803b158015611ef657600080fd5b505af1925050508015611f2757506040513d601f19601f82011682018060405250810190611f2491906123f6565b60015b611faa573d8060008114611f57576040519150601f19603f3d011682016040523d82523d6000602084013e611f5c565b606091505b50600081511415611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f99906128ca565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611fff565b600190505b949350505050565b600080823b905060008111915050919050565b82805461202690612dda565b90600052602060002090601f016020900481019282612048576000855561208f565b82601f1061206157805160ff191683800117855561208f565b8280016001018555821561208f579182015b8281111561208e578251825591602001919060010190612073565b5b50905061209c91906120a0565b5090565b5b808211156120b95760008160009055506001016120a1565b5090565b60006120d06120cb84612b6a565b612b45565b9050828152602081018484840111156120ec576120eb612fa7565b5b6120f7848285612d98565b509392505050565b600061211261210d84612b9b565b612b45565b90508281526020810184848401111561212e5761212d612fa7565b5b612139848285612d98565b509392505050565b6000813590506121508161349a565b92915050565b600081359050612165816134b1565b92915050565b60008135905061217a816134c8565b92915050565b60008151905061218f816134c8565b92915050565b600082601f8301126121aa576121a9612fa2565b5b81356121ba8482602086016120bd565b91505092915050565b600082601f8301126121d8576121d7612fa2565b5b81356121e88482602086016120ff565b91505092915050565b600081359050612200816134df565b92915050565b60006020828403121561221c5761221b612fb1565b5b600061222a84828501612141565b91505092915050565b6000806040838503121561224a57612249612fb1565b5b600061225885828601612141565b925050602061226985828601612141565b9150509250929050565b60008060006060848603121561228c5761228b612fb1565b5b600061229a86828701612141565b93505060206122ab86828701612141565b92505060406122bc868287016121f1565b9150509250925092565b600080600080608085870312156122e0576122df612fb1565b5b60006122ee87828801612141565b94505060206122ff87828801612141565b9350506040612310878288016121f1565b925050606085013567ffffffffffffffff81111561233157612330612fac565b5b61233d87828801612195565b91505092959194509250565b600080604083850312156123605761235f612fb1565b5b600061236e85828601612141565b925050602061237f85828601612156565b9150509250929050565b600080604083850312156123a05761239f612fb1565b5b60006123ae85828601612141565b92505060206123bf858286016121f1565b9150509250929050565b6000602082840312156123df576123de612fb1565b5b60006123ed8482850161216b565b91505092915050565b60006020828403121561240c5761240b612fb1565b5b600061241a84828501612180565b91505092915050565b60006020828403121561243957612438612fb1565b5b600082013567ffffffffffffffff81111561245757612456612fac565b5b612463848285016121c3565b91505092915050565b60006020828403121561248257612481612fb1565b5b6000612490848285016121f1565b91505092915050565b6124a281612d24565b82525050565b6124b181612d36565b82525050565b60006124c282612bcc565b6124cc8185612be2565b93506124dc818560208601612da7565b6124e581612fb6565b840191505092915050565b60006124fb82612bd7565b6125058185612bf3565b9350612515818560208601612da7565b61251e81612fb6565b840191505092915050565b600061253482612bd7565b61253e8185612c04565b935061254e818560208601612da7565b80840191505092915050565b6000612567603283612bf3565b915061257282612fc7565b604082019050919050565b600061258a602683612bf3565b915061259582613016565b604082019050919050565b60006125ad601583612bf3565b91506125b882613065565b602082019050919050565b60006125d0601c83612bf3565b91506125db8261308e565b602082019050919050565b60006125f3602483612bf3565b91506125fe826130b7565b604082019050919050565b6000612616601983612bf3565b915061262182613106565b602082019050919050565b6000612639602c83612bf3565b91506126448261312f565b604082019050919050565b600061265c603883612bf3565b91506126678261317e565b604082019050919050565b600061267f602a83612bf3565b915061268a826131cd565b604082019050919050565b60006126a2602983612bf3565b91506126ad8261321c565b604082019050919050565b60006126c5602083612bf3565b91506126d08261326b565b602082019050919050565b60006126e8602c83612bf3565b91506126f382613294565b604082019050919050565b600061270b602083612bf3565b9150612716826132e3565b602082019050919050565b600061272e602983612bf3565b91506127398261330c565b604082019050919050565b6000612751602f83612bf3565b915061275c8261335b565b604082019050919050565b6000612774602183612bf3565b915061277f826133aa565b604082019050919050565b6000612797601383612bf3565b91506127a2826133f9565b602082019050919050565b60006127ba603183612bf3565b91506127c582613422565b604082019050919050565b60006127dd601083612bf3565b91506127e882613471565b602082019050919050565b6127fc81612d8e565b82525050565b600061280e8285612529565b915061281a8284612529565b91508190509392505050565b600060208201905061283b6000830184612499565b92915050565b60006080820190506128566000830187612499565b6128636020830186612499565b61287060408301856127f3565b818103606083015261288281846124b7565b905095945050505050565b60006020820190506128a260008301846124a8565b92915050565b600060208201905081810360008301526128c281846124f0565b905092915050565b600060208201905081810360008301526128e38161255a565b9050919050565b600060208201905081810360008301526129038161257d565b9050919050565b60006020820190508181036000830152612923816125a0565b9050919050565b60006020820190508181036000830152612943816125c3565b9050919050565b60006020820190508181036000830152612963816125e6565b9050919050565b6000602082019050818103600083015261298381612609565b9050919050565b600060208201905081810360008301526129a38161262c565b9050919050565b600060208201905081810360008301526129c38161264f565b9050919050565b600060208201905081810360008301526129e381612672565b9050919050565b60006020820190508181036000830152612a0381612695565b9050919050565b60006020820190508181036000830152612a23816126b8565b9050919050565b60006020820190508181036000830152612a43816126db565b9050919050565b60006020820190508181036000830152612a63816126fe565b9050919050565b60006020820190508181036000830152612a8381612721565b9050919050565b60006020820190508181036000830152612aa381612744565b9050919050565b60006020820190508181036000830152612ac381612767565b9050919050565b60006020820190508181036000830152612ae38161278a565b9050919050565b60006020820190508181036000830152612b03816127ad565b9050919050565b60006020820190508181036000830152612b23816127d0565b9050919050565b6000602082019050612b3f60008301846127f3565b92915050565b6000612b4f612b60565b9050612b5b8282612e0c565b919050565b6000604051905090565b600067ffffffffffffffff821115612b8557612b84612f73565b5b612b8e82612fb6565b9050602081019050919050565b600067ffffffffffffffff821115612bb657612bb5612f73565b5b612bbf82612fb6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612c1a82612d8e565b9150612c2583612d8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c5a57612c59612eb7565b5b828201905092915050565b6000612c7082612d8e565b9150612c7b83612d8e565b925082612c8b57612c8a612ee6565b5b828204905092915050565b6000612ca182612d8e565b9150612cac83612d8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ce557612ce4612eb7565b5b828202905092915050565b6000612cfb82612d8e565b9150612d0683612d8e565b925082821015612d1957612d18612eb7565b5b828203905092915050565b6000612d2f82612d6e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612dc5578082015181840152602081019050612daa565b83811115612dd4576000848401525b50505050565b60006002820490506001821680612df257607f821691505b60208210811415612e0657612e05612f15565b5b50919050565b612e1582612fb6565b810181811067ffffffffffffffff82111715612e3457612e33612f73565b5b80604052505050565b6000612e4882612d8e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612e7b57612e7a612eb7565b5b600182019050919050565b6000612e9182612d8e565b9150612e9c83612d8e565b925082612eac57612eab612ee6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4d6178696d756d20537570706c79204d696e7465640000000000000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964204d696e74696e672046656500000000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f4d6178206c696d69742065786365656400000000000000000000000000000000600082015250565b6134a381612d24565b81146134ae57600080fd5b50565b6134ba81612d36565b81146134c557600080fd5b50565b6134d181612d42565b81146134dc57600080fd5b50565b6134e881612d8e565b81146134f357600080fd5b5056fea2646970667358221220865c71c6cfd914876534830af4ad619c02be1a91d92cb8f021f59c7e81bf769b64736f6c63430008070033