ERC-20
Overview
Max Total Supply
1,000,000,000,000 SHIBIINU
Holders
21
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
599,771,318.276316517609828758 SHIBIINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SHIBINU
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-09 */ /** *Submitted for verification at Etherscan.io on 2023-07-09 */ // SPDX-License-Identifier: MIT /** TotalSupply: 1000000000000 Telegram: https://t.me/SHIBINU11 */ /* Introducing AMERICAN PEPE, the Financial Freedom Healer! With his meme magic, he'll cure your financial struggles and lead you to prosperity. */ // Dependency file: @openzeppelin/contracts/token/ERC20/IERC20.sol // pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // Dependency file: @openzeppelin/contracts/utils/Context.sol // pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // Dependency file: @openzeppelin/contracts/access/Ownable.sol // pragma solidity ^0.8.0; // import "@openzeppelin/contracts/utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // Dependency file: @openzeppelin/contracts/utils/math/SafeMath.sol // pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } // Dependency file: contracts/BaseToken.sol // pragma solidity =0.8.4; enum TokenType { standard, antiBotStandard, liquidityGenerator, antiBotLiquidityGenerator, baby, antiBotBaby, buybackBaby, antiBotBuybackBaby } abstract contract BaseToken { event TokenCreated( address indexed owner, address indexed token, TokenType tokenType, uint256 version ); } // Root file: contracts/standard/StandardToken.sol pragma solidity ^0.8.4; // import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; // import "@openzeppelin/contracts/access/Ownable.sol"; // import "@openzeppelin/contracts/utils/math/SafeMath.sol"; // import "contracts/BaseToken.sol"; contract SHIBINU is IERC20, Ownable, BaseToken { using SafeMath for uint256; uint256 public constant VERSION = 1; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; constructor() payable { _name = 'SHIBI INU '; _symbol = 'SHIBIINU'; _decimals = 18; _mint(owner(), 1000000000000000000000000000000); emit TokenCreated(owner(), address(this), TokenType.standard, VERSION); } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is * called. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Sets {decimals} to a value other than the default one of 18. * * WARNING: This function should only be called from the constructor. Most * applications that interact with token contracts will not expect * {decimals} to ever change, and may work incorrectly if it does. */ function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"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":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"enum TokenType","name":"tokenType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"version","type":"uint256"}],"name":"TokenCreated","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"},{"inputs":[],"name":"VERSION","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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
608060405262000024620000186200018a60201b60201c565b6200019260201b60201c565b6040518060400160405280600a81526020017f534849424920494e55200000000000000000000000000000000000000000000081525060039080519060200190620000719291906200044c565b506040518060400160405280600881526020017f5348494249494e5500000000000000000000000000000000000000000000000081525060049080519060200190620000bf9291906200044c565b506012600560006101000a81548160ff021916908360ff1602179055506200010a620000f06200025660201b60201c565b6c0c9f2c9cd04674edea400000006200027f60201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff16620001316200025660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff167f56358b41df5fa59f5639228f0930994cbdde383c8a8fd74e06c04e1deebe3562600060016040516200017c92919062000597565b60405180910390a362000754565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002f1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002e89062000625565b60405180910390fd5b62000305600083836200042f60201b60201c565b62000321816006546200043460201b6200097b1790919060201c565b6006819055506200038081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200043460201b6200097b1790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000423919062000647565b60405180910390a35050565b505050565b6000818362000444919062000693565b905092915050565b8280546200045a906200071f565b90600052602060002090601f0160209004810192826200047e5760008555620004ca565b82601f106200049957805160ff1916838001178555620004ca565b82800160010185558215620004ca579182015b82811115620004c9578251825591602001919060010190620004ac565b5b509050620004d99190620004dd565b5090565b5b80821115620004f8576000816000905550600101620004de565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600881106200053f576200053e620004fc565b5b50565b600081905062000552826200052b565b919050565b6000620005648262000542565b9050919050565b620005768162000557565b82525050565b6000819050919050565b62000591816200057c565b82525050565b6000604082019050620005ae60008301856200056b565b620005bd602083018462000586565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200060d601f83620005c4565b91506200061a82620005d5565b602082019050919050565b600060208201905081810360008301526200064081620005fe565b9050919050565b60006020820190506200065e600083018462000586565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006a0826200057c565b9150620006ad836200057c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006e557620006e462000664565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200073857607f821691505b6020821081036200074e576200074d620006f0565b5b50919050565b61170080620007646000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f2fde38b146102ea578063ffa1ad7414610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610324565b60405161010f9190610fb0565b60405180910390f35b610132600480360381019061012d919061106b565b6103b6565b60405161013f91906110c6565b60405180910390f35b6101506103d4565b60405161015d91906110f0565b60405180910390f35b610180600480360381019061017b919061110b565b6103de565b60405161018d91906110c6565b60405180910390f35b61019e6104b7565b6040516101ab919061117a565b60405180910390f35b6101ce60048036038101906101c9919061106b565b6104ce565b6040516101db91906110c6565b60405180910390f35b6101fe60048036038101906101f99190611195565b610581565b60405161020b91906110f0565b60405180910390f35b61021c6105ca565b005b610226610652565b60405161023391906111d1565b60405180910390f35b61024461067b565b6040516102519190610fb0565b60405180910390f35b610274600480360381019061026f919061106b565b61070d565b60405161028191906110c6565b60405180910390f35b6102a4600480360381019061029f919061106b565b6107da565b6040516102b191906110c6565b60405180910390f35b6102d460048036038101906102cf91906111ec565b6107f8565b6040516102e191906110f0565b60405180910390f35b61030460048036038101906102ff9190611195565b61087f565b005b61030e610976565b60405161031b91906110f0565b60405180910390f35b6060600380546103339061125b565b80601f016020809104026020016040519081016040528092919081815260200182805461035f9061125b565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b60006103ca6103c3610991565b8484610999565b6001905092915050565b6000600654905090565b60006103eb848484610b62565b6104ac846103f7610991565b6104a78560405180606001604052806028815260200161167e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061045d610991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df99092919063ffffffff16565b610999565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105776104db610991565b8461057285600260006104ec610991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097b90919063ffffffff16565b610999565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105d2610991565b73ffffffffffffffffffffffffffffffffffffffff166105f0610652565b73ffffffffffffffffffffffffffffffffffffffff1614610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d906112d8565b60405180910390fd5b6106506000610e4e565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461068a9061125b565b80601f01602080910402602001604051908101604052809291908181526020018280546106b69061125b565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b60006107d061071a610991565b846107cb856040518060600160405280602581526020016116a66025913960026000610744610991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df99092919063ffffffff16565b610999565b6001905092915050565b60006107ee6107e7610991565b8484610b62565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610887610991565b73ffffffffffffffffffffffffffffffffffffffff166108a5610652565b73ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f2906112d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109619061136a565b60405180910390fd5b61097381610e4e565b50565b600181565b6000818361098991906113b9565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90611481565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90611513565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b5591906110f0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc8906115a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790611637565b60405180910390fd5b610c4b838383610f12565b610cb78160405180606001604052806026815260200161165860269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df99092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097b90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dec91906110f0565b60405180910390a3505050565b6000838311158290610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e389190610fb0565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f51578082015181840152602081019050610f36565b83811115610f60576000848401525b50505050565b6000601f19601f8301169050919050565b6000610f8282610f17565b610f8c8185610f22565b9350610f9c818560208601610f33565b610fa581610f66565b840191505092915050565b60006020820190508181036000830152610fca8184610f77565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061100282610fd7565b9050919050565b61101281610ff7565b811461101d57600080fd5b50565b60008135905061102f81611009565b92915050565b6000819050919050565b61104881611035565b811461105357600080fd5b50565b6000813590506110658161103f565b92915050565b6000806040838503121561108257611081610fd2565b5b600061109085828601611020565b92505060206110a185828601611056565b9150509250929050565b60008115159050919050565b6110c0816110ab565b82525050565b60006020820190506110db60008301846110b7565b92915050565b6110ea81611035565b82525050565b600060208201905061110560008301846110e1565b92915050565b60008060006060848603121561112457611123610fd2565b5b600061113286828701611020565b935050602061114386828701611020565b925050604061115486828701611056565b9150509250925092565b600060ff82169050919050565b6111748161115e565b82525050565b600060208201905061118f600083018461116b565b92915050565b6000602082840312156111ab576111aa610fd2565b5b60006111b984828501611020565b91505092915050565b6111cb81610ff7565b82525050565b60006020820190506111e660008301846111c2565b92915050565b6000806040838503121561120357611202610fd2565b5b600061121185828601611020565b925050602061122285828601611020565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061127357607f821691505b6020821081036112865761128561122c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006112c2602083610f22565b91506112cd8261128c565b602082019050919050565b600060208201905081810360008301526112f1816112b5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611354602683610f22565b915061135f826112f8565b604082019050919050565b6000602082019050818103600083015261138381611347565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113c482611035565b91506113cf83611035565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114045761140361138a565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061146b602483610f22565b91506114768261140f565b604082019050919050565b6000602082019050818103600083015261149a8161145e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006114fd602283610f22565b9150611508826114a1565b604082019050919050565b6000602082019050818103600083015261152c816114f0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061158f602583610f22565b915061159a82611533565b604082019050919050565b600060208201905081810360008301526115be81611582565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611621602383610f22565b915061162c826115c5565b604082019050919050565b6000602082019050818103600083015261165081611614565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb217becf075d62e6f3cf50274f177e1057ddb4b12dd8e2f257588ec906097f564736f6c634300080d0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f2fde38b146102ea578063ffa1ad7414610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610324565b60405161010f9190610fb0565b60405180910390f35b610132600480360381019061012d919061106b565b6103b6565b60405161013f91906110c6565b60405180910390f35b6101506103d4565b60405161015d91906110f0565b60405180910390f35b610180600480360381019061017b919061110b565b6103de565b60405161018d91906110c6565b60405180910390f35b61019e6104b7565b6040516101ab919061117a565b60405180910390f35b6101ce60048036038101906101c9919061106b565b6104ce565b6040516101db91906110c6565b60405180910390f35b6101fe60048036038101906101f99190611195565b610581565b60405161020b91906110f0565b60405180910390f35b61021c6105ca565b005b610226610652565b60405161023391906111d1565b60405180910390f35b61024461067b565b6040516102519190610fb0565b60405180910390f35b610274600480360381019061026f919061106b565b61070d565b60405161028191906110c6565b60405180910390f35b6102a4600480360381019061029f919061106b565b6107da565b6040516102b191906110c6565b60405180910390f35b6102d460048036038101906102cf91906111ec565b6107f8565b6040516102e191906110f0565b60405180910390f35b61030460048036038101906102ff9190611195565b61087f565b005b61030e610976565b60405161031b91906110f0565b60405180910390f35b6060600380546103339061125b565b80601f016020809104026020016040519081016040528092919081815260200182805461035f9061125b565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b60006103ca6103c3610991565b8484610999565b6001905092915050565b6000600654905090565b60006103eb848484610b62565b6104ac846103f7610991565b6104a78560405180606001604052806028815260200161167e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061045d610991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df99092919063ffffffff16565b610999565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105776104db610991565b8461057285600260006104ec610991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097b90919063ffffffff16565b610999565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105d2610991565b73ffffffffffffffffffffffffffffffffffffffff166105f0610652565b73ffffffffffffffffffffffffffffffffffffffff1614610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d906112d8565b60405180910390fd5b6106506000610e4e565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461068a9061125b565b80601f01602080910402602001604051908101604052809291908181526020018280546106b69061125b565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b60006107d061071a610991565b846107cb856040518060600160405280602581526020016116a66025913960026000610744610991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df99092919063ffffffff16565b610999565b6001905092915050565b60006107ee6107e7610991565b8484610b62565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610887610991565b73ffffffffffffffffffffffffffffffffffffffff166108a5610652565b73ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f2906112d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109619061136a565b60405180910390fd5b61097381610e4e565b50565b600181565b6000818361098991906113b9565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90611481565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90611513565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b5591906110f0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc8906115a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790611637565b60405180910390fd5b610c4b838383610f12565b610cb78160405180606001604052806026815260200161165860269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df99092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097b90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dec91906110f0565b60405180910390a3505050565b6000838311158290610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e389190610fb0565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f51578082015181840152602081019050610f36565b83811115610f60576000848401525b50505050565b6000601f19601f8301169050919050565b6000610f8282610f17565b610f8c8185610f22565b9350610f9c818560208601610f33565b610fa581610f66565b840191505092915050565b60006020820190508181036000830152610fca8184610f77565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061100282610fd7565b9050919050565b61101281610ff7565b811461101d57600080fd5b50565b60008135905061102f81611009565b92915050565b6000819050919050565b61104881611035565b811461105357600080fd5b50565b6000813590506110658161103f565b92915050565b6000806040838503121561108257611081610fd2565b5b600061109085828601611020565b92505060206110a185828601611056565b9150509250929050565b60008115159050919050565b6110c0816110ab565b82525050565b60006020820190506110db60008301846110b7565b92915050565b6110ea81611035565b82525050565b600060208201905061110560008301846110e1565b92915050565b60008060006060848603121561112457611123610fd2565b5b600061113286828701611020565b935050602061114386828701611020565b925050604061115486828701611056565b9150509250925092565b600060ff82169050919050565b6111748161115e565b82525050565b600060208201905061118f600083018461116b565b92915050565b6000602082840312156111ab576111aa610fd2565b5b60006111b984828501611020565b91505092915050565b6111cb81610ff7565b82525050565b60006020820190506111e660008301846111c2565b92915050565b6000806040838503121561120357611202610fd2565b5b600061121185828601611020565b925050602061122285828601611020565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061127357607f821691505b6020821081036112865761128561122c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006112c2602083610f22565b91506112cd8261128c565b602082019050919050565b600060208201905081810360008301526112f1816112b5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611354602683610f22565b915061135f826112f8565b604082019050919050565b6000602082019050818103600083015261138381611347565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113c482611035565b91506113cf83611035565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114045761140361138a565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061146b602483610f22565b91506114768261140f565b604082019050919050565b6000602082019050818103600083015261149a8161145e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006114fd602283610f22565b9150611508826114a1565b604082019050919050565b6000602082019050818103600083015261152c816114f0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061158f602583610f22565b915061159a82611533565b604082019050919050565b600060208201905081810360008301526115be81611582565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611621602383610f22565b915061162c826115c5565b604082019050919050565b6000602082019050818103600083015261165081611614565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb217becf075d62e6f3cf50274f177e1057ddb4b12dd8e2f257588ec906097f564736f6c634300080d0033
Deployed Bytecode Sourcemap
14122:10286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14836:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17123:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15935:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17815:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15779:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18678:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16106:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5764:94;;;:::i;:::-;;5113:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15046:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19481:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16496:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16775:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6013:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14211:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14836:91;14881:13;14914:5;14907:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14836:91;:::o;17123:210::-;17242:4;17264:39;17273:12;:10;:12::i;:::-;17287:7;17296:6;17264:8;:39::i;:::-;17321:4;17314:11;;17123:210;;;;:::o;15935:108::-;15996:7;16023:12;;16016:19;;15935:108;:::o;17815:454::-;17955:4;17972:36;17982:6;17990:9;18001:6;17972:9;:36::i;:::-;18019:220;18042:6;18063:12;:10;:12::i;:::-;18090:138;18146:6;18090:138;;;;;;;;;;;;;;;;;:11;:19;18102:6;18090:19;;;;;;;;;;;;;;;:33;18110:12;:10;:12::i;:::-;18090:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;18019:8;:220::i;:::-;18257:4;18250:11;;17815:454;;;;;:::o;15779:91::-;15828:5;15853:9;;;;;;;;;;;15846:16;;15779:91;:::o;18678:300::-;18793:4;18815:133;18838:12;:10;:12::i;:::-;18865:7;18887:50;18926:10;18887:11;:25;18899:12;:10;:12::i;:::-;18887:25;;;;;;;;;;;;;;;:34;18913:7;18887:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18815:8;:133::i;:::-;18966:4;18959:11;;18678:300;;;;:::o;16106:177::-;16225:7;16257:9;:18;16267:7;16257:18;;;;;;;;;;;;;;;;16250:25;;16106:177;;;:::o;5764:94::-;5344:12;:10;:12::i;:::-;5333:23;;:7;:5;:7::i;:::-;:23;;;5325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5829:21:::1;5847:1;5829:9;:21::i;:::-;5764:94::o:0;5113:87::-;5159:7;5186:6;;;;;;;;;;;5179:13;;5113:87;:::o;15046:95::-;15093:13;15126:7;15119:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15046:95;:::o;19481:400::-;19601:4;19623:228;19646:12;:10;:12::i;:::-;19673:7;19695:145;19752:15;19695:145;;;;;;;;;;;;;;;;;:11;:25;19707:12;:10;:12::i;:::-;19695:25;;;;;;;;;;;;;;;:34;19721:7;19695:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;19623:8;:228::i;:::-;19869:4;19862:11;;19481:400;;;;:::o;16496:216::-;16618:4;16640:42;16650:12;:10;:12::i;:::-;16664:9;16675:6;16640:9;:42::i;:::-;16700:4;16693:11;;16496:216;;;;:::o;16775:201::-;16909:7;16941:11;:18;16953:5;16941:18;;;;;;;;;;;;;;;:27;16960:7;16941:27;;;;;;;;;;;;;;;;16934:34;;16775:201;;;;:::o;6013:192::-;5344:12;:10;:12::i;:::-;5333:23;;:7;:5;:7::i;:::-;:23;;;5325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6122:1:::1;6102:22;;:8;:22;;::::0;6094:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6178:19;6188:8;6178:9;:19::i;:::-;6013:192:::0;:::o;14211:35::-;14245:1;14211:35;:::o;9199:98::-;9257:7;9288:1;9284;:5;;;;:::i;:::-;9277:12;;9199:98;;;;:::o;3831:::-;3884:7;3911:10;3904:17;;3831:98;:::o;22867:380::-;23020:1;23003:19;;:5;:19;;;22995:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23101:1;23082:21;;:7;:21;;;23074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23185:6;23155:11;:18;23167:5;23155:18;;;;;;;;;;;;;;;:27;23174:7;23155:27;;;;;;;;;;;;;;;:36;;;;23223:7;23207:32;;23216:5;23207:32;;;23232:6;23207:32;;;;;;:::i;:::-;;;;;;;;22867:380;;;:::o;20371:610::-;20529:1;20511:20;;:6;:20;;;20503:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20613:1;20592:23;;:9;:23;;;20584:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20668:47;20689:6;20697:9;20708:6;20668:20;:47::i;:::-;20748:108;20784:6;20748:108;;;;;;;;;;;;;;;;;:9;:17;20758:6;20748:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;20728:9;:17;20738:6;20728:17;;;;;;;;;;;;;;;:128;;;;20890:32;20915:6;20890:9;:20;20900:9;20890:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20867:9;:20;20877:9;20867:20;;;;;;;;;;;;;;;:55;;;;20955:9;20938:35;;20947:6;20938:35;;;20966:6;20938:35;;;;;;:::i;:::-;;;;;;;;20371:610;;;:::o;11478:240::-;11598:7;11656:1;11651;:6;;11659:12;11643:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;11698:1;11694;:5;11687:12;;11478:240;;;;;:::o;6213:173::-;6269:16;6288:6;;;;;;;;;;;6269:25;;6314:8;6305:6;;:17;;;;;;;;;;;;;;;;;;6369:8;6338:40;;6359:8;6338:40;;;;;;;;;;;;6258:128;6213:173;:::o;24280:125::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:320;6298:6;6335:1;6329:4;6325:12;6315:22;;6382:1;6376:4;6372:12;6403:18;6393:81;;6459:4;6451:6;6447:17;6437:27;;6393:81;6521:2;6513:6;6510:14;6490:18;6487:38;6484:84;;6540:18;;:::i;:::-;6484:84;6305:269;6254:320;;;:::o;6580:182::-;6720:34;6716:1;6708:6;6704:14;6697:58;6580:182;:::o;6768:366::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6768:366;;;:::o;7140:419::-;7306:4;7344:2;7333:9;7329:18;7321:26;;7393:9;7387:4;7383:20;7379:1;7368:9;7364:17;7357:47;7421:131;7547:4;7421:131;:::i;:::-;7413:139;;7140:419;;;:::o;7565:225::-;7705:34;7701:1;7693:6;7689:14;7682:58;7774:8;7769:2;7761:6;7757:15;7750:33;7565:225;:::o;7796:366::-;7938:3;7959:67;8023:2;8018:3;7959:67;:::i;:::-;7952:74;;8035:93;8124:3;8035:93;:::i;:::-;8153:2;8148:3;8144:12;8137:19;;7796:366;;;:::o;8168:419::-;8334:4;8372:2;8361:9;8357:18;8349:26;;8421:9;8415:4;8411:20;8407:1;8396:9;8392:17;8385:47;8449:131;8575:4;8449:131;:::i;:::-;8441:139;;8168:419;;;:::o;8593:180::-;8641:77;8638:1;8631:88;8738:4;8735:1;8728:15;8762:4;8759:1;8752:15;8779:305;8819:3;8838:20;8856:1;8838:20;:::i;:::-;8833:25;;8872:20;8890:1;8872:20;:::i;:::-;8867:25;;9026:1;8958:66;8954:74;8951:1;8948:81;8945:107;;;9032:18;;:::i;:::-;8945:107;9076:1;9073;9069:9;9062:16;;8779:305;;;;:::o;9090:223::-;9230:34;9226:1;9218:6;9214:14;9207:58;9299:6;9294:2;9286:6;9282:15;9275:31;9090:223;:::o;9319:366::-;9461:3;9482:67;9546:2;9541:3;9482:67;:::i;:::-;9475:74;;9558:93;9647:3;9558:93;:::i;:::-;9676:2;9671:3;9667:12;9660:19;;9319:366;;;:::o;9691:419::-;9857:4;9895:2;9884:9;9880:18;9872:26;;9944:9;9938:4;9934:20;9930:1;9919:9;9915:17;9908:47;9972:131;10098:4;9972:131;:::i;:::-;9964:139;;9691:419;;;:::o;10116:221::-;10256:34;10252:1;10244:6;10240:14;10233:58;10325:4;10320:2;10312:6;10308:15;10301:29;10116:221;:::o;10343:366::-;10485:3;10506:67;10570:2;10565:3;10506:67;:::i;:::-;10499:74;;10582:93;10671:3;10582:93;:::i;:::-;10700:2;10695:3;10691:12;10684:19;;10343:366;;;:::o;10715:419::-;10881:4;10919:2;10908:9;10904:18;10896:26;;10968:9;10962:4;10958:20;10954:1;10943:9;10939:17;10932:47;10996:131;11122:4;10996:131;:::i;:::-;10988:139;;10715:419;;;:::o;11140:224::-;11280:34;11276:1;11268:6;11264:14;11257:58;11349:7;11344:2;11336:6;11332:15;11325:32;11140:224;:::o;11370:366::-;11512:3;11533:67;11597:2;11592:3;11533:67;:::i;:::-;11526:74;;11609:93;11698:3;11609:93;:::i;:::-;11727:2;11722:3;11718:12;11711:19;;11370:366;;;:::o;11742:419::-;11908:4;11946:2;11935:9;11931:18;11923:26;;11995:9;11989:4;11985:20;11981:1;11970:9;11966:17;11959:47;12023:131;12149:4;12023:131;:::i;:::-;12015:139;;11742:419;;;:::o;12167:222::-;12307:34;12303:1;12295:6;12291:14;12284:58;12376:5;12371:2;12363:6;12359:15;12352:30;12167:222;:::o;12395:366::-;12537:3;12558:67;12622:2;12617:3;12558:67;:::i;:::-;12551:74;;12634:93;12723:3;12634:93;:::i;:::-;12752:2;12747:3;12743:12;12736:19;;12395:366;;;:::o;12767:419::-;12933:4;12971:2;12960:9;12956:18;12948:26;;13020:9;13014:4;13010:20;13006:1;12995:9;12991:17;12984:47;13048:131;13174:4;13048:131;:::i;:::-;13040:139;;12767:419;;;:::o
Swarm Source
ipfs://cb217becf075d62e6f3cf50274f177e1057ddb4b12dd8e2f257588ec906097f5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.