ETH Price: $3,017.52 (+4.52%)
Gas: 2 Gwei

Token

King of Memes (HODL)
 

Overview

Max Total Supply

420,690,000,000 HODL

Holders

276

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.223996191990683918 HODL

Value
$0.00
0x05e63b6d63576afc9f982438e207af8c9da34614
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:
KingOfMemes

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
 * HODL, the illustrious meme that shook the very foundation of the cryptocurrency
 * world, was born by chance on a BTC forum in 2013. With lightning speed, it swept
 * across the industry like a wildfire, leaving an indelible mark in its wake. To this day,
 * HODL reigns supreme as the king of all memes, its legacy etched into the annals of history.
*/

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


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


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

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

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


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


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

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


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


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

pragma solidity ^0.8.0;

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

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

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


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


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

pragma solidity ^0.8.0;



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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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


// File contracts/kingofmemes.sol



pragma solidity ^0.8.0;


contract KingOfMemes is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;

    constructor(uint256 _totalSupply) ERC20("King of Memes", "HODL") {
        _mint(msg.sender, _totalSupply);
    }

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

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
    }

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

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

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount, "Forbid");
        }
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"}],"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"}]

60806040523480156200001157600080fd5b5060405162002ff338038062002ff38339818101604052810190620000379190620006e9565b6040518060400160405280600d81526020017f4b696e67206f66204d656d6573000000000000000000000000000000000000008152506040518060400160405280600481526020017f484f444c00000000000000000000000000000000000000000000000000000000815250620000c3620000b76200010260201b60201c565b6200010a60201b60201c565b8160049081620000d491906200098b565b508060059081620000e691906200098b565b505050620000fb3382620001ce60201b60201c565b5062000ce3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002379062000ad3565b60405180910390fd5b62000254600083836200034760201b60201c565b806003600082825462000268919062000b24565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002c0919062000b24565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000327919062000b70565b60405180910390a362000343600083836200063260201b60201c565b5050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620003ec5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6200042e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004259062000bdd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200055157620004956200063760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620005095750620004da6200063760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200054b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005429062000c4f565b60405180910390fd5b6200062d565b600660009054906101000a900460ff168015620005bb5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156200062c5760075481620005db846200066060201b620007b71760201c565b620005e7919062000b24565b11156200062b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006229062000cc1565b60405180910390fd5b5b5b505050565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b6000819050919050565b620006c381620006ae565b8114620006cf57600080fd5b50565b600081519050620006e381620006b8565b92915050565b600060208284031215620007025762000701620006a9565b5b60006200071284828501620006d2565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200079d57607f821691505b602082108103620007b357620007b262000755565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200081d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007de565b620008298683620007de565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200086c620008666200086084620006ae565b62000841565b620006ae565b9050919050565b6000819050919050565b62000888836200084b565b620008a0620008978262000873565b848454620007eb565b825550505050565b600090565b620008b7620008a8565b620008c48184846200087d565b505050565b5b81811015620008ec57620008e0600082620008ad565b600181019050620008ca565b5050565b601f8211156200093b576200090581620007b9565b6200091084620007ce565b8101602085101562000920578190505b620009386200092f85620007ce565b830182620008c9565b50505b505050565b600082821c905092915050565b6000620009606000198460080262000940565b1980831691505092915050565b60006200097b83836200094d565b9150826002028217905092915050565b62000996826200071b565b67ffffffffffffffff811115620009b257620009b162000726565b5b620009be825462000784565b620009cb828285620008f0565b600060209050601f83116001811462000a035760008415620009ee578287015190505b620009fa85826200096d565b86555062000a6a565b601f19841662000a1386620007b9565b60005b8281101562000a3d5784890151825560018201915060208501945060208101905062000a16565b8683101562000a5d578489015162000a59601f8916826200094d565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000abb601f8362000a72565b915062000ac88262000a83565b602082019050919050565b6000602082019050818103600083015262000aee8162000aac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b3182620006ae565b915062000b3e83620006ae565b925082820190508082111562000b595762000b5862000af5565b5b92915050565b62000b6a81620006ae565b82525050565b600060208201905062000b87600083018462000b5f565b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b600062000bc5600b8362000a72565b915062000bd28262000b8d565b602082019050919050565b6000602082019050818103600083015262000bf88162000bb6565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000c3760168362000a72565b915062000c448262000bff565b602082019050919050565b6000602082019050818103600083015262000c6a8162000c28565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600062000ca960068362000a72565b915062000cb68262000c71565b602082019050919050565b6000602082019050818103600083015262000cdc8162000c9a565b9050919050565b6123008062000cf36000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780638da5cb5b1161007c5780638da5cb5b1461033e57806395d89b411461035c578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da578063f2fde38b1461040a57610137565b806370a08231146102ac578063715018a6146102dc5780637abf9d26146102e6578063860a32ec1461030257806389f9a1d31461032057610137565b8063313ce567116100ff578063313ce567146102085780633950935114610226578063404e51291461025657806342966c681461027257806349bd5a5e1461028e57610137565b806306fdde031461013c578063095ea7b31461015a57806316c021291461018a57806318160ddd146101ba57806323b872dd146101d8575b600080fd5b610144610426565b6040516101519190611707565b60405180910390f35b610174600480360381019061016f91906117c2565b6104b8565b604051610181919061181d565b60405180910390f35b6101a4600480360381019061019f9190611838565b6104d6565b6040516101b1919061181d565b60405180910390f35b6101c26104f6565b6040516101cf9190611874565b60405180910390f35b6101f260048036038101906101ed919061188f565b610500565b6040516101ff919061181d565b60405180910390f35b6102106105f8565b60405161021d91906118fe565b60405180910390f35b610240600480360381019061023b91906117c2565b610601565b60405161024d919061181d565b60405180910390f35b610270600480360381019061026b9190611945565b6106ad565b005b61028c60048036038101906102879190611985565b610784565b005b610296610791565b6040516102a391906119c1565b60405180910390f35b6102c660048036038101906102c19190611838565b6107b7565b6040516102d39190611874565b60405180910390f35b6102e4610800565b005b61030060048036038101906102fb91906119dc565b610888565b005b61030a61096b565b604051610317919061181d565b60405180910390f35b61032861097e565b6040516103359190611874565b60405180910390f35b610346610984565b60405161035391906119c1565b60405180910390f35b6103646109ad565b6040516103719190611707565b60405180910390f35b610394600480360381019061038f91906117c2565b610a3f565b6040516103a1919061181d565b60405180910390f35b6103c460048036038101906103bf91906117c2565b610b2a565b6040516103d1919061181d565b60405180910390f35b6103f460048036038101906103ef9190611a2f565b610b48565b6040516104019190611874565b60405180910390f35b610424600480360381019061041f9190611838565b610bcf565b005b60606004805461043590611a9e565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611a9e565b80156104ae5780601f10610483576101008083540402835291602001916104ae565b820191906000526020600020905b81548152906001019060200180831161049157829003601f168201915b5050505050905090565b60006104cc6104c5610cc6565b8484610cce565b6001905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b600061050d848484610e97565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610558610cc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90611b41565b60405180910390fd5b6105ec856105e4610cc6565b858403610cce565b60019150509392505050565b60006012905090565b60006106a361060e610cc6565b84846002600061061c610cc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069e9190611b90565b610cce565b6001905092915050565b6106b5610cc6565b73ffffffffffffffffffffffffffffffffffffffff166106d3610984565b73ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090611c10565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61078e3382611119565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610808610cc6565b73ffffffffffffffffffffffffffffffffffffffff16610826610984565b73ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390611c10565b60405180910390fd5b61088660006112f1565b565b610890610cc6565b73ffffffffffffffffffffffffffffffffffffffff166108ae610984565b73ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611c10565b60405180910390fd5b82600660006101000a81548160ff02191690831515021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600781905550505050565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109bc90611a9e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e890611a9e565b8015610a355780601f10610a0a57610100808354040283529160200191610a35565b820191906000526020600020905b815481529060010190602001808311610a1857829003601f168201915b5050505050905090565b60008060026000610a4e610cc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611ca2565b60405180910390fd5b610b1f610b16610cc6565b85858403610cce565b600191505092915050565b6000610b3e610b37610cc6565b8484610e97565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bd7610cc6565b73ffffffffffffffffffffffffffffffffffffffff16610bf5610984565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290611c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190611d34565b60405180910390fd5b610cc3816112f1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490611dc6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390611e58565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e8a9190611874565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90611eea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90611f7c565b60405180910390fd5b610f808383836113b5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe9061200e565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109c9190611b90565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111009190611874565b60405180910390a3611113848484611672565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f906120a0565b60405180910390fd5b611194826000836113b5565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290612132565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546112739190612152565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d89190611874565b60405180910390a36112ec83600084611672565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114595750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f906121d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115a5576114f6610984565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115615750611532610984565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115979061223e565b60405180910390fd5b61166d565b600660009054906101000a900460ff16801561160e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561166c5760075481611620846107b7565b61162a9190611b90565b111561166b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611662906122aa565b60405180910390fd5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116b1578082015181840152602081019050611696565b60008484015250505050565b6000601f19601f8301169050919050565b60006116d982611677565b6116e38185611682565b93506116f3818560208601611693565b6116fc816116bd565b840191505092915050565b6000602082019050818103600083015261172181846116ce565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117598261172e565b9050919050565b6117698161174e565b811461177457600080fd5b50565b60008135905061178681611760565b92915050565b6000819050919050565b61179f8161178c565b81146117aa57600080fd5b50565b6000813590506117bc81611796565b92915050565b600080604083850312156117d9576117d8611729565b5b60006117e785828601611777565b92505060206117f8858286016117ad565b9150509250929050565b60008115159050919050565b61181781611802565b82525050565b6000602082019050611832600083018461180e565b92915050565b60006020828403121561184e5761184d611729565b5b600061185c84828501611777565b91505092915050565b61186e8161178c565b82525050565b60006020820190506118896000830184611865565b92915050565b6000806000606084860312156118a8576118a7611729565b5b60006118b686828701611777565b93505060206118c786828701611777565b92505060406118d8868287016117ad565b9150509250925092565b600060ff82169050919050565b6118f8816118e2565b82525050565b600060208201905061191360008301846118ef565b92915050565b61192281611802565b811461192d57600080fd5b50565b60008135905061193f81611919565b92915050565b6000806040838503121561195c5761195b611729565b5b600061196a85828601611777565b925050602061197b85828601611930565b9150509250929050565b60006020828403121561199b5761199a611729565b5b60006119a9848285016117ad565b91505092915050565b6119bb8161174e565b82525050565b60006020820190506119d660008301846119b2565b92915050565b6000806000606084860312156119f5576119f4611729565b5b6000611a0386828701611930565b9350506020611a1486828701611777565b9250506040611a25868287016117ad565b9150509250925092565b60008060408385031215611a4657611a45611729565b5b6000611a5485828601611777565b9250506020611a6585828601611777565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ab657607f821691505b602082108103611ac957611ac8611a6f565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611b2b602883611682565b9150611b3682611acf565b604082019050919050565b60006020820190508181036000830152611b5a81611b1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b9b8261178c565b9150611ba68361178c565b9250828201905080821115611bbe57611bbd611b61565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bfa602083611682565b9150611c0582611bc4565b602082019050919050565b60006020820190508181036000830152611c2981611bed565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611c8c602583611682565b9150611c9782611c30565b604082019050919050565b60006020820190508181036000830152611cbb81611c7f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611d1e602683611682565b9150611d2982611cc2565b604082019050919050565b60006020820190508181036000830152611d4d81611d11565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611db0602483611682565b9150611dbb82611d54565b604082019050919050565b60006020820190508181036000830152611ddf81611da3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e42602283611682565b9150611e4d82611de6565b604082019050919050565b60006020820190508181036000830152611e7181611e35565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611ed4602583611682565b9150611edf82611e78565b604082019050919050565b60006020820190508181036000830152611f0381611ec7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f66602383611682565b9150611f7182611f0a565b604082019050919050565b60006020820190508181036000830152611f9581611f59565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ff8602683611682565b915061200382611f9c565b604082019050919050565b6000602082019050818103600083015261202781611feb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061208a602183611682565b91506120958261202e565b604082019050919050565b600060208201905081810360008301526120b98161207d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061211c602283611682565b9150612127826120c0565b604082019050919050565b6000602082019050818103600083015261214b8161210f565b9050919050565b600061215d8261178c565b91506121688361178c565b92508282039050818111156121805761217f611b61565b5b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006121bc600b83611682565b91506121c782612186565b602082019050919050565b600060208201905081810360008301526121eb816121af565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b6000612228601683611682565b9150612233826121f2565b602082019050919050565b600060208201905081810360008301526122578161221b565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000612294600683611682565b915061229f8261225e565b602082019050919050565b600060208201905081810360008301526122c381612287565b905091905056fea2646970667358221220edf396f623b42cc8d578877c2e36d667da5fd5550cf32319eb02e05f08f0361464736f6c6343000812003300000000000000000000000000000000000000054f529ca52576bc6892000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780638da5cb5b1161007c5780638da5cb5b1461033e57806395d89b411461035c578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da578063f2fde38b1461040a57610137565b806370a08231146102ac578063715018a6146102dc5780637abf9d26146102e6578063860a32ec1461030257806389f9a1d31461032057610137565b8063313ce567116100ff578063313ce567146102085780633950935114610226578063404e51291461025657806342966c681461027257806349bd5a5e1461028e57610137565b806306fdde031461013c578063095ea7b31461015a57806316c021291461018a57806318160ddd146101ba57806323b872dd146101d8575b600080fd5b610144610426565b6040516101519190611707565b60405180910390f35b610174600480360381019061016f91906117c2565b6104b8565b604051610181919061181d565b60405180910390f35b6101a4600480360381019061019f9190611838565b6104d6565b6040516101b1919061181d565b60405180910390f35b6101c26104f6565b6040516101cf9190611874565b60405180910390f35b6101f260048036038101906101ed919061188f565b610500565b6040516101ff919061181d565b60405180910390f35b6102106105f8565b60405161021d91906118fe565b60405180910390f35b610240600480360381019061023b91906117c2565b610601565b60405161024d919061181d565b60405180910390f35b610270600480360381019061026b9190611945565b6106ad565b005b61028c60048036038101906102879190611985565b610784565b005b610296610791565b6040516102a391906119c1565b60405180910390f35b6102c660048036038101906102c19190611838565b6107b7565b6040516102d39190611874565b60405180910390f35b6102e4610800565b005b61030060048036038101906102fb91906119dc565b610888565b005b61030a61096b565b604051610317919061181d565b60405180910390f35b61032861097e565b6040516103359190611874565b60405180910390f35b610346610984565b60405161035391906119c1565b60405180910390f35b6103646109ad565b6040516103719190611707565b60405180910390f35b610394600480360381019061038f91906117c2565b610a3f565b6040516103a1919061181d565b60405180910390f35b6103c460048036038101906103bf91906117c2565b610b2a565b6040516103d1919061181d565b60405180910390f35b6103f460048036038101906103ef9190611a2f565b610b48565b6040516104019190611874565b60405180910390f35b610424600480360381019061041f9190611838565b610bcf565b005b60606004805461043590611a9e565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611a9e565b80156104ae5780601f10610483576101008083540402835291602001916104ae565b820191906000526020600020905b81548152906001019060200180831161049157829003601f168201915b5050505050905090565b60006104cc6104c5610cc6565b8484610cce565b6001905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b600061050d848484610e97565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610558610cc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cf90611b41565b60405180910390fd5b6105ec856105e4610cc6565b858403610cce565b60019150509392505050565b60006012905090565b60006106a361060e610cc6565b84846002600061061c610cc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069e9190611b90565b610cce565b6001905092915050565b6106b5610cc6565b73ffffffffffffffffffffffffffffffffffffffff166106d3610984565b73ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090611c10565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61078e3382611119565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610808610cc6565b73ffffffffffffffffffffffffffffffffffffffff16610826610984565b73ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390611c10565b60405180910390fd5b61088660006112f1565b565b610890610cc6565b73ffffffffffffffffffffffffffffffffffffffff166108ae610984565b73ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611c10565b60405180910390fd5b82600660006101000a81548160ff02191690831515021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600781905550505050565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109bc90611a9e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e890611a9e565b8015610a355780601f10610a0a57610100808354040283529160200191610a35565b820191906000526020600020905b815481529060010190602001808311610a1857829003601f168201915b5050505050905090565b60008060026000610a4e610cc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611ca2565b60405180910390fd5b610b1f610b16610cc6565b85858403610cce565b600191505092915050565b6000610b3e610b37610cc6565b8484610e97565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bd7610cc6565b73ffffffffffffffffffffffffffffffffffffffff16610bf5610984565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290611c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190611d34565b60405180910390fd5b610cc3816112f1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490611dc6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390611e58565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e8a9190611874565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90611eea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90611f7c565b60405180910390fd5b610f808383836113b5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe9061200e565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109c9190611b90565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111009190611874565b60405180910390a3611113848484611672565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f906120a0565b60405180910390fd5b611194826000836113b5565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290612132565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546112739190612152565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112d89190611874565b60405180910390a36112ec83600084611672565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114595750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f906121d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115a5576114f6610984565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115615750611532610984565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115979061223e565b60405180910390fd5b61166d565b600660009054906101000a900460ff16801561160e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561166c5760075481611620846107b7565b61162a9190611b90565b111561166b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611662906122aa565b60405180910390fd5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116b1578082015181840152602081019050611696565b60008484015250505050565b6000601f19601f8301169050919050565b60006116d982611677565b6116e38185611682565b93506116f3818560208601611693565b6116fc816116bd565b840191505092915050565b6000602082019050818103600083015261172181846116ce565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117598261172e565b9050919050565b6117698161174e565b811461177457600080fd5b50565b60008135905061178681611760565b92915050565b6000819050919050565b61179f8161178c565b81146117aa57600080fd5b50565b6000813590506117bc81611796565b92915050565b600080604083850312156117d9576117d8611729565b5b60006117e785828601611777565b92505060206117f8858286016117ad565b9150509250929050565b60008115159050919050565b61181781611802565b82525050565b6000602082019050611832600083018461180e565b92915050565b60006020828403121561184e5761184d611729565b5b600061185c84828501611777565b91505092915050565b61186e8161178c565b82525050565b60006020820190506118896000830184611865565b92915050565b6000806000606084860312156118a8576118a7611729565b5b60006118b686828701611777565b93505060206118c786828701611777565b92505060406118d8868287016117ad565b9150509250925092565b600060ff82169050919050565b6118f8816118e2565b82525050565b600060208201905061191360008301846118ef565b92915050565b61192281611802565b811461192d57600080fd5b50565b60008135905061193f81611919565b92915050565b6000806040838503121561195c5761195b611729565b5b600061196a85828601611777565b925050602061197b85828601611930565b9150509250929050565b60006020828403121561199b5761199a611729565b5b60006119a9848285016117ad565b91505092915050565b6119bb8161174e565b82525050565b60006020820190506119d660008301846119b2565b92915050565b6000806000606084860312156119f5576119f4611729565b5b6000611a0386828701611930565b9350506020611a1486828701611777565b9250506040611a25868287016117ad565b9150509250925092565b60008060408385031215611a4657611a45611729565b5b6000611a5485828601611777565b9250506020611a6585828601611777565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ab657607f821691505b602082108103611ac957611ac8611a6f565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611b2b602883611682565b9150611b3682611acf565b604082019050919050565b60006020820190508181036000830152611b5a81611b1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b9b8261178c565b9150611ba68361178c565b9250828201905080821115611bbe57611bbd611b61565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bfa602083611682565b9150611c0582611bc4565b602082019050919050565b60006020820190508181036000830152611c2981611bed565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611c8c602583611682565b9150611c9782611c30565b604082019050919050565b60006020820190508181036000830152611cbb81611c7f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611d1e602683611682565b9150611d2982611cc2565b604082019050919050565b60006020820190508181036000830152611d4d81611d11565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611db0602483611682565b9150611dbb82611d54565b604082019050919050565b60006020820190508181036000830152611ddf81611da3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e42602283611682565b9150611e4d82611de6565b604082019050919050565b60006020820190508181036000830152611e7181611e35565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611ed4602583611682565b9150611edf82611e78565b604082019050919050565b60006020820190508181036000830152611f0381611ec7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f66602383611682565b9150611f7182611f0a565b604082019050919050565b60006020820190508181036000830152611f9581611f59565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ff8602683611682565b915061200382611f9c565b604082019050919050565b6000602082019050818103600083015261202781611feb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061208a602183611682565b91506120958261202e565b604082019050919050565b600060208201905081810360008301526120b98161207d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061211c602283611682565b9150612127826120c0565b604082019050919050565b6000602082019050818103600083015261214b8161210f565b9050919050565b600061215d8261178c565b91506121688361178c565b92508282039050818111156121805761217f611b61565b5b92915050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b60006121bc600b83611682565b91506121c782612186565b602082019050919050565b600060208201905081810360008301526121eb816121af565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b6000612228601683611682565b9150612233826121f2565b602082019050919050565b600060208201905081810360008301526122578161221b565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000612294600683611682565b915061229f8261225e565b602082019050919050565b600060208201905081810360008301526122c381612287565b905091905056fea2646970667358221220edf396f623b42cc8d578877c2e36d667da5fd5550cf32319eb02e05f08f0361464736f6c63430008120033

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

