Overview ERC20
PRICE
$0.053325

ON-CHAIN MARKET CAP n/a

Total Supply:
1,000,000,000.00 HAMSTI

Holders:
54
Profile Summary
Blockchain:
Base (8453)


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

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No

Created At:
Fri, 12 Apr 2024 15:02:09 GMT
Hamsti.sol
Hamsti.sol
Hamsti.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "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"
  },
  {
    "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": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "_isBlacklisted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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": [
      {
        "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": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "burnFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "liquidityBuffer",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxSupply",
    "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": [],
    "name": "pause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "setBlacklist",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "setSwapActive",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_uniswapPair",
        "type": "address"
      }
    ],
    "name": "setUniswapPair",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "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": "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"
  },
  {
    "inputs": [],
    "name": "uniswapPair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unpause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "withdrawToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60806040527334c9fdcd898c6d28b8094efbeef874e79c594c9e60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000064575f80fd5b506040518060400160405280600681526020017f48616d73746900000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f48414d53544900000000000000000000000000000000000000000000000000008152508160039081620000e2919062000745565b508060049081620000f4919062000745565b505050620001176200010b6200016960201b60201c565b6200017060201b60201c565b5f600560146101000a81548160ff021916908315150217905550620001637334c9fdcd898c6d28b8094efbeef874e79c594c9e6b033b2e3c9fd0803ce80000006200023360201b60201c565b62000955565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a6575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200029d91906200086c565b60405180910390fd5b620002b95f8383620002bd60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000311578060025f828254620003049190620008b4565b92505081905550620003e2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200039d578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200039493929190620008ff565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200042b578060025f828254039250508190555062000475565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004d491906200093a565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200055d57607f821691505b60208210810362000573576200057262000518565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200059a565b620005e386836200059a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200062d620006276200062184620005fb565b62000604565b620005fb565b9050919050565b5f819050919050565b62000648836200060d565b62000660620006578262000634565b848454620005a6565b825550505050565b5f90565b6200067662000668565b620006838184846200063d565b505050565b5b81811015620006aa576200069e5f826200066c565b60018101905062000689565b5050565b601f821115620006f957620006c38162000579565b620006ce846200058b565b81016020851015620006de578190505b620006f6620006ed856200058b565b83018262000688565b50505b505050565b5f82821c905092915050565b5f6200071b5f1984600802620006fe565b1980831691505092915050565b5f6200073583836200070a565b9150826002028217905092915050565b6200075082620004e1565b67ffffffffffffffff8111156200076c576200076b620004eb565b5b62000778825462000545565b62000785828285620006ae565b5f60209050601f831160018114620007bb575f8415620007a6578287015190505b620007b2858262000728565b86555062000821565b601f198416620007cb8662000579565b5f5b82811015620007f457848901518255600182019150602085019450602081019050620007cd565b8683101562000814578489015162000810601f8916826200070a565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620008548262000829565b9050919050565b620008668162000848565b82525050565b5f602082019050620008815f8301846200085b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008c082620005fb565b9150620008cd83620005fb565b9250828201905080821115620008e857620008e762000887565b5b92915050565b620008f981620005fb565b82525050565b5f606082019050620009145f8301866200085b565b620009236020830185620008ee565b620009326040830184620008ee565b949350505050565b5f6020820190506200094f5f830184620008ee565b92915050565b6123b980620009635f395ff3fe60806040526004361061019f575f3560e01c806379cc6790116100eb578063cc3f4e2011610089578063d6dacb4411610063578063d6dacb4414610582578063dd62ed3e146105ac578063f2fde38b146105e8578063f3fef3a314610610576101a6565b8063cc3f4e2014610506578063d5abeb0114610530578063d5aed6bf1461055a576101a6565b806395d89b41116100c557806395d89b411461044e578063a44e49bb14610478578063a9059cbb146104a0578063c816841b146104dc576101a6565b806379cc6790146103e65780638456cb591461040e5780638da5cb5b14610424576101a6565b806323b872dd1161015857806342966c681161013257806342966c68146103425780635c975abb1461036a57806370a0823114610394578063715018a6146103d0576101a6565b806323b872dd146102c6578063313ce567146103025780633f4ba83a1461032c576101a6565b806301e33667146101aa57806306fdde03146101d2578063095ea7b3146101fc578063153b0d1e1461023857806318160ddd146102605780631cdd3be31461028a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101d060048036038101906101cb9190611a78565b610638565b005b3480156101dd575f80fd5b506101e66107e0565b6040516101f39190611b52565b60405180910390f35b348015610207575f80fd5b50610222600480360381019061021d9190611b72565b610870565b60405161022f9190611bca565b60405180910390f35b348015610243575f80fd5b5061025e60048036038101906102599190611c0d565b610892565b005b34801561026b575f80fd5b506102746108f2565b6040516102819190611c5a565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab9190611c73565b6108fb565b6040516102bd9190611bca565b60405180910390f35b3480156102d1575f80fd5b506102ec60048036038101906102e79190611a78565b610918565b6040516102f99190611bca565b60405180910390f35b34801561030d575f80fd5b50610316610946565b6040516103239190611cb9565b60405180910390f35b348015610337575f80fd5b5061034061094e565b005b34801561034d575f80fd5b5061036860048036038101906103639190611cd2565b610968565b005b348015610375575f80fd5b5061037e61097c565b60405161038b9190611bca565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b59190611c73565b610992565b6040516103c79190611c5a565b60405180910390f35b3480156103db575f80fd5b506103e46109d7565b005b3480156103f1575f80fd5b5061040c60048036038101906104079190611b72565b6109ea565b005b348015610419575f80fd5b50610422610a0a565b005b34801561042f575f80fd5b50610438610a1c565b6040516104459190611d0c565b60405180910390f35b348015610459575f80fd5b50610462610a44565b60405161046f9190611b52565b60405180910390f35b348015610483575f80fd5b5061049e60048036038101906104999190611d25565b610ad4565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190611b72565b610b88565b6040516104d39190611bca565b60405180910390f35b3480156104e7575f80fd5b506104f0610baa565b6040516104fd9190611d0c565b60405180910390f35b348015610511575f80fd5b5061051a610bcf565b6040516105279190611d0c565b60405180910390f35b34801561053b575f80fd5b50610544610bf4565b6040516105519190611c5a565b60405180910390f35b348015610565575f80fd5b50610580600480360381019061057b9190611c73565b610c04565b005b34801561058d575f80fd5b50610596610c4f565b6040516105a39190611bca565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190611d50565b610c62565b6040516105df9190611c5a565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190611c73565b610ce4565b005b34801561061b575f80fd5b5061063660048036038101906106319190611b72565b610d66565b005b610640610e89565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a590611dd8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071390611e40565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401610758929190611e5e565b6020604051808303815f875af1158015610774573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107989190611e99565b9050806107da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d190611f0e565b60405180910390fd5b50505050565b6060600380546107ef90611f59565b80601f016020809104026020016040519081016040528092919081815260200182805461081b90611f59565b80156108665780601f1061083d57610100808354040283529160200191610866565b820191905f5260205f20905b81548152906001019060200180831161084957829003601f168201915b5050505050905090565b5f8061087a610f07565b9050610887818585610f0e565b600191505092915050565b61089a610e89565b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600254905090565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f80610922610f07565b905061092f858285610f20565b61093a858585610fb2565b60019150509392505050565b5f6012905090565b610956610e89565b61095e611287565b6109666112c7565b565b610979610973610f07565b82611329565b50565b5f600560149054906101000a900460ff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109df610e89565b6109e85f6113a8565b565b6109fc826109f6610f07565b83610f20565b610a068282611329565b5050565b610a12610e89565b610a1a61146b565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a5390611f59565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7f90611f59565b8015610aca5780601f10610aa157610100808354040283529160200191610aca565b820191905f5260205f20905b815481529060010190602001808311610aad57829003601f168201915b5050505050905090565b610adc610e89565b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6290611fd3565b60405180910390fd5b80600760146101000a81548160ff02191690831515021790555050565b5f80610b92610f07565b9050610b9f818585610fb2565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6b033b2e3c9fd0803ce800000081565b610c0c610e89565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760149054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610cec610e89565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190612061565b60405180910390fd5b610d63816113a8565b50565b610d6e610e89565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd3906120c9565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610e0190612114565b5f6040518083038185875af1925050503d805f8114610e3b576040519150601f19603f3d011682016040523d82523d5f602084013e610e40565b606091505b5050905080610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b90612172565b60405180910390fd5b505050565b610e91610f07565b73ffffffffffffffffffffffffffffffffffffffff16610eaf610a1c565b73ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc906121da565b60405180910390fd5b565b5f33905090565b610f1b83838360016114ce565b505050565b5f610f2b8484610c62565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610fac5781811015610f9d578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610f94939291906121f8565b60405180910390fd5b610fab84848484035f6114ce565b5b50505050565b610fba61169d565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461119a575f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490611fd3565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611144575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561119957600760149054906101000a900460ff16611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612277565b60405180910390fd5b5b5b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611238575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90612305565b60405180910390fd5b6112828383836116de565b505050565b61128f61097c565b6112c5576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6112cf611287565b5f600560146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611312610f07565b60405161131f9190611d0c565b60405180910390a1565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611399575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016113909190611d0c565b60405180910390fd5b6113a4825f836117ce565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61147361169d565b6001600560146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114b7610f07565b6040516114c49190611d0c565b60405180910390a1565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361153e575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115359190611d0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ae575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115a59190611d0c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611697578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161168e9190611c5a565b60405180910390a35b50505050565b6116a561097c565b156116dc576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361174e575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016117459190611d0c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117be575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016117b59190611d0c565b60405180910390fd5b6117c98383836117ce565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361181e578060025f8282546118129190612350565b925050819055506118ec565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156118a7578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161189e939291906121f8565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611933578060025f828254039250508190555061197d565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119da9190611c5a565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a14826119eb565b9050919050565b611a2481611a0a565b8114611a2e575f80fd5b50565b5f81359050611a3f81611a1b565b92915050565b5f819050919050565b611a5781611a45565b8114611a61575f80fd5b50565b5f81359050611a7281611a4e565b92915050565b5f805f60608486031215611a8f57611a8e6119e7565b5b5f611a9c86828701611a31565b9350506020611aad86828701611a31565b9250506040611abe86828701611a64565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611aff578082015181840152602081019050611ae4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611b2482611ac8565b611b2e8185611ad2565b9350611b3e818560208601611ae2565b611b4781611b0a565b840191505092915050565b5f6020820190508181035f830152611b6a8184611b1a565b905092915050565b5f8060408385031215611b8857611b876119e7565b5b5f611b9585828601611a31565b9250506020611ba685828601611a64565b9150509250929050565b5f8115159050919050565b611bc481611bb0565b82525050565b5f602082019050611bdd5f830184611bbb565b92915050565b611bec81611bb0565b8114611bf6575f80fd5b50565b5f81359050611c0781611be3565b92915050565b5f8060408385031215611c2357611c226119e7565b5b5f611c3085828601611a31565b9250506020611c4185828601611bf9565b9150509250929050565b611c5481611a45565b82525050565b5f602082019050611c6d5f830184611c4b565b92915050565b5f60208284031215611c8857611c876119e7565b5b5f611c9584828501611a31565b91505092915050565b5f60ff82169050919050565b611cb381611c9e565b82525050565b5f602082019050611ccc5f830184611caa565b92915050565b5f60208284031215611ce757611ce66119e7565b5b5f611cf484828501611a64565b91505092915050565b611d0681611a0a565b82525050565b5f602082019050611d1f5f830184611cfd565b92915050565b5f60208284031215611d3a57611d396119e7565b5b5f611d4784828501611bf9565b91505092915050565b5f8060408385031215611d6657611d656119e7565b5b5f611d7385828601611a31565b9250506020611d8485828601611a31565b9150509250929050565b7f496e76616c696420726563697069656e742061646472657373210000000000005f82015250565b5f611dc2601a83611ad2565b9150611dcd82611d8e565b602082019050919050565b5f6020820190508181035f830152611def81611db6565b9050919050565b7f496e76616c696420746f6b656e206164647265737321000000000000000000005f82015250565b5f611e2a601683611ad2565b9150611e3582611df6565b602082019050919050565b5f6020820190508181035f830152611e5781611e1e565b9050919050565b5f604082019050611e715f830185611cfd565b611e7e6020830184611c4b565b9392505050565b5f81519050611e9381611be3565b92915050565b5f60208284031215611eae57611ead6119e7565b5b5f611ebb84828501611e85565b91505092915050565b7f4661696c656420746f2073656e6420746f6b656e7300000000000000000000005f82015250565b5f611ef8601583611ad2565b9150611f0382611ec4565b602082019050919050565b5f6020820190508181035f830152611f2581611eec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f7057607f821691505b602082108103611f8357611f82611f2c565b5b50919050565b7f556e69737761702050616972204e6f74205365742100000000000000000000005f82015250565b5f611fbd601583611ad2565b9150611fc882611f89565b602082019050919050565b5f6020820190508181035f830152611fea81611fb1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61204b602683611ad2565b915061205682611ff1565b604082019050919050565b5f6020820190508181035f8301526120788161203f565b9050919050565b7f496e76616c6964204164647265737321000000000000000000000000000000005f82015250565b5f6120b3601083611ad2565b91506120be8261207f565b602082019050919050565b5f6020820190508181035f8301526120e0816120a7565b9050919050565b5f81905092915050565b50565b5f6120ff5f836120e7565b915061210a826120f1565b5f82019050919050565b5f61211e826120f4565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61215c601483611ad2565b915061216782612128565b602082019050919050565b5f6020820190508181035f83015261218981612150565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121c4602083611ad2565b91506121cf82612190565b602082019050919050565b5f6020820190508181035f8301526121f1816121b8565b9050919050565b5f60608201905061220b5f830186611cfd565b6122186020830185611c4b565b6122256040830184611c4b565b949350505050565b7f54726164696e67204e6f742041637469766521000000000000000000000000005f82015250565b5f612261601383611ad2565b915061226c8261222d565b602082019050919050565b5f6020820190508181035f83015261228e81612255565b9050919050565b7f546f204f722046726f6d204164647265737320497320426c61636b6c697374655f8201527f6421000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122ef602283611ad2565b91506122fa82612295565b604082019050919050565b5f6020820190508181035f83015261231c816122e3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61235a82611a45565b915061236583611a45565b925082820190508082111561237d5761237c612323565b5b9291505056fea264697066735822122040fd3ea0eaf79a36df3ed892927ff526c2ffc7e93771262d0703a9d09aa65a6b64736f6c63430008140033