ETH Price: $2,513.06 (-0.39%)

Token

neineinei (neineinei)
 

Overview

Max Total Supply

100,000,000,000 neineinei

Holders

909

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
61,514,196.741254924 neineinei

Value
$0.00
0x5e01973a728a63a6512f132267104336ee171f58
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:
Token

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-15
*/

/**
 *sunshine rainbow little white horse
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;


interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IUniswapRouter {

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

}

interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Token is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address payable private MarketingWallet;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping (address => bool) private bots;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    address public _uniswapPair;

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

    constructor (){

        _name = "neineinei";
        _symbol = "neineinei";
        _decimals = 9;
        uint256 Supply = 100_000_000_000;

        _totalSupply = Supply * 10 ** _decimals;

        address receiveAddr = msg.sender;
        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        MarketingWallet = payable(msg.sender);
        _walletMAX = _totalSupply * 2 / 100;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[MarketingWallet] = true;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _isExcludeFromFee[address(swapRouter)] = true;

    }

    function setFundAddr(
        address payable newAddr
    ) public onlyOwner{
        MarketingWallet = newAddr;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    uint256 public _buyCount=0;
    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=25;
    uint256 private _finalSellTax=25;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    bool public remainHolder = true;
    function changeRemain() public onlyOwner{
        remainHolder = !remainHolder;
    }

    uint256 public _walletMAX;

    function setWalletMax(uint8 percentage) public onlyOwner{
        _walletMAX = totalSupply() * percentage / 100;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap){
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))){
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > 0){
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            require(!bots[from]);
            takeFee = true;
            
            if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) {
                _buyCount++;
                require(balanceOf(to) + amount <= _walletMAX,"walletlimit");
            }

            if (remainHolder && amount == balance) {
                amount = amount - (amount / 10000);
            }

        }

        _transferToken(from, to, amount, takeFee);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    uint256 public startTradeBlock;
    function startTrade() public onlyOwner {
        startTradeBlock = block.number;
    }

    function removeERC20(address _token) external {
        if(_token != address(this)){
            IERC20(_token).transfer(MarketingWallet, IERC20(_token).balanceOf(address(this)));
            MarketingWallet.transfer(address(this).balance);
        }
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 _bal = address(this).balance;
        if (_bal > 0.01 ether){
            MarketingWallet.transfer(_bal);
        }
    }

    function setFeeExclude(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    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":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"percentage","type":"uint8"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600d819055600e819055600f81905560196010819055601155601281905560138190556014556015805460ff191660011790553480156200004657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526009808252686e65696e65696e656960b81b6020909201918252620000ba9160049162000515565b50604080518082019091526009808252686e65696e65696e656960b81b6020909201918252620000ed9160059162000515565b506006805460ff1916600990811790915564174876e800906200011290600a6200067d565b6200011e90826200073e565b600881905533600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b03191633179055600854606490620001909060026200073e565b6200019c919062000611565b601655306000818152600760209081526040808320805460ff1990811660019081179092556001600160a01b038781168652838620805483168417905560035416855282852080549091169091179055600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559383526002825280832084845282528083206000199055805163c45a015560e01b81529051849263c45a01559260048082019391829003018186803b1580156200025e57600080fd5b505afa15801562000273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002999190620005bb565b9050806001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e557600080fd5b505afa158015620002fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003209190620005bb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200036957600080fd5b505af11580156200037e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a49190620005bb565b600c8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055900481166000908152600b6020908152604091829020805460ff1916600117905560095482516315ab88c960e31b8152925193169263ad5c4648926004808201939291829003018186803b1580156200042357600080fd5b505afa15801562000438573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045e9190620005bb565b60095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015620004ad57600080fd5b505af1158015620004c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e89190620005ed565b50506001600160a01b03166000908152600760205260409020805460ff1916600117905550620007b39050565b828054620005239062000760565b90600052602060002090601f01602090048101928262000547576000855562000592565b82601f106200056257805160ff191683800117855562000592565b8280016001018555821562000592579182015b828111156200059257825182559160200191906001019062000575565b50620005a0929150620005a4565b5090565b5b80821115620005a05760008155600101620005a5565b600060208284031215620005ce57600080fd5b81516001600160a01b0381168114620005e657600080fd5b9392505050565b6000602082840312156200060057600080fd5b81518015158114620005e657600080fd5b6000826200062f57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620006755781600019048211156200065957620006596200079d565b808516156200066757918102915b93841c939080029062000639565b509250929050565b6000620005e660ff841683600082620006995750600162000738565b81620006a85750600062000738565b8160018114620006c15760028114620006cc57620006ec565b600191505062000738565b60ff841115620006e057620006e06200079d565b50506001821b62000738565b5060208310610133831016604e8410600b841016171562000711575081810a62000738565b6200071d838362000634565b80600019048211156200073457620007346200079d565b0290505b92915050565b60008160001904831182151516156200075b576200075b6200079d565b500290565b600181811c908216806200077557607f821691505b602082108114156200079757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6118ed80620007c36000396000f3fe6080604052600436106101c65760003560e01c806365b61b77116100f757806395d89b4111610095578063cefab2af11610064578063cefab2af14610517578063d34628cc14610531578063dd62ed3e14610551578063f2fde38b1461059757600080fd5b806395d89b41146104ad578063a67755c2146104c2578063a9059cbb146104e2578063bc76c0521461050257600080fd5b806370a08231116100d157806370a0823114610424578063715018a61461045a5780638da5cb5b1461046f578063936c044b1461048d57600080fd5b806365b61b77146103cf5780636c580801146103ef5780636f39cfcd1461040457600080fd5b8063319c2f64116101645780633ecad2711161013e5780633ecad2711461032c5780633f80b6d71461035c5780634bf28fd01461037c578063553193ca146103b957600080fd5b8063319c2f64146102ba57806331c2d847146102dc57806336b2e027146102fc57600080fd5b80631b583749116101a05780631b5837491461024c57806323b872dd1461026257806327b1a8e914610282578063313ce5671461029857600080fd5b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76105b7565b6040516101f4919061169b565b60405180910390f35b34801561020957600080fd5b5061021d61021836600461150f565b610649565b60405190151581526020016101f4565b34801561023957600080fd5b506008545b6040519081526020016101f4565b34801561025857600080fd5b5061023e60165481565b34801561026e57600080fd5b5061021d61027d3660046114a0565b61065f565b34801561028e57600080fd5b5061023e600d5481565b3480156102a457600080fd5b5060065460405160ff90911681526020016101f4565b3480156102c657600080fd5b506102da6102d5366004611678565b6106f6565b005b3480156102e857600080fd5b506102da6102f736600461153b565b610752565b34801561030857600080fd5b5061021d610317366004611426565b60076020526000908152604090205460ff1681565b34801561033857600080fd5b5061021d610347366004611426565b600b6020526000908152604090205460ff1681565b34801561036857600080fd5b506102da61037736600461163d565b6107e8565b34801561038857600080fd5b50600c546103a19061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b3480156103c557600080fd5b5061023e60175481565b3480156103db57600080fd5b506009546103a1906001600160a01b031681565b3480156103fb57600080fd5b506102da610829565b34801561041057600080fd5b506102da61041f366004611426565b610859565b34801561043057600080fd5b5061023e61043f366004611426565b6001600160a01b031660009081526001602052604090205490565b34801561046657600080fd5b506102da6108a5565b34801561047b57600080fd5b506000546001600160a01b03166103a1565b34801561049957600080fd5b506102da6104a83660046114e1565b610919565b3480156104b957600080fd5b506101e761096e565b3480156104ce57600080fd5b506102da6104dd366004611426565b61097d565b3480156104ee57600080fd5b5061021d6104fd36600461150f565b610ace565b34801561050e57600080fd5b506102da610adb565b34801561052357600080fd5b5060155461021d9060ff1681565b34801561053d57600080fd5b506102da61054c36600461153b565b610b19565b34801561055d57600080fd5b5061023e61056c366004611467565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105a357600080fd5b506102da6105b2366004611426565b610bab565b6060600480546105c6906117fc565b80601f01602080910402602001604051908101604052809291908181526020018280546105f2906117fc565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b6000610656338484610c71565b50600192915050565b600061066c848484610cd2565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106ec576001600160a01b03841660009081526002602090815260408083203384529091529020546106c79083906117e5565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146107295760405162461bcd60e51b8152600401610720906116f0565b60405180910390fd5b60648160ff1661073860085490565b61074291906117c6565b61074c91906117a4565b60165550565b6000546001600160a01b0316331461077c5760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576000600a60008484815181106107a0576107a0611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107dc81611837565b91505061077f565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b8152600401610720906116f0565b601094909455601192909255601255601355601455565b6000546001600160a01b031633146108535760405162461bcd60e51b8152600401610720906116f0565b43601755565b6000546001600160a01b031633146108835760405162461bcd60e51b8152600401610720906116f0565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b8152600401610720906116f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109435760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6060600580546105c6906117fc565b6001600160a01b0381163014610acb576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a082319060240160206040518083038186803b1580156109db57600080fd5b505afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611624565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611607565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107e4573d6000803e3d6000fd5b50565b6000610656338484610cd2565b6000546001600160a01b03163314610b055760405162461bcd60e51b8152600401610720906116f0565b6015805460ff19811660ff90911615179055565b6000546001600160a01b03163314610b435760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576001600a6000848481518110610b6757610b67611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ba381611837565b915050610b46565b6000546001600160a01b03163314610bd55760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b038116610c165760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610720565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610d2e5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610720565b600c5460ff1615610d4b57610d44848484610fb8565b5050505050565b6001600160a01b0383166000908152600b602052604081205460ff168015610d765750600c5460ff16155b8015610d9b57506001600160a01b03851660009081526007602052604090205460ff16155b8015610dc057506001600160a01b03841660009081526007602052604090205460ff16155b8015610dcf5750601454600d54115b15610e1057306000908152600160205260409020548390811115610dff5750306000908152600160205260409020545b8015610e0e57610e0e8161106d565b505b6001600160a01b03851660009081526007602052604090205460ff16158015610e5257506001600160a01b03841660009081526007602052604090205460ff16155b8015610e615750600c5460ff16155b15610fac57600060175411610e7557600080fd5b6001600160a01b0385166000908152600a602052604090205460ff1615610e9b57600080fd5b506001600160a01b0384166000908152600b602052604090205460019060ff168015610ed557506009546001600160a01b03858116911614155b8015610efa57506001600160a01b03841660009081526007602052604090205460ff16155b15610f7d57600d8054906000610f0f83611837565b919050555060165483610f37866001600160a01b031660009081526001602052604090205490565b610f41919061178c565b1115610f7d5760405162461bcd60e51b815260206004820152600b60248201526a1dd85b1b195d1b1a5b5a5d60aa1b6044820152606401610720565b60155460ff168015610f8e57508183145b15610fac57610f9f612710846117a4565b610fa990846117e5565b92505b610d4485858584611222565b6001600160a01b038316600090815260016020526040812080548391908390610fe29084906117e5565b90915550506001600160a01b0383166000908152600160205260408120805484929061100f90849061178c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105b91815260200190565b60405180910390a35060019392505050565b600c805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110af576110af611868565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110357600080fd5b505afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061144a565b8160018151811061114e5761114e611868565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac9479061119490859060009086903090429060040161171b565b600060405180830381600087803b1580156111ae57600080fd5b505af11580156111c2573d6000803e3d6000fd5b504792505050662386f26fc10000811115611213576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611211573d6000803e3d6000fd5b505b5050600c805460ff1916905550565b6001600160a01b0384166000908152600160205260409020546112469083906117e5565b6001600160a01b0385166000908152600160205260408120919091558115611387576001600160a01b0384166000908152600b602052604081205460ff16156112a757601354600d541161129c57600f546112a0565b6011545b90506112e2565b6001600160a01b0386166000908152600b602052604090205460ff16156112e257601254600d54116112db57600e546112df565b6010545b90505b600060646112f083876117c6565b6112fa91906117a4565b905080156113845761130c818461178c565b3060009081526001602052604090205490935061132a90829061178c565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137b9085815260200190565b60405180910390a35b50505b61139181846117e5565b6001600160a01b0385166000908152600160205260409020546113b4919061178c565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113fe84876117e5565b60405190815260200160405180910390a35050505050565b803561142181611894565b919050565b60006020828403121561143857600080fd5b813561144381611894565b9392505050565b60006020828403121561145c57600080fd5b815161144381611894565b6000806040838503121561147a57600080fd5b823561148581611894565b9150602083013561149581611894565b809150509250929050565b6000806000606084860312156114b557600080fd5b83356114c081611894565b925060208401356114d081611894565b929592945050506040919091013590565b600080604083850312156114f457600080fd5b82356114ff81611894565b91506020830135611495816118a9565b6000806040838503121561152257600080fd5b823561152d81611894565b946020939093013593505050565b6000602080838503121561154e57600080fd5b823567ffffffffffffffff8082111561156657600080fd5b818501915085601f83011261157a57600080fd5b81358181111561158c5761158c61187e565b8060051b604051601f19603f830116810181811085821117156115b1576115b161187e565b604052828152858101935084860182860187018a10156115d057600080fd5b600095505b838610156115fa576115e681611416565b8552600195909501949386019386016115d5565b5098975050505050505050565b60006020828403121561161957600080fd5b8151611443816118a9565b60006020828403121561163657600080fd5b5051919050565b600080600080600060a0868803121561165557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561168a57600080fd5b813560ff8116811461144357600080fd5b600060208083528351808285015260005b818110156116c8578581018301518582016040015282016116ac565b818111156116da576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561176b5784516001600160a01b031683529383019391830191600101611746565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561179f5761179f611852565b500190565b6000826117c157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117e0576117e0611852565b500290565b6000828210156117f7576117f7611852565b500390565b600181811c9082168061181057607f821691505b6020821081141561183157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561184b5761184b611852565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610acb57600080fd5b8015158114610acb57600080fdfea264697066735822122084bc92aa16f5ad9b541f6a469eb44b652c09f44e6e08ab9984069a8285de4db564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806365b61b77116100f757806395d89b4111610095578063cefab2af11610064578063cefab2af14610517578063d34628cc14610531578063dd62ed3e14610551578063f2fde38b1461059757600080fd5b806395d89b41146104ad578063a67755c2146104c2578063a9059cbb146104e2578063bc76c0521461050257600080fd5b806370a08231116100d157806370a0823114610424578063715018a61461045a5780638da5cb5b1461046f578063936c044b1461048d57600080fd5b806365b61b77146103cf5780636c580801146103ef5780636f39cfcd1461040457600080fd5b8063319c2f64116101645780633ecad2711161013e5780633ecad2711461032c5780633f80b6d71461035c5780634bf28fd01461037c578063553193ca146103b957600080fd5b8063319c2f64146102ba57806331c2d847146102dc57806336b2e027146102fc57600080fd5b80631b583749116101a05780631b5837491461024c57806323b872dd1461026257806327b1a8e914610282578063313ce5671461029857600080fd5b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76105b7565b6040516101f4919061169b565b60405180910390f35b34801561020957600080fd5b5061021d61021836600461150f565b610649565b60405190151581526020016101f4565b34801561023957600080fd5b506008545b6040519081526020016101f4565b34801561025857600080fd5b5061023e60165481565b34801561026e57600080fd5b5061021d61027d3660046114a0565b61065f565b34801561028e57600080fd5b5061023e600d5481565b3480156102a457600080fd5b5060065460405160ff90911681526020016101f4565b3480156102c657600080fd5b506102da6102d5366004611678565b6106f6565b005b3480156102e857600080fd5b506102da6102f736600461153b565b610752565b34801561030857600080fd5b5061021d610317366004611426565b60076020526000908152604090205460ff1681565b34801561033857600080fd5b5061021d610347366004611426565b600b6020526000908152604090205460ff1681565b34801561036857600080fd5b506102da61037736600461163d565b6107e8565b34801561038857600080fd5b50600c546103a19061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b3480156103c557600080fd5b5061023e60175481565b3480156103db57600080fd5b506009546103a1906001600160a01b031681565b3480156103fb57600080fd5b506102da610829565b34801561041057600080fd5b506102da61041f366004611426565b610859565b34801561043057600080fd5b5061023e61043f366004611426565b6001600160a01b031660009081526001602052604090205490565b34801561046657600080fd5b506102da6108a5565b34801561047b57600080fd5b506000546001600160a01b03166103a1565b34801561049957600080fd5b506102da6104a83660046114e1565b610919565b3480156104b957600080fd5b506101e761096e565b3480156104ce57600080fd5b506102da6104dd366004611426565b61097d565b3480156104ee57600080fd5b5061021d6104fd36600461150f565b610ace565b34801561050e57600080fd5b506102da610adb565b34801561052357600080fd5b5060155461021d9060ff1681565b34801561053d57600080fd5b506102da61054c36600461153b565b610b19565b34801561055d57600080fd5b5061023e61056c366004611467565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105a357600080fd5b506102da6105b2366004611426565b610bab565b6060600480546105c6906117fc565b80601f01602080910402602001604051908101604052809291908181526020018280546105f2906117fc565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b6000610656338484610c71565b50600192915050565b600061066c848484610cd2565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106ec576001600160a01b03841660009081526002602090815260408083203384529091529020546106c79083906117e5565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146107295760405162461bcd60e51b8152600401610720906116f0565b60405180910390fd5b60648160ff1661073860085490565b61074291906117c6565b61074c91906117a4565b60165550565b6000546001600160a01b0316331461077c5760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576000600a60008484815181106107a0576107a0611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107dc81611837565b91505061077f565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b8152600401610720906116f0565b601094909455601192909255601255601355601455565b6000546001600160a01b031633146108535760405162461bcd60e51b8152600401610720906116f0565b43601755565b6000546001600160a01b031633146108835760405162461bcd60e51b8152600401610720906116f0565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b8152600401610720906116f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109435760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6060600580546105c6906117fc565b6001600160a01b0381163014610acb576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a082319060240160206040518083038186803b1580156109db57600080fd5b505afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611624565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611607565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107e4573d6000803e3d6000fd5b50565b6000610656338484610cd2565b6000546001600160a01b03163314610b055760405162461bcd60e51b8152600401610720906116f0565b6015805460ff19811660ff90911615179055565b6000546001600160a01b03163314610b435760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576001600a6000848481518110610b6757610b67611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ba381611837565b915050610b46565b6000546001600160a01b03163314610bd55760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b038116610c165760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610720565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610d2e5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610720565b600c5460ff1615610d4b57610d44848484610fb8565b5050505050565b6001600160a01b0383166000908152600b602052604081205460ff168015610d765750600c5460ff16155b8015610d9b57506001600160a01b03851660009081526007602052604090205460ff16155b8015610dc057506001600160a01b03841660009081526007602052604090205460ff16155b8015610dcf5750601454600d54115b15610e1057306000908152600160205260409020548390811115610dff5750306000908152600160205260409020545b8015610e0e57610e0e8161106d565b505b6001600160a01b03851660009081526007602052604090205460ff16158015610e5257506001600160a01b03841660009081526007602052604090205460ff16155b8015610e615750600c5460ff16155b15610fac57600060175411610e7557600080fd5b6001600160a01b0385166000908152600a602052604090205460ff1615610e9b57600080fd5b506001600160a01b0384166000908152600b602052604090205460019060ff168015610ed557506009546001600160a01b03858116911614155b8015610efa57506001600160a01b03841660009081526007602052604090205460ff16155b15610f7d57600d8054906000610f0f83611837565b919050555060165483610f37866001600160a01b031660009081526001602052604090205490565b610f41919061178c565b1115610f7d5760405162461bcd60e51b815260206004820152600b60248201526a1dd85b1b195d1b1a5b5a5d60aa1b6044820152606401610720565b60155460ff168015610f8e57508183145b15610fac57610f9f612710846117a4565b610fa990846117e5565b92505b610d4485858584611222565b6001600160a01b038316600090815260016020526040812080548391908390610fe29084906117e5565b90915550506001600160a01b0383166000908152600160205260408120805484929061100f90849061178c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105b91815260200190565b60405180910390a35060019392505050565b600c805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110af576110af611868565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110357600080fd5b505afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061144a565b8160018151811061114e5761114e611868565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac9479061119490859060009086903090429060040161171b565b600060405180830381600087803b1580156111ae57600080fd5b505af11580156111c2573d6000803e3d6000fd5b504792505050662386f26fc10000811115611213576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611211573d6000803e3d6000fd5b505b5050600c805460ff1916905550565b6001600160a01b0384166000908152600160205260409020546112469083906117e5565b6001600160a01b0385166000908152600160205260408120919091558115611387576001600160a01b0384166000908152600b602052604081205460ff16156112a757601354600d541161129c57600f546112a0565b6011545b90506112e2565b6001600160a01b0386166000908152600b602052604090205460ff16156112e257601254600d54116112db57600e546112df565b6010545b90505b600060646112f083876117c6565b6112fa91906117a4565b905080156113845761130c818461178c565b3060009081526001602052604090205490935061132a90829061178c565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137b9085815260200190565b60405180910390a35b50505b61139181846117e5565b6001600160a01b0385166000908152600160205260409020546113b4919061178c565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113fe84876117e5565b60405190815260200160405180910390a35050505050565b803561142181611894565b919050565b60006020828403121561143857600080fd5b813561144381611894565b9392505050565b60006020828403121561145c57600080fd5b815161144381611894565b6000806040838503121561147a57600080fd5b823561148581611894565b9150602083013561149581611894565b809150509250929050565b6000806000606084860312156114b557600080fd5b83356114c081611894565b925060208401356114d081611894565b929592945050506040919091013590565b600080604083850312156114f457600080fd5b82356114ff81611894565b91506020830135611495816118a9565b6000806040838503121561152257600080fd5b823561152d81611894565b946020939093013593505050565b6000602080838503121561154e57600080fd5b823567ffffffffffffffff8082111561156657600080fd5b818501915085601f83011261157a57600080fd5b81358181111561158c5761158c61187e565b8060051b604051601f19603f830116810181811085821117156115b1576115b161187e565b604052828152858101935084860182860187018a10156115d057600080fd5b600095505b838610156115fa576115e681611416565b8552600195909501949386019386016115d5565b5098975050505050505050565b60006020828403121561161957600080fd5b8151611443816118a9565b60006020828403121561163657600080fd5b5051919050565b600080600080600060a0868803121561165557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561168a57600080fd5b813560ff8116811461144357600080fd5b600060208083528351808285015260005b818110156116c8578581018301518582016040015282016116ac565b818111156116da576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561176b5784516001600160a01b031683529383019391830191600101611746565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561179f5761179f611852565b500190565b6000826117c157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117e0576117e0611852565b500290565b6000828210156117f7576117f7611852565b500390565b600181811c9082168061181057607f821691505b6020821081141561183157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561184b5761184b611852565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610acb57600080fd5b8015158114610acb57600080fdfea264697066735822122084bc92aa16f5ad9b541f6a469eb44b652c09f44e6e08ab9984069a8285de4db564736f6c63430008070033

Deployed Bytecode Sourcemap

2556:8845:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4768:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5531:159;;;;;;;;;;-1:-1:-1;5531:159:0;;;;;:::i;:::-;;:::i;:::-;;;5451:14:1;;5444:22;5426:41;;5414:2;5399:18;5531:159:0;5286:187:1;4972:100:0;;;;;;;;;;-1:-1:-1;5052:12:0;;4972:100;;;7823:25:1;;;7811:2;7796:18;4972:100:0;7677:177:1;7356:25:0;;;;;;;;;;;;;;;;5698:336;;;;;;;;;;-1:-1:-1;5698:336:0;;;;;:::i;:::-;;:::i;6494:26::-;;;;;;;;;;;;;;;;4870:94;;;;;;;;;;-1:-1:-1;4947:9:0;;4870:94;;4947:9;;;;8986:36:1;;8974:2;8959:18;4870:94:0;8844:184:1;7390:120:0;;;;;;;;;;-1:-1:-1;7390:120:0;;;;;:::i;:::-;;:::i;:::-;;10517:162;;;;;;;;;;-1:-1:-1;10517:162:0;;;;;:::i;:::-;;:::i;2861:49::-;;;;;;;;;;-1:-1:-1;2861:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3052:44;;;;;;;;;;-1:-1:-1;3052:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6809:406;;;;;;;;;;-1:-1:-1;6809:406:0;;;;;:::i;:::-;;:::i;3182:27::-;;;;;;;;;;-1:-1:-1;3182:27:0;;;;;;;-1:-1:-1;;;;;3182:27:0;;;;;;-1:-1:-1;;;;;4955:32:1;;;4937:51;;4925:2;4910:18;3182:27:0;4791:203:1;9943:30:0;;;;;;;;;;;;;;;;2960:36;;;;;;;;;;-1:-1:-1;2960:36:0;;;;-1:-1:-1;;;;;2960:36:0;;;9980:88;;;;;;;;;;;;;:::i;4532:122::-;;;;;;;;;;-1:-1:-1;4532:122:0;;;;;:::i;:::-;;:::i;5080:119::-;;;;;;;;;;-1:-1:-1;5080:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5173:18:0;5146:7;5173:18;;;:9;:18;;;;;;;5080:119;2179:148;;;;;;;;;;;;;:::i;1982:79::-;;;;;;;;;;-1:-1:-1;2020:7:0;2047:6;-1:-1:-1;;;;;2047:6:0;1982:79;;11240:121;;;;;;;;;;-1:-1:-1;11240:121:0;;;;;:::i;:::-;;:::i;4662:98::-;;;;;;;;;;;;;:::i;10076:261::-;;;;;;;;;;-1:-1:-1;10076:261:0;;;;;:::i;:::-;;:::i;5207:165::-;;;;;;;;;;-1:-1:-1;5207:165:0;;;;;:::i;:::-;;:::i;7261:87::-;;;;;;;;;;;;;:::i;7223:31::-;;;;;;;;;;-1:-1:-1;7223:31:0;;;;;;;;10345:164;;;;;;;;;;-1:-1:-1;10345:164:0;;;;;:::i;:::-;;:::i;5380:143::-;;;;;;;;;;-1:-1:-1;5380:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5488:18:0;;;5461:7;5488:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5380:143;2335:214;;;;;;;;;;-1:-1:-1;2335:214:0;;;;;:::i;:::-;;:::i;4768:94::-;4816:13;4849:5;4842:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4768:94;:::o;5531:159::-;5606:4;5623:37;5632:10;5644:7;5653:6;5623:8;:37::i;:::-;-1:-1:-1;5678:4:0;5531:159;;;;:::o;5698:336::-;5796:4;5813:36;5823:6;5831:9;5842:6;5813:9;:36::i;:::-;-1:-1:-1;;;;;5864:19:0;;3171:1;5864:19;;;:11;:19;;;;;;;;5884:10;5864:31;;;;;;;;-1:-1:-1;;5864:38:0;5860:145;;-1:-1:-1;;;;;5953:19:0;;;;;;:11;:19;;;;;;;;5973:10;5953:31;;;;;;;;:40;;5987:6;;5953:40;:::i;:::-;-1:-1:-1;;;;;5919:19:0;;;;;;:11;:19;;;;;;;;5939:10;5919:31;;;;;;;:74;5860:145;-1:-1:-1;6022:4:0;5698:336;;;;;:::o;7390:120::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;;;;;;;;;7499:3:::1;7486:10;7470:26;;:13;5052:12:::0;;;4972:100;7470:13:::1;:26;;;;:::i;:::-;:32;;;;:::i;:::-;7457:10;:45:::0;-1:-1:-1;7390:120:0:o;10517:162::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;10590:6:::1;10585:87;10606:6;:13;10602:1;:17;10585:87;;;10657:5;10639:4;:15;10644:6;10651:1;10644:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10639:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10639:15:0;:23;;-1:-1:-1;;10639:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10621:3;::::1;::::0;::::1;:::i;:::-;;;;10585:87;;;;10517:162:::0;:::o;6809:406::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;7016:12:::1;:21:::0;;;;7048:13:::1;:23:::0;;;;7082:15:::1;:30:::0;7123:16:::1;:32:::0;7166:18:::1;:41:::0;6809:406::o;9980:88::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;10048:12:::1;10030:15;:30:::0;9980:88::o;4532:122::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;4621:15:::1;:25:::0;;-1:-1:-1;;;;;;4621:25:0::1;-1:-1:-1::0;;;;;4621:25:0;;;::::1;::::0;;;::::1;::::0;;4532:122::o;2179:148::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;2286:1:::1;2270:6:::0;;2249:40:::1;::::0;-1:-1:-1;;;;;2270:6:0;;::::1;::::0;2249:40:::1;::::0;2286:1;;2249:40:::1;2317:1;2300:19:::0;;-1:-1:-1;;;;;;2300:19:0::1;::::0;;2179:148::o;11240:121::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11319:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;11319:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11240:121::o;4662:98::-;4712:13;4745:7;4738:14;;;;;:::i;10076:261::-;-1:-1:-1;;;;;10136:23:0;;10154:4;10136:23;10133:197;;10199:15;;10216:39;;-1:-1:-1;;;10216:39:0;;10249:4;10216:39;;;4937:51:1;-1:-1:-1;;;;;10175:23:0;;;;;;10199:15;;;10175:23;;10216:24;;4910:18:1;;10216:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10175:81;;-1:-1:-1;;;;;;10175:81:0;;;;;;;-1:-1:-1;;;;;5199:32:1;;;10175:81:0;;;5181:51:1;5248:18;;;5241:34;5154:18;;10175:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10271:15:0;;:47;;-1:-1:-1;;;;;10271:15:0;;;;10296:21;10271:47;;;;;:15;:47;:15;:47;10296:21;10271:15;:47;;;;;;;;;;;;;;;;;;;10133:197;10076:261;:::o;5207:165::-;5285:4;5302:40;5312:10;5324:9;5335:6;5302:9;:40::i;7261:87::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;7328:12:::1;::::0;;-1:-1:-1;;7312:28:0;::::1;7328:12;::::0;;::::1;7327:13;7312:28;::::0;;7261:87::o;10345:164::-;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;10419:6:::1;10414:88;10435:5;:12;10431:1;:16;10414:88;;;10486:4;10469;:14;10474:5;10480:1;10474:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10469:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10469:14:0;:21;;-1:-1:-1;;10469:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10449:3;::::1;::::0;::::1;:::i;:::-;;;;10414:88;;2335:214:::0;2109:6;;-1:-1:-1;;;;;2109:6:0;2119:10;2109:20;2101:50;;;;-1:-1:-1;;;2101:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2424:22:0;::::1;2416:43;;;::::0;-1:-1:-1;;;2416:43:0;;6857:2:1;2416:43:0::1;::::0;::::1;6839:21:1::0;6896:1;6876:18;;;6869:29;-1:-1:-1;;;6914:18:1;;;6907:38;6962:18;;2416:43:0::1;6655:331:1::0;2416:43:0::1;2496:6;::::0;;2475:38:::1;::::0;-1:-1:-1;;;;;2475:38:0;;::::1;::::0;2496:6;::::1;::::0;2475:38:::1;::::0;::::1;2524:6;:17:::0;;-1:-1:-1;;;;;;2524:17:0::1;-1:-1:-1::0;;;;;2524:17:0;;;::::1;::::0;;;::::1;::::0;;2335:214::o;6042:177::-;-1:-1:-1;;;;;6127:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6179:32;;7823:25:1;;;6179:32:0;;7796:18:1;6179:32:0;;;;;;;6042:177;;;:::o;7518:1378::-;-1:-1:-1;;;;;5173:18:0;;7632:15;5173:18;;;:9;:18;;;;;;7684:17;;;;7676:46;;;;-1:-1:-1;;;7676:46:0;;6512:2:1;7676:46:0;;;6494:21:1;6551:2;6531:18;;;6524:30;-1:-1:-1;;;6570:18:1;;;6563:46;6626:18;;7676:46:0;6310:340:1;7676:46:0;7739:6;;;;7735:91;;;7761:32;7776:4;7782:2;7786:6;7761:14;:32::i;:::-;;7808:7;7518:1378;;;:::o;7735:91::-;-1:-1:-1;;;;;7867:16:0;;7838:12;7867:16;;;:12;:16;;;;;;;;:27;;;;-1:-1:-1;7888:6:0;;;;7887:7;7867:27;:55;;;;-1:-1:-1;;;;;;7899:23:0;;;;;;:17;:23;;;;;;;;7898:24;7867:55;:81;;;;-1:-1:-1;;;;;;7927:21:0;;;;;;:17;:21;;;;;;;;7926:22;7867:81;:115;;;;;7964:18;;7952:9;;:30;7867:115;7863:413;;;8082:4;5146:7;5173:18;;;:9;:18;;;;;;8023:6;;8048:13;:40;8044:120;;;-1:-1:-1;8142:4:0;8124:24;;;;:9;:24;;;;;;8044:120;8182:17;;8178:87;;8219:30;8235:13;8219:15;:30::i;:::-;7984:292;7863:413;-1:-1:-1;;;;;8293:23:0;;;;;;:17;:23;;;;;;;;8292:24;:50;;;;-1:-1:-1;;;;;;8321:21:0;;;;;;:17;:21;;;;;;;;8320:22;8292:50;:61;;;;-1:-1:-1;8347:6:0;;;;8346:7;8292:61;8288:547;;;8396:1;8378:15;;:19;8370:28;;;;;;-1:-1:-1;;;;;8422:10:0;;;;;;:4;:10;;;;;;;;8421:11;8413:20;;;;;;-1:-1:-1;;;;;;8495:18:0;;;;;;:12;:18;;;;;;8458:4;;8495:18;;:51;;;;-1:-1:-1;8531:14:0;;-1:-1:-1;;;;;8517:29:0;;;8531:14;;8517:29;;8495:51;:77;;;;-1:-1:-1;;;;;;8551:21:0;;;;;;:17;:21;;;;;;;;8550:22;8495:77;8491:207;;;8593:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8657:10;;8647:6;8631:13;8641:2;-1:-1:-1;;;;;5173:18:0;5146:7;5173:18;;;:9;:18;;;;;;;5080:119;8631:13;:22;;;;:::i;:::-;:36;;8623:59;;;;-1:-1:-1;;;8623:59:0;;7193:2:1;8623:59:0;;;7175:21:1;7232:2;7212:18;;;7205:30;-1:-1:-1;;;7251:18:1;;;7244:41;7302:18;;8623:59:0;6991:335:1;8623:59:0;8718:12;;;;:33;;;;;8744:7;8734:6;:17;8718:33;8714:108;;;8791:14;8800:5;8791:6;:14;:::i;:::-;8781:25;;:6;:25;:::i;:::-;8772:34;;8714:108;8847:41;8862:4;8868:2;8872:6;8880:7;8847:14;:41::i;6227:259::-;-1:-1:-1;;;;;6337:17:0;;6320:4;6337:17;;;:9;:17;;;;;:27;;6358:6;;6337:17;6320:4;;6337:27;;6358:6;;6337:27;:::i;:::-;;;;-1:-1:-1;;;;;;;6375:20:0;;;;;;:9;:20;;;;;:30;;6399:6;;6375:20;:30;;6399:6;;6375:30;:::i;:::-;;;;;;;;6438:9;-1:-1:-1;;;;;6421:35:0;6430:6;-1:-1:-1;;;;;6421:35:0;;6449:6;6421:35;;;;7823:25:1;;7811:2;7796:18;;7677:177;6421:35:0;;;;;;;;-1:-1:-1;6474:4:0;6227:259;;;;;:::o;10687:545::-;3250:6;:13;;-1:-1:-1;;3250:13:0;3259:4;3250:13;;;10788:16:::1;::::0;;10802:1:::1;10788:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10788:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10788:16:0::1;10764:40;;10833:4;10815;10820:1;10815:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10815:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10859:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;10859:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;10815:7;;10859:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10849:4;10854:1;10849:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10849:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;10891:14:::1;::::0;:195:::1;::::0;-1:-1:-1;;;10891:195:0;;:14;::::1;::::0;:65:::1;::::0;:195:::1;::::0;10971:11;;10891:14:::1;::::0;11013:4;;11040::::1;::::0;11060:15:::1;::::0;10891:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11114:21:0::1;::::0;-1:-1:-1;;;11157:10:0::1;11150:17:::0;::::1;11146:79;;;11183:15;::::0;:30:::1;::::0;-1:-1:-1;;;;;11183:15:0;;::::1;::::0;:30;::::1;;;::::0;11208:4;;11183:15:::1;:30:::0;:15;:30;11208:4;11183:15;:30;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11146:79;-1:-1:-1::0;;3286:6:0;:14;;-1:-1:-1;;3286:14:0;;;-1:-1:-1;10687:545:0:o;8904:1031::-;-1:-1:-1;;;;;9076:17:0;;;;;;:9;:17;;;;;;:27;;9096:7;;9076:27;:::i;:::-;-1:-1:-1;;;;;9056:17:0;;;;;;:9;:17;;;;;:47;;;;9144:638;;;;-1:-1:-1;;;;;9205:23:0;;9172:14;9205:23;;;:12;:23;;;;;;;;9201:270;;;9270:16;;9258:9;;:28;:62;;9305:15;;9258:62;;;9289:13;;9258:62;9249:71;;9201:270;;;-1:-1:-1;;;;;9346:20:0;;;;;;:12;:20;;;;;;;;9342:129;;;9408:15;;9396:9;;:27;:59;;9441:14;;9396:59;;;9426:12;;9396:59;9387:68;;9342:129;9485:18;9525:3;9506:16;9516:6;9506:7;:16;:::i;:::-;:22;;;;:::i;:::-;9485:43;-1:-1:-1;9547:14:0;;9543:228;;9582:23;9595:10;9582:23;;:::i;:::-;9669:4;9651:24;;;;:9;:24;;;;;;9582:23;;-1:-1:-1;9651:37:0;;9678:10;;9651:37;:::i;:::-;9642:4;9624:24;;;;:9;:24;;;;;;;:64;;;;9712:43;;-1:-1:-1;;;;;9712:43:0;;;;;;;9744:10;7823:25:1;;7811:2;7796:18;;7677:177;9712:43:0;;;;;;;;9543:228;9157:625;;9144:638;9841:19;9851:9;9841:7;:19;:::i;:::-;-1:-1:-1;;;;;9817:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;9794:20:0;;;;;;;:9;:20;;;;;:67;;;;9877:48;;;9905:19;9915:9;9905:7;:19;:::i;:::-;9877:48;;7823:25:1;;;7811:2;7796:18;9877:48:0;;;;;;;9045:890;8904:1031;;;;:::o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;:::-;389:5;153:247;-1:-1:-1;;;153:247:1:o;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;921:388::-;989:6;997;1050:2;1038:9;1029:7;1025:23;1021:32;1018:52;;;1066:1;1063;1056:12;1018:52;1105:9;1092:23;1124:31;1149:5;1124:31;:::i;:::-;1174:5;-1:-1:-1;1231:2:1;1216:18;;1203:32;1244:33;1203:32;1244:33;:::i;:::-;1296:7;1286:17;;;921:388;;;;;:::o;1314:456::-;1391:6;1399;1407;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;1515:9;1502:23;1534:31;1559:5;1534:31;:::i;:::-;1584:5;-1:-1:-1;1641:2:1;1626:18;;1613:32;1654:33;1613:32;1654:33;:::i;:::-;1314:456;;1706:7;;-1:-1:-1;;;1760:2:1;1745:18;;;;1732:32;;1314:456::o;1775:382::-;1840:6;1848;1901:2;1889:9;1880:7;1876:23;1872:32;1869:52;;;1917:1;1914;1907:12;1869:52;1956:9;1943:23;1975:31;2000:5;1975:31;:::i;:::-;2025:5;-1:-1:-1;2082:2:1;2067:18;;2054:32;2095:30;2054:32;2095:30;:::i;2162:315::-;2230:6;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;:::-;2415:5;2467:2;2452:18;;;;2439:32;;-1:-1:-1;;;2162:315:1:o;2482:1132::-;2566:6;2597:2;2640;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;2696:9;2683:23;2725:18;2766:2;2758:6;2755:14;2752:34;;;2782:1;2779;2772:12;2752:34;2820:6;2809:9;2805:22;2795:32;;2865:7;2858:4;2854:2;2850:13;2846:27;2836:55;;2887:1;2884;2877:12;2836:55;2923:2;2910:16;2945:2;2941;2938:10;2935:36;;;2951:18;;:::i;:::-;2997:2;2994:1;2990:10;3029:2;3023:9;3092:2;3088:7;3083:2;3079;3075:11;3071:25;3063:6;3059:38;3147:6;3135:10;3132:22;3127:2;3115:10;3112:18;3109:46;3106:72;;;3158:18;;:::i;:::-;3194:2;3187:22;3244:18;;;3278:15;;;;-1:-1:-1;3313:11:1;;;3343;;;3339:20;;3336:33;-1:-1:-1;3333:53:1;;;3382:1;3379;3372:12;3333:53;3404:1;3395:10;;3414:169;3428:2;3425:1;3422:9;3414:169;;;3485:23;3504:3;3485:23;:::i;:::-;3473:36;;3446:1;3439:9;;;;;3529:12;;;;3561;;3414:169;;;-1:-1:-1;3602:6:1;2482:1132;-1:-1:-1;;;;;;;;2482:1132:1:o;3619:245::-;3686:6;3739:2;3727:9;3718:7;3714:23;3710:32;3707:52;;;3755:1;3752;3745:12;3707:52;3787:9;3781:16;3806:28;3828:5;3806:28;:::i;3869:184::-;3939:6;3992:2;3980:9;3971:7;3967:23;3963:32;3960:52;;;4008:1;4005;3998:12;3960:52;-1:-1:-1;4031:16:1;;3869:184;-1:-1:-1;3869:184:1:o;4058:454::-;4153:6;4161;4169;4177;4185;4238:3;4226:9;4217:7;4213:23;4209:33;4206:53;;;4255:1;4252;4245:12;4206:53;-1:-1:-1;;4278:23:1;;;4348:2;4333:18;;4320:32;;-1:-1:-1;4399:2:1;4384:18;;4371:32;;4450:2;4435:18;;4422:32;;-1:-1:-1;4501:3:1;4486:19;4473:33;;-1:-1:-1;4058:454:1;-1:-1:-1;4058:454:1:o;4517:269::-;4574:6;4627:2;4615:9;4606:7;4602:23;4598:32;4595:52;;;4643:1;4640;4633:12;4595:52;4682:9;4669:23;4732:4;4725:5;4721:16;4714:5;4711:27;4701:55;;4752:1;4749;4742:12;5708:597;5820:4;5849:2;5878;5867:9;5860:21;5910:6;5904:13;5953:6;5948:2;5937:9;5933:18;5926:34;5978:1;5988:140;6002:6;5999:1;5996:13;5988:140;;;6097:14;;;6093:23;;6087:30;6063:17;;;6082:2;6059:26;6052:66;6017:10;;5988:140;;;6146:6;6143:1;6140:13;6137:91;;;6216:1;6211:2;6202:6;6191:9;6187:22;6183:31;6176:42;6137:91;-1:-1:-1;6289:2:1;6268:15;-1:-1:-1;;6264:29:1;6249:45;;;;6296:2;6245:54;;5708:597;-1:-1:-1;;;5708:597:1:o;7331:341::-;7533:2;7515:21;;;7572:2;7552:18;;;7545:30;-1:-1:-1;;;7606:2:1;7591:18;;7584:47;7663:2;7648:18;;7331:341::o;7859:980::-;8121:4;8169:3;8158:9;8154:19;8200:6;8189:9;8182:25;8226:2;8264:6;8259:2;8248:9;8244:18;8237:34;8307:3;8302:2;8291:9;8287:18;8280:31;8331:6;8366;8360:13;8397:6;8389;8382:22;8435:3;8424:9;8420:19;8413:26;;8474:2;8466:6;8462:15;8448:29;;8495:1;8505:195;8519:6;8516:1;8513:13;8505:195;;;8584:13;;-1:-1:-1;;;;;8580:39:1;8568:52;;8675:15;;;;8640:12;;;;8616:1;8534:9;8505:195;;;-1:-1:-1;;;;;;;8756:32:1;;;;8751:2;8736:18;;8729:60;-1:-1:-1;;;8820:3:1;8805:19;8798:35;8717:3;7859:980;-1:-1:-1;;;7859:980:1:o;9033:128::-;9073:3;9104:1;9100:6;9097:1;9094:13;9091:39;;;9110:18;;:::i;:::-;-1:-1:-1;9146:9:1;;9033:128::o;9166:217::-;9206:1;9232;9222:132;;9276:10;9271:3;9267:20;9264:1;9257:31;9311:4;9308:1;9301:15;9339:4;9336:1;9329:15;9222:132;-1:-1:-1;9368:9:1;;9166:217::o;9388:168::-;9428:7;9494:1;9490;9486:6;9482:14;9479:1;9476:21;9471:1;9464:9;9457:17;9453:45;9450:71;;;9501:18;;:::i;:::-;-1:-1:-1;9541:9:1;;9388:168::o;9561:125::-;9601:4;9629:1;9626;9623:8;9620:34;;;9634:18;;:::i;:::-;-1:-1:-1;9671:9:1;;9561:125::o;9691:380::-;9770:1;9766:12;;;;9813;;;9834:61;;9888:4;9880:6;9876:17;9866:27;;9834:61;9941:2;9933:6;9930:14;9910:18;9907:38;9904:161;;;9987:10;9982:3;9978:20;9975:1;9968:31;10022:4;10019:1;10012:15;10050:4;10047:1;10040:15;9904:161;;9691:380;;;:::o;10076:135::-;10115:3;-1:-1:-1;;10136:17:1;;10133:43;;;10156:18;;:::i;:::-;-1:-1:-1;10203:1:1;10192:13;;10076:135::o;10216:127::-;10277:10;10272:3;10268:20;10265:1;10258:31;10308:4;10305:1;10298:15;10332:4;10329:1;10322:15;10348:127;10409:10;10404:3;10400:20;10397:1;10390:31;10440:4;10437:1;10430:15;10464:4;10461:1;10454:15;10480:127;10541:10;10536:3;10532:20;10529:1;10522:31;10572:4;10569:1;10562:15;10596:4;10593:1;10586:15;10612:131;-1:-1:-1;;;;;10687:31:1;;10677:42;;10667:70;;10733:1;10730;10723:12;10748:118;10834:5;10827:13;10820:21;10813:5;10810:32;10800:60;;10856:1;10853;10846:12

Swarm Source

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