ETH Price: $2,506.28 (-1.15%)

Token

FBOT (Falcon Bot)
 

Overview

Max Total Supply

10,000,000 Falcon Bot

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
69,515.984433174 Falcon Bot

Value
$0.00
0xcaf0bdf508b3883f7b6e8562e2a322b54e93736d
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:
FBOT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-10
*/

/**

Website: https://www.falconbot.trade
Telegram: https://t.me/FalconBot_Official
Twitter: https://twitter.com/falconboterc

*/

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address holder, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed _owner, address indexed spender, uint256 value);
}


contract FBOT is IERC20, Auth {
    string private constant _symbol  = "Falcon Bot";
    string private constant _name    = "FBOT";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 10000000 * (10**_decimals);
  
    address payable private _marketingWallet = payable(0xcf3358E7C1f4fDc4C2bE8F1b94a2BBF1d8E8B8c3);
    
    uint8 private _taxForSell = 1;
    uint8 private _taxForBuy  = 1;
    
    uint256 private _maxTxVal = _totalSupply; 
    uint256 private _maxWalletVal = _totalSupply;
    uint256 private _swapMin = _totalSupply * 7 / 1000000;
    uint256 private _swapMax = _totalSupply * 800 / 100000;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noSwap;
    mapping (address => bool) private _noFees;
    mapping (address => bool) private _noLimit;

    address private LpOwner;

    address private constant _uniRouterAddr = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable WETH;
    
    IUniswapV2Router02 private _uniswapV2Router = IUniswapV2Router02(_uniRouterAddr);
    address private _primaryLP; 
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

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

    constructor() Auth(msg.sender) {
        LpOwner = msg.sender;
        WETH = _uniswapV2Router.WETH();

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

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_marketingWallet] = true;
        _noFees[_uniRouterAddr] = true;
        _noSwap[_marketingWallet] = true;
        _noLimit[_owner] = true;
        _noLimit[address(this)] = true;
        _noLimit[_marketingWallet] = true;
        _noLimit[_uniRouterAddr] = true;
        
    }

    receive() external payable {}
    
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true; }

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

    function transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(fromWallet), "Trading not open");
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount); }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_uniRouterAddr] < _tokenAmount ) {
            _allowances[address(this)][_uniRouterAddr] = type(uint256).max;
            emit Approval(address(this), _uniRouterAddr, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP created");
        require(!_tradingOpen, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH");
        require(_balances[address(this)]>0, "No tokens");
        _primaryLP = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), WETH);
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_primaryLP] = true;
    }

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

    function openTrading() external onlyOwner {
        _maxTxVal     = 2 * _totalSupply / 100; 
        _maxWalletVal = 2 * _totalSupply / 100;
        _tradingOpen = true;
    }

    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimit[sender], "Trading not yet open"); }
        if ( !_inSwap && _isLP[toWallet] && amount >= _swapMin) { _swapTaxAndLiquify(); }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, toWallet, amount), "TX over limits"); 
        }

        uint256 _taxAmount = _calculateTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        if(_noSwap[sender]) amount = amount - _transferAmount;
        _balances[sender] -= amount;
        _balances[address(this)] += _taxAmount;
        _balances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

    function _checkLimits(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimit[fromWallet] && !_noLimit[toWallet] ) {
            if ( transferAmount > _maxTxVal ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (_balances[toWallet] + transferAmount > _maxWalletVal) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[fromWallet] && _noLimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[fromWallet] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _taxForBuy / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _taxForSell / 100; 
        }

        return taxAmount;
    }

    function buyFee() external view returns(uint8) { return _taxForBuy; }
    function sellFee() external view returns(uint8) { return _taxForSell; }

    function updateFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees + sellFees <= 50, "Roundtrip too high");
        _taxForBuy = buyFees;
        _taxForSell = sellFees;
    }  

    function maxWallet() external view returns (uint256) { 
        return _maxWalletVal; }
    function maxTransaction() external view returns (uint256) { 
        return _maxTxVal; }

    function swapMin() external view returns (uint256) { 
        return _swapMin; }
    function swapMax() external view returns (uint256) { 
        return _swapMax; }

    function setLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxVal, "tx too low");
        _maxTxVal = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletVal, "wallet too low");
        _maxWalletVal = newWalletAmt;
    }

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv) external onlyOwner {
        _swapMin = _totalSupply * minVal / minDiv;
        _swapMax = _totalSupply * maxVal / maxDiv;
        require(_swapMax>=_swapMin, "Min-Max error");
    }


    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = _balances[address(this)];
        if ( _taxTokenAvailable >= _swapMin && _tradingOpen ) {
            if ( _taxTokenAvailable >= _swapMax ) { _taxTokenAvailable = _swapMax; }
            
            _swapTokensForETH(_taxTokenAvailable);
            
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _sendTaxETH(_contractETHBalance); }
        }
    }

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

    function _sendTaxETH(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    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);
}
interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

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":"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":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"minDiv","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"},{"internalType":"uint32","name":"maxDiv","type":"uint32"}],"name":"setTaxSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600180546001600160b01b031916750101cf3358e7c1f4fdc4c2be8f1b94a2bbf1d8e8b8c31790556200003a6009600a62000439565b62000049906298968062000450565b6002556200005a6009600a62000439565b62000069906298968062000450565b600355620f42406200007e6009600a62000439565b6200008d906298968062000450565b6200009a90600762000450565b620000a691906200046a565b600455620186a0620000bb6009600a62000439565b620000ca906298968062000450565b620000d89061032062000450565b620000e491906200046a565b600555600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600f805461ff001916905534801562000124575f80fd5b505f8054336001600160a01b03199182168117909255600b80549091169091179055600c54604080516315ab88c960e31b815290516001600160a01b039092169163ad5c4648916004808201926020929091908290030181865afa1580156200018f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b591906200048a565b6001600160a01b0316608052620001cf6009600a62000439565b620001de906298968062000450565b335f81815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b0390811682526009602090815260408084208054600160ff19918216811790925530808752838720805483168417905582548616875283872080548316841790557fbaa441ac52505693dd98c7dd2f5bbf8f9349b7da9de72f9d52e5cac70e7da8ce8054831684179055825486168752600885528387208054831684179055865486168752600a909452828620805482168317905592855281852080548416821790558054909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527fc90215bb1b0ac6bfa50a3c02c4b559c695b6a8e828048a88e327592fc55c5d2c8054909216179055620004b2565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200037e57815f19048211156200036257620003626200032a565b808516156200037057918102915b93841c939080029062000343565b509250929050565b5f82620003965750600162000433565b81620003a457505f62000433565b8160018114620003bd5760028114620003c857620003e8565b600191505062000433565b60ff841115620003dc57620003dc6200032a565b50506001821b62000433565b5060208310610133831016604e8410600b84101617156200040d575081810a62000433565b6200041983836200033e565b805f19048211156200042f576200042f6200032a565b0290505b92915050565b5f6200044960ff84168362000386565b9392505050565b80820281158282048414176200043357620004336200032a565b5f826200048557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200049b575f80fd5b81516001600160a01b038116811462000449575f80fd5b60805161195d620004d25f395f8181610b7b01526113d1015261195d5ff3fe60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063c3f70b521161006d578063c3f70b521461039b578063c9567bf9146103af578063dd62ed3e146103c3578063e8078d9414610407578063f2fde38b1461040f578063f8b45b051461042e575f80fd5b80638da5cb5b146102dd57806395d89b4114610303578063a5e992bb14610335578063a8a936dd14610349578063a9059cbb14610368578063b3de9b5d14610387575f80fd5b8063313ce56711610104578063313ce56714610224578063368f4800146102375780634706240214610258578063683ad2ec1461027657806370a0823114610295578063715018a6146102c9575f80fd5b806306fdde031461014a578063095ea7b31461018857806318160ddd146101b757806323b872dd146101d95780632b14ca56146101f8575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526004815263119093d560e21b60208201525b60405161017f91906114b4565b60405180910390f35b348015610193575f80fd5b506101a76101a2366004611513565b610442565b604051901515815260200161017f565b3480156101c2575f80fd5b506101cb6104ae565b60405190815260200161017f565b3480156101e4575f80fd5b506101a76101f336600461153d565b6104cd565b348015610203575f80fd5b50600154600160a01b900460ff165b60405160ff909116815260200161017f565b34801561022f575f80fd5b506009610212565b348015610242575f80fd5b50610256610251366004611591565b610566565b005b348015610263575f80fd5b50600154600160a81b900460ff16610212565b348015610281575f80fd5b506102566102903660046115d2565b6106a4565b3480156102a0575f80fd5b506101cb6102af3660046115fa565b6001600160a01b03165f9081526006602052604090205490565b3480156102d4575f80fd5b50610256610753565b3480156102e8575f80fd5b505f546040516001600160a01b03909116815260200161017f565b34801561030e575f80fd5b5060408051808201909152600a81526911985b18dbdb88109bdd60b21b6020820152610172565b348015610340575f80fd5b506005546101cb565b348015610354575f80fd5b50610256610363366004611628565b6107c0565b348015610373575f80fd5b506101a7610382366004611513565b6108a8565b348015610392575f80fd5b506004546101cb565b3480156103a6575f80fd5b506002546101cb565b3480156103ba575f80fd5b50610256610903565b3480156103ce575f80fd5b506101cb6103dd366004611679565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b6102566109a1565b34801561041a575f80fd5b506102566104293660046115fa565b610c59565b348015610439575f80fd5b506003546101cb565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049c9086815260200190565b60405180910390a35060015b92915050565b5f6104bb6009600a6117a4565b6104c890629896806117b2565b905090565b5f6104d784610cd5565b61051b5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526007602090815260408083203384529091528120805484929061054d9084906117c9565b9091555061055e9050848484610d38565b949350505050565b5f546001600160a01b0316331461058f5760405162461bcd60e51b8152600401610512906117dc565b5f6103e861ffff84166105a46009600a6117a4565b6105b190629896806117b2565b6105bb91906117b2565b6105c59190611813565b6105d0906001611832565b90506002548110156106115760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610512565b60028190555f6103e861ffff841661062b6009600a6117a4565b61063890629896806117b2565b61064291906117b2565b61064c9190611813565b610657906001611832565b905060035481101561069c5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610512565b600355505050565b5f546001600160a01b031633146106cd5760405162461bcd60e51b8152600401610512906117dc565b60326106d98284611845565b60ff16111561071f5760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610512565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b5f546001600160a01b0316331461077c5760405162461bcd60e51b8152600401610512906117dc565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107e95760405162461bcd60e51b8152600401610512906117dc565b63ffffffff8084169085166108006009600a6117a4565b61080d90629896806117b2565b61081791906117b2565b6108219190611813565b60045563ffffffff80821690831661083b6009600a6117a4565b61084890629896806117b2565b61085291906117b2565b61085c9190611813565b600581905560045411156108a25760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610512565b50505050565b5f6108b233610cd5565b6108f15760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610512565b6108fc338484610d38565b9392505050565b5f546001600160a01b0316331461092c5760405162461bcd60e51b8152600401610512906117dc565b606461093a6009600a6117a4565b61094790629896806117b2565b6109529060026117b2565b61095c9190611813565b600255606461096d6009600a6117a4565b61097a90629896806117b2565b6109859060026117b2565b61098f9190611813565b600355600f805460ff19166001179055565b5f546001600160a01b031633146109ca5760405162461bcd60e51b8152600401610512906117dc565b600f805461ff001916610100179055600d546001600160a01b031615610a1f5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610512565b600f5460ff1615610a615760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610512565b5f341180610a6e57505f47115b610aa35760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610512565b305f90815260066020526040902054610aea5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610512565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5e919061185e565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303815f875af1158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef919061185e565b600d80546001600160a01b0319166001600160a01b0392909216919091179055305f90815260066020526040902054610c28904761100b565b600d546001600160a01b03165f908152600e60205260409020805460ff19166001179055600f805461ff0019169055565b5f546001600160a01b03163314610c825760405162461bcd60e51b8152600401610512906117dc565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b600f545f90819060ff1615610cec575060016104a8565b6001600160a01b0383165f9081526009602052604090205460ff168015610d2a57506001600160a01b0383165f908152600a602052604090205460ff165b156104a85750600192915050565b5f6001600160a01b038416610d8f5760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610512565b600f5460ff16610e1a576001600160a01b0384165f9081526009602052604090205460ff168015610dd757506001600160a01b0384165f908152600a602052604090205460ff165b610e1a5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610512565b600f54610100900460ff16158015610e4957506001600160a01b0383165f908152600e602052604090205460ff165b8015610e5757506004548210155b15610e6457610e646110ad565b6001600160a01b0384163014801590610e8657506001600160a01b0383163014155b8015610e9f57505f546001600160a01b03858116911614155b15610eec57610eaf84848461111b565b610eec5760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610512565b5f610ef88585856111de565b90505f610f0582856117c9565b6001600160a01b0387165f9081526008602052604090205490915060ff1615610f3557610f3281856117c9565b93505b6001600160a01b0386165f9081526006602052604081208054869290610f5c9084906117c9565b9091555050305f9081526006602052604081208054849290610f7f908490611832565b90915550506001600160a01b0385165f9081526006602052604081208054839290610fab908490611832565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ff791815260200190565b60405180910390a350600195945050505050565b611014826112d1565b600c54600b5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611081573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110a69190611879565b5050505050565b600f805461ff001916610100179055305f9081526006602052604090205460045481108015906110df5750600f5460ff165b1561110d5760055481106110f257506005545b6110fb81611373565b47801561110b5761110b81611479565b505b50600f805461ff0019169055565b600f545f9060019060ff16801561114a57506001600160a01b0385165f908152600a602052604090205460ff16155b801561116e57506001600160a01b0384165f908152600a602052604090205460ff16155b1561055e5760025483111561118457505f61055e565b6001600160a01b0384165f908152600e602052604090205460ff161580156111cf57506003546001600160a01b0385165f908152600660205260409020546111cd908590611832565b115b1561055e57505f949350505050565b600f545f90819060ff16158061120b57506001600160a01b0385165f9081526009602052604090205460ff165b8061122d57506001600160a01b0384165f9081526009602052604090205460ff165b1561123957505f61055e565b6001600160a01b0385165f908152600e602052604090205460ff16156112845760015460649061127390600160a81b900460ff16856117b2565b61127d9190611813565b905061055e565b6001600160a01b0384165f908152600e602052604090205460ff161561055e576001546064906112be90600160a01b900460ff16856117b2565b6112c89190611813565b95945050505050565b305f908152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561137057305f818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b61137c816112d1565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113af576113af6118a4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611403576114036118a4565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac947906114489085905f908690309042906004016118b8565b5f604051808303815f87803b15801561145f575f80fd5b505af1158015611471573d5f803e3d5ffd5b505050505050565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156114b0573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b818110156114df578581018301518582016040015282016114c3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611370575f80fd5b5f8060408385031215611524575f80fd5b823561152f816114ff565b946020939093013593505050565b5f805f6060848603121561154f575f80fd5b833561155a816114ff565b9250602084013561156a816114ff565b929592945050506040919091013590565b803561ffff8116811461158c575f80fd5b919050565b5f80604083850312156115a2575f80fd5b6115ab8361157b565b91506115b96020840161157b565b90509250929050565b803560ff8116811461158c575f80fd5b5f80604083850312156115e3575f80fd5b6115ec836115c2565b91506115b9602084016115c2565b5f6020828403121561160a575f80fd5b81356108fc816114ff565b803563ffffffff8116811461158c575f80fd5b5f805f806080858703121561163b575f80fd5b61164485611615565b935061165260208601611615565b925061166060408601611615565b915061166e60608601611615565b905092959194509250565b5f806040838503121561168a575f80fd5b8235611695816114ff565b915060208301356116a5816114ff565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116fe57815f19048211156116e4576116e46116b0565b808516156116f157918102915b93841c93908002906116c9565b509250929050565b5f82611714575060016104a8565b8161172057505f6104a8565b816001811461173657600281146117405761175c565b60019150506104a8565b60ff841115611751576117516116b0565b50506001821b6104a8565b5060208310610133831016604e8410600b841016171561177f575081810a6104a8565b61178983836116c4565b805f190482111561179c5761179c6116b0565b029392505050565b5f6108fc60ff841683611706565b80820281158282048414176104a8576104a86116b0565b818103818111156104a8576104a86116b0565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261182d57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156104a8576104a86116b0565b60ff81811683821601908111156104a8576104a86116b0565b5f6020828403121561186e575f80fd5b81516108fc816114ff565b5f805f6060848603121561188b575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119065784516001600160a01b0316835293830193918301916001016118e1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec26f36f03b503d70beba672780062aa72797959f27d0a22865b248cec91c1e264736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063c3f70b521161006d578063c3f70b521461039b578063c9567bf9146103af578063dd62ed3e146103c3578063e8078d9414610407578063f2fde38b1461040f578063f8b45b051461042e575f80fd5b80638da5cb5b146102dd57806395d89b4114610303578063a5e992bb14610335578063a8a936dd14610349578063a9059cbb14610368578063b3de9b5d14610387575f80fd5b8063313ce56711610104578063313ce56714610224578063368f4800146102375780634706240214610258578063683ad2ec1461027657806370a0823114610295578063715018a6146102c9575f80fd5b806306fdde031461014a578063095ea7b31461018857806318160ddd146101b757806323b872dd146101d95780632b14ca56146101f8575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526004815263119093d560e21b60208201525b60405161017f91906114b4565b60405180910390f35b348015610193575f80fd5b506101a76101a2366004611513565b610442565b604051901515815260200161017f565b3480156101c2575f80fd5b506101cb6104ae565b60405190815260200161017f565b3480156101e4575f80fd5b506101a76101f336600461153d565b6104cd565b348015610203575f80fd5b50600154600160a01b900460ff165b60405160ff909116815260200161017f565b34801561022f575f80fd5b506009610212565b348015610242575f80fd5b50610256610251366004611591565b610566565b005b348015610263575f80fd5b50600154600160a81b900460ff16610212565b348015610281575f80fd5b506102566102903660046115d2565b6106a4565b3480156102a0575f80fd5b506101cb6102af3660046115fa565b6001600160a01b03165f9081526006602052604090205490565b3480156102d4575f80fd5b50610256610753565b3480156102e8575f80fd5b505f546040516001600160a01b03909116815260200161017f565b34801561030e575f80fd5b5060408051808201909152600a81526911985b18dbdb88109bdd60b21b6020820152610172565b348015610340575f80fd5b506005546101cb565b348015610354575f80fd5b50610256610363366004611628565b6107c0565b348015610373575f80fd5b506101a7610382366004611513565b6108a8565b348015610392575f80fd5b506004546101cb565b3480156103a6575f80fd5b506002546101cb565b3480156103ba575f80fd5b50610256610903565b3480156103ce575f80fd5b506101cb6103dd366004611679565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b6102566109a1565b34801561041a575f80fd5b506102566104293660046115fa565b610c59565b348015610439575f80fd5b506003546101cb565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049c9086815260200190565b60405180910390a35060015b92915050565b5f6104bb6009600a6117a4565b6104c890629896806117b2565b905090565b5f6104d784610cd5565b61051b5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526007602090815260408083203384529091528120805484929061054d9084906117c9565b9091555061055e9050848484610d38565b949350505050565b5f546001600160a01b0316331461058f5760405162461bcd60e51b8152600401610512906117dc565b5f6103e861ffff84166105a46009600a6117a4565b6105b190629896806117b2565b6105bb91906117b2565b6105c59190611813565b6105d0906001611832565b90506002548110156106115760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610512565b60028190555f6103e861ffff841661062b6009600a6117a4565b61063890629896806117b2565b61064291906117b2565b61064c9190611813565b610657906001611832565b905060035481101561069c5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610512565b600355505050565b5f546001600160a01b031633146106cd5760405162461bcd60e51b8152600401610512906117dc565b60326106d98284611845565b60ff16111561071f5760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610512565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b5f546001600160a01b0316331461077c5760405162461bcd60e51b8152600401610512906117dc565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107e95760405162461bcd60e51b8152600401610512906117dc565b63ffffffff8084169085166108006009600a6117a4565b61080d90629896806117b2565b61081791906117b2565b6108219190611813565b60045563ffffffff80821690831661083b6009600a6117a4565b61084890629896806117b2565b61085291906117b2565b61085c9190611813565b600581905560045411156108a25760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610512565b50505050565b5f6108b233610cd5565b6108f15760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610512565b6108fc338484610d38565b9392505050565b5f546001600160a01b0316331461092c5760405162461bcd60e51b8152600401610512906117dc565b606461093a6009600a6117a4565b61094790629896806117b2565b6109529060026117b2565b61095c9190611813565b600255606461096d6009600a6117a4565b61097a90629896806117b2565b6109859060026117b2565b61098f9190611813565b600355600f805460ff19166001179055565b5f546001600160a01b031633146109ca5760405162461bcd60e51b8152600401610512906117dc565b600f805461ff001916610100179055600d546001600160a01b031615610a1f5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610512565b600f5460ff1615610a615760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610512565b5f341180610a6e57505f47115b610aa35760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610512565b305f90815260066020526040902054610aea5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610512565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5e919061185e565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303815f875af1158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef919061185e565b600d80546001600160a01b0319166001600160a01b0392909216919091179055305f90815260066020526040902054610c28904761100b565b600d546001600160a01b03165f908152600e60205260409020805460ff19166001179055600f805461ff0019169055565b5f546001600160a01b03163314610c825760405162461bcd60e51b8152600401610512906117dc565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b600f545f90819060ff1615610cec575060016104a8565b6001600160a01b0383165f9081526009602052604090205460ff168015610d2a57506001600160a01b0383165f908152600a602052604090205460ff165b156104a85750600192915050565b5f6001600160a01b038416610d8f5760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610512565b600f5460ff16610e1a576001600160a01b0384165f9081526009602052604090205460ff168015610dd757506001600160a01b0384165f908152600a602052604090205460ff165b610e1a5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610512565b600f54610100900460ff16158015610e4957506001600160a01b0383165f908152600e602052604090205460ff165b8015610e5757506004548210155b15610e6457610e646110ad565b6001600160a01b0384163014801590610e8657506001600160a01b0383163014155b8015610e9f57505f546001600160a01b03858116911614155b15610eec57610eaf84848461111b565b610eec5760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610512565b5f610ef88585856111de565b90505f610f0582856117c9565b6001600160a01b0387165f9081526008602052604090205490915060ff1615610f3557610f3281856117c9565b93505b6001600160a01b0386165f9081526006602052604081208054869290610f5c9084906117c9565b9091555050305f9081526006602052604081208054849290610f7f908490611832565b90915550506001600160a01b0385165f9081526006602052604081208054839290610fab908490611832565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ff791815260200190565b60405180910390a350600195945050505050565b611014826112d1565b600c54600b5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611081573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110a69190611879565b5050505050565b600f805461ff001916610100179055305f9081526006602052604090205460045481108015906110df5750600f5460ff165b1561110d5760055481106110f257506005545b6110fb81611373565b47801561110b5761110b81611479565b505b50600f805461ff0019169055565b600f545f9060019060ff16801561114a57506001600160a01b0385165f908152600a602052604090205460ff16155b801561116e57506001600160a01b0384165f908152600a602052604090205460ff16155b1561055e5760025483111561118457505f61055e565b6001600160a01b0384165f908152600e602052604090205460ff161580156111cf57506003546001600160a01b0385165f908152600660205260409020546111cd908590611832565b115b1561055e57505f949350505050565b600f545f90819060ff16158061120b57506001600160a01b0385165f9081526009602052604090205460ff165b8061122d57506001600160a01b0384165f9081526009602052604090205460ff165b1561123957505f61055e565b6001600160a01b0385165f908152600e602052604090205460ff16156112845760015460649061127390600160a81b900460ff16856117b2565b61127d9190611813565b905061055e565b6001600160a01b0384165f908152600e602052604090205460ff161561055e576001546064906112be90600160a01b900460ff16856117b2565b6112c89190611813565b95945050505050565b305f908152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561137057305f818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b61137c816112d1565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113af576113af6118a4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611403576114036118a4565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac947906114489085905f908690309042906004016118b8565b5f604051808303815f87803b15801561145f575f80fd5b505af1158015611471573d5f803e3d5ffd5b505050505050565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156114b0573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b818110156114df578581018301518582016040015282016114c3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611370575f80fd5b5f8060408385031215611524575f80fd5b823561152f816114ff565b946020939093013593505050565b5f805f6060848603121561154f575f80fd5b833561155a816114ff565b9250602084013561156a816114ff565b929592945050506040919091013590565b803561ffff8116811461158c575f80fd5b919050565b5f80604083850312156115a2575f80fd5b6115ab8361157b565b91506115b96020840161157b565b90509250929050565b803560ff8116811461158c575f80fd5b5f80604083850312156115e3575f80fd5b6115ec836115c2565b91506115b9602084016115c2565b5f6020828403121561160a575f80fd5b81356108fc816114ff565b803563ffffffff8116811461158c575f80fd5b5f805f806080858703121561163b575f80fd5b61164485611615565b935061165260208601611615565b925061166060408601611615565b915061166e60608601611615565b905092959194509250565b5f806040838503121561168a575f80fd5b8235611695816114ff565b915060208301356116a5816114ff565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116fe57815f19048211156116e4576116e46116b0565b808516156116f157918102915b93841c93908002906116c9565b509250929050565b5f82611714575060016104a8565b8161172057505f6104a8565b816001811461173657600281146117405761175c565b60019150506104a8565b60ff841115611751576117516116b0565b50506001821b6104a8565b5060208310610133831016604e8410600b841016171561177f575081810a6104a8565b61178983836116c4565b805f190482111561179c5761179c6116b0565b029392505050565b5f6108fc60ff841683611706565b80820281158282048414176104a8576104a86116b0565b818103818111156104a8576104a86116b0565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261182d57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156104a8576104a86116b0565b60ff81811683821601908111156104a8576104a86116b0565b5f6020828403121561186e575f80fd5b81516108fc816114ff565b5f805f6060848603121561188b575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119065784516001600160a01b0316835293830193918301916001016118e1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec26f36f03b503d70beba672780062aa72797959f27d0a22865b248cec91c1e264736f6c63430008140033

