Overview ERC20
PRICE
n/a

ON-CHAIN MARKET CAP n/a

Total Supply:
1,000,000,000.00 BUBU

Holders:
17
Profile Summary
Blockchain:
Base (8453)


Decimals:
18
Contract Source Code Verified (Partial Match)
Contract Name:
ERC20Template

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1000 runs

Created At:
Tue, 22 Oct 2024 17:58:07 GMT
ERC20Template.sol
contracts
tokens
ERC20
ERC20Template.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_taxAddress",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_antiBot",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_antiWhale",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_initialSupply",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_taxFee",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "_isAirdrop",
        "type": "bool"
      },
      {
        "internalType": "address[]",
        "name": "globalExemptions",
        "type": "address[]"
      },
      {
        "internalType": "address[]",
        "name": "globalSenderExemptions",
        "type": "address[]"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "BlacklistedAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BotDetected",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "allowance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSpender",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "EnforcedPause",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ExpectedPause",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidInitialSupply",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidTaxFee",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnableInvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "OwnableUnauthorizedAccount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "WhaleDetected",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "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": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "DECIMALS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "antiBot",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "antiBotExemptions",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "antiWhale",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "antiWhaleExemptions",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "antiWhaleSenderExemptions",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "blackList",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "burnFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "initialSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isAirdrop",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "isAntibotGlobalExemption",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "isAntiwhaleGlobalExemption",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "noTaxable",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "releaseAirdropMode",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "releaseAntibotGlobalExemption",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      }
    ],
    "name": "releaseAntiwhaleGlobalExemption",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "_blackList",
        "type": "bool"
      }
    ],
    "name": "setBlackList",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_address",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "_taxable",
        "type": "bool"
      }
    ],
    "name": "setNotTaxable",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_taxAddress",
        "type": "address"
      }
    ],
    "name": "setTaxAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "taxAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "taxFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
