ETH Price: $3,351.23 (-1.97%)

Token

Noti (NOTI)
 

Overview

Max Total Supply

230,000,000 NOTI

Holders

538 ( 0.557%)

Market

Price

$0.03 @ 0.000010 ETH (+13.67%)

Onchain Market Cap

$7,837,098.20

Circulating Supply Market Cap

$847,578.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,145.938420982586696578 NOTI

Value
$107.20 ( ~0.0319882796687547 Eth) [0.0014%]
0x6ef5e0227a819d7bb0c5f8036ccb84c4ec7789fc
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Noti is a new tokens finder & the easiest-to-use Sniping Platform on both decentralized and centralized exchanges. Enjoy a user-friendly dashboard to Snipe new tokens before their launch and set up a selling strategy ahead of time.

Market

Volume (24H):$24,323.00
Market Capitalization:$847,578.00
Circulating Supply:24,874,377.00 NOTI
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0XFFB1018EFF5FC021E15215290732F02A89B008E7-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0341
0.0000102 Eth
$24,313.00
702,009.507 0XFFB1018EFF5FC021E15215290732F02A89B008E7
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
Noti

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-11
*/

/**
    $NOTI
    Website: https://noti.io
    Twitter: https://x.com/noti_official
    Telegram: https://t.me/noti_portal
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` 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 value) external returns (bool);
}

/**
 * @dev Interface for the optional metadata functions from the ERC-20 standard.
 */
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);
}

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


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

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

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

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

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

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

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function transferOwnership(address pendingOwner) external onlyOwner {
        require(pendingOwner != address(0), "potential owner can not be the zero address");
        potentialOwner = pendingOwner;
    }

    function acceptOwnership() external {
        require(msg.sender == potentialOwner, "You must be nominated as potential owner before you can accept ownership");
        _transferOwnership(potentialOwner);
        potentialOwner = address(0);
    }
}

/**
 * @dev Standard ERC-20 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.
 */
interface IERC20Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC20InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC20InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     * @param allowance Amount of tokens a `spender` is allowed to operate with.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC20InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC20InvalidSpender(address spender);
}

/**
 * @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}.
 *
 * 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].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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 ERC-20
 * 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 ERC may not emit
 * these events, as it isn't required by the specification.
 */
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 default value returned by this function, unless
     * it's 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 returns (uint8) {
        return 18;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual 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 `value`.
     */
    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `value` 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 value) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the ERC. 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 `value`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `value`.
     */
    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    /**
     * @dev Moves a `value` 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.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _transfer(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    /**
     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
     * this function.
     *
     * Emits a {Transfer} event.
     */
    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    /**
     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
     * Relies on the `_update` mechanism
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    /**
     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
     * Relies on the `_update` mechanism.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead
     */
    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    /**
     * @dev Sets `value` 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.
     *
     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }

    /**
     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
     *
     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
     * `Approval` event during `transferFrom` operations.
     *
     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
     * true using the following override:
     * ```
     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
     *     super._approve(owner, spender, value, true);
     * }
     * ```
     *
     * Requirements are the same as {_approve}.
     */
    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `value`.
     *
     * Does not update the allowance value in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Does not emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

/**
 * @title NOTI Token Contract
 */
