Overview ERC721
Total Supply:
570 DOLCE

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

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

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Created At:
Thu, 24 Mar 2022 23:40:57 GMT
Dolcelatte.sol
Dolcelatte.sol
Dolcelatte.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": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "caller",
        "type": "address"
      }
    ],
    "name": "MakingDolcelatte",
    "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": "DOLCE_PRODUCE_TIME",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "KGOLD_CONTRACT",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "LEVEL_REQ",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MILK_CONTRACT",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MILK_RATIO",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MODIFIER",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "airdropCheese",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenID",
        "type": "uint256"
      }
    ],
    "name": "burnCheese",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "fromager",
        "type": "address"
      }
    ],
    "name": "checkFromagerLevel",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "cheeseTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "claimCheese",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "claimableView",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "fromagerLevel",
    "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": [
      {
        "internalType": "address",
        "name": "fromager",
        "type": "address"
      }
    ],
    "name": "increaseFromagerLevel",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isFromaging",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "makeCheese",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "makingCheeseFrom",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "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": "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": "_newBaseURI",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_kAddr",
        "type": "address"
      }
    ],
    "name": "setKingAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newValue",
        "type": "uint256"
      }
    ],
    "name": "setLevelReq",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newValue",
        "type": "uint256"
      }
    ],
    "name": "setMaxSupply",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_milkAddr",
        "type": "address"
      }
    ],
    "name": "setMilkAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newValue",
        "type": "uint256"
      }
    ],
    "name": "setMilkRatio",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newValue",
        "type": "uint256"
      }
    ],
    "name": "setMilkTime",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newValue",
        "type": "uint256"
      }
    ],
    "name": "setModifier",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenID",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "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": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      }
    ],
    "name": "walletOfOwner",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]


