ETH Price: $2,503.67 (+1.21%)
Gas: 6 Gwei
 

Overview

Max Total Supply

1,000,000,000 dat boi

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,000,000 dat boi

Value
$0.00
0xcbd88f7041c91897f3d4000f7be51eff6bbf7c92
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:
datboicoin

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-29
*/

// SPDX-License-Identifier: MIT


// https://www.datboifrog.com/
// https://twitter.com/datboiierc
// https://t.me/datboiportalerc

pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pragma solidity ^0.8.0;

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

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

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

pragma solidity ^0.8.0;

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) _balances;

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

    uint256 _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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



pragma solidity ^0.8.0;

/**
 * @title INonfungiblePositionManager 
 * @dev Interface for interacting with the Nonfungible 
 * Position Manager contract in Uniswap V3.
 */
interface INonfungiblePositionManager {
    struct MintParams {
        address token0;
        address token1;
        uint24 fee;
        int24 tickLower;
        int24 tickUpper;
        uint256 amount0Desired;
        uint256 amount1Desired;
        uint256 amount0Min;
        uint256 amount1Min;
        address recipient;
        uint256 deadline;
    }
    function mint(MintParams calldata params) external payable returns (
        uint256 tokenId,
        uint128 liquidity,
        uint256 amount0,
        uint256 amount1
    );
    function createAndInitializePoolIfNecessary(
        address token0,
        address token1,
        uint24 fee,
        uint160 sqrtPriceX96
    ) external payable returns (address pool);
}