00000000000000000000000000000000000000054f529ca52576bc6892000000

-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 420690000000000000000000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000054f529ca52576bc6892000000


Deployed Bytecode Sourcemap

19536:1304:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9503:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11670:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19681:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10623:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12321:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10465:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13222:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19855:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20756:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19646:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10794:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2904:103;;;:::i;:::-;;19998:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19582:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19608:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2253:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9722:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13940:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11134:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11372:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3162:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9503:100;9557:13;9590:5;9583:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9503:100;:::o;11670:169::-;11753:4;11770:39;11779:12;:10;:12::i;:::-;11793:7;11802:6;11770:8;:39::i;:::-;11827:4;11820:11;;11670:169;;;;:::o;19681:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10623:108::-;10684:7;10711:12;;10704:19;;10623:108;:::o;12321:492::-;12461:4;12478:36;12488:6;12496:9;12507:6;12478:9;:36::i;:::-;12527:24;12554:11;:19;12566:6;12554:19;;;;;;;;;;;;;;;:33;12574:12;:10;:12::i;:::-;12554:33;;;;;;;;;;;;;;;;12527:60;;12626:6;12606:16;:26;;12598:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12713:57;12722:6;12730:12;:10;:12::i;:::-;12763:6;12744:16;:25;12713:8;:57::i;:::-;12801:4;12794:11;;;12321:492;;;;;:::o;10465:93::-;10523:5;10548:2;10541:9;;10465:93;:::o;13222:215::-;13310:4;13327:80;13336:12;:10;:12::i;:::-;13350:7;13396:10;13359:11;:25;13371:12;:10;:12::i;:::-;13359:25;;;;;;;;;;;;;;;:34;13385:7;13359:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13327:8;:80::i;:::-;13425:4;13418:11;;13222:215;;;;:::o;19855:135::-;2484:12;:10;:12::i;:::-;2473:23;;:7;:5;:7::i;:::-;:23;;;2465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19967:15:::1;19944:10;:20;19955:8;19944:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19855:135:::0;;:::o;20756:81::-;20805:24;20811:10;20823:5;20805;:24::i;:::-;20756:81;:::o;19646:28::-;;;;;;;;;;;;;:::o;10794:127::-;10868:7;10895:9;:18;10905:7;10895:18;;;;;;;;;;;;;;;;10888:25;;10794:127;;;:::o;2904:103::-;2484:12;:10;:12::i;:::-;2473:23;;:7;:5;:7::i;:::-;:23;;;2465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2969:30:::1;2996:1;2969:18;:30::i;:::-;2904:103::o:0;19998:227::-;2484:12;:10;:12::i;:::-;2473:23;;:7;:5;:7::i;:::-;:23;;;2465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20121:8:::1;20111:7;;:18;;;;;;;;;;;;;;;;;;20156:14;20140:13;;:30;;;;;;;;;;;;;;;;;;20200:17;20181:16;:36;;;;19998:227:::0;;;:::o;19582:19::-;;;;;;;;;;;;;:::o;19608:31::-;;;;:::o;2253:87::-;2299:7;2326:6;;;;;;;;;;;2319:13;;2253:87;:::o;9722:104::-;9778:13;9811:7;9804:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9722:104;:::o;13940:413::-;14033:4;14050:24;14077:11;:25;14089:12;:10;:12::i;:::-;14077:25;;;;;;;;;;;;;;;:34;14103:7;14077:34;;;;;;;;;;;;;;;;14050:61;;14150:15;14130:16;:35;;14122:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14243:67;14252:12;:10;:12::i;:::-;14266:7;14294:15;14275:16;:34;14243:8;:67::i;:::-;14341:4;14334:11;;;13940:413;;;;:::o;11134:175::-;11220:4;11237:42;11247:12;:10;:12::i;:::-;11261:9;11272:6;11237:9;:42::i;:::-;11297:4;11290:11;;11134:175;;;;:::o;11372:151::-;11461:7;11488:11;:18;11500:5;11488:18;;;;;;;;;;;;;;;:27;11507:7;11488:27;;;;;;;;;;;;;;;;11481:34;;11372:151;;;;:::o;3162:201::-;2484:12;:10;:12::i;:::-;2473:23;;:7;:5;:7::i;:::-;:23;;;2465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3271:1:::1;3251:22;;:8;:22;;::::0;3243:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3327:28;3346:8;3327:18;:28::i;:::-;3162:201:::0;:::o;971:98::-;1024:7;1051:10;1044:17;;971:98;:::o;17624:380::-;17777:1;17760:19;;:5;:19;;;17752:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17858:1;17839:21;;:7;:21;;;17831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17942:6;17912:11;:18;17924:5;17912:18;;;;;;;;;;;;;;;:27;17931:7;17912:27;;;;;;;;;;;;;;;:36;;;;17980:7;17964:32;;17973:5;17964:32;;;17989:6;17964:32;;;;;;:::i;:::-;;;;;;;;17624:380;;;:::o;14843:733::-;15001:1;14983:20;;:6;:20;;;14975:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15085:1;15064:23;;:9;:23;;;15056:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15140:47;15161:6;15169:9;15180:6;15140:20;:47::i;:::-;15200:21;15224:9;:17;15234:6;15224:17;;;;;;;;;;;;;;;;15200:41;;15277:6;15260:13;:23;;15252:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15398:6;15382:13;:22;15362:9;:17;15372:6;15362:17;;;;;;;;;;;;;;;:42;;;;15450:6;15426:9;:20;15436:9;15426:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15491:9;15474:35;;15483:6;15474:35;;;15502:6;15474:35;;;;;;:::i;:::-;;;;;;;;15522:46;15542:6;15550:9;15561:6;15522:19;:46::i;:::-;14964:612;14843:733;;;:::o;16595:591::-;16698:1;16679:21;;:7;:21;;;16671:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16751:49;16772:7;16789:1;16793:6;16751:20;:49::i;:::-;16813:22;16838:9;:18;16848:7;16838:18;;;;;;;;;;;;;;;;16813:43;;16893:6;16875:14;:24;;16867:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17012:6;16995:14;:23;16974:9;:18;16984:7;16974:18;;;;;;;;;;;;;;;:44;;;;17056:6;17040:12;;:22;;;;;;;:::i;:::-;;;;;;;;17106:1;17080:37;;17089:7;17080:37;;;17110:6;17080:37;;;;;;:::i;:::-;;;;;;;;17130:48;17150:7;17167:1;17171:6;17130:19;:48::i;:::-;16660:526;16595:591;;:::o;3523:191::-;3597:16;3616:6;;;;;;;;;;;3597:25;;3642:8;3633:6;;:17;;;;;;;;;;;;;;;;;;3697:8;3666:40;;3687:8;3666:40;;;;;;;;;;;;3586:128;3523:191;:::o;20233:515::-;20385:10;:14;20396:2;20385:14;;;;;;;;;;;;;;;;;;;;;;;;;20384:15;:36;;;;;20404:10;:16;20415:4;20404:16;;;;;;;;;;;;;;;;;;;;;;;;;20403:17;20384:36;20376:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20478:1;20453:27;;:13;;;;;;;;;;;:27;;;20449:148;;20513:7;:5;:7::i;:::-;20505:15;;:4;:15;;;:32;;;;20530:7;:5;:7::i;:::-;20524:13;;:2;:13;;;20505:32;20497:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20579:7;;20449:148;20613:7;;;;;;;;;;;:32;;;;;20632:13;;;;;;;;;;;20624:21;;:4;:21;;;20613:32;20609:132;;;20702:16;;20692:6;20670:19;20686:2;20670:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20662:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20609:132;20233:515;;;;:::o;19333:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:468::-;5514:6;5522;5571:2;5559:9;5550:7;5546:23;5542:32;5539:119;;;5577:79;;:::i;:::-;5539:119;5697:1;5722:53;5767:7;5758:6;5747:9;5743:22;5722:53;:::i;:::-;5712:63;;5668:117;5824:2;5850:50;5892:7;5883:6;5872:9;5868:22;5850:50;:::i;:::-;5840:60;;5795:115;5449:468;;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:613::-;6684:6;6692;6700;6749:2;6737:9;6728:7;6724:23;6720:32;6717:119;;;6755:79;;:::i;:::-;6717:119;6875:1;6900:50;6942:7;6933:6;6922:9;6918:22;6900:50;:::i;:::-;6890:60;;6846:114;6999:2;7025:53;7070:7;7061:6;7050:9;7046:22;7025:53;:::i;:::-;7015:63;;6970:118;7127:2;7153:53;7198:7;7189:6;7178:9;7174:22;7153:53;:::i;:::-;7143:63;;7098:118;6610:613;;;;;:::o;7229:474::-;7297:6;7305;7354:2;7342:9;7333:7;7329:23;7325:32;7322:119;;;7360:79;;:::i;:::-;7322:119;7480:1;7505:53;7550:7;7541:6;7530:9;7526:22;7505:53;:::i;:::-;7495:63;;7451:117;7607:2;7633:53;7678:7;7669:6;7658:9;7654:22;7633:53;:::i;:::-;7623:63;;7578:118;7229:474;;;;;:::o;7709:180::-;7757:77;7754:1;7747:88;7854:4;7851:1;7844:15;7878:4;7875:1;7868:15;7895:320;7939:6;7976:1;7970:4;7966:12;7956:22;;8023:1;8017:4;8013:12;8044:18;8034:81;;8100:4;8092:6;8088:17;8078:27;;8034:81;8162:2;8154:6;8151:14;8131:18;8128:38;8125:84;;8181:18;;:::i;:::-;8125:84;7946:269;7895:320;;;:::o;8221:227::-;8361:34;8357:1;8349:6;8345:14;8338:58;8430:10;8425:2;8417:6;8413:15;8406:35;8221:227;:::o;8454:366::-;8596:3;8617:67;8681:2;8676:3;8617:67;:::i;:::-;8610:74;;8693:93;8782:3;8693:93;:::i;:::-;8811:2;8806:3;8802:12;8795:19;;8454:366;;;:::o;8826:419::-;8992:4;9030:2;9019:9;9015:18;9007:26;;9079:9;9073:4;9069:20;9065:1;9054:9;9050:17;9043:47;9107:131;9233:4;9107:131;:::i;:::-;9099:139;;8826:419;;;:::o;9251:180::-;9299:77;9296:1;9289:88;9396:4;9393:1;9386:15;9420:4;9417:1;9410:15;9437:191;9477:3;9496:20;9514:1;9496:20;:::i;:::-;9491:25;;9530:20;9548:1;9530:20;:::i;:::-;9525:25;;9573:1;9570;9566:9;9559:16;;9594:3;9591:1;9588:10;9585:36;;;9601:18;;:::i;:::-;9585:36;9437:191;;;;:::o;9634:182::-;9774:34;9770:1;9762:6;9758:14;9751:58;9634:182;:::o;9822:366::-;9964:3;9985:67;10049:2;10044:3;9985:67;:::i;:::-;9978:74;;10061:93;10150:3;10061:93;:::i;:::-;10179:2;10174:3;10170:12;10163:19;;9822:366;;;:::o;10194:419::-;10360:4;10398:2;10387:9;10383:18;10375:26;;10447:9;10441:4;10437:20;10433:1;10422:9;10418:17;10411:47;10475:131;10601:4;10475:131;:::i;:::-;10467:139;;10194:419;;;:::o;10619:224::-;10759:34;10755:1;10747:6;10743:14;10736:58;10828:7;10823:2;10815:6;10811:15;10804:32;10619:224;:::o;10849:366::-;10991:3;11012:67;11076:2;11071:3;11012:67;:::i;:::-;11005:74;;11088:93;11177:3;11088:93;:::i;:::-;11206:2;11201:3;11197:12;11190:19;;10849:366;;;:::o;11221:419::-;11387:4;11425:2;11414:9;11410:18;11402:26;;11474:9;11468:4;11464:20;11460:1;11449:9;11445:17;11438:47;11502:131;11628:4;11502:131;:::i;:::-;11494:139;;11221:419;;;:::o;11646:225::-;11786:34;11782:1;11774:6;11770:14;11763:58;11855:8;11850:2;11842:6;11838:15;11831:33;11646:225;:::o;11877:366::-;12019:3;12040:67;12104:2;12099:3;12040:67;:::i;:::-;12033:74;;12116:93;12205:3;12116:93;:::i;:::-;12234:2;12229:3;12225:12;12218:19;;11877:366;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12249:419;;;:::o;12674:223::-;12814:34;12810:1;12802:6;12798:14;12791:58;12883:6;12878:2;12870:6;12866:15;12859:31;12674:223;:::o;12903:366::-;13045:3;13066:67;13130:2;13125:3;13066:67;:::i;:::-;13059:74;;13142:93;13231:3;13142:93;:::i;:::-;13260:2;13255:3;13251:12;13244:19;;12903:366;;;:::o;13275:419::-;13441:4;13479:2;13468:9;13464:18;13456:26;;13528:9;13522:4;13518:20;13514:1;13503:9;13499:17;13492:47;13556:131;13682:4;13556:131;:::i;:::-;13548:139;;13275:419;;;:::o;13700:221::-;13840:34;13836:1;13828:6;13824:14;13817:58;13909:4;13904:2;13896:6;13892:15;13885:29;13700:221;:::o;13927:366::-;14069:3;14090:67;14154:2;14149:3;14090:67;:::i;:::-;14083:74;;14166:93;14255:3;14166:93;:::i;:::-;14284:2;14279:3;14275:12;14268:19;;13927:366;;;:::o;14299:419::-;14465:4;14503:2;14492:9;14488:18;14480:26;;14552:9;14546:4;14542:20;14538:1;14527:9;14523:17;14516:47;14580:131;14706:4;14580:131;:::i;:::-;14572:139;;14299:419;;;:::o;14724:224::-;14864:34;14860:1;14852:6;14848:14;14841:58;14933:7;14928:2;14920:6;14916:15;14909:32;14724:224;:::o;14954:366::-;15096:3;15117:67;15181:2;15176:3;15117:67;:::i;:::-;15110:74;;15193:93;15282:3;15193:93;:::i;:::-;15311:2;15306:3;15302:12;15295:19;;14954:366;;;:::o;15326:419::-;15492:4;15530:2;15519:9;15515:18;15507:26;;15579:9;15573:4;15569:20;15565:1;15554:9;15550:17;15543:47;15607:131;15733:4;15607:131;:::i;:::-;15599:139;;15326:419;;;:::o;15751:222::-;15891:34;15887:1;15879:6;15875:14;15868:58;15960:5;15955:2;15947:6;15943:15;15936:30;15751:222;:::o;15979:366::-;16121:3;16142:67;16206:2;16201:3;16142:67;:::i;:::-;16135:74;;16218:93;16307:3;16218:93;:::i;:::-;16336:2;16331:3;16327:12;16320:19;;15979:366;;;:::o;16351:419::-;16517:4;16555:2;16544:9;16540:18;16532:26;;16604:9;16598:4;16594:20;16590:1;16579:9;16575:17;16568:47;16632:131;16758:4;16632:131;:::i;:::-;16624:139;;16351:419;;;:::o;16776:225::-;16916:34;16912:1;16904:6;16900:14;16893:58;16985:8;16980:2;16972:6;16968:15;16961:33;16776:225;:::o;17007:366::-;17149:3;17170:67;17234:2;17229:3;17170:67;:::i;:::-;17163:74;;17246:93;17335:3;17246:93;:::i;:::-;17364:2;17359:3;17355:12;17348:19;;17007:366;;;:::o;17379:419::-;17545:4;17583:2;17572:9;17568:18;17560:26;;17632:9;17626:4;17622:20;17618:1;17607:9;17603:17;17596:47;17660:131;17786:4;17660:131;:::i;:::-;17652:139;;17379:419;;;:::o;17804:220::-;17944:34;17940:1;17932:6;17928:14;17921:58;18013:3;18008:2;18000:6;17996:15;17989:28;17804:220;:::o;18030:366::-;18172:3;18193:67;18257:2;18252:3;18193:67;:::i;:::-;18186:74;;18269:93;18358:3;18269:93;:::i;:::-;18387:2;18382:3;18378:12;18371:19;;18030:366;;;:::o;18402:419::-;18568:4;18606:2;18595:9;18591:18;18583:26;;18655:9;18649:4;18645:20;18641:1;18630:9;18626:17;18619:47;18683:131;18809:4;18683:131;:::i;:::-;18675:139;;18402:419;;;:::o;18827:221::-;18967:34;18963:1;18955:6;18951:14;18944:58;19036:4;19031:2;19023:6;19019:15;19012:29;18827:221;:::o;19054:366::-;19196:3;19217:67;19281:2;19276:3;19217:67;:::i;:::-;19210:74;;19293:93;19382:3;19293:93;:::i;:::-;19411:2;19406:3;19402:12;19395:19;;19054:366;;;:::o;19426:419::-;19592:4;19630:2;19619:9;19615:18;19607:26;;19679:9;19673:4;19669:20;19665:1;19654:9;19650:17;19643:47;19707:131;19833:4;19707:131;:::i;:::-;19699:139;;19426:419;;;:::o;19851:194::-;19891:4;19911:20;19929:1;19911:20;:::i;:::-;19906:25;;19945:20;19963:1;19945:20;:::i;:::-;19940:25;;19989:1;19986;19982:9;19974:17;;20013:1;20007:4;20004:11;20001:37;;;20018:18;;:::i;:::-;20001:37;19851:194;;;;:::o;20051:161::-;20191:13;20187:1;20179:6;20175:14;20168:37;20051:161;:::o;20218:366::-;20360:3;20381:67;20445:2;20440:3;20381:67;:::i;:::-;20374:74;;20457:93;20546:3;20457:93;:::i;:::-;20575:2;20570:3;20566:12;20559:19;;20218:366;;;:::o;20590:419::-;20756:4;20794:2;20783:9;20779:18;20771:26;;20843:9;20837:4;20833:20;20829:1;20818:9;20814:17;20807:47;20871:131;20997:4;20871:131;:::i;:::-;20863:139;;20590:419;;;:::o;21015:172::-;21155:24;21151:1;21143:6;21139:14;21132:48;21015:172;:::o;21193:366::-;21335:3;21356:67;21420:2;21415:3;21356:67;:::i;:::-;21349:74;;21432:93;21521:3;21432:93;:::i;:::-;21550:2;21545:3;21541:12;21534:19;;21193:366;;;:::o;21565:419::-;21731:4;21769:2;21758:9;21754:18;21746:26;;21818:9;21812:4;21808:20;21804:1;21793:9;21789:17;21782:47;21846:131;21972:4;21846:131;:::i;:::-;21838:139;;21565:419;;;:::o;21990:156::-;22130:8;22126:1;22118:6;22114:14;22107:32;21990:156;:::o;22152:365::-;22294:3;22315:66;22379:1;22374:3;22315:66;:::i;:::-;22308:73;;22390:93;22479:3;22390:93;:::i;:::-;22508:2;22503:3;22499:12;22492:19;;22152:365;;;:::o;22523:419::-;22689:4;22727:2;22716:9;22712:18;22704:26;;22776:9;22770:4;22766:20;22762:1;22751:9;22747:17;22740:47;22804:131;22930:4;22804:131;:::i;:::-;22796:139;;22523:419;;;:::o

Swarm Source

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