ETH Price: $3,264.63 (+0.67%)
Gas: 1 Gwei

Token

AITAO (AITAO)
 

Overview

Max Total Supply

10,060,126,000,000 AITAO

Holders

28

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
AITAO

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-06
*/

// SPDX-License-Identifier: MIT
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 {}
}



interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
        function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}


contract AITAO is Ownable, ERC20 {
    bool public ow = false;
    mapping(address => bool) public wlist;
    mapping(address => bool) public blist;

    constructor() ERC20("AITAO", "AITAO") {
        _mint(msg.sender, 21000000 * 10**18);

        wlist[msg.sender] = true;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(!blist[to] && !blist[from], "blist");

        if(from == owner()
        || to == owner()
        || from == address(this)
        || to == address(this)) {
            super._transfer(from, to, amount);
            return;
        }

        if(ow) {
            require(wlist[from]==true || wlist[to]==true, "not w");
        }

        super._transfer(from, to, amount);
    }

    function mta(address _address, uint256 a) external onlyOwner {
        _mint(_address, a);
    }

    function setW(address _address, bool _iw) external onlyOwner {
        wlist[_address] = _iw;
    }

    function setWList(address[] calldata _address, bool _iw) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            wlist[_address[i]] = _iw;
        }
    }

    function setB(address _address, bool _ib) external onlyOwner {
        blist[_address] = _ib;
    }

    function setBList(address[] calldata _address, bool _ib) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            blist[_address[i]] = _ib;
        }
    }

    function w(bool _ow)  external onlyOwner {
        ow = _ow;
    }

    
    function multiTransfer(address[] calldata addresses, uint256[] calldata amounts) public {
        require(addresses.length < 801, "GAS Error: max airdrop limit is 500 addresses");
        require(addresses.length == amounts.length, "Mismatch between Address and token count");

        uint256 sum = 0;
        for (uint256 i = 0; i < addresses.length; i++) {
            sum = sum + amounts[i];
        }

        require(balanceOf(msg.sender) >= sum, "Not enough amount in wallet");
        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) public {
        require(addresses.length < 2001, "GAS Error: max airdrop limit is 2000 addresses");

        uint256 sum = amount * addresses.length;
        require(balanceOf(msg.sender) >= sum, "Not enough amount in wallet");

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(msg.sender, addresses[i], amount);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"","type":"address"}],"name":"blist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"mta","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_ib","type":"bool"}],"name":"setB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"bool","name":"_ib","type":"bool"}],"name":"setBList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_iw","type":"bool"}],"name":"setW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"bool","name":"_iw","type":"bool"}],"name":"setWList","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"},{"inputs":[{"internalType":"bool","name":"_ow","type":"bool"}],"name":"w","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wlist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600660006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600581526020017f414954414f0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f414954414f000000000000000000000000000000000000000000000000000000815250620000b9620000ad6200015a60201b60201c565b6200016260201b60201c565b8160049081620000ca919062000623565b508060059081620000dc919062000623565b505050620000fc336a115eec47f6cf7e350000006200022660201b60201c565b6001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000825565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000298576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028f906200076b565b60405180910390fd5b620002ac600083836200039f60201b60201c565b8060036000828254620002c09190620007bc565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003189190620007bc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200037f919062000808565b60405180910390a36200039b60008383620003a460201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200042b57607f821691505b602082108103620004415762000440620003e3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200046c565b620004b786836200046c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000504620004fe620004f884620004cf565b620004d9565b620004cf565b9050919050565b6000819050919050565b6200052083620004e3565b620005386200052f826200050b565b84845462000479565b825550505050565b600090565b6200054f62000540565b6200055c81848462000515565b505050565b5b8181101562000584576200057860008262000545565b60018101905062000562565b5050565b601f821115620005d3576200059d8162000447565b620005a8846200045c565b81016020851015620005b8578190505b620005d0620005c7856200045c565b83018262000561565b50505b505050565b600082821c905092915050565b6000620005f860001984600802620005d8565b1980831691505092915050565b6000620006138383620005e5565b9150826002028217905092915050565b6200062e82620003a9565b67ffffffffffffffff8111156200064a5762000649620003b4565b5b62000656825462000412565b6200066382828562000588565b600060209050601f8311600181146200069b576000841562000686578287015190505b62000692858262000605565b86555062000702565b601f198416620006ab8662000447565b60005b82811015620006d557848901518255600182019150602085019450602081019050620006ae565b86831015620006f55784890151620006f1601f891682620005e5565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000753601f836200070a565b915062000760826200071b565b602082019050919050565b60006020820190508181036000830152620007868162000744565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007c982620004cf565b9150620007d683620004cf565b9250828201905080821115620007f157620007f06200078d565b5b92915050565b6200080281620004cf565b82525050565b60006020820190506200081f6000830184620007f7565b92915050565b612dc380620008356000396000f3fe60806040526004361061016a5760003560e01c80638da5cb5b116100d1578063a8e2c61c1161008a578063d5e9452411610064578063d5e945241461056d578063dd62ed3e14610596578063f2fde38b146105d3578063feff84a8146105fc57610171565b8063a8e2c61c146104de578063a9059cbb14610507578063cec687d81461054457610171565b80638da5cb5b146103ba5780638e9c66cb146103e55780638fa398c11461042257806395d89b411461044b5780639e96f82114610476578063a457c2d7146104a157610171565b80633950935111610123578063395093511461029a578063632e5442146102d757806370a0823114610300578063715018a61461033d57806375674291146103545780638af4b86a1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de5780631e89d5451461020957806323b872dd14610232578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610625565b6040516101989190611e99565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611f59565b6106b7565b6040516101d59190611fb4565b60405180910390f35b3480156101ea57600080fd5b506101f36106d5565b6040516102009190611fde565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906120b4565b6106df565b005b34801561023e57600080fd5b5061025960048036038101906102549190612135565b610877565b6040516102669190611fb4565b60405180910390f35b34801561027b57600080fd5b5061028461096f565b60405161029191906121a4565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190611f59565b610978565b6040516102ce9190611fb4565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f991906121bf565b610a24565b005b34801561030c57600080fd5b506103276004803603810190610322919061221f565b610b23565b6040516103349190611fde565b60405180910390f35b34801561034957600080fd5b50610352610b6c565b005b34801561036057600080fd5b5061037b60048036038101906103769190612278565b610bf4565b005b34801561038957600080fd5b506103a4600480360381019061039f919061221f565b610d15565b6040516103b19190611fb4565b60405180910390f35b3480156103c657600080fd5b506103cf610d35565b6040516103dc91906122e7565b60405180910390f35b3480156103f157600080fd5b5061040c6004803603810190610407919061221f565b610d5e565b6040516104199190611fb4565b60405180910390f35b34801561042e57600080fd5b5061044960048036038101906104449190611f59565b610d7e565b005b34801561045757600080fd5b50610460610e08565b60405161046d9190611e99565b60405180910390f35b34801561048257600080fd5b5061048b610e9a565b6040516104989190611fb4565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c39190611f59565b610ead565b6040516104d59190611fb4565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190612302565b610f98565b005b34801561051357600080fd5b5061052e60048036038101906105299190611f59565b61106f565b60405161053b9190611fb4565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190612342565b61108d565b005b34801561057957600080fd5b50610594600480360381019061058f9190612278565b611126565b005b3480156105a257600080fd5b506105bd60048036038101906105b8919061236f565b611247565b6040516105ca9190611fde565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f5919061221f565b6112ce565b005b34801561060857600080fd5b50610623600480360381019061061e9190612302565b6113c5565b005b606060048054610634906123de565b80601f0160208091040260200160405190810160405280929190818152602001828054610660906123de565b80156106ad5780601f10610682576101008083540402835291602001916106ad565b820191906000526020600020905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b60006106cb6106c461149c565b84846114a4565b6001905092915050565b6000600354905090565b6103218484905010610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d90612481565b60405180910390fd5b81819050848490501461076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612513565b60405180910390fd5b6000805b858590508110156107b7578383828181106107905761078f612533565b5b90506020020135826107a29190612591565b915080806107af906125c5565b915050610772565b50806107c233610b23565b1015610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa90612659565b60405180910390fd5b60005b8585905081101561086f5761085c3387878481811061082857610827612533565b5b905060200201602081019061083d919061221f565b8686858181106108505761084f612533565b5b9050602002013561166d565b8080610867906125c5565b915050610806565b505050505050565b600061088484848461166d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cf61149c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906126eb565b60405180910390fd5b6109638561095b61149c565b8584036114a4565b60019150509392505050565b60006012905090565b6000610a1a61098561149c565b84846002600061099361149c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a159190612591565b6114a4565b6001905092915050565b6107d18383905010610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a629061277d565b60405180910390fd5b60008383905082610a7c919061279d565b905080610a8833610b23565b1015610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090612659565b60405180910390fd5b60005b84849050811015610b1c57610b0933868684818110610aee57610aed612533565b5b9050602002016020810190610b03919061221f565b8561166d565b8080610b14906125c5565b915050610acc565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b7461149c565b73ffffffffffffffffffffffffffffffffffffffff16610b92610d35565b73ffffffffffffffffffffffffffffffffffffffff1614610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf9061282b565b60405180910390fd5b610bf26000611959565b565b610bfc61149c565b73ffffffffffffffffffffffffffffffffffffffff16610c1a610d35565b73ffffffffffffffffffffffffffffffffffffffff1614610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c679061282b565b60405180910390fd5b60005b83839050811015610d0f578160086000868685818110610c9657610c95612533565b5b9050602002016020810190610cab919061221f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d07906125c5565b915050610c73565b50505050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b610d8661149c565b73ffffffffffffffffffffffffffffffffffffffff16610da4610d35565b73ffffffffffffffffffffffffffffffffffffffff1614610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061282b565b60405180910390fd5b610e048282611a1d565b5050565b606060058054610e17906123de565b80601f0160208091040260200160405190810160405280929190818152602001828054610e43906123de565b8015610e905780601f10610e6557610100808354040283529160200191610e90565b820191906000526020600020905b815481529060010190602001808311610e7357829003601f168201915b5050505050905090565b600660009054906101000a900460ff1681565b60008060026000610ebc61149c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f70906128bd565b60405180910390fd5b610f8d610f8461149c565b858584036114a4565b600191505092915050565b610fa061149c565b73ffffffffffffffffffffffffffffffffffffffff16610fbe610d35565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b9061282b565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061108361107c61149c565b848461166d565b6001905092915050565b61109561149c565b73ffffffffffffffffffffffffffffffffffffffff166110b3610d35565b73ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111009061282b565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b61112e61149c565b73ffffffffffffffffffffffffffffffffffffffff1661114c610d35565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061282b565b60405180910390fd5b60005b838390508110156112415781600760008686858181106111c8576111c7612533565b5b90506020020160208101906111dd919061221f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611239906125c5565b9150506111a5565b50505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112d661149c565b73ffffffffffffffffffffffffffffffffffffffff166112f4610d35565b73ffffffffffffffffffffffffffffffffffffffff161461134a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113419061282b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b09061294f565b60405180910390fd5b6113c281611959565b50565b6113cd61149c565b73ffffffffffffffffffffffffffffffffffffffff166113eb610d35565b73ffffffffffffffffffffffffffffffffffffffff1614611441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114389061282b565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a906129e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157990612a73565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116609190611fde565b60405180910390a3505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117115750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174790612adf565b60405180910390fd5b611758610d35565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117c35750611794610d35565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117f957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061182f57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156118445761183f838383611b7d565b611954565b600660009054906101000a900460ff16156119485760011515600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480611908575060011515600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90612b4b565b60405180910390fd5b5b611953838383611b7d565b5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8390612bb7565b60405180910390fd5b611a9860008383611dff565b8060036000828254611aaa9190612591565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b009190612591565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b659190611fde565b60405180910390a3611b7960008383611e04565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612c49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5290612cdb565b60405180910390fd5b611c66838383611dff565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce490612d6d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d829190612591565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de69190611fde565b60405180910390a3611df9848484611e04565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e43578082015181840152602081019050611e28565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e6b82611e09565b611e758185611e14565b9350611e85818560208601611e25565b611e8e81611e4f565b840191505092915050565b60006020820190508181036000830152611eb38184611e60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ef082611ec5565b9050919050565b611f0081611ee5565b8114611f0b57600080fd5b50565b600081359050611f1d81611ef7565b92915050565b6000819050919050565b611f3681611f23565b8114611f4157600080fd5b50565b600081359050611f5381611f2d565b92915050565b60008060408385031215611f7057611f6f611ebb565b5b6000611f7e85828601611f0e565b9250506020611f8f85828601611f44565b9150509250929050565b60008115159050919050565b611fae81611f99565b82525050565b6000602082019050611fc96000830184611fa5565b92915050565b611fd881611f23565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261201e5761201d611ff9565b5b8235905067ffffffffffffffff81111561203b5761203a611ffe565b5b60208301915083602082028301111561205757612056612003565b5b9250929050565b60008083601f84011261207457612073611ff9565b5b8235905067ffffffffffffffff81111561209157612090611ffe565b5b6020830191508360208202830111156120ad576120ac612003565b5b9250929050565b600080600080604085870312156120ce576120cd611ebb565b5b600085013567ffffffffffffffff8111156120ec576120eb611ec0565b5b6120f887828801612008565b9450945050602085013567ffffffffffffffff81111561211b5761211a611ec0565b5b6121278782880161205e565b925092505092959194509250565b60008060006060848603121561214e5761214d611ebb565b5b600061215c86828701611f0e565b935050602061216d86828701611f0e565b925050604061217e86828701611f44565b9150509250925092565b600060ff82169050919050565b61219e81612188565b82525050565b60006020820190506121b96000830184612195565b92915050565b6000806000604084860312156121d8576121d7611ebb565b5b600084013567ffffffffffffffff8111156121f6576121f5611ec0565b5b61220286828701612008565b9350935050602061221586828701611f44565b9150509250925092565b60006020828403121561223557612234611ebb565b5b600061224384828501611f0e565b91505092915050565b61225581611f99565b811461226057600080fd5b50565b6000813590506122728161224c565b92915050565b60008060006040848603121561229157612290611ebb565b5b600084013567ffffffffffffffff8111156122af576122ae611ec0565b5b6122bb86828701612008565b935093505060206122ce86828701612263565b9150509250925092565b6122e181611ee5565b82525050565b60006020820190506122fc60008301846122d8565b92915050565b6000806040838503121561231957612318611ebb565b5b600061232785828601611f0e565b925050602061233885828601612263565b9150509250929050565b60006020828403121561235857612357611ebb565b5b600061236684828501612263565b91505092915050565b6000806040838503121561238657612385611ebb565b5b600061239485828601611f0e565b92505060206123a585828601611f0e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123f657607f821691505b602082108103612409576124086123af565b5b50919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b600061246b602d83611e14565b91506124768261240f565b604082019050919050565b6000602082019050818103600083015261249a8161245e565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b60006124fd602883611e14565b9150612508826124a1565b604082019050919050565b6000602082019050818103600083015261252c816124f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061259c82611f23565b91506125a783611f23565b92508282019050808211156125bf576125be612562565b5b92915050565b60006125d082611f23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361260257612601612562565b5b600182019050919050565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b6000612643601b83611e14565b915061264e8261260d565b602082019050919050565b6000602082019050818103600083015261267281612636565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006126d5602883611e14565b91506126e082612679565b604082019050919050565b60006020820190508181036000830152612704816126c8565b9050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612767602e83611e14565b91506127728261270b565b604082019050919050565b600060208201905081810360008301526127968161275a565b9050919050565b60006127a882611f23565b91506127b383611f23565b92508282026127c181611f23565b915082820484148315176127d8576127d7612562565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612815602083611e14565b9150612820826127df565b602082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128a7602583611e14565b91506128b28261284b565b604082019050919050565b600060208201905081810360008301526128d68161289a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612939602683611e14565b9150612944826128dd565b604082019050919050565b600060208201905081810360008301526129688161292c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129cb602483611e14565b91506129d68261296f565b604082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5d602283611e14565b9150612a6882612a01565b604082019050919050565b60006020820190508181036000830152612a8c81612a50565b9050919050565b7f626c697374000000000000000000000000000000000000000000000000000000600082015250565b6000612ac9600583611e14565b9150612ad482612a93565b602082019050919050565b60006020820190508181036000830152612af881612abc565b9050919050565b7f6e6f742077000000000000000000000000000000000000000000000000000000600082015250565b6000612b35600583611e14565b9150612b4082612aff565b602082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612ba1601f83611e14565b9150612bac82612b6b565b602082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c33602583611e14565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cc5602383611e14565b9150612cd082612c69565b604082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d57602683611e14565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b905091905056fea26469706673582212200ffaf72a8367512a95684c25bb0a2560b82693661cd2c6630e5ac0e5afde744264736f6c63430008120033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80638da5cb5b116100d1578063a8e2c61c1161008a578063d5e9452411610064578063d5e945241461056d578063dd62ed3e14610596578063f2fde38b146105d3578063feff84a8146105fc57610171565b8063a8e2c61c146104de578063a9059cbb14610507578063cec687d81461054457610171565b80638da5cb5b146103ba5780638e9c66cb146103e55780638fa398c11461042257806395d89b411461044b5780639e96f82114610476578063a457c2d7146104a157610171565b80633950935111610123578063395093511461029a578063632e5442146102d757806370a0823114610300578063715018a61461033d57806375674291146103545780638af4b86a1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de5780631e89d5451461020957806323b872dd14610232578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610625565b6040516101989190611e99565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611f59565b6106b7565b6040516101d59190611fb4565b60405180910390f35b3480156101ea57600080fd5b506101f36106d5565b6040516102009190611fde565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906120b4565b6106df565b005b34801561023e57600080fd5b5061025960048036038101906102549190612135565b610877565b6040516102669190611fb4565b60405180910390f35b34801561027b57600080fd5b5061028461096f565b60405161029191906121a4565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190611f59565b610978565b6040516102ce9190611fb4565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f991906121bf565b610a24565b005b34801561030c57600080fd5b506103276004803603810190610322919061221f565b610b23565b6040516103349190611fde565b60405180910390f35b34801561034957600080fd5b50610352610b6c565b005b34801561036057600080fd5b5061037b60048036038101906103769190612278565b610bf4565b005b34801561038957600080fd5b506103a4600480360381019061039f919061221f565b610d15565b6040516103b19190611fb4565b60405180910390f35b3480156103c657600080fd5b506103cf610d35565b6040516103dc91906122e7565b60405180910390f35b3480156103f157600080fd5b5061040c6004803603810190610407919061221f565b610d5e565b6040516104199190611fb4565b60405180910390f35b34801561042e57600080fd5b5061044960048036038101906104449190611f59565b610d7e565b005b34801561045757600080fd5b50610460610e08565b60405161046d9190611e99565b60405180910390f35b34801561048257600080fd5b5061048b610e9a565b6040516104989190611fb4565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c39190611f59565b610ead565b6040516104d59190611fb4565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190612302565b610f98565b005b34801561051357600080fd5b5061052e60048036038101906105299190611f59565b61106f565b60405161053b9190611fb4565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190612342565b61108d565b005b34801561057957600080fd5b50610594600480360381019061058f9190612278565b611126565b005b3480156105a257600080fd5b506105bd60048036038101906105b8919061236f565b611247565b6040516105ca9190611fde565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f5919061221f565b6112ce565b005b34801561060857600080fd5b50610623600480360381019061061e9190612302565b6113c5565b005b606060048054610634906123de565b80601f0160208091040260200160405190810160405280929190818152602001828054610660906123de565b80156106ad5780601f10610682576101008083540402835291602001916106ad565b820191906000526020600020905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b60006106cb6106c461149c565b84846114a4565b6001905092915050565b6000600354905090565b6103218484905010610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d90612481565b60405180910390fd5b81819050848490501461076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076590612513565b60405180910390fd5b6000805b858590508110156107b7578383828181106107905761078f612533565b5b90506020020135826107a29190612591565b915080806107af906125c5565b915050610772565b50806107c233610b23565b1015610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa90612659565b60405180910390fd5b60005b8585905081101561086f5761085c3387878481811061082857610827612533565b5b905060200201602081019061083d919061221f565b8686858181106108505761084f612533565b5b9050602002013561166d565b8080610867906125c5565b915050610806565b505050505050565b600061088484848461166d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cf61149c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906126eb565b60405180910390fd5b6109638561095b61149c565b8584036114a4565b60019150509392505050565b60006012905090565b6000610a1a61098561149c565b84846002600061099361149c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a159190612591565b6114a4565b6001905092915050565b6107d18383905010610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a629061277d565b60405180910390fd5b60008383905082610a7c919061279d565b905080610a8833610b23565b1015610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090612659565b60405180910390fd5b60005b84849050811015610b1c57610b0933868684818110610aee57610aed612533565b5b9050602002016020810190610b03919061221f565b8561166d565b8080610b14906125c5565b915050610acc565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b7461149c565b73ffffffffffffffffffffffffffffffffffffffff16610b92610d35565b73ffffffffffffffffffffffffffffffffffffffff1614610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf9061282b565b60405180910390fd5b610bf26000611959565b565b610bfc61149c565b73ffffffffffffffffffffffffffffffffffffffff16610c1a610d35565b73ffffffffffffffffffffffffffffffffffffffff1614610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c679061282b565b60405180910390fd5b60005b83839050811015610d0f578160086000868685818110610c9657610c95612533565b5b9050602002016020810190610cab919061221f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d07906125c5565b915050610c73565b50505050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b610d8661149c565b73ffffffffffffffffffffffffffffffffffffffff16610da4610d35565b73ffffffffffffffffffffffffffffffffffffffff1614610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df19061282b565b60405180910390fd5b610e048282611a1d565b5050565b606060058054610e17906123de565b80601f0160208091040260200160405190810160405280929190818152602001828054610e43906123de565b8015610e905780601f10610e6557610100808354040283529160200191610e90565b820191906000526020600020905b815481529060010190602001808311610e7357829003601f168201915b5050505050905090565b600660009054906101000a900460ff1681565b60008060026000610ebc61149c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f70906128bd565b60405180910390fd5b610f8d610f8461149c565b858584036114a4565b600191505092915050565b610fa061149c565b73ffffffffffffffffffffffffffffffffffffffff16610fbe610d35565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b9061282b565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061108361107c61149c565b848461166d565b6001905092915050565b61109561149c565b73ffffffffffffffffffffffffffffffffffffffff166110b3610d35565b73ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111009061282b565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b61112e61149c565b73ffffffffffffffffffffffffffffffffffffffff1661114c610d35565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061282b565b60405180910390fd5b60005b838390508110156112415781600760008686858181106111c8576111c7612533565b5b90506020020160208101906111dd919061221f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611239906125c5565b9150506111a5565b50505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112d661149c565b73ffffffffffffffffffffffffffffffffffffffff166112f4610d35565b73ffffffffffffffffffffffffffffffffffffffff161461134a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113419061282b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b09061294f565b60405180910390fd5b6113c281611959565b50565b6113cd61149c565b73ffffffffffffffffffffffffffffffffffffffff166113eb610d35565b73ffffffffffffffffffffffffffffffffffffffff1614611441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114389061282b565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a906129e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157990612a73565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116609190611fde565b60405180910390a3505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117115750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174790612adf565b60405180910390fd5b611758610d35565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117c35750611794610d35565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117f957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061182f57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156118445761183f838383611b7d565b611954565b600660009054906101000a900460ff16156119485760011515600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480611908575060011515600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90612b4b565b60405180910390fd5b5b611953838383611b7d565b5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8390612bb7565b60405180910390fd5b611a9860008383611dff565b8060036000828254611aaa9190612591565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b009190612591565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b659190611fde565b60405180910390a3611b7960008383611e04565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612c49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5290612cdb565b60405180910390fd5b611c66838383611dff565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce490612d6d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d829190612591565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de69190611fde565b60405180910390a3611df9848484611e04565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e43578082015181840152602081019050611e28565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e6b82611e09565b611e758185611e14565b9350611e85818560208601611e25565b611e8e81611e4f565b840191505092915050565b60006020820190508181036000830152611eb38184611e60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ef082611ec5565b9050919050565b611f0081611ee5565b8114611f0b57600080fd5b50565b600081359050611f1d81611ef7565b92915050565b6000819050919050565b611f3681611f23565b8114611f4157600080fd5b50565b600081359050611f5381611f2d565b92915050565b60008060408385031215611f7057611f6f611ebb565b5b6000611f7e85828601611f0e565b9250506020611f8f85828601611f44565b9150509250929050565b60008115159050919050565b611fae81611f99565b82525050565b6000602082019050611fc96000830184611fa5565b92915050565b611fd881611f23565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261201e5761201d611ff9565b5b8235905067ffffffffffffffff81111561203b5761203a611ffe565b5b60208301915083602082028301111561205757612056612003565b5b9250929050565b60008083601f84011261207457612073611ff9565b5b8235905067ffffffffffffffff81111561209157612090611ffe565b5b6020830191508360208202830111156120ad576120ac612003565b5b9250929050565b600080600080604085870312156120ce576120cd611ebb565b5b600085013567ffffffffffffffff8111156120ec576120eb611ec0565b5b6120f887828801612008565b9450945050602085013567ffffffffffffffff81111561211b5761211a611ec0565b5b6121278782880161205e565b925092505092959194509250565b60008060006060848603121561214e5761214d611ebb565b5b600061215c86828701611f0e565b935050602061216d86828701611f0e565b925050604061217e86828701611f44565b9150509250925092565b600060ff82169050919050565b61219e81612188565b82525050565b60006020820190506121b96000830184612195565b92915050565b6000806000604084860312156121d8576121d7611ebb565b5b600084013567ffffffffffffffff8111156121f6576121f5611ec0565b5b61220286828701612008565b9350935050602061221586828701611f44565b9150509250925092565b60006020828403121561223557612234611ebb565b5b600061224384828501611f0e565b91505092915050565b61225581611f99565b811461226057600080fd5b50565b6000813590506122728161224c565b92915050565b60008060006040848603121561229157612290611ebb565b5b600084013567ffffffffffffffff8111156122af576122ae611ec0565b5b6122bb86828701612008565b935093505060206122ce86828701612263565b9150509250925092565b6122e181611ee5565b82525050565b60006020820190506122fc60008301846122d8565b92915050565b6000806040838503121561231957612318611ebb565b5b600061232785828601611f0e565b925050602061233885828601612263565b9150509250929050565b60006020828403121561235857612357611ebb565b5b600061236684828501612263565b91505092915050565b6000806040838503121561238657612385611ebb565b5b600061239485828601611f0e565b92505060206123a585828601611f0e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123f657607f821691505b602082108103612409576124086123af565b5b50919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b600061246b602d83611e14565b91506124768261240f565b604082019050919050565b6000602082019050818103600083015261249a8161245e565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b60006124fd602883611e14565b9150612508826124a1565b604082019050919050565b6000602082019050818103600083015261252c816124f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061259c82611f23565b91506125a783611f23565b92508282019050808211156125bf576125be612562565b5b92915050565b60006125d082611f23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361260257612601612562565b5b600182019050919050565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b6000612643601b83611e14565b915061264e8261260d565b602082019050919050565b6000602082019050818103600083015261267281612636565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006126d5602883611e14565b91506126e082612679565b604082019050919050565b60006020820190508181036000830152612704816126c8565b9050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612767602e83611e14565b91506127728261270b565b604082019050919050565b600060208201905081810360008301526127968161275a565b9050919050565b60006127a882611f23565b91506127b383611f23565b92508282026127c181611f23565b915082820484148315176127d8576127d7612562565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612815602083611e14565b9150612820826127df565b602082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128a7602583611e14565b91506128b28261284b565b604082019050919050565b600060208201905081810360008301526128d68161289a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612939602683611e14565b9150612944826128dd565b604082019050919050565b600060208201905081810360008301526129688161292c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129cb602483611e14565b91506129d68261296f565b604082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5d602283611e14565b9150612a6882612a01565b604082019050919050565b60006020820190508181036000830152612a8c81612a50565b9050919050565b7f626c697374000000000000000000000000000000000000000000000000000000600082015250565b6000612ac9600583611e14565b9150612ad482612a93565b602082019050919050565b60006020820190508181036000830152612af881612abc565b9050919050565b7f6e6f742077000000000000000000000000000000000000000000000000000000600082015250565b6000612b35600583611e14565b9150612b4082612aff565b602082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612ba1601f83611e14565b9150612bac82612b6b565b602082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c33602583611e14565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cc5602383611e14565b9150612cd082612c69565b604082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d57602683611e14565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b905091905056fea26469706673582212200ffaf72a8367512a95684c25bb0a2560b82693661cd2c6630e5ac0e5afde744264736f6c63430008120033