6080604052600680546001600160a01b03199081169091556008805490911690556000600b819055600c55600d80546001600160a81b03191690553480156200004757600080fd5b5060405162002262380380620022628339810160408190526200006a9162000b0d565b85878a8d8d60036200007d838262000ce0565b5060046200008c828262000ce0565b50506005805460ff19169055506001600160a01b038116620000c957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000d48162000293565b50600680546001600160a01b039283166001600160a01b0319918216179091556008805493909216921691909117905584620001235760405163c2c5358f60e01b815260040160405180910390fd5b601484111562000146576040516302dd04d760e51b815260040160405180910390fd5b6200015a670de0b6b3a76400008662000dc2565b600b55600c849055600d80546001600160a01b0319166001600160a01b038a81169190911790915589166000908152600f60205260408120805460ff1990811660019081179092559180527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37580549092161790558215620001e957600d805460ff60a01b1916600160a01b1790555b60005b82518110156200024c576001600f600085848151811062000211576200021162000de2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620001ec565b506200025882620002ed565b620002638262000354565b6200026e81620003b7565b6200028289600b546200041a60201b60201c565b505050505050505050505062000e6c565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005b8151811015620003505760016007600084848151811062000315576200031562000de2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620002f0565b5050565b60005b815181101562000350576001600960008484815181106200037c576200037c62000de2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000357565b60005b815181101562000350576001600a6000848481518110620003df57620003df62000de2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620003ba565b6001600160a01b038216620004465760405163ec442f0560e01b815260006004820152602401620000c0565b62000350600083836200045862000786565b6001600160a01b038316600090815260076020526040902054839060ff166200050d57600654604051636a035c4560e11b81526001600160a01b0383811660048301529091169063d406b88a906024016020604051808303816000875af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000df8565b156200050d576040516339a9b03560e21b815260040160405180910390fd5b6001600160a01b0383166000908152600960205260409020548390839060ff161580156200054b5750336000908152600a602052604090205460ff16155b15620005ea57600854604051638450f8a360e01b81526001600160a01b0384811660048301526024820184905290911690638450f8a3906044016020604051808303816000875af1158015620005a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005cb919062000df8565b15620005ea5760405163379d580160e01b815260040160405180910390fd5b620005f585620007ad565b620006008662000812565b600d54600160a01b900460ff16156200067d576001600160a01b0386166000908152600f602052604090205460ff166200067d5760405162461bcd60e51b815260206004820152601760248201527f41697264726f70206d6f646520697320656e61626c65640000000000000000006044820152606401620000c0565b6001600160a01b0386166000908152600e602052604090205460ff1615620006c45760405163d33f19e760e01b81526001600160a01b0387166004820152602401620000c0565b6001600160a01b0385166000908152600e602052604090205460ff16156200070b5760405163d33f19e760e01b81526001600160a01b0386166004820152602401620000c0565b6001600160a01b0386166000908152600f602052604081205460ff166200076557600c546200073c60648762000e1d565b62000748919062000dc2565b600d54909150620007659088906001600160a01b03168362000845565b6200077d878762000777848962000e40565b62000845565b50505050505050565b60055460ff1615620007ab5760405163d93c066560e01b815260040160405180910390fd5b565b60065460405163a571c0d160e01b81526001600160a01b0383811660048301529091169063a571c0d1906024015b600060405180830381600087803b158015620007f657600080fd5b505af11580156200080b573d6000803e3d6000fd5b5050505050565b60085460405163045f0e0f60e41b81526001600160a01b038381166004830152909116906345f0e0f090602401620007db565b6001600160a01b0383166200087457806002600082825462000868919062000e56565b90915550620008e89050565b6001600160a01b03831660009081526020819052604090205481811015620008c95760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000c0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620009065760028054829003905562000925565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096b91815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620009b957620009b962000978565b604052919050565b600082601f830112620009d357600080fd5b81516001600160401b03811115620009ef57620009ef62000978565b602062000a05601f8301601f191682016200098e565b828152858284870101111562000a1a57600080fd5b60005b8381101562000a3a57858101830151828201840152820162000a1d565b506000928101909101919091529392505050565b80516001600160a01b038116811462000a6657600080fd5b919050565b8051801515811462000a6657600080fd5b600082601f83011262000a8e57600080fd5b815160206001600160401b0382111562000aac5762000aac62000978565b8160051b62000abd8282016200098e565b928352848101820192828101908785111562000ad857600080fd5b83870192505b8483101562000b025762000af28362000a4e565b8252918301919083019062000ade565b979650505050505050565b60008060008060008060008060008060006101608c8e03121562000b3057600080fd5b8b516001600160401b0381111562000b4757600080fd5b62000b558e828f01620009c1565b60208e0151909c5090506001600160401b0381111562000b7457600080fd5b62000b828e828f01620009c1565b9a505062000b9360408d0162000a4e565b985062000ba360608d0162000a4e565b975062000bb360808d0162000a4e565b965062000bc360a08d0162000a4e565b955060c08c0151945060e08c0151935062000be26101008d0162000a6b565b6101208d01519093506001600160401b0381111562000c0057600080fd5b62000c0e8e828f0162000a7c565b6101408e015190935090506001600160401b0381111562000c2e57600080fd5b62000c3c8e828f0162000a7c565b9150509295989b509295989b9093969950565b600181811c9082168062000c6457607f821691505b60208210810362000c8557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000cdb576000816000526020600020601f850160051c8101602086101562000cb65750805b601f850160051c820191505b8181101562000cd75782815560010162000cc2565b5050505b505050565b81516001600160401b0381111562000cfc5762000cfc62000978565b62000d148162000d0d845462000c4f565b8462000c8b565b602080601f83116001811462000d4c576000841562000d335750858301515b600019600386901b1c1916600185901b17855562000cd7565b600085815260208120601f198616915b8281101562000d7d5788860151825594840194600190910190840162000d5c565b508582101562000d9c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000ddc5762000ddc62000dac565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121562000e0b57600080fd5b62000e168262000a6b565b9392505050565b60008262000e3b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000ddc5762000ddc62000dac565b8082018082111562000ddc5762000ddc62000dac565b6113e68062000e7c6000396000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c8063715018a611610145578063a1883d26116100bd578063e5ed3d4e1161008c578063f082499f11610071578063f082499f14610579578063f2fde38b1461058c578063f48be82c1461059f57600080fd5b8063e5ed3d4e14610542578063ee3b0d621461055657600080fd5b8063a1883d26146104d0578063a9059cbb146104e3578063b7bda68f146104f6578063dd62ed3e1461050957600080fd5b80638da5cb5b11610114578063942f1a16116100f9578063942f1a161461049c57806395d89b41146104bf578063a071dcf4146104c757600080fd5b80638da5cb5b1461047357806390ed534d1461048957600080fd5b8063715018a61461044557806379cc67901461044d5780637dfcbe3414610460578063893d20e81461047357600080fd5b806334045664116101d85780634838d165116101a75780635c975abb1161018c5780635c975abb146103fe57806368092bd91461040957806370a082311461041c57600080fd5b80634838d165146103b05780634dacf3f5146103d357600080fd5b8063340456641461035c578063378dc3dc146103715780633b78b9e91461037a57806342966c681461039d57600080fd5b806318160ddd1161022f578063298bb0f911610214578063298bb0f9146103125780632e0f26251461033e578063313ce5671461034d57600080fd5b806318160ddd146102ed57806323b872dd146102ff57600080fd5b80630609cbca1461026157806306fdde031461029957806307184e17146102ae578063095ea7b3146102da575b600080fd5b61028461026f36600461117c565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102a16105a7565b604051610290919061119e565b6102846102bc36600461117c565b6001600160a01b031660009081526007602052604090205460ff1690565b6102846102e83660046111ed565b610639565b6002545b604051908152602001610290565b61028461030d366004611217565b610653565b61028461032036600461117c565b6001600160a01b031660009081526009602052604090205460ff1690565b6102f1670de0b6b3a764000081565b60405160128152602001610290565b61036f61036a366004611261565b610677565b005b6102f1600b5481565b61028461038836600461117c565b600a6020526000908152604090205460ff1681565b61036f6103ab366004611298565b6106aa565b6102846103be36600461117c565b600e6020526000908152604090205460ff1681565b6008546103e6906001600160a01b031681565b6040516001600160a01b039091168152602001610290565b60055460ff16610284565b61036f610417366004611261565b6106b7565b6102f161042a36600461117c565b6001600160a01b031660009081526020819052604090205490565b61036f6106ea565b61036f61045b3660046111ed565b6106fe565b6006546103e6906001600160a01b031681565b60055461010090046001600160a01b03166103e6565b61036f61049736600461117c565b610717565b6102846104aa36600461117c565b600f6020526000908152604090205460ff1681565b6102a1610740565b6102f1600c5481565b61036f6104de36600461117c565b61074f565b6102846104f13660046111ed565b6107a9565b600d546103e6906001600160a01b031681565b6102f16105173660046112b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600d5461028490600160a01b900460ff1681565b61028461056436600461117c565b60076020526000908152604090205460ff1681565b61036f61058736600461117c565b6107b7565b61036f61059a36600461117c565b6107e0565b61036f610839565b6060600380546105b6906112e4565b80601f01602080910402602001604051908101604052809291908181526020018280546105e2906112e4565b801561062f5780601f106106045761010080835404028352916020019161062f565b820191906000526020600020905b81548152906001019060200180831161061257829003601f168201915b5050505050905090565b60003361064781858561086b565b60019150505b92915050565b60003361066185828561087d565b61066c858585610914565b506001949350505050565b61067f61098c565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6106b433826109d8565b50565b6106bf61098c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6106f261098c565b6106fc6000610a0e565b565b61070982338361087d565b61071382826109d8565b5050565b61071f61098c565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6060600480546105b6906112e4565b61075761098c565b600d80546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216821790556000908152600f60205260409020805460ff19166001179055565b600033610647818585610914565b6107bf61098c565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6107e861098c565b6001600160a01b038116610830576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6106b481610a0e565b61084161098c565b600d80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6108788383836001610a7f565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461090e57818110156108ff576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610827565b61090e84848484036000610a7f565b50505050565b6001600160a01b03831661093e57604051634b637e8f60e11b815260006004820152602401610827565b6001600160a01b038216610981576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610827565b610878838383610b86565b6005546001600160a01b036101009091041633146106fc576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610827565b6001600160a01b038216610a0257604051634b637e8f60e11b815260006004820152602401610827565b61071382600083610b86565b600580546001600160a01b038381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038416610ac2576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610827565b6001600160a01b038316610b05576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610827565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561090e57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b7891815260200190565b60405180910390a350505050565b610b8e610f19565b6001600160a01b038316600090815260076020526040902054839060ff16610c70576006546040517fd406b88a0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063d406b88a906024016020604051808303816000875af1158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c39919061131e565b15610c70576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166000908152600960205260409020548390839060ff16158015610cad5750336000908152600a602052604090205460ff16155b15610d79576008546040517f8450f8a30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526024820184905290911690638450f8a3906044016020604051808303816000875af1158015610d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d42919061131e565b15610d79576040517f379d580100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d8285610f56565b610d8b86610fd2565b600d54600160a01b900460ff1615610e1f576001600160a01b0386166000908152600f602052604090205460ff16610e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f41697264726f70206d6f646520697320656e61626c65640000000000000000006044820152606401610827565b6001600160a01b0386166000908152600e602052604090205460ff1615610e645760405163d33f19e760e01b81526001600160a01b0387166004820152602401610827565b6001600160a01b0385166000908152600e602052604090205460ff1615610ea95760405163d33f19e760e01b81526001600160a01b0386166004820152602401610827565b6001600160a01b0386166000908152600f602052604081205460ff16610efc57600c54610ed7606487611351565b610ee19190611373565b600d54909150610efc9088906001600160a01b03168361101d565b610f108787610f0b848961138a565b61101d565b50505050505050565b60055460ff16156106fc576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040517fa571c0d10000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a571c0d1906024015b600060405180830381600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b5050505050565b6008546040517f45f0e0f00000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152909116906345f0e0f090602401610f9d565b6001600160a01b03831661104857806002600082825461103d919061139d565b909155506110d39050565b6001600160a01b038316600090815260208190526040902054818110156110b4576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810182905260448101839052606401610827565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166110ef5760028054829003905561110e565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115391815260200190565b60405180910390a3505050565b80356001600160a01b038116811461117757600080fd5b919050565b60006020828403121561118e57600080fd5b61119782611160565b9392505050565b60006020808352835180602085015260005b818110156111cc578581018301518582016040015282016111b0565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561120057600080fd5b61120983611160565b946020939093013593505050565b60008060006060848603121561122c57600080fd5b61123584611160565b925061124360208501611160565b9150604084013590509250925092565b80151581146106b457600080fd5b6000806040838503121561127457600080fd5b61127d83611160565b9150602083013561128d81611253565b809150509250929050565b6000602082840312156112aa57600080fd5b5035919050565b600080604083850312156112c457600080fd5b6112cd83611160565b91506112db60208401611160565b90509250929050565b600181811c908216806112f857607f821691505b60208210810361131857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561133057600080fd5b815161119781611253565b634e487b7160e01b600052601160045260246000fd5b60008261136e57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761064d5761064d61133b565b8181038181111561064d5761064d61133b565b8082018082111561064d5761064d61133b56fea2646970667358221220ce8cee516f6ffa9e2b2b1dc74e5f4db936048ee83ae972c8f24488cce14ad87864736f6c63430008180033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000e04587939d5470263e102b8e2f865edac5328c2b000000000000000000000000e04587939d5470263e102b8e2f865edac5328c2b0000000000000000000000006120fa4b79ab3672322ee5ba8ed59d4303d0ff0600000000000000000000000090ca629ca55a8e70b507557c228a3a054648847e000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000046275627500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442554255000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000c0eaa4efe5be2b447605d0db1f62547c79cc4543000000000000000000000000efec47efeda6a93986d4892a74c926b33716b50b000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c0eaa4efe5be2b447605d0db1f62547c79cc4543