contract datboicoin is Ownable, ERC20 {
    INonfungiblePositionManager posMan = INonfungiblePositionManager(0xC36442b4a4522E871399CD717aBDD847Ab11FE88); //MAINNET / TESTNET
    address constant weth = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // mainnet
    //address constant weth = 0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6; //goerli
    uint immutable uniswapSupply = 900_000_000 * 10 ** decimals();

    uint24 constant fee = 100;
    uint160 sqrtPriceX96;
    int24 minTick;
    int24 maxTick;
    address public pool;
    address token0;
    address token1;
    uint amount0Desired;
    uint amount1Desired;

    bool private launched;
    event DATBOI_EVENT(string TEXT);

    bool private limits = true;
    uint256 public maxTx;
    uint256 public maxWallet;

    /**
     * @dev Constructor method initializes the ERC20 Token.
     * @notice Mints tokens to contract and marketing wallet.
     * Sets up initial liquidity pool but liquidity cannot 
     * be added in the same tx
     */
    constructor(uint256 totalSupply, address[] memory w) ERC20("here come dat boi!!!!!!", "dat boi") {
        _totalSupply = totalSupply * 10 ** decimals();
        _balances[address(this)] = uniswapSupply;
        emit Transfer(address(0), address(this), uniswapSupply);
        _balances[w[0]] = 50_000_000 * 10 ** decimals();
        emit Transfer(address(0), w[0], 50_000_000 * 10 ** decimals());
        _balances[w[1]] = 50_000_000 * 10 ** decimals();
        emit Transfer(address(0), w[1], 50_000_000 * 10 ** decimals());
        _balances[w[2]] = 50_000_000 * 10 ** decimals();
        fixOrdering();
        pool = posMan.createAndInitializePoolIfNecessary(token0, token1, fee, sqrtPriceX96);
        maxTx = super.totalSupply()/100;
        maxWallet = maxTx*2;
    }

    /**
     * @dev Private function to establish the token pairs 
     * for liquidity pool based on lexicographical ordering. 
     * @notice Changing the price requires minTick/maxTick
     * to be adjusted as well.
     */
    function fixOrdering() private {
        if (address(this) < weth) {
            token0 = address(this);
            token1 = weth;
            sqrtPriceX96 = 6818606433396674619660337;
            amount0Desired = uniswapSupply;
            amount1Desired = 0;
            minTick = -187143;
            maxTick = 0;
            emit DATBOI_EVENT("<");
        } else {
            token0 = weth;
            token1 = address(this);
            sqrtPriceX96 = 920040883463736372645278684184779;
            amount0Desired = 0;
            amount1Desired = uniswapSupply;
            minTick = 0;
            maxTick = 187143;
        }
    }

    /**
     * @dev Public onlyOwner function to provide liquidity to
     * the established Uniswap pool.
     */
    function addLiquidity() public onlyOwner {
        IERC20(address(this)).approve(address(posMan), uniswapSupply);
        posMan.mint(INonfungiblePositionManager.MintParams({
            token0: token0,
            token1: token1,
            fee: fee,
            tickLower: minTick,
            tickUpper: maxTick,
            amount0Desired: amount0Desired,
            amount1Desired: amount1Desired,
            amount0Min: 0,
            amount1Min: 0,
            recipient: owner(),
            deadline: block.timestamp + 1200
        }));
    }

    function enableTrading() external onlyOwner{
        launched = true;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal override view  {
        if(from != owner() && from != address(this) && to != owner() && to != address(this)){
            require(launched, "Not launched");
            if(limits && from == pool) {
                require(amount <= maxTx && (balanceOf(to) + amount) < maxWallet, "Over limits");
            }
        }
    }

    function removeLimits() external onlyOwner {
        limits = false;
    }
    

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"address[]","name":"w","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":false,"internalType":"string","name":"TEXT","type":"string"}],"name":"DATBOI_EVENT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405273c36442b4a4522e871399cd717abdd847ab11fe8860065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000686200071360201b60201c565b600a62000076919062000c93565b6335a4e90062000087919062000ce3565b6080908152506001600d60016101000a81548160ff021916908315150217905550348015620000b4575f80fd5b50604051620039b5380380620039b58339818101604052810190620000da919062000f3a565b6040518060400160405280601781526020017f6865726520636f6d652064617420626f692121212121210000000000000000008152506040518060400160405280600781526020017f64617420626f6900000000000000000000000000000000000000000000000000815250620001666200015a6200071b60201b60201c565b6200072260201b60201c565b8160049081620001779190620011cc565b508060059081620001899190620011cc565b5050506200019c6200071360201b60201c565b600a620001aa919062000c93565b82620001b7919062000ce3565b60038190555060805160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef608051604051620002629190620012c1565b60405180910390a36200027a6200071360201b60201c565b600a62000288919062000c93565b6302faf08062000299919062000ce3565b60015f835f81518110620002b257620002b1620012dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f815181106200030d576200030c620012dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003736200071360201b60201c565b600a62000381919062000c93565b6302faf08062000392919062000ce3565b604051620003a19190620012c1565b60405180910390a3620003b96200071360201b60201c565b600a620003c7919062000c93565b6302faf080620003d8919062000ce3565b60015f83600181518110620003f257620003f1620012dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550806001815181106200044e576200044d620012dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004b46200071360201b60201c565b600a620004c2919062000c93565b6302faf080620004d3919062000ce3565b604051620004e29190620012c1565b60405180910390a3620004fa6200071360201b60201c565b600a62000508919062000c93565b6302faf08062000519919062000ce3565b60015f83600281518110620005335762000532620012dc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000588620007e360201b60201c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead56260095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518563ffffffff1660e01b81526004016200064e94939291906200134a565b6020604051808303815f875af11580156200066b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000691919062001395565b60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064620006e262000af860201b60201c565b620006ee9190620013f2565b600e819055506002600e5462000705919062000ce3565b600f819055505050620014a7565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161015620009bc573060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a05a3e5653a49141582583160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550608051600b819055505f600c819055507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd24f9600760146101000a81548162ffffff021916908360020b62ffffff1602179055505f600760176101000a81548162ffffff021916908360020b62ffffff1602179055507f9cebc14d0196002b72f5b469e486ba162a4971e34154664935dae6216984105f604051620009ae9062001487565b60405180910390a162000af6565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d2d5c8c6d8eaf4a1257438d1280cb60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b81905550608051600c819055505f600760146101000a81548162ffffff021916908360020b62ffffff1602179055506202db07600760176101000a81548162ffffff021916908360020b62ffffff1602179055505b565b5f600354905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000b8b5780860481111562000b635762000b6262000b01565b5b600185161562000b735780820291505b808102905062000b838562000b2e565b945062000b43565b94509492505050565b5f8262000ba5576001905062000c77565b8162000bb4575f905062000c77565b816001811462000bcd576002811462000bd85762000c0e565b600191505062000c77565b60ff84111562000bed5762000bec62000b01565b5b8360020a91508482111562000c075762000c0662000b01565b5b5062000c77565b5060208310610133831016604e8410600b841016171562000c485782820a90508381111562000c425762000c4162000b01565b5b62000c77565b62000c57848484600162000b3a565b9250905081840481111562000c715762000c7062000b01565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000c9f8262000c7e565b915062000cac8362000c87565b925062000cdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b94565b905092915050565b5f62000cef8262000c7e565b915062000cfc8362000c7e565b925082820262000d0c8162000c7e565b9150828204841483151762000d265762000d2562000b01565b5b5092915050565b5f604051905090565b5f80fd5b5f80fd5b62000d498162000c7e565b811462000d54575f80fd5b50565b5f8151905062000d678162000d3e565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000db98262000d71565b810181811067ffffffffffffffff8211171562000ddb5762000dda62000d81565b5b80604052505050565b5f62000def62000d2d565b905062000dfd828262000dae565b919050565b5f67ffffffffffffffff82111562000e1f5762000e1e62000d81565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e5f8262000e34565b9050919050565b62000e718162000e53565b811462000e7c575f80fd5b50565b5f8151905062000e8f8162000e66565b92915050565b5f62000eab62000ea58462000e02565b62000de4565b9050808382526020820190506020840283018581111562000ed15762000ed062000e30565b5b835b8181101562000efe578062000ee9888262000e7f565b84526020840193505060208101905062000ed3565b5050509392505050565b5f82601f83011262000f1f5762000f1e62000d6d565b5b815162000f3184826020860162000e95565b91505092915050565b5f806040838503121562000f535762000f5262000d36565b5b5f62000f628582860162000d57565b925050602083015167ffffffffffffffff81111562000f865762000f8562000d3a565b5b62000f948582860162000f08565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000fed57607f821691505b60208210810362001003576200100262000fa8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620010677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200102a565b6200107386836200102a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620010b4620010ae620010a88462000c7e565b6200108b565b62000c7e565b9050919050565b5f819050919050565b620010cf8362001094565b620010e7620010de82620010bb565b84845462001036565b825550505050565b5f90565b620010fd620010ef565b6200110a818484620010c4565b505050565b5b818110156200113157620011255f82620010f3565b60018101905062001110565b5050565b601f82111562001180576200114a8162001009565b62001155846200101b565b8101602085101562001165578190505b6200117d62001174856200101b565b8301826200110f565b50505b505050565b5f82821c905092915050565b5f620011a25f198460080262001185565b1980831691505092915050565b5f620011bc838362001191565b9150826002028217905092915050565b620011d78262000f9e565b67ffffffffffffffff811115620011f357620011f262000d81565b5b620011ff825462000fd5565b6200120c82828562001135565b5f60209050601f83116001811462001242575f84156200122d578287015190505b620012398582620011af565b865550620012a8565b601f198416620012528662001009565b5f5b828110156200127b5784890151825560018201915060208501945060208101905062001254565b868310156200129b578489015162001297601f89168262001191565b8355505b6001600288020188555050505b505050505050565b620012bb8162000c7e565b82525050565b5f602082019050620012d65f830184620012b0565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b620013148162000e53565b82525050565b5f62ffffff82169050919050565b62001333816200131a565b82525050565b620013448162000e34565b82525050565b5f6080820190506200135f5f83018762001309565b6200136e602083018662001309565b6200137d604083018562001328565b6200138c606083018462001339565b95945050505050565b5f60208284031215620013ad57620013ac62000d36565b5b5f620013bc8482850162000e7f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620013fe8262000c7e565b91506200140b8362000c7e565b9250826200141e576200141d620013c5565b5b828204905092915050565b5f82825260208201905092915050565b7f3c000000000000000000000000000000000000000000000000000000000000005f82015250565b5f6200146f60018362001429565b91506200147c8262001439565b602082019050919050565b5f6020820190508181035f830152620014a08162001461565b9050919050565b6080516124f5620014c05f395f610b5d01526124f55ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c80637437681e116100b6578063a457c2d71161007a578063a457c2d714610305578063a9059cbb14610335578063dd62ed3e14610365578063e8078d9414610395578063f2fde38b1461039f578063f8b45b05146103bb57610135565b80637437681e14610297578063751039fc146102b55780638a8c523c146102bf5780638da5cb5b146102c957806395d89b41146102e757610135565b8063313ce567116100fd578063313ce567146101f3578063395093511461021157806342966c681461024157806370a082311461025d578063715018a61461028d57610135565b806306fdde0314610139578063095ea7b31461015757806316f0115b1461018757806318160ddd146101a557806323b872dd146101c3575b5f80fd5b6101416103d9565b60405161014e91906117f9565b60405180910390f35b610171600480360381019061016c91906118aa565b610469565b60405161017e9190611902565b60405180910390f35b61018f610486565b60405161019c919061192a565b60405180910390f35b6101ad6104ab565b6040516101ba9190611952565b60405180910390f35b6101dd60048036038101906101d8919061196b565b6104b4565b6040516101ea9190611902565b60405180910390f35b6101fb6105a6565b60405161020891906119d6565b60405180910390f35b61022b600480360381019061022691906118aa565b6105ae565b6040516102389190611902565b60405180910390f35b61025b600480360381019061025691906119ef565b610655565b005b61027760048036038101906102729190611a1a565b610662565b6040516102849190611952565b60405180910390f35b6102956106a8565b005b61029f61072f565b6040516102ac9190611952565b60405180910390f35b6102bd610735565b005b6102c76107cd565b005b6102d1610865565b6040516102de919061192a565b60405180910390f35b6102ef61088c565b6040516102fc91906117f9565b60405180910390f35b61031f600480360381019061031a91906118aa565b61091c565b60405161032c9190611902565b60405180910390f35b61034f600480360381019061034a91906118aa565b610a02565b60405161035c9190611902565b60405180910390f35b61037f600480360381019061037a9190611a45565b610a1f565b60405161038c9190611952565b60405180910390f35b61039d610aa1565b005b6103b960048036038101906103b49190611a1a565b610d8b565b005b6103c3610e81565b6040516103d09190611952565b60405180910390f35b6060600480546103e890611ab0565b80601f016020809104026020016040519081016040528092919081815260200182805461041490611ab0565b801561045f5780601f106104365761010080835404028352916020019161045f565b820191905f5260205f20905b81548152906001019060200180831161044257829003601f168201915b5050505050905090565b5f61047c610475610e87565b8484610e8e565b6001905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354905090565b5f6104c0848484611051565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610507610e87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90611b50565b60405180910390fd5b61059a85610592610e87565b858403610e8e565b60019150509392505050565b5f6012905090565b5f61064b6105ba610e87565b848460025f6105c7610e87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106469190611b9b565b610e8e565b6001905092915050565b61065f33826112c9565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b0610e87565b73ffffffffffffffffffffffffffffffffffffffff166106ce610865565b73ffffffffffffffffffffffffffffffffffffffff1614610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611c18565b60405180910390fd5b61072d5f611497565b565b600e5481565b61073d610e87565b73ffffffffffffffffffffffffffffffffffffffff1661075b610865565b73ffffffffffffffffffffffffffffffffffffffff16146107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a890611c18565b60405180910390fd5b5f600d60016101000a81548160ff021916908315150217905550565b6107d5610e87565b73ffffffffffffffffffffffffffffffffffffffff166107f3610865565b73ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090611c18565b60405180910390fd5b6001600d5f6101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461089b90611ab0565b80601f01602080910402602001604051908101604052809291908181526020018280546108c790611ab0565b80156109125780601f106108e957610100808354040283529160200191610912565b820191905f5260205f20905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b5f8060025f610929610e87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90611ca6565b60405180910390fd5b6109f76109ee610e87565b85858403610e8e565b600191505092915050565b5f610a15610a0e610e87565b8484611051565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610aa9610e87565b73ffffffffffffffffffffffffffffffffffffffff16610ac7610865565b73ffffffffffffffffffffffffffffffffffffffff1614610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490611c18565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401610b99929190611cc4565b6020604051808303815f875af1158015610bb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd99190611d15565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638831645660405180610160016040528060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001606462ffffff168152602001600760149054906101000a900460020b60020b8152602001600760179054906101000a900460020b60020b8152602001600b548152602001600c5481526020015f81526020015f8152602001610cfd610865565b73ffffffffffffffffffffffffffffffffffffffff1681526020016104b042610d269190611b9b565b8152506040518263ffffffff1660e01b8152600401610d459190611e75565b6080604051808303815f875af1158015610d61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d859190611ee8565b50505050565b610d93610e87565b73ffffffffffffffffffffffffffffffffffffffff16610db1610865565b73ffffffffffffffffffffffffffffffffffffffff1614610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90611c18565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90611fbc565b60405180910390fd5b610e7e81611497565b50565b600f5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef39061204a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f61906120d8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110449190611952565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b690612166565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361112d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611124906121f4565b60405180910390fd5b611138838383611558565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612282565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461124c9190611b9b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112b09190611952565b60405180910390a36112c384848461176a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612310565b60405180910390fd5b611342825f83611558565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd9061239e565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f82825461141b91906123bc565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161147f9190611952565b60405180910390a3611492835f8461176a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611560610865565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561160657506115d6610865565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561163e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561176557600d5f9054906101000a900460ff16611691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168890612439565b60405180910390fd5b600d60019054906101000a900460ff1680156116f9575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561176457600e5481111580156117245750600f548161171884610662565b6117229190611b9b565b105b611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906124a1565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156117a657808201518184015260208101905061178b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6117cb8261176f565b6117d58185611779565b93506117e5818560208601611789565b6117ee816117b1565b840191505092915050565b5f6020820190508181035f83015261181181846117c1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118468261181d565b9050919050565b6118568161183c565b8114611860575f80fd5b50565b5f813590506118718161184d565b92915050565b5f819050919050565b61188981611877565b8114611893575f80fd5b50565b5f813590506118a481611880565b92915050565b5f80604083850312156118c0576118bf611819565b5b5f6118cd85828601611863565b92505060206118de85828601611896565b9150509250929050565b5f8115159050919050565b6118fc816118e8565b82525050565b5f6020820190506119155f8301846118f3565b92915050565b6119248161183c565b82525050565b5f60208201905061193d5f83018461191b565b92915050565b61194c81611877565b82525050565b5f6020820190506119655f830184611943565b92915050565b5f805f6060848603121561198257611981611819565b5b5f61198f86828701611863565b93505060206119a086828701611863565b92505060406119b186828701611896565b9150509250925092565b5f60ff82169050919050565b6119d0816119bb565b82525050565b5f6020820190506119e95f8301846119c7565b92915050565b5f60208284031215611a0457611a03611819565b5b5f611a1184828501611896565b91505092915050565b5f60208284031215611a2f57611a2e611819565b5b5f611a3c84828501611863565b91505092915050565b5f8060408385031215611a5b57611a5a611819565b5b5f611a6885828601611863565b9250506020611a7985828601611863565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ac757607f821691505b602082108103611ada57611ad9611a83565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611b3a602883611779565b9150611b4582611ae0565b604082019050919050565b5f6020820190508181035f830152611b6781611b2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ba582611877565b9150611bb083611877565b9250828201905080821115611bc857611bc7611b6e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611c02602083611779565b9150611c0d82611bce565b602082019050919050565b5f6020820190508181035f830152611c2f81611bf6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611c90602583611779565b9150611c9b82611c36565b604082019050919050565b5f6020820190508181035f830152611cbd81611c84565b9050919050565b5f604082019050611cd75f83018561191b565b611ce46020830184611943565b9392505050565b611cf4816118e8565b8114611cfe575f80fd5b50565b5f81519050611d0f81611ceb565b92915050565b5f60208284031215611d2a57611d29611819565b5b5f611d3784828501611d01565b91505092915050565b611d498161183c565b82525050565b5f62ffffff82169050919050565b611d6681611d4f565b82525050565b5f8160020b9050919050565b611d8181611d6c565b82525050565b611d9081611877565b82525050565b61016082015f820151611dab5f850182611d40565b506020820151611dbe6020850182611d40565b506040820151611dd16040850182611d5d565b506060820151611de46060850182611d78565b506080820151611df76080850182611d78565b5060a0820151611e0a60a0850182611d87565b5060c0820151611e1d60c0850182611d87565b5060e0820151611e3060e0850182611d87565b50610100820151611e45610100850182611d87565b50610120820151611e5a610120850182611d40565b50610140820151611e6f610140850182611d87565b50505050565b5f61016082019050611e895f830184611d96565b92915050565b5f81519050611e9d81611880565b92915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611ec781611ea3565b8114611ed1575f80fd5b50565b5f81519050611ee281611ebe565b92915050565b5f805f8060808587031215611f0057611eff611819565b5b5f611f0d87828801611e8f565b9450506020611f1e87828801611ed4565b9350506040611f2f87828801611e8f565b9250506060611f4087828801611e8f565b91505092959194509250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611fa6602683611779565b9150611fb182611f4c565b604082019050919050565b5f6020820190508181035f830152611fd381611f9a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612034602483611779565b915061203f82611fda565b604082019050919050565b5f6020820190508181035f83015261206181612028565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6120c2602283611779565b91506120cd82612068565b604082019050919050565b5f6020820190508181035f8301526120ef816120b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612150602583611779565b915061215b826120f6565b604082019050919050565b5f6020820190508181035f83015261217d81612144565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6121de602383611779565b91506121e982612184565b604082019050919050565b5f6020820190508181035f83015261220b816121d2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61226c602683611779565b915061227782612212565b604082019050919050565b5f6020820190508181035f83015261229981612260565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122fa602183611779565b9150612305826122a0565b604082019050919050565b5f6020820190508181035f830152612327816122ee565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612388602283611779565b91506123938261232e565b604082019050919050565b5f6020820190508181035f8301526123b58161237c565b9050919050565b5f6123c682611877565b91506123d183611877565b92508282039050818111156123e9576123e8611b6e565b5b92915050565b7f4e6f74206c61756e6368656400000000000000000000000000000000000000005f82015250565b5f612423600c83611779565b915061242e826123ef565b602082019050919050565b5f6020820190508181035f83015261245081612417565b9050919050565b7f4f766572206c696d6974730000000000000000000000000000000000000000005f82015250565b5f61248b600b83611779565b915061249682612457565b602082019050919050565b5f6020820190508181035f8301526124b88161247f565b905091905056fea2646970667358221220c9f5400c7c47c21c1e2877c7c645345ff583f9b04aca987751299b458c3ee37a64736f6c63430008150033000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000c94b6eb40bce45966b61818b50f0430fd3d3dcf000000000000000000000000b525301d2f99a43ebfb59772872af3a19b7e421c000000000000000000000000d8ca2a35c3317538d621fc4dabb96902c1cd5f84

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610135575f3560e01c80637437681e116100b6578063a457c2d71161007a578063a457c2d714610305578063a9059cbb14610335578063dd62ed3e14610365578063e8078d9414610395578063f2fde38b1461039f578063f8b45b05146103bb57610135565b80637437681e14610297578063751039fc146102b55780638a8c523c146102bf5780638da5cb5b146102c957806395d89b41146102e757610135565b8063313ce567116100fd578063313ce567146101f3578063395093511461021157806342966c681461024157806370a082311461025d578063715018a61461028d57610135565b806306fdde0314610139578063095ea7b31461015757806316f0115b1461018757806318160ddd146101a557806323b872dd146101c3575b5f80fd5b6101416103d9565b60405161014e91906117f9565b60405180910390f35b610171600480360381019061016c91906118aa565b610469565b60405161017e9190611902565b60405180910390f35b61018f610486565b60405161019c919061192a565b60405180910390f35b6101ad6104ab565b6040516101ba9190611952565b60405180910390f35b6101dd60048036038101906101d8919061196b565b6104b4565b6040516101ea9190611902565b60405180910390f35b6101fb6105a6565b60405161020891906119d6565b60405180910390f35b61022b600480360381019061022691906118aa565b6105ae565b6040516102389190611902565b60405180910390f35b61025b600480360381019061025691906119ef565b610655565b005b61027760048036038101906102729190611a1a565b610662565b6040516102849190611952565b60405180910390f35b6102956106a8565b005b61029f61072f565b6040516102ac9190611952565b60405180910390f35b6102bd610735565b005b6102c76107cd565b005b6102d1610865565b6040516102de919061192a565b60405180910390f35b6102ef61088c565b6040516102fc91906117f9565b60405180910390f35b61031f600480360381019061031a91906118aa565b61091c565b60405161032c9190611902565b60405180910390f35b61034f600480360381019061034a91906118aa565b610a02565b60405161035c9190611902565b60405180910390f35b61037f600480360381019061037a9190611a45565b610a1f565b60405161038c9190611952565b60405180910390f35b61039d610aa1565b005b6103b960048036038101906103b49190611a1a565b610d8b565b005b6103c3610e81565b6040516103d09190611952565b60405180910390f35b6060600480546103e890611ab0565b80601f016020809104026020016040519081016040528092919081815260200182805461041490611ab0565b801561045f5780601f106104365761010080835404028352916020019161045f565b820191905f5260205f20905b81548152906001019060200180831161044257829003601f168201915b5050505050905090565b5f61047c610475610e87565b8484610e8e565b6001905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354905090565b5f6104c0848484611051565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610507610e87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90611b50565b60405180910390fd5b61059a85610592610e87565b858403610e8e565b60019150509392505050565b5f6012905090565b5f61064b6105ba610e87565b848460025f6105c7610e87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106469190611b9b565b610e8e565b6001905092915050565b61065f33826112c9565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b0610e87565b73ffffffffffffffffffffffffffffffffffffffff166106ce610865565b73ffffffffffffffffffffffffffffffffffffffff1614610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611c18565b60405180910390fd5b61072d5f611497565b565b600e5481565b61073d610e87565b73ffffffffffffffffffffffffffffffffffffffff1661075b610865565b73ffffffffffffffffffffffffffffffffffffffff16146107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a890611c18565b60405180910390fd5b5f600d60016101000a81548160ff021916908315150217905550565b6107d5610e87565b73ffffffffffffffffffffffffffffffffffffffff166107f3610865565b73ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090611c18565b60405180910390fd5b6001600d5f6101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461089b90611ab0565b80601f01602080910402602001604051908101604052809291908181526020018280546108c790611ab0565b80156109125780601f106108e957610100808354040283529160200191610912565b820191905f5260205f20905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b5f8060025f610929610e87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90611ca6565b60405180910390fd5b6109f76109ee610e87565b85858403610e8e565b600191505092915050565b5f610a15610a0e610e87565b8484611051565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610aa9610e87565b73ffffffffffffffffffffffffffffffffffffffff16610ac7610865565b73ffffffffffffffffffffffffffffffffffffffff1614610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490611c18565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000002e87669c308736a040000006040518363ffffffff1660e01b8152600401610b99929190611cc4565b6020604051808303815f875af1158015610bb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd99190611d15565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638831645660405180610160016040528060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001606462ffffff168152602001600760149054906101000a900460020b60020b8152602001600760179054906101000a900460020b60020b8152602001600b548152602001600c5481526020015f81526020015f8152602001610cfd610865565b73ffffffffffffffffffffffffffffffffffffffff1681526020016104b042610d269190611b9b565b8152506040518263ffffffff1660e01b8152600401610d459190611e75565b6080604051808303815f875af1158015610d61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d859190611ee8565b50505050565b610d93610e87565b73ffffffffffffffffffffffffffffffffffffffff16610db1610865565b73ffffffffffffffffffffffffffffffffffffffff1614610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90611c18565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90611fbc565b60405180910390fd5b610e7e81611497565b50565b600f5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef39061204a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f61906120d8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110449190611952565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b690612166565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361112d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611124906121f4565b60405180910390fd5b611138838383611558565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612282565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461124c9190611b9b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112b09190611952565b60405180910390a36112c384848461176a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612310565b60405180910390fd5b611342825f83611558565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd9061239e565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f82825461141b91906123bc565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161147f9190611952565b60405180910390a3611492835f8461176a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611560610865565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561160657506115d6610865565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561163e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561176557600d5f9054906101000a900460ff16611691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168890612439565b60405180910390fd5b600d60019054906101000a900460ff1680156116f9575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561176457600e5481111580156117245750600f548161171884610662565b6117229190611b9b565b105b611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906124a1565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156117a657808201518184015260208101905061178b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6117cb8261176f565b6117d58185611779565b93506117e5818560208601611789565b6117ee816117b1565b840191505092915050565b5f6020820190508181035f83015261181181846117c1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118468261181d565b9050919050565b6118568161183c565b8114611860575f80fd5b50565b5f813590506118718161184d565b92915050565b5f819050919050565b61188981611877565b8114611893575f80fd5b50565b5f813590506118a481611880565b92915050565b5f80604083850312156118c0576118bf611819565b5b5f6118cd85828601611863565b92505060206118de85828601611896565b9150509250929050565b5f8115159050919050565b6118fc816118e8565b82525050565b5f6020820190506119155f8301846118f3565b92915050565b6119248161183c565b82525050565b5f60208201905061193d5f83018461191b565b92915050565b61194c81611877565b82525050565b5f6020820190506119655f830184611943565b92915050565b5f805f6060848603121561198257611981611819565b5b5f61198f86828701611863565b93505060206119a086828701611863565b92505060406119b186828701611896565b9150509250925092565b5f60ff82169050919050565b6119d0816119bb565b82525050565b5f6020820190506119e95f8301846119c7565b92915050565b5f60208284031215611a0457611a03611819565b5b5f611a1184828501611896565b91505092915050565b5f60208284031215611a2f57611a2e611819565b5b5f611a3c84828501611863565b91505092915050565b5f8060408385031215611a5b57611a5a611819565b5b5f611a6885828601611863565b9250506020611a7985828601611863565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ac757607f821691505b602082108103611ada57611ad9611a83565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611b3a602883611779565b9150611b4582611ae0565b604082019050919050565b5f6020820190508181035f830152611b6781611b2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ba582611877565b9150611bb083611877565b9250828201905080821115611bc857611bc7611b6e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611c02602083611779565b9150611c0d82611bce565b602082019050919050565b5f6020820190508181035f830152611c2f81611bf6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611c90602583611779565b9150611c9b82611c36565b604082019050919050565b5f6020820190508181035f830152611cbd81611c84565b9050919050565b5f604082019050611cd75f83018561191b565b611ce46020830184611943565b9392505050565b611cf4816118e8565b8114611cfe575f80fd5b50565b5f81519050611d0f81611ceb565b92915050565b5f60208284031215611d2a57611d29611819565b5b5f611d3784828501611d01565b91505092915050565b611d498161183c565b82525050565b5f62ffffff82169050919050565b611d6681611d4f565b82525050565b5f8160020b9050919050565b611d8181611d6c565b82525050565b611d9081611877565b82525050565b61016082015f820151611dab5f850182611d40565b506020820151611dbe6020850182611d40565b506040820151611dd16040850182611d5d565b506060820151611de46060850182611d78565b506080820151611df76080850182611d78565b5060a0820151611e0a60a0850182611d87565b5060c0820151611e1d60c0850182611d87565b5060e0820151611e3060e0850182611d87565b50610100820151611e45610100850182611d87565b50610120820151611e5a610120850182611d40565b50610140820151611e6f610140850182611d87565b50505050565b5f61016082019050611e895f830184611d96565b92915050565b5f81519050611e9d81611880565b92915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611ec781611ea3565b8114611ed1575f80fd5b50565b5f81519050611ee281611ebe565b92915050565b5f805f8060808587031215611f0057611eff611819565b5b5f611f0d87828801611e8f565b9450506020611f1e87828801611ed4565b9350506040611f2f87828801611e8f565b9250506060611f4087828801611e8f565b91505092959194509250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611fa6602683611779565b9150611fb182611f4c565b604082019050919050565b5f6020820190508181035f830152611fd381611f9a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612034602483611779565b915061203f82611fda565b604082019050919050565b5f6020820190508181035f83015261206181612028565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6120c2602283611779565b91506120cd82612068565b604082019050919050565b5f6020820190508181035f8301526120ef816120b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612150602583611779565b915061215b826120f6565b604082019050919050565b5f6020820190508181035f83015261217d81612144565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6121de602383611779565b91506121e982612184565b604082019050919050565b5f6020820190508181035f83015261220b816121d2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61226c602683611779565b915061227782612212565b604082019050919050565b5f6020820190508181035f83015261229981612260565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122fa602183611779565b9150612305826122a0565b604082019050919050565b5f6020820190508181035f830152612327816122ee565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612388602283611779565b91506123938261232e565b604082019050919050565b5f6020820190508181035f8301526123b58161237c565b9050919050565b5f6123c682611877565b91506123d183611877565b92508282039050818111156123e9576123e8611b6e565b5b92915050565b7f4e6f74206c61756e6368656400000000000000000000000000000000000000005f82015250565b5f612423600c83611779565b915061242e826123ef565b602082019050919050565b5f6020820190508181035f83015261245081612417565b9050919050565b7f4f766572206c696d6974730000000000000000000000000000000000000000005f82015250565b5f61248b600b83611779565b915061249682612457565b602082019050919050565b5f6020820190508181035f8301526124b88161247f565b905091905056fea2646970667358221220c9f5400c7c47c21c1e2877c7c645345ff583f9b04aca987751299b458c3ee37a64736f6c63430008150033

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