Deployed Bytecode Sourcemap

1722:9530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:80;;;;;;;;;;-1:-1:-1;4078:5:0;;;;;;;;;;;;-1:-1:-1;;;4078:5:0;;;;4006:80;;;;;;;:::i;:::-;;;;;;;;4454:211;;;;;;;;;;-1:-1:-1;4454:211:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4454:211:0;1023:187:1;3912:88:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;3912:88:0;1215:177:1;4899:298:0;;;;;;;;;;-1:-1:-1;4899:298:0;;;;;:::i;:::-;;:::i;8899:71::-;;;;;;;;;;-1:-1:-1;8956:11:0;;-1:-1:-1;;;8956:11:0;;;;8899:71;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;8899:71:0;1858:184:1;3826:80:0;;;;;;;;;;-1:-1:-1;1896:1:0;3826:80;;9563:436;;;;;;;;;;-1:-1:-1;9563:436:0;;;;;:::i;:::-;;:::i;:::-;;8824:69;;;;;;;;;;-1:-1:-1;8880:10:0;;-1:-1:-1;;;8880:10:0;;;;8824:69;;8978:208;;;;;;;;;;-1:-1:-1;8978:208:0;;;;;:::i;:::-;;:::i;4182:115::-;;;;;;;;;;-1:-1:-1;4182:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;4276:18:0;4248:7;4276:18;;;:9;:18;;;;;;;4182:115;726:130;;;;;;;;;;;;;:::i;498:65::-;;;;;;;;;;-1:-1:-1;536:7:0;554:6;498:65;;-1:-1:-1;;;;;554:6:0;;;3288:51:1;;3276:2;3261:18;498:65:0;3142:203:1;4092:84:0;;;;;;;;;;-1:-1:-1;4166:7:0;;;;;;;;;;;;-1:-1:-1;;;4166:7:0;;;;4092:84;;9474:81;;;;;;;;;;-1:-1:-1;9544:8:0;;9474:81;;10007:267;;;;;;;;;;-1:-1:-1;10007:267:0;;;;;:::i;:::-;;:::i;4673:218::-;;;;;;;;;;-1:-1:-1;4673:218:0;;;;;:::i;:::-;;:::i;9387:81::-;;;;;;;;;;-1:-1:-1;9457:8:0;;9387:81;;9290:89;;;;;;;;;;-1:-1:-1;9367:9:0;;9290:89;;6303:179;;;;;;;;;;;;;:::i;4303:143::-;;;;;;;;;;-1:-1:-1;4303:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4415:19:0;;;4387:7;4415:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4303:143;5518:516;;;:::i;569:151::-;;;;;;;;;;-1:-1:-1;569:151:0;;;;;:::i;:::-;;:::i;9196:88::-;;;;;;;;;;-1:-1:-1;9268:13:0;;9196:88;;4454:211;4558:10;4529:4;4546:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4546:32:0;;;;;;;;;;:41;;;4603:37;4529:4;;4546:32;;4603:37;;;;4581:6;1361:25:1;;1349:2;1334:18;;1215:177;4603:37:0;;;;;;;;-1:-1:-1;4658:4:0;4454:211;;;;;:::o;3912:88::-;3967:7;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;;:8;:26;:::i;:::-;3978:19;;3912:88;:::o;4899:298::-;5002:4;5027:29;5045:10;5027:17;:29::i;:::-;5019:58;;;;-1:-1:-1;;;5019:58:0;;6467:2:1;5019:58:0;;;6449:21:1;6506:2;6486:18;;;6479:30;-1:-1:-1;;;6525:18:1;;;6518:46;6581:18;;5019:58:0;;;;;;;;;-1:-1:-1;;;;;5088:23:0;;;;;;:11;:23;;;;;;;;5112:10;5088:35;;;;;;;:45;;5127:6;;5088:23;:45;;5127:6;;5088:45;:::i;:::-;;;;-1:-1:-1;5151:43:0;;-1:-1:-1;5165:10:0;5177:8;5187:6;5151:13;:43::i;:::-;5144:50;4899:298;-1:-1:-1;;;;4899:298:0:o;9563:436::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;9662:16:::1;9715:4;9681:31;::::0;::::1;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;::::0;:8:::1;:26;:::i;:::-;9681:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;9722:1:::1;9681:42;:::i;:::-;9662:61;;9754:9;;9742:8;:21;;9734:44;;;::::0;-1:-1:-1;;;9734:44:0;;7650:2:1;9734:44:0::1;::::0;::::1;7632:21:1::0;7689:2;7669:18;;;7662:30;-1:-1:-1;;;7708:18:1;;;7701:40;7758:18;;9734:44:0::1;7448:334:1::0;9734:44:0::1;9789:9;:20:::0;;;9820::::1;9877:4;9843:31;::::0;::::1;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;::::0;:8:::1;:26;:::i;:::-;9843:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;9884:1:::1;9843:42;:::i;:::-;9820:65;;9920:13;;9904:12;:29;;9896:56;;;::::0;-1:-1:-1;;;9896:56:0;;7989:2:1;9896:56:0::1;::::0;::::1;7971:21:1::0;8028:2;8008:18;;;8001:30;-1:-1:-1;;;8047:18:1;;;8040:44;8101:18;;9896:56:0::1;7787:338:1::0;9896:56:0::1;9963:13;:28:::0;-1:-1:-1;;;9563:436:0:o;8978:208::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;9089:2:::1;9067:18;9077:8:::0;9067:7;:18:::1;:::i;:::-;:24;;;;9059:55;;;::::0;-1:-1:-1;;;9059:55:0;;8485:2:1;9059:55:0::1;::::0;::::1;8467:21:1::0;8524:2;8504:18;;;8497:30;-1:-1:-1;;;8543:18:1;;;8536:48;8601:18;;9059:55:0::1;8283:342:1::0;9059:55:0::1;9125:10;:20:::0;;-1:-1:-1;;;;9156:22:0;-1:-1:-1;;;9125:20:0::1;::::0;;::::1;;-1:-1:-1::0;;;;9156:22:0;;-1:-1:-1;;;9156:22:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8978:208::o;726:130::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;803:1:::1;786:19:::0;;-1:-1:-1;;;;;;786:19:0::1;::::0;;821:32:::1;::::0;3288:51:1;;;821:32:0::1;::::0;3276:2:1;3261:18;821:32:0::1;;;;;;;726:130::o:0;10007:267::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;10129:30:::1;::::0;;::::1;::::0;:21;::::1;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;::::0;:8:::1;:26;:::i;:::-;10129:21;;;;:::i;:::-;:30;;;;:::i;:::-;10118:8;:41:::0;10181:30:::1;::::0;;::::1;::::0;:21;::::1;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;::::0;:8:::1;:26;:::i;:::-;10181:21;;;;:::i;:::-;:30;;;;:::i;:::-;10170:8;:41:::0;;;10240:8:::1;::::0;-1:-1:-1;10230:18:0::1;10222:44;;;::::0;-1:-1:-1;;;10222:44:0;;8832:2:1;10222:44:0::1;::::0;::::1;8814:21:1::0;8871:2;8851:18;;;8844:30;-1:-1:-1;;;8890:18:1;;;8883:43;8943:18;;10222:44:0::1;8630:337:1::0;10222:44:0::1;10007:267:::0;;;;:::o;4673:218::-;4752:4;4777:29;4795:10;4777:17;:29::i;:::-;4769:58;;;;-1:-1:-1;;;4769:58:0;;6467:2:1;4769:58:0;;;6449:21:1;6506:2;6486:18;;;6479:30;-1:-1:-1;;;6525:18:1;;;6518:46;6581:18;;4769:58:0;6265:340:1;4769:58:0;4845:43;4859:10;4871:8;4881:6;4845:13;:43::i;:::-;4838:50;4673:218;-1:-1:-1;;;4673:218:0:o;6303:179::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;6391:3:::1;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;::::0;:8:::1;:26;:::i;:::-;6372:16;::::0;:1:::1;:16;:::i;:::-;:22;;;;:::i;:::-;6356:9;:38:::0;6441:3:::1;1956:13;1896:1;1956:2;:13;:::i;:::-;1944:26;::::0;:8:::1;:26;:::i;:::-;6422:16;::::0;:1:::1;:16;:::i;:::-;:22;;;;:::i;:::-;6406:13;:38:::0;6455:12:::1;:19:::0;;-1:-1:-1;;6455:19:0::1;6470:4;6455:19;::::0;;6303:179::o;5518:516::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;3110:7:::1;:14:::0;;-1:-1:-1;;3110:14:0::1;;;::::0;;5600:10:::2;::::0;-1:-1:-1;;;;;5600:10:0::2;:24:::0;5592:47:::2;;;::::0;-1:-1:-1;;;5592:47:0;;9174:2:1;5592:47:0::2;::::0;::::2;9156:21:1::0;9213:2;9193:18;;;9186:30;-1:-1:-1;;;9232:18:1;;;9225:40;9282:18;;5592:47:0::2;8972:334:1::0;5592:47:0::2;5659:12;::::0;::::2;;5658:13;5650:38;;;::::0;-1:-1:-1;;;5650:38:0;;9513:2:1;5650:38:0::2;::::0;::::2;9495:21:1::0;9552:2;9532:18;;;9525:30;-1:-1:-1;;;9571:18:1;;;9564:42;9623:18;;5650:38:0::2;9311:336:1::0;5650:38:0::2;5719:1;5707:9;:13;:40;;;;5746:1;5724:21;:23;5707:40;5699:59;;;::::0;-1:-1:-1;;;5699:59:0;;9854:2:1;5699:59:0::2;::::0;::::2;9836:21:1::0;9893:1;9873:18;;;9866:29;-1:-1:-1;;;9911:18:1;;;9904:36;9957:18;;5699:59:0::2;9652:329:1::0;5699:59:0::2;5795:4;5802:1;5777:24:::0;;;:9:::2;:24;::::0;;;;;5769:48:::2;;;::::0;-1:-1:-1;;;5769:48:0;;10188:2:1;5769:48:0::2;::::0;::::2;10170:21:1::0;10227:1;10207:18;;;10200:29;-1:-1:-1;;;10245:18:1;;;10238:39;10294:18;;5769:48:0::2;9986:332:1::0;5769:48:0::2;5859:16;;;;;;;;;-1:-1:-1::0;;;;;5859:16:0::2;-1:-1:-1::0;;;;;5859:24:0::2;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5841:77;::::0;-1:-1:-1;;;5841:77:0;;5906:4:::2;5841:77;::::0;::::2;10791:34:1::0;-1:-1:-1;;;;;5913:4:0::2;10861:15:1::0;;10841:18;;;10834:43;5841:56:0;;;::::2;::::0;::::2;::::0;10726:18:1;;5841:77:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5828:10;:90:::0;;-1:-1:-1;;;;;;5828:90:0::2;-1:-1:-1::0;;;;;5828:90:0;;;::::2;::::0;;;::::2;::::0;;5961:4:::2;-1:-1:-1::0;5943:24:0;;;:9:::2;:24;::::0;;;;;5929:62:::2;::::0;5969:21:::2;5929:13;:62::i;:::-;6008:10;::::0;-1:-1:-1;;;;;6008:10:0::2;6002:17;::::0;;;:5:::2;:17;::::0;;;;:24;;-1:-1:-1;;6002:24:0::2;6022:4;6002:24;::::0;;3139:7:::1;:15:::0;;-1:-1:-1;;3139:15:0::1;::::0;;5518:516::o;569:151::-;363:6;;-1:-1:-1;;;;;363:6:0;349:10;:20;341:57;;;;-1:-1:-1;;;341:57:0;;;;;;;:::i;:::-;653:6:::1;:17:::0;;-1:-1:-1;;;;;;653:17:0::1;-1:-1:-1::0;;;;;653:17:0;::::1;::::0;;::::1;::::0;;;687:30:::1;::::0;3288:51:1;;;687:30:0::1;::::0;3276:2:1;3261:18;687:30:0::1;;;;;;;569:151:::0;:::o;8020:290::-;8145:12;;8089:4;;;;8145:12;;8140:131;;;-1:-1:-1;8176:4:0;8140:131;;;-1:-1:-1;;;;;8203:19:0;;;;;;:7;:19;;;;;;;;:43;;;;-1:-1:-1;;;;;;8226:20:0;;;;;;:8;:20;;;;;;;;8203:43;8199:72;;;-1:-1:-1;8264:4:0;8291:11;8020:290;-1:-1:-1;;8020:290:0:o;6490:955::-;6581:4;-1:-1:-1;;;;;6606:20:0;;6598:59;;;;-1:-1:-1;;;6598:59:0;;11306:2:1;6598:59:0;;;11288:21:1;11345:2;11325:18;;;11318:30;11384:28;11364:18;;;11357:56;11430:18;;6598:59:0;11104:350:1;6598:59:0;6673:12;;;;6668:92;;-1:-1:-1;;;;;6697:15:0;;;;;;:7;:15;;;;;;;;:35;;;;-1:-1:-1;;;;;;6716:16:0;;;;;;:8;:16;;;;;;;;6697:35;6689:68;;;;-1:-1:-1;;;6689:68:0;;11661:2:1;6689:68:0;;;11643:21:1;11700:2;11680:18;;;11673:30;-1:-1:-1;;;11719:18:1;;;11712:50;11779:18;;6689:68:0;11459:344:1;6689:68:0;6776:7;;;;;;;6775:8;:27;;;;-1:-1:-1;;;;;;6787:15:0;;;;;;:5;:15;;;;;;;;6775:27;:49;;;;;6816:8;;6806:6;:18;;6775:49;6770:81;;;6828:20;:18;:20::i;:::-;-1:-1:-1;;;;;6868:23:0;;6886:4;6868:23;;;;:52;;-1:-1:-1;;;;;;6895:25:0;;6915:4;6895:25;;6868:52;:72;;;;-1:-1:-1;6934:6:0;;-1:-1:-1;;;;;6924:16:0;;;6934:6;;6924:16;;6868:72;6863:174;;;6967:38;6980:6;6988:8;6998:6;6967:12;:38::i;:::-;6959:65;;;;-1:-1:-1;;;6959:65:0;;12010:2:1;6959:65:0;;;11992:21:1;12049:2;12029:18;;;12022:30;-1:-1:-1;;;12068:18:1;;;12061:44;12122:18;;6959:65:0;11808:338:1;6959:65:0;7049:18;7070:39;7084:6;7092:8;7102:6;7070:13;:39::i;:::-;7049:60;-1:-1:-1;7120:23:0;7146:19;7049:60;7146:6;:19;:::i;:::-;-1:-1:-1;;;;;7179:15:0;;;;;;:7;:15;;;;;;7120:45;;-1:-1:-1;7179:15:0;;7176:53;;;7205:24;7214:15;7205:6;:24;:::i;:::-;7196:33;;7176:53;-1:-1:-1;;;;;7240:17:0;;;;;;:9;:17;;;;;:27;;7261:6;;7240:17;:27;;7261:6;;7240:27;:::i;:::-;;;;-1:-1:-1;;7296:4:0;7278:24;;;;:9;:24;;;;;:38;;7306:10;;7278:24;:38;;7306:10;;7278:38;:::i;:::-;;;;-1:-1:-1;;;;;;;7327:19:0;;;;;;:9;:19;;;;;:38;;7350:15;;7327:19;:38;;7350:15;;7327:38;:::i;:::-;;;;;;;;7398:8;-1:-1:-1;;;;;7381:34:0;7390:6;-1:-1:-1;;;;;7381:34:0;;7408:6;7381:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;7381:34:0;;;;;;;;-1:-1:-1;7433:4:0;;6490:955;-1:-1:-1;;;;;6490:955:0:o;6042:253::-;6130:28;6145:12;6130:14;:28::i;:::-;6169:16;;6261:7;;6169:118;;-1:-1:-1;;;6169:118:0;;6234:4;6169:118;;;12492:34:1;12542:18;;;12535:34;;;6169:16:0;12585:18:1;;;12578:34;;;12628:18;;;12621:34;-1:-1:-1;;;;;6261:7:0;;;12671:19:1;;;12664:44;6270:15:0;12724:19:1;;;12717:35;6169:16:0;;;:32;;6209:13;;12426:19:1;;6169:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6042:253;;:::o;10284:509::-;3110:7;:14;;-1:-1:-1;;3110:14:0;;;;;10392:4:::1;3110:14:::0;10374:24;;;:9:::1;:24;::::0;;;;;10436:8:::1;::::0;10414:30;::::1;::::0;::::1;::::0;:46:::1;;-1:-1:-1::0;10448:12:0::1;::::0;::::1;;10414:46;10409:377;;;10505:8;;10483:18;:30;10478:72;;-1:-1:-1::0;10539:8:0::1;::::0;10478:72:::1;10578:37;10596:18;10578:17;:37::i;:::-;10674:21;10713:23:::0;;10710:65:::1;;10740:32;10752:19;10740:11;:32::i;:::-;10463:323;10409:377;-1:-1:-1::0;3139:7:0;:15;;-1:-1:-1;;3139:15:0;;;10284:509::o;7453:559::-;7621:12;;7560:4;;7601;;7621:12;;:37;;;;-1:-1:-1;;;;;;7638:20:0;;;;;;:8;:20;;;;;;;;7637:21;7621:37;:60;;;;-1:-1:-1;;;;;;7663:18:0;;;;;;:8;:18;;;;;;;;7662:19;7621:60;7616:355;;;7721:9;;7704:14;:26;7699:261;;;-1:-1:-1;7772:5:0;7699:261;;;-1:-1:-1;;;;;7837:15:0;;;;;;:5;:15;;;;;;;;7836:16;:74;;;;-1:-1:-1;7896:13:0;;-1:-1:-1;;;;;7857:19:0;;;;;;:9;:19;;;;;;:36;;7879:14;;7857:36;:::i;:::-;:52;7836:74;7813:147;;;-1:-1:-1;7952:5:0;7988:16;7453:559;-1:-1:-1;;;;7453:559:0:o;8318:498::-;8483:12;;8419:7;;;;8483:12;;8482:13;;:36;;-1:-1:-1;;;;;;8499:19:0;;;;;;:7;:19;;;;;;;;8482:36;:58;;;-1:-1:-1;;;;;;8522:18:0;;;;;;:7;:18;;;;;;;;8482:58;8477:303;;;-1:-1:-1;8571:1:0;8477:303;;;-1:-1:-1;;;;;8596:17:0;;;;;;:5;:17;;;;;;;;8591:189;;;8653:10;;8666:3;;8644:19;;-1:-1:-1;;;8653:10:0;;;;8644:6;:19;:::i;:::-;:25;;;;:::i;:::-;8632:37;;8591:189;;;-1:-1:-1;;;;;8694:16:0;;;;;;:5;:16;;;;;;;;8689:91;;;8750:11;;8764:3;;8741:20;;-1:-1:-1;;;8750:11:0;;;;8741:6;:20;:::i;:::-;:26;;;;:::i;:::-;8729:38;8318:498;-1:-1:-1;;;;;8318:498:0:o;5205:305::-;5296:4;5276:26;;;;:11;:26;;;;;;;;2746:42;5276;;;;;;;;:57;-1:-1:-1;5271:232:0;;;5371:4;5351:26;;;;:11;:26;;;;;;;;2746:42;5351;;;;;;;;;;-1:-1:-1;;5351:62:0;;;;5433:58;;1361:25:1;;;2746:42:0;;5371:4;5433:58;;1334:18:1;5433:58:0;;;;;;;5271:232;5205:305;:::o;10801:343::-;10868:27;10883:11;10868:14;:27::i;:::-;10930:16;;;10944:1;10930:16;;;;;;;;10906:21;;10930:16;;;;;;;;;;-1:-1:-1;10930:16:0;10906:40;;10976:4;10957;10962:1;10957:7;;;;;;;;:::i;:::-;;;;;;:25;-1:-1:-1;;;;;10957:25:0;;;-1:-1:-1;;;;;10957:25:0;;;;;11003:4;10993;10998:1;10993:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10993:14:0;;;:7;;;;;;;;;:14;11019:16;;:117;;-1:-1:-1;;;11019:117:0;;:16;;;:67;;:117;;11087:11;;11019:16;;11101:4;;11114;;11120:15;;11019:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10857:287;10801:343;:::o;11152:97::-;11208:16;;:33;;-1:-1:-1;;;;;11208:16:0;;;;:33;;;;;11234:6;;11208:16;:33;:16;:33;11234:6;11208:16;:33;;;;;;;;;;;;;;;;;;;;;11152:97;:::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:159::-;2114:20;;2174:6;2163:18;;2153:29;;2143:57;;2196:1;2193;2186:12;2143:57;2047:159;;;:::o;2211:256::-;2277:6;2285;2338:2;2326:9;2317:7;2313:23;2309:32;2306:52;;;2354:1;2351;2344:12;2306:52;2377:28;2395:9;2377:28;:::i;:::-;2367:38;;2424:37;2457:2;2446:9;2442:18;2424:37;:::i;:::-;2414:47;;2211:256;;;;;:::o;2472:156::-;2538:20;;2598:4;2587:16;;2577:27;;2567:55;;2618:1;2615;2608:12;2633:252;2697:6;2705;2758:2;2746:9;2737:7;2733:23;2729:32;2726:52;;;2774:1;2771;2764:12;2726:52;2797:27;2814:9;2797:27;:::i;:::-;2787:37;;2843:36;2875:2;2864:9;2860:18;2843:36;:::i;2890:247::-;2949:6;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3057:9;3044:23;3076:31;3101:5;3076:31;:::i;3350:163::-;3417:20;;3477:10;3466:22;;3456:33;;3446:61;;3503:1;3500;3493:12;3518:401;3600:6;3608;3616;3624;3677:3;3665:9;3656:7;3652:23;3648:33;3645:53;;;3694:1;3691;3684:12;3645:53;3717:28;3735:9;3717:28;:::i;:::-;3707:38;;3764:37;3797:2;3786:9;3782:18;3764:37;:::i;:::-;3754:47;;3820:37;3853:2;3842:9;3838:18;3820:37;:::i;:::-;3810:47;;3876:37;3909:2;3898:9;3894:18;3876:37;:::i;:::-;3866:47;;3518:401;;;;;;;:::o;3924:388::-;3992:6;4000;4053:2;4041:9;4032:7;4028:23;4024:32;4021:52;;;4069:1;4066;4059:12;4021:52;4108:9;4095:23;4127:31;4152:5;4127:31;:::i;:::-;4177:5;-1:-1:-1;4234:2:1;4219:18;;4206:32;4247:33;4206:32;4247:33;:::i;:::-;4299:7;4289:17;;;3924:388;;;;;:::o;4577:127::-;4638:10;4633:3;4629:20;4626:1;4619:31;4669:4;4666:1;4659:15;4693:4;4690:1;4683:15;4709:422;4798:1;4841:5;4798:1;4855:270;4876:7;4866:8;4863:21;4855:270;;;4935:4;4931:1;4927:6;4923:17;4917:4;4914:27;4911:53;;;4944:18;;:::i;:::-;4994:7;4984:8;4980:22;4977:55;;;5014:16;;;;4977:55;5093:22;;;;5053:15;;;;4855:270;;;4859:3;4709:422;;;;;:::o;5136:806::-;5185:5;5215:8;5205:80;;-1:-1:-1;5256:1:1;5270:5;;5205:80;5304:4;5294:76;;-1:-1:-1;5341:1:1;5355:5;;5294:76;5386:4;5404:1;5399:59;;;;5472:1;5467:130;;;;5379:218;;5399:59;5429:1;5420:10;;5443:5;;;5467:130;5504:3;5494:8;5491:17;5488:43;;;5511:18;;:::i;:::-;-1:-1:-1;;5567:1:1;5553:16;;5582:5;;5379:218;;5681:2;5671:8;5668:16;5662:3;5656:4;5653:13;5649:36;5643:2;5633:8;5630:16;5625:2;5619:4;5616:12;5612:35;5609:77;5606:159;;;-1:-1:-1;5718:19:1;;;5750:5;;5606:159;5797:34;5822:8;5816:4;5797:34;:::i;:::-;5867:6;5863:1;5859:6;5855:19;5846:7;5843:32;5840:58;;;5878:18;;:::i;:::-;5916:20;;5136:806;-1:-1:-1;;;5136:806:1:o;5947:140::-;6005:5;6034:47;6075:4;6065:8;6061:19;6055:4;6034:47;:::i;6092:168::-;6165:9;;;6196;;6213:15;;;6207:22;;6193:37;6183:71;;6234:18;;:::i;6610:128::-;6677:9;;;6698:11;;;6695:37;;;6712:18;;:::i;6743:348::-;6945:2;6927:21;;;6984:2;6964:18;;;6957:30;7023:26;7018:2;7003:18;;6996:54;7082:2;7067:18;;6743:348::o;7096:217::-;7136:1;7162;7152:132;;7206:10;7201:3;7197:20;7194:1;7187:31;7241:4;7238:1;7231:15;7269:4;7266:1;7259:15;7152:132;-1:-1:-1;7298:9:1;;7096:217::o;7318:125::-;7383:9;;;7404:10;;;7401:36;;;7417:18;;:::i;8130:148::-;8218:4;8197:12;;;8211;;;8193:31;;8236:13;;8233:39;;;8252:18;;:::i;10323:251::-;10393:6;10446:2;10434:9;10425:7;10421:23;10417:32;10414:52;;;10462:1;10459;10452:12;10414:52;10494:9;10488:16;10513:31;10538:5;10513:31;:::i;12763:306::-;12851:6;12859;12867;12920:2;12908:9;12899:7;12895:23;12891:32;12888:52;;;12936:1;12933;12926:12;12888:52;12965:9;12959:16;12949:26;;13015:2;13004:9;13000:18;12994:25;12984:35;;13059:2;13048:9;13044:18;13038:25;13028:35;;12763:306;;;;;:::o;13206:127::-;13267:10;13262:3;13258:20;13255:1;13248:31;13298:4;13295:1;13288:15;13322:4;13319:1;13312:15;13338:980;13600:4;13648:3;13637:9;13633:19;13679:6;13668:9;13661:25;13705:2;13743:6;13738:2;13727:9;13723:18;13716:34;13786:3;13781:2;13770:9;13766:18;13759:31;13810:6;13845;13839:13;13876:6;13868;13861:22;13914:3;13903:9;13899:19;13892:26;;13953:2;13945:6;13941:15;13927:29;;13974:1;13984:195;13998:6;13995:1;13992:13;13984:195;;;14063:13;;-1:-1:-1;;;;;14059:39:1;14047:52;;14154:15;;;;14119:12;;;;14095:1;14013:9;13984:195;;;-1:-1:-1;;;;;;;14235:32:1;;;;14230:2;14215:18;;14208:60;-1:-1:-1;;;14299:3:1;14284:19;14277:35;14196:3;13338:980;-1:-1:-1;;;13338:980:1:o

Swarm Source

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