ETH Price: $3,280.99 (+0.48%)
Gas: 17 Gwei

Token

CLIFFNOBI (CLIFFNOBI)
 

Overview

Max Total Supply

100,000,000 CLIFFNOBI

Holders

180

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
27,793.901493027 CLIFFNOBI

Value
$0.00
0x17ddbd78108eca6f356b97a9d3d490fbb049c289
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x4F7E0934...5b66F8F60
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CLIFFNOBI

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-15
*/

// SPDX-License-Identifier: MIT

/*      WAGMI

//TELEGRAM : https://t.me/cliffnobiportal

// WEBSITE : www.cliffnobi.net

// TWITTER : https://twitter.com/Cliffnobi

*/
pragma solidity 0.8.7;

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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 getOwner() external view returns (address);
  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 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function factory() external view returns (address);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() 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 IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract CLIFFNOBI is Context, IERC20 {
    // Ownership moved to in-contract for customizability.
    address private _owner;

    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _isSniperOrBlacklisted;
    mapping (address => bool) private _liquidityHolders;

    uint256 private startingSupply = 100_000_000;

    string private _name = "CLIFFNOBI";
    string private _symbol = "CLIFFNOBI";

    uint256 public _buyFee = 1250;
    uint256 public _sellFee = 2000;
    uint256 public _transferFee = 2000;

    uint256 constant public maxBuyTaxes = 1250;
    uint256 constant public maxSellTaxes = 2000;
    uint256 constant public maxTransferTaxes = 2000;
    
   // ratios
    uint256 private _liquidityRatio = 300;
    uint256 private _marketingRatio = 500;
    uint256 private _devRatio = 300;
    uint256 private _burnRatio = 150;
    // ratios 


    uint256 private _liquidityWalletRatios =  _devRatio + _liquidityRatio + _marketingRatio;
    uint256 private _WalletRatios = _devRatio + _marketingRatio;

    uint256 private constant masterTaxDivisor = 10000;
    uint256 private constant MAX = ~uint256(0);
    uint8 constant private _decimals = 9;
 
    uint256 private _tTotal = startingSupply * 10**_decimals;
    uint256 private _tFeeTotal;

    IUniswapV2Router02 public dexRouter;
    address public lpPair;

    // UNI ROUTER
    address constant private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD; // Receives tokens, deflates supply, increases price floor.
    
    address payable private _marketingWallet = payable(0xa7Dd8a34a14E11730D9C1a9d974af03391A14ACf);
    address payable private _Dev1Wallet = payable(0xeA448a9d2dFa0e2610eb47d62eED61D0301b9207);
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    
    uint256 private maxTxPercent = 35;
    uint256 private maxTxDivisor = 10_000;
    uint256 public _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor;
    
    uint256 private maxWalletPercent = 70;
    uint256 private maxWalletDivisor = 10_000;
    uint256 public _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor;
    
    uint256 private swapThreshold = (_tTotal * 5) / 10_000;
    uint256 private swapAmount = (_tTotal * 5) / 1_000;

    bool private sniperProtection = true;
    bool public _hasLiqBeenAdded = false;
    uint256 private _liqAddStatus = 0;
    uint256 private _liqAddBlock = 0;
    uint256 private _liqAddStamp = 0;
    uint256 private _initialLiquidityAmount = 0; // make constant
    uint256 private snipeBlockAmt = 0;
    uint256 public snipersCaught = 0;
    bool private sameBlockActive = true;
    mapping (address => uint256) private lastTrade;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event SniperCaught(address sniperAddress);
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Caller != owner.");
        _;
    }
    
    constructor () payable {
        _tOwned[_msgSender()] = _tTotal;

        // Set the owner.
        _owner = msg.sender;

        dexRouter = IUniswapV2Router02(_routerAddress);
        lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        _allowances[address(this)][address(dexRouter)] = type(uint256).max;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[owner()] = true;

        // Approve the owner for Uniswap, timesaver.
        _approve(_msgSender(), _routerAddress, _tTotal);

        // Event regarding the tTotal transferred to the _msgSender.
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and recnouncements.
    // This allows for removal of ownership privelages from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner() {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (_marketingWallet == payable(_owner))
            _marketingWallet = payable(newOwner);
        
        _allowances[_owner][newOwner] = balanceOf(_owner);
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
        
    }

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

    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveMax(address spender) public returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function setNewRouter(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter);
        address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled == false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 1 weeks, "One week cooldown.");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function isSniperOrBlacklisted(address account) public view returns (bool) {
        return _isSniperOrBlacklisted[account];
    }

    function isProtected(uint256 rInitializer) external onlyOwner {
        require (_liqAddStatus == 0, "Error.");
        _liqAddStatus = rInitializer;
        snipeBlockAmt = 2;
    }

    function setBlacklistEnabled(address account, bool enabled) external onlyOwner() {
        _isSniperOrBlacklisted[account] = enabled;
    }

    function setProtectionSettings(bool antiSnipe, bool antiBlock) external onlyOwner() {
        sniperProtection = antiSnipe;
        sameBlockActive = antiBlock;
    }

    function setRatios(uint256 liquidity, uint256 marketing, uint256 dev1, uint256 burnRatio) external onlyOwner {
        require ( (liquidity + marketing + dev1 + burnRatio) == 1250, "Must add up to 1000");
        _liquidityRatio = liquidity;
        _marketingRatio = marketing;
        _devRatio = dev1;
        _burnRatio = burnRatio;
    }

    function setTaxes(uint256 buyFee, uint256 sellFee, uint256 transferFee) external onlyOwner {
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _buyFee = buyFee;
        _sellFee = sellFee;
        _transferFee = transferFee;
    }

    function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply.");
        _maxTxAmount = check;
    }

    function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply.");
        _maxWalletSize = check;

    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
    }

    function setWallets(address payable marketingWallet, address payable Dev1Wallet) external onlyOwner {
        _marketingWallet = payable(marketingWallet);
        _Dev1Wallet = payable(Dev1Wallet);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    mapping (address => bool) public isExcludedFromMaxWalletRestrictions;

    function excludeFromWalletRestrictions(address excludedAddress) public onlyOwner{
        isExcludedFromMaxWalletRestrictions[excludedAddress] = true;
    }

    function revokeExcludedFromWalletRestrictions(address excludedAddress) public onlyOwner{
        isExcludedFromMaxWalletRestrictions[excludedAddress] = false;
    }


    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: Zero address.");
        require(to != address(0), "ERC20: Zero address.");
        require(amount > 0, "Must >0.");
        if(_hasLimits(from, to)) {
            if (sameBlockActive) {
                if (lpPairs[from]){
                    require(lastTrade[to] != block.number);
                    lastTrade[to] = block.number;
                } else {
                    require(lastTrade[from] != block.number);
                    lastTrade[from] = block.number;
                }
            }

            if(!(isExcludedFromMaxWalletRestrictions[from] || isExcludedFromMaxWalletRestrictions[to])){
                if(lpPairs[from] || lpPairs[to]){
                    require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                }
                if(to != _routerAddress && !lpPairs[to]) {
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                }
            }


        }

        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        if (lpPairs[to]) {
            if (!inSwapAndLiquify
                && swapAndLiquifyEnabled
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    swapAndLiquify(contractTokenBalance);
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        if (_liquidityRatio + _marketingRatio + _devRatio == 0)
            return;
        uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / _liquidityWalletRatios) / 2;

        uint256 toSwapForEth = contractTokenBalance - toLiquify;
        swapTokensForEth(toSwapForEth);

        uint256 currentBalance = address(this).balance;
        uint256 liquidityBalance = ((currentBalance * _liquidityRatio) / _liquidityWalletRatios) / 2;

        if (toLiquify > 0) {
            addLiquidity(toLiquify, liquidityBalance);
            emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify);
        }
        if (contractTokenBalance - toLiquify > 0) {
            _marketingWallet.transfer(((currentBalance - liquidityBalance) * _marketingRatio) / (_WalletRatios));
            _Dev1Wallet.transfer(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            DEAD,
            block.timestamp
        );
    }

    function _checkLiquidityAdd(address from, address to) private {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            if (snipeBlockAmt != 2) {
                _liqAddBlock = block.number + 5000;
            } else {
                _liqAddBlock = block.number;
            }

            _liquidityHolders[from] = true;
            _hasLiqBeenAdded = true;
            _liqAddStamp = block.timestamp;

            swapAndLiquifyEnabled = true;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

    function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) {
        if (sniperProtection){
            if (isSniperOrBlacklisted(from) || isSniperOrBlacklisted(to)) {
                revert("Sniper rejected.");
            }

            if (!_hasLiqBeenAdded) {
                _checkLiquidityAdd(from, to);
                if (!_hasLiqBeenAdded && _hasLimits(from, to)) {
                    revert("Only owner can transfer at this time.");
                }
            } else {
                if (_liqAddBlock > 0 
                    && lpPairs[from] 
                    && _hasLimits(from, to)
                ) {
                    if (block.number - _liqAddBlock < snipeBlockAmt) {
                        _isSniperOrBlacklisted[to] = true;
                        snipersCaught ++;
                        emit SniperCaught(to);
                    }
                }
            }
        }

        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount;
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;

        if (from == lpPair) {
            currentFee = _buyFee;
        } else if (to == lpPair) {
            currentFee = _sellFee;
        } else {
            currentFee = _transferFee;
        }

        if (_hasLimits(from, to)){
            if (_liqAddStatus == 0 || _liqAddStatus != 69420) {
                revert();
            }
        }
        uint256 burnAmt = (amount * currentFee * _burnRatio) / (_burnRatio + _liquidityWalletRatios) / masterTaxDivisor;
        uint256 feeAmount = (amount * currentFee / masterTaxDivisor) - burnAmt;
        _tOwned[DEAD] += burnAmt;
        _tOwned[address(this)] += (feeAmount);
        emit Transfer(from, DEAD, burnAmt);
        emit Transfer(from, address(this), feeAmount);
        return amount - feeAmount - burnAmt;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"excludeFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rInitializer","type":"uint256"}],"name":"isProtected","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniperOrBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"revokeExcludedFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"antiSnipe","type":"bool"},{"internalType":"bool","name":"antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev1","type":"uint256"},{"internalType":"uint256","name":"burnRatio","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWallet","type":"address"},{"internalType":"address payable","name":"Dev1Wallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60006003556305f5e10060085560c06040526009608081905268434c4946464e4f424960b81b60a09081526200003791908162000690565b5060408051808201909152600980825268434c4946464e4f424960b81b60209092019182526200006a91600a9162000690565b506104e2600b556107d0600c556107d0600d5561012c600e556101f4600f5561012c6010556096601155600f54600e54601054620000a9919062000768565b620000b5919062000768565b601255600f54601054620000ca919062000768565b601355620000db6009600a620007ef565b600854620000ea9190620008b0565b6014819055601880546001600160a01b03191673a7dd8a34a14e11730d9c1a9d974af03391a14acf17905560198054600161ff0160a01b03191673ea448a9d2dfa0e2610eb47d62eed61d0301b92071790556023601a819055612710601b81905591620001589190620008b0565b62000164919062000783565b601c556046601d55612710601e55601e54601d54601454620001879190620008b0565b62000193919062000783565b601f556127106014546005620001aa9190620008b0565b620001b6919062000783565b6020556103e86014546005620001cd9190620008b0565b620001d9919062000783565b6021556022805461ffff1916600190811790915560006023819055602481905560258190556026819055602781905560288190556029805460ff1916831790556014549190620002263390565b6001600160a01b0316815260208082019290925260409081016000908120939093558254336001600160a01b03199182161790935560168054737a250d5630b4cf539739df2c5dacb4c659f2488d941684179055805163c45a015560e01b8152905163c45a015592600480840193919291829003018186803b158015620002ac57600080fd5b505afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e7919062000736565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034457600080fd5b505afa15801562000359573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037f919062000736565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620003c757600080fd5b505af1158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062000736565b601780546001600160a01b0319166001600160a01b039283169081179091556000908152600260209081526040808320805460ff191660019081179091553084526004835281842060165490951684529390915281206000199055600590620004736000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526005909252812080548316600190811790915561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549093168117909255600790620004fb6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556200054e6200052f3390565b601454737a250d5630b4cf539739df2c5dacb4c659f2488d906200058f565b60145460405190815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a362000925565b6001600160a01b038316620005e15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b0382166200062f5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620005d8565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b8280546200069e90620008d2565b90600052602060002090601f016020900481019282620006c257600085556200070d565b82601f10620006dd57805160ff19168380011785556200070d565b828001600101855582156200070d579182015b828111156200070d578251825591602001919060010190620006f0565b506200071b9291506200071f565b5090565b5b808211156200071b576000815560010162000720565b6000602082840312156200074957600080fd5b81516001600160a01b03811681146200076157600080fd5b9392505050565b600082198211156200077e576200077e6200090f565b500190565b600082620007a157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620007e7578160001904821115620007cb57620007cb6200090f565b80851615620007d957918102915b93841c9390800290620007ab565b509250929050565b60006200076160ff8416836000826200080b57506001620008aa565b816200081a57506000620008aa565b81600181146200083357600281146200083e576200085e565b6001915050620008aa565b60ff8411156200085257620008526200090f565b50506001821b620008aa565b5060208310610133831016604e8410600b841016171562000883575081810a620008aa565b6200088f8383620007a6565b8060001904821115620008a657620008a66200090f565b0290505b92915050565b6000816000190483118215151615620008cd57620008cd6200090f565b500290565b600181811c90821680620008e757607f821691505b602082108114156200090957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612f0780620009356000396000f3fe6080604052600436106103175760003560e01c8063715018a61161019a578063b1b08f71116100e1578063dd62ed3e1161008a578063eafb5a3c11610064578063eafb5a3c146108bb578063eec2744e146108db578063fb78680d146108fb57600080fd5b8063dd62ed3e1461083f578063e79d416014610885578063e9dae5ed1461089b57600080fd5b8063c49b9a80116100bb578063c49b9a80146107df578063ce8b79c9146107ff578063d3f6a1571461081f57600080fd5b8063b1b08f71146107a9578063b3d514fb146107a9578063bc1323e8146107bf57600080fd5b80638c7321ad1161014357806395d89b411161011d57806395d89b4114610754578063a457c2d714610769578063a9059cbb1461078957600080fd5b80638c7321ad1461070e5780638da5cb5b146106b75780638f9a55c01461073e57600080fd5b806381c6f11b1161017457806381c6f11b14610697578063893d20e8146106b757806389fd9bc1146106d557600080fd5b8063715018a61461064c5780637d1db4a51461066157806380c581d11461067757600080fd5b80633df9a8d21161025e5780634fbee19311610207578063590f897e116101e1578063590f897e146105e0578063590ffdce146105f657806370a082311461061657600080fd5b80634fbee1931461056857806350a8e016146105a1578063571ac8b0146105c057600080fd5b8063452ed4f111610238578063452ed4f1146105075780634a74bb02146105275780634fb2e45d1461054857600080fd5b80633df9a8d2146104bb5780633f3cf56c146104d157806340b9a54b146104f157600080fd5b806318160ddd116102c05780632b28fc7a1161029a5780632b28fc7a14610469578063313ce5671461047f578063395093511461049b57600080fd5b806318160ddd1461040a57806323b872dd14610429578063260039571461044957600080fd5b80630758d924116102f15780630758d9241461039a578063095ea7b3146103ba5780631793fe4e146103ea57600080fd5b806303fd2a4514610323578063044df7261461035657806306fdde031461037857600080fd5b3661031e57005b600080fd5b34801561032f57600080fd5b5061033961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561036257600080fd5b50610376610371366004612c1e565b61091b565b005b34801561038457600080fd5b5061038d61098d565b60405161034d9190612d01565b3480156103a657600080fd5b50601654610339906001600160a01b031681565b3480156103c657600080fd5b506103da6103d5366004612bd7565b610a1f565b604051901515815260200161034d565b3480156103f657600080fd5b50610376610405366004612ccf565b610a35565b34801561041657600080fd5b506014545b60405190815260200161034d565b34801561043557600080fd5b506103da610444366004612b61565b610b06565b34801561045557600080fd5b50610376610464366004612c53565b610b7e565b34801561047557600080fd5b5061041b6104e281565b34801561048b57600080fd5b506040516009815260200161034d565b3480156104a757600080fd5b506103da6104b6366004612bd7565b610c5c565b3480156104c757600080fd5b5061041b600d5481565b3480156104dd57600080fd5b506103766104ec366004612c53565b610c98565b3480156104fd57600080fd5b5061041b600b5481565b34801561051357600080fd5b50601754610339906001600160a01b031681565b34801561053357600080fd5b506019546103da90600160a81b900460ff1681565b34801561055457600080fd5b50610376610563366004612aee565b610d76565b34801561057457600080fd5b506103da610583366004612aee565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156105ad57600080fd5b506022546103da90610100900460ff1681565b3480156105cc57600080fd5b506103da6105db366004612aee565b610fcd565b3480156105ec57600080fd5b5061041b600c5481565b34801561060257600080fd5b50610376610611366004612ba2565b610fe1565b34801561062257600080fd5b5061041b610631366004612aee565b6001600160a01b031660009081526001602052604090205490565b34801561065857600080fd5b50610376611059565b34801561066d57600080fd5b5061041b601c5481565b34801561068357600080fd5b50610376610692366004612ba2565b6110fb565b3480156106a357600080fd5b506103766106b2366004612c3a565b611202565b3480156106c357600080fd5b506000546001600160a01b0316610339565b3480156106e157600080fd5b506103da6106f0366004612aee565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561071a57600080fd5b506103da610729366004612aee565b602b6020526000908152604090205460ff1681565b34801561074a57600080fd5b5061041b601f5481565b34801561076057600080fd5b5061038d6112a9565b34801561077557600080fd5b506103da610784366004612bd7565b6112b8565b34801561079557600080fd5b506103da6107a4366004612bd7565b6112ef565b3480156107b557600080fd5b5061041b6107d081565b3480156107cb57600080fd5b506103766107da366004612aee565b611306565b3480156107eb57600080fd5b506103766107fa366004612c03565b611374565b34801561080b57600080fd5b5061037661081a366004612aee565b611419565b34801561082b57600080fd5b5061037661083a366004612b28565b61148a565b34801561084b57600080fd5b5061041b61085a366004612b28565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561089157600080fd5b5061041b60285481565b3480156108a757600080fd5b506103766108b6366004612c75565b611505565b3480156108c757600080fd5b506103766108d6366004612aee565b6115ce565b3480156108e757600080fd5b506103766108f6366004612ba2565b6119a7565b34801561090757600080fd5b50610376610916366004612ccf565b611a1f565b6000546001600160a01b0316331461096d5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b60448201526064015b60405180910390fd5b6022805492151560ff199384161790556029805491151591909216179055565b60606009805461099c90612e37565b80601f01602080910402602001604051908101604052809291908181526020018280546109c890612e37565b8015610a155780601f106109ea57610100808354040283529160200191610a15565b820191906000526020600020905b8154815290600101906020018083116109f857829003601f168201915b5050505050905090565b6000610a2c338484611aab565b50600192915050565b6000546001600160a01b03163314610a825760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b8082610a8e8587612dc7565b610a989190612dc7565b610aa29190612dc7565b6104e214610af25760405162461bcd60e51b815260206004820152601360248201527f4d7573742061646420757020746f2031303030000000000000000000000000006044820152606401610964565b600e93909355600f91909155601055601155565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610b6b576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610b65908490612e20565b90915550505b610b76848484611bb8565b949350505050565b6000546001600160a01b03163314610bcb5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60008183601454610bdc9190612e01565b610be69190612ddf565b905061012c601454610bf89190612ddf565b811015610c555760405162461bcd60e51b815260206004820152602560248201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756044820152643838363c9760d91b6064820152608401610964565b601f555050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a2c918590610c93908690612dc7565b611aab565b6000546001600160a01b03163314610ce55760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60008183601454610cf69190612e01565b610d009190612ddf565b905061012c601454610d129190612ddf565b811015610d6f5760405162461bcd60e51b815260206004820152602560248201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756044820152643838363c9760d91b6064820152608401610964565b601c555050565b6000546001600160a01b03163314610dc35760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b038116610e3f5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610964565b6001600160a01b03811661dead1415610ec05760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610964565b60008054610ed9916001600160a01b0390911690610fe1565b610ee4816001610fe1565b6000546018546001600160a01b0390811691161415610f1957601880546001600160a01b0319166001600160a01b0383161790555b600080546001600160a01b03908116825260016020818152604080852054600483528186208786168752835281862055845490931684525290205415610f8257600080546001600160a01b03168082526001602052604090912054610f8091908390611bb8565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610fdb82600019610a1f565b92915050565b6000546001600160a01b0316331461102e5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110a65760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b600080546110bf916001600160a01b0390911690610fe1565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633146111485760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b8061116f57506001600160a01b03166000908152600260205260409020805460ff19169055565b600354156111d65762093a80600354426111899190612e20565b116111d65760405162461bcd60e51b815260206004820152601260248201527f4f6e65207765656b20636f6f6c646f776e2e00000000000000000000000000006044820152606401610964565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6000546001600160a01b0316331461124f5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6023541561129f5760405162461bcd60e51b815260206004820152600660248201527f4572726f722e00000000000000000000000000000000000000000000000000006044820152606401610964565b6023556002602755565b6060600a805461099c90612e37565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a2c918590610c93908690612e20565b60006112fc338484611bb8565b5060019392505050565b6000546001600160a01b031633146113535760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03166000908152602b60205260409020805460ff19169055565b6000546001600160a01b031633146113c15760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061140e90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114665760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03166000908152602b60205260409020805460ff19166001179055565b6000546001600160a01b031633146114d75760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b6000546001600160a01b031633146115525760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6104e2831115801561156657506107d08211155b801561157457506107d08111155b6115c05760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610964565b600b92909255600c55600d55565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561165b57600080fd5b505afa15801561166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116939190612b0b565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117139190612b0b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561177157600080fd5b505afa158015611785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190612b0b565b90506001600160a01b03811661196757816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f257600080fd5b505afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a9190612b0b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561187257600080fd5b505afa158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa9190612b0b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561190a57600080fd5b505af115801561191e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119429190612b0b565b601780546001600160a01b0319166001600160a01b0392909216919091179055611983565b601780546001600160a01b0319166001600160a01b0383161790555b50601680546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146119f45760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a6c5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b8284601454611a7b9190612e01565b611a859190612ddf565b6020556014548190611a98908490612e01565b611aa29190612ddf565b60215550505050565b6001600160a01b038316611b015760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610964565b6001600160a01b038216611b575760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610964565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611c105760405162461bcd60e51b815260206004820152601460248201527f45524332303a205a65726f20616464726573732e0000000000000000000000006044820152606401610964565b6001600160a01b038316611c665760405162461bcd60e51b815260206004820152601460248201527f45524332303a205a65726f20616464726573732e0000000000000000000000006044820152606401610964565b60008211611cb65760405162461bcd60e51b815260206004820152600860248201527f4d757374203e302e0000000000000000000000000000000000000000000000006044820152606401610964565b611cc08484611ff3565b15611f165760295460ff1615611d77576001600160a01b03841660009081526002602052604090205460ff1615611d36576001600160a01b0383166000908152602a6020526040902054431415611d1657600080fd5b6001600160a01b0383166000908152602a60205260409020439055611d77565b6001600160a01b0384166000908152602a6020526040902054431415611d5b57600080fd5b6001600160a01b0384166000908152602a602052604090204390555b6001600160a01b0384166000908152602b602052604090205460ff1680611db657506001600160a01b0383166000908152602b602052604090205460ff165b611f16576001600160a01b03841660009081526002602052604090205460ff1680611df957506001600160a01b03831660009081526002602052604090205460ff165b15611e5057601c54821115611e505760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610964565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590611e9657506001600160a01b03831660009081526002602052604090205460ff16155b15611f1657601f5482611ebe856001600160a01b031660009081526001602052604090205490565b611ec89190612dc7565b1115611f165760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610964565b6001600160a01b03841660009081526005602052604090205460019060ff1680611f5857506001600160a01b03841660009081526005602052604090205460ff165b15611f61575060005b6001600160a01b03841660009081526002602052604090205460ff1615611fde57601954600160a01b900460ff16158015611fa55750601954600160a81b900460ff165b15611fde573060009081526001602052604081205490506020548110611fdc576021548110611fd357506021545b611fdc816120b1565b505b611fea85858584612271565b95945050505050565b600080546001600160a01b0384811691161480159061202057506000546001600160a01b03838116911614155b801561204557506001600160a01b03821660009081526007602052604090205460ff16155b801561206a57506001600160a01b03831660009081526007602052604090205460ff16155b801561208157506001600160a01b03821661dead14155b801561209557506001600160a01b03821615155b80156120aa57506001600160a01b0383163014155b9392505050565b6019805460ff60a01b1916600160a01b179055601054600f54600e546120d79190612dc7565b6120e19190612dc7565b6120ea57612261565b60006002601254600e54846120ff9190612e01565b6121099190612ddf565b6121139190612ddf565b905060006121218284612e20565b905061212c81612555565b600047905060006002601254600e54846121469190612e01565b6121509190612ddf565b61215a9190612ddf565b905083156121ae5761216c84826126d7565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b60006121ba8587612e20565b111561225c57601854601354600f546001600160a01b03909216916108fc91906121e48587612e20565b6121ee9190612e01565b6121f89190612ddf565b6040518115909202916000818181858888f19350505050158015612220573d6000803e3d6000fd5b506019546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561225a573d6000803e3d6000fd5b505b505050505b506019805460ff60a01b19169055565b60225460009060ff1615612482576001600160a01b03851660009081526006602052604090205460ff16806122be57506001600160a01b03841660009081526006602052604090205460ff165b1561230b5760405162461bcd60e51b815260206004820152601060248201527f536e697065722072656a65637465642e000000000000000000000000000000006044820152606401610964565b602254610100900460ff166123b9576123248585612799565b602254610100900460ff1615801561234157506123418585611ff3565b156123b45760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610964565b612482565b60006024541180156123e357506001600160a01b03851660009081526002602052604090205460ff165b80156123f457506123f48585611ff3565b15612482576027546024546124099043612e20565b1015612482576001600160a01b0384166000908152600660205260408120805460ff19166001179055602880549161244083612e72565b90915550506040516001600160a01b03851681527f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59060200160405180910390a15b6001600160a01b038516600090815260016020526040812080548592906124aa908490612e20565b9091555060009050826124bd57836124c8565b6124c88686866128f0565b6001600160a01b0386166000908152600160205260408120805492935083929091906124f5908490612dc7565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161254191815260200190565b60405180910390a350600195945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061258a5761258a612ea3565b6001600160a01b03928316602091820292909201810191909152601654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156125f757600080fd5b505afa15801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f9190612b0b565b8160018151811061264257612642612ea3565b6001600160a01b0392831660209182029290920101526016546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac947906126a1908590600090869030904290600401612d56565b600060405180830381600087803b1580156126bb57600080fd5b505af11580156126cf573d6000803e3d6000fd5b505050505050565b6016546040517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127929190612ca1565b5050505050565b602254610100900460ff16156128175760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610964565b6128218282611ff3565b15801561283b57506017546001600160a01b038281169116145b156111fe5760275460021461285e5761285643611388612dc7565b602455612863565b436024555b6001600160a01b03821660009081526007602052604090819020805460ff191660019081179091556022805461ff001916610100179055426025556019805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159916128e491901515815260200190565b60405180910390a15050565b60175460009081906001600160a01b03868116911614156129145750600b54612938565b6017546001600160a01b03858116911614156129335750600c54612938565b50600d545b6129428585611ff3565b1561296557602354158061295b575060235462010f2c14155b1561296557600080fd5b600061271060125460115461297a9190612dc7565b6011546129878588612e01565b6129919190612e01565b61299b9190612ddf565b6129a59190612ddf565b90506000816127106129b78588612e01565b6129c19190612ddf565b6129cb9190612e20565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d80549293508492909190612a0e908490612dc7565b90915550503060009081526001602052604081208054839290612a32908490612dc7565b909155505060405182815261dead906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a381612ac48287612e20565b612ace9190612e20565b979650505050505050565b80358015158114612ae957600080fd5b919050565b600060208284031215612b0057600080fd5b81356120aa81612eb9565b600060208284031215612b1d57600080fd5b81516120aa81612eb9565b60008060408385031215612b3b57600080fd5b8235612b4681612eb9565b91506020830135612b5681612eb9565b809150509250929050565b600080600060608486031215612b7657600080fd5b8335612b8181612eb9565b92506020840135612b9181612eb9565b929592945050506040919091013590565b60008060408385031215612bb557600080fd5b8235612bc081612eb9565b9150612bce60208401612ad9565b90509250929050565b60008060408385031215612bea57600080fd5b8235612bf581612eb9565b946020939093013593505050565b600060208284031215612c1557600080fd5b6120aa82612ad9565b60008060408385031215612c3157600080fd5b612bc083612ad9565b600060208284031215612c4c57600080fd5b5035919050565b60008060408385031215612c6657600080fd5b50508035926020909101359150565b600080600060608486031215612c8a57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612cb657600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612ce557600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015612d2e57858101830151858201604001528201612d12565b81811115612d40576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612da65784516001600160a01b031683529383019391830191600101612d81565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612dda57612dda612e8d565b500190565b600082612dfc57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612e1b57612e1b612e8d565b500290565b600082821015612e3257612e32612e8d565b500390565b600181811c90821680612e4b57607f821691505b60208210811415612e6c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e8657612e86612e8d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612ece57600080fd5b5056fea2646970667358221220e99b9026e4cfc5a634a71d8ecc17c49210d32f200a9f8bed71d1022215e25e5e64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103175760003560e01c8063715018a61161019a578063b1b08f71116100e1578063dd62ed3e1161008a578063eafb5a3c11610064578063eafb5a3c146108bb578063eec2744e146108db578063fb78680d146108fb57600080fd5b8063dd62ed3e1461083f578063e79d416014610885578063e9dae5ed1461089b57600080fd5b8063c49b9a80116100bb578063c49b9a80146107df578063ce8b79c9146107ff578063d3f6a1571461081f57600080fd5b8063b1b08f71146107a9578063b3d514fb146107a9578063bc1323e8146107bf57600080fd5b80638c7321ad1161014357806395d89b411161011d57806395d89b4114610754578063a457c2d714610769578063a9059cbb1461078957600080fd5b80638c7321ad1461070e5780638da5cb5b146106b75780638f9a55c01461073e57600080fd5b806381c6f11b1161017457806381c6f11b14610697578063893d20e8146106b757806389fd9bc1146106d557600080fd5b8063715018a61461064c5780637d1db4a51461066157806380c581d11461067757600080fd5b80633df9a8d21161025e5780634fbee19311610207578063590f897e116101e1578063590f897e146105e0578063590ffdce146105f657806370a082311461061657600080fd5b80634fbee1931461056857806350a8e016146105a1578063571ac8b0146105c057600080fd5b8063452ed4f111610238578063452ed4f1146105075780634a74bb02146105275780634fb2e45d1461054857600080fd5b80633df9a8d2146104bb5780633f3cf56c146104d157806340b9a54b146104f157600080fd5b806318160ddd116102c05780632b28fc7a1161029a5780632b28fc7a14610469578063313ce5671461047f578063395093511461049b57600080fd5b806318160ddd1461040a57806323b872dd14610429578063260039571461044957600080fd5b80630758d924116102f15780630758d9241461039a578063095ea7b3146103ba5780631793fe4e146103ea57600080fd5b806303fd2a4514610323578063044df7261461035657806306fdde031461037857600080fd5b3661031e57005b600080fd5b34801561032f57600080fd5b5061033961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561036257600080fd5b50610376610371366004612c1e565b61091b565b005b34801561038457600080fd5b5061038d61098d565b60405161034d9190612d01565b3480156103a657600080fd5b50601654610339906001600160a01b031681565b3480156103c657600080fd5b506103da6103d5366004612bd7565b610a1f565b604051901515815260200161034d565b3480156103f657600080fd5b50610376610405366004612ccf565b610a35565b34801561041657600080fd5b506014545b60405190815260200161034d565b34801561043557600080fd5b506103da610444366004612b61565b610b06565b34801561045557600080fd5b50610376610464366004612c53565b610b7e565b34801561047557600080fd5b5061041b6104e281565b34801561048b57600080fd5b506040516009815260200161034d565b3480156104a757600080fd5b506103da6104b6366004612bd7565b610c5c565b3480156104c757600080fd5b5061041b600d5481565b3480156104dd57600080fd5b506103766104ec366004612c53565b610c98565b3480156104fd57600080fd5b5061041b600b5481565b34801561051357600080fd5b50601754610339906001600160a01b031681565b34801561053357600080fd5b506019546103da90600160a81b900460ff1681565b34801561055457600080fd5b50610376610563366004612aee565b610d76565b34801561057457600080fd5b506103da610583366004612aee565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156105ad57600080fd5b506022546103da90610100900460ff1681565b3480156105cc57600080fd5b506103da6105db366004612aee565b610fcd565b3480156105ec57600080fd5b5061041b600c5481565b34801561060257600080fd5b50610376610611366004612ba2565b610fe1565b34801561062257600080fd5b5061041b610631366004612aee565b6001600160a01b031660009081526001602052604090205490565b34801561065857600080fd5b50610376611059565b34801561066d57600080fd5b5061041b601c5481565b34801561068357600080fd5b50610376610692366004612ba2565b6110fb565b3480156106a357600080fd5b506103766106b2366004612c3a565b611202565b3480156106c357600080fd5b506000546001600160a01b0316610339565b3480156106e157600080fd5b506103da6106f0366004612aee565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561071a57600080fd5b506103da610729366004612aee565b602b6020526000908152604090205460ff1681565b34801561074a57600080fd5b5061041b601f5481565b34801561076057600080fd5b5061038d6112a9565b34801561077557600080fd5b506103da610784366004612bd7565b6112b8565b34801561079557600080fd5b506103da6107a4366004612bd7565b6112ef565b3480156107b557600080fd5b5061041b6107d081565b3480156107cb57600080fd5b506103766107da366004612aee565b611306565b3480156107eb57600080fd5b506103766107fa366004612c03565b611374565b34801561080b57600080fd5b5061037661081a366004612aee565b611419565b34801561082b57600080fd5b5061037661083a366004612b28565b61148a565b34801561084b57600080fd5b5061041b61085a366004612b28565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561089157600080fd5b5061041b60285481565b3480156108a757600080fd5b506103766108b6366004612c75565b611505565b3480156108c757600080fd5b506103766108d6366004612aee565b6115ce565b3480156108e757600080fd5b506103766108f6366004612ba2565b6119a7565b34801561090757600080fd5b50610376610916366004612ccf565b611a1f565b6000546001600160a01b0316331461096d5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b60448201526064015b60405180910390fd5b6022805492151560ff199384161790556029805491151591909216179055565b60606009805461099c90612e37565b80601f01602080910402602001604051908101604052809291908181526020018280546109c890612e37565b8015610a155780601f106109ea57610100808354040283529160200191610a15565b820191906000526020600020905b8154815290600101906020018083116109f857829003601f168201915b5050505050905090565b6000610a2c338484611aab565b50600192915050565b6000546001600160a01b03163314610a825760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b8082610a8e8587612dc7565b610a989190612dc7565b610aa29190612dc7565b6104e214610af25760405162461bcd60e51b815260206004820152601360248201527f4d7573742061646420757020746f2031303030000000000000000000000000006044820152606401610964565b600e93909355600f91909155601055601155565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610b6b576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610b65908490612e20565b90915550505b610b76848484611bb8565b949350505050565b6000546001600160a01b03163314610bcb5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60008183601454610bdc9190612e01565b610be69190612ddf565b905061012c601454610bf89190612ddf565b811015610c555760405162461bcd60e51b815260206004820152602560248201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756044820152643838363c9760d91b6064820152608401610964565b601f555050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a2c918590610c93908690612dc7565b611aab565b6000546001600160a01b03163314610ce55760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60008183601454610cf69190612e01565b610d009190612ddf565b905061012c601454610d129190612ddf565b811015610d6f5760405162461bcd60e51b815260206004820152602560248201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756044820152643838363c9760d91b6064820152608401610964565b601c555050565b6000546001600160a01b03163314610dc35760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b038116610e3f5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610964565b6001600160a01b03811661dead1415610ec05760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610964565b60008054610ed9916001600160a01b0390911690610fe1565b610ee4816001610fe1565b6000546018546001600160a01b0390811691161415610f1957601880546001600160a01b0319166001600160a01b0383161790555b600080546001600160a01b03908116825260016020818152604080852054600483528186208786168752835281862055845490931684525290205415610f8257600080546001600160a01b03168082526001602052604090912054610f8091908390611bb8565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610fdb82600019610a1f565b92915050565b6000546001600160a01b0316331461102e5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110a65760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b600080546110bf916001600160a01b0390911690610fe1565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b031633146111485760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b8061116f57506001600160a01b03166000908152600260205260409020805460ff19169055565b600354156111d65762093a80600354426111899190612e20565b116111d65760405162461bcd60e51b815260206004820152601260248201527f4f6e65207765656b20636f6f6c646f776e2e00000000000000000000000000006044820152606401610964565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6000546001600160a01b0316331461124f5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6023541561129f5760405162461bcd60e51b815260206004820152600660248201527f4572726f722e00000000000000000000000000000000000000000000000000006044820152606401610964565b6023556002602755565b6060600a805461099c90612e37565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a2c918590610c93908690612e20565b60006112fc338484611bb8565b5060019392505050565b6000546001600160a01b031633146113535760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03166000908152602b60205260409020805460ff19169055565b6000546001600160a01b031633146113c15760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061140e90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114665760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03166000908152602b60205260409020805460ff19166001179055565b6000546001600160a01b031633146114d75760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b601880546001600160a01b039384166001600160a01b03199182161790915560198054929093169116179055565b6000546001600160a01b031633146115525760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6104e2831115801561156657506107d08211155b801561157457506107d08111155b6115c05760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610964565b600b92909255600c55600d55565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561165b57600080fd5b505afa15801561166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116939190612b0b565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117139190612b0b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561177157600080fd5b505afa158015611785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190612b0b565b90506001600160a01b03811661196757816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f257600080fd5b505afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a9190612b0b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561187257600080fd5b505afa158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa9190612b0b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561190a57600080fd5b505af115801561191e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119429190612b0b565b601780546001600160a01b0319166001600160a01b0392909216919091179055611983565b601780546001600160a01b0319166001600160a01b0383161790555b50601680546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b031633146119f45760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611a6c5760405162461bcd60e51b815260206004820152601060248201526f21b0b63632b910109e9037bbb732b91760811b6044820152606401610964565b8284601454611a7b9190612e01565b611a859190612ddf565b6020556014548190611a98908490612e01565b611aa29190612ddf565b60215550505050565b6001600160a01b038316611b015760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610964565b6001600160a01b038216611b575760405162461bcd60e51b815260206004820152601360248201527f45524332303a205a65726f2041646472657373000000000000000000000000006044820152606401610964565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611c105760405162461bcd60e51b815260206004820152601460248201527f45524332303a205a65726f20616464726573732e0000000000000000000000006044820152606401610964565b6001600160a01b038316611c665760405162461bcd60e51b815260206004820152601460248201527f45524332303a205a65726f20616464726573732e0000000000000000000000006044820152606401610964565b60008211611cb65760405162461bcd60e51b815260206004820152600860248201527f4d757374203e302e0000000000000000000000000000000000000000000000006044820152606401610964565b611cc08484611ff3565b15611f165760295460ff1615611d77576001600160a01b03841660009081526002602052604090205460ff1615611d36576001600160a01b0383166000908152602a6020526040902054431415611d1657600080fd5b6001600160a01b0383166000908152602a60205260409020439055611d77565b6001600160a01b0384166000908152602a6020526040902054431415611d5b57600080fd5b6001600160a01b0384166000908152602a602052604090204390555b6001600160a01b0384166000908152602b602052604090205460ff1680611db657506001600160a01b0383166000908152602b602052604090205460ff165b611f16576001600160a01b03841660009081526002602052604090205460ff1680611df957506001600160a01b03831660009081526002602052604090205460ff165b15611e5057601c54821115611e505760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610964565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590611e9657506001600160a01b03831660009081526002602052604090205460ff16155b15611f1657601f5482611ebe856001600160a01b031660009081526001602052604090205490565b611ec89190612dc7565b1115611f165760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610964565b6001600160a01b03841660009081526005602052604090205460019060ff1680611f5857506001600160a01b03841660009081526005602052604090205460ff165b15611f61575060005b6001600160a01b03841660009081526002602052604090205460ff1615611fde57601954600160a01b900460ff16158015611fa55750601954600160a81b900460ff165b15611fde573060009081526001602052604081205490506020548110611fdc576021548110611fd357506021545b611fdc816120b1565b505b611fea85858584612271565b95945050505050565b600080546001600160a01b0384811691161480159061202057506000546001600160a01b03838116911614155b801561204557506001600160a01b03821660009081526007602052604090205460ff16155b801561206a57506001600160a01b03831660009081526007602052604090205460ff16155b801561208157506001600160a01b03821661dead14155b801561209557506001600160a01b03821615155b80156120aa57506001600160a01b0383163014155b9392505050565b6019805460ff60a01b1916600160a01b179055601054600f54600e546120d79190612dc7565b6120e19190612dc7565b6120ea57612261565b60006002601254600e54846120ff9190612e01565b6121099190612ddf565b6121139190612ddf565b905060006121218284612e20565b905061212c81612555565b600047905060006002601254600e54846121469190612e01565b6121509190612ddf565b61215a9190612ddf565b905083156121ae5761216c84826126d7565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b60006121ba8587612e20565b111561225c57601854601354600f546001600160a01b03909216916108fc91906121e48587612e20565b6121ee9190612e01565b6121f89190612ddf565b6040518115909202916000818181858888f19350505050158015612220573d6000803e3d6000fd5b506019546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561225a573d6000803e3d6000fd5b505b505050505b506019805460ff60a01b19169055565b60225460009060ff1615612482576001600160a01b03851660009081526006602052604090205460ff16806122be57506001600160a01b03841660009081526006602052604090205460ff165b1561230b5760405162461bcd60e51b815260206004820152601060248201527f536e697065722072656a65637465642e000000000000000000000000000000006044820152606401610964565b602254610100900460ff166123b9576123248585612799565b602254610100900460ff1615801561234157506123418585611ff3565b156123b45760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060448201527f74696d652e0000000000000000000000000000000000000000000000000000006064820152608401610964565b612482565b60006024541180156123e357506001600160a01b03851660009081526002602052604090205460ff165b80156123f457506123f48585611ff3565b15612482576027546024546124099043612e20565b1015612482576001600160a01b0384166000908152600660205260408120805460ff19166001179055602880549161244083612e72565b90915550506040516001600160a01b03851681527f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59060200160405180910390a15b6001600160a01b038516600090815260016020526040812080548592906124aa908490612e20565b9091555060009050826124bd57836124c8565b6124c88686866128f0565b6001600160a01b0386166000908152600160205260408120805492935083929091906124f5908490612dc7565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161254191815260200190565b60405180910390a350600195945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061258a5761258a612ea3565b6001600160a01b03928316602091820292909201810191909152601654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156125f757600080fd5b505afa15801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f9190612b0b565b8160018151811061264257612642612ea3565b6001600160a01b0392831660209182029290920101526016546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac947906126a1908590600090869030904290600401612d56565b600060405180830381600087803b1580156126bb57600080fd5b505af11580156126cf573d6000803e3d6000fd5b505050505050565b6016546040517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561275957600080fd5b505af115801561276d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127929190612ca1565b5050505050565b602254610100900460ff16156128175760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152608401610964565b6128218282611ff3565b15801561283b57506017546001600160a01b038281169116145b156111fe5760275460021461285e5761285643611388612dc7565b602455612863565b436024555b6001600160a01b03821660009081526007602052604090819020805460ff191660019081179091556022805461ff001916610100179055426025556019805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159916128e491901515815260200190565b60405180910390a15050565b60175460009081906001600160a01b03868116911614156129145750600b54612938565b6017546001600160a01b03858116911614156129335750600c54612938565b50600d545b6129428585611ff3565b1561296557602354158061295b575060235462010f2c14155b1561296557600080fd5b600061271060125460115461297a9190612dc7565b6011546129878588612e01565b6129919190612e01565b61299b9190612ddf565b6129a59190612ddf565b90506000816127106129b78588612e01565b6129c19190612ddf565b6129cb9190612e20565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d80549293508492909190612a0e908490612dc7565b90915550503060009081526001602052604081208054839290612a32908490612dc7565b909155505060405182815261dead906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a381612ac48287612e20565b612ace9190612e20565b979650505050505050565b80358015158114612ae957600080fd5b919050565b600060208284031215612b0057600080fd5b81356120aa81612eb9565b600060208284031215612b1d57600080fd5b81516120aa81612eb9565b60008060408385031215612b3b57600080fd5b8235612b4681612eb9565b91506020830135612b5681612eb9565b809150509250929050565b600080600060608486031215612b7657600080fd5b8335612b8181612eb9565b92506020840135612b9181612eb9565b929592945050506040919091013590565b60008060408385031215612bb557600080fd5b8235612bc081612eb9565b9150612bce60208401612ad9565b90509250929050565b60008060408385031215612bea57600080fd5b8235612bf581612eb9565b946020939093013593505050565b600060208284031215612c1557600080fd5b6120aa82612ad9565b60008060408385031215612c3157600080fd5b612bc083612ad9565b600060208284031215612c4c57600080fd5b5035919050565b60008060408385031215612c6657600080fd5b50508035926020909101359150565b600080600060608486031215612c8a57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612cb657600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612ce557600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015612d2e57858101830151858201604001528201612d12565b81811115612d40576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612da65784516001600160a01b031683529383019391830191600101612d81565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612dda57612dda612e8d565b500190565b600082612dfc57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612e1b57612e1b612e8d565b500290565b600082821015612e3257612e32612e8d565b500390565b600181811c90821680612e4b57607f821691505b60208210811415612e6c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612e8657612e86612e8d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612ece57600080fd5b5056fea2646970667358221220e99b9026e4cfc5a634a71d8ecc17c49210d32f200a9f8bed71d1022215e25e5e64736f6c63430008070033

Deployed Bytecode Sourcemap

3776:19694:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5520:73;;;;;;;;;;;;5551:42;5520:73;;;;;-1:-1:-1;;;;;4652:55:1;;;4634:74;;4622:2;4607:18;5520:73:0;;;;;;;;14277:169;;;;;;;;;;-1:-1:-1;14277:169:0;;;;;:::i;:::-;;:::i;:::-;;10595:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5332:35::-;;;;;;;;;;-1:-1:-1;5332:35:0;;;;-1:-1:-1;;;;;5332:35:0;;;11208:161;;;;;;;;;;-1:-1:-1;11208:161:0;;;;;:::i;:::-;;:::i;:::-;;;5851:14:1;;5844:22;5826:41;;5814:2;5799:18;11208:161:0;5686:187:1;14454:348:0;;;;;;;;;;-1:-1:-1;14454:348:0;;;;;:::i;:::-;;:::i;10330:83::-;;;;;;;;;;-1:-1:-1;10403:7:0;;10330:83;;;12341:25:1;;;12329:2;12314:18;10330:83:0;12195:177:1;11822:306:0;;;;;;;;;;-1:-1:-1;11822:306:0;;;;;:::i;:::-;;:::i;15457:263::-;;;;;;;;;;-1:-1:-1;15457:263:0;;;;;:::i;:::-;;:::i;4563:42::-;;;;;;;;;;;;4601:4;4563:42;;10419:80;;;;;;;;;;-1:-1:-1;10419:80:0;;5223:1;13874:36:1;;13862:2;13847:18;10419:80:0;13732:184:1;12136:215:0;;;;;;;;;;-1:-1:-1;12136:215:0;;;;;:::i;:::-;;:::i;4520:34::-;;;;;;;;;;;;;;;;15191:258;;;;;;;;;;-1:-1:-1;15191:258:0;;;;;:::i;:::-;;:::i;4447:29::-;;;;;;;;;;;;;;;;5374:21;;;;;;;;;;-1:-1:-1;5374:21:0;;;;-1:-1:-1;;;;;5374:21:0;;;5897:41;;;;;;;;;;-1:-1:-1;5897:41:0;;;;-1:-1:-1;;;5897:41:0;;;;;;9013:761;;;;;;;;;;-1:-1:-1;9013:761:0;;;;;:::i;:::-;;:::i;13519:125::-;;;;;;;;;;-1:-1:-1;13519:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;13608:28:0;13584:4;13608:28;;;:19;:28;;;;;;;;;13519:125;6464:36;;;;;;;;;;-1:-1:-1;6464:36:0;;;;;;;;;;;11694:120;;;;;;;;;;-1:-1:-1;11694:120:0;;;;;:::i;:::-;;:::i;4483:30::-;;;;;;;;;;;;;;;;13652:134;;;;;;;;;;-1:-1:-1;13652:134:0;;;;;:::i;:::-;;:::i;10908:117::-;;;;;;;;;;-1:-1:-1;10908:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;11001:16:0;10974:7;11001:16;;;:7;:16;;;;;;;10908:117;9782:195;;;;;;;;;;;;;:::i;6035:69::-;;;;;;;;;;;;;;;;13101:410;;;;;;;;;;-1:-1:-1;13101:410:0;;;;;:::i;:::-;;:::i;13934:186::-;;;;;;;;;;-1:-1:-1;13934:186:0;;;;;:::i;:::-;;:::i;10681:80::-;;;;;;;;;;-1:-1:-1;10733:7:0;8991:6;-1:-1:-1;;;;;8991:6:0;10681:80;;13794:132;;;;;;;;;;-1:-1:-1;13794:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;13887:31:0;13863:4;13887:31;;;:22;:31;;;;;;;;;13794:132;16749:68;;;;;;;;;;-1:-1:-1;16749:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6209:79;;;;;;;;;;;;;;;;10505:84;;;;;;;;;;;;;:::i;12359:225::-;;;;;;;;;;-1:-1:-1;12359:225:0;;;;;:::i;:::-;;:::i;11033:167::-;;;;;;;;;;-1:-1:-1;11033:167:0;;;;;:::i;:::-;;:::i;4662:47::-;;;;;;;;;;;;4705:4;4662:47;;16992:166;;;;;;;;;;-1:-1:-1;16992:166:0;;;;;:::i;:::-;;:::i;16239:171::-;;;;;;;;;;-1:-1:-1;16239:171:0;;;;;:::i;:::-;;:::i;16826:158::-;;;;;;;;;;-1:-1:-1;16826:158:0;;;;;:::i;:::-;;:::i;16025:206::-;;;;;;;;;;-1:-1:-1;16025:206:0;;;;;:::i;:::-;;:::i;10767:133::-;;;;;;;;;;-1:-1:-1;10767:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10869:19:0;;;10851:7;10869:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10767:133;6732:32;;;;;;;;;;;;;;;;14810:373;;;;;;;;;;-1:-1:-1;14810:373:0;;;;;:::i;:::-;;:::i;12592:501::-;;;;;;;;;;-1:-1:-1;12592:501:0;;;;;:::i;:::-;;:::i;14128:141::-;;;;;;;;;;-1:-1:-1;14128:141:0;;;;;:::i;:::-;;:::i;15728:289::-;;;;;;;;;;-1:-1:-1;15728:289:0;;;;;:::i;:::-;;:::i;14277:169::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;;;;;;;;;14372:16:::1;:28:::0;;;::::1;;-1:-1:-1::0;;14372:28:0;;::::1;;::::0;;14411:15:::1;:27:::0;;;::::1;;::::0;;;::::1;;::::0;;14277:169::o;10595:80::-;10643:13;10667:5;10660:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10595:80;:::o;11208:161::-;11283:4;11300:39;328:10;11323:7;11332:6;11300:8;:39::i;:::-;-1:-1:-1;11357:4:0;11208:161;;;;:::o;14454:348::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;14616:9;14609:4;14585:21:::1;14597:9:::0;14585;:21:::1;:::i;:::-;:28;;;;:::i;:::-;:40;;;;:::i;:::-;14630:4;14584:50;14574:84;;;::::0;-1:-1:-1;;;14574:84:0;;8446:2:1;14574:84:0::1;::::0;::::1;8428:21:1::0;8485:2;8465:18;;;8458:30;8524:21;8504:18;;;8497:49;8563:18;;14574:84:0::1;8244:343:1::0;14574:84:0::1;14669:15;:27:::0;;;;14707:15:::1;:27:::0;;;;14745:9:::1;:16:::0;14772:10:::1;:22:::0;14454:348::o;11822:306::-;-1:-1:-1;;;;;11943:19:0;;11922:4;11943:19;;;:11;:19;;;;;;;;11963:10;11943:31;;;;;;;;-1:-1:-1;;11943:52:0;11939:126;;-1:-1:-1;;;;;12012:19:0;;;;;;:11;:19;;;;;;;;12032:10;12012:31;;;;;;;:41;;12047:6;;12012:19;:41;;12047:6;;12012:41;:::i;:::-;;;;-1:-1:-1;;11939:126:0;12084:36;12094:6;12102:9;12113:6;12084:9;:36::i;:::-;12077:43;11822:306;-1:-1:-1;;;;11822:306:0:o;15457:263::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;15547:13:::1;15585:7;15574;15564;;:17;;;;:::i;:::-;15563:29;;;;:::i;:::-;15547:45;;15631:3;15621:7;;:13;;;;:::i;:::-;15611:5;:24;;15603:74;;;::::0;-1:-1:-1;;;15603:74:0;;11561:2:1;15603:74:0::1;::::0;::::1;11543:21:1::0;11600:2;11580:18;;;11573:30;11639:34;11619:18;;;11612:62;-1:-1:-1;;;11690:18:1;;;11683:35;11735:19;;15603:74:0::1;11359:401:1::0;15603:74:0::1;15688:14;:22:::0;-1:-1:-1;;15457:263:0:o;12136:215::-;328:10;12224:4;12273:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12273:34:0;;;;;;;;;;12224:4;;12241:80;;12264:7;;12273:47;;12310:10;;12273:47;:::i;:::-;12241:8;:80::i;15191:258::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;15280:13:::1;15318:7;15307;15297;;:17;;;;:::i;:::-;15296:29;;;;:::i;:::-;15280:45;;15364:3;15354:7;;:13;;;;:::i;:::-;15344:5;:24;;15336:74;;;::::0;-1:-1:-1;;;15336:74:0;;11561:2:1;15336:74:0::1;::::0;::::1;11543:21:1::0;11600:2;11580:18;;;11573:30;11639:34;11619:18;;;11612:62;-1:-1:-1;;;11690:18:1;;;11683:35;11735:19;;15336:74:0::1;11359:401:1::0;15336:74:0::1;15421:12;:20:::0;-1:-1:-1;;15191:258:0:o;9013:761::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;-1:-1:-1;;;;;9094:22:0;::::1;9086:96;;;::::0;-1:-1:-1;;;9086:96:0;;11967:2:1;9086:96:0::1;::::0;::::1;11949:21:1::0;12006:2;11986:18;;;11979:30;12045:34;12025:18;;;12018:62;12116:31;12096:18;;;12089:59;12165:19;;9086:96:0::1;11765:425:1::0;9086:96:0::1;-1:-1:-1::0;;;;;9201:16:0;::::1;5551:42;9201:16;;9193:90;;;::::0;-1:-1:-1;;;9193:90:0;;11967:2:1;9193:90:0::1;::::0;::::1;11949:21:1::0;12006:2;11986:18;;;11979:30;12045:34;12025:18;;;12018:62;12116:31;12096:18;;;12089:59;12165:19;;9193:90:0::1;11765:425:1::0;9193:90:0::1;9314:6;::::0;;9294:34:::1;::::0;-1:-1:-1;;;;;9314:6:0;;::::1;::::0;9294:19:::1;:34::i;:::-;9339:35;9359:8;9369:4;9339:19;:35::i;:::-;9427:6;::::0;9399:16:::1;::::0;-1:-1:-1;;;;;9399:16:0;;::::1;9427:6:::0;::::1;9399:35;9395:90;;;9449:16;:36:::0;;-1:-1:-1;;;;;;9449:36:0::1;-1:-1:-1::0;;;;;9449:36:0;::::1;;::::0;;9395:90:::1;9548:6;::::0;;-1:-1:-1;;;;;9548:6:0;;::::1;11001:16:::0;;:7;:16;;;;;;;;;9506:11:::1;:19:::0;;;;;:29;;::::1;::::0;;;;;;;:49;9579:6;;;;::::1;11001:16:::0;;;;;;9569:21;9566:99:::1;;9617:6;::::0;;-1:-1:-1;;;;;9617:6:0::1;11001:16:::0;;;:7;:16;;;;;;;9607:46:::1;::::0;9617:6;9625:8;;9607:9:::1;:46::i;:::-;;9566:99;9685:6;:17:::0;;-1:-1:-1;;;;;;9685:17:0::1;-1:-1:-1::0;;;;;9685:17:0;::::1;::::0;;::::1;::::0;;9718:38:::1;::::0;9685:17;;;;9718:38:::1;::::0;9685:6;9718:38:::1;9013:761:::0;:::o;11694:120::-;11747:4;11771:35;11779:7;-1:-1:-1;;11771:7:0;:35::i;:::-;11764:42;11694:120;-1:-1:-1;;11694:120:0:o;13652:134::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;-1:-1:-1;;;;;13740:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;13740:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13652:134::o;9782:195::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;9869:6:::1;::::0;;9849:34:::1;::::0;-1:-1:-1;;;;;9869:6:0;;::::1;::::0;9849:19:::1;:34::i;:::-;9911:1;9894:19:::0;;-1:-1:-1;;;;;;9894:19:0::1;::::0;;9929:40:::1;::::0;9911:1;;9929:40:::1;::::0;9911:1;;9929:40:::1;9782:195::o:0;13101:410::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;13182:16;13178:326:::1;;-1:-1:-1::0;;;;;;13215:13:0::1;13231:5;13215:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;13215:21:0::1;::::0;;13101:410::o;13178:326::-:1;13273:17;::::0;:22;13269:139:::1;;13362:7;13342:17;;13324:15;:35;;;;:::i;:::-;:45;13316:76;;;::::0;-1:-1:-1;;;13316:76:0;;9143:2:1;13316:76:0::1;::::0;::::1;9125:21:1::0;9182:2;9162:18;;;9155:30;9221:20;9201:18;;;9194:48;9259:18;;13316:76:0::1;8941:342:1::0;13316:76:0::1;-1:-1:-1::0;;;;;13422:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;13422:20:0::1;13438:4;13422:20;::::0;;13477:15:::1;13457:17;:35:::0;13178:326:::1;13101:410:::0;;:::o;13934:186::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;14016:13:::1;::::0;:18;14007:38:::1;;;::::0;-1:-1:-1;;;14007:38:0;;10519:2:1;14007:38:0::1;::::0;::::1;10501:21:1::0;10558:1;10538:18;;;10531:29;10596:8;10576:18;;;10569:36;10622:18;;14007:38:0::1;10317:329:1::0;14007:38:0::1;14056:13;:28:::0;14111:1:::1;14095:13;:17:::0;13934:186::o;10505:84::-;10555:13;10579:7;10572:14;;;;;:::i;12359:225::-;328:10;12452:4;12501:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12501:34:0;;;;;;;;;;12452:4;;12469:85;;12492:7;;12501:52;;12538:15;;12501:52;:::i;11033:167::-;11111:4;11128:42;328:10;11152:9;11163:6;11128:9;:42::i;:::-;-1:-1:-1;11188:4:0;;11033:167;-1:-1:-1;;;11033:167:0:o;16992:166::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;-1:-1:-1;;;;;17090:52:0::1;17145:5;17090:52:::0;;;:35:::1;:52;::::0;;;;:60;;-1:-1:-1;;17090:60:0::1;::::0;;16992:166::o;16239:171::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;16316:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;16316:32:0::1;-1:-1:-1::0;;;;16316:32:0;;::::1;;::::0;;16364:38:::1;::::0;::::1;::::0;::::1;::::0;16340:8;5851:14:1;5844:22;5826:41;;5814:2;5799:18;;5686:187;16364:38:0::1;;;;;;;;16239:171:::0;:::o;16826:158::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;-1:-1:-1;;;;;16917:52:0::1;;::::0;;;:35:::1;:52;::::0;;;;:59;;-1:-1:-1;;16917:59:0::1;16972:4;16917:59;::::0;;16826:158::o;16025:206::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;16136:16:::1;:43:::0;;-1:-1:-1;;;;;16136:43:0;;::::1;-1:-1:-1::0;;;;;;16136:43:0;;::::1;;::::0;;;16190:11:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;16025:206::o;14810:373::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;4601:4:::1;14920:6;:21;;:65;;;;;4651:4;14962:7;:23;;14920:65;:117;;;;;4705:4;15006:11;:31;;14920:117;14912:170;;;::::0;-1:-1:-1;;;14912:170:0;;8094:2:1;14912:170:0::1;::::0;::::1;8076:21:1::0;8133:2;8113:18;;;8106:30;8172:25;8152:18;;;8145:53;8215:18;;14912:170:0::1;7892:347:1::0;14912:170:0::1;15093:7;:16:::0;;;;15120:8:::1;:18:::0;15149:12:::1;:26:::0;14810:373::o;12592:501::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;12663:29:::1;12714:9;12663:61;;12735:16;12772:10;-1:-1:-1::0;;;;;12772:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12754:47:0::1;;12810:4;12817:10;-1:-1:-1::0;;;;;12817:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12754:81;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;4972:15:1;;;12754:81:0::1;::::0;::::1;4954:34:1::0;5024:15;;5004:18;;;4997:43;4866:18;;12754:81:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12735:100:::0;-1:-1:-1;;;;;;12850:22:0;::::1;12846:207;;12916:10;-1:-1:-1::0;;;;;12916:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12898:50:0::1;;12957:4;12964:10;-1:-1:-1::0;;;;;12964:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12898:84;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;4972:15:1;;;12898:84:0::1;::::0;::::1;4954:34:1::0;5024:15;;5004:18;;;4997:43;4866:18;;12898:84:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12889:6;:93:::0;;-1:-1:-1;;;;;;12889:93:0::1;-1:-1:-1::0;;;;;12889:93:0;;;::::1;::::0;;;::::1;::::0;;12846:207:::1;;;13024:6;:17:::0;;-1:-1:-1;;;;;;13024:17:0::1;-1:-1:-1::0;;;;;13024:17:0;::::1;;::::0;;12846:207:::1;-1:-1:-1::0;13063:9:0::1;:22:::0;;-1:-1:-1;;;;;;13063:22:0::1;-1:-1:-1::0;;;;;13063:22:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;12592:501:0:o;14128:141::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;-1:-1:-1;;;;;14220:31:0;;;::::1;;::::0;;;:22:::1;:31;::::0;;;;:41;;-1:-1:-1;;14220:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14128:141::o;15728:289::-;7426:6;;-1:-1:-1;;;;;7426:6:0;328:10;7426:22;7418:51;;;;-1:-1:-1;;;7418:51:0;;6939:2:1;7418:51:0;;;6921:21:1;6978:2;6958:18;;;6951:30;-1:-1:-1;;;6997:18:1;;;6990:46;7053:18;;7418:51:0;6737:340:1;7418:51:0;15928:16:::1;15908;15898:7;;:26;;;;:::i;:::-;15897:47;;;;:::i;:::-;15881:13;:63:::0;15969:7:::1;::::0;15996:13;;15969:23:::1;::::0;15979:13;;15969:23:::1;:::i;:::-;15968:41;;;;:::i;:::-;15955:10;:54:::0;-1:-1:-1;;;;15728:289:0:o;11377:309::-;-1:-1:-1;;;;;11471:20:0;;11463:52;;;;-1:-1:-1;;;11463:52:0;;9826:2:1;11463:52:0;;;9808:21:1;9865:2;9845:18;;;9838:30;9904:21;9884:18;;;9877:49;9943:18;;11463:52:0;9624:343:1;11463:52:0;-1:-1:-1;;;;;11534:21:0;;11526:53;;;;-1:-1:-1;;;11526:53:0;;9826:2:1;11526:53:0;;;9808:21:1;9865:2;9845:18;;;9838:30;9904:21;9884:18;;;9877:49;9943:18;;11526:53:0;9624:343:1;11526:53:0;-1:-1:-1;;;;;11592:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;11645:33;;12341:25:1;;;11645:33:0;;12314:18:1;11645:33:0;;;;;;;11377:309;;;:::o;17168:1797::-;17247:4;-1:-1:-1;;;;;17272:18:0;;17264:51;;;;-1:-1:-1;;;17264:51:0;;8794:2:1;17264:51:0;;;8776:21:1;8833:2;8813:18;;;8806:30;8872:22;8852:18;;;8845:50;8912:18;;17264:51:0;8592:344:1;17264:51:0;-1:-1:-1;;;;;17334:16:0;;17326:49;;;;-1:-1:-1;;;17326:49:0;;8794:2:1;17326:49:0;;;8776:21:1;8833:2;8813:18;;;8806:30;8872:22;8852:18;;;8845:50;8912:18;;17326:49:0;8592:344:1;17326:49:0;17403:1;17394:6;:10;17386:31;;;;-1:-1:-1;;;17386:31:0;;9490:2:1;17386:31:0;;;9472:21:1;9529:1;9509:18;;;9502:29;9567:10;9547:18;;;9540:38;9595:18;;17386:31:0;9288:331:1;17386:31:0;17431:20;17442:4;17448:2;17431:10;:20::i;:::-;17428:858;;;17472:15;;;;17468:347;;;-1:-1:-1;;;;;17512:13:0;;;;;;:7;:13;;;;;;;;17508:292;;;-1:-1:-1;;;;;17557:13:0;;;;;;:9;:13;;;;;;17574:12;17557:29;;17549:38;;;;;;-1:-1:-1;;;;;17610:13:0;;;;;;:9;:13;;;;;17626:12;17610:28;;17508:292;;;-1:-1:-1;;;;;17695:15:0;;;;;;:9;:15;;;;;;17714:12;17695:31;;17687:40;;;;;;-1:-1:-1;;;;;17750:15:0;;;;;;:9;:15;;;;;17768:12;17750:30;;17508:292;-1:-1:-1;;;;;17836:41:0;;;;;;:35;:41;;;;;;;;;:84;;-1:-1:-1;;;;;;17881:39:0;;;;;;:35;:39;;;;;;;;17836:84;17831:440;;-1:-1:-1;;;;;17944:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;17961:11:0;;;;;;:7;:11;;;;;;;;17944:28;17941:134;;;18014:12;;18004:6;:22;;17996:59;;;;-1:-1:-1;;;17996:59:0;;11208:2:1;17996:59:0;;;11190:21:1;11247:2;11227:18;;;11220:30;11286:26;11266:18;;;11259:54;11330:18;;17996:59:0;11006:348:1;17996:59:0;-1:-1:-1;;;;;18096:20:0;;5465:42;18096:20;;;;:36;;-1:-1:-1;;;;;;18121:11:0;;;;;;:7;:11;;;;;;;;18120:12;18096:36;18093:163;;;18191:14;;18181:6;18165:13;18175:2;-1:-1:-1;;;;;11001:16:0;10974:7;11001:16;;;:7;:16;;;;;;;10908:117;18165:13;:22;;;;:::i;:::-;:40;;18157:79;;;;-1:-1:-1;;;18157:79:0;;10853:2:1;18157:79:0;;;10835:21:1;10892:2;10872:18;;;10865:30;10931:28;10911:18;;;10904:56;10977:18;;18157:79:0;10651:350:1;18157:79:0;-1:-1:-1;;;;;18331:25:0;;18298:12;18331:25;;;:19;:25;;;;;;18313:4;;18331:25;;;:52;;-1:-1:-1;;;;;;18360:23:0;;;;;;:19;:23;;;;;;;;18331:52;18328:98;;;-1:-1:-1;18409:5:0;18328:98;-1:-1:-1;;;;;18442:11:0;;;;;;:7;:11;;;;;;;;18438:457;;;18475:16;;-1:-1:-1;;;18475:16:0;;;;18474:17;:59;;;;-1:-1:-1;18512:21:0;;-1:-1:-1;;;18512:21:0;;;;18474:59;18470:408;;;18617:4;18568:28;11001:16;;;:7;:16;;;;;;18568:55;;18670:13;;18646:20;:37;18642:221;;18735:10;;18711:20;:34;18708:77;;-1:-1:-1;18772:10:0;;18708:77;18807:36;18822:20;18807:14;:36::i;:::-;18549:329;18470:408;18913:44;18931:4;18937:2;18941:6;18949:7;18913:17;:44::i;:::-;18906:51;17168:1797;-1:-1:-1;;;;;17168:1797:0:o;16418:323::-;16486:4;8991:6;;-1:-1:-1;;;;;16510:15:0;;;8991:6;;16510:15;;;;:45;;-1:-1:-1;8964:7:0;8991:6;-1:-1:-1;;;;;16542:13:0;;;8991:6;;16542:13;;16510:45;:84;;;;-1:-1:-1;;;;;;16573:21:0;;;;;;:17;:21;;;;;;;;16572:22;16510:84;:125;;;;-1:-1:-1;;;;;;16612:23:0;;;;;;:17;:23;;;;;;;;16611:24;16510:125;:152;;;;-1:-1:-1;;;;;;16652:10:0;;5551:42;16652:10;;16510:152;:185;;;;-1:-1:-1;;;;;;16679:16:0;;;;16510:185;:223;;;;-1:-1:-1;;;;;;16712:21:0;;16728:4;16712:21;;16510:223;16503:230;16418:323;-1:-1:-1;;;16418:323:0:o;18973:951::-;7300:16;:23;;-1:-1:-1;;;;7300:23:0;-1:-1:-1;;;7300:23:0;;;19098:9:::1;::::0;19080:15:::1;::::0;19062::::1;::::0;:33:::1;::::0;19080:15;19062:33:::1;:::i;:::-;:45;;;;:::i;:::-;19058:76;;19127:7;;19058:76;19144:17;19234:1;19208:22;;19189:15;;19166:20;:38;;;;:::i;:::-;19165:65;;;;:::i;:::-;19164:71;;;;:::i;:::-;19144:91:::0;-1:-1:-1;19248:20:0::1;19271:32;19144:91:::0;19271:20;:32:::1;:::i;:::-;19248:55;;19314:30;19331:12;19314:16;:30::i;:::-;19357:22;19382:21;19357:46;;19414:24;19505:1;19479:22;;19460:15;;19443:14;:32;;;;:::i;:::-;19442:59;;;;:::i;:::-;19441:65;;;;:::i;:::-;19414:92:::0;-1:-1:-1;19523:13:0;;19519:161:::1;;19553:41;19566:9;19577:16;19553:12;:41::i;:::-;19614:54;::::0;;13610:25:1;;;13666:2;13651:18;;13644:34;;;13694:18;;;13687:34;;;19614:54:0::1;::::0;13598:2:1;13583:18;19614:54:0::1;;;;;;;19519:161;19729:1;19694:32;19717:9:::0;19694:20;:32:::1;:::i;:::-;:36;19690:227;;;19747:16;::::0;19832:13:::1;::::0;19812:15:::1;::::0;-1:-1:-1;;;;;19747:16:0;;::::1;::::0;:100:::1;::::0;19832:13;19775:33:::1;19792:16:::0;19775:14;:33:::1;:::i;:::-;19774:53;;;;:::i;:::-;19773:73;;;;:::i;:::-;19747:100;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19862:11:0::1;::::0;:43:::1;::::0;-1:-1:-1;;;;;19862:11:0;;::::1;::::0;19883:21:::1;19862:43:::0;::::1;;;::::0;:11:::1;:43:::0;:11;:43;19883:21;19862:11;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19690:227;19047:877;;;;7334:1;-1:-1:-1::0;7346:16:0;:24;;-1:-1:-1;;;;7346:24:0;;;18973:951::o;21320:1216::-;21441:16;;21420:4;;21441:16;;21437:858;;;-1:-1:-1;;;;;13887:31:0;;13863:4;13887:31;;;:22;:31;;;;;;;;21477:56;;;-1:-1:-1;;;;;;13887:31:0;;13863:4;13887:31;;;:22;:31;;;;;;;;21508:25;21473:123;;;21554:26;;-1:-1:-1;;;21554:26:0;;10174:2:1;21554:26:0;;;10156:21:1;10213:2;10193:18;;;10186:30;10252:18;10232;;;10225:46;10288:18;;21554:26:0;9972:340:1;21473:123:0;21617:16;;;;;;;21612:672;;21654:28;21673:4;21679:2;21654:18;:28::i;:::-;21706:16;;;;;;;21705:17;:41;;;;;21726:20;21737:4;21743:2;21726:10;:20::i;:::-;21701:137;;;21771:47;;-1:-1:-1;;;21771:47:0;;7688:2:1;21771:47:0;;;7670:21:1;7727:2;7707:18;;;7700:30;7766:34;7746:18;;;7739:62;7837:7;7817:18;;;7810:35;7862:19;;21771:47:0;7486:401:1;21701:137:0;21612:672;;;21897:1;21882:12;;:16;:55;;;;-1:-1:-1;;;;;;21924:13:0;;;;;;:7;:13;;;;;;;;21882:55;:101;;;;;21963:20;21974:4;21980:2;21963:10;:20::i;:::-;21878:391;;;22060:13;;22045:12;;22030:27;;:12;:27;:::i;:::-;:43;22026:224;;;-1:-1:-1;;;;;22102:26:0;;;;;;:22;:26;;;;;:33;;-1:-1:-1;;22102:33:0;22131:4;22102:33;;;22162:13;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;22210:16:0;;-1:-1:-1;;;;;4652:55:1;;4634:74;;22210:16:0;;4622:2:1;4607:18;22210:16:0;;;;;;;22026:224;-1:-1:-1;;;;;22307:13:0;;;;;;:7;:13;;;;;:23;;22324:6;;22307:13;:23;;22324:6;;22307:23;:::i;:::-;;;;-1:-1:-1;22341:22:0;;-1:-1:-1;22367:7:0;22366:48;;22408:6;22366:48;;;22378:27;22388:4;22394:2;22398:6;22378:9;:27::i;:::-;-1:-1:-1;;;;;22425:11:0;;;;;;:7;:11;;;;;:29;;22341:73;;-1:-1:-1;22341:73:0;;22425:11;;;:29;;22341:73;;22425:29;:::i;:::-;;;;;;;;22487:2;-1:-1:-1;;;;;22472:34:0;22481:4;-1:-1:-1;;;;;22472:34:0;;22491:14;22472:34;;;;12341:25:1;;12329:2;12314:18;;12195:177;22472:34:0;;;;;;;;-1:-1:-1;22524:4:0;;21320:1216;-1:-1:-1;;;;;21320:1216:0:o;19932:417::-;20023:16;;;20037:1;20023:16;;;;;;;;19999:21;;20023:16;;;;;;;;;;-1:-1:-1;20023:16:0;19999:40;;20068:4;20050;20055:1;20050:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20050:23:0;;;:7;;;;;;;;;;:23;;;;20094:9;;:16;;;;;;;;:9;;;;;:14;;:16;;;;;20050:7;;20094:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20084:4;20089:1;20084:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20084:26:0;;;:7;;;;;;;;;:26;20123:9;;:218;;;;;:9;;;:60;;:218;;20198:11;;20123:9;;20268:4;;20295;;20315:15;;20123:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19988:361;19932:417;:::o;20357:332::-;20438:9;;:243;;;;;20504:4;20438:243;;;5415:34:1;5465:18;;;5458:34;;;20438:9:0;5508:18:1;;;5501:34;;;5551:18;;;5544:34;5551:42:0;5594:19:1;;;5587:44;20655:15:0;5647:19:1;;;5640:35;-1:-1:-1;;;;;20438:9:0;;;;:25;;20471:9;;5326:19:1;;20438:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20357:332;;:::o;20697:615::-;20779:16;;;;;;;20778:17;20770:65;;;;-1:-1:-1;;;20770:65:0;;7284:2:1;20770:65:0;;;7266:21:1;7323:2;7303:18;;;7296:30;7362:34;7342:18;;;7335:62;7433:5;7413:18;;;7406:33;7456:19;;20770:65:0;7082:399:1;20770:65:0;20851:20;20862:4;20868:2;20851:10;:20::i;:::-;20850:21;:37;;;;-1:-1:-1;20881:6:0;;-1:-1:-1;;;;;20875:12:0;;;20881:6;;20875:12;20850:37;20846:459;;;20908:13;;20925:1;20908:18;20904:161;;20962:19;:12;20977:4;20962:19;:::i;:::-;20947:12;:34;20904:161;;;21037:12;21022;:27;20904:161;-1:-1:-1;;;;;21081:23:0;;;;;;:17;:23;;;;;;;:30;;-1:-1:-1;;21081:30:0;21107:4;21081:30;;;;;;21126:16;:23;;-1:-1:-1;;21126:23:0;21081:30;21126:23;;;21179:15;21164:12;:30;21211:21;:28;;-1:-1:-1;;;;21211:28:0;-1:-1:-1;;;21211:28:0;;;21259:34;;;;;;5851:14:1;;5844:22;5826:41;;5814:2;5799:18;;5686:187;21259:34:0;;;;;;;;20697:615;;:::o;22544:923::-;22686:6;;22623:7;;;;-1:-1:-1;;;;;22678:14:0;;;22686:6;;22678:14;22674:197;;;-1:-1:-1;22722:7:0;;22674:197;;;22757:6;;-1:-1:-1;;;;;22751:12:0;;;22757:6;;22751:12;22747:124;;;-1:-1:-1;22793:8:0;;22747:124;;;-1:-1:-1;22847:12:0;;22747:124;22887:20;22898:4;22904:2;22887:10;:20::i;:::-;22883:144;;;22927:13;;:18;;:44;;;22949:13;;22966:5;22949:22;;22927:44;22923:93;;;22992:8;;;22923:93;23037:15;5127:5;23106:22;;23093:10;;:35;;;;:::i;:::-;23078:10;;23056:19;23065:10;23056:6;:19;:::i;:::-;:32;;;;:::i;:::-;23055:74;;;;:::i;:::-;:93;;;;:::i;:::-;23037:111;-1:-1:-1;23159:17:0;23037:111;5127:5;23180:19;23189:10;23180:6;:19;:::i;:::-;:38;;;;:::i;:::-;23179:50;;;;:::i;:::-;5551:42;23240:13;;;;:7;:13;;;:24;;23159:70;;-1:-1:-1;23257:7:0;;23240:13;;;:24;;23257:7;;23240:24;:::i;:::-;;;;-1:-1:-1;;23291:4:0;23275:22;;;;:7;:22;;;;;:37;;23302:9;;23275:22;:37;;23302:9;;23275:37;:::i;:::-;;;;-1:-1:-1;;23328:29:0;;12341:25:1;;;5551:42:0;;-1:-1:-1;;;;;23328:29:0;;;;;12329:2:1;12314:18;23328:29:0;;;;;;;23373:40;;12341:25:1;;;23396:4:0;;-1:-1:-1;;;;;23373:40:0;;;;;12329:2:1;12314:18;23373:40:0;;;;;;;23452:7;23431:18;23440:9;23431:6;:18;:::i;:::-;:28;;;;:::i;:::-;23424:35;22544:923;-1:-1:-1;;;;;;;22544:923:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:404::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;-1:-1:-1;1013:2:1;998:18;;985:32;1026:33;985:32;1026:33;:::i;:::-;1078:7;1068:17;;;687:404;;;;;:::o;1489:456::-;1566:6;1574;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;-1:-1:-1;1816:2:1;1801:18;;1788:32;1829:33;1788:32;1829:33;:::i;:::-;1489:456;;1881:7;;-1:-1:-1;;;1935:2:1;1920:18;;;;1907:32;;1489:456::o;1950:315::-;2015:6;2023;2076:2;2064:9;2055:7;2051:23;2047:32;2044:52;;;2092:1;2089;2082:12;2044:52;2131:9;2118:23;2150:31;2175:5;2150:31;:::i;:::-;2200:5;-1:-1:-1;2224:35:1;2255:2;2240:18;;2224:35;:::i;:::-;2214:45;;1950:315;;;;;:::o;2270:::-;2338:6;2346;2399:2;2387:9;2378:7;2374:23;2370:32;2367:52;;;2415:1;2412;2405:12;2367:52;2454:9;2441:23;2473:31;2498:5;2473:31;:::i;:::-;2523:5;2575:2;2560:18;;;;2547:32;;-1:-1:-1;;;2270:315:1:o;2590:180::-;2646:6;2699:2;2687:9;2678:7;2674:23;2670:32;2667:52;;;2715:1;2712;2705:12;2667:52;2738:26;2754:9;2738:26;:::i;2775:248::-;2837:6;2845;2898:2;2886:9;2877:7;2873:23;2869:32;2866:52;;;2914:1;2911;2904:12;2866:52;2937:26;2953:9;2937:26;:::i;3028:180::-;3087:6;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;-1:-1:-1;3179:23:1;;3028:180;-1:-1:-1;3028:180:1:o;3213:248::-;3281:6;3289;3342:2;3330:9;3321:7;3317:23;3313:32;3310:52;;;3358:1;3355;3348:12;3310:52;-1:-1:-1;;3381:23:1;;;3451:2;3436:18;;;3423:32;;-1:-1:-1;3213:248:1:o;3466:316::-;3543:6;3551;3559;3612:2;3600:9;3591:7;3587:23;3583:32;3580:52;;;3628:1;3625;3618:12;3580:52;-1:-1:-1;;3651:23:1;;;3721:2;3706:18;;3693:32;;-1:-1:-1;3772:2:1;3757:18;;;3744:32;;3466:316;-1:-1:-1;3466:316:1:o;3787:306::-;3875:6;3883;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3989:9;3983:16;3973:26;;4039:2;4028:9;4024:18;4018:25;4008:35;;4083:2;4072:9;4068:18;4062:25;4052:35;;3787:306;;;;;:::o;4098:385::-;4184:6;4192;4200;4208;4261:3;4249:9;4240:7;4236:23;4232:33;4229:53;;;4278:1;4275;4268:12;4229:53;-1:-1:-1;;4301:23:1;;;4371:2;4356:18;;4343:32;;-1:-1:-1;4422:2:1;4407:18;;4394:32;;4473:2;4458:18;4445:32;;-1:-1:-1;4098:385:1;-1:-1:-1;4098:385:1:o;6135:597::-;6247:4;6276:2;6305;6294:9;6287:21;6337:6;6331:13;6380:6;6375:2;6364:9;6360:18;6353:34;6405:1;6415:140;6429:6;6426:1;6423:13;6415:140;;;6524:14;;;6520:23;;6514:30;6490:17;;;6509:2;6486:26;6479:66;6444:10;;6415:140;;;6573:6;6570:1;6567:13;6564:91;;;6643:1;6638:2;6629:6;6618:9;6614:22;6610:31;6603:42;6564:91;-1:-1:-1;6716:2:1;6695:15;-1:-1:-1;;6691:29:1;6676:45;;;;6723:2;6672:54;;6135:597;-1:-1:-1;;;6135:597:1:o;12377:1026::-;12639:4;12687:3;12676:9;12672:19;12718:6;12707:9;12700:25;12744:2;12782:6;12777:2;12766:9;12762:18;12755:34;12825:3;12820:2;12809:9;12805:18;12798:31;12849:6;12884;12878:13;12915:6;12907;12900:22;12953:3;12942:9;12938:19;12931:26;;12992:2;12984:6;12980:15;12966:29;;13013:1;13023:218;13037:6;13034:1;13031:13;13023:218;;;13102:13;;-1:-1:-1;;;;;13098:62:1;13086:75;;13216:15;;;;13181:12;;;;13059:1;13052:9;13023:218;;;-1:-1:-1;;;;;;;13297:55:1;;;;13292:2;13277:18;;13270:83;-1:-1:-1;;;13384:3:1;13369:19;13362:35;13258:3;12377:1026;-1:-1:-1;;;12377:1026:1:o;13921:128::-;13961:3;13992:1;13988:6;13985:1;13982:13;13979:39;;;13998:18;;:::i;:::-;-1:-1:-1;14034:9:1;;13921:128::o;14054:274::-;14094:1;14120;14110:189;;-1:-1:-1;;;14152:1:1;14145:88;14256:4;14253:1;14246:15;14284:4;14281:1;14274:15;14110:189;-1:-1:-1;14313:9:1;;14054:274::o;14333:168::-;14373:7;14439:1;14435;14431:6;14427:14;14424:1;14421:21;14416:1;14409:9;14402:17;14398:45;14395:71;;;14446:18;;:::i;:::-;-1:-1:-1;14486:9:1;;14333:168::o;14506:125::-;14546:4;14574:1;14571;14568:8;14565:34;;;14579:18;;:::i;:::-;-1:-1:-1;14616:9:1;;14506:125::o;14636:437::-;14715:1;14711:12;;;;14758;;;14779:61;;14833:4;14825:6;14821:17;14811:27;;14779:61;14886:2;14878:6;14875:14;14855:18;14852:38;14849:218;;;-1:-1:-1;;;14920:1:1;14913:88;15024:4;15021:1;15014:15;15052:4;15049:1;15042:15;14849:218;;14636:437;;;:::o;15078:135::-;15117:3;-1:-1:-1;;15138:17:1;;15135:43;;;15158:18;;:::i;:::-;-1:-1:-1;15205:1:1;15194:13;;15078:135::o;15218:184::-;-1:-1:-1;;;15267:1:1;15260:88;15367:4;15364:1;15357:15;15391:4;15388:1;15381:15;15407:184;-1:-1:-1;;;15456:1:1;15449:88;15556:4;15553:1;15546:15;15580:4;15577:1;15570:15;15785:154;-1:-1:-1;;;;;15864:5:1;15860:54;15853:5;15850:65;15840:93;;15929:1;15926;15919:12;15840:93;15785:154;:::o

Swarm Source

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