ETH Price: $3,451.18 (+1.54%)

Token

SmartXwap (SMTX)
 

Overview

Max Total Supply

1,000,000,000 SMTX

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
35,540,931.583259633124762193 SMTX

Value
$0.00
0xb5c230623972477c1fe456564d1488757aa11fa4
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:
SMTX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
- GitHub: https://github.com/smartxwap
- Website: https://smartxwap.xyz
- Dapp: https://app.smartxwap.xyz
- Documentation: https://docs.smartxwap.xyz
- Medium: https://smartxwap.medium.com
- Community: https://t.me/SmartXwap
- Twitter: https://twitter.com/SmartXwap
*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

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

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    function transfer(address to, 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 IUniswapV2Router02 {
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

abstract contract Auth {
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    address internal _owner;
    constructor(address creatorOwner) { _owner = creatorOwner; }
    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    function owner() public view returns (address) { return _owner; }
    event OwnershipTransferred(address _owner);
}

contract SMTX is IERC20, Auth {
    string private constant _name = "SmartXwap";
    string private constant _symbol = "SMTX";
    address payable private _revenue;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) private _isExcludedFromTax;
    mapping (address => bool) private _isLP;

    uint256 private _initialSellTax2Time = 7;
    uint256 private _initialSellTax = 10;
    uint256 private _initialBuyTax = 10;

    uint256 private _finalSellTax = 3;
    uint256 private _finalBuyTax = 3;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1_000_000_000 * (10**_decimals);
    uint256 private constant _minTaxSwap = _tTotal / 2000000;
    uint256 private constant _maxTaxSwap = _tTotal / 500;

    uint256 private _preventSwapBefore = 0;
    uint256 private revenueAmount;
    uint256 public _buyCount = 0;
    address payable private _taxWallet;

    uint256 public _reduceSellTaxAt2Time = 20;
    uint256 public _reduceBuyTaxAt = 14;
    uint256 public _reduceSellTaxAt = 14;

    bool public transferDelayEnabled = false;
    bool public limited = true;
    uint256 public maxHoldingAmount = 40_000_000 * (10**_decimals);

    bool private _inSwap = false;
    bool private _tradingEnalbed;

    address private _uniswapV2Pair;
    address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);

    constructor() Auth(msg.sender) {
        _taxWallet = payable(0xe24A2C57FB9584854f5369a0Aa8B9c2d5ED597B0);
        _isExcludedFromTax[address(this)] = true;
        _isExcludedFromTax[_taxWallet] = true;
        _isExcludedFromTax[_owner] = true;

        _balances[msg.sender] = (_tTotal / 1000 ) * 0;
        _balances[address(this)] = (_tTotal / 1000 ) * 1000;
        emit Transfer(address(0), address(msg.sender), _balances[address(msg.sender)]);
        emit Transfer(address(0), address(this), _balances[address(this)]);
        _revenue = _taxWallet;
    }

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

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

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

    function totalSupply() external pure override returns (uint256) { return _tTotal; }

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

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

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

    function removeLimits() external onlyOwner {
        transferDelayEnabled = false;
        limited = false;
    }

    function _approveRouter(address owner, address spender, uint256 amount) internal returns (bool) {
        if (_allowances[owner][spender] < amount) {
            _allowances[owner][spender] = _tTotal;
        }
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function _calculateTax(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 taxAmount;

        if (
            _tradingEnalbed &&
            !_isExcludedFromTax[from] &&
            !_isExcludedFromTax[to]
        ) { 
            
            if (
                _isLP[from] ||
                _isLP[to]
            ) {
                taxAmount = (amount / 100) * ((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax);
                if (
                    to == _uniswapV2Pair &&
                    from != address(this)
                ) {
                    uint256 taxRate;
                    revenueAmount = _preventSwapBefore - revenueAmount;
                    if (_buyCount > _reduceSellTaxAt2Time) {
                        taxRate = _finalSellTax;
                    } else if (_buyCount > _reduceSellTaxAt) {
                        taxRate = _initialSellTax2Time;
                    } else {
                        taxRate = _initialSellTax;
                    }
                    taxAmount = (amount / 100) * taxRate;
                }
            }
        }

        return taxAmount;
    }

    function transfer(address to, uint256 amount) external override returns (bool) {
        require(_isTradingEnabled(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, to, amount);
    }

    function _standardTransfer(address from, address to, uint256 amount) internal returns (bool) {
        _balances[from] -= amount;
        _balances[to] += amount;
        emit Transfer(from, to, amount);
        return true;
    }

    function _transferFrom(address from, address to, uint256 amount) internal returns (bool) {
        if (!_tradingEnalbed) { require(_isExcludedFromTax[from], "Trading not opened"); }
        if (_isLP[from] && _isExcludedFromTax[to]) { require(_approveRouter(from, to, amount)); }
        require(from != address(0), "No transfers from Zero wallet");
        
        if (
            _isExcludedFromTax[from] ||
            _isExcludedFromTax[to]
        ) {
            return _standardTransfer(from, to, amount);
        }
        
        if (
            !_inSwap &&
            _isLP[to] &&
            _buyCount >= _preventSwapBefore
        ) { _swapTaxAndLiquify(); }

        if (
            limited &&
            from == _uniswapV2Pair
        ) {
            require(balanceOf(to) + amount <= maxHoldingAmount);
        }
        revenueAmount = this.balanceOf(_revenue);

        if (transferDelayEnabled) {
            if (
                to != _uniswapV2RouterAddress &&
                to != _uniswapV2Pair
            ) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one transfer per block allowed");
                _holderLastTransferTimestamp[tx.origin] = block.number;
            }
        }

        uint256 _taxAmount = _calculateTax(from, to, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[from] -= amount;

        if (_taxAmount > 0) {
            _balances[address(this)] += _taxAmount; 
        }

        _buyCount++;
        _balances[to] += _transferAmount;

        emit Transfer(from, to, amount);

        return true;
    }

    function transferFrom(address from, address to, uint256 amount) external override returns (bool) {
        require(_isTradingEnabled(from), "Trading not open");
        if (_allowances[from][msg.sender] != type(uint256).max) {
            _allowances[from][msg.sender] = _allowances[from][msg.sender] - amount;
        }
        return _transferFrom(from, to, amount);
    }

    function _approveRouter(uint256 amount) internal {
        if (_allowances[address(this)][_uniswapV2RouterAddress] < amount) {
            _allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
        }
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _isTradingEnabled(address sender) private view returns (bool) {
        bool result = false;

        if (_tradingEnalbed) { result = true; }
        else if (_isExcludedFromTax[sender]) { result = true; }

        return result;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if (_taxTokensAvailable >= _minTaxSwap && _tradingEnalbed) {
            if (_taxTokensAvailable >= _maxTaxSwap) { _taxTokensAvailable = _maxTaxSwap; }

            _swapTaxTokensForEth(_taxTokensAvailable);
            uint256 _contractETHBalance = address(this).balance;

            if (_contractETHBalance > 0) {
                bool success;
                (success,) = _taxWallet.call{value: (_contractETHBalance)}("");
                require(success);
            }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_uniswapV2Pair == address(0), "LP exists");
        require(!_tradingEnalbed, "trading is open");
        require(msg.value > 0 || address(this).balance > 0, "No ETH in contract or message");
        require(_balances[address(this)] > 0, "No tokens in contract");

        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_uniswapV2Pair] = true;
    }

    receive() external payable {}

    modifier lockTaxSwap { 
        _inSwap = true;
        _;
        _inSwap = false;
    }

    function withdrawEth() external {
        require(msg.sender == _taxWallet);
        (bool sent, ) = payable(_taxWallet).call{value: address(this).balance}("");
        require(sent);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","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":[],"name":"_reduceBuyTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellTaxAt2Time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260078055600a600881905560098190556003808255600b556000600c819055600e9081556014601055601181905560129081556013805461ffff191661010017905562000051916200034f565b62000061906302625a0062000367565b6014556015805460ff19169055601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055348015620000a157600080fd5b50600080546001600160a01b031990811633178255600f805490911673e24a2c57fb9584854f5369a0aa8b9c2d5ed597b017815530825260056020526040808320805460ff19908116600190811790925592546001600160a01b039081168552828520805485168317905584541684529220805490911690911790556103e86200012e6012600a6200034f565b6200013e90633b9aca0062000367565b6200014a919062000381565b6200015790600062000367565b336000908152600360205260409020556103e8620001786012600a6200034f565b6200018890633b9aca0062000367565b62000194919062000381565b620001a2906103e862000367565b30600090815260036020908152604080832093909355338083528383205493519384529260008051602062001d30833981519152910160405180910390a330600081815260036020908152604080832054905190815260008051602062001d30833981519152910160405180910390a3600f54600180546001600160a01b0319166001600160a01b03909216919091179055620003a4565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002915781600019048211156200027557620002756200023a565b808516156200028357918102915b93841c939080029062000255565b509250929050565b600082620002aa5750600162000349565b81620002b95750600062000349565b8160018114620002d25760028114620002dd57620002fd565b600191505062000349565b60ff841115620002f157620002f16200023a565b50506001821b62000349565b5060208310610133831016604e8410600b841016171562000322575081810a62000349565b6200032e838362000250565b80600019048211156200034557620003456200023a565b0290505b92915050565b60006200036060ff84168362000299565b9392505050565b80820281158282048414176200034957620003496200023a565b6000826200039f57634e487b7160e01b600052601260045260246000fd5b500490565b61197c80620003b46000396000f3fe6080604052600436106101395760003560e01c8063860a32ec116100ab578063a0ef91df1161006f578063a0ef91df1461035b578063a9059cbb14610370578063c36956a014610390578063c876d0b9146103a6578063dd62ed3e146103c0578063e8078d941461040657600080fd5b8063860a32ec146102bc57806389f9a1d3146102db5780638a8c523c146102f15780638da5cb5b1461030657806395d89b411461032e57600080fd5b806327b1a8e9116100fd57806327b1a8e914610212578063313ce56714610228578063440604fb1461024457806370a082311461025a578063715018a614610290578063751039fc146102a757600080fd5b806306fdde0314610145578063095ea7b3146101895780630c193045146101b957806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260098152680536d617274587761760bc1b60208201525b604051610180919061157d565b60405180910390f35b34801561019557600080fd5b506101a96101a43660046115e0565b61040e565b6040519015158152602001610180565b3480156101c557600080fd5b506101cf60115481565b604051908152602001610180565b3480156101e957600080fd5b506101cf61047b565b3480156101fe57600080fd5b506101a961020d36600461160c565b61049c565b34801561021e57600080fd5b506101cf600e5481565b34801561023457600080fd5b5060405160128152602001610180565b34801561025057600080fd5b506101cf60105481565b34801561026657600080fd5b506101cf61027536600461164d565b6001600160a01b031660009081526003602052604090205490565b34801561029c57600080fd5b506102a5610580565b005b3480156102b357600080fd5b506102a56105ef565b3480156102c857600080fd5b506013546101a990610100900460ff1681565b3480156102e757600080fd5b506101cf60145481565b3480156102fd57600080fd5b506102a5610626565b34801561031257600080fd5b506000546040516001600160a01b039091168152602001610180565b34801561033a57600080fd5b506040805180820190915260048152630a69aa8b60e31b6020820152610173565b34801561036757600080fd5b506102a5610661565b34801561037c57600080fd5b506101a961038b3660046115e0565b6106db565b34801561039c57600080fd5b506101cf60125481565b3480156103b257600080fd5b506013546101a99060ff1681565b3480156103cc57600080fd5b506101cf6103db36600461166a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102a5610730565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104699086815260200190565b60405180910390a35060015b92915050565b60006104896012600a61179d565b61049790633b9aca006117ac565b905090565b60006104a784610a91565b6104eb5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461056b576001600160a01b03841660009081526002602090815260408083203384529091529020546105469083906117c3565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610576848484610ad8565b90505b9392505050565b6000546001600160a01b031633146105aa5760405162461bcd60e51b81526004016104e2906117d6565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106195760405162461bcd60e51b81526004016104e2906117d6565b6013805461ffff19169055565b6000546001600160a01b031633146106505760405162461bcd60e51b81526004016104e2906117d6565b6015805461ff001916610100179055565b600f546001600160a01b0316331461067857600080fd5b600f546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106c5576040519150601f19603f3d011682016040523d82523d6000602084013e6106ca565b606091505b50509050806106d857600080fd5b50565b60006106e633610a91565b6107255760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104e2565b610579338484610ad8565b6000546001600160a01b0316331461075a5760405162461bcd60e51b81526004016104e2906117d6565b6015805460ff1916600117908190556201000090046001600160a01b0316156107b15760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104e2565b601554610100900460ff16156107fb5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104e2565b600034118061080a5750600047115b6108565760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104e2565b306000908152600360205260409020546108aa5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104e2565b601660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610921919061180d565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a7919061180d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a18919061180d565b601580546001600160a01b0392909216620100000262010000600160b01b031990921691909117905530600090815260036020526040902054610a5b9047610f4d565b601580546201000090046001600160a01b031660009081526006602052604090208054600160ff19918216179091558154169055565b6015546000908190610100900460ff1615610aae57506001610475565b6001600160a01b03831660009081526005602052604090205460ff16156104755750600192915050565b601554600090610100900460ff16610b47576001600160a01b03841660009081526005602052604090205460ff16610b475760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104e2565b6001600160a01b03841660009081526006602052604090205460ff168015610b8757506001600160a01b03831660009081526005602052604090205460ff165b15610ba057610b97848484610ff5565b610ba057600080fd5b6001600160a01b038416610bf65760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104e2565b6001600160a01b03841660009081526005602052604090205460ff1680610c3557506001600160a01b03831660009081526005602052604090205460ff165b15610c4c57610c4584848461106f565b9050610579565b60155460ff16158015610c7757506001600160a01b03831660009081526006602052604090205460ff165b8015610c875750600c54600e5410155b15610c9457610c94611124565b601354610100900460ff168015610cbe57506015546001600160a01b038581166201000090920416145b15610cfb5760145482610ce6856001600160a01b031660009081526003602052604090205490565b610cf0919061182a565b1115610cfb57600080fd5b6001546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d67919061183d565b600d5560135460ff1615610e38576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610db657506015546001600160a01b03848116620100009092041614155b15610e3857326000908152600460205260409020544311610e255760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104e2565b3260009081526004602052604090204390555b6000610e45858585611260565b90506000610e5382856117c3565b6001600160a01b038716600090815260036020526040812080549293508692909190610e809084906117c3565b90915550508115610eb0573060009081526003602052604081208054849290610eaa90849061182a565b90915550505b600e8054906000610ec083611856565b90915550506001600160a01b03851660009081526003602052604081208054839290610eed90849061182a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f3991815260200190565b60405180910390a350600195945050505050565b610f56826113c7565b6016546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fee919061186f565b5050505050565b6001600160a01b038084166000908152600260209081526040808320938616835292905290812054821115611065576110306012600a61179d565b61103e90633b9aca006117ac565b6001600160a01b038086166000908152600260209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152600360205260408120805483919083906110999084906117c3565b90915550506001600160a01b038316600090815260036020526040812080548492906110c690849061182a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161111291815260200190565b60405180910390a35060019392505050565b6015805460ff19166001179055306000908152600360205260408120549050621e84806111536012600a61179d565b61116190633b9aca006117ac565b61116b919061189d565b81101580156111815750601554610100900460ff165b15611253576101f46111956012600a61179d565b6111a390633b9aca006117ac565b6111ad919061189d565b81106111dd576101f46111c26012600a61179d565b6111d090633b9aca006117ac565b6111da919061189d565b90505b6111e681611433565b47801561125157600f546040516000916001600160a01b03169083908381818185875af1925050503d806000811461123a576040519150601f19603f3d011682016040523d82523d6000602084013e61123f565b606091505b5050809150508061124f57600080fd5b505b505b506015805460ff19169055565b6015546000908190610100900460ff16801561129557506001600160a01b03851660009081526005602052604090205460ff16155b80156112ba57506001600160a01b03841660009081526005602052604090205460ff16155b15610576576001600160a01b03851660009081526006602052604090205460ff16806112fe57506001600160a01b03841660009081526006602052604090205460ff165b1561057657601154600e54116113165760095461131a565b600b545b61132560648561189d565b61132f91906117ac565b6015549091506001600160a01b03858116620100009092041614801561135e57506001600160a01b0385163014155b15610576576000600d54600c5461137591906117c3565b600d55601054600e54111561138d5750600a546113a7565b601254600e5411156113a257506007546113a7565b506008545b806113b360648661189d565b6113bd91906117ac565b9695505050505050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106d857306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b61143c816113c7565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611471576114716118bf565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee919061180d565b81600181518110611501576115016118bf565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906115479085906000908690309042906004016118d5565b600060405180830381600087803b15801561156157600080fd5b505af1158015611575573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115aa5785810183015185820160400152820161158e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106d857600080fd5b600080604083850312156115f357600080fd5b82356115fe816115cb565b946020939093013593505050565b60008060006060848603121561162157600080fd5b833561162c816115cb565b9250602084013561163c816115cb565b929592945050506040919091013590565b60006020828403121561165f57600080fd5b8135610579816115cb565b6000806040838503121561167d57600080fd5b8235611688816115cb565b91506020830135611698816115cb565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116f45781600019048211156116da576116da6116a3565b808516156116e757918102915b93841c93908002906116be565b509250929050565b60008261170b57506001610475565b8161171857506000610475565b816001811461172e576002811461173857611754565b6001915050610475565b60ff841115611749576117496116a3565b50506001821b610475565b5060208310610133831016604e8410600b8410161715611777575081810a610475565b61178183836116b9565b8060001904821115611795576117956116a3565b029392505050565b600061057960ff8416836116fc565b8082028115828204841417610475576104756116a3565b81810381811115610475576104756116a3565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561181f57600080fd5b8151610579816115cb565b80820180821115610475576104756116a3565b60006020828403121561184f57600080fd5b5051919050565b600060018201611868576118686116a3565b5060010190565b60008060006060848603121561188457600080fd5b8351925060208401519150604084015190509250925092565b6000826118ba57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119255784516001600160a01b031683529383019391830191600101611900565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205b2622866cf0bf3724816f06caf4839a51552384e4955c21d2f5b6b3d09c76a964736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063860a32ec116100ab578063a0ef91df1161006f578063a0ef91df1461035b578063a9059cbb14610370578063c36956a014610390578063c876d0b9146103a6578063dd62ed3e146103c0578063e8078d941461040657600080fd5b8063860a32ec146102bc57806389f9a1d3146102db5780638a8c523c146102f15780638da5cb5b1461030657806395d89b411461032e57600080fd5b806327b1a8e9116100fd57806327b1a8e914610212578063313ce56714610228578063440604fb1461024457806370a082311461025a578063715018a614610290578063751039fc146102a757600080fd5b806306fdde0314610145578063095ea7b3146101895780630c193045146101b957806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260098152680536d617274587761760bc1b60208201525b604051610180919061157d565b60405180910390f35b34801561019557600080fd5b506101a96101a43660046115e0565b61040e565b6040519015158152602001610180565b3480156101c557600080fd5b506101cf60115481565b604051908152602001610180565b3480156101e957600080fd5b506101cf61047b565b3480156101fe57600080fd5b506101a961020d36600461160c565b61049c565b34801561021e57600080fd5b506101cf600e5481565b34801561023457600080fd5b5060405160128152602001610180565b34801561025057600080fd5b506101cf60105481565b34801561026657600080fd5b506101cf61027536600461164d565b6001600160a01b031660009081526003602052604090205490565b34801561029c57600080fd5b506102a5610580565b005b3480156102b357600080fd5b506102a56105ef565b3480156102c857600080fd5b506013546101a990610100900460ff1681565b3480156102e757600080fd5b506101cf60145481565b3480156102fd57600080fd5b506102a5610626565b34801561031257600080fd5b506000546040516001600160a01b039091168152602001610180565b34801561033a57600080fd5b506040805180820190915260048152630a69aa8b60e31b6020820152610173565b34801561036757600080fd5b506102a5610661565b34801561037c57600080fd5b506101a961038b3660046115e0565b6106db565b34801561039c57600080fd5b506101cf60125481565b3480156103b257600080fd5b506013546101a99060ff1681565b3480156103cc57600080fd5b506101cf6103db36600461166a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6102a5610730565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104699086815260200190565b60405180910390a35060015b92915050565b60006104896012600a61179d565b61049790633b9aca006117ac565b905090565b60006104a784610a91565b6104eb5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461056b576001600160a01b03841660009081526002602090815260408083203384529091529020546105469083906117c3565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610576848484610ad8565b90505b9392505050565b6000546001600160a01b031633146105aa5760405162461bcd60e51b81526004016104e2906117d6565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106195760405162461bcd60e51b81526004016104e2906117d6565b6013805461ffff19169055565b6000546001600160a01b031633146106505760405162461bcd60e51b81526004016104e2906117d6565b6015805461ff001916610100179055565b600f546001600160a01b0316331461067857600080fd5b600f546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106c5576040519150601f19603f3d011682016040523d82523d6000602084013e6106ca565b606091505b50509050806106d857600080fd5b50565b60006106e633610a91565b6107255760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104e2565b610579338484610ad8565b6000546001600160a01b0316331461075a5760405162461bcd60e51b81526004016104e2906117d6565b6015805460ff1916600117908190556201000090046001600160a01b0316156107b15760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104e2565b601554610100900460ff16156107fb5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104e2565b600034118061080a5750600047115b6108565760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104e2565b306000908152600360205260409020546108aa5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104e2565b601660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610921919061180d565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a7919061180d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a18919061180d565b601580546001600160a01b0392909216620100000262010000600160b01b031990921691909117905530600090815260036020526040902054610a5b9047610f4d565b601580546201000090046001600160a01b031660009081526006602052604090208054600160ff19918216179091558154169055565b6015546000908190610100900460ff1615610aae57506001610475565b6001600160a01b03831660009081526005602052604090205460ff16156104755750600192915050565b601554600090610100900460ff16610b47576001600160a01b03841660009081526005602052604090205460ff16610b475760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104e2565b6001600160a01b03841660009081526006602052604090205460ff168015610b8757506001600160a01b03831660009081526005602052604090205460ff165b15610ba057610b97848484610ff5565b610ba057600080fd5b6001600160a01b038416610bf65760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104e2565b6001600160a01b03841660009081526005602052604090205460ff1680610c3557506001600160a01b03831660009081526005602052604090205460ff165b15610c4c57610c4584848461106f565b9050610579565b60155460ff16158015610c7757506001600160a01b03831660009081526006602052604090205460ff165b8015610c875750600c54600e5410155b15610c9457610c94611124565b601354610100900460ff168015610cbe57506015546001600160a01b038581166201000090920416145b15610cfb5760145482610ce6856001600160a01b031660009081526003602052604090205490565b610cf0919061182a565b1115610cfb57600080fd5b6001546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d67919061183d565b600d5560135460ff1615610e38576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610db657506015546001600160a01b03848116620100009092041614155b15610e3857326000908152600460205260409020544311610e255760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104e2565b3260009081526004602052604090204390555b6000610e45858585611260565b90506000610e5382856117c3565b6001600160a01b038716600090815260036020526040812080549293508692909190610e809084906117c3565b90915550508115610eb0573060009081526003602052604081208054849290610eaa90849061182a565b90915550505b600e8054906000610ec083611856565b90915550506001600160a01b03851660009081526003602052604081208054839290610eed90849061182a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f3991815260200190565b60405180910390a350600195945050505050565b610f56826113c7565b6016546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fee919061186f565b5050505050565b6001600160a01b038084166000908152600260209081526040808320938616835292905290812054821115611065576110306012600a61179d565b61103e90633b9aca006117ac565b6001600160a01b038086166000908152600260209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152600360205260408120805483919083906110999084906117c3565b90915550506001600160a01b038316600090815260036020526040812080548492906110c690849061182a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161111291815260200190565b60405180910390a35060019392505050565b6015805460ff19166001179055306000908152600360205260408120549050621e84806111536012600a61179d565b61116190633b9aca006117ac565b61116b919061189d565b81101580156111815750601554610100900460ff165b15611253576101f46111956012600a61179d565b6111a390633b9aca006117ac565b6111ad919061189d565b81106111dd576101f46111c26012600a61179d565b6111d090633b9aca006117ac565b6111da919061189d565b90505b6111e681611433565b47801561125157600f546040516000916001600160a01b03169083908381818185875af1925050503d806000811461123a576040519150601f19603f3d011682016040523d82523d6000602084013e61123f565b606091505b5050809150508061124f57600080fd5b505b505b506015805460ff19169055565b6015546000908190610100900460ff16801561129557506001600160a01b03851660009081526005602052604090205460ff16155b80156112ba57506001600160a01b03841660009081526005602052604090205460ff16155b15610576576001600160a01b03851660009081526006602052604090205460ff16806112fe57506001600160a01b03841660009081526006602052604090205460ff165b1561057657601154600e54116113165760095461131a565b600b545b61132560648561189d565b61132f91906117ac565b6015549091506001600160a01b03858116620100009092041614801561135e57506001600160a01b0385163014155b15610576576000600d54600c5461137591906117c3565b600d55601054600e54111561138d5750600a546113a7565b601254600e5411156113a257506007546113a7565b506008545b806113b360648661189d565b6113bd91906117ac565b9695505050505050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106d857306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b61143c816113c7565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611471576114716118bf565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee919061180d565b81600181518110611501576115016118bf565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac947906115479085906000908690309042906004016118d5565b600060405180830381600087803b15801561156157600080fd5b505af1158015611575573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115aa5785810183015185820160400152820161158e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106d857600080fd5b600080604083850312156115f357600080fd5b82356115fe816115cb565b946020939093013593505050565b60008060006060848603121561162157600080fd5b833561162c816115cb565b9250602084013561163c816115cb565b929592945050506040919091013590565b60006020828403121561165f57600080fd5b8135610579816115cb565b6000806040838503121561167d57600080fd5b8235611688816115cb565b91506020830135611698816115cb565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116f45781600019048211156116da576116da6116a3565b808516156116e757918102915b93841c93908002906116be565b509250929050565b60008261170b57506001610475565b8161171857506000610475565b816001811461172e576002811461173857611754565b6001915050610475565b60ff841115611749576117496116a3565b50506001821b610475565b5060208310610133831016604e8410600b8410161715611777575081810a610475565b61178183836116b9565b8060001904821115611795576117956116a3565b029392505050565b600061057960ff8416836116fc565b8082028115828204841417610475576104756116a3565b81810381811115610475576104756116a3565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561181f57600080fd5b8151610579816115cb565b80820180821115610475576104756116a3565b60006020828403121561184f57600080fd5b5051919050565b600060018201611868576118686116a3565b5060010190565b60008060006060848603121561188457600080fd5b8351925060208401519150604084015190509250925092565b6000826118ba57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119255784516001600160a01b031683529383019391830191600101611900565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205b2622866cf0bf3724816f06caf4839a51552384e4955c21d2f5b6b3d09c76a964736f6c63430008120033

Deployed Bytecode Sourcemap

2311:10043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4593:80;;;;;;;;;;-1:-1:-1;4665:5:0;;;;;;;;;;;;-1:-1:-1;;;4665:5:0;;;;4593:80;;;;;;;:::i;:::-;;;;;;;;5671:216;;;;;;;;;;-1:-1:-1;5671:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5671:216:0;1023:187:1;3456:35:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;3456:35:0;1215:177:1;4861:83:0;;;;;;;;;;;;;:::i;9261:380::-;;;;;;;;;;-1:-1:-1;9261:380:0;;;;;:::i;:::-;;:::i;3330:28::-;;;;;;;;;;;;;;;;4773:80;;;;;;;;;;-1:-1:-1;4773:80:0;;3043:2;2000:36:1;;1988:2;1973:18;4773:80:0;1858:184:1;3408:41:0;;;;;;;;;;;;;;;;4952:105;;;;;;;;;;-1:-1:-1;4952:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5036:18:0;5018:7;5036:18;;;:9;:18;;;;;;;4952:105;2050:134;;;;;;;;;;;;;:::i;:::-;;5297:116;;;;;;;;;;;;;:::i;3590:26::-;;;;;;;;;;-1:-1:-1;3590:26:0;;;;;;;;;;;3623:62;;;;;;;;;;;;;;;;5204:85;;;;;;;;;;;;;:::i;2190:65::-;;;;;;;;;;-1:-1:-1;2228:7:0;2246:6;2190:65;;-1:-1:-1;;;;;2246:6:0;;;2445:51:1;;2433:2;2418:18;2190:65:0;2299:203:1;4681:84:0;;;;;;;;;;-1:-1:-1;4755:7:0;;;;;;;;;;;;-1:-1:-1;;;4755:7:0;;;;4681:84;;12158:193;;;;;;;;;;;;;:::i;7104:211::-;;;;;;;;;;-1:-1:-1;7104:211:0;;;;;:::i;:::-;;:::i;3498:36::-;;;;;;;;;;;;;;;;3543:40;;;;;;;;;;-1:-1:-1;3543:40:0;;;;;;;;5065:131;;;;;;;;;;-1:-1:-1;5065:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;5166:18:0;;;5148:7;5166:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5065:131;11419:593;;;:::i;5671:216::-;5775:10;5746:4;5763:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5763:32:0;;;;;;;;;;:41;;;5820:37;5746:4;;5763:32;;5820:37;;;;5798:6;1361:25:1;;1349:2;1334:18;;1215:177;5820:37:0;;;;;;;;-1:-1:-1;5875:4:0;5671:216;;;;;:::o;4861:83::-;4916:7;3104:13;3043:2;3104;:13;:::i;:::-;3087:31;;:13;:31;:::i;:::-;4927:14;;4861:83;:::o;9261:380::-;9352:4;9377:23;9395:4;9377:17;:23::i;:::-;9369:52;;;;-1:-1:-1;;;9369:52:0;;4790:2:1;9369:52:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;9369:52:0;;;;;;;;;-1:-1:-1;;;;;9436:17:0;;;;;;:11;:17;;;;;;;;9454:10;9436:29;;;;;;;;-1:-1:-1;;9436:50:0;9432:153;;-1:-1:-1;;;;;9535:17:0;;;;;;:11;:17;;;;;;;;9553:10;9535:29;;;;;;;;:38;;9567:6;;9535:38;:::i;:::-;-1:-1:-1;;;;;9503:17:0;;;;;;:11;:17;;;;;;;;9521:10;9503:29;;;;;;;:70;9432:153;9602:31;9616:4;9622:2;9626:6;9602:13;:31::i;:::-;9595:38;;9261:380;;;;;;:::o;2050:134::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1893:10;:20;1885:57;;;;-1:-1:-1;;;1885:57:0;;;;;;;:::i;:::-;2126:1:::1;2109:19:::0;;-1:-1:-1;;;;;;2109:19:0::1;::::0;;2144:32:::1;::::0;2445:51:1;;;2144:32:0::1;::::0;2433:2:1;2418:18;2144:32:0::1;;;;;;;2050:134::o:0;5297:116::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1893:10;:20;1885:57;;;;-1:-1:-1;;;1885:57:0;;;;;;;:::i;:::-;5351:20:::1;:28:::0;;-1:-1:-1;;5390:15:0;;;5297:116::o;5204:85::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1893:10;:20;1885:57;;;;-1:-1:-1;;;1885:57:0;;;;;;;:::i;:::-;5259:15:::1;:22:::0;;-1:-1:-1;;5259:22:0::1;;;::::0;;5204:85::o;12158:193::-;12223:10;;-1:-1:-1;;;;;12223:10:0;12209;:24;12201:33;;;;;;12269:10;;12261:58;;12246:9;;-1:-1:-1;;;;;12269:10:0;;12293:21;;12246:9;12261:58;12246:9;12261:58;12293:21;12269:10;12261:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12245:74;;;12338:4;12330:13;;;;;;12190:161;12158:193::o;7104:211::-;7177:4;7202:29;7220:10;7202:17;:29::i;:::-;7194:58;;;;-1:-1:-1;;;7194:58:0;;4790:2:1;7194:58:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;7194:58:0;4588:340:1;7194:58:0;7270:37;7284:10;7296:2;7300:6;7270:13;:37::i;11419:593::-;1907:6;;-1:-1:-1;;;;;1907:6:0;1893:10;:20;1885:57;;;;-1:-1:-1;;;1885:57:0;;;;;;;:::i;:::-;12090:7:::1;:14:::0;;-1:-1:-1;;12090:14:0::1;12100:4;12090:14;::::0;;;;11501;;::::2;-1:-1:-1::0;;;;;11501:14:0::2;:28:::0;11493:50:::2;;;::::0;-1:-1:-1;;;11493:50:0;;5831:2:1;11493:50:0::2;::::0;::::2;5813:21:1::0;5870:1;5850:18;;;5843:29;-1:-1:-1;;;5888:18:1;;;5881:39;5937:18;;11493:50:0::2;5629:332:1::0;11493:50:0::2;11563:15;::::0;::::2;::::0;::::2;;;11562:16;11554:44;;;::::0;-1:-1:-1;;;11554:44:0;;6168:2:1;11554:44:0::2;::::0;::::2;6150:21:1::0;6207:2;6187:18;;;6180:30;-1:-1:-1;;;6226:18:1;;;6219:45;6281:18;;11554:44:0::2;5966:339:1::0;11554:44:0::2;11629:1;11617:9;:13;:42;;;;11658:1;11634:21;:25;11617:42;11609:84;;;::::0;-1:-1:-1;;;11609:84:0;;6512:2:1;11609:84:0::2;::::0;::::2;6494:21:1::0;6551:2;6531:18;;;6524:30;6590:31;6570:18;;;6563:59;6639:18;;11609:84:0::2;6310:353:1::0;11609:84:0::2;11730:4;11739:1;11712:24:::0;;;:9:::2;:24;::::0;;;;;11704:62:::2;;;::::0;-1:-1:-1;;;11704:62:0;;6870:2:1;11704:62:0::2;::::0;::::2;6852:21:1::0;6909:2;6889:18;;;6882:30;-1:-1:-1;;;6928:18:1;;;6921:51;6989:18;;11704:62:0::2;6668:345:1::0;11704:62:0::2;11814:16;;;;;;;;;-1:-1:-1::0;;;;;11814:16:0::2;-1:-1:-1::0;;;;;11814:24:0::2;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11796:56:0::2;;11861:4;11868:16;;;;;;;;;-1:-1:-1::0;;;;;11868:16:0::2;-1:-1:-1::0;;;;;11868:21:0::2;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11796:96;::::0;-1:-1:-1;;;;;;11796:96:0::2;::::0;;;;;;-1:-1:-1;;;;;7504:15:1;;;11796:96:0::2;::::0;::::2;7486:34:1::0;7556:15;;7536:18;;;7529:43;7421:18;;11796:96:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11779:14;:113:::0;;-1:-1:-1;;;;;11779:113:0;;;::::2;::::0;::::2;-1:-1:-1::0;;;;;;11779:113:0;;::::2;::::0;;;::::2;::::0;;11935:4:::2;-1:-1:-1::0;11917:24:0;;;:9:::2;:24;::::0;;;;;11903:62:::2;::::0;11943:21:::2;11903:13;:62::i;:::-;11982:14;::::0;;;;::::2;-1:-1:-1::0;;;;;11982:14:0::2;11976:21;::::0;;;:5:::2;:21;::::0;;;;:28;;12000:4:::2;-1:-1:-1::0;;11976:28:0;;::::2;;::::0;;;12127:15;;::::1;::::0;;11419:593::o;10148:251::-;10266:15;;10213:4;;;;10266:15;;;;;10262:104;;;-1:-1:-1;10294:4:0;10262:104;;;-1:-1:-1;;;;;10320:26:0;;;;;;:18;:26;;;;;;;;10316:50;;;-1:-1:-1;10359:4:0;10385:6;10148:251;-1:-1:-1;;10148:251:0:o;7566:1687::-;7671:15;;7649:4;;7671:15;;;;;7666:82;;-1:-1:-1;;;;;7698:24:0;;;;;;:18;:24;;;;;;;;7690:55;;;;-1:-1:-1;;;7690:55:0;;7785:2:1;7690:55:0;;;7767:21:1;7824:2;7804:18;;;7797:30;-1:-1:-1;;;7843:18:1;;;7836:48;7901:18;;7690:55:0;7583:342:1;7690:55:0;-1:-1:-1;;;;;7762:11:0;;;;;;:5;:11;;;;;;;;:37;;;;-1:-1:-1;;;;;;7777:22:0;;;;;;:18;:22;;;;;;;;7762:37;7758:89;;;7811:32;7826:4;7832:2;7836:6;7811:14;:32::i;:::-;7803:41;;;;;;-1:-1:-1;;;;;7865:18:0;;7857:60;;;;-1:-1:-1;;;7857:60:0;;8132:2:1;7857:60:0;;;8114:21:1;8171:2;8151:18;;;8144:30;8210:31;8190:18;;;8183:59;8259:18;;7857:60:0;7930:353:1;7857:60:0;-1:-1:-1;;;;;7956:24:0;;;;;;:18;:24;;;;;;;;;:63;;-1:-1:-1;;;;;;7997:22:0;;;;;;:18;:22;;;;;;;;7956:63;7938:162;;;8053:35;8071:4;8077:2;8081:6;8053:17;:35::i;:::-;8046:42;;;;7938:162;8139:7;;;;8138:8;:34;;;;-1:-1:-1;;;;;;8163:9:0;;;;;;:5;:9;;;;;;;;8138:34;:82;;;;;8202:18;;8189:9;;:31;;8138:82;8120:137;;;8234:20;:18;:20::i;:::-;8287:7;;;;;;;:46;;;;-1:-1:-1;8319:14:0;;-1:-1:-1;;;;;8311:22:0;;;8319:14;;;;;8311:22;8287:46;8269:154;;;8394:16;;8384:6;8368:13;8378:2;-1:-1:-1;;;;;5036:18:0;5018:7;5036:18;;;:9;:18;;;;;;;4952:105;8368:13;:22;;;;:::i;:::-;:42;;8360:51;;;;;;8464:8;;8449:24;;-1:-1:-1;;;8449:24:0;;-1:-1:-1;;;;;8464:8:0;;;8449:24;;;2445:51:1;8449:4:0;;:14;;2418:18:1;;8449:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8433:13;:40;8490:20;;;;8486:370;;;-1:-1:-1;;;;;8549:29:0;;3862:42;8549:29;;;;:70;;-1:-1:-1;8605:14:0;;-1:-1:-1;;;;;8599:20:0;;;8605:14;;;;;8599:20;;8549:70;8527:318;;;8691:9;8662:39;;;;:28;:39;;;;;;8704:12;-1:-1:-1;8654:102:0;;;;-1:-1:-1;;;8654:102:0;;9025:2:1;8654:102:0;;;9007:21:1;9064:2;9044:18;;;9037:30;9103:34;9083:18;;;9076:62;-1:-1:-1;;;9154:18:1;;;9147:33;9197:19;;8654:102:0;8823:399:1;8654:102:0;8804:9;8775:39;;;;:28;:39;;;;;8817:12;8775:54;;8527:318;8868:18;8889:31;8903:4;8909:2;8913:6;8889:13;:31::i;:::-;8868:52;-1:-1:-1;8931:23:0;8957:19;8868:52;8957:6;:19;:::i;:::-;-1:-1:-1;;;;;8987:15:0;;;;;;:9;:15;;;;;:25;;8931:45;;-1:-1:-1;9006:6:0;;8987:15;;;:25;;9006:6;;8987:25;:::i;:::-;;;;-1:-1:-1;;9029:14:0;;9025:86;;9078:4;9060:24;;;;:9;:24;;;;;:38;;9088:10;;9060:24;:38;;9088:10;;9060:38;:::i;:::-;;;;-1:-1:-1;;9025:86:0;9123:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9145:13:0;;;;;;:9;:13;;;;;:32;;9162:15;;9145:13;:32;;9162:15;;9145:32;:::i;:::-;;;;;;;;9210:2;-1:-1:-1;;;;;9195:26:0;9204:4;-1:-1:-1;;;;;9195:26:0;;9214:6;9195:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;9195:26:0;;;;;;;;-1:-1:-1;9241:4:0;;7566:1687;-1:-1:-1;;;;;7566:1687:0:o;9888:252::-;9976:28;9991:12;9976:14;:28::i;:::-;10015:16;;;10107:6;;10015:117;;-1:-1:-1;;;10015:117:0;;10080:4;10015:117;;;9708:34:1;9758:18;;;9751:34;;;9801:18;;;9794:34;;;9844:18;;;9837:34;;;;-1:-1:-1;;;;;10107:6:0;;;9887:19:1;;;9880:44;10115:15:0;9940:19:1;;;9933:35;10015:16:0;;;;:32;;10055:13;;9642:19:1;;10015:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9888:252;;:::o;5421:242::-;-1:-1:-1;;;;;5532:18:0;;;5511:4;5532:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;:36;-1:-1:-1;5528:106:0;;;3104:13;3043:2;3104;:13;:::i;:::-;3087:31;;:13;:31;:::i;:::-;-1:-1:-1;;;;;5585:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:37;5528:106;-1:-1:-1;5651:4:0;5421:242;;;;;:::o;7323:235::-;-1:-1:-1;;;;;7427:15:0;;7410:4;7427:15;;;:9;:15;;;;;:25;;7446:6;;7427:15;7410:4;;7427:25;;7446:6;;7427:25;:::i;:::-;;;;-1:-1:-1;;;;;;;7463:13:0;;;;;;:9;:13;;;;;:23;;7480:6;;7463:13;:23;;7480:6;;7463:23;:::i;:::-;;;;;;;;7517:2;-1:-1:-1;;;;;7502:26:0;7511:4;-1:-1:-1;;;;;7502:26:0;;7521:6;7502:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;7502:26:0;;;;;;;;-1:-1:-1;7546:4:0;7323:235;;;;;:::o;10407:630::-;12090:7;:14;;-1:-1:-1;;12090:14:0;12100:4;12090:14;;;10516:4:::1;-1:-1:-1::0;5036:18:0;;;:9;:18;;;;;;10468:54;-1:-1:-1;3174:7:0::1;3104:13;3043:2;3104;:13;:::i;:::-;3087:31;::::0;:13:::1;:31;:::i;:::-;3164:17;;;;:::i;:::-;10539:19;:34;;:53;;;;-1:-1:-1::0;10577:15:0::1;::::0;::::1;::::0;::::1;;;10539:53;10535:495;;;3237:3;3104:13;3043:2;3104;:13;:::i;:::-;3087:31;::::0;:13:::1;:31;:::i;:::-;3227:13;;;;:::i;:::-;10613:19;:34;10609:78;;3237:3;3104:13;3043:2;3104;:13;:::i;:::-;3087:31;::::0;:13:::1;:31;:::i;:::-;3227:13;;;;:::i;:::-;10651:33;;10609:78;10703:41;10724:19;10703:20;:41::i;:::-;10789:21;10831:23:::0;;10827:192:::1;;10919:10;::::0;:49:::1;::::0;10875:12:::1;::::0;-1:-1:-1;;;;;10919:10:0::1;::::0;10943:19;;10875:12;10919:49;10875:12;10919:49;10943:19;10919:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10906:62;;;;;10995:7;10987:16;;;::::0;::::1;;10856:163;10827:192;10594:436;10535:495;-1:-1:-1::0;12127:7:0;:15;;-1:-1:-1;;12127:15:0;;;10407:630::o;5895:1201::-;6046:15;;5978:7;;;;6046:15;;;;;:57;;;;-1:-1:-1;;;;;;6079:24:0;;;;;;:18;:24;;;;;;;;6078:25;6046:57;:97;;;;-1:-1:-1;;;;;;6121:22:0;;;;;;:18;:22;;;;;;;;6120:23;6046:97;6028:1032;;;-1:-1:-1;;;;;6207:11:0;;;;;;:5;:11;;;;;;;;;:41;;-1:-1:-1;;;;;;6239:9:0;;;;;;:5;:9;;;;;;;;6207:41;6185:864;;;6326:15;;6314:9;;:27;6313:61;;6360:14;;6313:61;;;6345:12;;6313:61;6296:12;6305:3;6296:6;:12;:::i;:::-;6295:80;;;;:::i;:::-;6426:14;;6283:92;;-1:-1:-1;;;;;;6420:20:0;;;6426:14;;;;;6420:20;:66;;;;-1:-1:-1;;;;;;6465:21:0;;6481:4;6465:21;;6420:66;6394:640;;;6529:15;6604:13;;6583:18;;:34;;;;:::i;:::-;6567:13;:50;6656:21;;6644:9;;:33;6640:316;;;-1:-1:-1;6716:13:0;;6640:316;;;6775:16;;6763:9;;:28;6759:197;;;-1:-1:-1;6830:20:0;;6759:197;;;-1:-1:-1;6917:15:0;;6759:197;7007:7;6991:12;7000:3;6991:6;:12;:::i;:::-;6990:24;;;;:::i;:::-;6978:36;7079:9;-1:-1:-1;;;;;;5895:1201:0:o;9649:231::-;9733:4;9713:26;;;;:11;:26;;;;;;;;3862:42;9713:51;;;;;;;;:60;-1:-1:-1;9709:164:0;;;9810:4;9790:26;;;;:11;:26;;;;;;;;3862:42;9790:51;;;;;;;-1:-1:-1;;9790:71:0;;9649:231;:::o;11045:366::-;11115:27;11130:11;11115:14;:27::i;:::-;11177:16;;;11191:1;11177:16;;;;;;;;11153:21;;11177:16;;;;;;;;;;-1:-1:-1;11177:16:0;11153:40;;11222:4;11204;11209:1;11204:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11204:23:0;;;:7;;;;;;;;;;:23;;;;11248:16;;:23;;;-1:-1:-1;;;11248:23:0;;;;:16;;;;;:21;;:23;;;;;11204:7;;11248:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11238:4;11243:1;11238:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11238:33:0;;;:7;;;;;;;;;:33;11282:16;;:121;;-1:-1:-1;;;11282:121:0;;:16;;;:67;;:121;;11350:11;;11282:16;;11366:4;;11380;;11387:15;;11282:121;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11104:307;11045:366;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4933:128::-;5000:9;;;5021:11;;;5018:37;;;5035:18;;:::i;5066:348::-;5268:2;5250:21;;;5307:2;5287:18;;;5280:30;5346:26;5341:2;5326:18;;5319:54;5405:2;5390:18;;5066:348::o;7018:251::-;7088:6;7141:2;7129:9;7120:7;7116:23;7112:32;7109:52;;;7157:1;7154;7147:12;7109:52;7189:9;7183:16;7208:31;7233:5;7208:31;:::i;8288:125::-;8353:9;;;8374:10;;;8371:36;;;8387:18;;:::i;8634:184::-;8704:6;8757:2;8745:9;8736:7;8732:23;8728:32;8725:52;;;8773:1;8770;8763:12;8725:52;-1:-1:-1;8796:16:1;;8634:184;-1:-1:-1;8634:184:1:o;9227:135::-;9266:3;9287:17;;;9284:43;;9307:18;;:::i;:::-;-1:-1:-1;9354:1:1;9343:13;;9227:135::o;9979:306::-;10067:6;10075;10083;10136:2;10124:9;10115:7;10111:23;10107:32;10104:52;;;10152:1;10149;10142:12;10104:52;10181:9;10175:16;10165:26;;10231:2;10220:9;10216:18;10210:25;10200:35;;10275:2;10264:9;10260:18;10254:25;10244:35;;9979:306;;;;;:::o;10290:217::-;10330:1;10356;10346:132;;10400:10;10395:3;10391:20;10388:1;10381:31;10435:4;10432:1;10425:15;10463:4;10460:1;10453:15;10346:132;-1:-1:-1;10492:9:1;;10290:217::o;10644:127::-;10705:10;10700:3;10696:20;10693:1;10686:31;10736:4;10733:1;10726:15;10760:4;10757:1;10750:15;10776:980;11038:4;11086:3;11075:9;11071:19;11117:6;11106:9;11099:25;11143:2;11181:6;11176:2;11165:9;11161:18;11154:34;11224:3;11219:2;11208:9;11204:18;11197:31;11248:6;11283;11277:13;11314:6;11306;11299:22;11352:3;11341:9;11337:19;11330:26;;11391:2;11383:6;11379:15;11365:29;;11412:1;11422:195;11436:6;11433:1;11430:13;11422:195;;;11501:13;;-1:-1:-1;;;;;11497:39:1;11485:52;;11592:15;;;;11557:12;;;;11533:1;11451:9;11422:195;;;-1:-1:-1;;;;;;;11673:32:1;;;;11668:2;11653:18;;11646:60;-1:-1:-1;;;11737:3:1;11722:19;11715:35;11634:3;10776:980;-1:-1:-1;;;10776:980:1:o

Swarm Source

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