ETH Price: $2,578.41 (-16.92%)
 

Overview

Max Total Supply

7,660,796,322,699.1745 ELON

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
0 ELON

Value
$0.00
0x80db158ec0de7814ad1d80095076916c5f92ddc5
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:
WrappedElon

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 7 : WrappedElon.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable2Step.sol";

/**
 * @title WrappedElon
 * @dev This contract provides a way to wrap and unwrap ELON tokens into a new ERC20 token.
 *      It allows users to deposit ELON tokens and receive an equivalent amount of WrappedElon tokens,
 *      and vice versa. The new token uses a lower precision, which is useful for bridging the asset
 *      to other chains that don't support token amounts higher than max uint64.
 */
contract WrappedElon is ERC20, Ownable2Step {
    // The original ELON token contract address.
    ERC20 private constant ELON = ERC20(0x761D38e5ddf6ccf6Cf7c55759d5210750B5D60F3);

    // The minimum amount of ELON that can be wrapped
    uint256 private constant MIN_ELON_AMOUNT = 100_000_000_000_000;

    // Flags to control the wrap and unwrap functionality.
    bool public wrapEnabled = true;
    bool public unwrapEnabled = true;

    // Events for logging wrap and unwrap actions.
    event Wrap(address addr, uint256 elonAmount, uint256 wrappedAmount);
    event Unwrap(address addr, uint256 elonAmount, uint256 wrappedAmount);

    // Events for changing enabled states
    event WrapEnabled(bool enabled);
    event UnwrapEnabled(bool enabled);

    /**
     * @dev Sets the name and symbol for the WrappedElon token.
     */
    constructor() ERC20("Dogelon", "ELON") {}

    /**
     * @dev Overrides the decimals function to set a fixed decimal count.
     * @return uint8 The number of decimals used to get its user representation.
     */
    function decimals() public view virtual override returns (uint8) {
        return 4;
    }

    /**
     * @dev Allows users to wrap their ELON tokens into WrappedElon tokens.
     * @param elonAmount The amount of ELON tokens to be wrapped.
     */
    function wrap(uint256 elonAmount) external {
        require(wrapEnabled, "Wrapping currently disabled");
        require(elonAmount >= MIN_ELON_AMOUNT, "Can only wrap 0.0001 ELON or greater");
        uint256 wrappedAmount = elonAmount / MIN_ELON_AMOUNT;
        uint256 wrappableElon = wrappedAmount * MIN_ELON_AMOUNT;
        ELON.transferFrom(msg.sender, address(this), wrappableElon);
        _mint(msg.sender, wrappedAmount);
        emit Wrap(msg.sender, wrappableElon, wrappedAmount);
    }

    /**
     * @dev Allows users to unwrap their WrappedElon tokens back into the original ELON tokens.
     * @param wrappedAmount The amount of WrappedElon tokens to be unwrapped.
     */
    function unwrap(uint256 wrappedAmount) external {
        require(unwrapEnabled, "Unwrapping currently disabled");
        require(wrappedAmount > 0, "Cannot unwrap zero tokens");
        uint256 elonAmount = wrappedAmount * MIN_ELON_AMOUNT;
        _burn(msg.sender, wrappedAmount);
        ELON.transfer(msg.sender, elonAmount);
        emit Unwrap(msg.sender, elonAmount, wrappedAmount);
    }

    /**
     * @dev Allows the contract owner to enable or disable the wrap and unwrap functionality.
     * @param _wrapEnabled The new state of the wrap functionality.
     * @param _unwrapEnabled The new state of the unwrap functionality.
     */
    function setEnabledState(bool _wrapEnabled, bool _unwrapEnabled) external onlyOwner {
        if (wrapEnabled != _wrapEnabled) {
            wrapEnabled = _wrapEnabled;
            emit WrapEnabled(_wrapEnabled);
        }
        if (unwrapEnabled != _unwrapEnabled) {
            unwrapEnabled = _unwrapEnabled;
            emit UnwrapEnabled(_unwrapEnabled);
        }
    }
}

File 2 of 7 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.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 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}.
     *
     * 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 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 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

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

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

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

    /**
     * @dev Hook that is called 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 3 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

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

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

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

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

File 4 of 7 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

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

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

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

File 5 of 7 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 6 of 7 : Ownable2Step.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)

pragma solidity ^0.8.0;

import "./Ownable.sol";

/**
 * @dev Contract module which provides 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} and {acceptOwnership}.
 *
 * This module is used through inheritance. It will make available all functions
 * from parent (Ownable).
 */
abstract contract Ownable2Step is Ownable {
    address private _pendingOwner;

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

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

    /**
     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual override onlyOwner {
        _pendingOwner = newOwner;
        emit OwnershipTransferStarted(owner(), newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual override {
        delete _pendingOwner;
        super._transferOwnership(newOwner);
    }

    /**
     * @dev The new owner accepts the ownership transfer.
     */
    function acceptOwnership() public virtual {
        address sender = _msgSender();
        require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner");
        _transferOwnership(sender);
    }
}

File 7 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.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;

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

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

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

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

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

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

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

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

