ETH Price: $2,297.38 (-0.82%)

Token

屌茅 (屌茅)
 

Overview

Max Total Supply

1,000,000,000 屌茅

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,044,574.167035250259177972 屌茅

Value
$0.00
0x9DC67C29F8dEFEf916bEC61F31A4Bf74a80A7883
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:
DiaoMao

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-09-05
*/

// SPDX-License-Identifier: MIT

/**

Website: https://www.diao-mao.club
Telegram: https://t.me/diaomaoerc
Twitter: https://twitter.com/DIAOMAO_ETH

**/
pragma solidity 0.8.0;

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;
    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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DiaoMao is Context, IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _swapTime = 0;
    uint256 private _buyCount = 0;
    uint256 private _initialBuyTax = 60;
    uint256 private _initialSellTax = 60;
    uint256 private _finalBuyTax = 3;
    uint256 private _finalSellTax = 3;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceBuyTaxDelaySeconds = 180;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _reduceSellTaxDelaySeconds = 300;

    string private constant _name = unicode"屌茅";
    string private constant _symbol = unicode"屌茅";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = (_tTotal * 1) / 100;
    uint256 public _maxWalletSize = (_tTotal * 1) / 100;
    uint256 private _taxSwapThreshold = (_tTotal * 2) / 1000;
    uint256 private _maxTaxSwap = (_tTotal * 1) / 100;
    uint256 private _teamShare = (_tTotal * 5) / 100;

    mapping(address => bool) public whitelist;
    uint256 private _whitelistMaxAmount = (_tTotal * 1) / 100;

    IUniswapV2Router02 private uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner() && !whitelist[to]) {
            // Delay transfers
            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "Only one transfer per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            // buy
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                uint256 tax = (_buyCount > _reduceBuyTaxAt &&
                    _swapTime + _reduceBuyTaxDelaySeconds < block.timestamp)
                    ? _finalBuyTax
                    : _initialBuyTax;

                taxAmount = (amount * tax) / 100;

                _buyCount++;
            }

            // sell
            if (to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                uint256 tax = (_buyCount > _reduceSellTaxAt &&
                    _swapTime + _reduceSellTaxDelaySeconds < block.timestamp)
                    ? _finalSellTax
                    : _initialSellTax;
                taxAmount = (amount * tax) / 100;
            }

            // swap tokens for eth
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        } else if (whitelist[to]) {
            require(
                amount <= _whitelistMaxAmount,
                "Exceeds the _whitelistMaxAmount."
            );
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount - taxAmount;
        emit Transfer(from, to, amount - taxAmount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        _approve(address(this), address(uniswapV2Router), _tTotal);

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

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)) - _teamShare,
            0,
            0,
            owner(),
            block.timestamp
        );

        swapEnabled = true;
        tradingOpen = true;
        _swapTime = block.timestamp;
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function addWhitelist(address[] calldata addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            whitelist[addresses[i]] = true;
        }
    }

    function removeWhitelist(address[] calldata addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            whitelist[addresses[i]] = false;
        }
    }

    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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff1916905560006006819055600755603c60088190556009556003600a818155600b919091556014600c5560b4600d55601e600e5561012c600f55606490620000559060129062000436565b6200006590633b9aca006200052e565b620000729060016200052e565b6200007e9190620003c8565b6010556064620000916012600a62000436565b620000a190633b9aca006200052e565b620000ae9060016200052e565b620000ba9190620003c8565b6011556103e8620000ce6012600a62000436565b620000de90633b9aca006200052e565b620000eb9060026200052e565b620000f79190620003c8565b60125560646012600a6200010c919062000436565b6200011c90633b9aca006200052e565b620001299060016200052e565b620001359190620003c8565b6013556064620001486012600a62000436565b6200015890633b9aca006200052e565b620001659060056200052e565b620001719190620003c8565b6014556064620001846012600a62000436565b6200019490633b9aca006200052e565b620001a19060016200052e565b620001ad9190620003c8565b601655601780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556018805461ffff60a81b19169055348015620001f157600080fd5b506000620001fe620003ac565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000252620003ac565b600580546001600160a01b039290921661010002610100600160a81b0319909216919091179055620002876012600a62000436565b6200029790633b9aca006200052e565b60016000620002a5620003ac565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620002df620003b060201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554610100900490911683529120805490921617905562000345620003ac565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200037f6012600a62000436565b6200038f90633b9aca006200052e565b6040516200039e9190620003bf565b60405180910390a362000566565b3390565b6000546001600160a01b031690565b90815260200190565b600082620003e457634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620003fd57506200042d565b81870482111562000412576200041262000550565b808616156200042057918102915b9490941c938002620003ec565b94509492505050565b60006200044a60001960ff85168462000451565b9392505050565b60008262000462575060016200044a565b8162000471575060006200044a565b81600181146200048a57600281146200049557620004c9565b60019150506200044a565b60ff841115620004a957620004a962000550565b6001841b915084821115620004c257620004c262000550565b506200044a565b5060208310610133831016604e8410600b841016171562000501575081810a83811115620004fb57620004fb62000550565b6200044a565b620005108484846001620003e9565b80860482111562000525576200052562000550565b02949350505050565b60008160001904831182151516156200054b576200054b62000550565b500290565b634e487b7160e01b600052601160045260246000fd5b6118ff80620005766000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102d8578063c876d0b9146102f8578063c9567bf91461030d578063dd62ed3e14610322578063edac985b146103425761012a565b80637d1db4a51461026c5780638da5cb5b146102815780638f9a55c0146102a357806395d89b411461012f5780639b19251a146102b85761012a565b8063313ce567116100e7578063313ce567146101eb57806351bc3c851461020d57806370a0823114610222578063715018a614610242578063751039fc146102575761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461018757806323245216146101a957806323b872dd146101cb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610362565b6040516101519190611442565b60405180910390f35b34801561016657600080fd5b5061017a610175366004611307565b610382565b6040516101519190611437565b34801561019357600080fd5b5061019c61039f565b6040516101519190611674565b3480156101b557600080fd5b506101c96101c4366004611332565b6103c0565b005b3480156101d757600080fd5b5061017a6101e63660046112c7565b610483565b3480156101f757600080fd5b506102006104f9565b60405161015191906116ed565b34801561021957600080fd5b506101c96104fe565b34801561022e57600080fd5b5061019c61023d366004611257565b61055a565b34801561024e57600080fd5b506101c9610575565b34801561026357600080fd5b506101c96105f4565b34801561027857600080fd5b5061019c6106b5565b34801561028d57600080fd5b506102966106bb565b60405161015191906113ce565b3480156102af57600080fd5b5061019c6106ca565b3480156102c457600080fd5b5061017a6102d3366004611257565b6106d0565b3480156102e457600080fd5b5061017a6102f3366004611307565b6106e5565b34801561030457600080fd5b5061017a6106f9565b34801561031957600080fd5b506101c9610702565b34801561032e57600080fd5b5061019c61033d36600461128f565b610a03565b34801561034e57600080fd5b506101c961035d366004611332565b610a2e565b604080518082019091526006815265e5b18ce88c8560d01b602082015290565b600061039661038f610ae3565b8484610ae7565b50600192915050565b60006103ad6012600a611779565b6103bb90633b9aca0061184a565b905090565b6103c8610ae3565b6000546001600160a01b039081169116146103fe5760405162461bcd60e51b81526004016103f590611544565b60405180910390fd5b60005b8181101561047e5760006015600085858581811061042f57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906104449190611257565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061047681611880565b915050610401565b505050565b6000610490848484610b4f565b6104ee8461049c610ae3565b6001600160a01b038716600090815260026020526040812086916104be610ae3565b6001600160a01b03166001600160a01b03168152602001908152602001600020546104e99190611869565b610ae7565b5060015b9392505050565b601290565b60055461010090046001600160a01b0316610517610ae3565b6001600160a01b03161461052a57600080fd5b60006105353061055a565b90508015610546576105468161103e565b4780156105565761055681611204565b5050565b6001600160a01b031660009081526001602052604090205490565b61057d610ae3565b6000546001600160a01b039081169116146105aa5760405162461bcd60e51b81526004016103f590611544565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105fc610ae3565b6000546001600160a01b039081169116146106295760405162461bcd60e51b81526004016103f590611544565b6106356012600a611779565b61064390633b9aca0061184a565b6010556106526012600a611779565b61066090633b9aca0061184a565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106906012600a611779565b61069e90633b9aca0061184a565b6040516106ab9190611674565b60405180910390a1565b60105481565b6000546001600160a01b031690565b60115481565b60156020526000908152604090205460ff1681565b60006103966106f2610ae3565b8484610b4f565b60055460ff1681565b61070a610ae3565b6000546001600160a01b039081169116146107375760405162461bcd60e51b81526004016103f590611544565b601854600160a01b900460ff16156107615760405162461bcd60e51b81526004016103f5906115f9565b60175461078d9030906001600160a01b031661077f6012600a611779565b6104e990633b9aca0061184a565b601760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107db57600080fd5b505afa1580156107ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108139190611273565b6001600160a01b031663c9c6539630601760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561087057600080fd5b505afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190611273565b6040518363ffffffff1660e01b81526004016108c59291906113e2565b602060405180830381600087803b1580156108df57600080fd5b505af11580156108f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109179190611273565b601880546001600160a01b0319166001600160a01b0392831617905560175460145491169063f305d719904790309061094f8261055a565b6109599190611869565b6000806109646106bb565b426040518863ffffffff1660e01b8152600401610986969594939291906113fc565b6060604051808303818588803b15801561099f57600080fd5b505af11580156109b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d891906113a1565b50506018805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b1790555042600655565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610a36610ae3565b6000546001600160a01b03908116911614610a635760405162461bcd60e51b81526004016103f590611544565b60005b8181101561047e57600160156000858585818110610a9457634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610aa99190611257565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610adb81611880565b915050610a66565b3390565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b42908590611674565b60405180910390a3505050565b6001600160a01b038216610b755760405162461bcd60e51b81526004016103f590611495565b60008111610b955760405162461bcd60e51b81526004016103f590611579565b6000610b9f6106bb565b6001600160a01b0316846001600160a01b031614158015610bd95750610bc36106bb565b6001600160a01b0316836001600160a01b031614155b8015610bfe57506001600160a01b03831660009081526015602052604090205460ff16155b15610ebd5760055460ff1615610c80576017546001600160a01b03848116911614801590610c3a57506018546001600160a01b03848116911614155b15610c8057326000908152600460205260409020544311610c6d5760405162461bcd60e51b81526004016103f590611630565b3260009081526004602052604090204390555b6018546001600160a01b038581169116148015610cab57506017546001600160a01b03848116911614155b8015610cd057506001600160a01b03831660009081526003602052604090205460ff16155b15610d9057601054821115610cf75760405162461bcd60e51b81526004016103f5906114d8565b60115482610d048561055a565b610d0e91906116fb565b1115610d2c5760405162461bcd60e51b81526004016103f5906115c2565b6000600c54600754118015610d4f575042600d54600654610d4d91906116fb565b105b610d5b57600854610d5f565b600a545b90506064610d6d828561184a565b610d779190611713565b600780549193506000610d8983611880565b9190505550505b6018546001600160a01b038481169116148015610db657506001600160a01b0384163014155b15610e2c57601054821115610ddd5760405162461bcd60e51b81526004016103f5906114d8565b6000600e54600754118015610e00575042600f54600654610dfe91906116fb565b105b610e0c57600954610e10565b600b545b90506064610e1e828561184a565b610e289190611713565b9150505b6000610e373061055a565b601854909150600160a81b900460ff16158015610e6157506018546001600160a01b038581169116145b8015610e765750601854600160b01b900460ff165b8015610e83575060125481115b15610eb757610ea5610ea084610e9b84601354611242565b611242565b61103e565b478015610eb557610eb547611204565b505b50610f00565b6001600160a01b03831660009081526015602052604090205460ff1615610f0057601654821115610f005760405162461bcd60e51b81526004016103f59061150f565b8015610f795730600090815260016020526040902054610f219082906116fb565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f70908590611674565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610f9d908390611869565b6001600160a01b0380861660009081526001602052604080822093909355908516815220548190610fcf9084906116fb565b610fd99190611869565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110238486611869565b6040516110309190611674565b60405180910390a350505050565b6018805460ff60a81b1916600160a81b1790558061105b576111f4565b601854600160a01b900460ff16611071576111f4565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110b457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110857600080fd5b505afa15801561111c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111409190611273565b8160018151811061116157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526017546111879130911684610ae7565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c090859060009086903090429060040161167d565b600060405180830381600087803b1580156111da57600080fd5b505af11580156111ee573d6000803e3d6000fd5b50505050505b506018805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610556573d6000803e3d6000fd5b600081831161125157826104f2565b50919050565b600060208284031215611268578081fd5b81356104f2816118b1565b600060208284031215611284578081fd5b81516104f2816118b1565b600080604083850312156112a1578081fd5b82356112ac816118b1565b915060208301356112bc816118b1565b809150509250929050565b6000806000606084860312156112db578081fd5b83356112e6816118b1565b925060208401356112f6816118b1565b929592945050506040919091013590565b60008060408385031215611319578182fd5b8235611324816118b1565b946020939093013593505050565b60008060208385031215611344578182fd5b823567ffffffffffffffff8082111561135b578384fd5b818501915085601f83011261136e578384fd5b81358181111561137c578485fd5b866020808302850101111561138f578485fd5b60209290920196919550909350505050565b6000806000606084860312156113b5578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561146e57858101830151858201604001528201611452565b8181111561147f5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252818101527f4578636565647320746865205f77686974656c6973744d6178416d6f756e742e604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156116cc5784516001600160a01b0316835293830193918301916001016116a7565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561170e5761170e61189b565b500190565b60008261172e57634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116117455750611770565b8187048211156117575761175761189b565b8086161561176457918102915b9490941c938002611736565b94509492505050565b60006104f260001960ff851684600082611795575060016104f2565b816117a2575060006104f2565b81600181146117b857600281146117c2576117ef565b60019150506104f2565b60ff8411156117d3576117d361189b565b6001841b9150848211156117e9576117e961189b565b506104f2565b5060208310610133831016604e8410600b8410161715611822575081810a8381111561181d5761181d61189b565b6104f2565b61182f8484846001611733565b8086048211156118415761184161189b565b02949350505050565b60008160001904831182151516156118645761186461189b565b500290565b60008282101561187b5761187b61189b565b500390565b60006000198214156118945761189461189b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146118c657600080fd5b5056fea264697066735822122037c40d97f02694adafeea8d05e50b601e9d193621b4048be586b4f01a9b3ffb364736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102d8578063c876d0b9146102f8578063c9567bf91461030d578063dd62ed3e14610322578063edac985b146103425761012a565b80637d1db4a51461026c5780638da5cb5b146102815780638f9a55c0146102a357806395d89b411461012f5780639b19251a146102b85761012a565b8063313ce567116100e7578063313ce567146101eb57806351bc3c851461020d57806370a0823114610222578063715018a614610242578063751039fc146102575761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461018757806323245216146101a957806323b872dd146101cb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610362565b6040516101519190611442565b60405180910390f35b34801561016657600080fd5b5061017a610175366004611307565b610382565b6040516101519190611437565b34801561019357600080fd5b5061019c61039f565b6040516101519190611674565b3480156101b557600080fd5b506101c96101c4366004611332565b6103c0565b005b3480156101d757600080fd5b5061017a6101e63660046112c7565b610483565b3480156101f757600080fd5b506102006104f9565b60405161015191906116ed565b34801561021957600080fd5b506101c96104fe565b34801561022e57600080fd5b5061019c61023d366004611257565b61055a565b34801561024e57600080fd5b506101c9610575565b34801561026357600080fd5b506101c96105f4565b34801561027857600080fd5b5061019c6106b5565b34801561028d57600080fd5b506102966106bb565b60405161015191906113ce565b3480156102af57600080fd5b5061019c6106ca565b3480156102c457600080fd5b5061017a6102d3366004611257565b6106d0565b3480156102e457600080fd5b5061017a6102f3366004611307565b6106e5565b34801561030457600080fd5b5061017a6106f9565b34801561031957600080fd5b506101c9610702565b34801561032e57600080fd5b5061019c61033d36600461128f565b610a03565b34801561034e57600080fd5b506101c961035d366004611332565b610a2e565b604080518082019091526006815265e5b18ce88c8560d01b602082015290565b600061039661038f610ae3565b8484610ae7565b50600192915050565b60006103ad6012600a611779565b6103bb90633b9aca0061184a565b905090565b6103c8610ae3565b6000546001600160a01b039081169116146103fe5760405162461bcd60e51b81526004016103f590611544565b60405180910390fd5b60005b8181101561047e5760006015600085858581811061042f57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906104449190611257565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061047681611880565b915050610401565b505050565b6000610490848484610b4f565b6104ee8461049c610ae3565b6001600160a01b038716600090815260026020526040812086916104be610ae3565b6001600160a01b03166001600160a01b03168152602001908152602001600020546104e99190611869565b610ae7565b5060015b9392505050565b601290565b60055461010090046001600160a01b0316610517610ae3565b6001600160a01b03161461052a57600080fd5b60006105353061055a565b90508015610546576105468161103e565b4780156105565761055681611204565b5050565b6001600160a01b031660009081526001602052604090205490565b61057d610ae3565b6000546001600160a01b039081169116146105aa5760405162461bcd60e51b81526004016103f590611544565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105fc610ae3565b6000546001600160a01b039081169116146106295760405162461bcd60e51b81526004016103f590611544565b6106356012600a611779565b61064390633b9aca0061184a565b6010556106526012600a611779565b61066090633b9aca0061184a565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106906012600a611779565b61069e90633b9aca0061184a565b6040516106ab9190611674565b60405180910390a1565b60105481565b6000546001600160a01b031690565b60115481565b60156020526000908152604090205460ff1681565b60006103966106f2610ae3565b8484610b4f565b60055460ff1681565b61070a610ae3565b6000546001600160a01b039081169116146107375760405162461bcd60e51b81526004016103f590611544565b601854600160a01b900460ff16156107615760405162461bcd60e51b81526004016103f5906115f9565b60175461078d9030906001600160a01b031661077f6012600a611779565b6104e990633b9aca0061184a565b601760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107db57600080fd5b505afa1580156107ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108139190611273565b6001600160a01b031663c9c6539630601760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561087057600080fd5b505afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190611273565b6040518363ffffffff1660e01b81526004016108c59291906113e2565b602060405180830381600087803b1580156108df57600080fd5b505af11580156108f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109179190611273565b601880546001600160a01b0319166001600160a01b0392831617905560175460145491169063f305d719904790309061094f8261055a565b6109599190611869565b6000806109646106bb565b426040518863ffffffff1660e01b8152600401610986969594939291906113fc565b6060604051808303818588803b15801561099f57600080fd5b505af11580156109b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109d891906113a1565b50506018805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b1790555042600655565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610a36610ae3565b6000546001600160a01b03908116911614610a635760405162461bcd60e51b81526004016103f590611544565b60005b8181101561047e57600160156000858585818110610a9457634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610aa99190611257565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610adb81611880565b915050610a66565b3390565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b42908590611674565b60405180910390a3505050565b6001600160a01b038216610b755760405162461bcd60e51b81526004016103f590611495565b60008111610b955760405162461bcd60e51b81526004016103f590611579565b6000610b9f6106bb565b6001600160a01b0316846001600160a01b031614158015610bd95750610bc36106bb565b6001600160a01b0316836001600160a01b031614155b8015610bfe57506001600160a01b03831660009081526015602052604090205460ff16155b15610ebd5760055460ff1615610c80576017546001600160a01b03848116911614801590610c3a57506018546001600160a01b03848116911614155b15610c8057326000908152600460205260409020544311610c6d5760405162461bcd60e51b81526004016103f590611630565b3260009081526004602052604090204390555b6018546001600160a01b038581169116148015610cab57506017546001600160a01b03848116911614155b8015610cd057506001600160a01b03831660009081526003602052604090205460ff16155b15610d9057601054821115610cf75760405162461bcd60e51b81526004016103f5906114d8565b60115482610d048561055a565b610d0e91906116fb565b1115610d2c5760405162461bcd60e51b81526004016103f5906115c2565b6000600c54600754118015610d4f575042600d54600654610d4d91906116fb565b105b610d5b57600854610d5f565b600a545b90506064610d6d828561184a565b610d779190611713565b600780549193506000610d8983611880565b9190505550505b6018546001600160a01b038481169116148015610db657506001600160a01b0384163014155b15610e2c57601054821115610ddd5760405162461bcd60e51b81526004016103f5906114d8565b6000600e54600754118015610e00575042600f54600654610dfe91906116fb565b105b610e0c57600954610e10565b600b545b90506064610e1e828561184a565b610e289190611713565b9150505b6000610e373061055a565b601854909150600160a81b900460ff16158015610e6157506018546001600160a01b038581169116145b8015610e765750601854600160b01b900460ff165b8015610e83575060125481115b15610eb757610ea5610ea084610e9b84601354611242565b611242565b61103e565b478015610eb557610eb547611204565b505b50610f00565b6001600160a01b03831660009081526015602052604090205460ff1615610f0057601654821115610f005760405162461bcd60e51b81526004016103f59061150f565b8015610f795730600090815260016020526040902054610f219082906116fb565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f70908590611674565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610f9d908390611869565b6001600160a01b0380861660009081526001602052604080822093909355908516815220548190610fcf9084906116fb565b610fd99190611869565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110238486611869565b6040516110309190611674565b60405180910390a350505050565b6018805460ff60a81b1916600160a81b1790558061105b576111f4565b601854600160a01b900460ff16611071576111f4565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110b457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110857600080fd5b505afa15801561111c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111409190611273565b8160018151811061116157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526017546111879130911684610ae7565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c090859060009086903090429060040161167d565b600060405180830381600087803b1580156111da57600080fd5b505af11580156111ee573d6000803e3d6000fd5b50505050505b506018805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610556573d6000803e3d6000fd5b600081831161125157826104f2565b50919050565b600060208284031215611268578081fd5b81356104f2816118b1565b600060208284031215611284578081fd5b81516104f2816118b1565b600080604083850312156112a1578081fd5b82356112ac816118b1565b915060208301356112bc816118b1565b809150509250929050565b6000806000606084860312156112db578081fd5b83356112e6816118b1565b925060208401356112f6816118b1565b929592945050506040919091013590565b60008060408385031215611319578182fd5b8235611324816118b1565b946020939093013593505050565b60008060208385031215611344578182fd5b823567ffffffffffffffff8082111561135b578384fd5b818501915085601f83011261136e578384fd5b81358181111561137c578485fd5b866020808302850101111561138f578485fd5b60209290920196919550909350505050565b6000806000606084860312156113b5578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561146e57858101830151858201604001528201611452565b8181111561147f5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252818101527f4578636565647320746865205f77686974656c6973744d6178416d6f756e742e604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156116cc5784516001600160a01b0316835293830193918301916001016116a7565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561170e5761170e61189b565b500190565b60008261172e57634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116117455750611770565b8187048211156117575761175761189b565b8086161561176457918102915b9490941c938002611736565b94509492505050565b60006104f260001960ff851684600082611795575060016104f2565b816117a2575060006104f2565b81600181146117b857600281146117c2576117ef565b60019150506104f2565b60ff8411156117d3576117d361189b565b6001841b9150848211156117e9576117e961189b565b506104f2565b5060208310610133831016604e8410600b8410161715611822575081810a8381111561181d5761181d61189b565b6104f2565b61182f8484846001611733565b8086048211156118415761184161189b565b02949350505050565b60008160001904831182151516156118645761186461189b565b500290565b60008282101561187b5761187b61189b565b500390565b60006000198214156118945761189461189b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146118c657600080fd5b5056fea264697066735822122037c40d97f02694adafeea8d05e50b601e9d193621b4048be586b4f01a9b3ffb364736f6c63430008000033

