ETH Price: $2,521.21 (-5.04%)

Token

UniDexAI (UDX)
 

Overview

Max Total Supply

1,000,000 UDX

Holders

1,077 (0.00%)

Market

Price

$0.04 @ 0.000015 ETH

Onchain Market Cap

$37,933.03

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000764 UDX

Value
$0.00 ( ~0 Eth) [0.0000%]
0x9aabf04e8ddc92d27cf4419bee24adc361b66c08
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Trade in a manner similar to Uniswap, but with the added benefits of fully integrated AI contract audits, comprehensive charting, detailed order books, live pair scanning and filtering, among many other features.

Market

Volume (24H):$380.29
Market Capitalization:$0.00
Circulating Supply:0.00 UDX
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UniDexAI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-02-14
*/

// SPDX-License-Identifier: MIT

/**
Website: https://unidexai.xyz/
Telegram: https://t.me/UniDexAI
Twitter: https://x.com/unidexai 
**/

pragma solidity 0.8.24;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function withdrawStuckEther() public onlyOwner {
        require(address(this).balance > 0, "No Ether left to withdraw");
        payable(owner()).transfer(address(this).balance);
    }
}

interface IUniswapV2Factory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract UniDexAI is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 1_000_000e18;
    uint256 private constant onePercent = 10_000e18;
    uint256 private constant minSwap = 1_000e18;
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address immutable uniswapV2Pair;
    address immutable WETH;
    address payable immutable marketingWallet;

    uint256 public buyTax;
    uint256 public sellTax;

    uint8 private launch;
    uint8 private inSwapAndLiquify;

    uint256 private launchBlock;
    uint256 public maxTxAmount = 10_000e18; 

    string private constant _name = "UniDexAI";
    string private constant _symbol = "UDX";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 10; 
        sellTax = 10; 

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            WETH
        );

        marketingWallet = payable(msg.sender);
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFeeWallet[marketingWallet] = true;
        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[address(this)] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

    function openTrading() external onlyOwner {
        launch = 1;
        launchBlock = block.number;
    }

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFeeWallet[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
    }

    function changeTax(
        uint256 newBuyTax,
        uint256 newSellTax
    ) external onlyOwner {
        require(
            newBuyTax <= 10 && newBuyTax > 0,
            "Cannot set buy tax greater than 10% or less than 1%"
        );
        require(
            newSellTax <= 10 && newSellTax > 0,
            "Cannot set sell tax greater than 10% or less than 1%"
        );
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");

        uint256 _tax;
        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(
                launch != 0 && amount <= maxTxAmount,
                "Launch / Max TxAmount 1% at launch"
            );

            if (inSwapAndLiquify == 1) {
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    if (tokensToSwap > onePercent) {
                        tokensToSwap = onePercent;
                    }
                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensToSwap,
                            0,
                            path,
                            marketingWallet,
                            block.timestamp
                        );
                    inSwapAndLiquify = 0;
                }
                _tax = sellTax;
            } else {
                _tax = 0;
            }
        }

        if (_tax != 0) {
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

            _balance[from] -= amount;
            _balance[to] += transferAmount;
            _balance[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","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":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

61010060405269021e19e0c9bab24000006006553480156200001f575f80fd5b505f62000031620006d660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000161573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000187919062000742565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050600a600281905550600a60038190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023c919062000742565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b81526004016200027a92919062000783565b6020604051808303815f875af115801562000297573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bd919062000742565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff168152505069d3c21bcecceda100000060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160095f60e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085f60e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000660620006d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620006c89190620007c8565b60405180910390a3620007e3565b5f33905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200070c82620006e1565b9050919050565b6200071e8162000700565b811462000729575f80fd5b50565b5f815190506200073c8162000713565b92915050565b5f602082840312156200075a5762000759620006dd565b5b5f62000769848285016200072c565b91505092915050565b6200077d8162000700565b82525050565b5f604082019050620007985f83018562000772565b620007a7602083018462000772565b9392505050565b5f819050919050565b620007c281620007ae565b82525050565b5f602082019050620007dd5f830184620007b7565b92915050565b60805160a05160c05160e05161256b6200081e5f395f6114f401525f61144601525f818161125001526112ad01525f6114b5015261256b5ff3fe608060405260043610610122575f3560e01c80638da5cb5b1161009f578063c9567bf911610063578063c9567bf9146103ad578063cc1776d3146103c3578063dba9d420146103ed578063dd62ed3e14610415578063f2fde38b1461045157610129565b80638da5cb5b146102df5780639036ed4d1461030957806395d89b4114610331578063a32b9e181461035b578063a9059cbb1461037157610129565b80634f7041a5116100e65780634f7041a51461022357806370a082311461024d578063715018a614610289578063751039fc1461029f5780638c0b5e22146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610479565b60405161014e9190611a50565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190611b01565b6104b6565b60405161018a9190611b59565b60405180910390f35b34801561019e575f80fd5b506101a76104d3565b6040516101b49190611b81565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190611b9a565b6104e4565b6040516101f09190611b59565b60405180910390f35b348015610204575f80fd5b5061020d610597565b60405161021a9190611c05565b60405180910390f35b34801561022e575f80fd5b5061023761059f565b6040516102449190611b81565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190611c1e565b6105a5565b6040516102809190611b81565b60405180910390f35b348015610294575f80fd5b5061029d6105eb565b005b3480156102aa575f80fd5b506102b3610739565b005b3480156102c0575f80fd5b506102c96107e0565b6040516102d69190611b81565b60405180910390f35b3480156102ea575f80fd5b506102f36107e6565b6040516103009190611c58565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a9190611c71565b61080d565b005b34801561033c575f80fd5b50610345610951565b6040516103529190611a50565b60405180910390f35b348015610366575f80fd5b5061036f61098e565b005b34801561037c575f80fd5b5061039760048036038101906103929190611b01565b610ab1565b6040516103a49190611b59565b60405180910390f35b3480156103b8575f80fd5b506103c1610ace565b005b3480156103ce575f80fd5b506103d7610b86565b6040516103e49190611b81565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e9190611c1e565b610b8c565b005b348015610420575f80fd5b5061043b60048036038101906104369190611caf565b610c78565b6040516104489190611b81565b60405180910390f35b34801561045c575f80fd5b5061047760048036038101906104729190611c1e565b610cfa565b005b60606040518060400160405280600881526020017f556e694465784149000000000000000000000000000000000000000000000000815250905090565b5f6104c96104c2610d9a565b8484610da1565b6001905092915050565b5f69d3c21bcecceda1000000905090565b5f6104f0848484610f64565b61058c846104fc610d9a565b8460085f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610543610d9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105879190611d1a565b610da1565b600190509392505050565b5f6012905090565b60025481565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105f3610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461067f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067690611d97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610741610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490611d97565b60405180910390fd5b69d3c21bcecceda1000000600681905550565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610815610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890611d97565b60405180910390fd5b600a82111580156108b157505f82115b6108f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e790611e25565b60405180910390fd5b600a811115801561090057505f81115b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690611eb3565b60405180910390fd5b81600281905550806003819055505050565b60606040518060400160405280600381526020017f5544580000000000000000000000000000000000000000000000000000000000815250905090565b610996610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1990611d97565b60405180910390fd5b5f4711610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90611f1b565b60405180910390fd5b610a6c6107e6565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610aae573d5f803e3d5ffd5b50565b5f610ac4610abd610d9a565b8484610f64565b6001905092915050565b610ad6610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990611d97565b60405180910390fd5b600160045f6101000a81548160ff021916908360ff16021790555043600581905550565b60035481565b610b94610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790611d97565b60405180910390fd5b600160095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d02610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611d97565b60405180910390fd5b610d978161189d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690611fa9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612037565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f579190611b81565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc9906120c5565b60405180910390fd5b633b9aca008111611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f9061212d565b60405180910390fd5b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110b4575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156110c1575f905061158f565b5f60045f9054906101000a900460ff1660ff16141580156110e457506006548211155b611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906121bb565b60405180910390fd5b6001600460019054906101000a900460ff1660ff160361124e578160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111899190611d1a565b925050819055508160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111dc91906121d9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112409190611b81565b60405180910390a350611898565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036112ab57600254905061158e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611589575f60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050683635c9adc5dea000008111801561136857505f600460019054906101000a900460ff1660ff16145b1561157e5769021e19e0c9bab240000081111561138d5769021e19e0c9bab240000090505b6001600460016101000a81548160ff021916908360ff1602179055505f600267ffffffffffffffff8111156113c5576113c461220c565b5b6040519080825280602002602001820160405280156113f35781602001602082028036833780820191505090505b50905030815f8151811061140a57611409612239565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061147957611478612239565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b81526004016115349594939291906123b1565b5f604051808303815f87803b15801561154b575f80fd5b505af115801561155d573d5f803e3d5ffd5b505050505f600460016101000a81548160ff021916908360ff160217905550505b60035491505061158d565b5f90505b5b5b5f811461178a575f606482846115a59190612409565b6115af9190612477565b90505f81846115be9190611d1a565b90508360075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461160c9190611d1a565b925050819055508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461165f91906121d9565b925050819055508160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116b291906121d9565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117169190611b81565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161177b9190611b81565b60405180910390a35050611896565b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117d69190611d1a565b925050819055508160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461182991906121d9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188d9190611b81565b60405180910390a35b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156119fd5780820151818401526020810190506119e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a22826119c6565b611a2c81856119d0565b9350611a3c8185602086016119e0565b611a4581611a08565b840191505092915050565b5f6020820190508181035f830152611a688184611a18565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a9d82611a74565b9050919050565b611aad81611a93565b8114611ab7575f80fd5b50565b5f81359050611ac881611aa4565b92915050565b5f819050919050565b611ae081611ace565b8114611aea575f80fd5b50565b5f81359050611afb81611ad7565b92915050565b5f8060408385031215611b1757611b16611a70565b5b5f611b2485828601611aba565b9250506020611b3585828601611aed565b9150509250929050565b5f8115159050919050565b611b5381611b3f565b82525050565b5f602082019050611b6c5f830184611b4a565b92915050565b611b7b81611ace565b82525050565b5f602082019050611b945f830184611b72565b92915050565b5f805f60608486031215611bb157611bb0611a70565b5b5f611bbe86828701611aba565b9350506020611bcf86828701611aba565b9250506040611be086828701611aed565b9150509250925092565b5f60ff82169050919050565b611bff81611bea565b82525050565b5f602082019050611c185f830184611bf6565b92915050565b5f60208284031215611c3357611c32611a70565b5b5f611c4084828501611aba565b91505092915050565b611c5281611a93565b82525050565b5f602082019050611c6b5f830184611c49565b92915050565b5f8060408385031215611c8757611c86611a70565b5b5f611c9485828601611aed565b9250506020611ca585828601611aed565b9150509250929050565b5f8060408385031215611cc557611cc4611a70565b5b5f611cd285828601611aba565b9250506020611ce385828601611aba565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d2482611ace565b9150611d2f83611ace565b9250828203905081811115611d4757611d46611ced565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d816020836119d0565b9150611d8c82611d4d565b602082019050919050565b5f6020820190508181035f830152611dae81611d75565b9050919050565b7f43616e6e6f742073657420627579207461782067726561746572207468616e205f8201527f313025206f72206c657373207468616e20312500000000000000000000000000602082015250565b5f611e0f6033836119d0565b9150611e1a82611db5565b604082019050919050565b5f6020820190508181035f830152611e3c81611e03565b9050919050565b7f43616e6e6f74207365742073656c6c207461782067726561746572207468616e5f8201527f20313025206f72206c657373207468616e203125000000000000000000000000602082015250565b5f611e9d6034836119d0565b9150611ea882611e43565b604082019050919050565b5f6020820190508181035f830152611eca81611e91565b9050919050565b7f4e6f204574686572206c65667420746f207769746864726177000000000000005f82015250565b5f611f056019836119d0565b9150611f1082611ed1565b602082019050919050565b5f6020820190508181035f830152611f3281611ef9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611f936024836119d0565b9150611f9e82611f39565b604082019050919050565b5f6020820190508181035f830152611fc081611f87565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6120216022836119d0565b915061202c82611fc7565b604082019050919050565b5f6020820190508181035f83015261204e81612015565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6120af6025836119d0565b91506120ba82612055565b604082019050919050565b5f6020820190508181035f8301526120dc816120a3565b9050919050565b7f4d696e207472616e7366657220616d74000000000000000000000000000000005f82015250565b5f6121176010836119d0565b9150612122826120e3565b602082019050919050565b5f6020820190508181035f8301526121448161210b565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e5f8201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121a56022836119d0565b91506121b08261214b565b604082019050919050565b5f6020820190508181035f8301526121d281612199565b9050919050565b5f6121e382611ace565b91506121ee83611ace565b925082820190508082111561220657612205611ced565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61229261228d61228884612266565b61226f565b611ace565b9050919050565b6122a281612278565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122da81611a93565b82525050565b5f6122eb83836122d1565b60208301905092915050565b5f602082019050919050565b5f61230d826122a8565b61231781856122b2565b9350612322836122c2565b805f5b8381101561235257815161233988826122e0565b9750612344836122f7565b925050600181019050612325565b5085935050505092915050565b5f61237961237461236f84611a74565b61226f565b611a74565b9050919050565b5f61238a8261235f565b9050919050565b5f61239b82612380565b9050919050565b6123ab81612391565b82525050565b5f60a0820190506123c45f830188611b72565b6123d16020830187612299565b81810360408301526123e38186612303565b90506123f260608301856123a2565b6123ff6080830184611b72565b9695505050505050565b5f61241382611ace565b915061241e83611ace565b925082820261242c81611ace565b9150828204841483151761244357612442611ced565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61248182611ace565b915061248c83611ace565b92508261249c5761249b61244a565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6125016026836119d0565b915061250c826124a7565b604082019050919050565b5f6020820190508181035f83015261252e816124f5565b905091905056fea2646970667358221220c24f6197353fa9a140c8e7916737af868a43c55878c8034a2610cd0259a41b1464736f6c63430008180033

Deployed Bytecode

0x608060405260043610610122575f3560e01c80638da5cb5b1161009f578063c9567bf911610063578063c9567bf9146103ad578063cc1776d3146103c3578063dba9d420146103ed578063dd62ed3e14610415578063f2fde38b1461045157610129565b80638da5cb5b146102df5780639036ed4d1461030957806395d89b4114610331578063a32b9e181461035b578063a9059cbb1461037157610129565b80634f7041a5116100e65780634f7041a51461022357806370a082311461024d578063715018a614610289578063751039fc1461029f5780638c0b5e22146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610479565b60405161014e9190611a50565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190611b01565b6104b6565b60405161018a9190611b59565b60405180910390f35b34801561019e575f80fd5b506101a76104d3565b6040516101b49190611b81565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190611b9a565b6104e4565b6040516101f09190611b59565b60405180910390f35b348015610204575f80fd5b5061020d610597565b60405161021a9190611c05565b60405180910390f35b34801561022e575f80fd5b5061023761059f565b6040516102449190611b81565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190611c1e565b6105a5565b6040516102809190611b81565b60405180910390f35b348015610294575f80fd5b5061029d6105eb565b005b3480156102aa575f80fd5b506102b3610739565b005b3480156102c0575f80fd5b506102c96107e0565b6040516102d69190611b81565b60405180910390f35b3480156102ea575f80fd5b506102f36107e6565b6040516103009190611c58565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a9190611c71565b61080d565b005b34801561033c575f80fd5b50610345610951565b6040516103529190611a50565b60405180910390f35b348015610366575f80fd5b5061036f61098e565b005b34801561037c575f80fd5b5061039760048036038101906103929190611b01565b610ab1565b6040516103a49190611b59565b60405180910390f35b3480156103b8575f80fd5b506103c1610ace565b005b3480156103ce575f80fd5b506103d7610b86565b6040516103e49190611b81565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e9190611c1e565b610b8c565b005b348015610420575f80fd5b5061043b60048036038101906104369190611caf565b610c78565b6040516104489190611b81565b60405180910390f35b34801561045c575f80fd5b5061047760048036038101906104729190611c1e565b610cfa565b005b60606040518060400160405280600881526020017f556e694465784149000000000000000000000000000000000000000000000000815250905090565b5f6104c96104c2610d9a565b8484610da1565b6001905092915050565b5f69d3c21bcecceda1000000905090565b5f6104f0848484610f64565b61058c846104fc610d9a565b8460085f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610543610d9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105879190611d1a565b610da1565b600190509392505050565b5f6012905090565b60025481565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105f3610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461067f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067690611d97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610741610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490611d97565b60405180910390fd5b69d3c21bcecceda1000000600681905550565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610815610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890611d97565b60405180910390fd5b600a82111580156108b157505f82115b6108f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e790611e25565b60405180910390fd5b600a811115801561090057505f81115b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690611eb3565b60405180910390fd5b81600281905550806003819055505050565b60606040518060400160405280600381526020017f5544580000000000000000000000000000000000000000000000000000000000815250905090565b610996610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1990611d97565b60405180910390fd5b5f4711610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90611f1b565b60405180910390fd5b610a6c6107e6565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610aae573d5f803e3d5ffd5b50565b5f610ac4610abd610d9a565b8484610f64565b6001905092915050565b610ad6610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990611d97565b60405180910390fd5b600160045f6101000a81548160ff021916908360ff16021790555043600581905550565b60035481565b610b94610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790611d97565b60405180910390fd5b600160095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d02610d9a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590611d97565b60405180910390fd5b610d978161189d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690611fa9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612037565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f579190611b81565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc9906120c5565b60405180910390fd5b633b9aca008111611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f9061212d565b60405180910390fd5b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110b4575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156110c1575f905061158f565b5f60045f9054906101000a900460ff1660ff16141580156110e457506006548211155b611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906121bb565b60405180910390fd5b6001600460019054906101000a900460ff1660ff160361124e578160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111899190611d1a565b925050819055508160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111dc91906121d9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112409190611b81565b60405180910390a350611898565b7f000000000000000000000000a97b456c4c7716b1dbd2fb433e376ef57c438de673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036112ab57600254905061158e565b7f000000000000000000000000a97b456c4c7716b1dbd2fb433e376ef57c438de673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611589575f60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050683635c9adc5dea000008111801561136857505f600460019054906101000a900460ff1660ff16145b1561157e5769021e19e0c9bab240000081111561138d5769021e19e0c9bab240000090505b6001600460016101000a81548160ff021916908360ff1602179055505f600267ffffffffffffffff8111156113c5576113c461220c565b5b6040519080825280602002602001820160405280156113f35781602001602082028036833780820191505090505b50905030815f8151811061140a57611409612239565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061147957611478612239565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f000000000000000000000000ce875fdf26941f68910f90c721c77dfd4539a8de426040518663ffffffff1660e01b81526004016115349594939291906123b1565b5f604051808303815f87803b15801561154b575f80fd5b505af115801561155d573d5f803e3d5ffd5b505050505f600460016101000a81548160ff021916908360ff160217905550505b60035491505061158d565b5f90505b5b5b5f811461178a575f606482846115a59190612409565b6115af9190612477565b90505f81846115be9190611d1a565b90508360075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461160c9190611d1a565b925050819055508060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461165f91906121d9565b925050819055508160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116b291906121d9565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117169190611b81565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161177b9190611b81565b60405180910390a35050611896565b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117d69190611d1a565b925050819055508160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461182991906121d9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188d9190611b81565b60405180910390a35b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156119fd5780820151818401526020810190506119e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a22826119c6565b611a2c81856119d0565b9350611a3c8185602086016119e0565b611a4581611a08565b840191505092915050565b5f6020820190508181035f830152611a688184611a18565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a9d82611a74565b9050919050565b611aad81611a93565b8114611ab7575f80fd5b50565b5f81359050611ac881611aa4565b92915050565b5f819050919050565b611ae081611ace565b8114611aea575f80fd5b50565b5f81359050611afb81611ad7565b92915050565b5f8060408385031215611b1757611b16611a70565b5b5f611b2485828601611aba565b9250506020611b3585828601611aed565b9150509250929050565b5f8115159050919050565b611b5381611b3f565b82525050565b5f602082019050611b6c5f830184611b4a565b92915050565b611b7b81611ace565b82525050565b5f602082019050611b945f830184611b72565b92915050565b5f805f60608486031215611bb157611bb0611a70565b5b5f611bbe86828701611aba565b9350506020611bcf86828701611aba565b9250506040611be086828701611aed565b9150509250925092565b5f60ff82169050919050565b611bff81611bea565b82525050565b5f602082019050611c185f830184611bf6565b92915050565b5f60208284031215611c3357611c32611a70565b5b5f611c4084828501611aba565b91505092915050565b611c5281611a93565b82525050565b5f602082019050611c6b5f830184611c49565b92915050565b5f8060408385031215611c8757611c86611a70565b5b5f611c9485828601611aed565b9250506020611ca585828601611aed565b9150509250929050565b5f8060408385031215611cc557611cc4611a70565b5b5f611cd285828601611aba565b9250506020611ce385828601611aba565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d2482611ace565b9150611d2f83611ace565b9250828203905081811115611d4757611d46611ced565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d816020836119d0565b9150611d8c82611d4d565b602082019050919050565b5f6020820190508181035f830152611dae81611d75565b9050919050565b7f43616e6e6f742073657420627579207461782067726561746572207468616e205f8201527f313025206f72206c657373207468616e20312500000000000000000000000000602082015250565b5f611e0f6033836119d0565b9150611e1a82611db5565b604082019050919050565b5f6020820190508181035f830152611e3c81611e03565b9050919050565b7f43616e6e6f74207365742073656c6c207461782067726561746572207468616e5f8201527f20313025206f72206c657373207468616e203125000000000000000000000000602082015250565b5f611e9d6034836119d0565b9150611ea882611e43565b604082019050919050565b5f6020820190508181035f830152611eca81611e91565b9050919050565b7f4e6f204574686572206c65667420746f207769746864726177000000000000005f82015250565b5f611f056019836119d0565b9150611f1082611ed1565b602082019050919050565b5f6020820190508181035f830152611f3281611ef9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611f936024836119d0565b9150611f9e82611f39565b604082019050919050565b5f6020820190508181035f830152611fc081611f87565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6120216022836119d0565b915061202c82611fc7565b604082019050919050565b5f6020820190508181035f83015261204e81612015565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6120af6025836119d0565b91506120ba82612055565b604082019050919050565b5f6020820190508181035f8301526120dc816120a3565b9050919050565b7f4d696e207472616e7366657220616d74000000000000000000000000000000005f82015250565b5f6121176010836119d0565b9150612122826120e3565b602082019050919050565b5f6020820190508181035f8301526121448161210b565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e5f8201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121a56022836119d0565b91506121b08261214b565b604082019050919050565b5f6020820190508181035f8301526121d281612199565b9050919050565b5f6121e382611ace565b91506121ee83611ace565b925082820190508082111561220657612205611ced565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61229261228d61228884612266565b61226f565b611ace565b9050919050565b6122a281612278565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122da81611a93565b82525050565b5f6122eb83836122d1565b60208301905092915050565b5f602082019050919050565b5f61230d826122a8565b61231781856122b2565b9350612322836122c2565b805f5b8381101561235257815161233988826122e0565b9750612344836122f7565b925050600181019050612325565b5085935050505092915050565b5f61237961237461236f84611a74565b61226f565b611a74565b9050919050565b5f61238a8261235f565b9050919050565b5f61239b82612380565b9050919050565b6123ab81612391565b82525050565b5f60a0820190506123c45f830188611b72565b6123d16020830187612299565b81810360408301526123e38186612303565b90506123f260608301856123a2565b6123ff6080830184611b72565b9695505050505050565b5f61241382611ace565b915061241e83611ace565b925082820261242c81611ace565b9150828204841483151761244357612442611ced565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61248182611ace565b915061248c83611ace565b92508261249c5761249b61244a565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6125016026836119d0565b915061250c826124a7565b604082019050919050565b5f6020820190508181035f83015261252e816124f5565b905091905056fea2646970667358221220c24f6197353fa9a140c8e7916737af868a43c55878c8034a2610cd0259a41b1464736f6c63430008180033

Deployed Bytecode Sourcemap

2978:6896:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4885:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5772:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5162:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5966:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5071:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3408:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5270:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:148;;;;;;;;;;;;;:::i;:::-;;6911:88;;;;;;;;;;;;;:::i;:::-;;3567:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1497:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7007:461;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4976:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2258:188;;;;;;;;;;;;;:::i;:::-;;5396:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6667:108;;;;;;;;;;;;;:::i;:::-;;3436:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6783:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5596:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1711:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4885:83;4922:13;4955:5;;;;;;;;;;;;;;;;;4948:12;;4885:83;:::o;5772:186::-;5872:4;5889:39;5898:12;:10;:12::i;:::-;5912:7;5921:6;5889:8;:39::i;:::-;5946:4;5939:11;;5772:186;;;;:::o;5162:100::-;5215:7;3071:12;5235:19;;5162:100;:::o;5966:350::-;6098:4;6115:36;6125:6;6133:9;6144:6;6115:9;:36::i;:::-;6162:124;6185:6;6206:12;:10;:12::i;:::-;6269:6;6233:11;:19;6245:6;6233:19;;;;;;;;;;;;;;;:33;6253:12;:10;:12::i;:::-;6233:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6162:8;:124::i;:::-;6304:4;6297:11;;5966:350;;;;;:::o;5071:83::-;5112:5;3229:2;5130:16;;5071:83;:::o;3408:21::-;;;;:::o;5270:118::-;5336:7;5363:8;:17;5372:7;5363:17;;;;;;;;;;;;;;;;5356:24;;5270:118;;;:::o;2102:148::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:1:::1;2172:40;;2193:6;::::0;::::1;;;;;;;;2172:40;;;;;;;;;;;;2240:1;2223:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2102:148::o:0;6911:88::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3071:12:::1;6965:11;:26;;;;6911:88::o:0;3567:38::-;;;;:::o;1497:79::-;1535:7;1562:6;;;;;;;;;;;1555:13;;1497:79;:::o;7007:461::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7155:2:::1;7142:9;:15;;:32;;;;;7173:1;7161:9;:13;7142:32;7120:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;7300:2;7286:10;:16;;:34;;;;;7319:1;7306:10;:14;7286:34;7264:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;7420:9;7411:6;:18;;;;7450:10;7440:7;:20;;;;7007:461:::0;;:::o;4976:87::-;5015:13;5048:7;;;;;;;;;;;;;;;;;5041:14;;4976:87;:::o;2258:188::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2348:1:::1;2324:21;:25;2316:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2398:7;:5;:7::i;:::-;2390:25;;:48;2416:21;2390:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2258:188::o:0;5396:192::-;5499:4;5516:42;5526:12;:10;:12::i;:::-;5540:9;5551:6;5516:9;:42::i;:::-;5576:4;5569:11;;5396:192;;;;:::o;6667:108::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6729:1:::1;6720:6;;:10;;;;;;;;;;;;;;;;;;6755:12;6741:11;:26;;;;6667:108::o:0;3436:22::-;;;;:::o;6783:120::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6891:4:::1;6856:24;:32;6881:6;6856:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;6783:120:::0;:::o;5596:168::-;5702:7;5729:11;:18;5741:5;5729:18;;;;;;;;;;;;;;;:27;5748:7;5729:27;;;;;;;;;;;;;;;;5722:34;;5596:168;;;;:::o;1711:109::-;1634:12;:10;:12::i;:::-;1624:22;;:6;;;;;;;;;;:22;;;1616:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1784:28:::1;1803:8;1784:18;:28::i;:::-;1711:109:::0;:::o;206:98::-;259:7;286:10;279:17;;206:98;:::o;6324:335::-;6434:1;6417:19;;:5;:19;;;6409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6515:1;6496:21;;:7;:21;;;6488:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6597:6;6567:11;:18;6579:5;6567:18;;;;;;;;;;;;;;;:27;6586:7;6567:27;;;;;;;;;;;;;;;:36;;;;6635:7;6619:32;;6628:5;6619:32;;;6644:6;6619:32;;;;;;:::i;:::-;;;;;;;;6324:335;;;:::o;7476:2358::-;7580:1;7564:18;;:4;:18;;;7556:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7652:3;7643:6;:12;7635:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7689:12;7716:24;:30;7741:4;7716:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;7750:24;:28;7775:2;7750:28;;;;;;;;;;;;;;;;;;;;;;;;;7716:62;7712:1569;;;7802:1;7795:8;;7712:1569;;;7872:1;7862:6;;;;;;;;;;;:11;;;;:36;;;;;7887:11;;7877:6;:21;;7862:36;7836:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;8009:1;7989:16;;;;;;;;;;;:21;;;7985:204;;8049:6;8031:8;:14;8040:4;8031:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;8090:6;8074:8;:12;8083:2;8074:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;8137:2;8122:26;;8131:4;8122:26;;;8141:6;8122:26;;;;;;:::i;:::-;;;;;;;;8167:7;;;7985:204;8217:13;8209:21;;:4;:21;;;8205:1065;;8258:6;;8251:13;;8205:1065;;;8296:13;8290:19;;:2;:19;;;8286:984;;8330:20;8353:8;:23;8370:4;8353:23;;;;;;;;;;;;;;;;8330:46;;3179:8;8399:12;:22;:47;;;;;8445:1;8425:16;;;;;;;;;;;:21;;;8399:47;8395:778;;;3128:9;8475:12;:25;8471:107;;;3128:9;8529:25;;8471:107;8619:1;8600:16;;:20;;;;;;;;;;;;;;;;;;8643:21;8681:1;8667:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8643:40;;8724:4;8706;8711:1;8706:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;8762:4;8752;8757:1;8752:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;8789:15;:92;;;8912:12;8955:1;8987:4;9022:15;9068;8789:321;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9152:1;9133:16;;:20;;;;;;;;;;;;;;;;;;8448:725;8395:778;9198:7;;9191:14;;8311:910;8286:984;;;9253:1;9246:8;;8286:984;8205:1065;7712:1569;9305:1;9297:4;:9;9293:534;;9323:17;9361:3;9353:4;9344:6;:13;;;;:::i;:::-;9343:21;;;;:::i;:::-;9323:41;;9379:22;9413:9;9404:6;:18;;;;:::i;:::-;9379:43;;9457:6;9439:8;:14;9448:4;9439:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;9494:14;9478:8;:12;9487:2;9478:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9550:9;9523:8;:23;9540:4;9523:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;9602:4;9579:40;;9588:4;9579:40;;;9609:9;9579:40;;;;;;:::i;:::-;;;;;;;;9654:2;9639:34;;9648:4;9639:34;;;9658:14;9639:34;;;;;;:::i;:::-;;;;;;;;9308:377;;9293:534;;;9724:6;9706:8;:14;9715:4;9706:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;9761:6;9745:8;:12;9754:2;9745:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;9804:2;9789:26;;9798:4;9789:26;;;9808:6;9789:26;;;;;;:::i;:::-;;;;;;;;9293:534;7545:2289;7476:2358;;;;:::o;1828:266::-;1936:1;1916:22;;:8;:22;;;1894:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2049:8;2020:38;;2041:6;;;;;;;;;;2020:38;;;;;;;;;;;;2078:8;2069:6;;:17;;;;;;;;;;;;;;;;;;1828:266;:::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:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:194;6726:4;6746:20;6764:1;6746:20;:::i;:::-;6741:25;;6780:20;6798:1;6780:20;:::i;:::-;6775:25;;6824:1;6821;6817:9;6809:17;;6848:1;6842:4;6839:11;6836:37;;;6853:18;;:::i;:::-;6836:37;6686:194;;;;:::o;6886:182::-;7026:34;7022:1;7014:6;7010:14;7003:58;6886:182;:::o;7074:366::-;7216:3;7237:67;7301:2;7296:3;7237:67;:::i;:::-;7230:74;;7313:93;7402:3;7313:93;:::i;:::-;7431:2;7426:3;7422:12;7415:19;;7074:366;;;:::o;7446:419::-;7612:4;7650:2;7639:9;7635:18;7627:26;;7699:9;7693:4;7689:20;7685:1;7674:9;7670:17;7663:47;7727:131;7853:4;7727:131;:::i;:::-;7719:139;;7446:419;;;:::o;7871:238::-;8011:34;8007:1;7999:6;7995:14;7988:58;8080:21;8075:2;8067:6;8063:15;8056:46;7871:238;:::o;8115:366::-;8257:3;8278:67;8342:2;8337:3;8278:67;:::i;:::-;8271:74;;8354:93;8443:3;8354:93;:::i;:::-;8472:2;8467:3;8463:12;8456:19;;8115:366;;;:::o;8487:419::-;8653:4;8691:2;8680:9;8676:18;8668:26;;8740:9;8734:4;8730:20;8726:1;8715:9;8711:17;8704:47;8768:131;8894:4;8768:131;:::i;:::-;8760:139;;8487:419;;;:::o;8912:239::-;9052:34;9048:1;9040:6;9036:14;9029:58;9121:22;9116:2;9108:6;9104:15;9097:47;8912:239;:::o;9157:366::-;9299:3;9320:67;9384:2;9379:3;9320:67;:::i;:::-;9313:74;;9396:93;9485:3;9396:93;:::i;:::-;9514:2;9509:3;9505:12;9498:19;;9157:366;;;:::o;9529:419::-;9695:4;9733:2;9722:9;9718:18;9710:26;;9782:9;9776:4;9772:20;9768:1;9757:9;9753:17;9746:47;9810:131;9936:4;9810:131;:::i;:::-;9802:139;;9529:419;;;:::o;9954:175::-;10094:27;10090:1;10082:6;10078:14;10071:51;9954:175;:::o;10135:366::-;10277:3;10298:67;10362:2;10357:3;10298:67;:::i;:::-;10291:74;;10374:93;10463:3;10374:93;:::i;:::-;10492:2;10487:3;10483:12;10476:19;;10135:366;;;:::o;10507:419::-;10673:4;10711:2;10700:9;10696:18;10688:26;;10760:9;10754:4;10750:20;10746:1;10735:9;10731:17;10724:47;10788:131;10914:4;10788:131;:::i;:::-;10780:139;;10507:419;;;:::o;10932:223::-;11072:34;11068:1;11060:6;11056:14;11049:58;11141:6;11136:2;11128:6;11124:15;11117:31;10932:223;:::o;11161:366::-;11303:3;11324:67;11388:2;11383:3;11324:67;:::i;:::-;11317:74;;11400:93;11489:3;11400:93;:::i;:::-;11518:2;11513:3;11509:12;11502:19;;11161:366;;;:::o;11533:419::-;11699:4;11737:2;11726:9;11722:18;11714:26;;11786:9;11780:4;11776:20;11772:1;11761:9;11757:17;11750:47;11814:131;11940:4;11814:131;:::i;:::-;11806:139;;11533:419;;;:::o;11958:221::-;12098:34;12094:1;12086:6;12082:14;12075:58;12167:4;12162:2;12154:6;12150:15;12143:29;11958:221;:::o;12185:366::-;12327:3;12348:67;12412:2;12407:3;12348:67;:::i;:::-;12341:74;;12424:93;12513:3;12424:93;:::i;:::-;12542:2;12537:3;12533:12;12526:19;;12185:366;;;:::o;12557:419::-;12723:4;12761:2;12750:9;12746:18;12738:26;;12810:9;12804:4;12800:20;12796:1;12785:9;12781:17;12774:47;12838:131;12964:4;12838:131;:::i;:::-;12830:139;;12557:419;;;:::o;12982:224::-;13122:34;13118:1;13110:6;13106:14;13099:58;13191:7;13186:2;13178:6;13174:15;13167:32;12982:224;:::o;13212:366::-;13354:3;13375:67;13439:2;13434:3;13375:67;:::i;:::-;13368:74;;13451:93;13540:3;13451:93;:::i;:::-;13569:2;13564:3;13560:12;13553:19;;13212:366;;;:::o;13584:419::-;13750:4;13788:2;13777:9;13773:18;13765:26;;13837:9;13831:4;13827:20;13823:1;13812:9;13808:17;13801:47;13865:131;13991:4;13865:131;:::i;:::-;13857:139;;13584:419;;;:::o;14009:166::-;14149:18;14145:1;14137:6;14133:14;14126:42;14009:166;:::o;14181:366::-;14323:3;14344:67;14408:2;14403:3;14344:67;:::i;:::-;14337:74;;14420:93;14509:3;14420:93;:::i;:::-;14538:2;14533:3;14529:12;14522:19;;14181:366;;;:::o;14553:419::-;14719:4;14757:2;14746:9;14742:18;14734:26;;14806:9;14800:4;14796:20;14792:1;14781:9;14777:17;14770:47;14834:131;14960:4;14834:131;:::i;:::-;14826:139;;14553:419;;;:::o;14978:221::-;15118:34;15114:1;15106:6;15102:14;15095:58;15187:4;15182:2;15174:6;15170:15;15163:29;14978:221;:::o;15205:366::-;15347:3;15368:67;15432:2;15427:3;15368:67;:::i;:::-;15361:74;;15444:93;15533:3;15444:93;:::i;:::-;15562:2;15557:3;15553:12;15546:19;;15205:366;;;:::o;15577:419::-;15743:4;15781:2;15770:9;15766:18;15758:26;;15830:9;15824:4;15820:20;15816:1;15805:9;15801:17;15794:47;15858:131;15984:4;15858:131;:::i;:::-;15850:139;;15577:419;;;:::o;16002:191::-;16042:3;16061:20;16079:1;16061:20;:::i;:::-;16056:25;;16095:20;16113:1;16095:20;:::i;:::-;16090:25;;16138:1;16135;16131:9;16124:16;;16159:3;16156:1;16153:10;16150:36;;;16166:18;;:::i;:::-;16150:36;16002:191;;;;:::o;16199:180::-;16247:77;16244:1;16237:88;16344:4;16341:1;16334:15;16368:4;16365:1;16358:15;16385:180;16433:77;16430:1;16423:88;16530:4;16527:1;16520:15;16554:4;16551:1;16544:15;16571:85;16616:7;16645:5;16634:16;;16571:85;;;:::o;16662:60::-;16690:3;16711:5;16704:12;;16662:60;;;:::o;16728:158::-;16786:9;16819:61;16837:42;16846:32;16872:5;16846:32;:::i;:::-;16837:42;:::i;:::-;16819:61;:::i;:::-;16806:74;;16728:158;;;:::o;16892:147::-;16987:45;17026:5;16987:45;:::i;:::-;16982:3;16975:58;16892:147;;:::o;17045:114::-;17112:6;17146:5;17140:12;17130:22;;17045:114;;;:::o;17165:184::-;17264:11;17298:6;17293:3;17286:19;17338:4;17333:3;17329:14;17314:29;;17165:184;;;;:::o;17355:132::-;17422:4;17445:3;17437:11;;17475:4;17470:3;17466:14;17458:22;;17355:132;;;:::o;17493:108::-;17570:24;17588:5;17570:24;:::i;:::-;17565:3;17558:37;17493:108;;:::o;17607:179::-;17676:10;17697:46;17739:3;17731:6;17697:46;:::i;:::-;17775:4;17770:3;17766:14;17752:28;;17607:179;;;;:::o;17792:113::-;17862:4;17894;17889:3;17885:14;17877:22;;17792:113;;;:::o;17941:732::-;18060:3;18089:54;18137:5;18089:54;:::i;:::-;18159:86;18238:6;18233:3;18159:86;:::i;:::-;18152:93;;18269:56;18319:5;18269:56;:::i;:::-;18348:7;18379:1;18364:284;18389:6;18386:1;18383:13;18364:284;;;18465:6;18459:13;18492:63;18551:3;18536:13;18492:63;:::i;:::-;18485:70;;18578:60;18631:6;18578:60;:::i;:::-;18568:70;;18424:224;18411:1;18408;18404:9;18399:14;;18364:284;;;18368:14;18664:3;18657:10;;18065:608;;;17941:732;;;;:::o;18679:142::-;18729:9;18762:53;18780:34;18789:24;18807:5;18789:24;:::i;:::-;18780:34;:::i;:::-;18762:53;:::i;:::-;18749:66;;18679:142;;;:::o;18827:126::-;18877:9;18910:37;18941:5;18910:37;:::i;:::-;18897:50;;18827:126;;;:::o;18959:134::-;19017:9;19050:37;19081:5;19050:37;:::i;:::-;19037:50;;18959:134;;;:::o;19099:147::-;19194:45;19233:5;19194:45;:::i;:::-;19189:3;19182:58;19099:147;;:::o;19252:847::-;19523:4;19561:3;19550:9;19546:19;19538:27;;19575:71;19643:1;19632:9;19628:17;19619:6;19575:71;:::i;:::-;19656:80;19732:2;19721:9;19717:18;19708:6;19656:80;:::i;:::-;19783:9;19777:4;19773:20;19768:2;19757:9;19753:18;19746:48;19811:108;19914:4;19905:6;19811:108;:::i;:::-;19803:116;;19929:80;20005:2;19994:9;19990:18;19981:6;19929:80;:::i;:::-;20019:73;20087:3;20076:9;20072:19;20063:6;20019:73;:::i;:::-;19252:847;;;;;;;;:::o;20105:410::-;20145:7;20168:20;20186:1;20168:20;:::i;:::-;20163:25;;20202:20;20220:1;20202:20;:::i;:::-;20197:25;;20257:1;20254;20250:9;20279:30;20297:11;20279:30;:::i;:::-;20268:41;;20458:1;20449:7;20445:15;20442:1;20439:22;20419:1;20412:9;20392:83;20369:139;;20488:18;;:::i;:::-;20369:139;20153:362;20105:410;;;;:::o;20521:180::-;20569:77;20566:1;20559:88;20666:4;20663:1;20656:15;20690:4;20687:1;20680:15;20707:185;20747:1;20764:20;20782:1;20764:20;:::i;:::-;20759:25;;20798:20;20816:1;20798:20;:::i;:::-;20793:25;;20837:1;20827:35;;20842:18;;:::i;:::-;20827:35;20884:1;20881;20877:9;20872:14;;20707:185;;;;:::o;20898:225::-;21038:34;21034:1;21026:6;21022:14;21015:58;21107:8;21102:2;21094:6;21090:15;21083:33;20898:225;:::o;21129:366::-;21271:3;21292:67;21356:2;21351:3;21292:67;:::i;:::-;21285:74;;21368:93;21457:3;21368:93;:::i;:::-;21486:2;21481:3;21477:12;21470:19;;21129:366;;;:::o;21501:419::-;21667:4;21705:2;21694:9;21690:18;21682:26;;21754:9;21748:4;21744:20;21740:1;21729:9;21725:17;21718:47;21782:131;21908:4;21782:131;:::i;:::-;21774:139;;21501:419;;;:::o

Swarm Source

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