contract Noti is ERC20, Ownable {
    uint256 public constant maxSupply = 230000000 * 10 ** 18; // Maximum supply of NOTI tokens.

    address private fundraisingWallet = 0xae320e7B7d9211136DC5E13A3C0a308067369865;
    address private teamWallet = 0x0C803eFcD7b8e9fEbB5f46cF78fab9839a4FBAc9;
    address private advisorsWallet = 0xf362F09cCa0345f63AAc701114168D8D36C21136;
    address private LPWallet = 0x0bf0cd734B8c2D64fB5e21Bc41875d9863cbdd60;
    address private ecosystemWallet = 0xbc230Eb7e180CE5f536bf7FcAf72CefA2465c9FC;
    address private marketingWallet = 0xb2c3e279501a4cCa32E373e3Aadf3B20AE21a65B;
    address private treasuryWallet = 0xBa425547ca9C7bCb57A9509Fb414178dC7CD8d8C;

    enum ContractState {
        OFF,
        ON
    }
    ContractState public contractState = ContractState.OFF;

    mapping(address => bool) public isExcluded;

    /**
     * @dev Mints NOTI tokens for initial distribution to multi-sig wallets
     */
    constructor() ERC20("Noti", "NOTI") {
        _mint(fundraisingWallet, 23000000 * 10 ** 18);
        _mint(teamWallet, 18400000 * 10 ** 18);
        _mint(advisorsWallet, 13800000 * 10 ** 18);
        _mint(LPWallet, 46000000 * 10 ** 18);
        _mint(ecosystemWallet, 13800000 * 10 ** 18);
        _mint(marketingWallet, 23000000 * 10 ** 18);
        _mint(treasuryWallet, 92000000 * 10 ** 18);
    }

    /**
     * @dev Overrides the transferFrom function.
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param amount The amount to be transferred.
     * @return A boolean value indicating whether the operation succeeded.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns(bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        
        // Transfer the full amount if sender or recipient is excluded from trading block
        _transfer(from, to, amount);
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(contractState == ContractState.ON || isExcluded[sender] || isExcluded[recipient], "Incorrect state!");
        super._transfer(sender, recipient, amount);
    }

    // Burn functions
    /**
     * @dev Destroys `amount` tokens from the caller.
     * @param amount The amount of tokens to destroy.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's allowance.
     * @param account The account to burn tokens from.
     * @param amount The amount of tokens to destroy.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }

    receive() external payable {}

    // Admin functions

    /**
     * Set contract state.
     */
    function setContractState(uint256 newState) external onlyOwner {
        contractState = ContractState(newState);
    }

    /**
     * @dev Updates the exclusion status of an address.
     * @param _account The address to update.
     * @param isExcluded_ Whether the address is excluded from trading block.
     */
    function setExclusion(address _account, bool isExcluded_) external onlyOwner {
        isExcluded[_account] = isExcluded_;
    }

    // Withdrawal functions

    /**
     * @dev Withdraws Ether from the contract.
     * @param recipient The recipient of the Ether.
     * @param amount The amount of Ether to withdraw.
     */
    function withdraw(address recipient, uint256 amount) external onlyOwner {
        require(recipient != address(0), "Invalid Address!");
        (bool sent, ) = recipient.call{value: amount}("");
        require(sent, "Failed to send Ether");
    }

    /**
     * @dev Withdraws ERC20 tokens from the contract.
     * @param token The ERC20 token to withdraw.
     * @param recipient The recipient of the tokens.
     * @param amount The amount of tokens to withdraw.
     */
    function withdrawToken(address token, address recipient, uint256 amount) external onlyOwner {
        require(recipient != address(0), "Invalid recipient address!");
        require(token != address(0), "Invalid token address!");
        bool sent = IERC20(token).transfer(recipient, amount);
        require(sent, "Failed to send tokens");
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":[],"name":"acceptOwnership","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractState","outputs":[{"internalType":"enum Noti.ContractState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","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":"potentialOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newState","type":"uint256"}],"name":"setContractState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"isExcluded_","type":"bool"}],"name":"setExclusion","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":"to","type":"address"},{"internalType":"uint256","name":"value","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273ae320e7b7d9211136dc5e13a3c0a30806736986560075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730c803efcd7b8e9febb5f46cf78fab9839a4fbac960085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f362f09cca0345f63aac701114168d8d36c2113660095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730bf0cd734b8c2d64fb5e21bc41875d9863cbdd60600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bc230eb7e180ce5f536bf7fcaf72cefa2465c9fc600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b2c3e279501a4cca32e373e3aadf3b20ae21a65b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ba425547ca9c7bcb57a9509fb414178dc7cd8d8c600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600d60146101000a81548160ff021916908360018111156200027857620002776200086c565b5b021790555034801562000289575f80fd5b506040518060400160405280600481526020017f4e6f7469000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e4f544900000000000000000000000000000000000000000000000000000000815250816003908162000307919062000afd565b50806004908162000319919062000afd565b5050506200033c62000330620004f460201b60201c565b620004fb60201b60201c565b6200037a60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a1306707f94695977000000620005be60201b60201c565b620003b860085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a0f3859ffa9ede12c000000620005be60201b60201c565b620003f660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a0b6a437fbf7268e1000000620005be60201b60201c565b62000434600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a260ce0ff28d2b2ee000000620005be60201b60201c565b62000472600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a0b6a437fbf7268e1000000620005be60201b60201c565b620004b0600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a1306707f94695977000000620005be60201b60201c565b620004ee600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a4c19c1fe51a565dc000000620005be60201b60201c565b62000d0d565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000631575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000628919062000c24565b60405180910390fd5b620006445f83836200064860201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200069c578060025f8282546200068f919062000c6c565b925050819055506200076d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000728578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200071f9392919062000cb7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007b6578060025f828254039250508190555062000800565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200085f919062000cf2565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200091557607f821691505b6020821081036200092b576200092a620008d0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200098f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000952565b6200099b868362000952565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009e5620009df620009d984620009b3565b620009bc565b620009b3565b9050919050565b5f819050919050565b62000a0083620009c5565b62000a1862000a0f82620009ec565b8484546200095e565b825550505050565b5f90565b62000a2e62000a20565b62000a3b818484620009f5565b505050565b5b8181101562000a625762000a565f8262000a24565b60018101905062000a41565b5050565b601f82111562000ab15762000a7b8162000931565b62000a868462000943565b8101602085101562000a96578190505b62000aae62000aa58562000943565b83018262000a40565b50505b505050565b5f82821c905092915050565b5f62000ad35f198460080262000ab6565b1980831691505092915050565b5f62000aed838362000ac2565b9150826002028217905092915050565b62000b088262000899565b67ffffffffffffffff81111562000b245762000b23620008a3565b5b62000b308254620008fd565b62000b3d82828562000a66565b5f60209050601f83116001811462000b73575f841562000b5e578287015190505b62000b6a858262000ae0565b86555062000bd9565b601f19841662000b838662000931565b5f5b8281101562000bac5784890151825560018201915060208501945060208101905062000b85565b8683101562000bcc578489015162000bc8601f89168262000ac2565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c0c8262000be1565b9050919050565b62000c1e8162000c00565b82525050565b5f60208201905062000c395f83018462000c13565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000c7882620009b3565b915062000c8583620009b3565b925082820190508082111562000ca05762000c9f62000c3f565b5b92915050565b62000cb181620009b3565b82525050565b5f60608201905062000ccc5f83018662000c13565b62000cdb602083018562000ca6565b62000cea604083018462000ca6565b949350505050565b5f60208201905062000d075f83018462000ca6565b92915050565b6120088062000d1b5f395ff3fe608060405260043610610143575f3560e01c806379cc6790116100b5578063cba0e9961161006e578063cba0e99614610430578063d5abeb011461046c578063dd62ed3e14610496578063f2fde38b146104d2578063f3fef3a3146104fa578063fb7265ff146105225761014a565b806379cc67901461032657806385209ee01461034e5780638da5cb5b1461037857806395d89b41146103a2578063a9059cbb146103cc578063c8d9cefa146104085761014a565b8063313ce56711610107578063313ce5671461024257806342966c681461026c57806370a0823114610294578063715018a6146102d05780637762df25146102e657806379ba5097146103105761014a565b806301e336671461014e57806306fdde0314610176578063095ea7b3146101a057806318160ddd146101dc57806323b872dd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906116a8565b61054a565b005b348015610181575f80fd5b5061018a6106f2565b6040516101979190611782565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c191906117a2565b610782565b6040516101d391906117fa565b60405180910390f35b3480156101e7575f80fd5b506101f06107a4565b6040516101fd9190611822565b60405180910390f35b348015610211575f80fd5b5061022c600480360381019061022791906116a8565b6107ad565b60405161023991906117fa565b60405180910390f35b34801561024d575f80fd5b506102566107db565b6040516102639190611856565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d919061186f565b6107e3565b005b34801561029f575f80fd5b506102ba60048036038101906102b5919061189a565b6107f7565b6040516102c79190611822565b60405180910390f35b3480156102db575f80fd5b506102e461083c565b005b3480156102f1575f80fd5b506102fa61084f565b60405161030791906118d4565b60405180910390f35b34801561031b575f80fd5b50610324610874565b005b348015610331575f80fd5b5061034c600480360381019061034791906117a2565b61096f565b005b348015610359575f80fd5b5061036261098f565b60405161036f9190611960565b60405180910390f35b348015610383575f80fd5b5061038c6109a2565b60405161039991906118d4565b60405180910390f35b3480156103ad575f80fd5b506103b66109ca565b6040516103c39190611782565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed91906117a2565b610a5a565b6040516103ff91906117fa565b60405180910390f35b348015610413575f80fd5b5061042e600480360381019061042991906119a3565b610a7c565b005b34801561043b575f80fd5b506104566004803603810190610451919061189a565b610adc565b60405161046391906117fa565b60405180910390f35b348015610477575f80fd5b50610480610af9565b60405161048d9190611822565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b791906119e1565b610b08565b6040516104c99190611822565b60405180910390f35b3480156104dd575f80fd5b506104f860048036038101906104f3919061189a565b610b8a565b005b348015610505575f80fd5b50610520600480360381019061051b91906117a2565b610c43565b005b34801561052d575f80fd5b506105486004803603810190610543919061186f565b610d66565b005b610552610dad565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b790611a69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361062e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062590611ad1565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161066a929190611aef565b6020604051808303815f875af1158015610686573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106aa9190611b2a565b9050806106ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e390611b9f565b60405180910390fd5b50505050565b60606003805461070190611bea565b80601f016020809104026020016040519081016040528092919081815260200182805461072d90611bea565b80156107785780601f1061074f57610100808354040283529160200191610778565b820191905f5260205f20905b81548152906001019060200180831161075b57829003601f168201915b5050505050905090565b5f8061078c610e2b565b9050610799818585610e32565b600191505092915050565b5f600254905090565b5f806107b7610e2b565b90506107c4858285610e44565b6107cf858585610ed6565b60019150509392505050565b5f6012905090565b6107f46107ee610e2b565b82610ffd565b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610844610dad565b61084d5f61107c565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa90611cb0565b60405180910390fd5b61092d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661107c565b5f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109818261097b610e2b565b83610e44565b61098b8282610ffd565b5050565b600d60149054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109d990611bea565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0590611bea565b8015610a505780601f10610a2757610100808354040283529160200191610a50565b820191905f5260205f20905b815481529060010190602001808311610a3357829003601f168201915b5050505050905090565b5f80610a64610e2b565b9050610a71818585610ed6565b600191505092915050565b610a84610dad565b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600e602052805f5260405f205f915054906101000a900460ff1681565b6abe4064fbcc1d7ea600000081565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b92610dad565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790611d3e565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c4b610dad565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb090611da6565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610cde90611df1565b5f6040518083038185875af1925050503d805f8114610d18576040519150601f19603f3d011682016040523d82523d5f602084013e610d1d565b606091505b5050905080610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890611e4f565b60405180910390fd5b505050565b610d6e610dad565b806001811115610d8157610d806118ed565b5b600d60146101000a81548160ff02191690836001811115610da557610da46118ed565b5b021790555050565b610db5610e2b565b73ffffffffffffffffffffffffffffffffffffffff16610dd36109a2565b73ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090611eb7565b60405180910390fd5b565b5f33905090565b610e3f838383600161113f565b505050565b5f610e4f8484610b08565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ed05781811015610ec1578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610eb893929190611ed5565b60405180910390fd5b610ecf84848484035f61113f565b5b50505050565b600180811115610ee957610ee86118ed565b5b600d60149054906101000a900460ff166001811115610f0b57610f0a6118ed565b5b1480610f5d5750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610fae5750600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490611f54565b60405180910390fd5b610ff883838361130e565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361106d575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161106491906118d4565b60405180910390fd5b611078825f836113fe565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111af575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016111a691906118d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121f575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161121691906118d4565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611308578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112ff9190611822565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137e575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161137591906118d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ee575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113e591906118d4565b60405180910390fd5b6113f98383836113fe565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144e578060025f8282546114429190611f9f565b9250508190555061151c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114d7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114ce93929190611ed5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611563578060025f82825403925050819055506115ad565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160a9190611822565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116448261161b565b9050919050565b6116548161163a565b811461165e575f80fd5b50565b5f8135905061166f8161164b565b92915050565b5f819050919050565b61168781611675565b8114611691575f80fd5b50565b5f813590506116a28161167e565b92915050565b5f805f606084860312156116bf576116be611617565b5b5f6116cc86828701611661565b93505060206116dd86828701611661565b92505060406116ee86828701611694565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561172f578082015181840152602081019050611714565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611754826116f8565b61175e8185611702565b935061176e818560208601611712565b6117778161173a565b840191505092915050565b5f6020820190508181035f83015261179a818461174a565b905092915050565b5f80604083850312156117b8576117b7611617565b5b5f6117c585828601611661565b92505060206117d685828601611694565b9150509250929050565b5f8115159050919050565b6117f4816117e0565b82525050565b5f60208201905061180d5f8301846117eb565b92915050565b61181c81611675565b82525050565b5f6020820190506118355f830184611813565b92915050565b5f60ff82169050919050565b6118508161183b565b82525050565b5f6020820190506118695f830184611847565b92915050565b5f6020828403121561188457611883611617565b5b5f61189184828501611694565b91505092915050565b5f602082840312156118af576118ae611617565b5b5f6118bc84828501611661565b91505092915050565b6118ce8161163a565b82525050565b5f6020820190506118e75f8301846118c5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6002811061192b5761192a6118ed565b5b50565b5f81905061193b8261191a565b919050565b5f61194a8261192e565b9050919050565b61195a81611940565b82525050565b5f6020820190506119735f830184611951565b92915050565b611982816117e0565b811461198c575f80fd5b50565b5f8135905061199d81611979565b92915050565b5f80604083850312156119b9576119b8611617565b5b5f6119c685828601611661565b92505060206119d78582860161198f565b9150509250929050565b5f80604083850312156119f7576119f6611617565b5b5f611a0485828601611661565b9250506020611a1585828601611661565b9150509250929050565b7f496e76616c696420726563697069656e742061646472657373210000000000005f82015250565b5f611a53601a83611702565b9150611a5e82611a1f565b602082019050919050565b5f6020820190508181035f830152611a8081611a47565b9050919050565b7f496e76616c696420746f6b656e206164647265737321000000000000000000005f82015250565b5f611abb601683611702565b9150611ac682611a87565b602082019050919050565b5f6020820190508181035f830152611ae881611aaf565b9050919050565b5f604082019050611b025f8301856118c5565b611b0f6020830184611813565b9392505050565b5f81519050611b2481611979565b92915050565b5f60208284031215611b3f57611b3e611617565b5b5f611b4c84828501611b16565b91505092915050565b7f4661696c656420746f2073656e6420746f6b656e7300000000000000000000005f82015250565b5f611b89601583611702565b9150611b9482611b55565b602082019050919050565b5f6020820190508181035f830152611bb681611b7d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611c0157607f821691505b602082108103611c1457611c13611bbd565b5b50919050565b7f596f75206d757374206265206e6f6d696e6174656420617320706f74656e74695f8201527f616c206f776e6572206265666f726520796f752063616e20616363657074206f60208201527f776e657273686970000000000000000000000000000000000000000000000000604082015250565b5f611c9a604883611702565b9150611ca582611c1a565b606082019050919050565b5f6020820190508181035f830152611cc781611c8e565b9050919050565b7f706f74656e7469616c206f776e65722063616e206e6f7420626520746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f611d28602b83611702565b9150611d3382611cce565b604082019050919050565b5f6020820190508181035f830152611d5581611d1c565b9050919050565b7f496e76616c6964204164647265737321000000000000000000000000000000005f82015250565b5f611d90601083611702565b9150611d9b82611d5c565b602082019050919050565b5f6020820190508181035f830152611dbd81611d84565b9050919050565b5f81905092915050565b50565b5f611ddc5f83611dc4565b9150611de782611dce565b5f82019050919050565b5f611dfb82611dd1565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f611e39601483611702565b9150611e4482611e05565b602082019050919050565b5f6020820190508181035f830152611e6681611e2d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ea1602083611702565b9150611eac82611e6d565b602082019050919050565b5f6020820190508181035f830152611ece81611e95565b9050919050565b5f606082019050611ee85f8301866118c5565b611ef56020830185611813565b611f026040830184611813565b949350505050565b7f496e636f727265637420737461746521000000000000000000000000000000005f82015250565b5f611f3e601083611702565b9150611f4982611f0a565b602082019050919050565b5f6020820190508181035f830152611f6b81611f32565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fa982611675565b9150611fb483611675565b9250828201905080821115611fcc57611fcb611f72565b5b9291505056fea264697066735822122094157a3de26d10f7de4a79143632ae717d9b70d977b6c9ba74c04dfe79c69db464736f6c63430008140033

Deployed Bytecode

0x608060405260043610610143575f3560e01c806379cc6790116100b5578063cba0e9961161006e578063cba0e99614610430578063d5abeb011461046c578063dd62ed3e14610496578063f2fde38b146104d2578063f3fef3a3146104fa578063fb7265ff146105225761014a565b806379cc67901461032657806385209ee01461034e5780638da5cb5b1461037857806395d89b41146103a2578063a9059cbb146103cc578063c8d9cefa146104085761014a565b8063313ce56711610107578063313ce5671461024257806342966c681461026c57806370a0823114610294578063715018a6146102d05780637762df25146102e657806379ba5097146103105761014a565b806301e336671461014e57806306fdde0314610176578063095ea7b3146101a057806318160ddd146101dc57806323b872dd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906116a8565b61054a565b005b348015610181575f80fd5b5061018a6106f2565b6040516101979190611782565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c191906117a2565b610782565b6040516101d391906117fa565b60405180910390f35b3480156101e7575f80fd5b506101f06107a4565b6040516101fd9190611822565b60405180910390f35b348015610211575f80fd5b5061022c600480360381019061022791906116a8565b6107ad565b60405161023991906117fa565b60405180910390f35b34801561024d575f80fd5b506102566107db565b6040516102639190611856565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d919061186f565b6107e3565b005b34801561029f575f80fd5b506102ba60048036038101906102b5919061189a565b6107f7565b6040516102c79190611822565b60405180910390f35b3480156102db575f80fd5b506102e461083c565b005b3480156102f1575f80fd5b506102fa61084f565b60405161030791906118d4565b60405180910390f35b34801561031b575f80fd5b50610324610874565b005b348015610331575f80fd5b5061034c600480360381019061034791906117a2565b61096f565b005b348015610359575f80fd5b5061036261098f565b60405161036f9190611960565b60405180910390f35b348015610383575f80fd5b5061038c6109a2565b60405161039991906118d4565b60405180910390f35b3480156103ad575f80fd5b506103b66109ca565b6040516103c39190611782565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed91906117a2565b610a5a565b6040516103ff91906117fa565b60405180910390f35b348015610413575f80fd5b5061042e600480360381019061042991906119a3565b610a7c565b005b34801561043b575f80fd5b506104566004803603810190610451919061189a565b610adc565b60405161046391906117fa565b60405180910390f35b348015610477575f80fd5b50610480610af9565b60405161048d9190611822565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b791906119e1565b610b08565b6040516104c99190611822565b60405180910390f35b3480156104dd575f80fd5b506104f860048036038101906104f3919061189a565b610b8a565b005b348015610505575f80fd5b50610520600480360381019061051b91906117a2565b610c43565b005b34801561052d575f80fd5b506105486004803603810190610543919061186f565b610d66565b005b610552610dad565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b790611a69565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361062e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062590611ad1565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161066a929190611aef565b6020604051808303815f875af1158015610686573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106aa9190611b2a565b9050806106ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e390611b9f565b60405180910390fd5b50505050565b60606003805461070190611bea565b80601f016020809104026020016040519081016040528092919081815260200182805461072d90611bea565b80156107785780601f1061074f57610100808354040283529160200191610778565b820191905f5260205f20905b81548152906001019060200180831161075b57829003601f168201915b5050505050905090565b5f8061078c610e2b565b9050610799818585610e32565b600191505092915050565b5f600254905090565b5f806107b7610e2b565b90506107c4858285610e44565b6107cf858585610ed6565b60019150509392505050565b5f6012905090565b6107f46107ee610e2b565b82610ffd565b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610844610dad565b61084d5f61107c565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa90611cb0565b60405180910390fd5b61092d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661107c565b5f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109818261097b610e2b565b83610e44565b61098b8282610ffd565b5050565b600d60149054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109d990611bea565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0590611bea565b8015610a505780601f10610a2757610100808354040283529160200191610a50565b820191905f5260205f20905b815481529060010190602001808311610a3357829003601f168201915b5050505050905090565b5f80610a64610e2b565b9050610a71818585610ed6565b600191505092915050565b610a84610dad565b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600e602052805f5260405f205f915054906101000a900460ff1681565b6abe4064fbcc1d7ea600000081565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b92610dad565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790611d3e565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c4b610dad565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb090611da6565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610cde90611df1565b5f6040518083038185875af1925050503d805f8114610d18576040519150601f19603f3d011682016040523d82523d5f602084013e610d1d565b606091505b5050905080610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890611e4f565b60405180910390fd5b505050565b610d6e610dad565b806001811115610d8157610d806118ed565b5b600d60146101000a81548160ff02191690836001811115610da557610da46118ed565b5b021790555050565b610db5610e2b565b73ffffffffffffffffffffffffffffffffffffffff16610dd36109a2565b73ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090611eb7565b60405180910390fd5b565b5f33905090565b610e3f838383600161113f565b505050565b5f610e4f8484610b08565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ed05781811015610ec1578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610eb893929190611ed5565b60405180910390fd5b610ecf84848484035f61113f565b5b50505050565b600180811115610ee957610ee86118ed565b5b600d60149054906101000a900460ff166001811115610f0b57610f0a6118ed565b5b1480610f5d5750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610fae5750600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490611f54565b60405180910390fd5b610ff883838361130e565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361106d575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161106491906118d4565b60405180910390fd5b611078825f836113fe565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111af575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016111a691906118d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121f575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161121691906118d4565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611308578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112ff9190611822565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137e575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161137591906118d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ee575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113e591906118d4565b60405180910390fd5b6113f98383836113fe565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144e578060025f8282546114429190611f9f565b9250508190555061151c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114d7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114ce93929190611ed5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611563578060025f82825403925050819055506115ad565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160a9190611822565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116448261161b565b9050919050565b6116548161163a565b811461165e575f80fd5b50565b5f8135905061166f8161164b565b92915050565b5f819050919050565b61168781611675565b8114611691575f80fd5b50565b5f813590506116a28161167e565b92915050565b5f805f606084860312156116bf576116be611617565b5b5f6116cc86828701611661565b93505060206116dd86828701611661565b92505060406116ee86828701611694565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561172f578082015181840152602081019050611714565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611754826116f8565b61175e8185611702565b935061176e818560208601611712565b6117778161173a565b840191505092915050565b5f6020820190508181035f83015261179a818461174a565b905092915050565b5f80604083850312156117b8576117b7611617565b5b5f6117c585828601611661565b92505060206117d685828601611694565b9150509250929050565b5f8115159050919050565b6117f4816117e0565b82525050565b5f60208201905061180d5f8301846117eb565b92915050565b61181c81611675565b82525050565b5f6020820190506118355f830184611813565b92915050565b5f60ff82169050919050565b6118508161183b565b82525050565b5f6020820190506118695f830184611847565b92915050565b5f6020828403121561188457611883611617565b5b5f61189184828501611694565b91505092915050565b5f602082840312156118af576118ae611617565b5b5f6118bc84828501611661565b91505092915050565b6118ce8161163a565b82525050565b5f6020820190506118e75f8301846118c5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6002811061192b5761192a6118ed565b5b50565b5f81905061193b8261191a565b919050565b5f61194a8261192e565b9050919050565b61195a81611940565b82525050565b5f6020820190506119735f830184611951565b92915050565b611982816117e0565b811461198c575f80fd5b50565b5f8135905061199d81611979565b92915050565b5f80604083850312156119b9576119b8611617565b5b5f6119c685828601611661565b92505060206119d78582860161198f565b9150509250929050565b5f80604083850312156119f7576119f6611617565b5b5f611a0485828601611661565b9250506020611a1585828601611661565b9150509250929050565b7f496e76616c696420726563697069656e742061646472657373210000000000005f82015250565b5f611a53601a83611702565b9150611a5e82611a1f565b602082019050919050565b5f6020820190508181035f830152611a8081611a47565b9050919050565b7f496e76616c696420746f6b656e206164647265737321000000000000000000005f82015250565b5f611abb601683611702565b9150611ac682611a87565b602082019050919050565b5f6020820190508181035f830152611ae881611aaf565b9050919050565b5f604082019050611b025f8301856118c5565b611b0f6020830184611813565b9392505050565b5f81519050611b2481611979565b92915050565b5f60208284031215611b3f57611b3e611617565b5b5f611b4c84828501611b16565b91505092915050565b7f4661696c656420746f2073656e6420746f6b656e7300000000000000000000005f82015250565b5f611b89601583611702565b9150611b9482611b55565b602082019050919050565b5f6020820190508181035f830152611bb681611b7d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611c0157607f821691505b602082108103611c1457611c13611bbd565b5b50919050565b7f596f75206d757374206265206e6f6d696e6174656420617320706f74656e74695f8201527f616c206f776e6572206265666f726520796f752063616e20616363657074206f60208201527f776e657273686970000000000000000000000000000000000000000000000000604082015250565b5f611c9a604883611702565b9150611ca582611c1a565b606082019050919050565b5f6020820190508181035f830152611cc781611c8e565b9050919050565b7f706f74656e7469616c206f776e65722063616e206e6f7420626520746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f611d28602b83611702565b9150611d3382611cce565b604082019050919050565b5f6020820190508181035f830152611d5581611d1c565b9050919050565b7f496e76616c6964204164647265737321000000000000000000000000000000005f82015250565b5f611d90601083611702565b9150611d9b82611d5c565b602082019050919050565b5f6020820190508181035f830152611dbd81611d84565b9050919050565b5f81905092915050565b50565b5f611ddc5f83611dc4565b9150611de782611dce565b5f82019050919050565b5f611dfb82611dd1565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f611e39601483611702565b9150611e4482611e05565b602082019050919050565b5f6020820190508181035f830152611e6681611e2d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ea1602083611702565b9150611eac82611e6d565b602082019050919050565b5f6020820190508181035f830152611ece81611e95565b9050919050565b5f606082019050611ee85f8301866118c5565b611ef56020830185611813565b611f026040830184611813565b949350505050565b7f496e636f727265637420737461746521000000000000000000000000000000005f82015250565b5f611f3e601083611702565b9150611f4982611f0a565b602082019050919050565b5f6020820190508181035f830152611f6b81611f32565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fa982611675565b9150611fb483611675565b9250828201905080821115611fcc57611fcb611f72565b5b9291505056fea264697066735822122094157a3de26d10f7de4a79143632ae717d9b70d977b6c9ba74c04dfe79c69db464736f6c63430008140033

Deployed Bytecode Sourcemap

20047:4607:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24298:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10668:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12961:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11770:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21734:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11621:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22531:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11932:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6003:103;;;;;;;;;;;;;:::i;:::-;;4822:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6682:251;;;;;;;;;;;;;:::i;:::-;;22852:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20815:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5355:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10878:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12255:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23463:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20878:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20086:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12500:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6465:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23806:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23133:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24298:351;5241:13;:11;:13::i;:::-;24430:1:::1;24409:23;;:9;:23;;::::0;24401:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24499:1;24482:19;;:5;:19;;::::0;24474:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24539:9;24558:5;24551:22;;;24574:9;24585:6;24551:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24539:53;;24611:4;24603:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;24390:259;24298:351:::0;;;:::o;10668:91::-;10713:13;10746:5;10739:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10668:91;:::o;12961:190::-;13034:4;13051:13;13067:12;:10;:12::i;:::-;13051:28;;13090:31;13099:5;13106:7;13115:5;13090:8;:31::i;:::-;13139:4;13132:11;;;12961:190;;;;:::o;11770:99::-;11822:7;11849:12;;11842:19;;11770:99;:::o;21734:361::-;21830:4;21847:15;21865:12;:10;:12::i;:::-;21847:30;;21888:38;21904:4;21910:7;21919:6;21888:15;:38::i;:::-;22038:27;22048:4;22054:2;22058:6;22038:9;:27::i;:::-;22083:4;22076:11;;;21734:361;;;;;:::o;11621:84::-;11670:5;11695:2;11688:9;;11621:84;:::o;22531:91::-;22587:27;22593:12;:10;:12::i;:::-;22607:6;22587:5;:27::i;:::-;22531:91;:::o;11932:118::-;11997:7;12024:9;:18;12034:7;12024:18;;;;;;;;;;;;;;;;12017:25;;11932:118;;;:::o;6003:103::-;5241:13;:11;:13::i;:::-;6068:30:::1;6095:1;6068:18;:30::i;:::-;6003:103::o:0;4822:29::-;;;;;;;;;;;;;:::o;6682:251::-;6751:14;;;;;;;;;;;6737:28;;:10;:28;;;6729:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;6853:34;6872:14;;;;;;;;;;;6853:18;:34::i;:::-;6923:1;6898:14;;:27;;;;;;;;;;;;;;;;;;6682:251::o;22852:164::-;22929:46;22945:7;22954:12;:10;:12::i;:::-;22968:6;22929:15;:46::i;:::-;22986:22;22992:7;23001:6;22986:5;:22::i;:::-;22852:164;;:::o;20815:54::-;;;;;;;;;;;;;:::o;5355:87::-;5401:7;5428:6;;;;;;;;;;;5421:13;;5355:87;:::o;10878:95::-;10925:13;10958:7;10951:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10878:95;:::o;12255:182::-;12324:4;12341:13;12357:12;:10;:12::i;:::-;12341:28;;12380:27;12390:5;12397:2;12401:5;12380:9;:27::i;:::-;12425:4;12418:11;;;12255:182;;;;:::o;23463:130::-;5241:13;:11;:13::i;:::-;23574:11:::1;23551:10;:20;23562:8;23551:20;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;23463:130:::0;;:::o;20878:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;20086:56::-;20122:20;20086:56;:::o;12500:142::-;12580:7;12607:11;:18;12619:5;12607:18;;;;;;;;;;;;;;;:27;12626:7;12607:27;;;;;;;;;;;;;;;;12600:34;;12500:142;;;;:::o;6465:209::-;5241:13;:11;:13::i;:::-;6576:1:::1;6552:26;;:12;:26;;::::0;6544:82:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6654:12;6637:14;;:29;;;;;;;;;;;;;;;;;;6465:209:::0;:::o;23806:251::-;5241:13;:11;:13::i;:::-;23918:1:::1;23897:23;;:9;:23;;::::0;23889:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23953:9;23968;:14;;23990:6;23968:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23952:49;;;24020:4;24012:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;23878:179;23806:251:::0;;:::o;23133:121::-;5241:13;:11;:13::i;:::-;23237:8:::1;23223:23;;;;;;;;:::i;:::-;;23207:13;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;23133:121:::0;:::o;5520:132::-;5595:12;:10;:12::i;:::-;5584:23;;:7;:5;:7::i;:::-;:23;;;5576:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5520:132::o;3956:98::-;4009:7;4036:10;4029:17;;3956:98;:::o;17796:130::-;17881:37;17890:5;17897:7;17906:5;17913:4;17881:8;:37::i;:::-;17796:130;;;:::o;19512:487::-;19612:24;19639:25;19649:5;19656:7;19639:9;:25::i;:::-;19612:52;;19699:17;19679:16;:37;19675:317;;19756:5;19737:16;:24;19733:132;;;19816:7;19825:16;19843:5;19789:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;19733:132;19908:57;19917:5;19924:7;19952:5;19933:16;:24;19959:5;19908:8;:57::i;:::-;19675:317;19601:398;19512:487;;;:::o;22103:269::-;22227:16;22210:33;;;;;;;;:::i;:::-;;:13;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;;:55;;;;22247:10;:18;22258:6;22247:18;;;;;;;;;;;;;;;;;;;;;;;;;22210:55;:80;;;;22269:10;:21;22280:9;22269:21;;;;;;;;;;;;;;;;;;;;;;;;;22210:80;22202:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;22322:42;22338:6;22346:9;22357:6;22322:15;:42::i;:::-;22103:269;;;:::o;17032:211::-;17122:1;17103:21;;:7;:21;;;17099:91;;17175:1;17148:30;;;;;;;;;;;:::i;:::-;;;;;;;;17099:91;17200:35;17208:7;17225:1;17229:5;17200:7;:35::i;:::-;17032:211;;:::o;6266:191::-;6340:16;6359:6;;;;;;;;;;;6340:25;;6385:8;6376:6;;:17;;;;;;;;;;;;;;;;;;6440:8;6409:40;;6430:8;6409:40;;;;;;;;;;;;6329:128;6266:191;:::o;18777:443::-;18907:1;18890:19;;:5;:19;;;18886:91;;18962:1;18933:32;;;;;;;;;;;:::i;:::-;;;;;;;;18886:91;19010:1;18991:21;;:7;:21;;;18987:92;;19064:1;19036:31;;;;;;;;;;;:::i;:::-;;;;;;;;18987:92;19119:5;19089:11;:18;19101:5;19089:18;;;;;;;;;;;;;;;:27;19108:7;19089:27;;;;;;;;;;;;;;;:35;;;;19139:9;19135:78;;;19186:7;19170:31;;19179:5;19170:31;;;19195:5;19170:31;;;;;;:::i;:::-;;;;;;;;19135:78;18777:443;;;;:::o;14363:316::-;14471:1;14455:18;;:4;:18;;;14451:88;;14524:1;14497:30;;;;;;;;;;;:::i;:::-;;;;;;;;14451:88;14567:1;14553:16;;:2;:16;;;14549:88;;14622:1;14593:32;;;;;;;;;;;:::i;:::-;;;;;;;;14549:88;14647:24;14655:4;14661:2;14665:5;14647:7;:24::i;:::-;14363:316;;;:::o;15003:1135::-;15109:1;15093:18;;:4;:18;;;15089:552;;15247:5;15231:12;;:21;;;;;;;:::i;:::-;;;;;;;;15089:552;;;15285:19;15307:9;:15;15317:4;15307:15;;;;;;;;;;;;;;;;15285:37;;15355:5;15341:11;:19;15337:117;;;15413:4;15419:11;15432:5;15388:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;15337:117;15609:5;15595:11;:19;15577:9;:15;15587:4;15577:15;;;;;;;;;;;;;;;:37;;;;15270:371;15089:552;15671:1;15657:16;;:2;:16;;;15653:435;;15839:5;15823:12;;:21;;;;;;;;;;;15653:435;;;16056:5;16039:9;:13;16049:2;16039:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;15653:435;16120:2;16105:25;;16114:4;16105:25;;;16124:5;16105:25;;;;;;:::i;:::-;;;;;;;;15003:1135;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:619::-;1274:6;1282;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;;:::i;:::-;1307:119;1465:1;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1197:619;;;;;:::o;1822:99::-;1874:6;1908:5;1902:12;1892:22;;1822:99;;;:::o;1927:169::-;2011:11;2045:6;2040:3;2033:19;2085:4;2080:3;2076:14;2061:29;;1927:169;;;;:::o;2102:246::-;2183:1;2193:113;2207:6;2204:1;2201:13;2193:113;;;2292:1;2287:3;2283:11;2277:18;2273:1;2268:3;2264:11;2257:39;2229:2;2226:1;2222:10;2217:15;;2193:113;;;2340:1;2331:6;2326:3;2322:16;2315:27;2164:184;2102:246;;;:::o;2354:102::-;2395:6;2446:2;2442:7;2437:2;2430:5;2426:14;2422:28;2412:38;;2354:102;;;:::o;2462:377::-;2550:3;2578:39;2611:5;2578:39;:::i;:::-;2633:71;2697:6;2692:3;2633:71;:::i;:::-;2626:78;;2713:65;2771:6;2766:3;2759:4;2752:5;2748:16;2713:65;:::i;:::-;2803:29;2825:6;2803:29;:::i;:::-;2798:3;2794:39;2787:46;;2554:285;2462:377;;;;:::o;2845:313::-;2958:4;2996:2;2985:9;2981:18;2973:26;;3045:9;3039:4;3035:20;3031:1;3020:9;3016:17;3009:47;3073:78;3146:4;3137:6;3073:78;:::i;:::-;3065:86;;2845:313;;;;:::o;3164:474::-;3232:6;3240;3289:2;3277:9;3268:7;3264:23;3260:32;3257:119;;;3295:79;;:::i;:::-;3257:119;3415:1;3440:53;3485:7;3476:6;3465:9;3461:22;3440:53;:::i;:::-;3430:63;;3386:117;3542:2;3568:53;3613:7;3604:6;3593:9;3589:22;3568:53;:::i;:::-;3558:63;;3513:118;3164:474;;;;;:::o;3644:90::-;3678:7;3721:5;3714:13;3707:21;3696:32;;3644:90;;;:::o;3740:109::-;3821:21;3836:5;3821:21;:::i;:::-;3816:3;3809:34;3740:109;;:::o;3855:210::-;3942:4;3980:2;3969:9;3965:18;3957:26;;3993:65;4055:1;4044:9;4040:17;4031:6;3993:65;:::i;:::-;3855:210;;;;:::o;4071:118::-;4158:24;4176:5;4158:24;:::i;:::-;4153:3;4146:37;4071:118;;:::o;4195:222::-;4288:4;4326:2;4315:9;4311:18;4303:26;;4339:71;4407:1;4396:9;4392:17;4383:6;4339:71;:::i;:::-;4195:222;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:180::-;5923:77;5920:1;5913:88;6020:4;6017:1;6010:15;6044:4;6041:1;6034:15;6061:122;6151:1;6144:5;6141:12;6131:46;;6157:18;;:::i;:::-;6131:46;6061:122;:::o;6189:145::-;6243:7;6272:5;6261:16;;6278:50;6322:5;6278:50;:::i;:::-;6189:145;;;:::o;6340:::-;6405:9;6438:41;6473:5;6438:41;:::i;:::-;6425:54;;6340:145;;;:::o;6491:161::-;6593:52;6639:5;6593:52;:::i;:::-;6588:3;6581:65;6491:161;;:::o;6658:252::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:86;6900:1;6889:9;6885:17;6876:6;6817:86;:::i;:::-;6658:252;;;;:::o;6916:116::-;6986:21;7001:5;6986:21;:::i;:::-;6979:5;6976:32;6966:60;;7022:1;7019;7012:12;6966:60;6916:116;:::o;7038:133::-;7081:5;7119:6;7106:20;7097:29;;7135:30;7159:5;7135:30;:::i;:::-;7038:133;;;;:::o;7177:468::-;7242:6;7250;7299:2;7287:9;7278:7;7274:23;7270:32;7267:119;;;7305:79;;:::i;:::-;7267:119;7425:1;7450:53;7495:7;7486:6;7475:9;7471:22;7450:53;:::i;:::-;7440:63;;7396:117;7552:2;7578:50;7620:7;7611:6;7600:9;7596:22;7578:50;:::i;:::-;7568:60;;7523:115;7177:468;;;;;:::o;7651:474::-;7719:6;7727;7776:2;7764:9;7755:7;7751:23;7747:32;7744:119;;;7782:79;;:::i;:::-;7744:119;7902:1;7927:53;7972:7;7963:6;7952:9;7948:22;7927:53;:::i;:::-;7917:63;;7873:117;8029:2;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8000:118;7651:474;;;;;:::o;8131:176::-;8271:28;8267:1;8259:6;8255:14;8248:52;8131:176;:::o;8313:366::-;8455:3;8476:67;8540:2;8535:3;8476:67;:::i;:::-;8469:74;;8552:93;8641:3;8552:93;:::i;:::-;8670:2;8665:3;8661:12;8654:19;;8313:366;;;:::o;8685:419::-;8851:4;8889:2;8878:9;8874:18;8866:26;;8938:9;8932:4;8928:20;8924:1;8913:9;8909:17;8902:47;8966:131;9092:4;8966:131;:::i;:::-;8958:139;;8685:419;;;:::o;9110:172::-;9250:24;9246:1;9238:6;9234:14;9227:48;9110:172;:::o;9288:366::-;9430:3;9451:67;9515:2;9510:3;9451:67;:::i;:::-;9444:74;;9527:93;9616:3;9527:93;:::i;:::-;9645:2;9640:3;9636:12;9629:19;;9288:366;;;:::o;9660:419::-;9826:4;9864:2;9853:9;9849:18;9841:26;;9913:9;9907:4;9903:20;9899:1;9888:9;9884:17;9877:47;9941:131;10067:4;9941:131;:::i;:::-;9933:139;;9660:419;;;:::o;10085:332::-;10206:4;10244:2;10233:9;10229:18;10221:26;;10257:71;10325:1;10314:9;10310:17;10301:6;10257:71;:::i;:::-;10338:72;10406:2;10395:9;10391:18;10382:6;10338:72;:::i;:::-;10085:332;;;;;:::o;10423:137::-;10477:5;10508:6;10502:13;10493:22;;10524:30;10548:5;10524:30;:::i;:::-;10423:137;;;;:::o;10566:345::-;10633:6;10682:2;10670:9;10661:7;10657:23;10653:32;10650:119;;;10688:79;;:::i;:::-;10650:119;10808:1;10833:61;10886:7;10877:6;10866:9;10862:22;10833:61;:::i;:::-;10823:71;;10779:125;10566:345;;;;:::o;10917:171::-;11057:23;11053:1;11045:6;11041:14;11034:47;10917:171;:::o;11094:366::-;11236:3;11257:67;11321:2;11316:3;11257:67;:::i;:::-;11250:74;;11333:93;11422:3;11333:93;:::i;:::-;11451:2;11446:3;11442:12;11435:19;;11094:366;;;:::o;11466:419::-;11632:4;11670:2;11659:9;11655:18;11647:26;;11719:9;11713:4;11709:20;11705:1;11694:9;11690:17;11683:47;11747:131;11873:4;11747:131;:::i;:::-;11739:139;;11466:419;;;:::o;11891:180::-;11939:77;11936:1;11929:88;12036:4;12033:1;12026:15;12060:4;12057:1;12050:15;12077:320;12121:6;12158:1;12152:4;12148:12;12138:22;;12205:1;12199:4;12195:12;12226:18;12216:81;;12282:4;12274:6;12270:17;12260:27;;12216:81;12344:2;12336:6;12333:14;12313:18;12310:38;12307:84;;12363:18;;:::i;:::-;12307:84;12128:269;12077:320;;;:::o;12403:296::-;12543:34;12539:1;12531:6;12527:14;12520:58;12612:34;12607:2;12599:6;12595:15;12588:59;12681:10;12676:2;12668:6;12664:15;12657:35;12403:296;:::o;12705:366::-;12847:3;12868:67;12932:2;12927:3;12868:67;:::i;:::-;12861:74;;12944:93;13033:3;12944:93;:::i;:::-;13062:2;13057:3;13053:12;13046:19;;12705:366;;;:::o;13077:419::-;13243:4;13281:2;13270:9;13266:18;13258:26;;13330:9;13324:4;13320:20;13316:1;13305:9;13301:17;13294:47;13358:131;13484:4;13358:131;:::i;:::-;13350:139;;13077:419;;;:::o;13502:230::-;13642:34;13638:1;13630:6;13626:14;13619:58;13711:13;13706:2;13698:6;13694:15;13687:38;13502:230;:::o;13738:366::-;13880:3;13901:67;13965:2;13960:3;13901:67;:::i;:::-;13894:74;;13977:93;14066:3;13977:93;:::i;:::-;14095:2;14090:3;14086:12;14079:19;;13738:366;;;:::o;14110:419::-;14276:4;14314:2;14303:9;14299:18;14291:26;;14363:9;14357:4;14353:20;14349:1;14338:9;14334:17;14327:47;14391:131;14517:4;14391:131;:::i;:::-;14383:139;;14110:419;;;:::o;14535:166::-;14675:18;14671:1;14663:6;14659:14;14652:42;14535:166;:::o;14707:366::-;14849:3;14870:67;14934:2;14929:3;14870:67;:::i;:::-;14863:74;;14946:93;15035:3;14946:93;:::i;:::-;15064:2;15059:3;15055:12;15048:19;;14707:366;;;:::o;15079:419::-;15245:4;15283:2;15272:9;15268:18;15260:26;;15332:9;15326:4;15322:20;15318:1;15307:9;15303:17;15296:47;15360:131;15486:4;15360:131;:::i;:::-;15352:139;;15079:419;;;:::o;15504:147::-;15605:11;15642:3;15627:18;;15504:147;;;;:::o;15657:114::-;;:::o;15777:398::-;15936:3;15957:83;16038:1;16033:3;15957:83;:::i;:::-;15950:90;;16049:93;16138:3;16049:93;:::i;:::-;16167:1;16162:3;16158:11;16151:18;;15777:398;;;:::o;16181:379::-;16365:3;16387:147;16530:3;16387:147;:::i;:::-;16380:154;;16551:3;16544:10;;16181:379;;;:::o;16566:170::-;16706:22;16702:1;16694:6;16690:14;16683:46;16566:170;:::o;16742:366::-;16884:3;16905:67;16969:2;16964:3;16905:67;:::i;:::-;16898:74;;16981:93;17070:3;16981:93;:::i;:::-;17099:2;17094:3;17090:12;17083:19;;16742:366;;;:::o;17114:419::-;17280:4;17318:2;17307:9;17303:18;17295:26;;17367:9;17361:4;17357:20;17353:1;17342:9;17338:17;17331:47;17395:131;17521:4;17395:131;:::i;:::-;17387:139;;17114:419;;;:::o;17539:182::-;17679:34;17675:1;17667:6;17663:14;17656:58;17539:182;:::o;17727:366::-;17869:3;17890:67;17954:2;17949:3;17890:67;:::i;:::-;17883:74;;17966:93;18055:3;17966:93;:::i;:::-;18084:2;18079:3;18075:12;18068:19;;17727:366;;;:::o;18099:419::-;18265:4;18303:2;18292:9;18288:18;18280:26;;18352:9;18346:4;18342:20;18338:1;18327:9;18323:17;18316:47;18380:131;18506:4;18380:131;:::i;:::-;18372:139;;18099:419;;;:::o;18524:442::-;18673:4;18711:2;18700:9;18696:18;18688:26;;18724:71;18792:1;18781:9;18777:17;18768:6;18724:71;:::i;:::-;18805:72;18873:2;18862:9;18858:18;18849:6;18805:72;:::i;:::-;18887;18955:2;18944:9;18940:18;18931:6;18887:72;:::i;:::-;18524:442;;;;;;:::o;18972:166::-;19112:18;19108:1;19100:6;19096:14;19089:42;18972:166;:::o;19144:366::-;19286:3;19307:67;19371:2;19366:3;19307:67;:::i;:::-;19300:74;;19383:93;19472:3;19383:93;:::i;:::-;19501:2;19496:3;19492:12;19485:19;;19144:366;;;:::o;19516:419::-;19682:4;19720:2;19709:9;19705:18;19697:26;;19769:9;19763:4;19759:20;19755:1;19744:9;19740:17;19733:47;19797:131;19923:4;19797:131;:::i;:::-;19789:139;;19516:419;;;:::o;19941:180::-;19989:77;19986:1;19979:88;20086:4;20083:1;20076:15;20110:4;20107:1;20100:15;20127:191;20167:3;20186:20;20204:1;20186:20;:::i;:::-;20181:25;;20220:20;20238:1;20220:20;:::i;:::-;20215:25;;20263:1;20260;20256:9;20249:16;;20284:3;20281:1;20278:10;20275:36;;;20291:18;;:::i;:::-;20275:36;20127:191;;;;:::o

Swarm Source

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