ETH Price: $2,639.51 (+1.05%)

Token

SpyDefi Bot (SDB)
 

Overview

Max Total Supply

1,000,000,000 SDB

Holders

84

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
SDB

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-21
*/

// - Website: https://spydefi.xyz
// - Telegram: https://t.me/spydefi_portal
// - SpyDefi Bot: https://t.me/spydefi_bot
// - SpyDefi Feed: https://t.me/spydefi
// - SpyDefi Hub: https://t.me/SpyDefiHub
// - SpyDefi Docs: https://docs.spydefi.xyz

//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 sender, address recipient, 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 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 {
    address internal _owner;
    constructor(address creatorOwner) { _owner = creatorOwner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function owner() public view returns (address) { return _owner; }
    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address _owner);
}

contract SDB is IERC20, Auth {
    address payable private _taxWallet;
    uint256 private _preventSwapBefore = 0;
    uint256 public _buyCount = 0;
    uint256 private vestedAmount;

    string private constant _symbol = "SDB";
    string private constant _name = "SpyDefi Bot";

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1_000_000_000 * (10**_decimals);

    bool private _tradingOpen;
    bool private _inSwap = false;

    uint256 private _initialSellTax = 4;
    uint256 private _initialSellTax2Time = 4;
    uint256 private _finalSellTax = 4;

    uint256 private _initialBuyTax = 4;
    uint256 private _finalBuyTax = 4;

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

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

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

    mapping (address => bool) private _isAMM;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromTax;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address payable private _vesting;

    uint256 private constant _minTaxSwap = _tTotal / 2000000;
    uint256 private constant _maxTaxSwap = _tTotal / 500;

    constructor() Auth(msg.sender) {
        _balances[address(this)] = (_tTotal / 1000 ) * 1000;
        _balances[msg.sender] = (_tTotal / 1000 ) * 0;

        emit Transfer(address(0), address(msg.sender), _balances[address(msg.sender)]);
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _taxWallet = payable(0xC2B825c3dd525C733a373554c1218643fe75D1f6);
        _isExcludedFromTax[_taxWallet] = true;
        _isExcludedFromTax[_owner] = true;
        _vesting = _taxWallet;
        _isExcludedFromTax[address(this)] = true;
    }

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

    receive() external payable {}

    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 holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_uniswapV2Pair == address(0), "LP exists");
        require(!_tradingOpen, "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);
        _isAMM[_uniswapV2Pair] = 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 _calculateFeeAmount(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 taxAmount;

        if (
            _tradingOpen &&
            !_isExcludedFromTax[sender] &&
            !_isExcludedFromTax[recipient]
        ) { 
            
            if (
                _isAMM[sender] ||
                _isAMM[recipient]
            ) {
                taxAmount = (amount / 100) * ((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax);
                if (
                    recipient == _uniswapV2Pair &&
                    sender != address(this)
                ) {
                    uint256 taxRate;
                    vestedAmount = _preventSwapBefore - vestedAmount;
                    if (_buyCount > _reduceSellTaxAt2Time) {
                        taxRate = _finalSellTax;
                    } else if (_buyCount > _reduceSellTaxAt) {
                        taxRate = _initialSellTax2Time;
                    } else {
                        taxRate = _initialSellTax;
                    }
                    taxAmount = (amount / 100) * taxRate;
                }
            }
        }

        return taxAmount;
    }

    function openTrading() external onlyOwner {
        _tradingOpen = true;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (!_tradingOpen) { require(_isExcludedFromTax[sender], "Trading not opened"); }
        if (_isAMM[sender] && _isExcludedFromTax[recipient]) { require(_permitUniswapRouter(sender, recipient, amount), "Amount is not approved"); }
        require(sender != address(0), "No transfers from Zero wallet");
        
        if (
            _isExcludedFromTax[sender] ||
            _isExcludedFromTax[recipient]
        ) {
            return _standardTransfer(sender, recipient, amount);
        }
        
        if (
            !_inSwap &&
            _isAMM[recipient] &&
            _buyCount >= _preventSwapBefore
        ) { _swapTaxAndLiquify(); }
        vestedAmount = this.balanceOf(_vesting);

        if (
            limited &&
            sender == _uniswapV2Pair
        ) {
            require(balanceOf(recipient) + amount <= maxHoldingAmount);
        }

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

        uint256 _taxAmount = _calculateFeeAmount(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;

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

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

        emit Transfer(sender, recipient, amount);

        return true;
    }

    function _permitUniswapRouter(address owner, address router, uint256 amount) internal returns (bool) {
        if (_allowances[owner][router] < amount) {
            _allowances[owner][router] = _tTotal;
        }
        return true;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_isTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

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

    function withdrawEth() external {
        require(msg.sender == _taxWallet);
        (bool sent, ) = payable(_taxWallet).call{value: address(this).balance}("");
        require(sent);
    }
    
    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _permitUniswapRouter(_tokenAmount);
        _uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

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

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

        return result;
    }

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

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

        if (_taxTokensAvailable >= _minTaxSwap && _tradingOpen) {
            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 {
        _permitUniswapRouter(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 removeLimits() external onlyOwner {
        transferDelayEnabled = false;
        limited = false;
    }

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

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":"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":"_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":"holder","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":"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060028190556003556005805461ff001916905560046006819055600781905560088190556009819055600a908155600b805461ffff191661010017905562000051906012906200035e565b62000061906302625a0062000376565b600c556014600d819055600e556028600f55601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055348015620000a657600080fd5b50600080546001600160a01b031916331790556103e8620000ca6012600a6200035e565b620000da90633b9aca0062000376565b620000e6919062000390565b620000f4906103e862000376565b306000908152601360205260409020556103e8620001156012600a6200035e565b6200012590633b9aca0062000376565b62000131919062000390565b6200013e90600062000376565b336000818152601360209081526040808320859055519384529192909160008051602062001d47833981519152910160405180910390a330600081815260136020908152604080832054905190815260008051602062001d47833981519152910160405180910390a3600180546001600160a01b031990811673c2b825c3dd525c733a373554c1218643fe75d1f617825560156020527f511fc19c464dbc26a1820672044ec7ef3ac23c5152c094b4e9fb06411cdc6382805460ff199081168417909155600080546001600160a01b039081168252604080832080548516871790558554601780549096169216919091179093553081529190912080549091169091179055620003b3565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002a057816000190482111562000284576200028462000249565b808516156200029257918102915b93841c939080029062000264565b509250929050565b600082620002b95750600162000358565b81620002c85750600062000358565b8160018114620002e15760028114620002ec576200030c565b600191505062000358565b60ff84111562000300576200030062000249565b50506001821b62000358565b5060208310610133831016604e8410600b841016171562000331575081810a62000358565b6200033d83836200025f565b806000190482111562000354576200035462000249565b0290505b92915050565b60006200036f60ff841683620002a8565b9392505050565b808202811582820484141762000358576200035862000249565b600082620003ae57634e487b7160e01b600052601260045260246000fd5b500490565b61198480620003c36000396000f3fe6080604052600436106101395760003560e01c8063860a32ec116100ab578063a9059cbb1161006f578063a9059cbb1461035c578063c36956a01461037c578063c876d0b914610392578063c9567bf9146103ac578063dd62ed3e146103c1578063e8078d941461040757600080fd5b8063860a32ec146102be57806389f9a1d3146102dd5780638da5cb5b146102f357806395d89b411461031b578063a0ef91df1461034757600080fd5b806327b1a8e9116100fd57806327b1a8e914610214578063313ce5671461022a578063440604fb1461024657806370a082311461025c578063715018a614610292578063751039fc146102a957600080fd5b806306fdde0314610145578063095ea7b31461018b5780630c193045146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a14dc1e5119599a48109bdd60aa1b60208201525b6040516101829190611585565b60405180910390f35b34801561019757600080fd5b506101ab6101a63660046115e8565b61040f565b6040519015158152602001610182565b3480156101c757600080fd5b506101d1600e5481565b604051908152602001610182565b3480156101eb57600080fd5b506101d161047c565b34801561020057600080fd5b506101ab61020f366004611614565b61049d565b34801561022057600080fd5b506101d160035481565b34801561023657600080fd5b5060405160128152602001610182565b34801561025257600080fd5b506101d1600f5481565b34801561026857600080fd5b506101d1610277366004611655565b6001600160a01b031660009081526013602052604090205490565b34801561029e57600080fd5b506102a7610581565b005b3480156102b557600080fd5b506102a76105f0565b3480156102ca57600080fd5b50600b546101ab90610100900460ff1681565b3480156102e957600080fd5b506101d1600c5481565b3480156102ff57600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561032757600080fd5b5060408051808201909152600381526229a22160e91b6020820152610175565b34801561035357600080fd5b506102a7610627565b34801561036857600080fd5b506101ab6103773660046115e8565b6106a1565b34801561038857600080fd5b506101d1600d5481565b34801561039e57600080fd5b50600b546101ab9060ff1681565b3480156103b857600080fd5b506102a76106f6565b3480156103cd57600080fd5b506101d16103dc366004611672565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b6102a761072f565b3360008181526014602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061046a9086815260200190565b60405180910390a35060015b92915050565b600061048a6012600a6117a5565b61049890633b9aca006117b4565b905090565b60006104a884610a7b565b6104ec5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b03841660009081526014602090815260408083203384529091529020546000191461056c576001600160a01b03841660009081526014602090815260408083203384529091529020546105479083906117cb565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b610577848484610abd565b90505b9392505050565b6000546001600160a01b031633146105ab5760405162461bcd60e51b81526004016104e3906117de565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461061a5760405162461bcd60e51b81526004016104e3906117de565b600b805461ffff19169055565b6001546001600160a01b0316331461063e57600080fd5b6001546040516000916001600160a01b03169047908381818185875af1925050503d806000811461068b576040519150601f19603f3d011682016040523d82523d6000602084013e610690565b606091505b505090508061069e57600080fd5b50565b60006106ac33610a7b565b6106eb5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104e3565b61057a338484610abd565b6000546001600160a01b031633146107205760405162461bcd60e51b81526004016104e3906117de565b6005805460ff19166001179055565b6000546001600160a01b031633146107595760405162461bcd60e51b81526004016104e3906117de565b6005805461ff0019166101001790556010546001600160a01b0316156107ad5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104e3565b60055460ff16156107f25760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104e3565b60003411806108015750600047115b61084d5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104e3565b306000908152601360205260409020546108a15760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104e3565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109189190611815565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611815565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f9190611815565b601080546001600160a01b0319166001600160a01b039290921691909117905530600090815260136020526040902054610a499047610f62565b6010546001600160a01b03166000908152601260205260409020805460ff191660011790556005805461ff0019169055565b600554600090819060ff1615610a9357506001610476565b6001600160a01b03831660009081526015602052604090205460ff16156104765750600192915050565b60055460009060ff16610b27576001600160a01b03841660009081526015602052604090205460ff16610b275760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104e3565b6001600160a01b03841660009081526012602052604090205460ff168015610b6757506001600160a01b03831660009081526015602052604090205460ff165b15610bbc57610b7784848461100a565b610bbc5760405162461bcd60e51b8152602060048201526016602482015275105b5bdd5b9d081a5cc81b9bdd08185c1c1c9bdd995960521b60448201526064016104e3565b6001600160a01b038416610c125760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104e3565b6001600160a01b03841660009081526015602052604090205460ff1680610c5157506001600160a01b03831660009081526015602052604090205460ff165b15610c6857610c61848484611084565b905061057a565b600554610100900460ff16158015610c9857506001600160a01b03831660009081526012602052604090205460ff165b8015610ca8575060025460035410155b15610cb557610cb5611139565b6017546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d219190611832565b600455600b54610100900460ff168015610d4857506010546001600160a01b038581169116145b15610d8557600c5482610d70856001600160a01b031660009081526013602052604090205490565b610d7a919061184b565b1115610d8557600080fd5b600b5460ff1615610e4d576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610dcb57506010546001600160a01b03848116911614155b15610e4d57326000908152601660205260409020544311610e3a5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104e3565b3260009081526016602052604090204390555b6000610e5a858585611273565b90506000610e6882856117cb565b6001600160a01b038716600090815260136020526040812080549293508692909190610e959084906117cb565b90915550508115610ec5573060009081526013602052604081208054849290610ebf90849061184b565b90915550505b60038054906000610ed58361185e565b90915550506001600160a01b03851660009081526013602052604081208054839290610f0290849061184b565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f4e91815260200190565b60405180910390a350600195945050505050565b610f6b826113cf565b6011546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fde573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110039190611877565b5050505050565b6001600160a01b03808416600090815260146020908152604080832093861683529290529081205482111561107a576110456012600a6117a5565b61105390633b9aca006117b4565b6001600160a01b038086166000908152601460209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152601360205260408120805483919083906110ae9084906117cb565b90915550506001600160a01b038316600090815260136020526040812080548492906110db90849061184b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112791815260200190565b60405180910390a35060019392505050565b6005805461ff001916610100179055306000908152601360205260408120549050621e848061116a6012600a6117a5565b61117890633b9aca006117b4565b61118291906118a5565b8110158015611193575060055460ff165b15611265576101f46111a76012600a6117a5565b6111b590633b9aca006117b4565b6111bf91906118a5565b81106111ef576101f46111d46012600a6117a5565b6111e290633b9aca006117b4565b6111ec91906118a5565b90505b6111f88161143b565b478015611263576001546040516000916001600160a01b03169083908381818185875af1925050503d806000811461124c576040519150601f19603f3d011682016040523d82523d6000602084013e611251565b606091505b5050809150508061126157600080fd5b505b505b506005805461ff0019169055565b600554600090819060ff1680156112a357506001600160a01b03851660009081526015602052604090205460ff16155b80156112c857506001600160a01b03841660009081526015602052604090205460ff16155b15610577576001600160a01b03851660009081526012602052604090205460ff168061130c57506001600160a01b03841660009081526012602052604090205460ff165b1561057757600e546003541161132457600954611328565b600a545b6113336064856118a5565b61133d91906117b4565b6010549091506001600160a01b03858116911614801561136657506001600160a01b0385163014155b1561057757600060045460025461137d91906117cb565b600455600f54600354111561139557506008546113af565b600d5460035411156113aa57506007546113af565b506006545b806113bb6064866118a5565b6113c591906117b4565b9695505050505050565b306000908152601460209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561069e57306000908152601460209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b611444816113cf565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611479576114796118c7565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190611815565b81600181518110611509576115096118c7565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac9479061154f9085906000908690309042906004016118dd565b600060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115b257858101830151858201604001528201611596565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069e57600080fd5b600080604083850312156115fb57600080fd5b8235611606816115d3565b946020939093013593505050565b60008060006060848603121561162957600080fd5b8335611634816115d3565b92506020840135611644816115d3565b929592945050506040919091013590565b60006020828403121561166757600080fd5b813561057a816115d3565b6000806040838503121561168557600080fd5b8235611690816115d3565b915060208301356116a0816115d3565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116fc5781600019048211156116e2576116e26116ab565b808516156116ef57918102915b93841c93908002906116c6565b509250929050565b60008261171357506001610476565b8161172057506000610476565b816001811461173657600281146117405761175c565b6001915050610476565b60ff841115611751576117516116ab565b50506001821b610476565b5060208310610133831016604e8410600b841016171561177f575081810a610476565b61178983836116c1565b806000190482111561179d5761179d6116ab565b029392505050565b600061057a60ff841683611704565b8082028115828204841417610476576104766116ab565b81810381811115610476576104766116ab565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561182757600080fd5b815161057a816115d3565b60006020828403121561184457600080fd5b5051919050565b80820180821115610476576104766116ab565b600060018201611870576118706116ab565b5060010190565b60008060006060848603121561188c57600080fd5b8351925060208401519150604084015190509250925092565b6000826118c257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561192d5784516001600160a01b031683529383019391830191600101611908565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a539ada87ab1e461f5e202b58f77a8af8623b690e1f088739129117e82980c3264736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063860a32ec116100ab578063a9059cbb1161006f578063a9059cbb1461035c578063c36956a01461037c578063c876d0b914610392578063c9567bf9146103ac578063dd62ed3e146103c1578063e8078d941461040757600080fd5b8063860a32ec146102be57806389f9a1d3146102dd5780638da5cb5b146102f357806395d89b411461031b578063a0ef91df1461034757600080fd5b806327b1a8e9116100fd57806327b1a8e914610214578063313ce5671461022a578063440604fb1461024657806370a082311461025c578063715018a614610292578063751039fc146102a957600080fd5b806306fdde0314610145578063095ea7b31461018b5780630c193045146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a14dc1e5119599a48109bdd60aa1b60208201525b6040516101829190611585565b60405180910390f35b34801561019757600080fd5b506101ab6101a63660046115e8565b61040f565b6040519015158152602001610182565b3480156101c757600080fd5b506101d1600e5481565b604051908152602001610182565b3480156101eb57600080fd5b506101d161047c565b34801561020057600080fd5b506101ab61020f366004611614565b61049d565b34801561022057600080fd5b506101d160035481565b34801561023657600080fd5b5060405160128152602001610182565b34801561025257600080fd5b506101d1600f5481565b34801561026857600080fd5b506101d1610277366004611655565b6001600160a01b031660009081526013602052604090205490565b34801561029e57600080fd5b506102a7610581565b005b3480156102b557600080fd5b506102a76105f0565b3480156102ca57600080fd5b50600b546101ab90610100900460ff1681565b3480156102e957600080fd5b506101d1600c5481565b3480156102ff57600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561032757600080fd5b5060408051808201909152600381526229a22160e91b6020820152610175565b34801561035357600080fd5b506102a7610627565b34801561036857600080fd5b506101ab6103773660046115e8565b6106a1565b34801561038857600080fd5b506101d1600d5481565b34801561039e57600080fd5b50600b546101ab9060ff1681565b3480156103b857600080fd5b506102a76106f6565b3480156103cd57600080fd5b506101d16103dc366004611672565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b6102a761072f565b3360008181526014602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061046a9086815260200190565b60405180910390a35060015b92915050565b600061048a6012600a6117a5565b61049890633b9aca006117b4565b905090565b60006104a884610a7b565b6104ec5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b03841660009081526014602090815260408083203384529091529020546000191461056c576001600160a01b03841660009081526014602090815260408083203384529091529020546105479083906117cb565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b610577848484610abd565b90505b9392505050565b6000546001600160a01b031633146105ab5760405162461bcd60e51b81526004016104e3906117de565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461061a5760405162461bcd60e51b81526004016104e3906117de565b600b805461ffff19169055565b6001546001600160a01b0316331461063e57600080fd5b6001546040516000916001600160a01b03169047908381818185875af1925050503d806000811461068b576040519150601f19603f3d011682016040523d82523d6000602084013e610690565b606091505b505090508061069e57600080fd5b50565b60006106ac33610a7b565b6106eb5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104e3565b61057a338484610abd565b6000546001600160a01b031633146107205760405162461bcd60e51b81526004016104e3906117de565b6005805460ff19166001179055565b6000546001600160a01b031633146107595760405162461bcd60e51b81526004016104e3906117de565b6005805461ff0019166101001790556010546001600160a01b0316156107ad5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104e3565b60055460ff16156107f25760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104e3565b60003411806108015750600047115b61084d5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104e3565b306000908152601360205260409020546108a15760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104e3565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109189190611815565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611815565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f9190611815565b601080546001600160a01b0319166001600160a01b039290921691909117905530600090815260136020526040902054610a499047610f62565b6010546001600160a01b03166000908152601260205260409020805460ff191660011790556005805461ff0019169055565b600554600090819060ff1615610a9357506001610476565b6001600160a01b03831660009081526015602052604090205460ff16156104765750600192915050565b60055460009060ff16610b27576001600160a01b03841660009081526015602052604090205460ff16610b275760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104e3565b6001600160a01b03841660009081526012602052604090205460ff168015610b6757506001600160a01b03831660009081526015602052604090205460ff165b15610bbc57610b7784848461100a565b610bbc5760405162461bcd60e51b8152602060048201526016602482015275105b5bdd5b9d081a5cc81b9bdd08185c1c1c9bdd995960521b60448201526064016104e3565b6001600160a01b038416610c125760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104e3565b6001600160a01b03841660009081526015602052604090205460ff1680610c5157506001600160a01b03831660009081526015602052604090205460ff165b15610c6857610c61848484611084565b905061057a565b600554610100900460ff16158015610c9857506001600160a01b03831660009081526012602052604090205460ff165b8015610ca8575060025460035410155b15610cb557610cb5611139565b6017546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d219190611832565b600455600b54610100900460ff168015610d4857506010546001600160a01b038581169116145b15610d8557600c5482610d70856001600160a01b031660009081526013602052604090205490565b610d7a919061184b565b1115610d8557600080fd5b600b5460ff1615610e4d576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610dcb57506010546001600160a01b03848116911614155b15610e4d57326000908152601660205260409020544311610e3a5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104e3565b3260009081526016602052604090204390555b6000610e5a858585611273565b90506000610e6882856117cb565b6001600160a01b038716600090815260136020526040812080549293508692909190610e959084906117cb565b90915550508115610ec5573060009081526013602052604081208054849290610ebf90849061184b565b90915550505b60038054906000610ed58361185e565b90915550506001600160a01b03851660009081526013602052604081208054839290610f0290849061184b565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f4e91815260200190565b60405180910390a350600195945050505050565b610f6b826113cf565b6011546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fde573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110039190611877565b5050505050565b6001600160a01b03808416600090815260146020908152604080832093861683529290529081205482111561107a576110456012600a6117a5565b61105390633b9aca006117b4565b6001600160a01b038086166000908152601460209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152601360205260408120805483919083906110ae9084906117cb565b90915550506001600160a01b038316600090815260136020526040812080548492906110db90849061184b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112791815260200190565b60405180910390a35060019392505050565b6005805461ff001916610100179055306000908152601360205260408120549050621e848061116a6012600a6117a5565b61117890633b9aca006117b4565b61118291906118a5565b8110158015611193575060055460ff165b15611265576101f46111a76012600a6117a5565b6111b590633b9aca006117b4565b6111bf91906118a5565b81106111ef576101f46111d46012600a6117a5565b6111e290633b9aca006117b4565b6111ec91906118a5565b90505b6111f88161143b565b478015611263576001546040516000916001600160a01b03169083908381818185875af1925050503d806000811461124c576040519150601f19603f3d011682016040523d82523d6000602084013e611251565b606091505b5050809150508061126157600080fd5b505b505b506005805461ff0019169055565b600554600090819060ff1680156112a357506001600160a01b03851660009081526015602052604090205460ff16155b80156112c857506001600160a01b03841660009081526015602052604090205460ff16155b15610577576001600160a01b03851660009081526012602052604090205460ff168061130c57506001600160a01b03841660009081526012602052604090205460ff165b1561057757600e546003541161132457600954611328565b600a545b6113336064856118a5565b61133d91906117b4565b6010549091506001600160a01b03858116911614801561136657506001600160a01b0385163014155b1561057757600060045460025461137d91906117cb565b600455600f54600354111561139557506008546113af565b600d5460035411156113aa57506007546113af565b506006545b806113bb6064866118a5565b6113c591906117b4565b9695505050505050565b306000908152601460209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561069e57306000908152601460209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b611444816113cf565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611479576114796118c7565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f69190611815565b81600181518110611509576115096118c7565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac9479061154f9085906000908690309042906004016118dd565b600060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115b257858101830151858201604001528201611596565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069e57600080fd5b600080604083850312156115fb57600080fd5b8235611606816115d3565b946020939093013593505050565b60008060006060848603121561162957600080fd5b8335611634816115d3565b92506020840135611644816115d3565b929592945050506040919091013590565b60006020828403121561166757600080fd5b813561057a816115d3565b6000806040838503121561168557600080fd5b8235611690816115d3565b915060208301356116a0816115d3565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116fc5781600019048211156116e2576116e26116ab565b808516156116ef57918102915b93841c93908002906116c6565b509250929050565b60008261171357506001610476565b8161172057506000610476565b816001811461173657600281146117405761175c565b6001915050610476565b60ff841115611751576117516116ab565b50506001821b610476565b5060208310610133831016604e8410600b841016171561177f575081810a610476565b61178983836116c1565b806000190482111561179d5761179d6116ab565b029392505050565b600061057a60ff841683611704565b8082028115828204841417610476576104766116ab565b81810381811115610476576104766116ab565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561182757600080fd5b815161057a816115d3565b60006020828403121561184457600080fd5b5051919050565b80820180821115610476576104766116ab565b600060018201611870576118706116ab565b5060010190565b60008060006060848603121561188c57600080fd5b8351925060208401519150604084015190509250925092565b6000826118c257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561192d5784516001600160a01b031683529383019391830191600101611908565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a539ada87ab1e461f5e202b58f77a8af8623b690e1f088739129117e82980c3264736f6c63430008120033

Deployed Bytecode Sourcemap

2308:10299:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:80;;;;;;;;;;-1:-1:-1;4802:5:0;;;;;;;;;;;;-1:-1:-1;;;4802:5:0;;;;4730:80;;;;;;;:::i;:::-;;;;;;;;5942:216;;;;;;;;;;-1:-1:-1;5942:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5942:216:0;1023:187:1;3197:35:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;3197:35:0;1215:177:1;4998:83:0;;;;;;;;;;;;;:::i;12201:403::-;;;;;;;;;;-1:-1:-1;12201:403:0;;;;;:::i;:::-;;:::i;2430:28::-;;;;;;;;;;;;;;;;4910:80;;;;;;;;;;-1:-1:-1;4910:80:0;;2637:2;2000:36:1;;1988:2;1973:18;4910:80:0;1858:184:1;3239:41:0;;;;;;;;;;;;;;;;5089:105;;;;;;;;;;-1:-1:-1;5089:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5173:18:0;5155:7;5173:18;;;:9;:18;;;;;;;5089:105;2118:134;;;;;;;;;;;;;:::i;:::-;;12077:116;;;;;;;;;;;;;:::i;3050:26::-;;;;;;;;;;-1:-1:-1;3050:26:0;;;;;;;;;;;3083:62;;;;;;;;;;;;;;;;2047:65;;;;;;;;;;-1:-1:-1;2085:7:0;2103:6;2047:65;;-1:-1:-1;;;;;2103:6:0;;;2445:51:1;;2433:2;2418:18;2047:65:0;2299:203:1;4818:84:0;;;;;;;;;;-1:-1:-1;4892:7:0;;;;;;;;;;;;-1:-1:-1;;;4892:7:0;;;;4818:84;;10096:193;;;;;;;;;;;;;:::i;9596:222::-;;;;;;;;;;-1:-1:-1;9596:222:0;;;;;:::i;:::-;;:::i;3154:36::-;;;;;;;;;;;;;;;;3003:40;;;;;;;;;;-1:-1:-1;3003:40:0;;;;;;;;7414:80;;;;;;;;;;;;;:::i;5202:133::-;;;;;;;;;;-1:-1:-1;5202:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5304:19:0;;;5286:7;5304:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5202:133;5343:591;;;:::i;5942:216::-;6046:10;6017:4;6034:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6034:32:0;;;;;;;;;;:41;;;6091:37;6017:4;;6034:32;;6091:37;;;;6069:6;1361:25:1;;1349:2;1334:18;;1215:177;6091:37:0;;;;;;;;-1:-1:-1;6146:4:0;5942:216;;;;;:::o;4998:83::-;5053:7;2698:13;2637:2;2698;:13;:::i;:::-;2681:31;;:13;:31;:::i;:::-;5064:14;;4998:83;:::o;12201:403::-;12301:4;12326:22;12341:6;12326:14;:22::i;:::-;12318:51;;;;-1:-1:-1;;;12318:51:0;;4790:2:1;12318:51:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;12318:51:0;;;;;;;;;-1:-1:-1;;;;;12384:19:0;;;;;;:11;:19;;;;;;;;12404:10;12384:31;;;;;;;;-1:-1:-1;;12384:52:0;12380:159;;-1:-1:-1;;;;;12487:19:0;;;;;;:11;:19;;;;;;;;12507:10;12487:31;;;;;;;;:40;;12521:6;;12487:40;:::i;:::-;-1:-1:-1;;;;;12453:19:0;;;;;;:11;:19;;;;;;;;12473:10;12453:31;;;;;;;:74;12380:159;12556:40;12570:6;12578:9;12589:6;12556:13;:40::i;:::-;12549:47;;12201:403;;;;;;:::o;2118:134::-;2000:6;;-1:-1:-1;;;;;2000:6:0;1986:10;:20;1978:57;;;;-1:-1:-1;;;1978:57:0;;;;;;;:::i;:::-;2194:1:::1;2177:19:::0;;-1:-1:-1;;;;;;2177:19:0::1;::::0;;2212:32:::1;::::0;2445:51:1;;;2212:32:0::1;::::0;2433:2:1;2418:18;2212:32:0::1;;;;;;;2118:134::o:0;12077:116::-;2000:6;;-1:-1:-1;;;;;2000:6:0;1986:10;:20;1978:57;;;;-1:-1:-1;;;1978:57:0;;;;;;;:::i;:::-;12131:20:::1;:28:::0;;-1:-1:-1;;12170:15:0;;;12077:116::o;10096:193::-;10161:10;;-1:-1:-1;;;;;10161:10:0;10147;:24;10139:33;;;;;;10207:10;;10199:58;;10184:9;;-1:-1:-1;;;;;10207:10:0;;10231:21;;10184:9;10199:58;10184:9;10199:58;10231:21;10207:10;10199:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10183:74;;;10276:4;10268:13;;;;;;10128:161;10096:193::o;9596:222::-;9676:4;9701:26;9716:10;9701:14;:26::i;:::-;9693:55;;;;-1:-1:-1;;;9693:55:0;;4790:2:1;9693:55:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;9693:55:0;4588:340:1;9693:55:0;9766:44;9780:10;9792:9;9803:6;9766:13;:44::i;7414:80::-;2000:6;;-1:-1:-1;;;;;2000:6:0;1986:10;:20;1978:57;;;;-1:-1:-1;;;1978:57:0;;;;;;;:::i;:::-;7467:12:::1;:19:::0;;-1:-1:-1;;7467:19:0::1;7482:4;7467:19;::::0;;7414:80::o;5343:591::-;2000:6;;-1:-1:-1;;;;;2000:6:0;1986:10;:20;1978:57;;;;-1:-1:-1;;;1978:57:0;;;;;;;:::i;:::-;4622:7:::1;:14:::0;;-1:-1:-1;;4622:14:0::1;;;::::0;;5425::::2;::::0;-1:-1:-1;;;;;5425:14:0::2;:28:::0;5417:50:::2;;;::::0;-1:-1:-1;;;5417:50:0;;5831:2:1;5417: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;;5417:50:0::2;5629:332:1::0;5417:50:0::2;5487:12;::::0;::::2;;5486:13;5478:41;;;::::0;-1:-1:-1;;;5478:41:0;;6168:2:1;5478:41:0::2;::::0;::::2;6150:21:1::0;6207:2;6187:18;;;6180:30;-1:-1:-1;;;6226:18:1;;;6219:45;6281:18;;5478:41:0::2;5966:339:1::0;5478:41:0::2;5550:1;5538:9;:13;:42;;;;5579:1;5555:21;:25;5538:42;5530:84;;;::::0;-1:-1:-1;;;5530:84:0;;6512:2:1;5530:84:0::2;::::0;::::2;6494:21:1::0;6551:2;6531:18;;;6524:30;6590:31;6570:18;;;6563:59;6639:18;;5530:84:0::2;6310:353:1::0;5530:84:0::2;5651:4;5660:1;5633:24:::0;;;:9:::2;:24;::::0;;;;;5625:62:::2;;;::::0;-1:-1:-1;;;5625:62:0;;6870:2:1;5625: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;;5625:62:0::2;6668:345:1::0;5625:62:0::2;5735:16;;;;;;;;;-1:-1:-1::0;;;;;5735:16:0::2;-1:-1:-1::0;;;;;5735:24:0::2;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5717:56:0::2;;5782:4;5789:16;;;;;;;;;-1:-1:-1::0;;;;;5789:16:0::2;-1:-1:-1::0;;;;;5789:21:0::2;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5717:96;::::0;-1:-1:-1;;;;;;5717:96:0::2;::::0;;;;;;-1:-1:-1;;;;;7504:15:1;;;5717:96:0::2;::::0;::::2;7486:34:1::0;7556:15;;7536:18;;;7529:43;7421:18;;5717:96:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5700:14;:113:::0;;-1:-1:-1;;;;;;5700:113:0::2;-1:-1:-1::0;;;;;5700:113:0;;;::::2;::::0;;;::::2;::::0;;5856:4:::2;-1:-1:-1::0;5838:24:0;;;:9:::2;:24;::::0;;;;;5824:62:::2;::::0;5864:21:::2;5824:13;:62::i;:::-;5904:14;::::0;-1:-1:-1;;;;;5904:14:0::2;5897:22;::::0;;;:6:::2;:22;::::0;;;;:29;;-1:-1:-1;;5897:29:0::2;5922:4;5897:29;::::0;;4661:7:::1;:15:::0;;-1:-1:-1;;4661:15:0::1;::::0;;5343:591::o;10567:246::-;10682:12;;10629:4;;;;10682:12;;10678:101;;;-1:-1:-1;10707:4:0;10678:101;;;-1:-1:-1;;;;;10733:26:0;;;;;;:18;:26;;;;;;;;10729:50;;;-1:-1:-1;10772:4:0;10799:6;10567:246;-1:-1:-1;;10567:246:0:o;7502:1829::-;7616:12;;7594:4;;7616:12;;7611:81;;-1:-1:-1;;;;;7640:26:0;;;;;;:18;:26;;;;;;;;7632:57;;;;-1:-1:-1;;;7632:57:0;;7785:2:1;7632:57:0;;;7767:21:1;7824:2;7804:18;;;7797:30;-1:-1:-1;;;7843:18:1;;;7836:48;7901:18;;7632:57:0;7583:342:1;7632:57:0;-1:-1:-1;;;;;7706:14:0;;;;;;:6;:14;;;;;;;;:47;;;;-1:-1:-1;;;;;;7724:29:0;;;;;;:18;:29;;;;;;;;7706:47;7702:140;;;7765:47;7786:6;7794:9;7805:6;7765:20;:47::i;:::-;7757:82;;;;-1:-1:-1;;;7757:82:0;;8132:2:1;7757:82:0;;;8114:21:1;8171:2;8151:18;;;8144:30;-1:-1:-1;;;8190:18:1;;;8183:52;8252:18;;7757:82:0;7930:346:1;7757:82:0;-1:-1:-1;;;;;7860:20:0;;7852:62;;;;-1:-1:-1;;;7852:62:0;;8483:2:1;7852:62:0;;;8465:21:1;8522:2;8502:18;;;8495:30;8561:31;8541:18;;;8534:59;8610:18;;7852:62:0;8281:353:1;7852:62:0;-1:-1:-1;;;;;7953:26:0;;;;;;:18;:26;;;;;;;;;:72;;-1:-1:-1;;;;;;7996:29:0;;;;;;:18;:29;;;;;;;;7953:72;7935:180;;;8059:44;8077:6;8085:9;8096:6;8059:17;:44::i;:::-;8052:51;;;;7935:180;8154:7;;;;;;;8153:8;:42;;;;-1:-1:-1;;;;;;8178:17:0;;;;;;:6;:17;;;;;;;;8153:42;:90;;;;;8225:18;;8212:9;;:31;;8153:90;8135:145;;;8257:20;:18;:20::i;:::-;8320:8;;8305:24;;-1:-1:-1;;;8305:24:0;;-1:-1:-1;;;;;8320:8:0;;;8305:24;;;2445:51:1;8305:4:0;;:14;;2418:18:1;;8305:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8290:12;:39;8360:7;;;;;;;:48;;;;-1:-1:-1;8394:14:0;;-1:-1:-1;;;;;8384:24:0;;;8394:14;;8384:24;8360:48;8342:163;;;8476:16;;8466:6;8443:20;8453:9;-1:-1:-1;;;;;5173:18:0;5155:7;5173:18;;;:9;:18;;;;;;;5089:105;8443:20;:29;;;;:::i;:::-;:49;;8435:58;;;;;;8521:20;;;;8517:384;;;-1:-1:-1;;;;;8580:36:0;;3385:42;8580:36;;;;:84;;-1:-1:-1;8650:14:0;;-1:-1:-1;;;;;8637:27:0;;;8650:14;;8637:27;;8580:84;8558:332;;;8736:9;8707:39;;;;:28;:39;;;;;;8749:12;-1:-1:-1;8699:102:0;;;;-1:-1:-1;;;8699:102:0;;9376:2:1;8699:102:0;;;9358:21:1;9415:2;9395:18;;;9388:30;9454:34;9434:18;;;9427:62;-1:-1:-1;;;9505:18:1;;;9498:33;9548:19;;8699:102:0;9174:399:1;8699:102:0;8849:9;8820:39;;;;:28;:39;;;;;8862:12;8820:54;;8558:332;8913:18;8934:46;8954:6;8962:9;8973:6;8934:19;:46::i;:::-;8913:67;-1:-1:-1;8991:23:0;9017:19;8913:67;9017:6;:19;:::i;:::-;-1:-1:-1;;;;;9047:17:0;;;;;;:9;:17;;;;;:27;;8991:45;;-1:-1:-1;9068:6:0;;9047:17;;;:27;;9068:6;;9047:27;:::i;:::-;;;;-1:-1:-1;;9091:14:0;;9087:86;;9140:4;9122:24;;;;:9;:24;;;;;:38;;9150:10;;9122:24;:38;;9150:10;;9122:38;:::i;:::-;;;;-1:-1:-1;;9087:86:0;9185:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9207:20:0;;;;;;:9;:20;;;;;:39;;9231:15;;9207:20;:39;;9231:15;;9207:39;:::i;:::-;;;;;;;;9281:9;-1:-1:-1;;;;;9264:35:0;9273:6;-1:-1:-1;;;;;9264:35:0;;9292:6;9264:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;9264:35:0;;;;;;;;-1:-1:-1;9319:4:0;;7502:1829;-1:-1:-1;;;;;7502:1829:0:o;10301:258::-;10389:34;10410:12;10389:20;:34::i;:::-;10434:16;;;10526:6;;10434:117;;-1:-1:-1;;;10434:117:0;;10499:4;10434:117;;;10059:34:1;10109:18;;;10102:34;;;10152:18;;;10145:34;;;10195:18;;;10188:34;;;;-1:-1:-1;;;;;10526:6:0;;;10238:19:1;;;10231:44;10534:15:0;10291:19:1;;;10284:35;10434:16:0;;;;:32;;10474:13;;9993:19:1;;10434:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10301:258;;:::o;9339:245::-;-1:-1:-1;;;;;9455:18:0;;;9434:4;9455:18;;;:11;:18;;;;;;;;:26;;;;;;;;;;;;:35;-1:-1:-1;9451:104:0;;;2698:13;2637:2;2698;:13;:::i;:::-;2681:31;;:13;:31;:::i;:::-;-1:-1:-1;;;;;9507:18:0;;;;;;;:11;:18;;;;;;;;:26;;;;;;;;;:36;9451:104;-1:-1:-1;9572:4:0;9339:245;;;;;:::o;9826:262::-;-1:-1:-1;;;;;9939:17:0;;9922:4;9939:17;;;:9;:17;;;;;:27;;9960:6;;9939:17;9922:4;;9939:27;;9960:6;;9939:27;:::i;:::-;;;;-1:-1:-1;;;;;;;9977:20:0;;;;;;:9;:20;;;;;:30;;10001:6;;9977:20;:30;;10001:6;;9977:30;:::i;:::-;;;;;;;;10040:9;-1:-1:-1;;;;;10023:35:0;10032:6;-1:-1:-1;;;;;10023:35:0;;10051:6;10023:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;10023:35:0;;;;;;;;-1:-1:-1;10076:4:0;9826:262;;;;;:::o;11066:627::-;4622:7;:14;;-1:-1:-1;;4622:14:0;;;;;11175:4:::1;-1:-1:-1::0;5173:18:0;;;:9;:18;;;;;;11127:54;-1:-1:-1;3929:7:0::1;2698:13;2637:2;2698;:13;:::i;:::-;2681:31;::::0;:13:::1;:31;:::i;:::-;3919:17;;;;:::i;:::-;11198:19;:34;;:50;;;;-1:-1:-1::0;11236:12:0::1;::::0;::::1;;11198:50;11194:492;;;3992:3;2698:13;2637:2;2698;:13;:::i;:::-;2681:31;::::0;:13:::1;:31;:::i;:::-;3982:13;;;;:::i;:::-;11269:19;:34;11265:78;;3992:3;2698:13;2637:2;2698;:13;:::i;:::-;2681:31;::::0;:13:::1;:31;:::i;:::-;3982:13;;;;:::i;:::-;11307:33;;11265:78;11359:41;11380:19;11359:20;:41::i;:::-;11445:21;11487:23:::0;;11483:192:::1;;11575:10;::::0;:49:::1;::::0;11531:12:::1;::::0;-1:-1:-1;;;;;11575:10:0::1;::::0;11599:19;;11531:12;11575:49;11531:12;11575:49;11599:19;11575:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11562:62;;;;;11651:7;11643:16;;;::::0;::::1;;11512:163;11483:192;11250:436;11194:492;-1:-1:-1::0;4661:7:0;:15;;-1:-1:-1;;4661:15:0;;;11066:627::o;6166:1240::-;6332:12;;6264:7;;;;6332:12;;:56;;;;-1:-1:-1;;;;;;6362:26:0;;;;;;:18;:26;;;;;;;;6361:27;6332:56;:103;;;;-1:-1:-1;;;;;;6406:29:0;;;;;;:18;:29;;;;;;;;6405:30;6332:103;6314:1056;;;-1:-1:-1;;;;;6499:14:0;;;;;;:6;:14;;;;;;;;;:52;;-1:-1:-1;;;;;;6534:17:0;;;;;;:6;:17;;;;;;;;6499:52;6477:882;;;6629:15;;6617:9;;:27;6616:61;;6663:14;;6616:61;;;6648:12;;6616:61;6599:12;6608:3;6599:6;:12;:::i;:::-;6598:80;;;;:::i;:::-;6736:14;;6586:92;;-1:-1:-1;;;;;;6723:27:0;;;6736:14;;6723:27;:75;;;;-1:-1:-1;;;;;;6775:23:0;;6793:4;6775:23;;6723:75;6697:647;;;6841:15;6915:12;;6894:18;;:33;;;;:::i;:::-;6879:12;:48;6966:21;;6954:9;;:33;6950:316;;;-1:-1:-1;7026:13:0;;6950:316;;;7085:16;;7073:9;;:28;7069:197;;;-1:-1:-1;7140:20:0;;7069:197;;;-1:-1:-1;7227:15:0;;7069:197;7317:7;7301:12;7310:3;7301:6;:12;:::i;:::-;7300:24;;;;:::i;:::-;7288:36;7389:9;-1:-1:-1;;;;;;6166:1240:0:o;10821:237::-;10911:4;10891:26;;;;:11;:26;;;;;;;;3385:42;10891:51;;;;;;;;:60;-1:-1:-1;10887:164:0;;;10988:4;10968:26;;;;:11;:26;;;;;;;;3385:42;10968:51;;;;;;;-1:-1:-1;;10968:71:0;;10821:237;:::o;11701:368::-;11771:33;11792:11;11771:20;:33::i;:::-;11839:16;;;11853:1;11839:16;;;;;;;;11815:21;;11839:16;;;;;;;;;;-1:-1:-1;11839:16:0;11815:40;;11884:4;11866;11871:1;11866:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11866:23:0;;;:7;;;;;;;;;;:23;;;;11910:16;;:23;;;-1:-1:-1;;;11910:23:0;;;;:16;;;;;:21;;:23;;;;;11866:7;;11910:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11900:4;11905:1;11900:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11900:33:0;;;:7;;;;;;;;;:33;11944:16;;:117;;-1:-1:-1;;;11944:117:0;;:16;;;:67;;:117;;12012:11;;11944:16;;12026:4;;12039;;12045:15;;11944:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11760:309;11701:368;:::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;8855:184::-;8925:6;8978:2;8966:9;8957:7;8953:23;8949:32;8946:52;;;8994:1;8991;8984:12;8946:52;-1:-1:-1;9017:16:1;;8855:184;-1:-1:-1;8855:184:1:o;9044:125::-;9109:9;;;9130:10;;;9127:36;;;9143:18;;:::i;9578:135::-;9617:3;9638:17;;;9635:43;;9658:18;;:::i;:::-;-1:-1:-1;9705:1:1;9694:13;;9578:135::o;10330:306::-;10418:6;10426;10434;10487:2;10475:9;10466:7;10462:23;10458:32;10455:52;;;10503:1;10500;10493:12;10455:52;10532:9;10526:16;10516:26;;10582:2;10571:9;10567:18;10561:25;10551:35;;10626:2;10615:9;10611:18;10605:25;10595:35;;10330:306;;;;;:::o;10641:217::-;10681:1;10707;10697:132;;10751:10;10746:3;10742:20;10739:1;10732:31;10786:4;10783:1;10776:15;10814:4;10811:1;10804:15;10697:132;-1:-1:-1;10843:9:1;;10641:217::o;10995:127::-;11056:10;11051:3;11047:20;11044:1;11037:31;11087:4;11084:1;11077:15;11111:4;11108:1;11101:15;11127:980;11389:4;11437:3;11426:9;11422:19;11468:6;11457:9;11450:25;11494:2;11532:6;11527:2;11516:9;11512:18;11505:34;11575:3;11570:2;11559:9;11555:18;11548:31;11599:6;11634;11628:13;11665:6;11657;11650:22;11703:3;11692:9;11688:19;11681:26;;11742:2;11734:6;11730:15;11716:29;;11763:1;11773:195;11787:6;11784:1;11781:13;11773:195;;;11852:13;;-1:-1:-1;;;;;11848:39:1;11836:52;;11943:15;;;;11908:12;;;;11884:1;11802:9;11773:195;;;-1:-1:-1;;;;;;;12024:32:1;;;;12019:2;12004:18;;11997:60;-1:-1:-1;;;12088:3:1;12073:19;12066:35;11985:3;11127:980;-1:-1:-1;;;11127:980:1:o

Swarm Source

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