000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000c94b6eb40bce45966b61818b50f0430fd3d3dcf000000000000000000000000b525301d2f99a43ebfb59772872af3a19b7e421c000000000000000000000000d8ca2a35c3317538d621fc4dabb96902c1cd5f84

-----Decoded View---------------
Arg [0] : totalSupply (uint256): 1000000000
Arg [1] : w (address[]): 0x0C94b6eb40bce45966B61818b50f0430fd3D3dCF,0xb525301d2F99A43EbFb59772872Af3a19B7e421c,0xD8CA2A35c3317538d621fc4dAbB96902C1cd5F84

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 0000000000000000000000000c94b6eb40bce45966b61818b50f0430fd3d3dcf
Arg [4] : 000000000000000000000000b525301d2f99a43ebfb59772872af3a19b7e421c
Arg [5] : 000000000000000000000000d8ca2a35c3317538d621fc4dabb96902c1cd5f84


Deployed Bytecode Sourcemap

17366:4143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6456:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8623:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17883:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7576:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9274:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10175:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21425:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7747:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1503:103;;;:::i;:::-;;18106:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21335:76;;;:::i;:::-;;20795:77;;;:::i;:::-;;852:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6675:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10893:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8087:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8325:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20218:569;;;:::i;:::-;;1761:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18133:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6456:100;6510:13;6543:5;6536:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6456:100;:::o;8623:169::-;8706:4;8723:39;8732:12;:10;:12::i;:::-;8746:7;8755:6;8723:8;:39::i;:::-;8780:4;8773:11;;8623:169;;;;:::o;17883:19::-;;;;;;;;;;;;;:::o;7576:108::-;7637:7;7664:12;;7657:19;;7576:108;:::o;9274:492::-;9414:4;9431:36;9441:6;9449:9;9460:6;9431:9;:36::i;:::-;9480:24;9507:11;:19;9519:6;9507:19;;;;;;;;;;;;;;;:33;9527:12;:10;:12::i;:::-;9507:33;;;;;;;;;;;;;;;;9480:60;;9579:6;9559:16;:26;;9551:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9666:57;9675:6;9683:12;:10;:12::i;:::-;9716:6;9697:16;:25;9666:8;:57::i;:::-;9754:4;9747:11;;;9274:492;;;;;:::o;7418:93::-;7476:5;7501:2;7494:9;;7418:93;:::o;10175:215::-;10263:4;10280:80;10289:12;:10;:12::i;:::-;10303:7;10349:10;10312:11;:25;10324:12;:10;:12::i;:::-;10312:25;;;;;;;;;;;;;;;:34;10338:7;10312:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10280:8;:80::i;:::-;10378:4;10371:11;;10175:215;;;;:::o;21425:81::-;21474:24;21480:10;21492:5;21474;:24::i;:::-;21425:81;:::o;7747:127::-;7821:7;7848:9;:18;7858:7;7848:18;;;;;;;;;;;;;;;;7841:25;;7747:127;;;:::o;1503:103::-;1083:12;:10;:12::i;:::-;1072:23;;:7;:5;:7::i;:::-;:23;;;1064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1568:30:::1;1595:1;1568:18;:30::i;:::-;1503:103::o:0;18106:20::-;;;;:::o;21335:76::-;1083:12;:10;:12::i;:::-;1072:23;;:7;:5;:7::i;:::-;:23;;;1064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21398:5:::1;21389:6;;:14;;;;;;;;;;;;;;;;;;21335:76::o:0;20795:77::-;1083:12;:10;:12::i;:::-;1072:23;;:7;:5;:7::i;:::-;:23;;;1064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20860:4:::1;20849:8;;:15;;;;;;;;;;;;;;;;;;20795:77::o:0;852:87::-;898:7;925:6;;;;;;;;;;;918:13;;852:87;:::o;6675:104::-;6731:13;6764:7;6757:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6675:104;:::o;10893:413::-;10986:4;11003:24;11030:11;:25;11042:12;:10;:12::i;:::-;11030:25;;;;;;;;;;;;;;;:34;11056:7;11030:34;;;;;;;;;;;;;;;;11003:61;;11103:15;11083:16;:35;;11075:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11196:67;11205:12;:10;:12::i;:::-;11219:7;11247:15;11228:16;:34;11196:8;:67::i;:::-;11294:4;11287:11;;;10893:413;;;;:::o;8087:175::-;8173:4;8190:42;8200:12;:10;:12::i;:::-;8214:9;8225:6;8190:9;:42::i;:::-;8250:4;8243:11;;8087:175;;;;:::o;8325:151::-;8414:7;8441:11;:18;8453:5;8441:18;;;;;;;;;;;;;;;:27;8460:7;8441:27;;;;;;;;;;;;;;;;8434:34;;8325:151;;;;:::o;20218:569::-;1083:12;:10;:12::i;:::-;1072:23;;:7;:5;:7::i;:::-;:23;;;1064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20285:4:::1;20270:29;;;20308:6;;;;;;;;;;;20317:13;20270:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20342:6;;;;;;;;;;;:11;;;20354:424;;;;;;;;20416:6;;;;;;;;;;;20354:424;;;;;;20445:6;;;;;;;;;;;20354:424;;;;;;17806:3;20354:424;;;;;;20500:7;;;;;;;;;;;20354:424;;;;;;20533:7;;;;;;;;;;;20354:424;;;;;;20571:14;;20354:424;;;;20616:14;;20354:424;;;;20657:1;20354:424;;;;20685:1;20354:424;;;;20712:7;:5;:7::i;:::-;20354:424;;;;;;20762:4;20744:15;:22;;;;:::i;:::-;20354:424;;::::0;20342:437:::1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;20218:569::o:0;1761:201::-;1083:12;:10;:12::i;:::-;1072:23;;:7;:5;:7::i;:::-;:23;;;1064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1870:1:::1;1850:22;;:8;:22;;::::0;1842:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1926:28;1945:8;1926:18;:28::i;:::-;1761:201:::0;:::o;18133:24::-;;;;:::o;199:98::-;252:7;279:10;272:17;;199:98;:::o;14577:380::-;14730:1;14713:19;;:5;:19;;;14705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14811:1;14792:21;;:7;:21;;;14784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14895:6;14865:11;:18;14877:5;14865:18;;;;;;;;;;;;;;;:27;14884:7;14865:27;;;;;;;;;;;;;;;:36;;;;14933:7;14917:32;;14926:5;14917:32;;;14942:6;14917:32;;;;;;:::i;:::-;;;;;;;;14577:380;;;:::o;11796:733::-;11954:1;11936:20;;:6;:20;;;11928:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12038:1;12017:23;;:9;:23;;;12009:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12093:47;12114:6;12122:9;12133:6;12093:20;:47::i;:::-;12153:21;12177:9;:17;12187:6;12177:17;;;;;;;;;;;;;;;;12153:41;;12230:6;12213:13;:23;;12205:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12351:6;12335:13;:22;12315:9;:17;12325:6;12315:17;;;;;;;;;;;;;;;:42;;;;12403:6;12379:9;:20;12389:9;12379:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12444:9;12427:35;;12436:6;12427:35;;;12455:6;12427:35;;;;;;:::i;:::-;;;;;;;;12475:46;12495:6;12503:9;12514:6;12475:19;:46::i;:::-;11917:612;11796:733;;;:::o;13548:591::-;13651:1;13632:21;;:7;:21;;;13624:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13704:49;13725:7;13742:1;13746:6;13704:20;:49::i;:::-;13766:22;13791:9;:18;13801:7;13791:18;;;;;;;;;;;;;;;;13766:43;;13846:6;13828:14;:24;;13820:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13965:6;13948:14;:23;13927:9;:18;13937:7;13927:18;;;;;;;;;;;;;;;:44;;;;14009:6;13993:12;;:22;;;;;;;:::i;:::-;;;;;;;;14059:1;14033:37;;14042:7;14033:37;;;14063:6;14033:37;;;;;;:::i;:::-;;;;;;;;14083:48;14103:7;14120:1;14124:6;14083:19;:48::i;:::-;13613:526;13548:591;;:::o;2122:191::-;2196:16;2215:6;;;;;;;;;;;2196:25;;2241:8;2232:6;;:17;;;;;;;;;;;;;;;;;;2296:8;2265:40;;2286:8;2265:40;;;;;;;;;;;;2185:128;2122:191;:::o;20880:447::-;21032:7;:5;:7::i;:::-;21024:15;;:4;:15;;;;:40;;;;;21059:4;21043:21;;:4;:21;;;;21024:40;:57;;;;;21074:7;:5;:7::i;:::-;21068:13;;:2;:13;;;;21024:57;:80;;;;;21099:4;21085:19;;:2;:19;;;;21024:80;21021:299;;;21128:8;;;;;;;;;;;21120:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;21171:6;;;;;;;;;;;:22;;;;;21189:4;;;;;;;;;;;21181:12;;:4;:12;;;21171:22;21168:141;;;21232:5;;21222:6;:15;;:55;;;;;21268:9;;21258:6;21242:13;21252:2;21242:9;:13::i;:::-;:22;;;;:::i;:::-;21241:36;21222:55;21214:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21168:141;21021:299;20880:447;;;:::o;16286:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:227::-;7007:34;7003:1;6995:6;6991:14;6984:58;7076:10;7071:2;7063:6;7059:15;7052:35;6867:227;:::o;7100:366::-;7242:3;7263:67;7327:2;7322:3;7263:67;:::i;:::-;7256:74;;7339:93;7428:3;7339:93;:::i;:::-;7457:2;7452:3;7448:12;7441:19;;7100:366;;;:::o;7472:419::-;7638:4;7676:2;7665:9;7661:18;7653:26;;7725:9;7719:4;7715:20;7711:1;7700:9;7696:17;7689:47;7753:131;7879:4;7753:131;:::i;:::-;7745:139;;7472:419;;;:::o;7897:180::-;7945:77;7942:1;7935:88;8042:4;8039:1;8032:15;8066:4;8063:1;8056:15;8083:191;8123:3;8142:20;8160:1;8142:20;:::i;:::-;8137:25;;8176:20;8194:1;8176:20;:::i;:::-;8171:25;;8219:1;8216;8212:9;8205:16;;8240:3;8237:1;8234:10;8231:36;;;8247:18;;:::i;:::-;8231:36;8083:191;;;;:::o;8280:182::-;8420:34;8416:1;8408:6;8404:14;8397:58;8280:182;:::o;8468:366::-;8610:3;8631:67;8695:2;8690:3;8631:67;:::i;:::-;8624:74;;8707:93;8796:3;8707:93;:::i;:::-;8825:2;8820:3;8816:12;8809:19;;8468:366;;;:::o;8840:419::-;9006:4;9044:2;9033:9;9029:18;9021:26;;9093:9;9087:4;9083:20;9079:1;9068:9;9064:17;9057:47;9121:131;9247:4;9121:131;:::i;:::-;9113:139;;8840:419;;;:::o;9265:224::-;9405:34;9401:1;9393:6;9389:14;9382:58;9474:7;9469:2;9461:6;9457:15;9450:32;9265:224;:::o;9495:366::-;9637:3;9658:67;9722:2;9717:3;9658:67;:::i;:::-;9651:74;;9734:93;9823:3;9734:93;:::i;:::-;9852:2;9847:3;9843:12;9836:19;;9495:366;;;:::o;9867:419::-;10033:4;10071:2;10060:9;10056:18;10048:26;;10120:9;10114:4;10110:20;10106:1;10095:9;10091:17;10084:47;10148:131;10274:4;10148:131;:::i;:::-;10140:139;;9867:419;;;:::o;10292:332::-;10413:4;10451:2;10440:9;10436:18;10428:26;;10464:71;10532:1;10521:9;10517:17;10508:6;10464:71;:::i;:::-;10545:72;10613:2;10602:9;10598:18;10589:6;10545:72;:::i;:::-;10292:332;;;;;:::o;10630:116::-;10700:21;10715:5;10700:21;:::i;:::-;10693:5;10690:32;10680:60;;10736:1;10733;10726:12;10680:60;10630:116;:::o;10752:137::-;10806:5;10837:6;10831:13;10822:22;;10853:30;10877:5;10853:30;:::i;:::-;10752:137;;;;:::o;10895:345::-;10962:6;11011:2;10999:9;10990:7;10986:23;10982:32;10979:119;;;11017:79;;:::i;:::-;10979:119;11137:1;11162:61;11215:7;11206:6;11195:9;11191:22;11162:61;:::i;:::-;11152:71;;11108:125;10895:345;;;;:::o;11246:108::-;11323:24;11341:5;11323:24;:::i;:::-;11318:3;11311:37;11246:108;;:::o;11360:91::-;11396:7;11436:8;11429:5;11425:20;11414:31;;11360:91;;;:::o;11457:105::-;11532:23;11549:5;11532:23;:::i;:::-;11527:3;11520:36;11457:105;;:::o;11568:90::-;11603:7;11646:5;11643:1;11632:20;11621:31;;11568:90;;;:::o;11664:102::-;11737:22;11753:5;11737:22;:::i;:::-;11732:3;11725:35;11664:102;;:::o;11772:108::-;11849:24;11867:5;11849:24;:::i;:::-;11844:3;11837:37;11772:108;;:::o;11988:2135::-;12139:6;12134:3;12130:16;12230:4;12223:5;12219:16;12213:23;12249:63;12306:4;12301:3;12297:14;12283:12;12249:63;:::i;:::-;12156:166;12406:4;12399:5;12395:16;12389:23;12425:63;12482:4;12477:3;12473:14;12459:12;12425:63;:::i;:::-;12332:166;12579:4;12572:5;12568:16;12562:23;12598:61;12653:4;12648:3;12644:14;12630:12;12598:61;:::i;:::-;12508:161;12756:4;12749:5;12745:16;12739:23;12775:59;12828:4;12823:3;12819:14;12805:12;12775:59;:::i;:::-;12679:165;12931:4;12924:5;12920:16;12914:23;12950:59;13003:4;12998:3;12994:14;12980:12;12950:59;:::i;:::-;12854:165;13111:4;13104:5;13100:16;13094:23;13130:63;13187:4;13182:3;13178:14;13164:12;13130:63;:::i;:::-;13029:174;13295:4;13288:5;13284:16;13278:23;13314:63;13371:4;13366:3;13362:14;13348:12;13314:63;:::i;:::-;13213:174;13475:4;13468:5;13464:16;13458:23;13494:63;13551:4;13546:3;13542:14;13528:12;13494:63;:::i;:::-;13397:170;13655:6;13648:5;13644:18;13638:25;13676:65;13733:6;13728:3;13724:16;13710:12;13676:65;:::i;:::-;13577:174;13838:6;13831:5;13827:18;13821:25;13859:65;13916:6;13911:3;13907:16;13893:12;13859:65;:::i;:::-;13761:173;14020:6;14013:5;14009:18;14003:25;14041:65;14098:6;14093:3;14089:16;14075:12;14041:65;:::i;:::-;13944:172;12108:2015;11988:2135;;:::o;14129:331::-;14276:4;14314:3;14303:9;14299:19;14291:27;;14328:125;14450:1;14439:9;14435:17;14426:6;14328:125;:::i;:::-;14129:331;;;;:::o;14466:143::-;14523:5;14554:6;14548:13;14539:22;;14570:33;14597:5;14570:33;:::i;:::-;14466:143;;;;:::o;14615:118::-;14652:7;14692:34;14685:5;14681:46;14670:57;;14615:118;;;:::o;14739:122::-;14812:24;14830:5;14812:24;:::i;:::-;14805:5;14802:35;14792:63;;14851:1;14848;14841:12;14792:63;14739:122;:::o;14867:143::-;14924:5;14955:6;14949:13;14940:22;;14971:33;14998:5;14971:33;:::i;:::-;14867:143;;;;:::o;15016:820::-;15113:6;15121;15129;15137;15186:3;15174:9;15165:7;15161:23;15157:33;15154:120;;;15193:79;;:::i;:::-;15154:120;15313:1;15338:64;15394:7;15385:6;15374:9;15370:22;15338:64;:::i;:::-;15328:74;;15284:128;15451:2;15477:64;15533:7;15524:6;15513:9;15509:22;15477:64;:::i;:::-;15467:74;;15422:129;15590:2;15616:64;15672:7;15663:6;15652:9;15648:22;15616:64;:::i;:::-;15606:74;;15561:129;15729:2;15755:64;15811:7;15802:6;15791:9;15787:22;15755:64;:::i;:::-;15745:74;;15700:129;15016:820;;;;;;;:::o;15842:225::-;15982:34;15978:1;15970:6;15966:14;15959:58;16051:8;16046:2;16038:6;16034:15;16027:33;15842:225;:::o;16073:366::-;16215:3;16236:67;16300:2;16295:3;16236:67;:::i;:::-;16229:74;;16312:93;16401:3;16312:93;:::i;:::-;16430:2;16425:3;16421:12;16414:19;;16073:366;;;:::o;16445:419::-;16611:4;16649:2;16638:9;16634:18;16626:26;;16698:9;16692:4;16688:20;16684:1;16673:9;16669:17;16662:47;16726:131;16852:4;16726:131;:::i;:::-;16718:139;;16445:419;;;:::o;16870:223::-;17010:34;17006:1;16998:6;16994:14;16987:58;17079:6;17074:2;17066:6;17062:15;17055:31;16870:223;:::o;17099:366::-;17241:3;17262:67;17326:2;17321:3;17262:67;:::i;:::-;17255:74;;17338:93;17427:3;17338:93;:::i;:::-;17456:2;17451:3;17447:12;17440:19;;17099:366;;;:::o;17471:419::-;17637:4;17675:2;17664:9;17660:18;17652:26;;17724:9;17718:4;17714:20;17710:1;17699:9;17695:17;17688:47;17752:131;17878:4;17752:131;:::i;:::-;17744:139;;17471:419;;;:::o;17896:221::-;18036:34;18032:1;18024:6;18020:14;18013:58;18105:4;18100:2;18092:6;18088:15;18081:29;17896:221;:::o;18123:366::-;18265:3;18286:67;18350:2;18345:3;18286:67;:::i;:::-;18279:74;;18362:93;18451:3;18362:93;:::i;:::-;18480:2;18475:3;18471:12;18464:19;;18123:366;;;:::o;18495:419::-;18661:4;18699:2;18688:9;18684:18;18676:26;;18748:9;18742:4;18738:20;18734:1;18723:9;18719:17;18712:47;18776:131;18902:4;18776:131;:::i;:::-;18768:139;;18495:419;;;:::o;18920:224::-;19060:34;19056:1;19048:6;19044:14;19037:58;19129:7;19124:2;19116:6;19112:15;19105:32;18920:224;:::o;19150:366::-;19292:3;19313:67;19377:2;19372:3;19313:67;:::i;:::-;19306:74;;19389:93;19478:3;19389:93;:::i;:::-;19507:2;19502:3;19498:12;19491:19;;19150:366;;;:::o;19522:419::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19775:9;19769:4;19765:20;19761:1;19750:9;19746:17;19739:47;19803:131;19929:4;19803:131;:::i;:::-;19795:139;;19522:419;;;:::o;19947:222::-;20087:34;20083:1;20075:6;20071:14;20064:58;20156:5;20151:2;20143:6;20139:15;20132:30;19947:222;:::o;20175:366::-;20317:3;20338:67;20402:2;20397:3;20338:67;:::i;:::-;20331:74;;20414:93;20503:3;20414:93;:::i;:::-;20532:2;20527:3;20523:12;20516:19;;20175:366;;;:::o;20547:419::-;20713:4;20751:2;20740:9;20736:18;20728:26;;20800:9;20794:4;20790:20;20786:1;20775:9;20771:17;20764:47;20828:131;20954:4;20828:131;:::i;:::-;20820:139;;20547:419;;;:::o;20972:225::-;21112:34;21108:1;21100:6;21096:14;21089:58;21181:8;21176:2;21168:6;21164:15;21157:33;20972:225;:::o;21203:366::-;21345:3;21366:67;21430:2;21425:3;21366:67;:::i;:::-;21359:74;;21442:93;21531:3;21442:93;:::i;:::-;21560:2;21555:3;21551:12;21544:19;;21203:366;;;:::o;21575:419::-;21741:4;21779:2;21768:9;21764:18;21756:26;;21828:9;21822:4;21818:20;21814:1;21803:9;21799:17;21792:47;21856:131;21982:4;21856:131;:::i;:::-;21848:139;;21575:419;;;:::o;22000:220::-;22140:34;22136:1;22128:6;22124:14;22117:58;22209:3;22204:2;22196:6;22192:15;22185:28;22000:220;:::o;22226:366::-;22368:3;22389:67;22453:2;22448:3;22389:67;:::i;:::-;22382:74;;22465:93;22554:3;22465:93;:::i;:::-;22583:2;22578:3;22574:12;22567:19;;22226:366;;;:::o;22598:419::-;22764:4;22802:2;22791:9;22787:18;22779:26;;22851:9;22845:4;22841:20;22837:1;22826:9;22822:17;22815:47;22879:131;23005:4;22879:131;:::i;:::-;22871:139;;22598:419;;;:::o;23023:221::-;23163:34;23159:1;23151:6;23147:14;23140:58;23232:4;23227:2;23219:6;23215:15;23208:29;23023:221;:::o;23250:366::-;23392:3;23413:67;23477:2;23472:3;23413:67;:::i;:::-;23406:74;;23489:93;23578:3;23489:93;:::i;:::-;23607:2;23602:3;23598:12;23591:19;;23250:366;;;:::o;23622:419::-;23788:4;23826:2;23815:9;23811:18;23803:26;;23875:9;23869:4;23865:20;23861:1;23850:9;23846:17;23839:47;23903:131;24029:4;23903:131;:::i;:::-;23895:139;;23622:419;;;:::o;24047:194::-;24087:4;24107:20;24125:1;24107:20;:::i;:::-;24102:25;;24141:20;24159:1;24141:20;:::i;:::-;24136:25;;24185:1;24182;24178:9;24170:17;;24209:1;24203:4;24200:11;24197:37;;;24214:18;;:::i;:::-;24197:37;24047:194;;;;:::o;24247:162::-;24387:14;24383:1;24375:6;24371:14;24364:38;24247:162;:::o;24415:366::-;24557:3;24578:67;24642:2;24637:3;24578:67;:::i;:::-;24571:74;;24654:93;24743:3;24654:93;:::i;:::-;24772:2;24767:3;24763:12;24756:19;;24415:366;;;:::o;24787:419::-;24953:4;24991:2;24980:9;24976:18;24968:26;;25040:9;25034:4;25030:20;25026:1;25015:9;25011:17;25004:47;25068:131;25194:4;25068:131;:::i;:::-;25060:139;;24787:419;;;:::o;25212:161::-;25352:13;25348:1;25340:6;25336:14;25329:37;25212:161;:::o;25379:366::-;25521:3;25542:67;25606:2;25601:3;25542:67;:::i;:::-;25535:74;;25618:93;25707:3;25618:93;:::i;:::-;25736:2;25731:3;25727:12;25720:19;;25379:366;;;:::o;25751:419::-;25917:4;25955:2;25944:9;25940:18;25932:26;;26004:9;25998:4;25994:20;25990:1;25979:9;25975:17;25968:47;26032:131;26158:4;26032:131;:::i;:::-;26024:139;;25751:419;;;:::o

Swarm Source

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