ETH Price: $3,331.80 (-1.54%)
Gas: 16 Gwei

Token

WEMIX TOKEN (WEMIX)
 

Overview

Max Total Supply

6,397,028.566295818174540245 WEMIX

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
theblue.eth
Balance
0.001204212275856768 WEMIX

Value
$0.00
0xc47a350a67a33bf2d95a655dfe928a237cbc8bcc
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:
AnyswapV6ERC20

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-13
*/

/**
 *Submitted for verification at BscScan.com on 2022-05-20
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity ^0.8.2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract AnyswapV6ERC20 is IERC20 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable override decimals;

    address public immutable underlying;
    bool public constant underlyingIsMinted = false;

    /// @dev Records amount of AnyswapV6ERC20 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;

    // init flag for setting immediate vault, needed for CREATE2 support
    bool private _init;

    // flag to enable/disable swapout vs vault.burn so multiple events are triggered
    bool private _vaultOnly;

    // delay for timelock functions
    uint public constant DELAY = 2 days;

    // set of minters, can be this bridge or other bridges
    mapping(address => bool) public isMinter;
    address[] public minters;

    // primary controller of the token contract
    address public vault;

    address public pendingMinter;
    uint public delayMinter;

    address public pendingVault;
    uint public delayVault;

    modifier onlyAuth() {
        require(isMinter[msg.sender], "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    modifier onlyVault() {
        require(msg.sender == vault, "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    function owner() external view returns (address) {
        return vault;
    }

    function mpc() external view returns (address) {
        return vault;
    }

    function setVaultOnly(bool enabled) external onlyVault {
        _vaultOnly = enabled;
    }

    function initVault(address _vault) external onlyVault {
        require(_init);
        _init = false;
        vault = _vault;
        isMinter[_vault] = true;
        minters.push(_vault);
    }

    function setVault(address _vault) external onlyVault {
        require(_vault != address(0), "AnyswapV6ERC20: address(0)");
        pendingVault = _vault;
        delayVault = block.timestamp + DELAY;
    }

    function applyVault() external onlyVault {
        require(pendingVault != address(0) && block.timestamp >= delayVault);
        vault = pendingVault;

        pendingVault = address(0);
        delayVault = 0;
    }

    function setMinter(address _auth) external onlyVault {
        require(_auth != address(0), "AnyswapV6ERC20: address(0)");
        pendingMinter = _auth;
        delayMinter = block.timestamp + DELAY;
    }

    function applyMinter() external onlyVault {
        require(pendingMinter != address(0) && block.timestamp >= delayMinter);
        isMinter[pendingMinter] = true;
        minters.push(pendingMinter);

        pendingMinter = address(0);
        delayMinter = 0;
    }

    // No time delay revoke minter emergency function
    function revokeMinter(address _auth) external onlyVault {
        isMinter[_auth] = false;
    }

    function getAllMinters() external view returns (address[] memory) {
        return minters;
    }

    function changeVault(address newVault) external onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV6ERC20: address(0)");
        emit LogChangeVault(vault, newVault, block.timestamp);
        vault = newVault;
        pendingVault = address(0);
        delayVault = 0;
        return true;
    }

    function mint(address to, uint256 amount) external onlyAuth returns (bool) {
        _mint(to, amount);
        return true;
    }

    function burn(address from, uint256 amount) external onlyAuth returns (bool) {
        _burn(from, amount);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) external onlyAuth returns (bool) {
        if (underlying != address(0) && IERC20(underlying).balanceOf(address(this)) >= amount) {
            IERC20(underlying).safeTransfer(account, amount);
        } else {
            _mint(account, amount);
        }
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, address bindaddr) external returns (bool) {
        require(!_vaultOnly, "AnyswapV6ERC20: vaultOnly");
        require(bindaddr != address(0), "AnyswapV6ERC20: address(0)");
        if (underlying != address(0) && balanceOf[msg.sender] < amount) {
            IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        } else {
            _burn(msg.sender, amount);
        }
        emit LogSwapout(msg.sender, bindaddr, amount);
        return true;
    }

    /// @dev Records number of AnyswapV6ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;

    event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, address indexed bindaddr, uint amount);

    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        underlying = _underlying;
        if (_underlying != address(0)) {
            require(_decimals == IERC20(_underlying).decimals());
        }

        // Use init to allow for CREATE2 accross all chains
        _init = true;

        // Disable/Enable swapout for v1 tokens vs mint/burn for v3 tokens
        _vaultOnly = false;

        vault = _vault;
    }

    /// @dev Returns the total supply of AnyswapV6ERC20 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function deposit() external returns (uint) {
        uint _amount = IERC20(underlying).balanceOf(msg.sender);
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        return _deposit(_amount, msg.sender);
    }

    function deposit(uint amount) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, msg.sender);
    }

    function deposit(uint amount, address to) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, to);
    }

    function depositVault(uint amount, address to) external onlyVault returns (uint) {
        return _deposit(amount, to);
    }

    function _deposit(uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _mint(to, amount);
        return amount;
    }

    function withdraw() external returns (uint) {
        return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender);
    }

    function withdraw(uint amount) external returns (uint) {
        return _withdraw(msg.sender, amount, msg.sender);
    }

    function withdraw(uint amount, address to) external returns (uint) {
        return _withdraw(msg.sender, amount, to);
    }

    function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) {
        return _withdraw(from, amount, to);
    }

    function _withdraw(address from, uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _burn(from, amount);
        IERC20(underlying).safeTransfer(to, amount);
        return 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
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(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 {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 balance = balanceOf[account];
        require(balance >= amount, "ERC20: burn amount exceeds balance");

        balanceOf[account] = balance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV6ERC20 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from caller's account to account (`to`).
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV6ERC20 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of AnyswapV6ERC20 token.
    ///   - `from` account must have approved caller to spend at least `value` of AnyswapV6ERC20 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "AnyswapV6ERC20: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }

        uint256 balance = balanceOf[from];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","type":"address"}],"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":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"underlyingIsMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b506040516200444a3803806200444a8339818101604052810190620000379190620004d7565b84600090805190602001906200004f929190620001e7565b50836001908051906020019062000068929190620001e7565b508260ff1660808160ff16815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000165578173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200012c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015291906200059d565b60ff168360ff16146200016457600080fd5b5b6001600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000633565b828054620001f590620005fe565b90600052602060002090601f01602090048101928262000219576000855562000265565b82601f106200023457805160ff191683800117855562000265565b8280016001018555821562000265579182015b828111156200026457825182559160200191906001019062000247565b5b50905062000274919062000278565b5090565b5b808211156200029357600081600090555060010162000279565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200030082620002b5565b810181811067ffffffffffffffff82111715620003225762000321620002c6565b5b80604052505050565b60006200033762000297565b9050620003458282620002f5565b919050565b600067ffffffffffffffff821115620003685762000367620002c6565b5b6200037382620002b5565b9050602081019050919050565b60005b83811015620003a057808201518184015260208101905062000383565b83811115620003b0576000848401525b50505050565b6000620003cd620003c7846200034a565b6200032b565b905082815260208101848484011115620003ec57620003eb620002b0565b5b620003f984828562000380565b509392505050565b600082601f830112620004195762000418620002ab565b5b81516200042b848260208601620003b6565b91505092915050565b600060ff82169050919050565b6200044c8162000434565b81146200045857600080fd5b50565b6000815190506200046c8162000441565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200049f8262000472565b9050919050565b620004b18162000492565b8114620004bd57600080fd5b50565b600081519050620004d181620004a6565b92915050565b600080600080600060a08688031215620004f657620004f5620002a1565b5b600086015167ffffffffffffffff811115620005175762000516620002a6565b5b620005258882890162000401565b955050602086015167ffffffffffffffff811115620005495762000548620002a6565b5b620005578882890162000401565b94505060406200056a888289016200045b565b93505060606200057d88828901620004c0565b92505060806200059088828901620004c0565b9150509295509295909350565b600060208284031215620005b657620005b5620002a1565b5b6000620005c6848285016200045b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200061757607f821691505b6020821081036200062d576200062c620005cf565b5b50919050565b60805160a051613d8f620006bb60003960008181611712015281816117a0015281816119cd01528181611a2601528181611eec015281816121890152818161222b015281816124fb0152818161253c015281816125e301528181612860015281816128b70152818161290901528181612d180152612d6f015260006112ea0152613d8f6000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f24451461079d578063dd62ed3e146107a7578063ec126c77146107d7578063f75c266414610807578063fbfa77cf14610825578063fca3b5aa146108435761025c565b8063c30812401461070b578063c4b740f514610729578063cfbd488514610745578063d0e30db014610761578063d6c797511461077f5761025c565b8063a045442c1161010a578063a045442c1461062d578063a9059cbb1461064b578063aa271e1a1461067b578063b6b55f25146106ab578063bebbf4d0146106db5761025c565b806387689e28146105855780638da5cb5b146105a357806391c5df49146105c157806395d89b41146105df5780639dc29fac146105fd5761025c565b80633ccfd60b116101df5780636817031b116101a35780636817031b1461049d57806369b41170146104b95780636e553f65146104d75780636f307dc31461050757806370a08231146105255780638623ec7b146105555761025c565b80633ccfd60b146103d157806340c10f19146103ef57806352113ba71461041f57806360e232a91461043d578063628d6cba1461046d5761025c565b806318160ddd1161022657806318160ddd1461031957806323b872dd146103375780632e1a7d4d146103675780632ebe3fbb14610397578063313ce567146103b35761025c565b806239d6ec14610261578062f714ce1461029157806306fdde03146102c1578063095ea7b3146102df5780630d707df81461030f575b600080fd5b61027b6004803603810190610276919061309e565b61085f565b6040516102889190613100565b60405180910390f35b6102ab60048036038101906102a6919061311b565b610905565b6040516102b89190613100565b60405180910390f35b6102c961091a565b6040516102d691906131f4565b60405180910390f35b6102f960048036038101906102f49190613216565b6109a8565b6040516103069190613271565b60405180910390f35b610317610a9a565b005b610321610cdf565b60405161032e9190613100565b60405180910390f35b610351600480360381019061034c919061328c565b610ce9565b60405161035e9190613271565b60405180910390f35b610381600480360381019061037c91906132df565b611111565b60405161038e9190613100565b60405180910390f35b6103b160048036038101906103ac919061330c565b611125565b005b6103bb6112e8565b6040516103c89190613355565b60405180910390f35b6103d961130c565b6040516103e69190613100565b60405180910390f35b61040960048036038101906104049190613216565b61135d565b6040516104169190613271565b60405180910390f35b6104276113ff565b604051610434919061337f565b60405180910390f35b6104576004803603810190610452919061330c565b611425565b6040516104649190613271565b60405180910390f35b6104876004803603810190610482919061311b565b611637565b6040516104949190613271565b60405180910390f35b6104b760048036038101906104b2919061330c565b611864565b005b6104c16119bc565b6040516104ce9190613100565b60405180910390f35b6104f160048036038101906104ec919061311b565b6119c3565b6040516104fe9190613100565b60405180910390f35b61050f611a24565b60405161051c919061337f565b60405180910390f35b61053f600480360381019061053a919061330c565b611a48565b60405161054c9190613100565b60405180910390f35b61056f600480360381019061056a91906132df565b611a60565b60405161057c919061337f565b60405180910390f35b61058d611a9f565b60405161059a9190613100565b60405180910390f35b6105ab611aa5565b6040516105b8919061337f565b60405180910390f35b6105c9611acf565b6040516105d6919061337f565b60405180910390f35b6105e7611af5565b6040516105f491906131f4565b60405180910390f35b61061760048036038101906106129190613216565b611b83565b6040516106249190613271565b60405180910390f35b610635611c25565b6040516106429190613458565b60405180910390f35b61066560048036038101906106609190613216565b611cb3565b6040516106729190613271565b60405180910390f35b6106956004803603810190610690919061330c565b611ec2565b6040516106a29190613271565b60405180910390f35b6106c560048036038101906106c091906132df565b611ee2565b6040516106d29190613100565b60405180910390f35b6106f560048036038101906106f0919061311b565b611f42565b6040516107029190613100565b60405180910390f35b610713611fe6565b6040516107209190613100565b60405180910390f35b610743600480360381019061073e91906134a6565b611fec565b005b61075f600480360381019061075a919061330c565b612099565b005b610769612184565b6040516107769190613100565b60405180910390f35b610787612280565b6040516107949190613271565b60405180910390f35b6107a5612285565b005b6107c160048036038101906107bc91906134d3565b61242e565b6040516107ce9190613100565b60405180910390f35b6107f160048036038101906107ec9190613549565b612453565b6040516107fe9190613271565b60405180910390f35b61080f612691565b60405161081c919061337f565b60405180910390f35b61082d6126bb565b60405161083a919061337f565b60405180910390f35b61085d6004803603810190610858919061330c565b6126e1565b005b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e8906135e8565b60405180910390fd5b6108fc848484612839565b90509392505050565b6000610912338484612839565b905092915050565b6000805461092790613637565b80601f016020809104026020016040519081016040528092919081815260200182805461095390613637565b80156109a05780601f10610975576101008083540402835291602001916109a0565b820191906000526020600020905b81548152906001019060200180831161098357829003601f168201915b505050505081565b600081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a889190613100565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610b8b57506009544210155b610b9457600080fd5b600160056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600981905550565b6000600354905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d5357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b610d5c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610f74576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f725782811015610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e71906136da565b60405180910390fd5b60008382610e889190613729565b905080600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f689190613100565b60405180910390a3505b505b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff2906137cf565b60405180910390fd5b82816110079190613729565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109991906137ef565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110fd9190613100565b60405180910390a360019150509392505050565b600061111e338333612839565b9050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac906135e8565b60405180910390fd5b600460009054906101000a900460ff166111ce57600080fd5b6000600460006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061135833600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205433612839565b905090565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e2906135e8565b60405180910390fd5b6113f58383612957565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613891565b60405180910390fd5b428273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac60405160405180910390a481600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b8190555060019050919050565b6000600460019054906101000a900460ff1615611689576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611680906138fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef90613891565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015611793575082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156117ea576117e53330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b6117f5565b6117f43384612b28565b5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888856040516118529190613100565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118eb906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613891565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a300426119b391906137ef565b600b8190555050565b6202a30081565b6000611a123330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b611a1c8383612cf1565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026020528060005260406000206000915090505481565b60068181548110611a7057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054611b0290613637565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2e90613637565b8015611b7b5780601f10611b5057610100808354040283529160200191611b7b565b820191906000526020600020905b815481529060010190602001808311611b5e57829003601f168201915b505050505081565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c08906135e8565b60405180910390fd5b611c1b8383612b28565b6001905092915050565b60606006805480602002602001604051908101604052809291908181526020018280548015611ca957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611c5f575b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d1d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611d2657600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da4906137cf565b60405180910390fd5b8281611db99190613729565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e4b91906137ef565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eaf9190613100565b60405180910390a3600191505092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000611f313330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b611f3b8233612cf1565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb906135e8565b60405180910390fd5b611fde8383612cf1565b905092915050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612073906135e8565b60405180910390fd5b80600460016101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612120906135e8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016121e0919061337f565b602060405180830381865afa1580156121fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122219190613932565b90506122703330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b61227a8133612cf1565b91505090565b600081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230c906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156123765750600b544210155b61237f57600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b81905550565b600c602052816000526040600020602052806000526040600020600091509150505481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d8906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16141580156125d75750817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612593919061337f565b602060405180830381865afa1580156125b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d49190613932565b10155b1561262c5761262783837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612dc39092919063ffffffff16565b612637565b6126368383612957565b5b8273ffffffffffffffffffffffffffffffffffffffff16847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161267e9190613100565b60405180910390a3600190509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612768906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d790613891565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a3004261283091906137ef565b60098190555050565b6000801561284657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16141580156128ef57503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b6128f857600080fd5b6129028484612b28565b61294d82847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612dc39092919063ffffffff16565b8290509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bd906139ab565b60405180910390fd5b80600360008282546129d891906137ef565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a2e91906137ef565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a939190613100565b60405180910390a35050565b612b22846323b872dd60e01b858585604051602401612ac0939291906139cb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e49565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8e90613a74565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1590613b06565b60405180910390fd5b8181612c2a9190613729565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254612c7f9190613729565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ce49190613100565b60405180910390a3505050565b60008015612cfe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015612da757503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b612db057600080fd5b612dba8284612957565b82905092915050565b612e448363a9059cbb60e01b8484604051602401612de2929190613b26565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e49565b505050565b612e688273ffffffffffffffffffffffffffffffffffffffff16612fba565b612ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9e90613b9b565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051612ecf9190613c02565b6000604051808303816000865af19150503d8060008114612f0c576040519150601f19603f3d011682016040523d82523d6000602084013e612f11565b606091505b509150915081612f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4d90613c65565b60405180910390fd5b600081511115612fb45780806020019051810190612f749190613c9a565b612fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612faa90613d39565b60405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015612ffc5750808214155b92505050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130358261300a565b9050919050565b6130458161302a565b811461305057600080fd5b50565b6000813590506130628161303c565b92915050565b6000819050919050565b61307b81613068565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6000806000606084860312156130b7576130b6613005565b5b60006130c586828701613053565b93505060206130d686828701613089565b92505060406130e786828701613053565b9150509250925092565b6130fa81613068565b82525050565b600060208201905061311560008301846130f1565b92915050565b6000806040838503121561313257613131613005565b5b600061314085828601613089565b925050602061315185828601613053565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561319557808201518184015260208101905061317a565b838111156131a4576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c68261315b565b6131d08185613166565b93506131e0818560208601613177565b6131e9816131aa565b840191505092915050565b6000602082019050818103600083015261320e81846131bb565b905092915050565b6000806040838503121561322d5761322c613005565b5b600061323b85828601613053565b925050602061324c85828601613089565b9150509250929050565b60008115159050919050565b61326b81613256565b82525050565b60006020820190506132866000830184613262565b92915050565b6000806000606084860312156132a5576132a4613005565b5b60006132b386828701613053565b93505060206132c486828701613053565b92505060406132d586828701613089565b9150509250925092565b6000602082840312156132f5576132f4613005565b5b600061330384828501613089565b91505092915050565b60006020828403121561332257613321613005565b5b600061333084828501613053565b91505092915050565b600060ff82169050919050565b61334f81613339565b82525050565b600060208201905061336a6000830184613346565b92915050565b6133798161302a565b82525050565b60006020820190506133946000830184613370565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133cf8161302a565b82525050565b60006133e183836133c6565b60208301905092915050565b6000602082019050919050565b60006134058261339a565b61340f81856133a5565b935061341a836133b6565b8060005b8381101561344b57815161343288826133d5565b975061343d836133ed565b92505060018101905061341e565b5085935050505092915050565b6000602082019050818103600083015261347281846133fa565b905092915050565b61348381613256565b811461348e57600080fd5b50565b6000813590506134a08161347a565b92915050565b6000602082840312156134bc576134bb613005565b5b60006134ca84828501613491565b91505092915050565b600080604083850312156134ea576134e9613005565b5b60006134f885828601613053565b925050602061350985828601613053565b9150509250929050565b6000819050919050565b61352681613513565b811461353157600080fd5b50565b6000813590506135438161351d565b92915050565b60008060006060848603121561356257613561613005565b5b600061357086828701613534565b935050602061358186828701613053565b925050604061359286828701613089565b9150509250925092565b7f416e7973776170563645524332303a20464f5242494444454e00000000000000600082015250565b60006135d2601983613166565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061364f57607f821691505b60208210810361366257613661613608565b5b50919050565b7f416e7973776170563645524332303a207265717565737420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b60006136c4602983613166565b91506136cf82613668565b604082019050919050565b600060208201905081810360008301526136f3816136b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061373482613068565b915061373f83613068565b925082821015613752576137516136fa565b5b828203905092915050565b7f416e7973776170563645524332303a207472616e7366657220616d6f756e742060008201527f657863656564732062616c616e63650000000000000000000000000000000000602082015250565b60006137b9602f83613166565b91506137c48261375d565b604082019050919050565b600060208201905081810360008301526137e8816137ac565b9050919050565b60006137fa82613068565b915061380583613068565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561383a576138396136fa565b5b828201905092915050565b7f416e7973776170563645524332303a2061646472657373283029000000000000600082015250565b600061387b601a83613166565b915061388682613845565b602082019050919050565b600060208201905081810360008301526138aa8161386e565b9050919050565b7f416e7973776170563645524332303a207661756c744f6e6c7900000000000000600082015250565b60006138e7601983613166565b91506138f2826138b1565b602082019050919050565b60006020820190508181036000830152613916816138da565b9050919050565b60008151905061392c81613072565b92915050565b60006020828403121561394857613947613005565b5b60006139568482850161391d565b91505092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613995601f83613166565b91506139a08261395f565b602082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b60006060820190506139e06000830186613370565b6139ed6020830185613370565b6139fa60408301846130f1565b949350505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a5e602183613166565b9150613a6982613a02565b604082019050919050565b60006020820190508181036000830152613a8d81613a51565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613af0602283613166565b9150613afb82613a94565b604082019050919050565b60006020820190508181036000830152613b1f81613ae3565b9050919050565b6000604082019050613b3b6000830185613370565b613b4860208301846130f1565b9392505050565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400600082015250565b6000613b85601f83613166565b9150613b9082613b4f565b602082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b600081519050919050565b600081905092915050565b6000613bdc82613bbb565b613be68185613bc6565b9350613bf6818560208601613177565b80840191505092915050565b6000613c0e8284613bd1565b915081905092915050565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564600082015250565b6000613c4f602083613166565b9150613c5a82613c19565b602082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b600081519050613c948161347a565b92915050565b600060208284031215613cb057613caf613005565b5b6000613cbe84828501613c85565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613d23602a83613166565b9150613d2e82613cc7565b604082019050919050565b60006020820190508181036000830152613d5281613d16565b905091905056fea2646970667358221220737d1bd288ef7d62a30b589eee5475f67e2bcdec6b8d300e1d67c9858276145f64736f6c634300080e003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000b57454d495820544f4b454e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000557454d4958000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f24451461079d578063dd62ed3e146107a7578063ec126c77146107d7578063f75c266414610807578063fbfa77cf14610825578063fca3b5aa146108435761025c565b8063c30812401461070b578063c4b740f514610729578063cfbd488514610745578063d0e30db014610761578063d6c797511461077f5761025c565b8063a045442c1161010a578063a045442c1461062d578063a9059cbb1461064b578063aa271e1a1461067b578063b6b55f25146106ab578063bebbf4d0146106db5761025c565b806387689e28146105855780638da5cb5b146105a357806391c5df49146105c157806395d89b41146105df5780639dc29fac146105fd5761025c565b80633ccfd60b116101df5780636817031b116101a35780636817031b1461049d57806369b41170146104b95780636e553f65146104d75780636f307dc31461050757806370a08231146105255780638623ec7b146105555761025c565b80633ccfd60b146103d157806340c10f19146103ef57806352113ba71461041f57806360e232a91461043d578063628d6cba1461046d5761025c565b806318160ddd1161022657806318160ddd1461031957806323b872dd146103375780632e1a7d4d146103675780632ebe3fbb14610397578063313ce567146103b35761025c565b806239d6ec14610261578062f714ce1461029157806306fdde03146102c1578063095ea7b3146102df5780630d707df81461030f575b600080fd5b61027b6004803603810190610276919061309e565b61085f565b6040516102889190613100565b60405180910390f35b6102ab60048036038101906102a6919061311b565b610905565b6040516102b89190613100565b60405180910390f35b6102c961091a565b6040516102d691906131f4565b60405180910390f35b6102f960048036038101906102f49190613216565b6109a8565b6040516103069190613271565b60405180910390f35b610317610a9a565b005b610321610cdf565b60405161032e9190613100565b60405180910390f35b610351600480360381019061034c919061328c565b610ce9565b60405161035e9190613271565b60405180910390f35b610381600480360381019061037c91906132df565b611111565b60405161038e9190613100565b60405180910390f35b6103b160048036038101906103ac919061330c565b611125565b005b6103bb6112e8565b6040516103c89190613355565b60405180910390f35b6103d961130c565b6040516103e69190613100565b60405180910390f35b61040960048036038101906104049190613216565b61135d565b6040516104169190613271565b60405180910390f35b6104276113ff565b604051610434919061337f565b60405180910390f35b6104576004803603810190610452919061330c565b611425565b6040516104649190613271565b60405180910390f35b6104876004803603810190610482919061311b565b611637565b6040516104949190613271565b60405180910390f35b6104b760048036038101906104b2919061330c565b611864565b005b6104c16119bc565b6040516104ce9190613100565b60405180910390f35b6104f160048036038101906104ec919061311b565b6119c3565b6040516104fe9190613100565b60405180910390f35b61050f611a24565b60405161051c919061337f565b60405180910390f35b61053f600480360381019061053a919061330c565b611a48565b60405161054c9190613100565b60405180910390f35b61056f600480360381019061056a91906132df565b611a60565b60405161057c919061337f565b60405180910390f35b61058d611a9f565b60405161059a9190613100565b60405180910390f35b6105ab611aa5565b6040516105b8919061337f565b60405180910390f35b6105c9611acf565b6040516105d6919061337f565b60405180910390f35b6105e7611af5565b6040516105f491906131f4565b60405180910390f35b61061760048036038101906106129190613216565b611b83565b6040516106249190613271565b60405180910390f35b610635611c25565b6040516106429190613458565b60405180910390f35b61066560048036038101906106609190613216565b611cb3565b6040516106729190613271565b60405180910390f35b6106956004803603810190610690919061330c565b611ec2565b6040516106a29190613271565b60405180910390f35b6106c560048036038101906106c091906132df565b611ee2565b6040516106d29190613100565b60405180910390f35b6106f560048036038101906106f0919061311b565b611f42565b6040516107029190613100565b60405180910390f35b610713611fe6565b6040516107209190613100565b60405180910390f35b610743600480360381019061073e91906134a6565b611fec565b005b61075f600480360381019061075a919061330c565b612099565b005b610769612184565b6040516107769190613100565b60405180910390f35b610787612280565b6040516107949190613271565b60405180910390f35b6107a5612285565b005b6107c160048036038101906107bc91906134d3565b61242e565b6040516107ce9190613100565b60405180910390f35b6107f160048036038101906107ec9190613549565b612453565b6040516107fe9190613271565b60405180910390f35b61080f612691565b60405161081c919061337f565b60405180910390f35b61082d6126bb565b60405161083a919061337f565b60405180910390f35b61085d6004803603810190610858919061330c565b6126e1565b005b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e8906135e8565b60405180910390fd5b6108fc848484612839565b90509392505050565b6000610912338484612839565b905092915050565b6000805461092790613637565b80601f016020809104026020016040519081016040528092919081815260200182805461095390613637565b80156109a05780601f10610975576101008083540402835291602001916109a0565b820191906000526020600020905b81548152906001019060200180831161098357829003601f168201915b505050505081565b600081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a889190613100565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610b8b57506009544210155b610b9457600080fd5b600160056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600981905550565b6000600354905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d5357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b610d5c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610f74576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f725782811015610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e71906136da565b60405180910390fd5b60008382610e889190613729565b905080600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f689190613100565b60405180910390a3505b505b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff2906137cf565b60405180910390fd5b82816110079190613729565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109991906137ef565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110fd9190613100565b60405180910390a360019150509392505050565b600061111e338333612839565b9050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac906135e8565b60405180910390fd5b600460009054906101000a900460ff166111ce57600080fd5b6000600460006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000001281565b600061135833600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205433612839565b905090565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e2906135e8565b60405180910390fd5b6113f58383612957565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613891565b60405180910390fd5b428273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac60405160405180910390a481600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b8190555060019050919050565b6000600460019054906101000a900460ff1615611689576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611680906138fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef90613891565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015611793575082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156117ea576117e53330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b6117f5565b6117f43384612b28565b5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888856040516118529190613100565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118eb906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613891565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a300426119b391906137ef565b600b8190555050565b6202a30081565b6000611a123330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b611a1c8383612cf1565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026020528060005260406000206000915090505481565b60068181548110611a7057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054611b0290613637565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2e90613637565b8015611b7b5780601f10611b5057610100808354040283529160200191611b7b565b820191906000526020600020905b815481529060010190602001808311611b5e57829003601f168201915b505050505081565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c08906135e8565b60405180910390fd5b611c1b8383612b28565b6001905092915050565b60606006805480602002602001604051908101604052809291908181526020018280548015611ca957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611c5f575b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d1d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611d2657600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da4906137cf565b60405180910390fd5b8281611db99190613729565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e4b91906137ef565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eaf9190613100565b60405180910390a3600191505092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000611f313330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b611f3b8233612cf1565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb906135e8565b60405180910390fd5b611fde8383612cf1565b905092915050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612073906135e8565b60405180910390fd5b80600460016101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612120906135e8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016121e0919061337f565b602060405180830381865afa1580156121fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122219190613932565b90506122703330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612a9f909392919063ffffffff16565b61227a8133612cf1565b91505090565b600081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230c906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156123765750600b544210155b61237f57600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b81905550565b600c602052816000526040600020602052806000526040600020600091509150505481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d8906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16141580156125d75750817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612593919061337f565b602060405180830381865afa1580156125b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d49190613932565b10155b1561262c5761262783837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612dc39092919063ffffffff16565b612637565b6126368383612957565b5b8273ffffffffffffffffffffffffffffffffffffffff16847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161267e9190613100565b60405180910390a3600190509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612768906135e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d790613891565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a3004261283091906137ef565b60098190555050565b6000801561284657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16141580156128ef57503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b6128f857600080fd5b6129028484612b28565b61294d82847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612dc39092919063ffffffff16565b8290509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bd906139ab565b60405180910390fd5b80600360008282546129d891906137ef565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a2e91906137ef565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a939190613100565b60405180910390a35050565b612b22846323b872dd60e01b858585604051602401612ac0939291906139cb565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e49565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8e90613a74565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1590613b06565b60405180910390fd5b8181612c2a9190613729565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254612c7f9190613729565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ce49190613100565b60405180910390a3505050565b60008015612cfe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015612da757503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b612db057600080fd5b612dba8284612957565b82905092915050565b612e448363a9059cbb60e01b8484604051602401612de2929190613b26565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e49565b505050565b612e688273ffffffffffffffffffffffffffffffffffffffff16612fba565b612ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9e90613b9b565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051612ecf9190613c02565b6000604051808303816000865af19150503d8060008114612f0c576040519150601f19603f3d011682016040523d82523d6000602084013e612f11565b606091505b509150915081612f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4d90613c65565b60405180910390fd5b600081511115612fb45780806020019051810190612f749190613c9a565b612fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612faa90613d39565b60405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015612ffc5750808214155b92505050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130358261300a565b9050919050565b6130458161302a565b811461305057600080fd5b50565b6000813590506130628161303c565b92915050565b6000819050919050565b61307b81613068565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6000806000606084860312156130b7576130b6613005565b5b60006130c586828701613053565b93505060206130d686828701613089565b92505060406130e786828701613053565b9150509250925092565b6130fa81613068565b82525050565b600060208201905061311560008301846130f1565b92915050565b6000806040838503121561313257613131613005565b5b600061314085828601613089565b925050602061315185828601613053565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561319557808201518184015260208101905061317a565b838111156131a4576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c68261315b565b6131d08185613166565b93506131e0818560208601613177565b6131e9816131aa565b840191505092915050565b6000602082019050818103600083015261320e81846131bb565b905092915050565b6000806040838503121561322d5761322c613005565b5b600061323b85828601613053565b925050602061324c85828601613089565b9150509250929050565b60008115159050919050565b61326b81613256565b82525050565b60006020820190506132866000830184613262565b92915050565b6000806000606084860312156132a5576132a4613005565b5b60006132b386828701613053565b93505060206132c486828701613053565b92505060406132d586828701613089565b9150509250925092565b6000602082840312156132f5576132f4613005565b5b600061330384828501613089565b91505092915050565b60006020828403121561332257613321613005565b5b600061333084828501613053565b91505092915050565b600060ff82169050919050565b61334f81613339565b82525050565b600060208201905061336a6000830184613346565b92915050565b6133798161302a565b82525050565b60006020820190506133946000830184613370565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133cf8161302a565b82525050565b60006133e183836133c6565b60208301905092915050565b6000602082019050919050565b60006134058261339a565b61340f81856133a5565b935061341a836133b6565b8060005b8381101561344b57815161343288826133d5565b975061343d836133ed565b92505060018101905061341e565b5085935050505092915050565b6000602082019050818103600083015261347281846133fa565b905092915050565b61348381613256565b811461348e57600080fd5b50565b6000813590506134a08161347a565b92915050565b6000602082840312156134bc576134bb613005565b5b60006134ca84828501613491565b91505092915050565b600080604083850312156134ea576134e9613005565b5b60006134f885828601613053565b925050602061350985828601613053565b9150509250929050565b6000819050919050565b61352681613513565b811461353157600080fd5b50565b6000813590506135438161351d565b92915050565b60008060006060848603121561356257613561613005565b5b600061357086828701613534565b935050602061358186828701613053565b925050604061359286828701613089565b9150509250925092565b7f416e7973776170563645524332303a20464f5242494444454e00000000000000600082015250565b60006135d2601983613166565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061364f57607f821691505b60208210810361366257613661613608565b5b50919050565b7f416e7973776170563645524332303a207265717565737420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b60006136c4602983613166565b91506136cf82613668565b604082019050919050565b600060208201905081810360008301526136f3816136b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061373482613068565b915061373f83613068565b925082821015613752576137516136fa565b5b828203905092915050565b7f416e7973776170563645524332303a207472616e7366657220616d6f756e742060008201527f657863656564732062616c616e63650000000000000000000000000000000000602082015250565b60006137b9602f83613166565b91506137c48261375d565b604082019050919050565b600060208201905081810360008301526137e8816137ac565b9050919050565b60006137fa82613068565b915061380583613068565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561383a576138396136fa565b5b828201905092915050565b7f416e7973776170563645524332303a2061646472657373283029000000000000600082015250565b600061387b601a83613166565b915061388682613845565b602082019050919050565b600060208201905081810360008301526138aa8161386e565b9050919050565b7f416e7973776170563645524332303a207661756c744f6e6c7900000000000000600082015250565b60006138e7601983613166565b91506138f2826138b1565b602082019050919050565b60006020820190508181036000830152613916816138da565b9050919050565b60008151905061392c81613072565b92915050565b60006020828403121561394857613947613005565b5b60006139568482850161391d565b91505092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613995601f83613166565b91506139a08261395f565b602082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b60006060820190506139e06000830186613370565b6139ed6020830185613370565b6139fa60408301846130f1565b949350505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a5e602183613166565b9150613a6982613a02565b604082019050919050565b60006020820190508181036000830152613a8d81613a51565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613af0602283613166565b9150613afb82613a94565b604082019050919050565b60006020820190508181036000830152613b1f81613ae3565b9050919050565b6000604082019050613b3b6000830185613370565b613b4860208301846130f1565b9392505050565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400600082015250565b6000613b85601f83613166565b9150613b9082613b4f565b602082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b600081519050919050565b600081905092915050565b6000613bdc82613bbb565b613be68185613bc6565b9350613bf6818560208601613177565b80840191505092915050565b6000613c0e8284613bd1565b915081905092915050565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564600082015250565b6000613c4f602083613166565b9150613c5a82613c19565b602082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b600081519050613c948161347a565b92915050565b600060208284031215613cb057613caf613005565b5b6000613cbe84828501613c85565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613d23602a83613166565b9150613d2e82613cc7565b604082019050919050565b60006020820190508181036000830152613d5281613d16565b905091905056fea2646970667358221220737d1bd288ef7d62a30b589eee5475f67e2bcdec6b8d300e1d67c9858276145f64736f6c634300080e0033

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000b57454d495820544f4b454e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000557454d4958000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): WEMIX TOKEN
Arg [1] : _symbol (string): WEMIX
Arg [2] : _decimals (uint8): 18
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xfA9dA51631268A30Ec3DDd1CcBf46c65FAD99251

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [6] : 57454d495820544f4b454e000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 57454d4958000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2760:11904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10101:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9967:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2834:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12071:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5238:275;;;:::i;:::-;;8557:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13795:866;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9837:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2886:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9703:126;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6124:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3788:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5789:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6823:522;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4572:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3459:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9118:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2936:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3105:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:24;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3822:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4087:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3721:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2859:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6265:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5682:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12588:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8921:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3756:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4261:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5576:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8667:246;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2978:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4790:222;;;:::i;:::-;;7514:75;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6410:405;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4175:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3692:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5020:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10101:149;10191:4;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10215:27:::1;10225:4;10231:6;10239:2;10215:9;:27::i;:::-;10208:34;;10101:149:::0;;;;;:::o;9967:126::-;10028:4;10052:33;10062:10;10074:6;10082:2;10052:9;:33::i;:::-;10045:40;;9967:126;;;;:::o;2834:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12071:215::-;12147:4;12197:5;12164:9;:21;12174:10;12164:21;;;;;;;;;;;;;;;:30;12186:7;12164:30;;;;;;;;;;;;;;;:38;;;;12239:7;12218:36;;12227:10;12218:36;;;12248:5;12218:36;;;;;;:::i;:::-;;;;;;;;12274:4;12267:11;;12071:215;;;;:::o;5238:275::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5324:1:::1;5299:27;;:13;;;;;;;;;;;:27;;;;:61;;;;;5349:11;;5330:15;:30;;5299:61;5291:70;;;::::0;::::1;;5398:4;5372:8;:23;5381:13;;;;;;;;;;;5372:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5413:7;5426:13;;;;;;;;;;;5413:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5477:1;5453:13;;:26;;;;;;;;;;;;;;;;;;5504:1;5490:11;:15;;;;5238:275::o:0;8557:102::-;8612:7;8639:12;;8632:19;;8557:102;:::o;13795:866::-;13885:4;13924:1;13910:16;;:2;:16;;;;:39;;;;;13944:4;13930:19;;:2;:19;;;;13910:39;13902:48;;;;;;13973:10;13965:18;;:4;:18;;;13961:416;;14000:15;14018:9;:15;14028:4;14018:15;;;;;;;;;;;;;;;:27;14034:10;14018:27;;;;;;;;;;;;;;;;14000:45;;14075:17;14064:7;:28;14060:306;;14132:5;14121:7;:16;;14113:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14202:15;14230:5;14220:7;:15;;;;:::i;:::-;14202:33;;14284:7;14254:9;:15;14264:4;14254:15;;;;;;;;;;;;;;;:27;14270:10;14254:27;;;;;;;;;;;;;;;:37;;;;14330:10;14315:35;;14324:4;14315:35;;;14342:7;14315:35;;;;;;:::i;:::-;;;;;;;;14094:272;14060:306;13985:392;13961:416;14389:15;14407:9;:15;14417:4;14407:15;;;;;;;;;;;;;;;;14389:33;;14452:5;14441:7;:16;;14433:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14550:5;14540:7;:15;;;;:::i;:::-;14522:9;:15;14532:4;14522:15;;;;;;;;;;;;;;;:33;;;;14583:5;14566:9;:13;14576:2;14566:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;14619:2;14604:25;;14613:4;14604:25;;;14623:5;14604:25;;;;;;:::i;:::-;;;;;;;;14649:4;14642:11;;;13795:866;;;;;:::o;9837:122::-;9886:4;9910:41;9920:10;9932:6;9940:10;9910:9;:41::i;:::-;9903:48;;9837:122;;;:::o;4363:201::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4436:5:::1;;;;;;;;;;;4428:14;;;::::0;::::1;;4461:5;4453;;:13;;;;;;;;;;;;;;;;;;4485:6;4477:5;;:14;;;;;;;;;;;;;;;;;;4521:4;4502:8;:16;4511:6;4502:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;4536:7;4549:6;4536:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4363:201:::0;:::o;2886:41::-;;;:::o;9703:126::-;9741:4;9765:56;9775:10;9787:9;:21;9797:10;9787:21;;;;;;;;;;;;;;;;9810:10;9765:9;:56::i;:::-;9758:63;;9703:126;:::o;6124:133::-;6193:4;3892:8;:20;3901:10;3892:20;;;;;;;;;;;;;;;;;;;;;;;;;3884:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6210:17:::1;6216:2;6220:6;6210:5;:17::i;:::-;6245:4;6238:11;;6124:133:::0;;;;:::o;3788:27::-;;;;;;;;;;;;;:::o;5789:327::-;5856:4;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5901:1:::1;5881:22;;:8;:22;;::::0;5873:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5982:15;5972:8;5950:48;;5965:5;;;;;;;;;;;5950:48;;;;;;;;;;;;6017:8;6009:5;;:16;;;;;;;;;;;;;;;;;;6059:1;6036:12;;:25;;;;;;;;;;;;;;;;;;6085:1;6072:10;:14;;;;6104:4;6097:11;;5789:327:::0;;;:::o;6823:522::-;6892:4;6918:10;;;;;;;;;;;6917:11;6909:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6997:1;6977:22;;:8;:22;;;6969:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7067:1;7045:24;;:10;:24;;;;:58;;;;;7097:6;7073:9;:21;7083:10;7073:21;;;;;;;;;;;;;;;;:30;7045:58;7041:219;;;7120:70;7156:10;7176:4;7183:6;7127:10;7120:35;;;;:70;;;;;;:::i;:::-;7041:219;;;7223:25;7229:10;7241:6;7223:5;:25::i;:::-;7041:219;7298:8;7275:40;;7286:10;7275:40;;;7308:6;7275:40;;;;;;:::i;:::-;;;;;;;;7333:4;7326:11;;6823:522;;;;:::o;4572:210::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4662:1:::1;4644:20;;:6;:20;;::::0;4636:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4721:6;4706:12;;:21;;;;;;;;;;;;;;;;;;3488:6;4751:15;:23;;;;:::i;:::-;4738:10;:36;;;;4572:210:::0;:::o;3459:35::-;3488:6;3459:35;:::o;9118:193::-;9178:4;9195:70;9231:10;9251:4;9258:6;9202:10;9195:35;;;;:70;;;;;;:::i;:::-;9283:20;9292:6;9300:2;9283:8;:20::i;:::-;9276:27;;9118:193;;;;:::o;2936:35::-;;;:::o;3105:54::-;;;;;;;;;;;;;;;;;:::o;3610:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3822:22::-;;;;:::o;4087:80::-;4127:7;4154:5;;;;;;;;;;;4147:12;;4087:80;:::o;3721:28::-;;;;;;;;;;;;;:::o;2859:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6265:137::-;6336:4;3892:8;:20;3901:10;3892:20;;;;;;;;;;;;;;;;;;;;;;;;;3884:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6353:19:::1;6359:4;6365:6;6353:5;:19::i;:::-;6390:4;6383:11;;6265:137:::0;;;;:::o;5682:99::-;5730:16;5766:7;5759:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5682:99;:::o;12588:438::-;12660:4;12699:1;12685:16;;:2;:16;;;;:39;;;;;12719:4;12705:19;;:2;:19;;;;12685:39;12677:48;;;;;;12736:15;12754:9;:21;12764:10;12754:21;;;;;;;;;;;;;;;;12736:39;;12805:5;12794:7;:16;;12786:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12909:5;12899:7;:15;;;;:::i;:::-;12875:9;:21;12885:10;12875:21;;;;;;;;;;;;;;;:39;;;;12942:5;12925:9;:13;12935:2;12925:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;12984:2;12963:31;;12972:10;12963:31;;;12988:5;12963:31;;;;;;:::i;:::-;;;;;;;;13014:4;13007:11;;;12588:438;;;;:::o;3563:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;8921:189::-;8969:4;8986:70;9022:10;9042:4;9049:6;8993:10;8986:35;;;;:70;;;;;;:::i;:::-;9074:28;9083:6;9091:10;9074:8;:28::i;:::-;9067:35;;8921:189;;;:::o;9319:127::-;9394:4;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9418:20:::1;9427:6;9435:2;9418:8;:20::i;:::-;9411:27;;9319:127:::0;;;;:::o;3756:23::-;;;;:::o;4261:94::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4340:7:::1;4327:10;;:20;;;;;;;;;;;;;;;;;;4261:94:::0;:::o;5576:98::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5661:5:::1;5643:8;:15;5652:5;5643:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;5576:98:::0;:::o;8667:246::-;8704:4;8721:12;8743:10;8736:28;;;8765:10;8736:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8721:55;;8787:71;8823:10;8843:4;8850:7;8794:10;8787:35;;;;:71;;;;;;:::i;:::-;8876:29;8885:7;8894:10;8876:8;:29::i;:::-;8869:36;;;8667:246;:::o;2978:47::-;3020:5;2978:47;:::o;4790:222::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4874:1:::1;4850:26;;:12;;;;;;;;;;;:26;;;;:59;;;;;4899:10;;4880:15;:29;;4850:59;4842:68;;;::::0;::::1;;4929:12;;;;;;;;;;;4921:5;;:20;;;;;;;;;;;;;;;;;;4977:1;4954:12;;:25;;;;;;;;;;;;;;;;;;5003:1;4990:10;:14;;;;4790:222::o:0;7514:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6410:405::-;6502:4;3892:8;:20;3901:10;3892:20;;;;;;;;;;;;;;;;;;;;;;;;;3884:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6545:1:::1;6523:24;;:10;:24;;;;:81;;;;;6598:6;6558:10;6551:28;;;6588:4;6551:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;6523:81;6519:217;;;6621:48;6653:7;6662:6;6628:10;6621:31;;;;:48;;;;;:::i;:::-;6519:217;;;6702:22;6708:7;6717:6;6702:5;:22::i;:::-;6519:217;6769:7;6751:34;;6761:6;6751:34;6778:6;6751:34;;;;;;:::i;:::-;;;;;;;;6803:4;6796:11;;6410:405:::0;;;;;:::o;4175:78::-;4213:7;4240:5;;;;;;;;;;;4233:12;;4175:78;:::o;3692:20::-;;;;;;;;;;;;;:::o;5020:210::-;4024:5;;;;;;;;;;;4010:19;;:10;:19;;;4002:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5109:1:::1;5092:19;;:5;:19;;::::0;5084:58:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5169:5;5153:13;;:21;;;;;;;;;;;;;;;;;;3488:6;5199:15;:23;;;;:::i;:::-;5185:11;:37;;;;5020:210:::0;:::o;10258:312::-;10334:4;3020:5;10359:19;10351:28;;;;;;10420:1;10398:24;;:10;:24;;;;:55;;;;;10448:4;10426:27;;:10;:27;;;;10398:55;10390:64;;;;;;10465:19;10471:4;10477:6;10465:5;:19::i;:::-;10495:43;10527:2;10531:6;10502:10;10495:31;;;;:43;;;;;:::i;:::-;10556:6;10549:13;;10258:312;;;;;:::o;10851:268::-;10946:1;10927:21;;:7;:21;;;10919:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11013:6;10997:12;;:22;;;;;;;:::i;:::-;;;;;;;;11052:6;11030:9;:18;11040:7;11030:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;11095:7;11074:37;;11091:1;11074:37;;;11104:6;11074:37;;;;;;:::i;:::-;;;;;;;;10851:268;;:::o;1596:201::-;1694:95;1713:5;1743:27;;;1772:4;1778:2;1782:5;1720:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:18;:95::i;:::-;1596:201;;;;:::o;11451:403::-;11546:1;11527:21;;:7;:21;;;11519:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11599:15;11617:9;:18;11627:7;11617:18;;;;;;;;;;;;;;;;11599:36;;11665:6;11654:7;:17;;11646:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11754:6;11744:7;:16;;;;:::i;:::-;11723:9;:18;11733:7;11723:18;;;;;;;;;;;;;;;:37;;;;11787:6;11771:12;;:22;;;;;;;:::i;:::-;;;;;;;;11835:1;11809:37;;11818:7;11809:37;;;11839:6;11809:37;;;;;;:::i;:::-;;;;;;;;11508:346;11451:403;;:::o;9454:241::-;9515:4;3020:5;9540:19;9532:28;;;;;;9601:1;9579:24;;:10;:24;;;;:55;;;;;9629:4;9607:27;;:10;:27;;;;9579:55;9571:64;;;;;;9646:17;9652:2;9656:6;9646:5;:17::i;:::-;9681:6;9674:13;;9454:241;;;;:::o;1415:173::-;1495:85;1514:5;1544:23;;;1569:2;1573:5;1521:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:18;:85::i;:::-;1415:173;;;:::o;2155:598::-;2243:27;2251:5;2243:25;;;:27::i;:::-;2235:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2380:12;2394:23;2429:5;2421:19;;2441:4;2421:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:67;;;;2465:7;2457:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2546:1;2526:10;:17;:21;2522:224;;;2668:10;2657:30;;;;;;;;;;;;:::i;:::-;2649:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2522:224;2224:529;;2155:598;;:::o;975:374::-;1035:4;1052:16;1079:19;1101:66;1079:88;;;;1270:7;1258:20;1246:32;;1310:3;1298:15;;:8;:15;;:42;;;;;1329:11;1317:8;:23;;1298:42;1290:51;;;;975:374;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:619::-;1274:6;1282;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;;:::i;:::-;1307:119;1465:1;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1197:619;;;;;:::o;1822:118::-;1909:24;1927:5;1909:24;:::i;:::-;1904:3;1897:37;1822:118;;:::o;1946:222::-;2039:4;2077:2;2066:9;2062:18;2054:26;;2090:71;2158:1;2147:9;2143:17;2134:6;2090:71;:::i;:::-;1946:222;;;;:::o;2174:474::-;2242:6;2250;2299:2;2287:9;2278:7;2274:23;2270:32;2267:119;;;2305:79;;:::i;:::-;2267:119;2425:1;2450:53;2495:7;2486:6;2475:9;2471:22;2450:53;:::i;:::-;2440:63;;2396:117;2552:2;2578:53;2623:7;2614:6;2603:9;2599:22;2578:53;:::i;:::-;2568:63;;2523:118;2174:474;;;;;:::o;2654:99::-;2706:6;2740:5;2734:12;2724:22;;2654:99;;;:::o;2759:169::-;2843:11;2877:6;2872:3;2865:19;2917:4;2912:3;2908:14;2893:29;;2759:169;;;;:::o;2934:307::-;3002:1;3012:113;3026:6;3023:1;3020:13;3012:113;;;3111:1;3106:3;3102:11;3096:18;3092:1;3087:3;3083:11;3076:39;3048:2;3045:1;3041:10;3036:15;;3012:113;;;3143:6;3140:1;3137:13;3134:101;;;3223:1;3214:6;3209:3;3205:16;3198:27;3134:101;2983:258;2934:307;;;:::o;3247:102::-;3288:6;3339:2;3335:7;3330:2;3323:5;3319:14;3315:28;3305:38;;3247:102;;;:::o;3355:364::-;3443:3;3471:39;3504:5;3471:39;:::i;:::-;3526:71;3590:6;3585:3;3526:71;:::i;:::-;3519:78;;3606:52;3651:6;3646:3;3639:4;3632:5;3628:16;3606:52;:::i;:::-;3683:29;3705:6;3683:29;:::i;:::-;3678:3;3674:39;3667:46;;3447:272;3355:364;;;;:::o;3725:313::-;3838:4;3876:2;3865:9;3861:18;3853:26;;3925:9;3919:4;3915:20;3911:1;3900:9;3896:17;3889:47;3953:78;4026:4;4017:6;3953:78;:::i;:::-;3945:86;;3725:313;;;;:::o;4044:474::-;4112:6;4120;4169:2;4157:9;4148:7;4144:23;4140:32;4137:119;;;4175:79;;:::i;:::-;4137:119;4295:1;4320:53;4365:7;4356:6;4345:9;4341:22;4320:53;:::i;:::-;4310:63;;4266:117;4422:2;4448:53;4493:7;4484:6;4473:9;4469:22;4448:53;:::i;:::-;4438:63;;4393:118;4044:474;;;;;:::o;4524:90::-;4558:7;4601:5;4594:13;4587:21;4576:32;;4524:90;;;:::o;4620:109::-;4701:21;4716:5;4701:21;:::i;:::-;4696:3;4689:34;4620:109;;:::o;4735:210::-;4822:4;4860:2;4849:9;4845:18;4837:26;;4873:65;4935:1;4924:9;4920:17;4911:6;4873:65;:::i;:::-;4735:210;;;;:::o;4951:619::-;5028:6;5036;5044;5093:2;5081:9;5072:7;5068:23;5064:32;5061:119;;;5099:79;;:::i;:::-;5061:119;5219:1;5244:53;5289:7;5280:6;5269:9;5265:22;5244:53;:::i;:::-;5234:63;;5190:117;5346:2;5372:53;5417:7;5408:6;5397:9;5393:22;5372:53;:::i;:::-;5362:63;;5317:118;5474:2;5500:53;5545:7;5536:6;5525:9;5521:22;5500:53;:::i;:::-;5490:63;;5445:118;4951:619;;;;;:::o;5576:329::-;5635:6;5684:2;5672:9;5663:7;5659:23;5655:32;5652:119;;;5690:79;;:::i;:::-;5652:119;5810:1;5835:53;5880:7;5871:6;5860:9;5856:22;5835:53;:::i;:::-;5825:63;;5781:117;5576:329;;;;:::o;5911:::-;5970:6;6019:2;6007:9;5998:7;5994:23;5990:32;5987:119;;;6025:79;;:::i;:::-;5987:119;6145:1;6170:53;6215:7;6206:6;6195:9;6191:22;6170:53;:::i;:::-;6160:63;;6116:117;5911:329;;;;:::o;6246:86::-;6281:7;6321:4;6314:5;6310:16;6299:27;;6246:86;;;:::o;6338:112::-;6421:22;6437:5;6421:22;:::i;:::-;6416:3;6409:35;6338:112;;:::o;6456:214::-;6545:4;6583:2;6572:9;6568:18;6560:26;;6596:67;6660:1;6649:9;6645:17;6636:6;6596:67;:::i;:::-;6456:214;;;;:::o;6676:118::-;6763:24;6781:5;6763:24;:::i;:::-;6758:3;6751:37;6676:118;;:::o;6800:222::-;6893:4;6931:2;6920:9;6916:18;6908:26;;6944:71;7012:1;7001:9;6997:17;6988:6;6944:71;:::i;:::-;6800:222;;;;:::o;7028:114::-;7095:6;7129:5;7123:12;7113:22;;7028:114;;;:::o;7148:184::-;7247:11;7281:6;7276:3;7269:19;7321:4;7316:3;7312:14;7297:29;;7148:184;;;;:::o;7338:132::-;7405:4;7428:3;7420:11;;7458:4;7453:3;7449:14;7441:22;;7338:132;;;:::o;7476:108::-;7553:24;7571:5;7553:24;:::i;:::-;7548:3;7541:37;7476:108;;:::o;7590:179::-;7659:10;7680:46;7722:3;7714:6;7680:46;:::i;:::-;7758:4;7753:3;7749:14;7735:28;;7590:179;;;;:::o;7775:113::-;7845:4;7877;7872:3;7868:14;7860:22;;7775:113;;;:::o;7924:732::-;8043:3;8072:54;8120:5;8072:54;:::i;:::-;8142:86;8221:6;8216:3;8142:86;:::i;:::-;8135:93;;8252:56;8302:5;8252:56;:::i;:::-;8331:7;8362:1;8347:284;8372:6;8369:1;8366:13;8347:284;;;8448:6;8442:13;8475:63;8534:3;8519:13;8475:63;:::i;:::-;8468:70;;8561:60;8614:6;8561:60;:::i;:::-;8551:70;;8407:224;8394:1;8391;8387:9;8382:14;;8347:284;;;8351:14;8647:3;8640:10;;8048:608;;;7924:732;;;;:::o;8662:373::-;8805:4;8843:2;8832:9;8828:18;8820:26;;8892:9;8886:4;8882:20;8878:1;8867:9;8863:17;8856:47;8920:108;9023:4;9014:6;8920:108;:::i;:::-;8912:116;;8662:373;;;;:::o;9041:116::-;9111:21;9126:5;9111:21;:::i;:::-;9104:5;9101:32;9091:60;;9147:1;9144;9137:12;9091:60;9041:116;:::o;9163:133::-;9206:5;9244:6;9231:20;9222:29;;9260:30;9284:5;9260:30;:::i;:::-;9163:133;;;;:::o;9302:323::-;9358:6;9407:2;9395:9;9386:7;9382:23;9378:32;9375:119;;;9413:79;;:::i;:::-;9375:119;9533:1;9558:50;9600:7;9591:6;9580:9;9576:22;9558:50;:::i;:::-;9548:60;;9504:114;9302:323;;;;:::o;9631:474::-;9699:6;9707;9756:2;9744:9;9735:7;9731:23;9727:32;9724:119;;;9762:79;;:::i;:::-;9724:119;9882:1;9907:53;9952:7;9943:6;9932:9;9928:22;9907:53;:::i;:::-;9897:63;;9853:117;10009:2;10035:53;10080:7;10071:6;10060:9;10056:22;10035:53;:::i;:::-;10025:63;;9980:118;9631:474;;;;;:::o;10111:77::-;10148:7;10177:5;10166:16;;10111:77;;;:::o;10194:122::-;10267:24;10285:5;10267:24;:::i;:::-;10260:5;10257:35;10247:63;;10306:1;10303;10296:12;10247:63;10194:122;:::o;10322:139::-;10368:5;10406:6;10393:20;10384:29;;10422:33;10449:5;10422:33;:::i;:::-;10322:139;;;;:::o;10467:619::-;10544:6;10552;10560;10609:2;10597:9;10588:7;10584:23;10580:32;10577:119;;;10615:79;;:::i;:::-;10577:119;10735:1;10760:53;10805:7;10796:6;10785:9;10781:22;10760:53;:::i;:::-;10750:63;;10706:117;10862:2;10888:53;10933:7;10924:6;10913:9;10909:22;10888:53;:::i;:::-;10878:63;;10833:118;10990:2;11016:53;11061:7;11052:6;11041:9;11037:22;11016:53;:::i;:::-;11006:63;;10961:118;10467:619;;;;;:::o;11092:175::-;11232:27;11228:1;11220:6;11216:14;11209:51;11092:175;:::o;11273:366::-;11415:3;11436:67;11500:2;11495:3;11436:67;:::i;:::-;11429:74;;11512:93;11601:3;11512:93;:::i;:::-;11630:2;11625:3;11621:12;11614:19;;11273:366;;;:::o;11645:419::-;11811:4;11849:2;11838:9;11834:18;11826:26;;11898:9;11892:4;11888:20;11884:1;11873:9;11869:17;11862:47;11926:131;12052:4;11926:131;:::i;:::-;11918:139;;11645:419;;;:::o;12070:180::-;12118:77;12115:1;12108:88;12215:4;12212:1;12205:15;12239:4;12236:1;12229:15;12256:320;12300:6;12337:1;12331:4;12327:12;12317:22;;12384:1;12378:4;12374:12;12405:18;12395:81;;12461:4;12453:6;12449:17;12439:27;;12395:81;12523:2;12515:6;12512:14;12492:18;12489:38;12486:84;;12542:18;;:::i;:::-;12486:84;12307:269;12256:320;;;:::o;12582:228::-;12722:34;12718:1;12710:6;12706:14;12699:58;12791:11;12786:2;12778:6;12774:15;12767:36;12582:228;:::o;12816:366::-;12958:3;12979:67;13043:2;13038:3;12979:67;:::i;:::-;12972:74;;13055:93;13144:3;13055:93;:::i;:::-;13173:2;13168:3;13164:12;13157:19;;12816:366;;;:::o;13188:419::-;13354:4;13392:2;13381:9;13377:18;13369:26;;13441:9;13435:4;13431:20;13427:1;13416:9;13412:17;13405:47;13469:131;13595:4;13469:131;:::i;:::-;13461:139;;13188:419;;;:::o;13613:180::-;13661:77;13658:1;13651:88;13758:4;13755:1;13748:15;13782:4;13779:1;13772:15;13799:191;13839:4;13859:20;13877:1;13859:20;:::i;:::-;13854:25;;13893:20;13911:1;13893:20;:::i;:::-;13888:25;;13932:1;13929;13926:8;13923:34;;;13937:18;;:::i;:::-;13923:34;13982:1;13979;13975:9;13967:17;;13799:191;;;;:::o;13996:234::-;14136:34;14132:1;14124:6;14120:14;14113:58;14205:17;14200:2;14192:6;14188:15;14181:42;13996:234;:::o;14236:366::-;14378:3;14399:67;14463:2;14458:3;14399:67;:::i;:::-;14392:74;;14475:93;14564:3;14475:93;:::i;:::-;14593:2;14588:3;14584:12;14577:19;;14236:366;;;:::o;14608:419::-;14774:4;14812:2;14801:9;14797:18;14789:26;;14861:9;14855:4;14851:20;14847:1;14836:9;14832:17;14825:47;14889:131;15015:4;14889:131;:::i;:::-;14881:139;;14608:419;;;:::o;15033:305::-;15073:3;15092:20;15110:1;15092:20;:::i;:::-;15087:25;;15126:20;15144:1;15126:20;:::i;:::-;15121:25;;15280:1;15212:66;15208:74;15205:1;15202:81;15199:107;;;15286:18;;:::i;:::-;15199:107;15330:1;15327;15323:9;15316:16;;15033:305;;;;:::o;15344:176::-;15484:28;15480:1;15472:6;15468:14;15461:52;15344:176;:::o;15526:366::-;15668:3;15689:67;15753:2;15748:3;15689:67;:::i;:::-;15682:74;;15765:93;15854:3;15765:93;:::i;:::-;15883:2;15878:3;15874:12;15867:19;;15526:366;;;:::o;15898:419::-;16064:4;16102:2;16091:9;16087:18;16079:26;;16151:9;16145:4;16141:20;16137:1;16126:9;16122:17;16115:47;16179:131;16305:4;16179:131;:::i;:::-;16171:139;;15898:419;;;:::o;16323:175::-;16463:27;16459:1;16451:6;16447:14;16440:51;16323:175;:::o;16504:366::-;16646:3;16667:67;16731:2;16726:3;16667:67;:::i;:::-;16660:74;;16743:93;16832:3;16743:93;:::i;:::-;16861:2;16856:3;16852:12;16845:19;;16504:366;;;:::o;16876:419::-;17042:4;17080:2;17069:9;17065:18;17057:26;;17129:9;17123:4;17119:20;17115:1;17104:9;17100:17;17093:47;17157:131;17283:4;17157:131;:::i;:::-;17149:139;;16876:419;;;:::o;17301:143::-;17358:5;17389:6;17383:13;17374:22;;17405:33;17432:5;17405:33;:::i;:::-;17301:143;;;;:::o;17450:351::-;17520:6;17569:2;17557:9;17548:7;17544:23;17540:32;17537:119;;;17575:79;;:::i;:::-;17537:119;17695:1;17720:64;17776:7;17767:6;17756:9;17752:22;17720:64;:::i;:::-;17710:74;;17666:128;17450:351;;;;:::o;17807:181::-;17947:33;17943:1;17935:6;17931:14;17924:57;17807:181;:::o;17994:366::-;18136:3;18157:67;18221:2;18216:3;18157:67;:::i;:::-;18150:74;;18233:93;18322:3;18233:93;:::i;:::-;18351:2;18346:3;18342:12;18335:19;;17994:366;;;:::o;18366:419::-;18532:4;18570:2;18559:9;18555:18;18547:26;;18619:9;18613:4;18609:20;18605:1;18594:9;18590:17;18583:47;18647:131;18773:4;18647:131;:::i;:::-;18639:139;;18366:419;;;:::o;18791:442::-;18940:4;18978:2;18967:9;18963:18;18955:26;;18991:71;19059:1;19048:9;19044:17;19035:6;18991:71;:::i;:::-;19072:72;19140:2;19129:9;19125:18;19116:6;19072:72;:::i;:::-;19154;19222:2;19211:9;19207:18;19198:6;19154:72;:::i;:::-;18791:442;;;;;;:::o;19239:220::-;19379:34;19375:1;19367:6;19363:14;19356:58;19448:3;19443:2;19435:6;19431:15;19424:28;19239:220;:::o;19465:366::-;19607:3;19628:67;19692:2;19687:3;19628:67;:::i;:::-;19621:74;;19704:93;19793:3;19704:93;:::i;:::-;19822:2;19817:3;19813:12;19806:19;;19465:366;;;:::o;19837:419::-;20003:4;20041:2;20030:9;20026:18;20018:26;;20090:9;20084:4;20080:20;20076:1;20065:9;20061:17;20054:47;20118:131;20244:4;20118:131;:::i;:::-;20110:139;;19837:419;;;:::o;20262:221::-;20402:34;20398:1;20390:6;20386:14;20379:58;20471:4;20466:2;20458:6;20454:15;20447:29;20262:221;:::o;20489:366::-;20631:3;20652:67;20716:2;20711:3;20652:67;:::i;:::-;20645:74;;20728:93;20817:3;20728:93;:::i;:::-;20846:2;20841:3;20837:12;20830:19;;20489:366;;;:::o;20861:419::-;21027:4;21065:2;21054:9;21050:18;21042:26;;21114:9;21108:4;21104:20;21100:1;21089:9;21085:17;21078:47;21142:131;21268:4;21142:131;:::i;:::-;21134:139;;20861:419;;;:::o;21286:332::-;21407:4;21445:2;21434:9;21430:18;21422:26;;21458:71;21526:1;21515:9;21511:17;21502:6;21458:71;:::i;:::-;21539:72;21607:2;21596:9;21592:18;21583:6;21539:72;:::i;:::-;21286:332;;;;;:::o;21624:181::-;21764:33;21760:1;21752:6;21748:14;21741:57;21624:181;:::o;21811:366::-;21953:3;21974:67;22038:2;22033:3;21974:67;:::i;:::-;21967:74;;22050:93;22139:3;22050:93;:::i;:::-;22168:2;22163:3;22159:12;22152:19;;21811:366;;;:::o;22183:419::-;22349:4;22387:2;22376:9;22372:18;22364:26;;22436:9;22430:4;22426:20;22422:1;22411:9;22407:17;22400:47;22464:131;22590:4;22464:131;:::i;:::-;22456:139;;22183:419;;;:::o;22608:98::-;22659:6;22693:5;22687:12;22677:22;;22608:98;;;:::o;22712:147::-;22813:11;22850:3;22835:18;;22712:147;;;;:::o;22865:373::-;22969:3;22997:38;23029:5;22997:38;:::i;:::-;23051:88;23132:6;23127:3;23051:88;:::i;:::-;23044:95;;23148:52;23193:6;23188:3;23181:4;23174:5;23170:16;23148:52;:::i;:::-;23225:6;23220:3;23216:16;23209:23;;22973:265;22865:373;;;;:::o;23244:271::-;23374:3;23396:93;23485:3;23476:6;23396:93;:::i;:::-;23389:100;;23506:3;23499:10;;23244:271;;;;:::o;23521:182::-;23661:34;23657:1;23649:6;23645:14;23638:58;23521:182;:::o;23709:366::-;23851:3;23872:67;23936:2;23931:3;23872:67;:::i;:::-;23865:74;;23948:93;24037:3;23948:93;:::i;:::-;24066:2;24061:3;24057:12;24050:19;;23709:366;;;:::o;24081:419::-;24247:4;24285:2;24274:9;24270:18;24262:26;;24334:9;24328:4;24324:20;24320:1;24309:9;24305:17;24298:47;24362:131;24488:4;24362:131;:::i;:::-;24354:139;;24081:419;;;:::o;24506:137::-;24560:5;24591:6;24585:13;24576:22;;24607:30;24631:5;24607:30;:::i;:::-;24506:137;;;;:::o;24649:345::-;24716:6;24765:2;24753:9;24744:7;24740:23;24736:32;24733:119;;;24771:79;;:::i;:::-;24733:119;24891:1;24916:61;24969:7;24960:6;24949:9;24945:22;24916:61;:::i;:::-;24906:71;;24862:125;24649:345;;;;:::o;25000:229::-;25140:34;25136:1;25128:6;25124:14;25117:58;25209:12;25204:2;25196:6;25192:15;25185:37;25000:229;:::o;25235:366::-;25377:3;25398:67;25462:2;25457:3;25398:67;:::i;:::-;25391:74;;25474:93;25563:3;25474:93;:::i;:::-;25592:2;25587:3;25583:12;25576:19;;25235:366;;;:::o;25607:419::-;25773:4;25811:2;25800:9;25796:18;25788:26;;25860:9;25854:4;25850:20;25846:1;25835:9;25831:17;25824:47;25888:131;26014:4;25888:131;:::i;:::-;25880:139;;25607:419;;;:::o

Swarm Source

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