Deployed Bytecode Sourcemap

2664:9568:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4864:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5747:186;;;;;;;;;;-1:-1:-1;5747:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5141:95::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11995:197::-;;;;;;;;;;-1:-1:-1;11995:197:0;;;;;:::i;:::-;;:::i;:::-;;5941:350;;;;;;;;;;-1:-1:-1;5941:350:0;;;;;:::i;:::-;;:::i;5050:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11420:366::-;;;;;;;;;;;;;:::i;5244:119::-;;;;;;;;;;-1:-1:-1;5244:119:0;;;;;:::i;:::-;;:::i;1689:148::-;;;;;;;;;;;;;:::i;10455:162::-;;;;;;;;;;;;;:::i;3719:49::-;;;;;;;;;;;;;:::i;1475:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3775:51::-;;;;;;;;;;;;;:::i;4009:41::-;;;;;;;;;;-1:-1:-1;4009:41:0;;;;;:::i;:::-;;:::i;5371:192::-;;;;;;;;;;-1:-1:-1;5371:192:0;;;;;:::i;:::-;;:::i;2971:40::-;;;;;;;;;;;;;:::i;10725:687::-;;;;;;;;;;;;;:::i;5571:168::-;;;;;;;;;;-1:-1:-1;5571:168:0;;;;;:::i;:::-;;:::i;11794:193::-;;;;;;;;;;-1:-1:-1;11794:193:0;;;;;:::i;:::-;;:::i;4864:83::-;4934:5;;;;;;;;;;;;-1:-1:-1;;;4934:5:0;;;;4864:83;:::o;5747:186::-;5847:4;5864:39;5873:12;:10;:12::i;:::-;5887:7;5896:6;5864:8;:39::i;:::-;-1:-1:-1;5921:4:0;5747:186;;;;:::o;5141:95::-;5194:7;3697:15;3640:2;3697;:15;:::i;:::-;3684:28;;:10;:28;:::i;:::-;5214:14;;5141:95;:::o;11995:197::-;1612:12;:10;:12::i;:::-;1602:6;;-1:-1:-1;;;;;1602:6:0;;;:22;;;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;;;;;;;;;12085:9:::1;12080:105;12100:20:::0;;::::1;12080:105;;;12168:5;12142:9;:23;12152:9;;12162:1;12152:12;;;;;-1:-1:-1::0;;;12152:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12142:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12142:23:0;:31;;-1:-1:-1;;12142:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12122:3;::::1;::::0;::::1;:::i;:::-;;;;12080:105;;;;11995:197:::0;;:::o;5941:350::-;6073:4;6090:36;6100:6;6108:9;6119:6;6090:9;:36::i;:::-;6137:124;6160:6;6181:12;:10;:12::i;:::-;-1:-1:-1;;;;;6208:19:0;;;;;;:11;:19;;;;;6244:6;;6228:12;:10;:12::i;:::-;-1:-1:-1;;;;;6208:33:0;-1:-1:-1;;;;;6208:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;6137:8;:124::i;:::-;-1:-1:-1;6279:4:0;5941:350;;;;;;:::o;5050:83::-;3640:2;5050:83;:::o;11420:366::-;11486:10;;;;;-1:-1:-1;;;;;11486:10:0;11470:12;:10;:12::i;:::-;-1:-1:-1;;;;;11470:26:0;;11462:35;;;;;;11508:20;11531:24;11549:4;11531:9;:24::i;:::-;11508:47;-1:-1:-1;11570:16:0;;11566:79;;11603:30;11620:12;11603:16;:30::i;:::-;11676:21;11712:14;;11708:71;;11743:24;11756:10;11743:12;:24::i;:::-;11420:366;;:::o;5244:119::-;-1:-1:-1;;;;;5337:18:0;5310:7;5337:18;;;:9;:18;;;;;;;5244:119::o;1689:148::-;1612:12;:10;:12::i;:::-;1602:6;;-1:-1:-1;;;;;1602:6:0;;;:22;;;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;1796:1:::1;1780:6:::0;;1759:40:::1;::::0;-1:-1:-1;;;;;1780:6:0;;::::1;::::0;1759:40:::1;::::0;1796:1;;1759:40:::1;1827:1;1810:19:::0;;-1:-1:-1;;;;;;1810:19:0::1;::::0;;1689:148::o;10455:162::-;1612:12;:10;:12::i;:::-;1602:6;;-1:-1:-1;;;;;1602:6:0;;;:22;;;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;3697:15:::1;3640:2;3697;:15;:::i;:::-;3684:28;::::0;:10:::1;:28;:::i;:::-;10509:12;:22:::0;3697:15:::1;3640:2;3697;:15;:::i;:::-;3684:28;::::0;:10:::1;:28;:::i;:::-;10542:14;:24:::0;10582:27:::1;3697:15;3640:2;3697;:15;:::i;:::-;3684:28;::::0;:10:::1;:28;:::i;:::-;10582:27;;;;;;:::i;:::-;;;;;;;;10455:162::o:0;3719:49::-;;;;:::o;1475:79::-;1513:7;1540:6;-1:-1:-1;;;;;1540:6:0;1475:79;:::o;3775:51::-;;;;:::o;4009:41::-;;;;;;;;;;;;;;;:::o;5371:192::-;5474:4;5491:42;5501:12;:10;:12::i;:::-;5515:9;5526:6;5491:9;:42::i;2971:40::-;;;;;;:::o;10725:687::-;1612:12;:10;:12::i;:::-;1602:6;;-1:-1:-1;;;;;1602:6:0;;;:22;;;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;10787:11:::1;::::0;-1:-1:-1;;;10787:11:0;::::1;;;10786:12;10778:48;;;;-1:-1:-1::0;;;10778:48:0::1;;;;;;;:::i;:::-;10871:15;::::0;10839:58:::1;::::0;10856:4:::1;::::0;-1:-1:-1;;;;;10871:15:0::1;3697;3640:2;3697;:15;:::i;:::-;3684:28;::::0;:10:::1;:28;:::i;10839:58::-;10944:15;;;;;;;;;-1:-1:-1::0;;;;;10944:15:0::1;-1:-1:-1::0;;;;;10944:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10926:55:0::1;;11004:4;11024:15;;;;;;;;;-1:-1:-1::0;;;;;11024:15:0::1;-1:-1:-1::0;;;;;11024:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10926:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10910:13;:147:::0;;-1:-1:-1;;;;;;10910:147:0::1;-1:-1:-1::0;;;;;10910:147:0;;::::1;;::::0;;11070:15:::1;::::0;11201:10:::1;::::0;11070:15;::::1;::::0;:31:::1;::::0;11109:21:::1;::::0;11154:4:::1;::::0;11174:24:::1;11154:4:::0;11174:9:::1;:24::i;:::-;:37;;;;:::i;:::-;11226:1;11242::::0;11258:7:::1;:5;:7::i;:::-;11280:15;11070:236;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11319:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;11319:18:0;;::::1;-1:-1:-1::0;;;11319:18:0::1;11348;-1:-1:-1::0;;;11348:18:0::1;::::0;;-1:-1:-1;11389:15:0::1;11377:9;:27:::0;10725:687::o;5571:168::-;-1:-1:-1;;;;;5704:18:0;;;5677:7;5704:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5571:168::o;11794:193::-;1612:12;:10;:12::i;:::-;1602:6;;-1:-1:-1;;;;;1602:6:0;;;:22;;;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;11881:9:::1;11876:104;11896:20:::0;;::::1;11876:104;;;11964:4;11938:9;:23;11948:9;;11958:1;11948:12;;;;;-1:-1:-1::0;;;11948:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11938:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11938:23:0;:30;;-1:-1:-1;;11938:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11918:3;::::1;::::0;::::1;:::i;:::-;;;;11876:104;;221:98:::0;301:10;221:98;:::o;6299:177::-;-1:-1:-1;;;;;6384:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;6436:32;;;;;6414:6;;6436:32;:::i;:::-;;;;;;;;6299:177;;;:::o;6484:3231::-;-1:-1:-1;;;;;6572:16:0;;6564:64;;;;-1:-1:-1;;;6564:64:0;;;;;;;:::i;:::-;6656:1;6647:6;:10;6639:64;;;;-1:-1:-1;;;6639:64:0;;;;;;;:::i;:::-;6714:17;6758:7;:5;:7::i;:::-;-1:-1:-1;;;;;6750:15:0;:4;-1:-1:-1;;;;;6750:15:0;;;:32;;;;;6775:7;:5;:7::i;:::-;-1:-1:-1;;;;;6769:13:0;:2;-1:-1:-1;;;;;6769:13:0;;;6750:32;:50;;;;-1:-1:-1;;;;;;6787:13:0;;;;;;:9;:13;;;;;;;;6786:14;6750:50;6746:2611;;;6853:20;;;;6849:485;;;6934:15;;-1:-1:-1;;;;;6920:30:0;;;6934:15;;6920:30;;;;:83;;-1:-1:-1;6989:13:0;;-1:-1:-1;;;;;6975:28:0;;;6989:13;;6975:28;;6920:83;6894:425;;;7109:9;7080:39;;;;:28;:39;;;;;;7122:12;-1:-1:-1;7046:176:0;;;;-1:-1:-1;;;7046:176:0;;;;;;;:::i;:::-;7274:9;7245:39;;;;:28;:39;;;;;7287:12;7245:54;;6894:425;7400:13;;-1:-1:-1;;;;;7392:21:0;;;7400:13;;7392:21;:72;;;;-1:-1:-1;7448:15:0;;-1:-1:-1;;;;;7434:30:0;;;7448:15;;7434:30;;7392:72;:116;;;;-1:-1:-1;;;;;;7486:22:0;;;;;;:18;:22;;;;;;;;7485:23;7392:116;7370:711;;;7561:12;;7551:6;:22;;7543:60;;;;-1:-1:-1;;;7543:60:0;;;;;;;:::i;:::-;7678:14;;7668:6;7652:13;7662:2;7652:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7622:140;;;;-1:-1:-1;;;7622:140:0;;;;;;;:::i;:::-;7783:11;7810:15;;7798:9;;:27;:107;;;;;7890:15;7862:25;;7850:9;;:37;;;;:::i;:::-;:55;7798:107;7797:183;;7966:14;;7797:183;;;7930:12;;7797:183;7783:197;-1:-1:-1;8030:3:0;8014:12;7783:197;8014:6;:12;:::i;:::-;8013:20;;;;:::i;:::-;8054:9;:11;;8001:32;;-1:-1:-1;8054:9:0;:11;;;:::i;:::-;;;;;;7370:711;;8128:13;;-1:-1:-1;;;;;8122:19:0;;;8128:13;;8122:19;:44;;;;-1:-1:-1;;;;;;8145:21:0;;8161:4;8145:21;;8122:44;8118:416;;;8205:12;;8195:6;:22;;8187:60;;;;-1:-1:-1;;;8187:60:0;;;;;;;:::i;:::-;8266:11;8293:16;;8281:9;;:28;:109;;;;;8375:15;8346:26;;8334:9;;:38;;;;:::i;:::-;:56;8281:109;8280:187;;8452:15;;8280:187;;;8415:13;;8280:187;8266:201;-1:-1:-1;8515:3:0;8499:12;8266:201;8499:6;:12;:::i;:::-;8498:20;;;;:::i;:::-;8486:32;;8118:416;;8586:28;8617:24;8635:4;8617:9;:24::i;:::-;8679:6;;8586:55;;-1:-1:-1;;;;8679:6:0;;;;8678:7;:47;;;;-1:-1:-1;8712:13:0;;-1:-1:-1;;;;;8706:19:0;;;8712:13;;8706:19;8678:47;:79;;;;-1:-1:-1;8746:11:0;;-1:-1:-1;;;8746:11:0;;;;8678:79;:140;;;;;8801:17;;8778:20;:40;8678:140;8656:515;;;8853:109;8892:51;8896:6;8904:38;8908:20;8930:11;;8904:3;:38::i;:::-;8892:3;:51::i;:::-;8853:16;:109::i;:::-;9010:21;9054:22;;9050:106;;9101:35;9114:21;9101:12;:35::i;:::-;8656:515;;6746:2611;;;;-1:-1:-1;;;;;9192:13:0;;;;;;:9;:13;;;;;;;;9188:169;;;9258:19;;9248:6;:29;;9222:123;;;;-1:-1:-1;;;9222:123:0;;;;;;;:::i;:::-;9373:13;;9369:169;;9448:4;9430:24;;;;:9;:24;;;;;;:36;;9457:9;;9430:36;:::i;:::-;9421:4;9403:24;;;;:9;:24;;;;;;;:63;;;;9486:40;;-1:-1:-1;;;;;9486:40:0;;;;;;;9516:9;;9486:40;:::i;:::-;;;;;;;;9369:169;-1:-1:-1;;;;;9568:15:0;;;;;;:9;:15;;;;;;:24;;9586:6;;9568:24;:::i;:::-;-1:-1:-1;;;;;9550:15:0;;;;;;;:9;:15;;;;;;:42;;;;9619:13;;;;;;;9644:9;;9619:22;;9635:6;;9619:22;:::i;:::-;:34;;;;:::i;:::-;-1:-1:-1;;;;;9603:13:0;;;;;;;:9;:13;;;;;:50;;;;9669:38;;;9688:18;9697:9;9688:6;:18;:::i;:::-;9669:38;;;;;;:::i;:::-;;;;;;;;6484:3231;;;;:::o;9838:609::-;4474:6;:13;;-1:-1:-1;;;;4474:13:0;-1:-1:-1;;;4474:13:0;;;9920:16;9916:55:::1;;9953:7;;9916:55;9986:11;::::0;-1:-1:-1;;;9986:11:0;::::1;;;9981:51;;10014:7;;9981:51;10066:16;::::0;;10080:1:::1;10066:16:::0;;;;;::::1;::::0;;10042:21:::1;::::0;10066:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10066:16:0::1;10042:40;;10111:4;10093;10098:1;10093:7;;;;;;-1:-1:-1::0;;;10093:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10093:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10137:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10137:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10093:7;;10137:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10127:4;10132:1;10127:7;;;;;;-1:-1:-1::0;;;10127:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;10127:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10202:15:::1;::::0;10170:62:::1;::::0;10187:4:::1;::::0;10202:15:::1;10220:11:::0;10170:8:::1;:62::i;:::-;10243:15;::::0;:196:::1;::::0;-1:-1:-1;;;10243:196:0;;-1:-1:-1;;;;;10243:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10324:11;;10243:15:::1;::::0;10366:4;;10393::::1;::::0;10413:15:::1;::::0;10243:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4498:1;;-1:-1:-1::0;4510:6:0;:14;;-1:-1:-1;;;;4510:14:0;;;9838:609::o;10625:92::-;10682:10;;:27;;:10;;;;-1:-1:-1;;;;;10682:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;9723:107;9780:7;9812:1;9808;:5;9807:15;;9821:1;9807:15;;;-1:-1:-1;9817:1:0;9800:22;-1:-1:-1;9723:107:0:o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:666::-;;;1907:2;1895:9;1886:7;1882:23;1878:32;1875:2;;;1928:6;1920;1913:22;1875:2;1973:9;1960:23;2002:18;2043:2;2035:6;2032:14;2029:2;;;2064:6;2056;2049:22;2029:2;2107:6;2096:9;2092:22;2082:32;;2152:7;2145:4;2141:2;2137:13;2133:27;2123:2;;2179:6;2171;2164:22;2123:2;2224;2211:16;2250:2;2242:6;2239:14;2236:2;;;2271:6;2263;2256:22;2236:2;2330:7;2325:2;2319;2311:6;2307:15;2303:2;2299:24;2295:33;2292:46;2289:2;;;2356:6;2348;2341:22;2289:2;2392;2384:11;;;;;2414:6;;-1:-1:-1;1865:561:1;;-1:-1:-1;;;;1865:561:1:o;2431:316::-;;;;2588:2;2576:9;2567:7;2563:23;2559:32;2556:2;;;2609:6;2601;2594:22;2556:2;2643:9;2637:16;2627:26;;2693:2;2682:9;2678:18;2672:25;2662:35;;2737:2;2726:9;2722:18;2716:25;2706:35;;2546:201;;;;;:::o;2752:203::-;-1:-1:-1;;;;;2916:32:1;;;;2898:51;;2886:2;2871:18;;2853:102::o;2960:304::-;-1:-1:-1;;;;;3190:15:1;;;3172:34;;3242:15;;3237:2;3222:18;;3215:43;3122:2;3107:18;;3089:175::o;3269:607::-;-1:-1:-1;;;;;3628:15:1;;;3610:34;;3675:2;3660:18;;3653:34;;;;3718:2;3703:18;;3696:34;;;;3761:2;3746:18;;3739:34;;;;3810:15;;;3804:3;3789:19;;3782:44;3590:3;3842:19;;3835:35;;;;3559:3;3544:19;;3526:350::o;3881:187::-;4046:14;;4039:22;4021:41;;4009:2;3994:18;;3976:92::o;4073:603::-;;4214:2;4243;4232:9;4225:21;4275:6;4269:13;4318:6;4313:2;4302:9;4298:18;4291:34;4343:4;4356:140;4370:6;4367:1;4364:13;4356:140;;;4465:14;;;4461:23;;4455:30;4431:17;;;4450:2;4427:26;4420:66;4385:10;;4356:140;;;4514:6;4511:1;4508:13;4505:2;;;4584:4;4579:2;4570:6;4559:9;4555:22;4551:31;4544:45;4505:2;-1:-1:-1;4660:2:1;4639:15;-1:-1:-1;;4635:29:1;4620:45;;;;4667:2;4616:54;;4194:482;-1:-1:-1;;;4194:482:1:o;4681:399::-;4883:2;4865:21;;;4922:2;4902:18;;;4895:30;4961:34;4956:2;4941:18;;4934:62;-1:-1:-1;;;5027:2:1;5012:18;;5005:33;5070:3;5055:19;;4855:225::o;5085:349::-;5287:2;5269:21;;;5326:2;5306:18;;;5299:30;5365:27;5360:2;5345:18;;5338:55;5425:2;5410:18;;5259:175::o;5439:356::-;5641:2;5623:21;;;5660:18;;;5653:30;5719:34;5714:2;5699:18;;5692:62;5786:2;5771:18;;5613:182::o;5800:356::-;6002:2;5984:21;;;6021:18;;;6014:30;6080:34;6075:2;6060:18;;6053:62;6147:2;6132:18;;5974:182::o;6161:405::-;6363:2;6345:21;;;6402:2;6382:18;;;6375:30;6441:34;6436:2;6421:18;;6414:62;-1:-1:-1;;;6507:2:1;6492:18;;6485:39;6556:3;6541:19;;6335:231::o;6571:350::-;6773:2;6755:21;;;6812:2;6792:18;;;6785:30;6851:28;6846:2;6831:18;;6824:56;6912:2;6897:18;;6745:176::o;6926:347::-;7128:2;7110:21;;;7167:2;7147:18;;;7140:30;7206:25;7201:2;7186:18;;7179:53;7264:2;7249:18;;7100:173::o;7278:400::-;7480:2;7462:21;;;7519:2;7499:18;;;7492:30;7558:34;7553:2;7538:18;;7531:62;-1:-1:-1;;;7624:2:1;7609:18;;7602:34;7668:3;7653:19;;7452:226::o;7683:177::-;7829:25;;;7817:2;7802:18;;7784:76::o;7865:983::-;;8175:3;8164:9;8160:19;8206:6;8195:9;8188:25;8232:2;8270:6;8265:2;8254:9;8250:18;8243:34;8313:3;8308:2;8297:9;8293:18;8286:31;8337:6;8372;8366:13;8403:6;8395;8388:22;8441:3;8430:9;8426:19;8419:26;;8480:2;8472:6;8468:15;8454:29;;8501:4;8514:195;8528:6;8525:1;8522:13;8514:195;;;8593:13;;-1:-1:-1;;;;;8589:39:1;8577:52;;8684:15;;;;8649:12;;;;8625:1;8543:9;8514:195;;;-1:-1:-1;;;;;;;8765:32:1;;;;8760:2;8745:18;;8738:60;-1:-1:-1;;;8829:3:1;8814:19;8807:35;8726:3;8136:712;-1:-1:-1;;;8136:712:1:o;8853:184::-;9025:4;9013:17;;;;8995:36;;8983:2;8968:18;;8950:87::o;9042:128::-;;9113:1;9109:6;9106:1;9103:13;9100:2;;;9119:18;;:::i;:::-;-1:-1:-1;9155:9:1;;9090:80::o;9175:217::-;;9241:1;9231:2;;-1:-1:-1;;;9266:31:1;;9320:4;9317:1;9310:15;9348:4;9273:1;9338:15;9231:2;-1:-1:-1;9377:9:1;;9221:171::o;9397:453::-;9493:6;9516:5;9530:314;9579:1;9616:2;9606:8;9603:16;9593:2;;9623:5;;;9593:2;9664:4;9659:3;9655:14;9649:4;9646:24;9643:2;;;9673:18;;:::i;:::-;9723:2;9713:8;9709:17;9706:2;;;9738:16;;;;9706:2;9817:17;;;;;9777:15;;9530:314;;;9474:376;;;;;;;:::o;9855:148::-;;9942:55;-1:-1:-1;;9983:4:1;9969:19;;9963:4;10008:922;10092:8;10082:2;;-1:-1:-1;10133:1:1;10147:5;;10082:2;10181:4;10171:2;;-1:-1:-1;10218:1:1;10232:5;;10171:2;10263:4;10281:1;10276:59;;;;10349:1;10344:183;;;;10256:271;;10276:59;10306:1;10297:10;;10320:5;;;10344:183;10381:3;10371:8;10368:17;10365:2;;;10388:18;;:::i;:::-;10444:1;10434:8;10430:16;10421:25;;10472:3;10465:5;10462:14;10459:2;;;10479:18;;:::i;:::-;10512:5;;;10256:271;;10611:2;10601:8;10598:16;10592:3;10586:4;10583:13;10579:36;10573:2;10563:8;10560:16;10555:2;10549:4;10546:12;10542:35;10539:77;10536:2;;;-1:-1:-1;10648:19:1;;;10683:14;;;10680:2;;;10700:18;;:::i;:::-;10733:5;;10536:2;10780:42;10818:3;10808:8;10802:4;10799:1;10780:42;:::i;:::-;10855:6;10850:3;10846:16;10837:7;10834:29;10831:2;;;10866:18;;:::i;:::-;10904:20;;10072:858;-1:-1:-1;;;;10072:858:1:o;10935:168::-;;11041:1;11037;11033:6;11029:14;11026:1;11023:21;11018:1;11011:9;11004:17;11000:45;10997:2;;;11048:18;;:::i;:::-;-1:-1:-1;11088:9:1;;10987:116::o;11108:125::-;;11176:1;11173;11170:8;11167:2;;;11181:18;;:::i;:::-;-1:-1:-1;11218:9:1;;11157:76::o;11238:135::-;;-1:-1:-1;;11298:17:1;;11295:2;;;11318:18;;:::i;:::-;-1:-1:-1;11365:1:1;11354:13;;11285:88::o;11378:127::-;11439:10;11434:3;11430:20;11427:1;11420:31;11470:4;11467:1;11460:15;11494:4;11491:1;11484:15;11510:133;-1:-1:-1;;;;;11587:31:1;;11577:42;;11567:2;;11633:1;11630;11623:12;11567:2;11557:86;:::o

Swarm Source

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