Settings
{
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"elonAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wrappedAmount","type":"uint256"}],"name":"Unwrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"UnwrapEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"elonAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wrappedAmount","type":"uint256"}],"name":"Wrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"WrapEnabled","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":"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":[],"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":"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":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_wrapEnabled","type":"bool"},{"internalType":"bool","name":"_unwrapEnabled","type":"bool"}],"name":"setEnabledState","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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wrappedAmount","type":"uint256"}],"name":"unwrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unwrapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"elonAmount","type":"uint256"}],"name":"wrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040526001600660146101000a81548160ff0219169083151502179055506001600660156101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600781526020017f446f67656c6f6e000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f454c4f4e000000000000000000000000000000000000000000000000000000008152508160039081620000c5919062000481565b508060049081620000d7919062000481565b505050620000fa620000ee6200010060201b60201c565b6200010860201b60201c565b62000568565b600033905090565b600660006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556200013e816200014160201b60201c565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028957607f821691505b6020821081036200029f576200029e62000241565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ca565b620003158683620002ca565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003626200035c62000356846200032d565b62000337565b6200032d565b9050919050565b6000819050919050565b6200037e8362000341565b620003966200038d8262000369565b848454620002d7565b825550505050565b600090565b620003ad6200039e565b620003ba81848462000373565b505050565b5b81811015620003e257620003d6600082620003a3565b600181019050620003c0565b5050565b601f8211156200043157620003fb81620002a5565b6200040684620002ba565b8101602085101562000416578190505b6200042e6200042585620002ba565b830182620003bf565b50505b505050565b600082821c905092915050565b6000620004566000198460080262000436565b1980831691505092915050565b600062000471838362000443565b9150826002028217905092915050565b6200048c8262000207565b67ffffffffffffffff811115620004a857620004a762000212565b5b620004b4825462000270565b620004c1828285620003e6565b600060209050601f831160018114620004f95760008415620004e4578287015190505b620004f0858262000463565b86555062000560565b601f1984166200050986620002a5565b60005b8281101562000533578489015182556001820191506020850194506020810190506200050c565b868310156200055357848901516200054f601f89168262000443565b8355505b6001600288020188555050505b505050505050565b6124c680620005786000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806379ba5097116100b8578063a9059cbb1161007c578063a9059cbb1461032e578063dd62ed3e1461035e578063de0e9a3e1461038e578063e30c3978146103aa578063ea598cb0146103c8578063f2fde38b146103e457610137565b806379ba50971461029c5780638da5cb5b146102a65780638ea3efc5146102c457806395d89b41146102e0578063a457c2d7146102fe57610137565b806323b872dd116100ff57806323b872dd146101e4578063313ce56714610214578063395093511461023257806370a0823114610262578063715018a61461029257610137565b8063066c75921461013c57806306fdde031461015a578063095ea7b3146101785780630caae310146101a857806318160ddd146101c6575b600080fd5b610144610400565b604051610151919061168c565b60405180910390f35b610162610413565b60405161016f9190611737565b60405180910390f35b610192600480360381019061018d91906117f2565b6104a5565b60405161019f919061168c565b60405180910390f35b6101b06104c8565b6040516101bd919061168c565b60405180910390f35b6101ce6104db565b6040516101db9190611841565b60405180910390f35b6101fe60048036038101906101f9919061185c565b6104e5565b60405161020b919061168c565b60405180910390f35b61021c610514565b60405161022991906118cb565b60405180910390f35b61024c600480360381019061024791906117f2565b61051d565b604051610259919061168c565b60405180910390f35b61027c600480360381019061027791906118e6565b610554565b6040516102899190611841565b60405180910390f35b61029a61059c565b005b6102a46105b0565b005b6102ae61063d565b6040516102bb9190611922565b60405180910390f35b6102de60048036038101906102d99190611969565b610667565b005b6102e861074b565b6040516102f59190611737565b60405180910390f35b610318600480360381019061031391906117f2565b6107dd565b604051610325919061168c565b60405180910390f35b610348600480360381019061034391906117f2565b610854565b604051610355919061168c565b60405180910390f35b610378600480360381019061037391906119a9565b610877565b6040516103859190611841565b60405180910390f35b6103a860048036038101906103a391906119e9565b6108fe565b005b6103b2610a82565b6040516103bf9190611922565b60405180910390f35b6103e260048036038101906103dd91906119e9565b610aac565b005b6103fe60048036038101906103f991906118e6565b610c4f565b005b600660159054906101000a900460ff1681565b60606003805461042290611a45565b80601f016020809104026020016040519081016040528092919081815260200182805461044e90611a45565b801561049b5780601f106104705761010080835404028352916020019161049b565b820191906000526020600020905b81548152906001019060200180831161047e57829003601f168201915b5050505050905090565b6000806104b0610cfc565b90506104bd818585610d04565b600191505092915050565b600660149054906101000a900460ff1681565b6000600254905090565b6000806104f0610cfc565b90506104fd858285610ecd565b610508858585610f59565b60019150509392505050565b60006004905090565b600080610528610cfc565b905061054981858561053a8589610877565b6105449190611aa5565b610d04565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105a46111cf565b6105ae600061124d565b565b60006105ba610cfc565b90508073ffffffffffffffffffffffffffffffffffffffff166105db610a82565b73ffffffffffffffffffffffffffffffffffffffff1614610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890611b4b565b60405180910390fd5b61063a8161124d565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61066f6111cf565b811515600660149054906101000a900460ff161515146106db5781600660146101000a81548160ff0219169083151502179055507fd75188b6b1214063a71065320768477350073d96d4ab355cc9454f997c301a9b826040516106d2919061168c565b60405180910390a15b801515600660159054906101000a900460ff161515146107475780600660156101000a81548160ff0219169083151502179055507fc76c8844e2517387f1004f869e1658b8872a1997449ec7dc754e72ed8d67aca88160405161073e919061168c565b60405180910390a15b5050565b60606004805461075a90611a45565b80601f016020809104026020016040519081016040528092919081815260200182805461078690611a45565b80156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b5050505050905090565b6000806107e8610cfc565b905060006107f68286610877565b90508381101561083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611bdd565b60405180910390fd5b6108488286868403610d04565b60019250505092915050565b60008061085f610cfc565b905061086c818585610f59565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660159054906101000a900460ff1661094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490611c49565b60405180910390fd5b60008111610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611cb5565b60405180910390fd5b6000655af3107a4000826109a49190611cd5565b90506109b0338361127e565b73761d38e5ddf6ccf6cf7c55759d5210750b5d60f373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016109ff929190611d17565b6020604051808303816000875af1158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611d55565b507fe8e8d3915b94f03b4f3342716334ae94bd6f36775da7b263c908889b93d0574b338284604051610a7693929190611d82565b60405180910390a15050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660149054906101000a900460ff16610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af290611e05565b60405180910390fd5b655af3107a4000811015610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b90611e97565b60405180910390fd5b6000655af3107a400082610b589190611ee6565b90506000655af3107a400082610b6e9190611cd5565b905073761d38e5ddf6ccf6cf7c55759d5210750b5d60f373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610bc193929190611f17565b6020604051808303816000875af1158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c049190611d55565b50610c0f338361144b565b7f18a5ed48bb0a697c64a5aef8f28cec1f29ab01da27a45c5f835099781ef1ea46338284604051610c4293929190611d82565b60405180910390a1505050565b610c576111cf565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16610cb761063d565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90611fc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd990612052565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ec09190611841565b60405180910390a3505050565b6000610ed98484610877565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f535781811015610f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3c906120be565b60405180910390fd5b610f528484848403610d04565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf90612150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102e906121e2565b60405180910390fd5b6110428383836115a1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612274565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111b69190611841565b60405180910390a36111c98484846115a6565b50505050565b6111d7610cfc565b73ffffffffffffffffffffffffffffffffffffffff166111f561063d565b73ffffffffffffffffffffffffffffffffffffffff161461124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611242906122e0565b60405180910390fd5b565b600660006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561127b816115ab565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612372565b60405180910390fd5b6112f9826000836115a1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612404565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114329190611841565b60405180910390a3611446836000846115a6565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612470565b60405180910390fd5b6114c6600083836115a1565b80600260008282546114d89190611aa5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115899190611841565b60405180910390a361159d600083836115a6565b5050565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008115159050919050565b61168681611671565b82525050565b60006020820190506116a1600083018461167d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116e15780820151818401526020810190506116c6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611709826116a7565b61171381856116b2565b93506117238185602086016116c3565b61172c816116ed565b840191505092915050565b6000602082019050818103600083015261175181846116fe565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117898261175e565b9050919050565b6117998161177e565b81146117a457600080fd5b50565b6000813590506117b681611790565b92915050565b6000819050919050565b6117cf816117bc565b81146117da57600080fd5b50565b6000813590506117ec816117c6565b92915050565b6000806040838503121561180957611808611759565b5b6000611817858286016117a7565b9250506020611828858286016117dd565b9150509250929050565b61183b816117bc565b82525050565b60006020820190506118566000830184611832565b92915050565b60008060006060848603121561187557611874611759565b5b6000611883868287016117a7565b9350506020611894868287016117a7565b92505060406118a5868287016117dd565b9150509250925092565b600060ff82169050919050565b6118c5816118af565b82525050565b60006020820190506118e060008301846118bc565b92915050565b6000602082840312156118fc576118fb611759565b5b600061190a848285016117a7565b91505092915050565b61191c8161177e565b82525050565b60006020820190506119376000830184611913565b92915050565b61194681611671565b811461195157600080fd5b50565b6000813590506119638161193d565b92915050565b600080604083850312156119805761197f611759565b5b600061198e85828601611954565b925050602061199f85828601611954565b9150509250929050565b600080604083850312156119c0576119bf611759565b5b60006119ce858286016117a7565b92505060206119df858286016117a7565b9150509250929050565b6000602082840312156119ff576119fe611759565b5b6000611a0d848285016117dd565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a5d57607f821691505b602082108103611a7057611a6f611a16565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ab0826117bc565b9150611abb836117bc565b9250828201905080821115611ad357611ad2611a76565b5b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000611b356029836116b2565b9150611b4082611ad9565b604082019050919050565b60006020820190508181036000830152611b6481611b28565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611bc76025836116b2565b9150611bd282611b6b565b604082019050919050565b60006020820190508181036000830152611bf681611bba565b9050919050565b7f556e7772617070696e672063757272656e746c792064697361626c6564000000600082015250565b6000611c33601d836116b2565b9150611c3e82611bfd565b602082019050919050565b60006020820190508181036000830152611c6281611c26565b9050919050565b7f43616e6e6f7420756e77726170207a65726f20746f6b656e7300000000000000600082015250565b6000611c9f6019836116b2565b9150611caa82611c69565b602082019050919050565b60006020820190508181036000830152611cce81611c92565b9050919050565b6000611ce0826117bc565b9150611ceb836117bc565b9250828202611cf9816117bc565b91508282048414831517611d1057611d0f611a76565b5b5092915050565b6000604082019050611d2c6000830185611913565b611d396020830184611832565b9392505050565b600081519050611d4f8161193d565b92915050565b600060208284031215611d6b57611d6a611759565b5b6000611d7984828501611d40565b91505092915050565b6000606082019050611d976000830186611913565b611da46020830185611832565b611db16040830184611832565b949350505050565b7f5772617070696e672063757272656e746c792064697361626c65640000000000600082015250565b6000611def601b836116b2565b9150611dfa82611db9565b602082019050919050565b60006020820190508181036000830152611e1e81611de2565b9050919050565b7f43616e206f6e6c79207772617020302e3030303120454c4f4e206f722067726560008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000611e816024836116b2565b9150611e8c82611e25565b604082019050919050565b60006020820190508181036000830152611eb081611e74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ef1826117bc565b9150611efc836117bc565b925082611f0c57611f0b611eb7565b5b828204905092915050565b6000606082019050611f2c6000830186611913565b611f396020830185611913565b611f466040830184611832565b949350505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611faa6024836116b2565b9150611fb582611f4e565b604082019050919050565b60006020820190508181036000830152611fd981611f9d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061203c6022836116b2565b915061204782611fe0565b604082019050919050565b6000602082019050818103600083015261206b8161202f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006120a8601d836116b2565b91506120b382612072565b602082019050919050565b600060208201905081810360008301526120d78161209b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061213a6025836116b2565b9150612145826120de565b604082019050919050565b600060208201905081810360008301526121698161212d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006121cc6023836116b2565b91506121d782612170565b604082019050919050565b600060208201905081810360008301526121fb816121bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061225e6026836116b2565b915061226982612202565b604082019050919050565b6000602082019050818103600083015261228d81612251565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122ca6020836116b2565b91506122d582612294565b602082019050919050565b600060208201905081810360008301526122f9816122bd565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061235c6021836116b2565b915061236782612300565b604082019050919050565b6000602082019050818103600083015261238b8161234f565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006123ee6022836116b2565b91506123f982612392565b604082019050919050565b6000602082019050818103600083015261241d816123e1565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061245a601f836116b2565b915061246582612424565b602082019050919050565b600060208201905081810360008301526124898161244d565b905091905056fea2646970667358221220de5cd1038c009ca5b20f8a4cee05df4dd8972dfa10bdd21bc6b294623c9bd33964736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806379ba5097116100b8578063a9059cbb1161007c578063a9059cbb1461032e578063dd62ed3e1461035e578063de0e9a3e1461038e578063e30c3978146103aa578063ea598cb0146103c8578063f2fde38b146103e457610137565b806379ba50971461029c5780638da5cb5b146102a65780638ea3efc5146102c457806395d89b41146102e0578063a457c2d7146102fe57610137565b806323b872dd116100ff57806323b872dd146101e4578063313ce56714610214578063395093511461023257806370a0823114610262578063715018a61461029257610137565b8063066c75921461013c57806306fdde031461015a578063095ea7b3146101785780630caae310146101a857806318160ddd146101c6575b600080fd5b610144610400565b604051610151919061168c565b60405180910390f35b610162610413565b60405161016f9190611737565b60405180910390f35b610192600480360381019061018d91906117f2565b6104a5565b60405161019f919061168c565b60405180910390f35b6101b06104c8565b6040516101bd919061168c565b60405180910390f35b6101ce6104db565b6040516101db9190611841565b60405180910390f35b6101fe60048036038101906101f9919061185c565b6104e5565b60405161020b919061168c565b60405180910390f35b61021c610514565b60405161022991906118cb565b60405180910390f35b61024c600480360381019061024791906117f2565b61051d565b604051610259919061168c565b60405180910390f35b61027c600480360381019061027791906118e6565b610554565b6040516102899190611841565b60405180910390f35b61029a61059c565b005b6102a46105b0565b005b6102ae61063d565b6040516102bb9190611922565b60405180910390f35b6102de60048036038101906102d99190611969565b610667565b005b6102e861074b565b6040516102f59190611737565b60405180910390f35b610318600480360381019061031391906117f2565b6107dd565b604051610325919061168c565b60405180910390f35b610348600480360381019061034391906117f2565b610854565b604051610355919061168c565b60405180910390f35b610378600480360381019061037391906119a9565b610877565b6040516103859190611841565b60405180910390f35b6103a860048036038101906103a391906119e9565b6108fe565b005b6103b2610a82565b6040516103bf9190611922565b60405180910390f35b6103e260048036038101906103dd91906119e9565b610aac565b005b6103fe60048036038101906103f991906118e6565b610c4f565b005b600660159054906101000a900460ff1681565b60606003805461042290611a45565b80601f016020809104026020016040519081016040528092919081815260200182805461044e90611a45565b801561049b5780601f106104705761010080835404028352916020019161049b565b820191906000526020600020905b81548152906001019060200180831161047e57829003601f168201915b5050505050905090565b6000806104b0610cfc565b90506104bd818585610d04565b600191505092915050565b600660149054906101000a900460ff1681565b6000600254905090565b6000806104f0610cfc565b90506104fd858285610ecd565b610508858585610f59565b60019150509392505050565b60006004905090565b600080610528610cfc565b905061054981858561053a8589610877565b6105449190611aa5565b610d04565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105a46111cf565b6105ae600061124d565b565b60006105ba610cfc565b90508073ffffffffffffffffffffffffffffffffffffffff166105db610a82565b73ffffffffffffffffffffffffffffffffffffffff1614610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890611b4b565b60405180910390fd5b61063a8161124d565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61066f6111cf565b811515600660149054906101000a900460ff161515146106db5781600660146101000a81548160ff0219169083151502179055507fd75188b6b1214063a71065320768477350073d96d4ab355cc9454f997c301a9b826040516106d2919061168c565b60405180910390a15b801515600660159054906101000a900460ff161515146107475780600660156101000a81548160ff0219169083151502179055507fc76c8844e2517387f1004f869e1658b8872a1997449ec7dc754e72ed8d67aca88160405161073e919061168c565b60405180910390a15b5050565b60606004805461075a90611a45565b80601f016020809104026020016040519081016040528092919081815260200182805461078690611a45565b80156107d35780601f106107a8576101008083540402835291602001916107d3565b820191906000526020600020905b8154815290600101906020018083116107b657829003601f168201915b5050505050905090565b6000806107e8610cfc565b905060006107f68286610877565b90508381101561083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290611bdd565b60405180910390fd5b6108488286868403610d04565b60019250505092915050565b60008061085f610cfc565b905061086c818585610f59565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660159054906101000a900460ff1661094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490611c49565b60405180910390fd5b60008111610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611cb5565b60405180910390fd5b6000655af3107a4000826109a49190611cd5565b90506109b0338361127e565b73761d38e5ddf6ccf6cf7c55759d5210750b5d60f373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016109ff929190611d17565b6020604051808303816000875af1158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611d55565b507fe8e8d3915b94f03b4f3342716334ae94bd6f36775da7b263c908889b93d0574b338284604051610a7693929190611d82565b60405180910390a15050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660149054906101000a900460ff16610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af290611e05565b60405180910390fd5b655af3107a4000811015610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b90611e97565b60405180910390fd5b6000655af3107a400082610b589190611ee6565b90506000655af3107a400082610b6e9190611cd5565b905073761d38e5ddf6ccf6cf7c55759d5210750b5d60f373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610bc193929190611f17565b6020604051808303816000875af1158015610be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c049190611d55565b50610c0f338361144b565b7f18a5ed48bb0a697c64a5aef8f28cec1f29ab01da27a45c5f835099781ef1ea46338284604051610c4293929190611d82565b60405180910390a1505050565b610c576111cf565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16610cb761063d565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90611fc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd990612052565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ec09190611841565b60405180910390a3505050565b6000610ed98484610877565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f535781811015610f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3c906120be565b60405180910390fd5b610f528484848403610d04565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf90612150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102e906121e2565b60405180910390fd5b6110428383836115a1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612274565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111b69190611841565b60405180910390a36111c98484846115a6565b50505050565b6111d7610cfc565b73ffffffffffffffffffffffffffffffffffffffff166111f561063d565b73ffffffffffffffffffffffffffffffffffffffff161461124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611242906122e0565b60405180910390fd5b565b600660006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561127b816115ab565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612372565b60405180910390fd5b6112f9826000836115a1565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612404565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114329190611841565b60405180910390a3611446836000846115a6565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612470565b60405180910390fd5b6114c6600083836115a1565b80600260008282546114d89190611aa5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115899190611841565b60405180910390a361159d600083836115a6565b5050565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008115159050919050565b61168681611671565b82525050565b60006020820190506116a1600083018461167d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116e15780820151818401526020810190506116c6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611709826116a7565b61171381856116b2565b93506117238185602086016116c3565b61172c816116ed565b840191505092915050565b6000602082019050818103600083015261175181846116fe565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117898261175e565b9050919050565b6117998161177e565b81146117a457600080fd5b50565b6000813590506117b681611790565b92915050565b6000819050919050565b6117cf816117bc565b81146117da57600080fd5b50565b6000813590506117ec816117c6565b92915050565b6000806040838503121561180957611808611759565b5b6000611817858286016117a7565b9250506020611828858286016117dd565b9150509250929050565b61183b816117bc565b82525050565b60006020820190506118566000830184611832565b92915050565b60008060006060848603121561187557611874611759565b5b6000611883868287016117a7565b9350506020611894868287016117a7565b92505060406118a5868287016117dd565b9150509250925092565b600060ff82169050919050565b6118c5816118af565b82525050565b60006020820190506118e060008301846118bc565b92915050565b6000602082840312156118fc576118fb611759565b5b600061190a848285016117a7565b91505092915050565b61191c8161177e565b82525050565b60006020820190506119376000830184611913565b92915050565b61194681611671565b811461195157600080fd5b50565b6000813590506119638161193d565b92915050565b600080604083850312156119805761197f611759565b5b600061198e85828601611954565b925050602061199f85828601611954565b9150509250929050565b600080604083850312156119c0576119bf611759565b5b60006119ce858286016117a7565b92505060206119df858286016117a7565b9150509250929050565b6000602082840312156119ff576119fe611759565b5b6000611a0d848285016117dd565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a5d57607f821691505b602082108103611a7057611a6f611a16565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ab0826117bc565b9150611abb836117bc565b9250828201905080821115611ad357611ad2611a76565b5b92915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000611b356029836116b2565b9150611b4082611ad9565b604082019050919050565b60006020820190508181036000830152611b6481611b28565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611bc76025836116b2565b9150611bd282611b6b565b604082019050919050565b60006020820190508181036000830152611bf681611bba565b9050919050565b7f556e7772617070696e672063757272656e746c792064697361626c6564000000600082015250565b6000611c33601d836116b2565b9150611c3e82611bfd565b602082019050919050565b60006020820190508181036000830152611c6281611c26565b9050919050565b7f43616e6e6f7420756e77726170207a65726f20746f6b656e7300000000000000600082015250565b6000611c9f6019836116b2565b9150611caa82611c69565b602082019050919050565b60006020820190508181036000830152611cce81611c92565b9050919050565b6000611ce0826117bc565b9150611ceb836117bc565b9250828202611cf9816117bc565b91508282048414831517611d1057611d0f611a76565b5b5092915050565b6000604082019050611d2c6000830185611913565b611d396020830184611832565b9392505050565b600081519050611d4f8161193d565b92915050565b600060208284031215611d6b57611d6a611759565b5b6000611d7984828501611d40565b91505092915050565b6000606082019050611d976000830186611913565b611da46020830185611832565b611db16040830184611832565b949350505050565b7f5772617070696e672063757272656e746c792064697361626c65640000000000600082015250565b6000611def601b836116b2565b9150611dfa82611db9565b602082019050919050565b60006020820190508181036000830152611e1e81611de2565b9050919050565b7f43616e206f6e6c79207772617020302e3030303120454c4f4e206f722067726560008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000611e816024836116b2565b9150611e8c82611e25565b604082019050919050565b60006020820190508181036000830152611eb081611e74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ef1826117bc565b9150611efc836117bc565b925082611f0c57611f0b611eb7565b5b828204905092915050565b6000606082019050611f2c6000830186611913565b611f396020830185611913565b611f466040830184611832565b949350505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611faa6024836116b2565b9150611fb582611f4e565b604082019050919050565b60006020820190508181036000830152611fd981611f9d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061203c6022836116b2565b915061204782611fe0565b604082019050919050565b6000602082019050818103600083015261206b8161202f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006120a8601d836116b2565b91506120b382612072565b602082019050919050565b600060208201905081810360008301526120d78161209b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061213a6025836116b2565b9150612145826120de565b604082019050919050565b600060208201905081810360008301526121698161212d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006121cc6023836116b2565b91506121d782612170565b604082019050919050565b600060208201905081810360008301526121fb816121bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061225e6026836116b2565b915061226982612202565b604082019050919050565b6000602082019050818103600083015261228d81612251565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122ca6020836116b2565b91506122d582612294565b602082019050919050565b600060208201905081810360008301526122f9816122bd565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061235c6021836116b2565b915061236782612300565b604082019050919050565b6000602082019050818103600083015261238b8161234f565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006123ee6022836116b2565b91506123f982612392565b604082019050919050565b6000602082019050818103600083015261241d816123e1565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061245a601f836116b2565b915061246582612424565b602082019050919050565b600060208201905081810360008301526124898161244d565b905091905056fea2646970667358221220de5cd1038c009ca5b20f8a4cee05df4dd8972dfa10bdd21bc6b294623c9bd33964736f6c63430008130033