Contract Creation Code
600c80546001600160a01b031916737fef4c1b027a0ec266c57dcd1e30d5e6ca0447111790556006600e556202a300600f556005601055611c2060115561138860125560e0604052602f60808181529062002bd460a03980516200006c916017916020909101906200018d565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200009b916018916200018d565b50348015620000a957600080fd5b50604080518082018252600a815269446f6c63656c6174746560b01b602080830191825283518085019094526005845264444f4c434560d81b908401528151919291620000f9916000916200018d565b5080516200010f9060019060208401906200018d565b5050506200012c620001266200013760201b60201c565b6200013b565b6001600b5562000270565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200019b9062000233565b90600052602060002090601f016020900481019282620001bf57600085556200020a565b82601f10620001da57805160ff19168380011785556200020a565b828001600101855582156200020a579182015b828111156200020a578251825591602001919060010190620001ed565b50620002189291506200021c565b5090565b5b808211156200021857600081556001016200021d565b6002810460018216806200024857607f821691505b602082108114156200026a57634e487b7160e01b600052602260045260246000fd5b50919050565b61295480620002806000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c8063605fba671161015c578063a22cb465116100ce578063c87b56dd11610087578063c87b56dd146105c0578063d942d45d146105d3578063dcc5ad0a146105e6578063def4d64d146105ef578063e985e9c5146105f8578063f2fde38b146106345761028a565b8063a22cb46514610536578063b49fa4bf14610549578063b4f8bb821461055c578063b88d4fde14610585578063ba8e5c4214610598578063be262eda146105b85761028a565b8063715018a611610120578063715018a6146104d957806379e79ba0146104e15780638da5cb5b146104ea5780638e3b677a146104fb5780638eedd24e1461050e57806395d89b411461052e5761028a565b8063605fba671461047a5780636352211e1461048d5780636bf00f2a146104a05780636f8b44b0146104b357806370a08231146104c65761028a565b806323b872dd1161020057806342842e0e116101b957806342842e0e146103ee578063438b6300146104015780634b3f9626146104215780634f6ccce71461044157806351320b5c1461045457806355f804b3146104675761028a565b806323b872dd14610390578063273ddf35146103a357806327852c8d146103ac5780632f745c59146103bf57806332cb6b0c146103d257806336d6e2dc146103db5761028a565b80630e8fc228116102525780630e8fc2281461031f57806312c122481461033257806318160ddd1461034557806319d36353146103575780631c1a1a171461036a57806320f468e81461037d5761028a565b806301017a0c1461028f57806301ffc9a7146102a457806306fdde03146102cc578063081812fc146102e1578063095ea7b31461030c575b600080fd5b6102a261029d36600461231d565b610647565b005b6102b76102b2366004612480565b6106ab565b60405190151581526020015b60405180910390f35b6102d46106d8565b6040516102c3919061269d565b6102f46102ef3660046124fe565b61076a565b6040516001600160a01b0390911681526020016102c3565b6102a261031a366004612457565b6107ff565b6102a261032d36600461231d565b610915565b600d546102f4906001600160a01b031681565b6008545b6040519081526020016102c3565b6102a2610365366004612457565b610961565b600c546102f4906001600160a01b031681565b61034961038b36600461231d565b610999565b6102a261039e366004612369565b610a1c565b610349600e5481565b6102a26103ba3660046124fe565b610a4d565b6103496103cd366004612457565b610a7c565b61034960125481565b6102a26103e93660046124fe565b610b12565b6102a26103fc366004612369565b610c8f565b61041461040f36600461231d565b610caa565b6040516102c39190612659565b61034961042f36600461231d565b60146020526000908152604090205481565b61034961044f3660046124fe565b610d68565b6102a26104623660046124fe565b610e09565b6102a26104753660046124b8565b610e38565b61034961048836600461231d565b610e75565b6102f461049b3660046124fe565b610f2c565b6102a26104ae3660046124fe565b610fa3565b6102a26104c13660046124fe565b610fd2565b6103496104d436600461231d565b611001565b6102a2611088565b61034960115481565b600a546001600160a01b03166102f4565b6102a261050936600461231d565b6110be565b61034961051c36600461231d565b60156020526000908152604090205481565b6102d461110a565b6102a261054436600461241d565b611119565b6102a26105573660046124fe565b6111eb565b61034961056a36600461231d565b6001600160a01b031660009081526015602052604090205490565b6102a26105933660046123a4565b611221565b6103496105a636600461231d565b60136020526000908152604090205481565b6102a2611259565b6102d46105ce3660046124fe565b6113b8565b6102a26105e13660046124fe565b611496565b610349600f5481565b61034960105481565b6102b7610606366004612337565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102a261064236600461231d565b6114c5565b600d546001600160a01b0316331461067a5760405162461bcd60e51b815260040161067190612702565b60405180910390fd5b6001600160a01b03811660009081526015602052604081208054600192906106a39084906127ce565b909155505050565b60006001600160e01b0319821663780e9d6360e01b14806106d057506106d08261155d565b90505b919050565b6060600080546106e79061285c565b80601f01602080910402602001604051908101604052809291908181526020018280546107139061285c565b80156107605780601f1061073557610100808354040283529160200191610760565b820191906000526020600020905b81548152906001019060200180831161074357829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166107e35760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610671565b506000908152600460205260409020546001600160a01b031690565b600061080a82610f2c565b9050806001600160a01b0316836001600160a01b031614156108785760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610671565b336001600160a01b038216148061089457506108948133610606565b6109065760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610671565b61091083836115ad565b505050565b600a546001600160a01b0316331461093f5760405162461bcd60e51b815260040161067190612748565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b0316331461098b5760405162461bcd60e51b815260040161067190612748565b610995828261161b565b5050565b6010546001600160a01b038216600090815260156020526040812054909111610a14576010546001600160a01b03831660009081526015602052604081205490916109e3916127e6565b9050600a8111156109f25750600a5b6011546109ff90826127fa565b600f54610a0c9190612819565b9150506106d3565b5050600f5490565b610a263382611658565b610a425760405162461bcd60e51b81526004016106719061277d565b61091083838361174f565b600a546001600160a01b03163314610a775760405162461bcd60e51b815260040161067190612748565b601155565b6000610a8783611001565b8210610ae95760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610671565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6002600b541415610b655760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610671565b6002600b553360009081526013602052604090205415610bc75760405162461bcd60e51b815260206004820152601a60248201527f596f752061726520616c72656164792066726f6d6167696e67210000000000006044820152606401610671565b600a811115610c2d5760405162461bcd60e51b815260206004820152602c60248201527f596f752063616e206f6e6c79206d616b6520757020746f20313020636865657360448201526b6520617420612074696d652160a01b6064820152608401610671565b610c3733826118fa565b336000818152601360209081526040808320859055601482529182902042905590518381527f0dbe177f431b409f277c69872aa85a5284871c37d84f3be0ae722a281e578efd910160405180910390a2506001600b55565b61091083838360405180602001604052806000815250611221565b60606000610cb783611001565b905060008167ffffffffffffffff811115610ce257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610d0b578160200160208202803683370190505b50905060005b82811015610d6057610d238582610a7c565b828281518110610d4357634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610d5881612897565b915050610d11565b509392505050565b6000610d7360085490565b8210610dd65760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610671565b60088281548110610df757634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b600a546001600160a01b03163314610e335760405162461bcd60e51b815260040161067190612748565b600e55565b600a546001600160a01b03163314610e625760405162461bcd60e51b815260040161067190612748565b80516109959060179060208401906121f7565b6001600160a01b038116600090815260136020526040812054610ed25760405162461bcd60e51b8152602060048201526015602482015274596f75206172656e27742066726f6d6167696e672160581b6044820152606401610671565b42610edc83610999565b6001600160a01b038416600090815260146020526040902054610eff91906127ce565b1015610f2457506001600160a01b0381166000908152601360205260409020546106d3565b506000919050565b6000818152600260205260408120546001600160a01b0316806106d05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610671565b600a546001600160a01b03163314610fcd5760405162461bcd60e51b815260040161067190612748565b600f55565b600a546001600160a01b03163314610ffc5760405162461bcd60e51b815260040161067190612748565b601255565b60006001600160a01b03821661106c5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610671565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146110b25760405162461bcd60e51b815260040161067190612748565b6110bc6000611a82565b565b600a546001600160a01b031633146110e85760405162461bcd60e51b815260040161067190612748565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600180546106e79061285c565b6001600160a01b0382163314156111725760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610671565b3360008181526005602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111df911515815260200190565b60405180910390a35050565b600d546001600160a01b031633146112155760405162461bcd60e51b815260040161067190612702565b61121e81611ad4565b50565b61122b3383611658565b6112475760405162461bcd60e51b81526004016106719061277d565b61125384848484611b7b565b50505050565b6002600b5414156112ac5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610671565b6002600b5560006112bc33610e75565b9050600081116113025760405162461bcd60e51b81526020600482015260116024820152704e6f7468696e6720746f20636c61696d2160781b6044820152606401610671565b61138861130e60165490565b106113675760405162461bcd60e51b815260206004820152602360248201527f416c6c2074686520446f6c63656c6174746520686173206265656e206d696e7460448201526265642160e81b6064820152608401610671565b6113888161137460165490565b61137e91906127ce565b11156113965760165461139390611388612819565b90505b336000818152601360205260408120556113b0908261161b565b506001600b55565b6000818152600260205260409020546060906001600160a01b03166114375760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610671565b6000611441611bae565b90506000815111611461576040518060200160405280600081525061148f565b8061146b84611bbd565b601860405160200161147f9392919061255a565b6040516020818303038152906040525b9392505050565b600a546001600160a01b031633146114c05760405162461bcd60e51b815260040161067190612748565b601055565b600a546001600160a01b031633146114ef5760405162461bcd60e51b815260040161067190612748565b6001600160a01b0381166115545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610671565b61121e81611a82565b60006001600160e01b031982166380ac58cd60e01b148061158e57506001600160e01b03198216635b5e139f60e01b145b806106d057506301ffc9a760e01b6001600160e01b03198316146106d0565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906115e282610f2c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60005b8181101561091057611634601680546001019055565b6116468361164160165490565b611cd8565b8061165081612897565b91505061161e565b6000818152600260205260408120546001600160a01b03166116d15760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610671565b60006116dc83610f2c565b9050806001600160a01b0316846001600160a01b031614806117175750836001600160a01b031661170c8461076a565b6001600160a01b0316145b8061174757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661176282610f2c565b6001600160a01b0316146117ca5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610671565b6001600160a01b03821661182c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610671565b611837838383611cf2565b6118426000826115ad565b6001600160a01b038316600090815260036020526040812080546001929061186b908490612819565b90915550506001600160a01b03821660009081526003602052604081208054600192906118999084906127ce565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600c54600e546001600160a01b039091169061191690836127fa565b61192890670de0b6b3a76400006127fa565b6040516370a0823160e01b81526001600160a01b0385811660048301528316906370a082319060240160206040518083038186803b15801561196957600080fd5b505afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190612516565b10156119ef5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6e2774206861766520656e6f75676820634d494c4b21000000006044820152606401610671565b806001600160a01b0316639dc29fac84600e5485611a0d91906127fa565b611a1f90670de0b6b3a76400006127fa565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611a6557600080fd5b505af1158015611a79573d6000803e3d6000fd5b50505050505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611adf82610f2c565b9050611aed81600084611cf2565b611af86000836115ad565b6001600160a01b0381166000908152600360205260408120805460019290611b21908490612819565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611b8684848461174f565b611b9284848484611daf565b6112535760405162461bcd60e51b8152600401610671906126b0565b6060601780546106e79061285c565b606081611be257506040805180820190915260018152600360fc1b60208201526106d3565b8160005b8115611c0c5780611bf681612897565b9150611c059050600a836127e6565b9150611be6565b60008167ffffffffffffffff811115611c3557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c5f576020820181803683370190505b5090505b841561174757611c74600183612819565b9150611c81600a866128b2565b611c8c9060306127ce565b60f81b818381518110611caf57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611cd1600a866127e6565b9450611c63565b610995828260405180602001604052806000815250611ebc565b6001600160a01b038316611d4d57611d4881600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611d70565b816001600160a01b0316836001600160a01b031614611d7057611d708382611eef565b6001600160a01b038216611d8c57611d8781611f8c565b610910565b826001600160a01b0316826001600160a01b031614610910576109108282612065565b60006001600160a01b0384163b15611eb157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611df390339089908890889060040161261c565b602060405180830381600087803b158015611e0d57600080fd5b505af1925050508015611e3d575060408051601f3d908101601f19168201909252611e3a9181019061249c565b60015b611e97573d808015611e6b576040519150601f19603f3d011682016040523d82523d6000602084013e611e70565b606091505b508051611e8f5760405162461bcd60e51b8152600401610671906126b0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611747565b506001949350505050565b611ec683836120a9565b611ed36000848484611daf565b6109105760405162461bcd60e51b8152600401610671906126b0565b60006001611efc84611001565b611f069190612819565b600083815260076020526040902054909150808214611f59576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611f9e90600190612819565b60008381526009602052604081205460088054939450909284908110611fd457634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806008838154811061200357634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061204957634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061207083611001565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b0382166120ff5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610671565b6000818152600260205260409020546001600160a01b0316156121645760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610671565b61217060008383611cf2565b6001600160a01b03821660009081526003602052604081208054600192906121999084906127ce565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122039061285c565b90600052602060002090601f016020900481019282612225576000855561226b565b82601f1061223e57805160ff191683800117855561226b565b8280016001018555821561226b579182015b8281111561226b578251825591602001919060010190612250565b5061227792915061227b565b5090565b5b80821115612277576000815560010161227c565b600067ffffffffffffffff808411156122ab576122ab6128f2565b604051601f8501601f19908116603f011681019082821181831017156122d3576122d36128f2565b816040528093508581528686860111156122ec57600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b03811681146106d357600080fd5b60006020828403121561232e578081fd5b61148f82612306565b60008060408385031215612349578081fd5b61235283612306565b915061236060208401612306565b90509250929050565b60008060006060848603121561237d578081fd5b61238684612306565b925061239460208501612306565b9150604084013590509250925092565b600080600080608085870312156123b9578081fd5b6123c285612306565b93506123d060208601612306565b925060408501359150606085013567ffffffffffffffff8111156123f2578182fd5b8501601f81018713612402578182fd5b61241187823560208401612290565b91505092959194509250565b6000806040838503121561242f578182fd5b61243883612306565b91506020830135801515811461244c578182fd5b809150509250929050565b60008060408385031215612469578182fd5b61247283612306565b946020939093013593505050565b600060208284031215612491578081fd5b813561148f81612908565b6000602082840312156124ad578081fd5b815161148f81612908565b6000602082840312156124c9578081fd5b813567ffffffffffffffff8111156124df578182fd5b8201601f810184136124ef578182fd5b61174784823560208401612290565b60006020828403121561250f578081fd5b5035919050565b600060208284031215612527578081fd5b5051919050565b60008151808452612546816020860160208601612830565b601f01601f19169290920160200192915050565b60008451602061256d8285838a01612830565b8551918401916125808184848a01612830565b855492019183906002810460018083168061259c57607f831692505b8583108114156125ba57634e487b7160e01b88526022600452602488fd5b8080156125ce57600181146125df5761260b565b60ff1985168852838801955061260b565b60008b815260209020895b858110156126035781548a8201529084019088016125ea565b505083880195505b50939b9a5050505050505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061264f9083018461252e565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561269157835183529284019291840191600101612675565b50909695505050505050565b60006020825261148f602083018461252e565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f6e6c79204b696e67205079726f2063616e2063616c6c20746869732066756e6040820152656374696f6e2160d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156127e1576127e16128c6565b500190565b6000826127f5576127f56128dc565b500490565b6000816000190483118215151615612814576128146128c6565b500290565b60008282101561282b5761282b6128c6565b500390565b60005b8381101561284b578181015183820152602001612833565b838111156112535750506000910152565b60028104600182168061287057607f821691505b6020821081141561289157634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156128ab576128ab6128c6565b5060010190565b6000826128c1576128c16128dc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461121e57600080fdfea2646970667358221220a6d18cfd82226d20abe0276e39c4f1f114192b1f3dd8f9986b2326bfa23fce5e64736f6c6343000802003368747470733a2f2f63686565737976657273652e73332e66696c65626173652e636f6d2f646f6c63652d6a736f6e2f