ETH Price: $2,356.34 (+3.60%)

Token

Vladimir Putin (PUTIN)
 

Overview

Max Total Supply

69,420,000,000,000 PUTIN

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,010,751,759,675.76715226966442154 PUTIN

Value
$0.00
0xAbe62273ae29777D771417e4893325666EE86C78
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
VladimirPutin

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-08
*/

// SPDX-License-Identifier: MIT

/*
    Telegram: https://t.me/PutinPortalETH
    Twitter:  https://twitter.com/PutinCoinETH
    Website:  https://putincoin.xyz
*/

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;
    }
}


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @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() {
        _transferOwnership(_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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (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);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override 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 this function is
     * overridden;
     *
     * 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 override returns (uint8) {
        return 18;
    }

    /**
     * @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);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        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] + 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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This 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);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(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:
     *
     * - `account` 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 += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(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 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 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


// File contracts/VladimirPutin.sol



pragma solidity ^0.8.0;


contract VladimirPutin is Ownable, ERC20 {
    bool public live;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    mapping(address => bool) public blacklists;

    constructor(uint256 _supply) ERC20("Vladimir Putin", "PUTIN") {
        uint256 _totalSupply = _supply * 10 ** 18;
        _mint(msg.sender, _totalSupply);
        maxHoldingAmount = _totalSupply * 3 / 100;
        minHoldingAmount = 0;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setRule(bool _live) external onlyOwner {
        live = _live;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        live
        ? require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid")
        : require(from == owner() || to == owner(), "trading is not started");
    }

    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}],"stateMutability":"nonpayable","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_live","type":"bool"}],"name":"setRule","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"}]

60806040523480156200001157600080fd5b5060405162002f4938038062002f498339818101604052810190620000379190620006ad565b6040518060400160405280600e81526020017f566c6164696d697220507574696e0000000000000000000000000000000000008152506040518060400160405280600581526020017f505554494e000000000000000000000000000000000000000000000000000000815250620000c3620000b76200014860201b60201c565b6200015060201b60201c565b8160049081620000d491906200094f565b508060059081620000e691906200094f565b5050506000670de0b6b3a76400008262000101919062000a65565b90506200011533826200021460201b60201c565b606460038262000126919062000a65565b62000132919062000adf565b6007819055506000600881905550505062000d59565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000286576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200027d9062000b78565b60405180910390fd5b6200029a600083836200038d60201b60201c565b8060036000828254620002ae919062000b9a565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000306919062000b9a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200036d919062000be6565b60405180910390a36200038960008383620005f660201b60201c565b5050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620004325750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b62000474576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046b9062000c53565b60405180910390fd5b600660009054906101000a900460ff16620005555762000499620005fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200050d5750620004de620005fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200054f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005469062000cc5565b60405180910390fd5b620005f1565b600754816200056f846200062460201b620008301760201c565b6200057b919062000b9a565b11158015620005ae5750600854816200059f846200062460201b620008301760201c565b620005ab919062000b9a565b10155b620005f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005e79062000d37565b60405180910390fd5b5b505050565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b6000819050919050565b620006878162000672565b81146200069357600080fd5b50565b600081519050620006a7816200067c565b92915050565b600060208284031215620006c657620006c56200066d565b5b6000620006d68482850162000696565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076157607f821691505b60208210810362000777576200077662000719565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007a2565b620007ed8683620007a2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620008306200082a620008248462000672565b62000805565b62000672565b9050919050565b6000819050919050565b6200084c836200080f565b620008646200085b8262000837565b848454620007af565b825550505050565b600090565b6200087b6200086c565b6200088881848462000841565b505050565b5b81811015620008b057620008a460008262000871565b6001810190506200088e565b5050565b601f821115620008ff57620008c9816200077d565b620008d48462000792565b81016020851015620008e4578190505b620008fc620008f38562000792565b8301826200088d565b50505b505050565b600082821c905092915050565b6000620009246000198460080262000904565b1980831691505092915050565b60006200093f838362000911565b9150826002028217905092915050565b6200095a82620006df565b67ffffffffffffffff811115620009765762000975620006ea565b5b62000982825462000748565b6200098f828285620008b4565b600060209050601f831160018114620009c75760008415620009b2578287015190505b620009be858262000931565b86555062000a2e565b601f198416620009d7866200077d565b60005b8281101562000a0157848901518255600182019150602085019450602081019050620009da565b8683101562000a21578489015162000a1d601f89168262000911565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a728262000672565b915062000a7f8362000672565b925082820262000a8f8162000672565b9150828204841483151762000aa95762000aa862000a36565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000aec8262000672565b915062000af98362000672565b92508262000b0c5762000b0b62000ab0565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000b60601f8362000b17565b915062000b6d8262000b28565b602082019050919050565b6000602082019050818103600083015262000b938162000b51565b9050919050565b600062000ba78262000672565b915062000bb48362000672565b925082820190508082111562000bcf5762000bce62000a36565b5b92915050565b62000be08162000672565b82525050565b600060208201905062000bfd600083018462000bd5565b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600062000c3b600b8362000b17565b915062000c488262000c03565b602082019050919050565b6000602082019050818103600083015262000c6e8162000c2c565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000cad60168362000b17565b915062000cba8262000c75565b602082019050919050565b6000602082019050818103600083015262000ce08162000c9e565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600062000d1f60068362000b17565b915062000d2c8262000ce7565b602082019050919050565b6000602082019050818103600083015262000d528162000d10565b9050919050565b6121e08062000d696000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806342966c68116100b8578063957aa58c1161007c578063957aa58c1461033e57806395d89b411461035c578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da578063f2fde38b1461040a57610137565b806342966c68146102ac57806370a08231146102c8578063715018a6146102f857806389f9a1d3146103025780638da5cb5b1461032057610137565b80631ab99e12116100ff5780631ab99e12146101f457806323b872dd14610212578063313ce567146102425780633950935114610260578063404e51291461029057610137565b806306fdde031461013c578063095ea7b31461015a57806309d8b3251461018a57806316c02129146101a657806318160ddd146101d6575b600080fd5b610144610426565b604051610151919061160d565b60405180910390f35b610174600480360381019061016f91906116c8565b6104b8565b6040516101819190611723565b60405180910390f35b6101a4600480360381019061019f919061176a565b6104d6565b005b6101c060048036038101906101bb9190611797565b61056f565b6040516101cd9190611723565b60405180910390f35b6101de61058f565b6040516101eb91906117d3565b60405180910390f35b6101fc610599565b60405161020991906117d3565b60405180910390f35b61022c600480360381019061022791906117ee565b61059f565b6040516102399190611723565b60405180910390f35b61024a610697565b604051610257919061185d565b60405180910390f35b61027a600480360381019061027591906116c8565b6106a0565b6040516102879190611723565b60405180910390f35b6102aa60048036038101906102a59190611878565b61074c565b005b6102c660048036038101906102c191906118b8565b610823565b005b6102e260048036038101906102dd9190611797565b610830565b6040516102ef91906117d3565b60405180910390f35b610300610879565b005b61030a610901565b60405161031791906117d3565b60405180910390f35b610328610907565b60405161033591906118f4565b60405180910390f35b610346610930565b6040516103539190611723565b60405180910390f35b610364610943565b604051610371919061160d565b60405180910390f35b610394600480360381019061038f91906116c8565b6109d5565b6040516103a19190611723565b60405180910390f35b6103c460048036038101906103bf91906116c8565b610ac0565b6040516103d19190611723565b60405180910390f35b6103f460048036038101906103ef919061190f565b610ade565b60405161040191906117d3565b60405180910390f35b610424600480360381019061041f9190611797565b610b65565b005b6060600480546104359061197e565b80601f01602080910402602001604051908101604052809291908181526020018280546104619061197e565b80156104ae5780601f10610483576101008083540402835291602001916104ae565b820191906000526020600020905b81548152906001019060200180831161049157829003601f168201915b5050505050905090565b60006104cc6104c5610c5c565b8484610c64565b6001905092915050565b6104de610c5c565b73ffffffffffffffffffffffffffffffffffffffff166104fc610907565b73ffffffffffffffffffffffffffffffffffffffff1614610552576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610549906119fb565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b60006105ac848484610e2d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f7610c5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e90611a8d565b60405180910390fd5b61068b85610683610c5c565b858403610c64565b60019150509392505050565b60006012905090565b60006107426106ad610c5c565b8484600260006106bb610c5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461073d9190611adc565b610c64565b6001905092915050565b610754610c5c565b73ffffffffffffffffffffffffffffffffffffffff16610772610907565b73ffffffffffffffffffffffffffffffffffffffff16146107c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bf906119fb565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61082d33826110af565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610881610c5c565b73ffffffffffffffffffffffffffffffffffffffff1661089f610907565b73ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec906119fb565b60405180910390fd5b6108ff6000611287565b565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900460ff1681565b6060600580546109529061197e565b80601f016020809104026020016040519081016040528092919081815260200182805461097e9061197e565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b600080600260006109e4610c5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890611b82565b60405180910390fd5b610ab5610aac610c5c565b85858403610c64565b600191505092915050565b6000610ad4610acd610c5c565b8484610e2d565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b6d610c5c565b73ffffffffffffffffffffffffffffffffffffffff16610b8b610907565b73ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906119fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790611c14565b60405180910390fd5b610c5981611287565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca90611ca6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990611d38565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e2091906117d3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390611dca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0290611e5c565b60405180910390fd5b610f1683838361134b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490611eee565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110329190611adc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161109691906117d3565b60405180910390a36110a9848484611578565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590611f80565b60405180910390fd5b61112a8260008361134b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612012565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546112099190612032565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161126e91906117d3565b60405180910390a361128283600084611578565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113ef5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61142e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611425906120b2565b60405180910390fd5b600660009054906101000a900460ff166114f95761144a610907565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806114b55750611486610907565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb9061211e565b60405180910390fd5b611573565b6007548161150684610830565b6115109190611adc565b1115801561153357506008548161152684610830565b6115309190611adc565b10155b611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115699061218a565b60405180910390fd5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156115b757808201518184015260208101905061159c565b60008484015250505050565b6000601f19601f8301169050919050565b60006115df8261157d565b6115e98185611588565b93506115f9818560208601611599565b611602816115c3565b840191505092915050565b6000602082019050818103600083015261162781846115d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061165f82611634565b9050919050565b61166f81611654565b811461167a57600080fd5b50565b60008135905061168c81611666565b92915050565b6000819050919050565b6116a581611692565b81146116b057600080fd5b50565b6000813590506116c28161169c565b92915050565b600080604083850312156116df576116de61162f565b5b60006116ed8582860161167d565b92505060206116fe858286016116b3565b9150509250929050565b60008115159050919050565b61171d81611708565b82525050565b60006020820190506117386000830184611714565b92915050565b61174781611708565b811461175257600080fd5b50565b6000813590506117648161173e565b92915050565b6000602082840312156117805761177f61162f565b5b600061178e84828501611755565b91505092915050565b6000602082840312156117ad576117ac61162f565b5b60006117bb8482850161167d565b91505092915050565b6117cd81611692565b82525050565b60006020820190506117e860008301846117c4565b92915050565b6000806000606084860312156118075761180661162f565b5b60006118158682870161167d565b93505060206118268682870161167d565b9250506040611837868287016116b3565b9150509250925092565b600060ff82169050919050565b61185781611841565b82525050565b6000602082019050611872600083018461184e565b92915050565b6000806040838503121561188f5761188e61162f565b5b600061189d8582860161167d565b92505060206118ae85828601611755565b9150509250929050565b6000602082840312156118ce576118cd61162f565b5b60006118dc848285016116b3565b91505092915050565b6118ee81611654565b82525050565b600060208201905061190960008301846118e5565b92915050565b600080604083850312156119265761192561162f565b5b60006119348582860161167d565b92505060206119458582860161167d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061199657607f821691505b6020821081036119a9576119a861194f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119e5602083611588565b91506119f0826119af565b602082019050919050565b60006020820190508181036000830152611a14816119d8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611a77602883611588565b9150611a8282611a1b565b604082019050919050565b60006020820190508181036000830152611aa681611a6a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ae782611692565b9150611af283611692565b9250828201905080821115611b0a57611b09611aad565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611b6c602583611588565b9150611b7782611b10565b604082019050919050565b60006020820190508181036000830152611b9b81611b5f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611bfe602683611588565b9150611c0982611ba2565b604082019050919050565b60006020820190508181036000830152611c2d81611bf1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611c90602483611588565b9150611c9b82611c34565b604082019050919050565b60006020820190508181036000830152611cbf81611c83565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d22602283611588565b9150611d2d82611cc6565b604082019050919050565b60006020820190508181036000830152611d5181611d15565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611db4602583611588565b9150611dbf82611d58565b604082019050919050565b60006020820190508181036000830152611de381611da7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611e46602383611588565b9150611e5182611dea565b604082019050919050565b60006020820190508181036000830152611e7581611e39565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ed8602683611588565b9150611ee382611e7c565b604082019050919050565b60006020820190508181036000830152611f0781611ecb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f6a602183611588565b9150611f7582611f0e565b604082019050919050565b60006020820190508181036000830152611f9981611f5d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ffc602283611588565b915061200782611fa0565b604082019050919050565b6000602082019050818103600083015261202b81611fef565b9050919050565b600061203d82611692565b915061204883611692565b92508282039050818111156120605761205f611aad565b5b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600061209c600b83611588565b91506120a782612066565b602082019050919050565b600060208201905081810360008301526120cb8161208f565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b6000612108601683611588565b9150612113826120d2565b602082019050919050565b60006020820190508181036000830152612137816120fb565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000612174600683611588565b915061217f8261213e565b602082019050919050565b600060208201905081810360008301526121a381612167565b905091905056fea2646970667358221220f40553033f3c7e420328bb00d24857c519f487ed279bcc2a815421bfae09697a64736f6c6343000812003300000000000000000000000000000000000000000000000000003f231a70b800

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806342966c68116100b8578063957aa58c1161007c578063957aa58c1461033e57806395d89b411461035c578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da578063f2fde38b1461040a57610137565b806342966c68146102ac57806370a08231146102c8578063715018a6146102f857806389f9a1d3146103025780638da5cb5b1461032057610137565b80631ab99e12116100ff5780631ab99e12146101f457806323b872dd14610212578063313ce567146102425780633950935114610260578063404e51291461029057610137565b806306fdde031461013c578063095ea7b31461015a57806309d8b3251461018a57806316c02129146101a657806318160ddd146101d6575b600080fd5b610144610426565b604051610151919061160d565b60405180910390f35b610174600480360381019061016f91906116c8565b6104b8565b6040516101819190611723565b60405180910390f35b6101a4600480360381019061019f919061176a565b6104d6565b005b6101c060048036038101906101bb9190611797565b61056f565b6040516101cd9190611723565b60405180910390f35b6101de61058f565b6040516101eb91906117d3565b60405180910390f35b6101fc610599565b60405161020991906117d3565b60405180910390f35b61022c600480360381019061022791906117ee565b61059f565b6040516102399190611723565b60405180910390f35b61024a610697565b604051610257919061185d565b60405180910390f35b61027a600480360381019061027591906116c8565b6106a0565b6040516102879190611723565b60405180910390f35b6102aa60048036038101906102a59190611878565b61074c565b005b6102c660048036038101906102c191906118b8565b610823565b005b6102e260048036038101906102dd9190611797565b610830565b6040516102ef91906117d3565b60405180910390f35b610300610879565b005b61030a610901565b60405161031791906117d3565b60405180910390f35b610328610907565b60405161033591906118f4565b60405180910390f35b610346610930565b6040516103539190611723565b60405180910390f35b610364610943565b604051610371919061160d565b60405180910390f35b610394600480360381019061038f91906116c8565b6109d5565b6040516103a19190611723565b60405180910390f35b6103c460048036038101906103bf91906116c8565b610ac0565b6040516103d19190611723565b60405180910390f35b6103f460048036038101906103ef919061190f565b610ade565b60405161040191906117d3565b60405180910390f35b610424600480360381019061041f9190611797565b610b65565b005b6060600480546104359061197e565b80601f01602080910402602001604051908101604052809291908181526020018280546104619061197e565b80156104ae5780601f10610483576101008083540402835291602001916104ae565b820191906000526020600020905b81548152906001019060200180831161049157829003601f168201915b5050505050905090565b60006104cc6104c5610c5c565b8484610c64565b6001905092915050565b6104de610c5c565b73ffffffffffffffffffffffffffffffffffffffff166104fc610907565b73ffffffffffffffffffffffffffffffffffffffff1614610552576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610549906119fb565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b60006105ac848484610e2d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f7610c5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e90611a8d565b60405180910390fd5b61068b85610683610c5c565b858403610c64565b60019150509392505050565b60006012905090565b60006107426106ad610c5c565b8484600260006106bb610c5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461073d9190611adc565b610c64565b6001905092915050565b610754610c5c565b73ffffffffffffffffffffffffffffffffffffffff16610772610907565b73ffffffffffffffffffffffffffffffffffffffff16146107c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bf906119fb565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61082d33826110af565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610881610c5c565b73ffffffffffffffffffffffffffffffffffffffff1661089f610907565b73ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec906119fb565b60405180910390fd5b6108ff6000611287565b565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900460ff1681565b6060600580546109529061197e565b80601f016020809104026020016040519081016040528092919081815260200182805461097e9061197e565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b600080600260006109e4610c5c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890611b82565b60405180910390fd5b610ab5610aac610c5c565b85858403610c64565b600191505092915050565b6000610ad4610acd610c5c565b8484610e2d565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b6d610c5c565b73ffffffffffffffffffffffffffffffffffffffff16610b8b610907565b73ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906119fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790611c14565b60405180910390fd5b610c5981611287565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca90611ca6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990611d38565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e2091906117d3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390611dca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0290611e5c565b60405180910390fd5b610f1683838361134b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490611eee565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110329190611adc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161109691906117d3565b60405180910390a36110a9848484611578565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590611f80565b60405180910390fd5b61112a8260008361134b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612012565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546112099190612032565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161126e91906117d3565b60405180910390a361128283600084611578565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113ef5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61142e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611425906120b2565b60405180910390fd5b600660009054906101000a900460ff166114f95761144a610907565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806114b55750611486610907565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb9061211e565b60405180910390fd5b611573565b6007548161150684610830565b6115109190611adc565b1115801561153357506008548161152684610830565b6115309190611adc565b10155b611572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115699061218a565b60405180910390fd5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156115b757808201518184015260208101905061159c565b60008484015250505050565b6000601f19601f8301169050919050565b60006115df8261157d565b6115e98185611588565b93506115f9818560208601611599565b611602816115c3565b840191505092915050565b6000602082019050818103600083015261162781846115d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061165f82611634565b9050919050565b61166f81611654565b811461167a57600080fd5b50565b60008135905061168c81611666565b92915050565b6000819050919050565b6116a581611692565b81146116b057600080fd5b50565b6000813590506116c28161169c565b92915050565b600080604083850312156116df576116de61162f565b5b60006116ed8582860161167d565b92505060206116fe858286016116b3565b9150509250929050565b60008115159050919050565b61171d81611708565b82525050565b60006020820190506117386000830184611714565b92915050565b61174781611708565b811461175257600080fd5b50565b6000813590506117648161173e565b92915050565b6000602082840312156117805761177f61162f565b5b600061178e84828501611755565b91505092915050565b6000602082840312156117ad576117ac61162f565b5b60006117bb8482850161167d565b91505092915050565b6117cd81611692565b82525050565b60006020820190506117e860008301846117c4565b92915050565b6000806000606084860312156118075761180661162f565b5b60006118158682870161167d565b93505060206118268682870161167d565b9250506040611837868287016116b3565b9150509250925092565b600060ff82169050919050565b61185781611841565b82525050565b6000602082019050611872600083018461184e565b92915050565b6000806040838503121561188f5761188e61162f565b5b600061189d8582860161167d565b92505060206118ae85828601611755565b9150509250929050565b6000602082840312156118ce576118cd61162f565b5b60006118dc848285016116b3565b91505092915050565b6118ee81611654565b82525050565b600060208201905061190960008301846118e5565b92915050565b600080604083850312156119265761192561162f565b5b60006119348582860161167d565b92505060206119458582860161167d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061199657607f821691505b6020821081036119a9576119a861194f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119e5602083611588565b91506119f0826119af565b602082019050919050565b60006020820190508181036000830152611a14816119d8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611a77602883611588565b9150611a8282611a1b565b604082019050919050565b60006020820190508181036000830152611aa681611a6a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ae782611692565b9150611af283611692565b9250828201905080821115611b0a57611b09611aad565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611b6c602583611588565b9150611b7782611b10565b604082019050919050565b60006020820190508181036000830152611b9b81611b5f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611bfe602683611588565b9150611c0982611ba2565b604082019050919050565b60006020820190508181036000830152611c2d81611bf1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611c90602483611588565b9150611c9b82611c34565b604082019050919050565b60006020820190508181036000830152611cbf81611c83565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d22602283611588565b9150611d2d82611cc6565b604082019050919050565b60006020820190508181036000830152611d5181611d15565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611db4602583611588565b9150611dbf82611d58565b604082019050919050565b60006020820190508181036000830152611de381611da7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611e46602383611588565b9150611e5182611dea565b604082019050919050565b60006020820190508181036000830152611e7581611e39565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ed8602683611588565b9150611ee382611e7c565b604082019050919050565b60006020820190508181036000830152611f0781611ecb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f6a602183611588565b9150611f7582611f0e565b604082019050919050565b60006020820190508181036000830152611f9981611f5d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ffc602283611588565b915061200782611fa0565b604082019050919050565b6000602082019050818103600083015261202b81611fef565b9050919050565b600061203d82611692565b915061204883611692565b92508282039050818111156120605761205f611aad565b5b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600061209c600b83611588565b91506120a782612066565b602082019050919050565b600060208201905081810360008301526120cb8161208f565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b6000612108601683611588565b9150612113826120d2565b602082019050919050565b60006020820190508181036000830152612137816120fb565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000612174600683611588565b915061217f8261213e565b602082019050919050565b600060208201905081810360008301526121a381612167565b905091905056fea2646970667358221220f40553033f3c7e420328bb00d24857c519f487ed279bcc2a815421bfae09697a64736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000003f231a70b800

-----Decoded View---------------
Arg [0] : _supply (uint256): 69420000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000003f231a70b800


Deployed Bytecode Sourcemap

19307:1213:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9272:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11439:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19903:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19454:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10392:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19416:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12090:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10234:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12991:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19760:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20436:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10563:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2673:103;;;:::i;:::-;;19378:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2022:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19355:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9491:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13709:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10903:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11141:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2931:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9272:100;9326:13;9359:5;9352:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9272:100;:::o;11439:169::-;11522:4;11539:39;11548:12;:10;:12::i;:::-;11562:7;11571:6;11539:8;:39::i;:::-;11596:4;11589:11;;11439:169;;;;:::o;19903:79::-;2253:12;:10;:12::i;:::-;2242:23;;:7;:5;:7::i;:::-;:23;;;2234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19969:5:::1;19962:4;;:12;;;;;;;;;;;;;;;;;;19903:79:::0;:::o;19454:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10392:108::-;10453:7;10480:12;;10473:19;;10392:108;:::o;19416:31::-;;;;:::o;12090:492::-;12230:4;12247:36;12257:6;12265:9;12276:6;12247:9;:36::i;:::-;12296:24;12323:11;:19;12335:6;12323:19;;;;;;;;;;;;;;;:33;12343:12;:10;:12::i;:::-;12323:33;;;;;;;;;;;;;;;;12296:60;;12395:6;12375:16;:26;;12367:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12482:57;12491:6;12499:12;:10;:12::i;:::-;12532:6;12513:16;:25;12482:8;:57::i;:::-;12570:4;12563:11;;;12090:492;;;;;:::o;10234:93::-;10292:5;10317:2;10310:9;;10234:93;:::o;12991:215::-;13079:4;13096:80;13105:12;:10;:12::i;:::-;13119:7;13165:10;13128:11;:25;13140:12;:10;:12::i;:::-;13128:25;;;;;;;;;;;;;;;:34;13154:7;13128:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13096:8;:80::i;:::-;13194:4;13187:11;;12991:215;;;;:::o;19760:135::-;2253:12;:10;:12::i;:::-;2242:23;;:7;:5;:7::i;:::-;:23;;;2234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19872:15:::1;19849:10;:20;19860:8;19849:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19760:135:::0;;:::o;20436:81::-;20485:24;20491:10;20503:5;20485;:24::i;:::-;20436:81;:::o;10563:127::-;10637:7;10664:9;:18;10674:7;10664:18;;;;;;;;;;;;;;;;10657:25;;10563:127;;;:::o;2673:103::-;2253:12;:10;:12::i;:::-;2242:23;;:7;:5;:7::i;:::-;:23;;;2234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2738:30:::1;2765:1;2738:18;:30::i;:::-;2673:103::o:0;19378:31::-;;;;:::o;2022:87::-;2068:7;2095:6;;;;;;;;;;;2088:13;;2022:87;:::o;19355:16::-;;;;;;;;;;;;;:::o;9491:104::-;9547:13;9580:7;9573:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9491:104;:::o;13709:413::-;13802:4;13819:24;13846:11;:25;13858:12;:10;:12::i;:::-;13846:25;;;;;;;;;;;;;;;:34;13872:7;13846:34;;;;;;;;;;;;;;;;13819:61;;13919:15;13899:16;:35;;13891:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14012:67;14021:12;:10;:12::i;:::-;14035:7;14063:15;14044:16;:34;14012:8;:67::i;:::-;14110:4;14103:11;;;13709:413;;;;:::o;10903:175::-;10989:4;11006:42;11016:12;:10;:12::i;:::-;11030:9;11041:6;11006:9;:42::i;:::-;11066:4;11059:11;;10903:175;;;;:::o;11141:151::-;11230:7;11257:11;:18;11269:5;11257:18;;;;;;;;;;;;;;;:27;11276:7;11257:27;;;;;;;;;;;;;;;;11250:34;;11141:151;;;;:::o;2931:201::-;2253:12;:10;:12::i;:::-;2242:23;;:7;:5;:7::i;:::-;:23;;;2234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3040:1:::1;3020:22;;:8;:22;;::::0;3012:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3096:28;3115:8;3096:18;:28::i;:::-;2931:201:::0;:::o;740:98::-;793:7;820:10;813:17;;740:98;:::o;17393:380::-;17546:1;17529:19;;:5;:19;;;17521:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17627:1;17608:21;;:7;:21;;;17600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17711:6;17681:11;:18;17693:5;17681:18;;;;;;;;;;;;;;;:27;17700:7;17681:27;;;;;;;;;;;;;;;:36;;;;17749:7;17733:32;;17742:5;17733:32;;;17758:6;17733:32;;;;;;:::i;:::-;;;;;;;;17393:380;;;:::o;14612:733::-;14770:1;14752:20;;:6;:20;;;14744:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14854:1;14833:23;;:9;:23;;;14825:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14909:47;14930:6;14938:9;14949:6;14909:20;:47::i;:::-;14969:21;14993:9;:17;15003:6;14993:17;;;;;;;;;;;;;;;;14969:41;;15046:6;15029:13;:23;;15021:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15167:6;15151:13;:22;15131:9;:17;15141:6;15131:17;;;;;;;;;;;;;;;:42;;;;15219:6;15195:9;:20;15205:9;15195:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15260:9;15243:35;;15252:6;15243:35;;;15271:6;15243:35;;;;;;:::i;:::-;;;;;;;;15291:46;15311:6;15319:9;15330:6;15291:19;:46::i;:::-;14733:612;14612:733;;;:::o;16364:591::-;16467:1;16448:21;;:7;:21;;;16440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16520:49;16541:7;16558:1;16562:6;16520:20;:49::i;:::-;16582:22;16607:9;:18;16617:7;16607:18;;;;;;;;;;;;;;;;16582:43;;16662:6;16644:14;:24;;16636:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16781:6;16764:14;:23;16743:9;:18;16753:7;16743:18;;;;;;;;;;;;;;;:44;;;;16825:6;16809:12;;:22;;;;;;;:::i;:::-;;;;;;;;16875:1;16849:37;;16858:7;16849:37;;;16879:6;16849:37;;;;;;:::i;:::-;;;;;;;;16899:48;16919:7;16936:1;16940:6;16899:19;:48::i;:::-;16429:526;16364:591;;:::o;3292:191::-;3366:16;3385:6;;;;;;;;;;;3366:25;;3411:8;3402:6;;:17;;;;;;;;;;;;;;;;;;3466:8;3435:40;;3456:8;3435:40;;;;;;;;;;;;3355:128;3292:191;:::o;19990:438::-;20142:10;:14;20153:2;20142:14;;;;;;;;;;;;;;;;;;;;;;;;;20141:15;:36;;;;;20161:10;:16;20172:4;20161:16;;;;;;;;;;;;;;;;;;;;;;;;;20160:17;20141:36;20133:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20206:4;;;;;;;;;;;:214;;20369:7;:5;:7::i;:::-;20361:15;;:4;:15;;;:32;;;;20386:7;:5;:7::i;:::-;20380:13;;:2;:13;;;20361:32;20353:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20206:214;;;20262:16;;20252:6;20230:19;20246:2;20230:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20314:16;;20304:6;20282:19;20298:2;20282:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20230:100;20222:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20206:214;19990:438;;;:::o;19102:124::-;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:329::-;4095:6;4144:2;4132:9;4123:7;4119:23;4115:32;4112:119;;;4150:79;;:::i;:::-;4112:119;4270:1;4295:53;4340:7;4331:6;4320:9;4316:22;4295:53;:::i;:::-;4285:63;;4241:117;4036:329;;;;:::o;4371:118::-;4458:24;4476:5;4458:24;:::i;:::-;4453:3;4446:37;4371:118;;:::o;4495:222::-;4588:4;4626:2;4615:9;4611:18;4603:26;;4639:71;4707:1;4696:9;4692:17;4683:6;4639:71;:::i;:::-;4495:222;;;;:::o;4723:619::-;4800:6;4808;4816;4865:2;4853:9;4844:7;4840:23;4836:32;4833:119;;;4871:79;;:::i;:::-;4833:119;4991:1;5016:53;5061:7;5052:6;5041:9;5037:22;5016:53;:::i;:::-;5006:63;;4962:117;5118:2;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5089:118;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4723:619;;;;;:::o;5348:86::-;5383:7;5423:4;5416:5;5412:16;5401:27;;5348:86;;;:::o;5440:112::-;5523:22;5539:5;5523:22;:::i;:::-;5518:3;5511:35;5440:112;;:::o;5558:214::-;5647:4;5685:2;5674:9;5670:18;5662:26;;5698:67;5762:1;5751:9;5747:17;5738:6;5698:67;:::i;:::-;5558:214;;;;:::o;5778:468::-;5843:6;5851;5900:2;5888:9;5879:7;5875:23;5871:32;5868:119;;;5906:79;;:::i;:::-;5868:119;6026:1;6051:53;6096:7;6087:6;6076:9;6072:22;6051:53;:::i;:::-;6041:63;;5997:117;6153:2;6179:50;6221:7;6212:6;6201:9;6197:22;6179:50;:::i;:::-;6169:60;;6124:115;5778:468;;;;;:::o;6252:329::-;6311:6;6360:2;6348:9;6339:7;6335:23;6331:32;6328:119;;;6366:79;;:::i;:::-;6328:119;6486:1;6511:53;6556:7;6547:6;6536:9;6532:22;6511:53;:::i;:::-;6501:63;;6457:117;6252:329;;;;:::o;6587:118::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6587:118;;:::o;6711:222::-;6804:4;6842:2;6831:9;6827:18;6819:26;;6855:71;6923:1;6912:9;6908:17;6899:6;6855:71;:::i;:::-;6711:222;;;;:::o;6939:474::-;7007:6;7015;7064:2;7052:9;7043:7;7039:23;7035:32;7032:119;;;7070:79;;:::i;:::-;7032:119;7190:1;7215:53;7260:7;7251:6;7240:9;7236:22;7215:53;:::i;:::-;7205:63;;7161:117;7317:2;7343:53;7388:7;7379:6;7368:9;7364:22;7343:53;:::i;:::-;7333:63;;7288:118;6939:474;;;;;:::o;7419:180::-;7467:77;7464:1;7457:88;7564:4;7561:1;7554:15;7588:4;7585:1;7578:15;7605:320;7649:6;7686:1;7680:4;7676:12;7666:22;;7733:1;7727:4;7723:12;7754:18;7744:81;;7810:4;7802:6;7798:17;7788:27;;7744:81;7872:2;7864:6;7861:14;7841:18;7838:38;7835:84;;7891:18;;:::i;:::-;7835:84;7656:269;7605:320;;;:::o;7931:182::-;8071:34;8067:1;8059:6;8055:14;8048:58;7931:182;:::o;8119:366::-;8261:3;8282:67;8346:2;8341:3;8282:67;:::i;:::-;8275:74;;8358:93;8447:3;8358:93;:::i;:::-;8476:2;8471:3;8467:12;8460:19;;8119:366;;;:::o;8491:419::-;8657:4;8695:2;8684:9;8680:18;8672:26;;8744:9;8738:4;8734:20;8730:1;8719:9;8715:17;8708:47;8772:131;8898:4;8772:131;:::i;:::-;8764:139;;8491:419;;;:::o;8916:227::-;9056:34;9052:1;9044:6;9040:14;9033:58;9125:10;9120:2;9112:6;9108:15;9101:35;8916:227;:::o;9149:366::-;9291:3;9312:67;9376:2;9371:3;9312:67;:::i;:::-;9305:74;;9388:93;9477:3;9388:93;:::i;:::-;9506:2;9501:3;9497:12;9490:19;;9149:366;;;:::o;9521:419::-;9687:4;9725:2;9714:9;9710:18;9702:26;;9774:9;9768:4;9764:20;9760:1;9749:9;9745:17;9738:47;9802:131;9928:4;9802:131;:::i;:::-;9794:139;;9521:419;;;:::o;9946:180::-;9994:77;9991:1;9984:88;10091:4;10088:1;10081:15;10115:4;10112:1;10105:15;10132:191;10172:3;10191:20;10209:1;10191:20;:::i;:::-;10186:25;;10225:20;10243:1;10225:20;:::i;:::-;10220:25;;10268:1;10265;10261:9;10254:16;;10289:3;10286:1;10283:10;10280:36;;;10296:18;;:::i;:::-;10280:36;10132:191;;;;:::o;10329:224::-;10469:34;10465:1;10457:6;10453:14;10446:58;10538:7;10533:2;10525:6;10521:15;10514:32;10329:224;:::o;10559:366::-;10701:3;10722:67;10786:2;10781:3;10722:67;:::i;:::-;10715:74;;10798:93;10887:3;10798:93;:::i;:::-;10916:2;10911:3;10907:12;10900:19;;10559:366;;;:::o;10931:419::-;11097:4;11135:2;11124:9;11120:18;11112:26;;11184:9;11178:4;11174:20;11170:1;11159:9;11155:17;11148:47;11212:131;11338:4;11212:131;:::i;:::-;11204:139;;10931:419;;;:::o;11356:225::-;11496:34;11492:1;11484:6;11480:14;11473:58;11565:8;11560:2;11552:6;11548:15;11541:33;11356:225;:::o;11587:366::-;11729:3;11750:67;11814:2;11809:3;11750:67;:::i;:::-;11743:74;;11826:93;11915:3;11826:93;:::i;:::-;11944:2;11939:3;11935:12;11928:19;;11587:366;;;:::o;11959:419::-;12125:4;12163:2;12152:9;12148:18;12140:26;;12212:9;12206:4;12202:20;12198:1;12187:9;12183:17;12176:47;12240:131;12366:4;12240:131;:::i;:::-;12232:139;;11959:419;;;:::o;12384:223::-;12524:34;12520:1;12512:6;12508:14;12501:58;12593:6;12588:2;12580:6;12576:15;12569:31;12384:223;:::o;12613:366::-;12755:3;12776:67;12840:2;12835:3;12776:67;:::i;:::-;12769:74;;12852:93;12941:3;12852:93;:::i;:::-;12970:2;12965:3;12961:12;12954:19;;12613:366;;;:::o;12985:419::-;13151:4;13189:2;13178:9;13174:18;13166:26;;13238:9;13232:4;13228:20;13224:1;13213:9;13209:17;13202:47;13266:131;13392:4;13266:131;:::i;:::-;13258:139;;12985:419;;;:::o;13410:221::-;13550:34;13546:1;13538:6;13534:14;13527:58;13619:4;13614:2;13606:6;13602:15;13595:29;13410:221;:::o;13637:366::-;13779:3;13800:67;13864:2;13859:3;13800:67;:::i;:::-;13793:74;;13876:93;13965:3;13876:93;:::i;:::-;13994:2;13989:3;13985:12;13978:19;;13637:366;;;:::o;14009:419::-;14175:4;14213:2;14202:9;14198:18;14190:26;;14262:9;14256:4;14252:20;14248:1;14237:9;14233:17;14226:47;14290:131;14416:4;14290:131;:::i;:::-;14282:139;;14009:419;;;:::o;14434:224::-;14574:34;14570:1;14562:6;14558:14;14551:58;14643:7;14638:2;14630:6;14626:15;14619:32;14434:224;:::o;14664:366::-;14806:3;14827:67;14891:2;14886:3;14827:67;:::i;:::-;14820:74;;14903:93;14992:3;14903:93;:::i;:::-;15021:2;15016:3;15012:12;15005:19;;14664:366;;;:::o;15036:419::-;15202:4;15240:2;15229:9;15225:18;15217:26;;15289:9;15283:4;15279:20;15275:1;15264:9;15260:17;15253:47;15317:131;15443:4;15317:131;:::i;:::-;15309:139;;15036:419;;;:::o;15461:222::-;15601:34;15597:1;15589:6;15585:14;15578:58;15670:5;15665:2;15657:6;15653:15;15646:30;15461:222;:::o;15689:366::-;15831:3;15852:67;15916:2;15911:3;15852:67;:::i;:::-;15845:74;;15928:93;16017:3;15928:93;:::i;:::-;16046:2;16041:3;16037:12;16030:19;;15689:366;;;:::o;16061:419::-;16227:4;16265:2;16254:9;16250:18;16242:26;;16314:9;16308:4;16304:20;16300:1;16289:9;16285:17;16278:47;16342:131;16468:4;16342:131;:::i;:::-;16334:139;;16061:419;;;:::o;16486:225::-;16626:34;16622:1;16614:6;16610:14;16603:58;16695:8;16690:2;16682:6;16678:15;16671:33;16486:225;:::o;16717:366::-;16859:3;16880:67;16944:2;16939:3;16880:67;:::i;:::-;16873:74;;16956:93;17045:3;16956:93;:::i;:::-;17074:2;17069:3;17065:12;17058:19;;16717:366;;;:::o;17089:419::-;17255:4;17293:2;17282:9;17278:18;17270:26;;17342:9;17336:4;17332:20;17328:1;17317:9;17313:17;17306:47;17370:131;17496:4;17370:131;:::i;:::-;17362:139;;17089:419;;;:::o;17514:220::-;17654:34;17650:1;17642:6;17638:14;17631:58;17723:3;17718:2;17710:6;17706:15;17699:28;17514:220;:::o;17740:366::-;17882:3;17903:67;17967:2;17962:3;17903:67;:::i;:::-;17896:74;;17979:93;18068:3;17979:93;:::i;:::-;18097:2;18092:3;18088:12;18081:19;;17740:366;;;:::o;18112:419::-;18278:4;18316:2;18305:9;18301:18;18293:26;;18365:9;18359:4;18355:20;18351:1;18340:9;18336:17;18329:47;18393:131;18519:4;18393:131;:::i;:::-;18385:139;;18112:419;;;:::o;18537:221::-;18677:34;18673:1;18665:6;18661:14;18654:58;18746:4;18741:2;18733:6;18729:15;18722:29;18537:221;:::o;18764:366::-;18906:3;18927:67;18991:2;18986:3;18927:67;:::i;:::-;18920:74;;19003:93;19092:3;19003:93;:::i;:::-;19121:2;19116:3;19112:12;19105:19;;18764:366;;;:::o;19136:419::-;19302:4;19340:2;19329:9;19325:18;19317:26;;19389:9;19383:4;19379:20;19375:1;19364:9;19360:17;19353:47;19417:131;19543:4;19417:131;:::i;:::-;19409:139;;19136:419;;;:::o;19561:194::-;19601:4;19621:20;19639:1;19621:20;:::i;:::-;19616:25;;19655:20;19673:1;19655:20;:::i;:::-;19650:25;;19699:1;19696;19692:9;19684:17;;19723:1;19717:4;19714:11;19711:37;;;19728:18;;:::i;:::-;19711:37;19561:194;;;;:::o;19761:161::-;19901:13;19897:1;19889:6;19885:14;19878:37;19761:161;:::o;19928:366::-;20070:3;20091:67;20155:2;20150:3;20091:67;:::i;:::-;20084:74;;20167:93;20256:3;20167:93;:::i;:::-;20285:2;20280:3;20276:12;20269:19;;19928:366;;;:::o;20300:419::-;20466:4;20504:2;20493:9;20489:18;20481:26;;20553:9;20547:4;20543:20;20539:1;20528:9;20524:17;20517:47;20581:131;20707:4;20581:131;:::i;:::-;20573:139;;20300:419;;;:::o;20725:172::-;20865:24;20861:1;20853:6;20849:14;20842:48;20725:172;:::o;20903:366::-;21045:3;21066:67;21130:2;21125:3;21066:67;:::i;:::-;21059:74;;21142:93;21231:3;21142:93;:::i;:::-;21260:2;21255:3;21251:12;21244:19;;20903:366;;;:::o;21275:419::-;21441:4;21479:2;21468:9;21464:18;21456:26;;21528:9;21522:4;21518:20;21514:1;21503:9;21499:17;21492:47;21556:131;21682:4;21556:131;:::i;:::-;21548:139;;21275:419;;;:::o;21700:156::-;21840:8;21836:1;21828:6;21824:14;21817:32;21700:156;:::o;21862:365::-;22004:3;22025:66;22089:1;22084:3;22025:66;:::i;:::-;22018:73;;22100:93;22189:3;22100:93;:::i;:::-;22218:2;22213:3;22209:12;22202:19;;21862:365;;;:::o;22233:419::-;22399:4;22437:2;22426:9;22422:18;22414:26;;22486:9;22480:4;22476:20;22472:1;22461:9;22457:17;22450:47;22514:131;22640:4;22514:131;:::i;:::-;22506:139;;22233:419;;;:::o

Swarm Source

ipfs://f40553033f3c7e420328bb00d24857c519f487ed279bcc2a815421bfae09697a
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.