Deployed Bytecode Sourcemap

580:3038:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;983:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;947:30:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1639:90:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;:::i;:::-;;1734:212:1;;;:::i;:::-;;1201:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3239:377:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2369:102:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2587:396:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;847:99:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1893:498:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1139:178:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;983:32:6;;;;;;;;;;;;;:::o;2158:98:2:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;947:30:6:-;;;;;;;;;;;;;:::o;3255:106:2:-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;1639:90:6:-;1697:5;1721:1;1714:8;;1639:90;:::o;5854:234:2:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1734:212:1:-;1786:14;1803:12;:10;:12::i;:::-;1786:29;;1851:6;1833:24;;:14;:12;:14::i;:::-;:24;;;1825:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;1913:26;1932:6;1913:18;:26::i;:::-;1776:170;1734:212::o;1201:85:0:-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;3239:377:6:-;1094:13:0;:11;:13::i;:::-;3352:12:6::1;3337:27;;:11;;;;;;;;;;;:27;;;3333:128;;3394:12;3380:11;;:26;;;;;;;;;;;;;;;;;;3425:25;3437:12;3425:25;;;;;;:::i;:::-;;;;;;;;3333:128;3491:14;3474:31;;:13;;;;;;;;;;;:31;;;3470:140;;3537:14;3521:13;;:30;;;;;;;;;;;;;;;;;;3570:29;3584:14;3570:29;;;;;;:::i;:::-;;;;;;;;3470:140;3239:377:::0;;:::o;2369:102:2:-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;2587:396:6:-;2653:13;;;;;;;;;;;2645:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2734:1;2718:13;:17;2710:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2775:18;862:19;2796:13;:31;;;;:::i;:::-;2775:52;;2837:32;2843:10;2855:13;2837:5;:32::i;:::-;715:42;2879:13;;;2893:10;2905;2879:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2931:45;2938:10;2950;2962:13;2931:45;;;;;;;;:::i;:::-;;;;;;;;2635:348;2587:396;:::o;847:99:1:-;900:7;926:13;;;;;;;;;;;919:20;;847:99;:::o;1893:498:6:-;1954:11;;;;;;;;;;;1946:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;862:19;2015:10;:29;;2007:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2095:21;862:19;2119:10;:28;;;;:::i;:::-;2095:52;;2157:21;862:19;2181:13;:31;;;;:::i;:::-;2157:55;;715:42;2222:17;;;2240:10;2260:4;2267:13;2222:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2291:32;2297:10;2309:13;2291:5;:32::i;:::-;2338:46;2343:10;2355:13;2370;2338:46;;;;;;;;:::i;:::-;;;;;;;;1936:455;;1893:498;:::o;1139:178:1:-;1094:13:0;:11;:13::i;:::-;1244:8:1::1;1228:13;;:24;;;;;;;;;;;;;;;;;;1301:8;1267:43;;1292:7;:5;:7::i;:::-;1267:43;;;;;;;;;;;;1139:178:::0;:::o;655:96:5:-;708:7;734:10;727:17;;655:96;:::o;10457:340:2:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;1359:130:0:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;1501:153:1:-;1590:13;;1583:20;;;;;;;;;;;1613:34;1638:8;1613:24;:34::i;:::-;1501:153;:::o;9375:659:2:-;9477:1;9458:21;;:7;:21;;;9450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:49;9549:7;9566:1;9570:6;9528:20;:49::i;:::-;9588:22;9613:9;:18;9623:7;9613:18;;;;;;;;;;;;;;;;9588:43;;9667:6;9649:14;:24;;9641:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9784:6;9767:14;:23;9746:9;:18;9756:7;9746:18;;;;;;;;;;;;;;;:44;;;;9899:6;9883:12;;:22;;;;;;;;;;;9957:1;9931:37;;9940:7;9931:37;;;9961:6;9931:37;;;;;;:::i;:::-;;;;;;;;9979:48;9999:7;10016:1;10020:6;9979:19;:48::i;:::-;9440:594;9375:659;;:::o;8520:535::-;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;:49::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;:48::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;7:90:7:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:246::-;795:1;805:113;819:6;816:1;813:13;805:113;;;904:1;899:3;895:11;889:18;885:1;880:3;876:11;869:39;841:2;838:1;834:10;829:15;;805:113;;;952:1;943:6;938:3;934:16;927:27;776:184;714:246;;;:::o;966:102::-;1007:6;1058:2;1054:7;1049:2;1042:5;1038:14;1034:28;1024:38;;966:102;;;:::o;1074:377::-;1162:3;1190:39;1223:5;1190:39;:::i;:::-;1245:71;1309:6;1304:3;1245:71;:::i;:::-;1238:78;;1325:65;1383:6;1378:3;1371:4;1364:5;1360:16;1325:65;:::i;:::-;1415:29;1437:6;1415:29;:::i;:::-;1410:3;1406:39;1399:46;;1166:285;1074:377;;;;:::o;1457:313::-;1570:4;1608:2;1597:9;1593:18;1585:26;;1657:9;1651:4;1647:20;1643:1;1632:9;1628:17;1621:47;1685:78;1758:4;1749:6;1685:78;:::i;:::-;1677:86;;1457:313;;;;:::o;1857:117::-;1966:1;1963;1956:12;2103:126;2140:7;2180:42;2173:5;2169:54;2158:65;;2103:126;;;:::o;2235:96::-;2272:7;2301:24;2319:5;2301:24;:::i;:::-;2290:35;;2235:96;;;:::o;2337:122::-;2410:24;2428:5;2410:24;:::i;:::-;2403:5;2400:35;2390:63;;2449:1;2446;2439:12;2390:63;2337:122;:::o;2465:139::-;2511:5;2549:6;2536:20;2527:29;;2565:33;2592:5;2565:33;:::i;:::-;2465:139;;;;:::o;2610:77::-;2647:7;2676:5;2665:16;;2610:77;;;:::o;2693:122::-;2766:24;2784:5;2766:24;:::i;:::-;2759:5;2756:35;2746:63;;2805:1;2802;2795:12;2746:63;2693:122;:::o;2821:139::-;2867:5;2905:6;2892:20;2883:29;;2921:33;2948:5;2921:33;:::i;:::-;2821:139;;;;:::o;2966:474::-;3034:6;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3344:2;3370:53;3415:7;3406:6;3395:9;3391:22;3370:53;:::i;:::-;3360:63;;3315:118;2966:474;;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::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:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:462::-;5863:6;5871;5920:2;5908:9;5899:7;5895:23;5891:32;5888:119;;;5926:79;;:::i;:::-;5888:119;6046:1;6071:50;6113:7;6104:6;6093:9;6089:22;6071:50;:::i;:::-;6061:60;;6017:114;6170:2;6196:50;6238:7;6229:6;6218:9;6214:22;6196:50;:::i;:::-;6186:60;;6141:115;5801:462;;;;;:::o;6269:474::-;6337:6;6345;6394:2;6382:9;6373:7;6369:23;6365:32;6362:119;;;6400:79;;:::i;:::-;6362:119;6520:1;6545:53;6590:7;6581:6;6570:9;6566:22;6545:53;:::i;:::-;6535:63;;6491:117;6647:2;6673:53;6718:7;6709:6;6698:9;6694:22;6673:53;:::i;:::-;6663:63;;6618:118;6269:474;;;;;:::o;6749:329::-;6808:6;6857:2;6845:9;6836:7;6832:23;6828:32;6825:119;;;6863:79;;:::i;:::-;6825:119;6983:1;7008:53;7053:7;7044:6;7033:9;7029:22;7008:53;:::i;:::-;6998:63;;6954:117;6749:329;;;;:::o;7084:180::-;7132:77;7129:1;7122:88;7229:4;7226:1;7219:15;7253:4;7250:1;7243:15;7270:320;7314:6;7351:1;7345:4;7341:12;7331:22;;7398:1;7392:4;7388:12;7419:18;7409:81;;7475:4;7467:6;7463:17;7453:27;;7409:81;7537:2;7529:6;7526:14;7506:18;7503:38;7500:84;;7556:18;;:::i;:::-;7500:84;7321:269;7270:320;;;:::o;7596:180::-;7644:77;7641:1;7634:88;7741:4;7738:1;7731:15;7765:4;7762:1;7755:15;7782:191;7822:3;7841:20;7859:1;7841:20;:::i;:::-;7836:25;;7875:20;7893:1;7875:20;:::i;:::-;7870:25;;7918:1;7915;7911:9;7904:16;;7939:3;7936:1;7933:10;7930:36;;;7946:18;;:::i;:::-;7930:36;7782:191;;;;:::o;7979:228::-;8119:34;8115:1;8107:6;8103:14;8096:58;8188:11;8183:2;8175:6;8171:15;8164:36;7979:228;:::o;8213:366::-;8355:3;8376:67;8440:2;8435:3;8376:67;:::i;:::-;8369:74;;8452:93;8541:3;8452:93;:::i;:::-;8570:2;8565:3;8561:12;8554:19;;8213:366;;;:::o;8585:419::-;8751:4;8789:2;8778:9;8774:18;8766:26;;8838:9;8832:4;8828:20;8824:1;8813:9;8809:17;8802:47;8866:131;8992:4;8866:131;:::i;:::-;8858:139;;8585:419;;;:::o;9010:224::-;9150:34;9146:1;9138:6;9134:14;9127:58;9219:7;9214:2;9206:6;9202:15;9195:32;9010:224;:::o;9240:366::-;9382:3;9403:67;9467:2;9462:3;9403:67;:::i;:::-;9396:74;;9479:93;9568:3;9479:93;:::i;:::-;9597:2;9592:3;9588:12;9581:19;;9240:366;;;:::o;9612:419::-;9778:4;9816:2;9805:9;9801:18;9793:26;;9865:9;9859:4;9855:20;9851:1;9840:9;9836:17;9829:47;9893:131;10019:4;9893:131;:::i;:::-;9885:139;;9612:419;;;:::o;10037:179::-;10177:31;10173:1;10165:6;10161:14;10154:55;10037:179;:::o;10222:366::-;10364:3;10385:67;10449:2;10444:3;10385:67;:::i;:::-;10378:74;;10461:93;10550:3;10461:93;:::i;:::-;10579:2;10574:3;10570:12;10563:19;;10222:366;;;:::o;10594:419::-;10760:4;10798:2;10787:9;10783:18;10775:26;;10847:9;10841:4;10837:20;10833:1;10822:9;10818:17;10811:47;10875:131;11001:4;10875:131;:::i;:::-;10867:139;;10594:419;;;:::o;11019:175::-;11159:27;11155:1;11147:6;11143:14;11136:51;11019:175;:::o;11200:366::-;11342:3;11363:67;11427:2;11422:3;11363:67;:::i;:::-;11356:74;;11439:93;11528:3;11439:93;:::i;:::-;11557:2;11552:3;11548:12;11541:19;;11200:366;;;:::o;11572:419::-;11738:4;11776:2;11765:9;11761:18;11753:26;;11825:9;11819:4;11815:20;11811:1;11800:9;11796:17;11789:47;11853:131;11979:4;11853:131;:::i;:::-;11845:139;;11572:419;;;:::o;11997:410::-;12037:7;12060:20;12078:1;12060:20;:::i;:::-;12055:25;;12094:20;12112:1;12094:20;:::i;:::-;12089:25;;12149:1;12146;12142:9;12171:30;12189:11;12171:30;:::i;:::-;12160:41;;12350:1;12341:7;12337:15;12334:1;12331:22;12311:1;12304:9;12284:83;12261:139;;12380:18;;:::i;:::-;12261:139;12045:362;11997:410;;;;:::o;12413:332::-;12534:4;12572:2;12561:9;12557:18;12549:26;;12585:71;12653:1;12642:9;12638:17;12629:6;12585:71;:::i;:::-;12666:72;12734:2;12723:9;12719:18;12710:6;12666:72;:::i;:::-;12413:332;;;;;:::o;12751:137::-;12805:5;12836:6;12830:13;12821:22;;12852:30;12876:5;12852:30;:::i;:::-;12751:137;;;;:::o;12894:345::-;12961:6;13010:2;12998:9;12989:7;12985:23;12981:32;12978:119;;;13016:79;;:::i;:::-;12978:119;13136:1;13161:61;13214:7;13205:6;13194:9;13190:22;13161:61;:::i;:::-;13151:71;;13107:125;12894:345;;;;:::o;13245:442::-;13394:4;13432:2;13421:9;13417:18;13409:26;;13445:71;13513:1;13502:9;13498:17;13489:6;13445:71;:::i;:::-;13526:72;13594:2;13583:9;13579:18;13570:6;13526:72;:::i;:::-;13608;13676:2;13665:9;13661:18;13652:6;13608:72;:::i;:::-;13245:442;;;;;;:::o;13693:177::-;13833:29;13829:1;13821:6;13817:14;13810:53;13693:177;:::o;13876:366::-;14018:3;14039:67;14103:2;14098:3;14039:67;:::i;:::-;14032:74;;14115:93;14204:3;14115:93;:::i;:::-;14233:2;14228:3;14224:12;14217:19;;13876:366;;;:::o;14248:419::-;14414:4;14452:2;14441:9;14437:18;14429:26;;14501:9;14495:4;14491:20;14487:1;14476:9;14472:17;14465:47;14529:131;14655:4;14529:131;:::i;:::-;14521:139;;14248:419;;;:::o;14673:223::-;14813:34;14809:1;14801:6;14797:14;14790:58;14882:6;14877:2;14869:6;14865:15;14858:31;14673:223;:::o;14902:366::-;15044:3;15065:67;15129:2;15124:3;15065:67;:::i;:::-;15058:74;;15141:93;15230:3;15141:93;:::i;:::-;15259:2;15254:3;15250:12;15243:19;;14902:366;;;:::o;15274:419::-;15440:4;15478:2;15467:9;15463:18;15455:26;;15527:9;15521:4;15517:20;15513:1;15502:9;15498:17;15491:47;15555:131;15681:4;15555:131;:::i;:::-;15547:139;;15274:419;;;:::o;15699:180::-;15747:77;15744:1;15737:88;15844:4;15841:1;15834:15;15868:4;15865:1;15858:15;15885:185;15925:1;15942:20;15960:1;15942:20;:::i;:::-;15937:25;;15976:20;15994:1;15976:20;:::i;:::-;15971:25;;16015:1;16005:35;;16020:18;;:::i;:::-;16005:35;16062:1;16059;16055:9;16050:14;;15885:185;;;;:::o;16076:442::-;16225:4;16263:2;16252:9;16248:18;16240:26;;16276:71;16344:1;16333:9;16329:17;16320:6;16276:71;:::i;:::-;16357:72;16425:2;16414:9;16410:18;16401:6;16357:72;:::i;:::-;16439;16507:2;16496:9;16492:18;16483:6;16439:72;:::i;:::-;16076:442;;;;;;:::o;16524:223::-;16664:34;16660:1;16652:6;16648:14;16641:58;16733:6;16728:2;16720:6;16716:15;16709:31;16524:223;:::o;16753:366::-;16895:3;16916:67;16980:2;16975:3;16916:67;:::i;:::-;16909:74;;16992:93;17081:3;16992:93;:::i;:::-;17110:2;17105:3;17101:12;17094:19;;16753:366;;;:::o;17125:419::-;17291:4;17329:2;17318:9;17314:18;17306:26;;17378:9;17372:4;17368:20;17364:1;17353:9;17349:17;17342:47;17406:131;17532:4;17406:131;:::i;:::-;17398:139;;17125:419;;;:::o;17550:221::-;17690:34;17686:1;17678:6;17674:14;17667:58;17759:4;17754:2;17746:6;17742:15;17735:29;17550:221;:::o;17777:366::-;17919:3;17940:67;18004:2;17999:3;17940:67;:::i;:::-;17933:74;;18016:93;18105:3;18016:93;:::i;:::-;18134:2;18129:3;18125:12;18118:19;;17777:366;;;:::o;18149:419::-;18315:4;18353:2;18342:9;18338:18;18330:26;;18402:9;18396:4;18392:20;18388:1;18377:9;18373:17;18366:47;18430:131;18556:4;18430:131;:::i;:::-;18422:139;;18149:419;;;:::o;18574:179::-;18714:31;18710:1;18702:6;18698:14;18691:55;18574:179;:::o;18759:366::-;18901:3;18922:67;18986:2;18981:3;18922:67;:::i;:::-;18915:74;;18998:93;19087:3;18998:93;:::i;:::-;19116:2;19111:3;19107:12;19100:19;;18759:366;;;:::o;19131:419::-;19297:4;19335:2;19324:9;19320:18;19312:26;;19384:9;19378:4;19374:20;19370:1;19359:9;19355:17;19348:47;19412:131;19538:4;19412:131;:::i;:::-;19404:139;;19131:419;;;:::o;19556:224::-;19696:34;19692:1;19684:6;19680:14;19673:58;19765:7;19760:2;19752:6;19748:15;19741:32;19556:224;:::o;19786:366::-;19928:3;19949:67;20013:2;20008:3;19949:67;:::i;:::-;19942:74;;20025:93;20114:3;20025:93;:::i;:::-;20143:2;20138:3;20134:12;20127:19;;19786:366;;;:::o;20158:419::-;20324:4;20362:2;20351:9;20347:18;20339:26;;20411:9;20405:4;20401:20;20397:1;20386:9;20382:17;20375:47;20439:131;20565:4;20439:131;:::i;:::-;20431:139;;20158:419;;;:::o;20583:222::-;20723:34;20719:1;20711:6;20707:14;20700:58;20792:5;20787:2;20779:6;20775:15;20768:30;20583:222;:::o;20811:366::-;20953:3;20974:67;21038:2;21033:3;20974:67;:::i;:::-;20967:74;;21050:93;21139:3;21050:93;:::i;:::-;21168:2;21163:3;21159:12;21152:19;;20811:366;;;:::o;21183:419::-;21349:4;21387:2;21376:9;21372:18;21364:26;;21436:9;21430:4;21426:20;21422:1;21411:9;21407:17;21400:47;21464:131;21590:4;21464:131;:::i;:::-;21456:139;;21183:419;;;:::o;21608:225::-;21748:34;21744:1;21736:6;21732:14;21725:58;21817:8;21812:2;21804:6;21800:15;21793:33;21608:225;:::o;21839:366::-;21981:3;22002:67;22066:2;22061:3;22002:67;:::i;:::-;21995:74;;22078:93;22167:3;22078:93;:::i;:::-;22196:2;22191:3;22187:12;22180:19;;21839:366;;;:::o;22211:419::-;22377:4;22415:2;22404:9;22400:18;22392:26;;22464:9;22458:4;22454:20;22450:1;22439:9;22435:17;22428:47;22492:131;22618:4;22492:131;:::i;:::-;22484:139;;22211:419;;;:::o;22636:182::-;22776:34;22772:1;22764:6;22760:14;22753:58;22636:182;:::o;22824:366::-;22966:3;22987:67;23051:2;23046:3;22987:67;:::i;:::-;22980:74;;23063:93;23152:3;23063:93;:::i;:::-;23181:2;23176:3;23172:12;23165:19;;22824:366;;;:::o;23196:419::-;23362:4;23400:2;23389:9;23385:18;23377:26;;23449:9;23443:4;23439:20;23435:1;23424:9;23420:17;23413:47;23477:131;23603:4;23477:131;:::i;:::-;23469:139;;23196:419;;;:::o;23621:220::-;23761:34;23757:1;23749:6;23745:14;23738:58;23830:3;23825:2;23817:6;23813:15;23806:28;23621:220;:::o;23847:366::-;23989:3;24010:67;24074:2;24069:3;24010:67;:::i;:::-;24003:74;;24086:93;24175:3;24086:93;:::i;:::-;24204:2;24199:3;24195:12;24188:19;;23847:366;;;:::o;24219:419::-;24385:4;24423:2;24412:9;24408:18;24400:26;;24472:9;24466:4;24462:20;24458:1;24447:9;24443:17;24436:47;24500:131;24626:4;24500:131;:::i;:::-;24492:139;;24219:419;;;:::o;24644:221::-;24784:34;24780:1;24772:6;24768:14;24761:58;24853:4;24848:2;24840:6;24836:15;24829:29;24644:221;:::o;24871:366::-;25013:3;25034:67;25098:2;25093:3;25034:67;:::i;:::-;25027:74;;25110:93;25199:3;25110:93;:::i;:::-;25228:2;25223:3;25219:12;25212:19;;24871:366;;;:::o;25243:419::-;25409:4;25447:2;25436:9;25432:18;25424:26;;25496:9;25490:4;25486:20;25482:1;25471:9;25467:17;25460:47;25524:131;25650:4;25524:131;:::i;:::-;25516:139;;25243:419;;;:::o;25668:181::-;25808:33;25804:1;25796:6;25792:14;25785:57;25668:181;:::o;25855:366::-;25997:3;26018:67;26082:2;26077:3;26018:67;:::i;:::-;26011:74;;26094:93;26183:3;26094:93;:::i;:::-;26212:2;26207:3;26203:12;26196:19;;25855:366;;;:::o;26227:419::-;26393:4;26431:2;26420:9;26416:18;26408:26;;26480:9;26474:4;26470:20;26466:1;26455:9;26451:17;26444:47;26508:131;26634:4;26508:131;:::i;:::-;26500:139;;26227:419;;;:::o

Swarm Source

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