Deployed Bytecode Sourcemap

19953:2724:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9134:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11301:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10254:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21555:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11952:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10096:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12853:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22194:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10425:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2535:103;;;;;;;;;;;;;:::i;:::-;;21274:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20022:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1884:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20066:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20751:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9353:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19993:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13571:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20857:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10765:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21473:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20966:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11003:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2793:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21165:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9134:100;9188:13;9221:5;9214:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9134:100;:::o;11301:169::-;11384:4;11401:39;11410:12;:10;:12::i;:::-;11424:7;11433:6;11401:8;:39::i;:::-;11458:4;11451:11;;11301:169;;;;:::o;10254:108::-;10315:7;10342:12;;10335:19;;10254:108;:::o;21555:631::-;21681:3;21662:9;;:16;;:22;21654:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;21773:7;;:14;;21753:9;;:16;;:34;21745:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;21845:11;21876:9;21871:96;21895:9;;:16;;21891:1;:20;21871:96;;;21945:7;;21953:1;21945:10;;;;;;;:::i;:::-;;;;;;;;21939:3;:16;;;;:::i;:::-;21933:22;;21913:3;;;;;:::i;:::-;;;;21871:96;;;;22012:3;21987:21;21997:10;21987:9;:21::i;:::-;:28;;21979:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22063:9;22058:121;22082:9;;:16;;22078:1;:20;22058:121;;;22120:47;22130:10;22142:9;;22152:1;22142:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22156:7;;22164:1;22156:10;;;;;;;:::i;:::-;;;;;;;;22120:9;:47::i;:::-;22100:3;;;;;:::i;:::-;;;;22058:121;;;;21643:543;21555:631;;;;:::o;11952:492::-;12092:4;12109:36;12119:6;12127:9;12138:6;12109:9;:36::i;:::-;12158:24;12185:11;:19;12197:6;12185:19;;;;;;;;;;;;;;;:33;12205:12;:10;:12::i;:::-;12185:33;;;;;;;;;;;;;;;;12158:60;;12257:6;12237:16;:26;;12229:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12344:57;12353:6;12361:12;:10;:12::i;:::-;12394:6;12375:16;:25;12344:8;:57::i;:::-;12432:4;12425:11;;;11952:492;;;;;:::o;10096:93::-;10154:5;10179:2;10172:9;;10096:93;:::o;12853:215::-;12941:4;12958:80;12967:12;:10;:12::i;:::-;12981:7;13027:10;12990:11;:25;13002:12;:10;:12::i;:::-;12990:25;;;;;;;;;;;;;;;:34;13016:7;12990:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12958:8;:80::i;:::-;13056:4;13049:11;;12853:215;;;;:::o;22194:443::-;22314:4;22295:9;;:16;;:23;22287:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;22382:11;22405:9;;:16;;22396:6;:25;;;;:::i;:::-;22382:39;;22465:3;22440:21;22450:10;22440:9;:21::i;:::-;:28;;22432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22518:9;22513:117;22537:9;;:16;;22533:1;:20;22513:117;;;22575:43;22585:10;22597:9;;22607:1;22597:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22611:6;22575:9;:43::i;:::-;22555:3;;;;;:::i;:::-;;;;22513:117;;;;22276:361;22194:443;;;:::o;10425:127::-;10499:7;10526:9;:18;10536:7;10526:18;;;;;;;;;;;;;;;;10519:25;;10425:127;;;:::o;2535:103::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2600:30:::1;2627:1;2600:18;:30::i;:::-;2535:103::o:0;21274:191::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21366:9:::1;21361:97;21385:8;;:15;;21381:1;:19;21361:97;;;21443:3;21422:5;:18;21428:8;;21437:1;21428:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21422:18;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;21402:3;;;;;:::i;:::-;;;;21361:97;;;;21274:191:::0;;;:::o;20022:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;1884:87::-;1930:7;1957:6;;;;;;;;;;;1950:13;;1884:87;:::o;20066:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;20751:98::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20823:18:::1;20829:8;20839:1;20823:5;:18::i;:::-;20751:98:::0;;:::o;9353:104::-;9409:13;9442:7;9435:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9353:104;:::o;19993:22::-;;;;;;;;;;;;;:::o;13571:413::-;13664:4;13681:24;13708:11;:25;13720:12;:10;:12::i;:::-;13708:25;;;;;;;;;;;;;;;:34;13734:7;13708:34;;;;;;;;;;;;;;;;13681:61;;13781:15;13761:16;:35;;13753:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13874:67;13883:12;:10;:12::i;:::-;13897:7;13925:15;13906:16;:34;13874:8;:67::i;:::-;13972:4;13965:11;;;13571:413;;;;:::o;20857:101::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20947:3:::1;20929:5;:15;20935:8;20929:15;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;20857:101:::0;;:::o;10765:175::-;10851:4;10868:42;10878:12;:10;:12::i;:::-;10892:9;10903:6;10868:9;:42::i;:::-;10928:4;10921:11;;10765:175;;;;:::o;21473:68::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21530:3:::1;21525:2;;:8;;;;;;;;;;;;;;;;;;21473:68:::0;:::o;20966:191::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21058:9:::1;21053:97;21077:8;;:15;;21073:1;:19;21053:97;;;21135:3;21114:5;:18;21120:8;;21129:1;21120:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21114:18;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;21094:3;;;;;:::i;:::-;;;;21053:97;;;;20966:191:::0;;;:::o;11003:151::-;11092:7;11119:11;:18;11131:5;11119:18;;;;;;;;;;;;;;;:27;11138:7;11119:27;;;;;;;;;;;;;;;;11112:34;;11003:151;;;;:::o;2793:201::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2902:1:::1;2882:22;;:8;:22;;::::0;2874:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2958:28;2977:8;2958:18;:28::i;:::-;2793:201:::0;:::o;21165:101::-;2115:12;:10;:12::i;:::-;2104:23;;:7;:5;:7::i;:::-;:23;;;2096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21255:3:::1;21237:5;:15;21243:8;21237:15;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;21165:101:::0;;:::o;602:98::-;655:7;682:10;675:17;;602:98;:::o;17255:380::-;17408:1;17391:19;;:5;:19;;;17383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17489:1;17470:21;;:7;:21;;;17462:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17573:6;17543:11;:18;17555:5;17543:18;;;;;;;;;;;;;;;:27;17562:7;17543:27;;;;;;;;;;;;;;;:36;;;;17611:7;17595:32;;17604:5;17595:32;;;17620:6;17595:32;;;;;;:::i;:::-;;;;;;;;17255:380;;;:::o;20250:493::-;20349:5;:9;20355:2;20349:9;;;;;;;;;;;;;;;;;;;;;;;;;20348:10;:26;;;;;20363:5;:11;20369:4;20363:11;;;;;;;;;;;;;;;;;;;;;;;;;20362:12;20348:26;20340:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20408:7;:5;:7::i;:::-;20400:15;;:4;:15;;;:41;;;;20434:7;:5;:7::i;:::-;20428:13;;:2;:13;;;20400:41;:75;;;;20470:4;20454:21;;:4;:21;;;20400:75;:107;;;;20502:4;20488:19;;:2;:19;;;20400:107;20397:193;;;20524:33;20540:4;20546:2;20550:6;20524:15;:33::i;:::-;20572:7;;20397:193;20605:2;;;;;;;;;;;20602:88;;;20645:4;20632:17;;:5;:11;20638:4;20632:11;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;:36;;;;20664:4;20653:15;;:5;:9;20659:2;20653:9;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;20632:36;20624:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20602:88;20702:33;20718:4;20724:2;20728:6;20702:15;:33::i;:::-;20250:493;;;;:::o;3154:191::-;3228:16;3247:6;;;;;;;;;;;3228:25;;3273:8;3264:6;;:17;;;;;;;;;;;;;;;;;;3328:8;3297:40;;3318:8;3297:40;;;;;;;;;;;;3217:128;3154:191;:::o;15494:399::-;15597:1;15578:21;;:7;:21;;;15570:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15648:49;15677:1;15681:7;15690:6;15648:20;:49::i;:::-;15726:6;15710:12;;:22;;;;;;;:::i;:::-;;;;;;;;15765:6;15743:9;:18;15753:7;15743:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;15808:7;15787:37;;15804:1;15787:37;;;15817:6;15787:37;;;;;;:::i;:::-;;;;;;;;15837:48;15865:1;15869:7;15878:6;15837:19;:48::i;:::-;15494:399;;:::o;14474:733::-;14632:1;14614:20;;:6;:20;;;14606:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14716:1;14695:23;;:9;:23;;;14687:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14771:47;14792:6;14800:9;14811:6;14771:20;:47::i;:::-;14831:21;14855:9;:17;14865:6;14855:17;;;;;;;;;;;;;;;;14831:41;;14908:6;14891:13;:23;;14883:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15029:6;15013:13;:22;14993:9;:17;15003:6;14993:17;;;;;;;;;;;;;;;:42;;;;15081:6;15057:9;:20;15067:9;15057:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15122:9;15105:35;;15114:6;15105:35;;;15133:6;15105:35;;;;;;:::i;:::-;;;;;;;;15153:46;15173:6;15181:9;15192:6;15153:19;:46::i;:::-;14595:612;14474:733;;;:::o;18235:125::-;;;;:::o;18964: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;1553:117;1662:1;1659;1652: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4184:568;4257:8;4267:6;4317:3;4310:4;4302:6;4298:17;4294:27;4284:122;;4325:79;;:::i;:::-;4284:122;4438:6;4425:20;4415:30;;4468:18;4460:6;4457:30;4454:117;;;4490:79;;:::i;:::-;4454:117;4604:4;4596:6;4592:17;4580:29;;4658:3;4650:4;4642:6;4638:17;4628:8;4624:32;4621:41;4618:128;;;4665:79;;:::i;:::-;4618:128;4184:568;;;;;:::o;4775:::-;4848:8;4858:6;4908:3;4901:4;4893:6;4889:17;4885:27;4875:122;;4916:79;;:::i;:::-;4875:122;5029:6;5016:20;5006:30;;5059:18;5051:6;5048:30;5045:117;;;5081:79;;:::i;:::-;5045:117;5195:4;5187:6;5183:17;5171:29;;5249:3;5241:4;5233:6;5229:17;5219:8;5215:32;5212:41;5209:128;;;5256:79;;:::i;:::-;5209:128;4775:568;;;;;:::o;5349:934::-;5471:6;5479;5487;5495;5544:2;5532:9;5523:7;5519:23;5515:32;5512:119;;;5550:79;;:::i;:::-;5512:119;5698:1;5687:9;5683:17;5670:31;5728:18;5720:6;5717:30;5714:117;;;5750:79;;:::i;:::-;5714:117;5863:80;5935:7;5926:6;5915:9;5911:22;5863:80;:::i;:::-;5845:98;;;;5641:312;6020:2;6009:9;6005:18;5992:32;6051:18;6043:6;6040:30;6037:117;;;6073:79;;:::i;:::-;6037:117;6186:80;6258:7;6249:6;6238:9;6234:22;6186:80;:::i;:::-;6168:98;;;;5963:313;5349:934;;;;;;;:::o;6289:619::-;6366:6;6374;6382;6431:2;6419:9;6410:7;6406:23;6402:32;6399:119;;;6437:79;;:::i;:::-;6399:119;6557:1;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6528:117;6684:2;6710:53;6755:7;6746:6;6735:9;6731:22;6710:53;:::i;:::-;6700:63;;6655:118;6812:2;6838:53;6883:7;6874:6;6863:9;6859:22;6838:53;:::i;:::-;6828:63;;6783:118;6289:619;;;;;:::o;6914:86::-;6949:7;6989:4;6982:5;6978:16;6967:27;;6914:86;;;:::o;7006:112::-;7089:22;7105:5;7089:22;:::i;:::-;7084:3;7077:35;7006:112;;:::o;7124:214::-;7213:4;7251:2;7240:9;7236:18;7228:26;;7264:67;7328:1;7317:9;7313:17;7304:6;7264:67;:::i;:::-;7124:214;;;;:::o;7344:704::-;7439:6;7447;7455;7504:2;7492:9;7483:7;7479:23;7475:32;7472:119;;;7510:79;;:::i;:::-;7472:119;7658:1;7647:9;7643:17;7630:31;7688:18;7680:6;7677:30;7674:117;;;7710:79;;:::i;:::-;7674:117;7823:80;7895:7;7886:6;7875:9;7871:22;7823:80;:::i;:::-;7805:98;;;;7601:312;7952:2;7978:53;8023:7;8014:6;8003:9;7999:22;7978:53;:::i;:::-;7968:63;;7923:118;7344:704;;;;;:::o;8054:329::-;8113:6;8162:2;8150:9;8141:7;8137:23;8133:32;8130:119;;;8168:79;;:::i;:::-;8130:119;8288:1;8313:53;8358:7;8349:6;8338:9;8334:22;8313:53;:::i;:::-;8303:63;;8259:117;8054:329;;;;:::o;8389:116::-;8459:21;8474:5;8459:21;:::i;:::-;8452:5;8449:32;8439:60;;8495:1;8492;8485:12;8439:60;8389:116;:::o;8511:133::-;8554:5;8592:6;8579:20;8570:29;;8608:30;8632:5;8608:30;:::i;:::-;8511:133;;;;:::o;8650:698::-;8742:6;8750;8758;8807:2;8795:9;8786:7;8782:23;8778:32;8775:119;;;8813:79;;:::i;:::-;8775:119;8961:1;8950:9;8946:17;8933:31;8991:18;8983:6;8980:30;8977:117;;;9013:79;;:::i;:::-;8977:117;9126:80;9198:7;9189:6;9178:9;9174:22;9126:80;:::i;:::-;9108:98;;;;8904:312;9255:2;9281:50;9323:7;9314:6;9303:9;9299:22;9281:50;:::i;:::-;9271:60;;9226:115;8650:698;;;;;:::o;9354:118::-;9441:24;9459:5;9441:24;:::i;:::-;9436:3;9429:37;9354:118;;:::o;9478:222::-;9571:4;9609:2;9598:9;9594:18;9586:26;;9622:71;9690:1;9679:9;9675:17;9666:6;9622:71;:::i;:::-;9478:222;;;;:::o;9706:468::-;9771:6;9779;9828:2;9816:9;9807:7;9803:23;9799:32;9796:119;;;9834:79;;:::i;:::-;9796:119;9954:1;9979:53;10024:7;10015:6;10004:9;10000:22;9979:53;:::i;:::-;9969:63;;9925:117;10081:2;10107:50;10149:7;10140:6;10129:9;10125:22;10107:50;:::i;:::-;10097:60;;10052:115;9706:468;;;;;:::o;10180:323::-;10236:6;10285:2;10273:9;10264:7;10260:23;10256:32;10253:119;;;10291:79;;:::i;:::-;10253:119;10411:1;10436:50;10478:7;10469:6;10458:9;10454:22;10436:50;:::i;:::-;10426:60;;10382:114;10180:323;;;;:::o;10509:474::-;10577:6;10585;10634:2;10622:9;10613:7;10609:23;10605:32;10602:119;;;10640:79;;:::i;:::-;10602:119;10760:1;10785:53;10830:7;10821:6;10810:9;10806:22;10785:53;:::i;:::-;10775:63;;10731:117;10887:2;10913:53;10958:7;10949:6;10938:9;10934:22;10913:53;:::i;:::-;10903:63;;10858:118;10509:474;;;;;:::o;10989:180::-;11037:77;11034:1;11027:88;11134:4;11131:1;11124:15;11158:4;11155:1;11148:15;11175:320;11219:6;11256:1;11250:4;11246:12;11236:22;;11303:1;11297:4;11293:12;11324:18;11314:81;;11380:4;11372:6;11368:17;11358:27;;11314:81;11442:2;11434:6;11431:14;11411:18;11408:38;11405:84;;11461:18;;:::i;:::-;11405:84;11226:269;11175:320;;;:::o;11501:232::-;11641:34;11637:1;11629:6;11625:14;11618:58;11710:15;11705:2;11697:6;11693:15;11686:40;11501:232;:::o;11739:366::-;11881:3;11902:67;11966:2;11961:3;11902:67;:::i;:::-;11895:74;;11978:93;12067:3;11978:93;:::i;:::-;12096:2;12091:3;12087:12;12080:19;;11739:366;;;:::o;12111:419::-;12277:4;12315:2;12304:9;12300:18;12292:26;;12364:9;12358:4;12354:20;12350:1;12339:9;12335:17;12328:47;12392:131;12518:4;12392:131;:::i;:::-;12384:139;;12111:419;;;:::o;12536:227::-;12676:34;12672:1;12664:6;12660:14;12653:58;12745:10;12740:2;12732:6;12728:15;12721:35;12536:227;:::o;12769:366::-;12911:3;12932:67;12996:2;12991:3;12932:67;:::i;:::-;12925:74;;13008:93;13097:3;13008:93;:::i;:::-;13126:2;13121:3;13117:12;13110:19;;12769:366;;;:::o;13141:419::-;13307:4;13345:2;13334:9;13330:18;13322:26;;13394:9;13388:4;13384:20;13380:1;13369:9;13365:17;13358:47;13422:131;13548:4;13422:131;:::i;:::-;13414:139;;13141:419;;;:::o;13566:180::-;13614:77;13611:1;13604:88;13711:4;13708:1;13701:15;13735:4;13732:1;13725:15;13752:180;13800:77;13797:1;13790:88;13897:4;13894:1;13887:15;13921:4;13918:1;13911:15;13938:191;13978:3;13997:20;14015:1;13997:20;:::i;:::-;13992:25;;14031:20;14049:1;14031:20;:::i;:::-;14026:25;;14074:1;14071;14067:9;14060:16;;14095:3;14092:1;14089:10;14086:36;;;14102:18;;:::i;:::-;14086:36;13938:191;;;;:::o;14135:233::-;14174:3;14197:24;14215:5;14197:24;:::i;:::-;14188:33;;14243:66;14236:5;14233:77;14230:103;;14313:18;;:::i;:::-;14230:103;14360:1;14353:5;14349:13;14342:20;;14135:233;;;:::o;14374:177::-;14514:29;14510:1;14502:6;14498:14;14491:53;14374:177;:::o;14557:366::-;14699:3;14720:67;14784:2;14779:3;14720:67;:::i;:::-;14713:74;;14796:93;14885:3;14796:93;:::i;:::-;14914:2;14909:3;14905:12;14898:19;;14557:366;;;:::o;14929:419::-;15095:4;15133:2;15122:9;15118:18;15110:26;;15182:9;15176:4;15172:20;15168:1;15157:9;15153:17;15146:47;15210:131;15336:4;15210:131;:::i;:::-;15202:139;;14929:419;;;:::o;15354:227::-;15494:34;15490:1;15482:6;15478:14;15471:58;15563:10;15558:2;15550:6;15546:15;15539:35;15354:227;:::o;15587:366::-;15729:3;15750:67;15814:2;15809:3;15750:67;:::i;:::-;15743:74;;15826:93;15915:3;15826:93;:::i;:::-;15944:2;15939:3;15935:12;15928:19;;15587:366;;;:::o;15959:419::-;16125:4;16163:2;16152:9;16148:18;16140:26;;16212:9;16206:4;16202:20;16198:1;16187:9;16183:17;16176:47;16240:131;16366:4;16240:131;:::i;:::-;16232:139;;15959:419;;;:::o;16384:233::-;16524:34;16520:1;16512:6;16508:14;16501:58;16593:16;16588:2;16580:6;16576:15;16569:41;16384:233;:::o;16623:366::-;16765:3;16786:67;16850:2;16845:3;16786:67;:::i;:::-;16779:74;;16862:93;16951:3;16862:93;:::i;:::-;16980:2;16975:3;16971:12;16964:19;;16623:366;;;:::o;16995:419::-;17161:4;17199:2;17188:9;17184:18;17176:26;;17248:9;17242:4;17238:20;17234:1;17223:9;17219:17;17212:47;17276:131;17402:4;17276:131;:::i;:::-;17268:139;;16995:419;;;:::o;17420:410::-;17460:7;17483:20;17501:1;17483:20;:::i;:::-;17478:25;;17517:20;17535:1;17517:20;:::i;:::-;17512:25;;17572:1;17569;17565:9;17594:30;17612:11;17594:30;:::i;:::-;17583:41;;17773:1;17764:7;17760:15;17757:1;17754:22;17734:1;17727:9;17707:83;17684:139;;17803:18;;:::i;:::-;17684:139;17468:362;17420:410;;;;:::o;17836:182::-;17976:34;17972:1;17964:6;17960:14;17953:58;17836:182;:::o;18024:366::-;18166:3;18187:67;18251:2;18246:3;18187:67;:::i;:::-;18180:74;;18263:93;18352:3;18263:93;:::i;:::-;18381:2;18376:3;18372:12;18365:19;;18024:366;;;:::o;18396:419::-;18562:4;18600:2;18589:9;18585:18;18577:26;;18649:9;18643:4;18639:20;18635:1;18624:9;18620:17;18613:47;18677:131;18803:4;18677:131;:::i;:::-;18669:139;;18396:419;;;:::o;18821:224::-;18961:34;18957:1;18949:6;18945:14;18938:58;19030:7;19025:2;19017:6;19013:15;19006:32;18821:224;:::o;19051:366::-;19193:3;19214:67;19278:2;19273:3;19214:67;:::i;:::-;19207:74;;19290:93;19379:3;19290:93;:::i;:::-;19408:2;19403:3;19399:12;19392:19;;19051:366;;;:::o;19423:419::-;19589:4;19627:2;19616:9;19612:18;19604:26;;19676:9;19670:4;19666:20;19662:1;19651:9;19647:17;19640:47;19704:131;19830:4;19704:131;:::i;:::-;19696:139;;19423:419;;;:::o;19848:225::-;19988:34;19984:1;19976:6;19972:14;19965:58;20057:8;20052:2;20044:6;20040:15;20033:33;19848:225;:::o;20079:366::-;20221:3;20242:67;20306:2;20301:3;20242:67;:::i;:::-;20235:74;;20318:93;20407:3;20318:93;:::i;:::-;20436:2;20431:3;20427:12;20420:19;;20079:366;;;:::o;20451:419::-;20617:4;20655:2;20644:9;20640:18;20632:26;;20704:9;20698:4;20694:20;20690:1;20679:9;20675:17;20668:47;20732:131;20858:4;20732:131;:::i;:::-;20724:139;;20451:419;;;:::o;20876:223::-;21016:34;21012:1;21004:6;21000:14;20993:58;21085:6;21080:2;21072:6;21068:15;21061:31;20876:223;:::o;21105:366::-;21247:3;21268:67;21332:2;21327:3;21268:67;:::i;:::-;21261:74;;21344:93;21433:3;21344:93;:::i;:::-;21462:2;21457:3;21453:12;21446:19;;21105:366;;;:::o;21477:419::-;21643:4;21681:2;21670:9;21666:18;21658:26;;21730:9;21724:4;21720:20;21716:1;21705:9;21701:17;21694:47;21758:131;21884:4;21758:131;:::i;:::-;21750:139;;21477:419;;;:::o;21902:221::-;22042:34;22038:1;22030:6;22026:14;22019:58;22111:4;22106:2;22098:6;22094:15;22087:29;21902:221;:::o;22129:366::-;22271:3;22292:67;22356:2;22351:3;22292:67;:::i;:::-;22285:74;;22368:93;22457:3;22368:93;:::i;:::-;22486:2;22481:3;22477:12;22470:19;;22129:366;;;:::o;22501:419::-;22667:4;22705:2;22694:9;22690:18;22682:26;;22754:9;22748:4;22744:20;22740:1;22729:9;22725:17;22718:47;22782:131;22908:4;22782:131;:::i;:::-;22774:139;;22501:419;;;:::o;22926:155::-;23066:7;23062:1;23054:6;23050:14;23043:31;22926:155;:::o;23087:365::-;23229:3;23250:66;23314:1;23309:3;23250:66;:::i;:::-;23243:73;;23325:93;23414:3;23325:93;:::i;:::-;23443:2;23438:3;23434:12;23427:19;;23087:365;;;:::o;23458:419::-;23624:4;23662:2;23651:9;23647:18;23639:26;;23711:9;23705:4;23701:20;23697:1;23686:9;23682:17;23675:47;23739:131;23865:4;23739:131;:::i;:::-;23731:139;;23458:419;;;:::o;23883:155::-;24023:7;24019:1;24011:6;24007:14;24000:31;23883:155;:::o;24044:365::-;24186:3;24207:66;24271:1;24266:3;24207:66;:::i;:::-;24200:73;;24282:93;24371:3;24282:93;:::i;:::-;24400:2;24395:3;24391:12;24384:19;;24044:365;;;:::o;24415:419::-;24581:4;24619:2;24608:9;24604:18;24596:26;;24668:9;24662:4;24658:20;24654:1;24643:9;24639:17;24632:47;24696:131;24822:4;24696:131;:::i;:::-;24688:139;;24415:419;;;:::o;24840:181::-;24980:33;24976:1;24968:6;24964:14;24957:57;24840:181;:::o;25027:366::-;25169:3;25190:67;25254:2;25249:3;25190:67;:::i;:::-;25183:74;;25266:93;25355:3;25266:93;:::i;:::-;25384:2;25379:3;25375:12;25368:19;;25027:366;;;:::o;25399:419::-;25565:4;25603:2;25592:9;25588:18;25580:26;;25652:9;25646:4;25642:20;25638:1;25627:9;25623:17;25616:47;25680:131;25806:4;25680:131;:::i;:::-;25672:139;;25399:419;;;:::o;25824:224::-;25964:34;25960:1;25952:6;25948:14;25941:58;26033:7;26028:2;26020:6;26016:15;26009:32;25824:224;:::o;26054:366::-;26196:3;26217:67;26281:2;26276:3;26217:67;:::i;:::-;26210:74;;26293:93;26382:3;26293:93;:::i;:::-;26411:2;26406:3;26402:12;26395:19;;26054:366;;;:::o;26426:419::-;26592:4;26630:2;26619:9;26615:18;26607:26;;26679:9;26673:4;26669:20;26665:1;26654:9;26650:17;26643:47;26707:131;26833:4;26707:131;:::i;:::-;26699:139;;26426:419;;;:::o;26851:222::-;26991:34;26987:1;26979:6;26975:14;26968:58;27060:5;27055:2;27047:6;27043:15;27036:30;26851:222;:::o;27079:366::-;27221:3;27242:67;27306:2;27301:3;27242:67;:::i;:::-;27235:74;;27318:93;27407:3;27318:93;:::i;:::-;27436:2;27431:3;27427:12;27420:19;;27079:366;;;:::o;27451:419::-;27617:4;27655:2;27644:9;27640:18;27632:26;;27704:9;27698:4;27694:20;27690:1;27679:9;27675:17;27668:47;27732:131;27858:4;27732:131;:::i;:::-;27724:139;;27451:419;;;:::o;27876:225::-;28016:34;28012:1;28004:6;28000:14;27993:58;28085:8;28080:2;28072:6;28068:15;28061:33;27876:225;:::o;28107:366::-;28249:3;28270:67;28334:2;28329:3;28270:67;:::i;:::-;28263:74;;28346:93;28435:3;28346:93;:::i;:::-;28464:2;28459:3;28455:12;28448:19;;28107:366;;;:::o;28479:419::-;28645:4;28683:2;28672:9;28668:18;28660:26;;28732:9;28726:4;28722:20;28718:1;28707:9;28703:17;28696:47;28760:131;28886:4;28760:131;:::i;:::-;28752:139;;28479:419;;;:::o

Swarm Source

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