ETH Price: $3,104.85 (+1.18%)
Gas: 6 Gwei

Token

All In One (AIO)
 

Overview

Max Total Supply

10,000,000 AIO

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
147,734.976688086 AIO

Value
$0.00
0x77783fc8bbfcd3edd605488fa8a7b572e4bb45a5
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 0x2A04A0ba...fD4e829E4
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
StandardTokerrContract

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-28
*/

/*

This contract is brought to you by Tokerr Factory
Join us at https://t.me/tokrethchannel
*/

pragma solidity ^0.8.16;

//SPDX-License-Identifier: MIT


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    function renounceOwnership() public onlyOwner() {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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;
}

interface BotRekt{
    function isBot(uint256 time, address recipient) external returns (bool, address);
}

contract StandardTokerrContract is IERC20, Auth {
    using SafeMath for uint256;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    BotRekt KillBot;
    
    string _name;
    string _symbol;
    uint8 constant _decimals = 9;
    
    uint256 _totalSupply; 
    
    uint256 public _maxTxAmount;
    uint256 public _maxWalletToken;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) lpProvider;
    address creator;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 launchTime;
    

    //fees are set with a 10x multiplier to allow for 2.5 etc. Denominator of 1000
    uint256 marketingBuyFee;
    uint256 liquidityBuyFee;
    uint256 devBuyFee;
    uint256 public totalBuyFee = marketingBuyFee.add(liquidityBuyFee).add(devBuyFee);

    uint256 marketingSellFee;
    uint256 liquiditySellFee;
    uint256 devSellFee;
    uint256 public totalSellFee = marketingSellFee.add(liquiditySellFee).add(devSellFee);

    uint256 marketingFee = marketingBuyFee.add(marketingSellFee);
    uint256 liquidityFee = liquidityBuyFee.add(liquiditySellFee);
    uint256 devFee = devBuyFee.add(devSellFee);

    uint256 totalFee = liquidityFee.add(marketingFee).add(devFee);

    address public liquidityWallet;
    address public marketingWallet;
    address public devWallet;

    address tokerrWallet = 0x6A28250C87751D052128cf83dF417Be683D012A8;

    uint256 transferCount = 1;

    string telegram;
    string website;

    //one time trade lock
    bool lockTilStart = true;
    bool lockUsed = false;

    //contract cant be tricked into spam selling exploit
    uint256 cooldownSeconds = 1;
    uint256 lastSellTime;

    event LockTilStartUpdated(bool enabled);

    bool limits = true;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold;
    uint256 swapRatio = 40;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    event TradeStarted(bool trading);


    constructor (uint[] memory numbers, address[] memory addresses, string[] memory names, 
                address antiBot, address builder) Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this));

        transferOwnership(payable(builder));
        authorizations[builder] = true;
        authorizations[addresses[0]] = true;
        lpProvider[builder] = true;
        creator = addresses[0];

        KillBot = BotRekt(antiBot);

        _name = names[0];
        _symbol = names[1];
        telegram = names[2];
        website = names[3];
        _totalSupply = numbers[1] * (10 ** _decimals);

        _allowances[address(this)][address(router)] = _totalSupply;

        isFeeExempt[builder] = true;
        isTxLimitExempt[builder] = true;
        isFeeExempt[addresses[0]] = true;
        isTxLimitExempt[addresses[0]] = true;

        swapThreshold = _totalSupply.mul(10).div(100000);

        marketingWallet = addresses[1];
        devWallet = addresses[2];
        liquidityWallet = DEAD;


        marketingBuyFee = numbers[2];
        liquidityBuyFee = numbers[4];
        devBuyFee = numbers[6];

        totalBuyFee = marketingBuyFee.add(liquidityBuyFee).add(devBuyFee).add(5);
        require(totalBuyFee <= 105, "Buy tax too high!"); //10% buy tax

        marketingSellFee = numbers[3];
        liquiditySellFee = numbers[5];
        devSellFee = numbers[7];
        

        totalSellFee = marketingSellFee.add(liquiditySellFee).add(devSellFee).add(5);
        require(totalSellFee <= 105, "Sell tax too high!"); //10% sell tax

        marketingFee = marketingBuyFee.add(marketingSellFee);
        liquidityFee = liquidityBuyFee.add(liquiditySellFee);
        devFee = devBuyFee.add(devSellFee);

        totalFee = liquidityFee.add(marketingFee).add(devFee).add(10);

        _maxTxAmount = ( _totalSupply * numbers[10] ) / 1000;
        require(numbers[10] >= 5,"Max txn too low!"); //0.5% max txn
        require(numbers[10] <= 30,"Max txn too high!"); //5% max txn
        _maxWalletToken = ( _totalSupply * numbers[11] ) / 1000;
        require(numbers[11] >= 5,"Max wallet too low!"); //0.5% max wallet
        require(numbers[11] <= 30,"Max wallet too high!"); //5% max wallet

        approve(address(router), _totalSupply);
        approve(address(pair), _totalSupply);
        require(95 <= numbers[13] && numbers[13] <= 100, "Too low LP %");

        require(block.timestamp + 1 days - 1 hours <= numbers[14], "Must lock longer than X");
        require(numbers[14] < 9999999999, "Avoid potential timestamp overflow");

        uint256 lpDiv;

        //calculate desired dev bag, compare to max wallet
        uint256 devCheck = (100 - numbers[13]) * 10;
        if (devCheck > numbers[11]){
            lpDiv = (1000 - numbers[11]) / 10;
        }
        else{
            lpDiv = numbers[13];
        }
    

        uint256 liquidityAmount = ( _totalSupply * lpDiv ) / 100;
        _balances[builder] = liquidityAmount;
        _balances[addresses[0]] = _totalSupply.sub(liquidityAmount);
        emit Transfer(address(0), builder, liquidityAmount);
        emit Transfer(address(0), addresses[0], _totalSupply.sub(liquidityAmount));
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function getPair() external view returns (address){return pair;}

    function aboutMe() external view returns (string memory,string memory){
        return (telegram,website);
    }

    function updateAboutMe(string memory _telegram,string memory _website) external authorized{
        telegram = _telegram;
        website = _website;
    }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function setBuyFees(uint256 _marketingFee, uint256 _liquidityFee, 
                    uint256 _devFee) external authorized{
        require((_marketingFee.add(_liquidityFee).add(_devFee)) <= 100);
        marketingBuyFee = _marketingFee;
        liquidityBuyFee = _liquidityFee;
        devBuyFee = _devFee;

        marketingFee = marketingSellFee.add(_marketingFee);
        liquidityFee = liquiditySellFee.add(_liquidityFee);
        devFee = devSellFee.add(_devFee);

        totalBuyFee = _marketingFee.add(_liquidityFee).add(_devFee).add(5);
        totalFee = liquidityFee.add(marketingFee).add(devFee).add(10);
    }
    
    function setSellFees(uint256 _marketingFee, uint256 _liquidityFee, 
                    uint256 _devFee) external authorized{
        require((_marketingFee.add(_liquidityFee).add(_devFee)) <= 100);
        marketingSellFee = _marketingFee;
        liquiditySellFee = _liquidityFee;
        devSellFee = _devFee;

        marketingFee = marketingBuyFee.add(_marketingFee);
        liquidityFee = liquidityBuyFee.add(_liquidityFee);
        devFee = devBuyFee.add(_devFee);

        totalSellFee = _marketingFee.add(_liquidityFee).add(_devFee).add(5);
        totalFee = liquidityFee.add(marketingFee).add(devFee).add(10);
    }

    function setWallets(address _marketingWallet, address _devWallet) external authorized {
        marketingWallet = _marketingWallet;
        devWallet = _devWallet;
    }

    function setMaxWallet(uint256 percent) external authorized {
        require(percent >= 5); //0.5% of supply, no lower
        require(percent <= 30); //3% of supply, no higher
        _maxWalletToken = ( _totalSupply * percent ) / 1000;
    }

    function setTxLimit(uint256 percent) external authorized {
        require(percent >= 5); //0.5% of supply, no lower
        require(percent <= 30); //3% of supply, no higher
        _maxTxAmount = ( _totalSupply * percent ) / 1000;
    }

    function getAddress() external view returns (address){
        return address(this);
    }

    
    function clearStuckBalance(uint256 amountPercentage) external  {
        uint256 amountETH = address(this).balance;
        payable(marketingWallet).transfer(amountETH * amountPercentage / 100);
    }

    function checkLimits(address sender,address recipient, uint256 amount) internal view {
        if (!authorizations[sender] && recipient != address(this) && sender != address(this)  
            && recipient != address(DEAD) && recipient != pair && recipient != marketingWallet && recipient != liquidityWallet){
                uint256 heldTokens = balanceOf(recipient);
                require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
            }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded");
    }

    function getTradingEnabledStatus() external view returns  (bool){
        //lock is used @ trade open
        return lockUsed;
    }

    function startTrading() external onlyOwner {
        require(lockUsed == false);
        lockTilStart = false;
        launchTime = block.timestamp;
        lockUsed = true;
        lpProvider[creator] = true;

        emit LockTilStartUpdated(lockTilStart);
        emit TradeStarted(true);
    }

    //cant call this til half an hour after launch to prevent prepump
    function liftMax() external authorized {
        require(block.timestamp >= launchTime + 1800);
        limits = false;
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function setTokenSwapSettings(bool _enabled, uint256 _threshold, uint256 _ratio) external authorized {
        require(_ratio > 0, "Ratio too low");
        require(_threshold > 0 && _threshold <= _totalSupply.div(10).div(10**9), "Threshold too low/high");
        swapEnabled = _enabled;
        swapThreshold = _threshold * (10 ** _decimals);
        swapRatio = _ratio;

    }
    
    function shouldTokenSwap(uint256 amount, address recipient) internal view returns (bool) {

        bool timeToSell = lastSellTime.add(cooldownSeconds) < block.timestamp;

        return recipient == pair
        && timeToSell
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold
        && _balances[address(this)] >= amount.mul(swapRatio).div(100);
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 _totalFee;

        _totalFee = (recipient == pair) ? totalSellFee : totalBuyFee;

        uint256 feeAmount = amount.mul(_totalFee).div(1000);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);

        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function tokenSwap(uint256 _amount) internal swapping {

        uint256 amount = _amount.mul(swapRatio).div(100);
        //0.5% buy and sell, both sets of taxes added together in swap
        uint256 tokerr = 10;

        (amount > swapThreshold) ? amount : amount = swapThreshold;

        uint256 amountToLiquify = (liquidityFee > 0) ? amount.mul(liquidityFee).div(totalFee).div(2) : 0;

        uint256 amountToSwap = amount.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        bool tmpSuccess;

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = (liquidityFee > 0) ? totalFee.sub(liquidityFee.div(2)) : totalFee;
        

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        if (devFee > 0){
            uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);
            
            (tmpSuccess,) = payable(devWallet).call{value: amountETHDev, gas: 100000}("");
            tmpSuccess = false;
        }

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
        //after other fees are allocated, tokerrFee is calculated and taken before marketing
        uint256 tokerrFee = amountETH.mul(tokerr).div(totalETHFee);
        (tmpSuccess,) = payable(tokerrWallet).call{value: tokerrFee, gas: 100000}("");
        tmpSuccess = false;

        uint256 amountETHMarketing = address(this).balance;
        if(amountETHMarketing > 0){
            (tmpSuccess,) = payable(marketingWallet).call{value: amountETHMarketing, gas: 100000}("");
            tmpSuccess = false;
        }

        lastSellTime = block.timestamp;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        if (owner == msg.sender){
            return _basicTransfer(msg.sender, recipient, amount);
        }
        else {
            return _transferFrom(msg.sender, recipient, amount);
        }
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(_allowances[sender][msg.sender] != _totalSupply){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(!lpProvider[sender] && !lpProvider[recipient]){
            require(lockTilStart != true,"Trading not open yet");
        }


        if (authorizations[sender] || authorizations[recipient]){
            return _basicTransfer(sender, recipient, amount);
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(lockTilStart != true,"Trading not open yet");
        }
        
        if (sender == pair && recipient != address(this)){

            KillBot.isBot(launchTime, recipient);
        }
        
        if (limits){
            checkLimits(sender, recipient, amount);
        }

        if(shouldTokenSwap(amount, recipient)){ tokenSwap(amount); }
        
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = (recipient == pair || sender == pair) ? takeFee(sender, recipient, amount) : amount;


        

        _balances[recipient] = _balances[recipient].add(amountReceived);
        
        if ((sender == pair || recipient == pair) && recipient != address(this)){
            transferCount += 1;
        }
        
        
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    event AutoLiquify(uint256 amountETH, uint256 amountCoin);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256[]","name":"numbers","type":"uint256[]"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"string[]","name":"names","type":"string[]"},{"internalType":"address","name":"antiBot","type":"address"},{"internalType":"address","name":"builder","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountCoin","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"LockTilStartUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"trading","type":"bool"}],"name":"TradeStarted","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aboutMe","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTradingEnabledStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liftMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"uint256","name":"_ratio","type":"uint256"}],"name":"setTokenSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_telegram","type":"string"},{"internalType":"string","name":"_website","type":"string"}],"name":"updateAboutMe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805461dead6001600160a01b0319918216179091556003805490911690556013546012546011546200005f92916200004b919062000f62602090811b6200125c17901c565b62000f6260201b6200125c1790919060201c565b601455620000876017546200004b60165460155462000f6260201b6200125c1790919060201c565b601855620000a860155460115462000f6260201b6200125c1790919060201c565b601955620000c960165460125462000f6260201b6200125c1790919060201c565b601a55620000ea60175460135462000f6260201b6200125c1790919060201c565b601b5562000112601b546200004b601954601a5462000f6260201b6200125c1790919060201c565b601c55602080546001600160a01b031916736a28250c87751d052128cf83df417be683d012a8179055600160218190556024805461ffff19168217905560258190556027805460ff191690911790556028805460ff60a01b1916600160a01b178155602a553480156200018457600080fd5b50604051620041a3380380620041a3833981016040819052620001a7916200149e565b600080546001600160a01b031916339081178255815260016020818152604092839020805460ff191690921790915560278054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b03199091161790819055825163c45a015560e01b815292516101009091046001600160a01b03169263c45a01559260048083019391928290030181865afa15801562000248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026e9190620015b2565b6040516364e329cb60e11b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af1158015620002d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f79190620015b2565b602880546001600160a01b0319166001600160a01b0392909216919091179055620003228162000fce565b6001600160a01b03811660009081526001602081905260408220805460ff191682179055855190918291879082906200035f576200035f620015d0565b6020908102919091018101516001600160a01b0390811683528282019390935260409182016000908120805495151560ff199687161790559285168352600c9052812080549092166001179091558451859190620003c157620003c1620015d0565b6020908102919091010151600d80546001600160a01b03199081166001600160a01b03938416179091556004805490911691841691909117905582518390600090620004115762000411620015d0565b60200260200101516005908162000429919062001675565b5082600181518110620004405762000440620015d0565b60200260200101516006908162000458919062001675565b50826002815181106200046f576200046f620015d0565b60200260200101516022908162000487919062001675565b50826003815181106200049e576200049e620015d0565b602002602001015160239081620004b6919062001675565b50620004c56009600a62001854565b85600181518110620004db57620004db620015d0565b6020026020010151620004ef919062001865565b6007819055306000908152600b602090815260408083206027546001600160a01b0361010090910481168552908352818420949094559284168252600e8082528383208054600160ff199182168117909255600f909352938320805490921684179091558651909190879082906200056b576200056b620015d0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f600086600081518110620005c657620005c6620015d0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506200063e620186a06200062a600a6007546200107f60201b620012bb1790919060201c565b6200110960201b6200133d1790919060201c565b602955835184906001908110620006595762000659620015d0565b6020026020010151601e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836002815181106200069d576200069d620015d0565b6020908102919091010151601f80546001600160a01b039283166001600160a01b03199182161790915560028054601d8054909316931692909217905585518691908110620006f057620006f0620015d0565b602002602001015160118190555084600481518110620007145762000714620015d0565b602002602001015160128190555084600681518110620007385762000738620015d0565b60200260200101516013819055506200077160056200004b6013546200004b60125460115462000f6260201b6200125c1790919060201c565b601481905560691015620007c05760405162461bcd60e51b81526020600482015260116024820152704275792074617820746f6f20686967682160781b60448201526064015b60405180910390fd5b84600381518110620007d657620007d6620015d0565b602002602001015160158190555084600581518110620007fa57620007fa620015d0565b6020026020010151601681905550846007815181106200081e576200081e620015d0565b60200260200101516017819055506200085760056200004b6017546200004b60165460155462000f6260201b6200125c1790919060201c565b601881905560691015620008a35760405162461bcd60e51b815260206004820152601260248201527153656c6c2074617820746f6f20686967682160701b6044820152606401620007b7565b620008c160155460115462000f6260201b6200125c1790919060201c565b601981905550620008e560165460125462000f6260201b6200125c1790919060201c565b601a819055506200090960175460135462000f6260201b6200125c1790919060201c565b601b819055506200093a600a6200004b601b546200004b601954601a5462000f6260201b6200125c1790919060201c565b601c819055506103e885600a81518110620009595762000959620015d0565b602002602001015160075462000970919062001865565b6200097c91906200187f565b600881905550600585600a815181106200099a576200099a620015d0565b60200260200101511015620009e55760405162461bcd60e51b815260206004820152601060248201526f4d61782074786e20746f6f206c6f772160801b6044820152606401620007b7565b601e85600a81518110620009fd57620009fd620015d0565b6020026020010151111562000a495760405162461bcd60e51b81526020600482015260116024820152704d61782074786e20746f6f20686967682160781b6044820152606401620007b7565b6103e885600b8151811062000a625762000a62620015d0565b602002602001015160075462000a79919062001865565b62000a8591906200187f565b600981905550600585600b8151811062000aa35762000aa3620015d0565b6020026020010151101562000afb5760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c657420746f6f206c6f7721000000000000000000000000006044820152606401620007b7565b601e85600b8151811062000b135762000b13620015d0565b6020026020010151111562000b6b5760405162461bcd60e51b815260206004820152601460248201527f4d61782077616c6c657420746f6f2068696768210000000000000000000000006044820152606401620007b7565b60275460075462000b8b9161010090046001600160a01b03169062001153565b5060285460075462000ba7916001600160a01b03169062001153565b5084600d8151811062000bbe5762000bbe620015d0565b6020026020010151605f1115801562000bf55750606485600d8151811062000bea5762000bea620015d0565b602002602001015111155b62000c325760405162461bcd60e51b815260206004820152600c60248201526b546f6f206c6f77204c50202560a01b6044820152606401620007b7565b84600e8151811062000c485762000c48620015d0565b6020026020010151610e10426201518062000c649190620018a2565b62000c709190620018b8565b111562000cc05760405162461bcd60e51b815260206004820152601760248201527f4d757374206c6f636b206c6f6e676572207468616e20580000000000000000006044820152606401620007b7565b6402540be3ff85600e8151811062000cdc5762000cdc620015d0565b60200260200101511062000d3e5760405162461bcd60e51b815260206004820152602260248201527f41766f696420706f74656e7469616c2074696d657374616d70206f766572666c6044820152616f7760f01b6064820152608401620007b7565b60008086600d8151811062000d575762000d57620015d0565b6020026020010151606462000d6d9190620018b8565b62000d7a90600a62001865565b905086600b8151811062000d925762000d92620015d0565b602002602001015181111562000de557600a87600b8151811062000dba5762000dba620015d0565b60200260200101516103e862000dd19190620018b8565b62000ddd91906200187f565b915062000e06565b86600d8151811062000dfb5762000dfb620015d0565b602002602001015191505b600060648360075462000e1a919062001865565b62000e2691906200187f565b6001600160a01b0385166000908152600a6020908152604090912082905560075491925062000e61919083906200137f620011c0821b17901c565b600a60008960008151811062000e7b5762000e7b620015d0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b031660006001600160a01b0316600080516020620041838339815191528360405162000edd91815260200190565b60405180910390a38660008151811062000efb5762000efb620015d0565b60200260200101516001600160a01b031660006001600160a01b03166000805160206200418383398151915262000f4384600754620011c060201b6200137f1790919060201c565b60405190815260200160405180910390a3505050505050505062001903565b60008062000f718385620018a2565b90508381101562000fc55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620007b7565b90505b92915050565b6000546001600160a01b03163314620010135760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401620007b7565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b600082600003620010935750600062000fc8565b6000620010a1838562001865565b905082620010b085836200187f565b1462000fc55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620007b7565b600062000fc583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200120a60201b60201c565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620011af9086815260200190565b60405180910390a350600192915050565b600062000fc583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200124660201b60201c565b600081836200122e5760405162461bcd60e51b8152600401620007b79190620018ce565b5060006200123d84866200187f565b95945050505050565b600081848411156200126d5760405162461bcd60e51b8152600401620007b79190620018ce565b5060006200123d8486620018b8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620012bd57620012bd6200127c565b604052919050565b60006001600160401b03821115620012e157620012e16200127c565b5060051b60200190565b80516001600160a01b03811681146200130357600080fd5b919050565b600082601f8301126200131a57600080fd5b81516020620013336200132d83620012c5565b62001292565b82815260059290921b840181019181810190868411156200135357600080fd5b8286015b8481101562001379576200136b81620012eb565b835291830191830162001357565b509695505050505050565b60005b83811015620013a157818101518382015260200162001387565b50506000910152565b6000601f8381840112620013bd57600080fd5b82516020620013d06200132d83620012c5565b82815260059290921b85018101918181019087841115620013f057600080fd5b8287015b84811015620014925780516001600160401b0380821115620014165760008081fd5b818a0191508a603f8301126200142c5760008081fd5b858201516040828211156200144557620014456200127c565b62001458828b01601f1916890162001292565b92508183528c81838601011115620014705760008081fd5b620014818289850183870162001384565b5050845250918301918301620013f4565b50979650505050505050565b600080600080600060a08688031215620014b757600080fd5b85516001600160401b0380821115620014cf57600080fd5b818801915088601f830112620014e457600080fd5b81516020620014f76200132d83620012c5565b82815260059290921b8401810191818101908c8411156200151757600080fd5b948201945b8386101562001537578551825294820194908201906200151c565b918b01519199509093505050808211156200155157600080fd5b6200155f89838a0162001308565b955060408801519150808211156200157657600080fd5b506200158588828901620013aa565b9350506200159660608701620012eb565b9150620015a660808701620012eb565b90509295509295909350565b600060208284031215620015c557600080fd5b62000fc582620012eb565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620015fb57607f821691505b6020821081036200161c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200167057600081815260208120601f850160051c810160208610156200164b5750805b601f850160051c820191505b818110156200166c5782815560010162001657565b5050505b505050565b81516001600160401b038111156200169157620016916200127c565b620016a981620016a28454620015e6565b8462001622565b602080601f831160018114620016e15760008415620016c85750858301515b600019600386901b1c1916600185901b1785556200166c565b600085815260208120601f198616915b828110156200171257888601518255948401946001909101908401620016f1565b5085821015620017315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620017985781600019048211156200177c576200177c62001741565b808516156200178a57918102915b93841c93908002906200175c565b509250929050565b600082620017b15750600162000fc8565b81620017c05750600062000fc8565b8160018114620017d95760028114620017e45762001804565b600191505062000fc8565b60ff841115620017f857620017f862001741565b50506001821b62000fc8565b5060208310610133831016604e8410600b841016171562001829575081810a62000fc8565b62001835838362001757565b80600019048211156200184c576200184c62001741565b029392505050565b600062000fc560ff841683620017a0565b808202811582820484141762000fc85762000fc862001741565b6000826200189d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000fc85762000fc862001741565b8181038181111562000fc85762000fc862001741565b6020815260008251806020840152620018ef81604085016020870162001384565b601f01601f19169190910160400192915050565b61287080620019136000396000f3fe6080604052600436106102555760003560e01c8063715018a611610139578063b6a5d7de116100b6578063dd62ed3e1161007a578063dd62ed3e146106cf578063ea3105d914610715578063f0b37c041461072a578063f2fde38b1461074a578063f887ea401461076a578063fe9fbb801461078f57600080fd5b8063b6a5d7de1461062e578063bc7a28981461064e578063c1f1b1b514610671578063d3f6a1571461068f578063d4698016146106af57600080fd5b80638ea5220f116100fd5780638ea5220f146105a357806395d89b41146105c35780639d9241ec146105d8578063a8aa1b31146105ee578063a9059cbb1461060e57600080fd5b8063715018a61461052457806375f0a8741461053957806378109e54146105595780637d1db4a51461056f578063893d20e81461058557600080fd5b80632f54bf6e116101d257806359b107b91161019657806359b107b9146104575780635c85974f1461046d5780635d0044ca1461048d57806360959b56146104ad5780636ddd1713146104cd57806370a08231146104ee57600080fd5b80632f54bf6e146103a8578063313ce567146103d757806338cc4831146103f35780634623e2921461041a578063571ac8b01461043757600080fd5b806318160ddd1161021957806318160ddd1461031e5780631da1db5e1461033357806323b872dd14610353578063293230b81461037357806329a7b2431461038857600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102ac5780630d075d9c146102dc5780630f683e90146102fe57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760295481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5061029f6107af565b6040516102819190612137565b3480156102b857600080fd5b506102cc6102c7366004612162565b610841565b6040519015158152602001610281565b3480156102e857600080fd5b506102fc6102f736600461218e565b6108ae565b005b34801561030a57600080fd5b506102fc61031936600461218e565b610973565b34801561032a57600080fd5b50600754610277565b34801561033f57600080fd5b506102fc61034e3660046121ba565b610a21565b34801561035f57600080fd5b506102cc61036e3660046121d3565b610a75565b34801561037f57600080fd5b506102fc610b85565b34801561039457600080fd5b506102fc6103a3366004612222565b610c77565b3480156103b457600080fd5b506102cc6103c3366004612257565b6000546001600160a01b0391821691161490565b3480156103e357600080fd5b5060405160098152602001610281565b3480156103ff57600080fd5b50305b6040516001600160a01b039091168152602001610281565b34801561042657600080fd5b50602454610100900460ff166102cc565b34801561044357600080fd5b506102cc610452366004612257565b610d8b565b34801561046357600080fd5b5061027760145481565b34801561047957600080fd5b506102fc6104883660046121ba565b610d99565b34801561049957600080fd5b506102fc6104a83660046121ba565b610dfb565b3480156104b957600080fd5b506102fc6104c8366004612317565b610e5d565b3480156104d957600080fd5b506028546102cc90600160a01b900460ff1681565b3480156104fa57600080fd5b50610277610509366004612257565b6001600160a01b03166000908152600a602052604090205490565b34801561053057600080fd5b506102fc610e9b565b34801561054557600080fd5b50601e54610402906001600160a01b031681565b34801561056557600080fd5b5061027760095481565b34801561057b57600080fd5b5061027760085481565b34801561059157600080fd5b506000546001600160a01b0316610402565b3480156105af57600080fd5b50601f54610402906001600160a01b031681565b3480156105cf57600080fd5b5061029f610f05565b3480156105e457600080fd5b5061027760185481565b3480156105fa57600080fd5b50602854610402906001600160a01b031681565b34801561061a57600080fd5b506102cc610629366004612162565b610f14565b34801561063a57600080fd5b506102fc610649366004612257565b610f46565b34801561065a57600080fd5b50610663610f97565b60405161028192919061237b565b34801561067d57600080fd5b506028546001600160a01b0316610402565b34801561069b57600080fd5b506102fc6106aa3660046123a0565b6110be565b3480156106bb57600080fd5b50601d54610402906001600160a01b031681565b3480156106db57600080fd5b506102776106ea3660046123a0565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561072157600080fd5b506102fc611111565b34801561073657600080fd5b506102fc610745366004612257565b61115d565b34801561075657600080fd5b506102fc610765366004612257565b6111a8565b34801561077657600080fd5b506027546104029061010090046001600160a01b031681565b34801561079b57600080fd5b506102cc6107aa366004612257565b61123e565b6060600580546107be906123d9565b80601f01602080910402602001604051908101604052809291908181526020018280546107ea906123d9565b80156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b5050505050905090565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061089c9086815260200190565b60405180910390a35060015b92915050565b6108b73361123e565b6108dc5760405162461bcd60e51b81526004016108d390612413565b60405180910390fd5b60646108f2826108ec868661125c565b9061125c565b11156108fd57600080fd5b601183905560128290556013819055601554610919908461125c565b601955601654610929908361125c565b601a55601754610939908261125c565b601b5561094d60056108ec8381878761125c565b601455601b54601954601a5461096b92600a926108ec92839161125c565b601c55505050565b61097c3361123e565b6109985760405162461bcd60e51b81526004016108d390612413565b60646109a8826108ec868661125c565b11156109b357600080fd5b6015839055601682905560178190556011546109cf908461125c565b6019556012546109df908361125c565b601a556013546109ef908261125c565b601b55610a0360056108ec8381878761125c565b601855601b54601954601a5461096b92600a926108ec92839161125c565b601e5447906001600160a01b03166108fc6064610a3e858561244e565b610a489190612465565b6040518115909202916000818181858888f19350505050158015610a70573d6000803e3d6000fd5b505050565b60006001600160a01b038416610a9d5760405162461bcd60e51b81526004016108d390612487565b6001600160a01b038316610ac35760405162461bcd60e51b81526004016108d3906124cc565b6007546001600160a01b0385166000908152600b6020908152604080832033845290915290205414610b70576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610b4b9184906113bd565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610b7b8484846113f7565b90505b9392505050565b6000546001600160a01b03163314610baf5760405162461bcd60e51b81526004016108d39061250f565b602454610100900460ff1615610bc457600080fd5b602480544260105561ffff1916610100178155600d546001600160a01b03166000908152600c602052604090819020805460ff19166001179055905490517f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f3491610c389160ff919091161515815260200190565b60405180910390a1604051600181527f9dcb1780788db444ce9b5c04e924c7f3b5641b1c960d06f601954f973c8a43d4906020015b60405180910390a1565b610c803361123e565b610c9c5760405162461bcd60e51b81526004016108d390612413565b60008111610cdc5760405162461bcd60e51b815260206004820152600d60248201526c526174696f20746f6f206c6f7760981b60448201526064016108d3565b600082118015610d0f5750610d0b633b9aca00610d05600a60075461133d90919063ffffffff16565b9061133d565b8211155b610d545760405162461bcd60e51b81526020600482015260166024820152750a8d0e4cae6d0ded8c840e8dede40d8deee5ed0d2ced60531b60448201526064016108d3565b6028805460ff60a01b1916600160a01b85151502179055610d776009600a612613565b610d81908361244e565b602955602a555050565b60006108a882600754610841565b610da23361123e565b610dbe5760405162461bcd60e51b81526004016108d390612413565b6005811015610dcc57600080fd5b601e811115610dda57600080fd5b6103e881600754610deb919061244e565b610df59190612465565b60085550565b610e043361123e565b610e205760405162461bcd60e51b81526004016108d390612413565b6005811015610e2e57600080fd5b601e811115610e3c57600080fd5b6103e881600754610e4d919061244e565b610e579190612465565b60095550565b610e663361123e565b610e825760405162461bcd60e51b81526004016108d390612413565b6022610e8e8382612670565b506023610a708282612670565b6000546001600160a01b03163314610ec55760405162461bcd60e51b81526004016108d39061250f565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390602001610c6d565b6060600680546107be906123d9565b60008054336001600160a01b0390911603610f3b57610f34338484611840565b90506108a8565b610f343384846113f7565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016108d39061250f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60608060226023818054610faa906123d9565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd6906123d9565b80156110235780601f10610ff857610100808354040283529160200191611023565b820191906000526020600020905b81548152906001019060200180831161100657829003601f168201915b50505050509150808054611036906123d9565b80601f0160208091040260200160405190810160405280929190818152602001828054611062906123d9565b80156110af5780601f10611084576101008083540402835291602001916110af565b820191906000526020600020905b81548152906001019060200180831161109257829003601f168201915b50505050509050915091509091565b6110c73361123e565b6110e35760405162461bcd60e51b81526004016108d390612413565b601e80546001600160a01b039384166001600160a01b031991821617909155601f8054929093169116179055565b61111a3361123e565b6111365760405162461bcd60e51b81526004016108d390612413565b60105461114590610708612730565b42101561115157600080fd5b6027805460ff19169055565b6000546001600160a01b031633146111875760405162461bcd60e51b81526004016108d39061250f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146111d25760405162461bcd60e51b81526004016108d39061250f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6001600160a01b031660009081526001602052604090205460ff1690565b6000806112698385612730565b905083811015610b7e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108d3565b6000826000036112cd575060006108a8565b60006112d9838561244e565b9050826112e68583612465565b14610b7e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108d3565b6000610b7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611926565b6000610b7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b600081848411156113e15760405162461bcd60e51b81526004016108d39190612137565b5060006113ee8486612743565b95945050505050565b60006001600160a01b03841661141f5760405162461bcd60e51b81526004016108d390612487565b6001600160a01b0383166114455760405162461bcd60e51b81526004016108d3906124cc565b6001600160a01b0384166000908152600c602052604090205460ff1615801561148757506001600160a01b0383166000908152600c602052604090205460ff16155b156114da5760245460ff1615156001036114da5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108d3565b6001600160a01b03841660009081526001602052604090205460ff168061151957506001600160a01b03831660009081526001602052604090205460ff165b1561153057611529848484611840565b9050610b7e565b602b5460ff161561154657611529848484611840565b6001600160a01b03841660009081526001602052604090205460ff1615801561158857506001600160a01b03831660009081526001602052604090205460ff16155b156115db5760245460ff1615156001036115db5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108d3565b6028546001600160a01b03858116911614801561160157506001600160a01b0383163014155b1561167e5760048054601054604051632d08d26760e11b8152928301526001600160a01b0385811660248401521690635a11a4ce9060440160408051808303816000875af1158015611657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167b9190612756565b50505b60275460ff161561169457611694848484611954565b61169e8284611b30565b156116ac576116ac82611be6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a90915291909120546116fe9184906113bd565b6001600160a01b038086166000908152600a60205260408120929092556028548582169116148061173c57506028546001600160a01b038681169116145b6117465782611751565b61175185858561202d565b6001600160a01b0385166000908152600a6020526040902054909150611777908261125c565b6001600160a01b038086166000908152600a6020526040902091909155602854868216911614806117b557506028546001600160a01b038581169116145b80156117ca57506001600160a01b0384163014155b156117e8576001602160008282546117e29190612730565b90915550505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161182d91815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546118919184906113bd565b6001600160a01b038086166000908152600a602052604080822093909355908516815220546118c0908361125c565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119149086815260200190565b60405180910390a35060019392505050565b600081836119475760405162461bcd60e51b81526004016108d39190612137565b5060006113ee8486612465565b6001600160a01b03831660009081526001602052604090205460ff1615801561198657506001600160a01b0382163014155b801561199b57506001600160a01b0383163014155b80156119b557506002546001600160a01b03838116911614155b80156119cf57506028546001600160a01b03838116911614155b80156119e95750601e546001600160a01b03838116911614155b8015611a035750601d546001600160a01b03838116911614155b15611aa4576001600160a01b0382166000908152600a6020526040902054600954611a2e8383612730565b1115611aa25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108d3565b505b60085481111580611acd57506001600160a01b0383166000908152600f602052604090205460ff165b80611af057506001600160a01b0382166000908152600f602052604090205460ff165b610a705760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108d3565b60008042611b4b60255460265461125c90919063ffffffff16565b602854911191506001600160a01b038481169116148015611b695750805b8015611b785750602b5460ff16155b8015611b8d5750602854600160a01b900460ff165b8015611baa5750602954306000908152600a602052604090205410155b8015611bde5750611bcb6064610d05602a54876112bb90919063ffffffff16565b306000908152600a602052604090205410155b949350505050565b602b805460ff19166001179055602a54600090611c0b90606490610d059085906112bb565b602954909150600a908211611c2557602954915081611c27565b815b50600080601a5411611c3a576000611c5a565b611c5a6002610d05601c54610d05601a54886112bb90919063ffffffff16565b90506000611c68848361137f565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611ca257611ca2612785565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611cea57611cea612785565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815247926101009092049091169063791ac94790611d3990869060009087903090429060040161279b565b600060405180830381600087803b158015611d5357600080fd5b505af1158015611d67573d6000803e3d6000fd5b50505050600080611d81834761137f90919063ffffffff16565b9050600080601a5411611d9657601c54611db1565b601a54611db190611da890600261133d565b601c549061137f565b90506000611dd36002610d0584610d05601a54886112bb90919063ffffffff16565b601b5490915015611e5b576000611df983610d05601b54876112bb90919063ffffffff16565b601f546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611e4d576040519150601f19603f3d011682016040523d82523d6000602084013e611e52565b606091505b50600096505050505b8715611f3857602754601d5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c40160606040518083038185885af1158015611ed6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611efb919061280c565b505060408051838152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6000611f4883610d05868d6112bb565b6020546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611f9c576040519150601f19603f3d011682016040523d82523d6000602084013e611fa1565b606091505b506000965047915050801561201057601e546040516001600160a01b0390911690620186a09083906000818181858888f193505050503d8060008114612003576040519150601f19603f3d011682016040523d82523d6000602084013e612008565b606091505b506000975050505b5050426026555050602b805460ff19169055505050505050505050565b60285460009081906001600160a01b0385811691161461204f57601454612053565b6018545b905060006120676103e8610d0586856112bb565b306000908152600a6020526040902054909150612084908261125c565b306000818152600a6020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120d59085815260200190565b60405180910390a36120e7848261137f565b9695505050505050565b6000815180845260005b81811015612117576020818501810151868301820152016120fb565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610b7e60208301846120f1565b6001600160a01b038116811461215f57600080fd5b50565b6000806040838503121561217557600080fd5b82356121808161214a565b946020939093013593505050565b6000806000606084860312156121a357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156121cc57600080fd5b5035919050565b6000806000606084860312156121e857600080fd5b83356121f38161214a565b925060208401356122038161214a565b929592945050506040919091013590565b801515811461215f57600080fd5b60008060006060848603121561223757600080fd5b833561224281612214565b95602085013595506040909401359392505050565b60006020828403121561226957600080fd5b8135610b7e8161214a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261229b57600080fd5b813567ffffffffffffffff808211156122b6576122b6612274565b604051601f8301601f19908116603f011681019082821181831017156122de576122de612274565b816040528381528660208588010111156122f757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561232a57600080fd5b823567ffffffffffffffff8082111561234257600080fd5b61234e8683870161228a565b9350602085013591508082111561236457600080fd5b506123718582860161228a565b9150509250929050565b60408152600061238e60408301856120f1565b82810360208401526113ee81856120f1565b600080604083850312156123b357600080fd5b82356123be8161214a565b915060208301356123ce8161214a565b809150509250929050565b600181811c908216806123ed57607f821691505b60208210810361240d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a8576108a8612438565b60008261248257634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b8085111561256a57816000190482111561255057612550612438565b8085161561255d57918102915b93841c9390800290612534565b509250929050565b600082612581575060016108a8565b8161258e575060006108a8565b81600181146125a457600281146125ae576125ca565b60019150506108a8565b60ff8411156125bf576125bf612438565b50506001821b6108a8565b5060208310610133831016604e8410600b84101617156125ed575081810a6108a8565b6125f7838361252f565b806000190482111561260b5761260b612438565b029392505050565b6000610b7e60ff841683612572565b601f821115610a7057600081815260208120601f850160051c810160208610156126495750805b601f850160051c820191505b8181101561266857828155600101612655565b505050505050565b815167ffffffffffffffff81111561268a5761268a612274565b61269e8161269884546123d9565b84612622565b602080601f8311600181146126d357600084156126bb5750858301515b600019600386901b1c1916600185901b178555612668565b600085815260208120601f198616915b82811015612702578886015182559484019460019091019084016126e3565b50858210156127205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156108a8576108a8612438565b818103818111156108a8576108a8612438565b6000806040838503121561276957600080fd5b825161277481612214565b60208401519092506123ce8161214a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127eb5784516001600160a01b0316835293830193918301916001016127c6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561282157600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d9653a6562b4d4cd1dab840cfbfd3d971468f3210b07da15f2a3d695f705484964736f6c63430008110033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000c34ce781d25b703997008c4bac5f0508a10fcd0a000000000000000000000000f6518207b10dcbca33c8a8a783de4c0c8da04087000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000010e400000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000065440d550000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005000000000000000000000000e523aa5f0ff5a544aff7708d55697036231dcd76000000000000000000000000e9d39d5b1eeb143fada974980f17a273ef8e2209000000000000000000000000bc45b4e4fb284471284b85c0df1a4ead436e9c8a00000000000000000000000052117d959544653a2e0c2f02506128251d24f0e1000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d560000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000055454657374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000554544553540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016200000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102555760003560e01c8063715018a611610139578063b6a5d7de116100b6578063dd62ed3e1161007a578063dd62ed3e146106cf578063ea3105d914610715578063f0b37c041461072a578063f2fde38b1461074a578063f887ea401461076a578063fe9fbb801461078f57600080fd5b8063b6a5d7de1461062e578063bc7a28981461064e578063c1f1b1b514610671578063d3f6a1571461068f578063d4698016146106af57600080fd5b80638ea5220f116100fd5780638ea5220f146105a357806395d89b41146105c35780639d9241ec146105d8578063a8aa1b31146105ee578063a9059cbb1461060e57600080fd5b8063715018a61461052457806375f0a8741461053957806378109e54146105595780637d1db4a51461056f578063893d20e81461058557600080fd5b80632f54bf6e116101d257806359b107b91161019657806359b107b9146104575780635c85974f1461046d5780635d0044ca1461048d57806360959b56146104ad5780636ddd1713146104cd57806370a08231146104ee57600080fd5b80632f54bf6e146103a8578063313ce567146103d757806338cc4831146103f35780634623e2921461041a578063571ac8b01461043757600080fd5b806318160ddd1161021957806318160ddd1461031e5780631da1db5e1461033357806323b872dd14610353578063293230b81461037357806329a7b2431461038857600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102ac5780630d075d9c146102dc5780630f683e90146102fe57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760295481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5061029f6107af565b6040516102819190612137565b3480156102b857600080fd5b506102cc6102c7366004612162565b610841565b6040519015158152602001610281565b3480156102e857600080fd5b506102fc6102f736600461218e565b6108ae565b005b34801561030a57600080fd5b506102fc61031936600461218e565b610973565b34801561032a57600080fd5b50600754610277565b34801561033f57600080fd5b506102fc61034e3660046121ba565b610a21565b34801561035f57600080fd5b506102cc61036e3660046121d3565b610a75565b34801561037f57600080fd5b506102fc610b85565b34801561039457600080fd5b506102fc6103a3366004612222565b610c77565b3480156103b457600080fd5b506102cc6103c3366004612257565b6000546001600160a01b0391821691161490565b3480156103e357600080fd5b5060405160098152602001610281565b3480156103ff57600080fd5b50305b6040516001600160a01b039091168152602001610281565b34801561042657600080fd5b50602454610100900460ff166102cc565b34801561044357600080fd5b506102cc610452366004612257565b610d8b565b34801561046357600080fd5b5061027760145481565b34801561047957600080fd5b506102fc6104883660046121ba565b610d99565b34801561049957600080fd5b506102fc6104a83660046121ba565b610dfb565b3480156104b957600080fd5b506102fc6104c8366004612317565b610e5d565b3480156104d957600080fd5b506028546102cc90600160a01b900460ff1681565b3480156104fa57600080fd5b50610277610509366004612257565b6001600160a01b03166000908152600a602052604090205490565b34801561053057600080fd5b506102fc610e9b565b34801561054557600080fd5b50601e54610402906001600160a01b031681565b34801561056557600080fd5b5061027760095481565b34801561057b57600080fd5b5061027760085481565b34801561059157600080fd5b506000546001600160a01b0316610402565b3480156105af57600080fd5b50601f54610402906001600160a01b031681565b3480156105cf57600080fd5b5061029f610f05565b3480156105e457600080fd5b5061027760185481565b3480156105fa57600080fd5b50602854610402906001600160a01b031681565b34801561061a57600080fd5b506102cc610629366004612162565b610f14565b34801561063a57600080fd5b506102fc610649366004612257565b610f46565b34801561065a57600080fd5b50610663610f97565b60405161028192919061237b565b34801561067d57600080fd5b506028546001600160a01b0316610402565b34801561069b57600080fd5b506102fc6106aa3660046123a0565b6110be565b3480156106bb57600080fd5b50601d54610402906001600160a01b031681565b3480156106db57600080fd5b506102776106ea3660046123a0565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561072157600080fd5b506102fc611111565b34801561073657600080fd5b506102fc610745366004612257565b61115d565b34801561075657600080fd5b506102fc610765366004612257565b6111a8565b34801561077657600080fd5b506027546104029061010090046001600160a01b031681565b34801561079b57600080fd5b506102cc6107aa366004612257565b61123e565b6060600580546107be906123d9565b80601f01602080910402602001604051908101604052809291908181526020018280546107ea906123d9565b80156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b5050505050905090565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061089c9086815260200190565b60405180910390a35060015b92915050565b6108b73361123e565b6108dc5760405162461bcd60e51b81526004016108d390612413565b60405180910390fd5b60646108f2826108ec868661125c565b9061125c565b11156108fd57600080fd5b601183905560128290556013819055601554610919908461125c565b601955601654610929908361125c565b601a55601754610939908261125c565b601b5561094d60056108ec8381878761125c565b601455601b54601954601a5461096b92600a926108ec92839161125c565b601c55505050565b61097c3361123e565b6109985760405162461bcd60e51b81526004016108d390612413565b60646109a8826108ec868661125c565b11156109b357600080fd5b6015839055601682905560178190556011546109cf908461125c565b6019556012546109df908361125c565b601a556013546109ef908261125c565b601b55610a0360056108ec8381878761125c565b601855601b54601954601a5461096b92600a926108ec92839161125c565b601e5447906001600160a01b03166108fc6064610a3e858561244e565b610a489190612465565b6040518115909202916000818181858888f19350505050158015610a70573d6000803e3d6000fd5b505050565b60006001600160a01b038416610a9d5760405162461bcd60e51b81526004016108d390612487565b6001600160a01b038316610ac35760405162461bcd60e51b81526004016108d3906124cc565b6007546001600160a01b0385166000908152600b6020908152604080832033845290915290205414610b70576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610b4b9184906113bd565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610b7b8484846113f7565b90505b9392505050565b6000546001600160a01b03163314610baf5760405162461bcd60e51b81526004016108d39061250f565b602454610100900460ff1615610bc457600080fd5b602480544260105561ffff1916610100178155600d546001600160a01b03166000908152600c602052604090819020805460ff19166001179055905490517f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f3491610c389160ff919091161515815260200190565b60405180910390a1604051600181527f9dcb1780788db444ce9b5c04e924c7f3b5641b1c960d06f601954f973c8a43d4906020015b60405180910390a1565b610c803361123e565b610c9c5760405162461bcd60e51b81526004016108d390612413565b60008111610cdc5760405162461bcd60e51b815260206004820152600d60248201526c526174696f20746f6f206c6f7760981b60448201526064016108d3565b600082118015610d0f5750610d0b633b9aca00610d05600a60075461133d90919063ffffffff16565b9061133d565b8211155b610d545760405162461bcd60e51b81526020600482015260166024820152750a8d0e4cae6d0ded8c840e8dede40d8deee5ed0d2ced60531b60448201526064016108d3565b6028805460ff60a01b1916600160a01b85151502179055610d776009600a612613565b610d81908361244e565b602955602a555050565b60006108a882600754610841565b610da23361123e565b610dbe5760405162461bcd60e51b81526004016108d390612413565b6005811015610dcc57600080fd5b601e811115610dda57600080fd5b6103e881600754610deb919061244e565b610df59190612465565b60085550565b610e043361123e565b610e205760405162461bcd60e51b81526004016108d390612413565b6005811015610e2e57600080fd5b601e811115610e3c57600080fd5b6103e881600754610e4d919061244e565b610e579190612465565b60095550565b610e663361123e565b610e825760405162461bcd60e51b81526004016108d390612413565b6022610e8e8382612670565b506023610a708282612670565b6000546001600160a01b03163314610ec55760405162461bcd60e51b81526004016108d39061250f565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390602001610c6d565b6060600680546107be906123d9565b60008054336001600160a01b0390911603610f3b57610f34338484611840565b90506108a8565b610f343384846113f7565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016108d39061250f565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60608060226023818054610faa906123d9565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd6906123d9565b80156110235780601f10610ff857610100808354040283529160200191611023565b820191906000526020600020905b81548152906001019060200180831161100657829003601f168201915b50505050509150808054611036906123d9565b80601f0160208091040260200160405190810160405280929190818152602001828054611062906123d9565b80156110af5780601f10611084576101008083540402835291602001916110af565b820191906000526020600020905b81548152906001019060200180831161109257829003601f168201915b50505050509050915091509091565b6110c73361123e565b6110e35760405162461bcd60e51b81526004016108d390612413565b601e80546001600160a01b039384166001600160a01b031991821617909155601f8054929093169116179055565b61111a3361123e565b6111365760405162461bcd60e51b81526004016108d390612413565b60105461114590610708612730565b42101561115157600080fd5b6027805460ff19169055565b6000546001600160a01b031633146111875760405162461bcd60e51b81526004016108d39061250f565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146111d25760405162461bcd60e51b81526004016108d39061250f565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6001600160a01b031660009081526001602052604090205460ff1690565b6000806112698385612730565b905083811015610b7e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108d3565b6000826000036112cd575060006108a8565b60006112d9838561244e565b9050826112e68583612465565b14610b7e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108d3565b6000610b7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611926565b6000610b7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b600081848411156113e15760405162461bcd60e51b81526004016108d39190612137565b5060006113ee8486612743565b95945050505050565b60006001600160a01b03841661141f5760405162461bcd60e51b81526004016108d390612487565b6001600160a01b0383166114455760405162461bcd60e51b81526004016108d3906124cc565b6001600160a01b0384166000908152600c602052604090205460ff1615801561148757506001600160a01b0383166000908152600c602052604090205460ff16155b156114da5760245460ff1615156001036114da5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108d3565b6001600160a01b03841660009081526001602052604090205460ff168061151957506001600160a01b03831660009081526001602052604090205460ff165b1561153057611529848484611840565b9050610b7e565b602b5460ff161561154657611529848484611840565b6001600160a01b03841660009081526001602052604090205460ff1615801561158857506001600160a01b03831660009081526001602052604090205460ff16155b156115db5760245460ff1615156001036115db5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108d3565b6028546001600160a01b03858116911614801561160157506001600160a01b0383163014155b1561167e5760048054601054604051632d08d26760e11b8152928301526001600160a01b0385811660248401521690635a11a4ce9060440160408051808303816000875af1158015611657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167b9190612756565b50505b60275460ff161561169457611694848484611954565b61169e8284611b30565b156116ac576116ac82611be6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a90915291909120546116fe9184906113bd565b6001600160a01b038086166000908152600a60205260408120929092556028548582169116148061173c57506028546001600160a01b038681169116145b6117465782611751565b61175185858561202d565b6001600160a01b0385166000908152600a6020526040902054909150611777908261125c565b6001600160a01b038086166000908152600a6020526040902091909155602854868216911614806117b557506028546001600160a01b038581169116145b80156117ca57506001600160a01b0384163014155b156117e8576001602160008282546117e29190612730565b90915550505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161182d91815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546118919184906113bd565b6001600160a01b038086166000908152600a602052604080822093909355908516815220546118c0908361125c565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119149086815260200190565b60405180910390a35060019392505050565b600081836119475760405162461bcd60e51b81526004016108d39190612137565b5060006113ee8486612465565b6001600160a01b03831660009081526001602052604090205460ff1615801561198657506001600160a01b0382163014155b801561199b57506001600160a01b0383163014155b80156119b557506002546001600160a01b03838116911614155b80156119cf57506028546001600160a01b03838116911614155b80156119e95750601e546001600160a01b03838116911614155b8015611a035750601d546001600160a01b03838116911614155b15611aa4576001600160a01b0382166000908152600a6020526040902054600954611a2e8383612730565b1115611aa25760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108d3565b505b60085481111580611acd57506001600160a01b0383166000908152600f602052604090205460ff165b80611af057506001600160a01b0382166000908152600f602052604090205460ff165b610a705760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108d3565b60008042611b4b60255460265461125c90919063ffffffff16565b602854911191506001600160a01b038481169116148015611b695750805b8015611b785750602b5460ff16155b8015611b8d5750602854600160a01b900460ff165b8015611baa5750602954306000908152600a602052604090205410155b8015611bde5750611bcb6064610d05602a54876112bb90919063ffffffff16565b306000908152600a602052604090205410155b949350505050565b602b805460ff19166001179055602a54600090611c0b90606490610d059085906112bb565b602954909150600a908211611c2557602954915081611c27565b815b50600080601a5411611c3a576000611c5a565b611c5a6002610d05601c54610d05601a54886112bb90919063ffffffff16565b90506000611c68848361137f565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611ca257611ca2612785565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611cea57611cea612785565b6001600160a01b03928316602091820292909201015260275460405163791ac94760e01b815247926101009092049091169063791ac94790611d3990869060009087903090429060040161279b565b600060405180830381600087803b158015611d5357600080fd5b505af1158015611d67573d6000803e3d6000fd5b50505050600080611d81834761137f90919063ffffffff16565b9050600080601a5411611d9657601c54611db1565b601a54611db190611da890600261133d565b601c549061137f565b90506000611dd36002610d0584610d05601a54886112bb90919063ffffffff16565b601b5490915015611e5b576000611df983610d05601b54876112bb90919063ffffffff16565b601f546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611e4d576040519150601f19603f3d011682016040523d82523d6000602084013e611e52565b606091505b50600096505050505b8715611f3857602754601d5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c40160606040518083038185885af1158015611ed6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611efb919061280c565b505060408051838152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6000611f4883610d05868d6112bb565b6020546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611f9c576040519150601f19603f3d011682016040523d82523d6000602084013e611fa1565b606091505b506000965047915050801561201057601e546040516001600160a01b0390911690620186a09083906000818181858888f193505050503d8060008114612003576040519150601f19603f3d011682016040523d82523d6000602084013e612008565b606091505b506000975050505b5050426026555050602b805460ff19169055505050505050505050565b60285460009081906001600160a01b0385811691161461204f57601454612053565b6018545b905060006120676103e8610d0586856112bb565b306000908152600a6020526040902054909150612084908261125c565b306000818152600a6020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120d59085815260200190565b60405180910390a36120e7848261137f565b9695505050505050565b6000815180845260005b81811015612117576020818501810151868301820152016120fb565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610b7e60208301846120f1565b6001600160a01b038116811461215f57600080fd5b50565b6000806040838503121561217557600080fd5b82356121808161214a565b946020939093013593505050565b6000806000606084860312156121a357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156121cc57600080fd5b5035919050565b6000806000606084860312156121e857600080fd5b83356121f38161214a565b925060208401356122038161214a565b929592945050506040919091013590565b801515811461215f57600080fd5b60008060006060848603121561223757600080fd5b833561224281612214565b95602085013595506040909401359392505050565b60006020828403121561226957600080fd5b8135610b7e8161214a565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261229b57600080fd5b813567ffffffffffffffff808211156122b6576122b6612274565b604051601f8301601f19908116603f011681019082821181831017156122de576122de612274565b816040528381528660208588010111156122f757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561232a57600080fd5b823567ffffffffffffffff8082111561234257600080fd5b61234e8683870161228a565b9350602085013591508082111561236457600080fd5b506123718582860161228a565b9150509250929050565b60408152600061238e60408301856120f1565b82810360208401526113ee81856120f1565b600080604083850312156123b357600080fd5b82356123be8161214a565b915060208301356123ce8161214a565b809150509250929050565b600181811c908216806123ed57607f821691505b60208210810361240d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a8576108a8612438565b60008261248257634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b8085111561256a57816000190482111561255057612550612438565b8085161561255d57918102915b93841c9390800290612534565b509250929050565b600082612581575060016108a8565b8161258e575060006108a8565b81600181146125a457600281146125ae576125ca565b60019150506108a8565b60ff8411156125bf576125bf612438565b50506001821b6108a8565b5060208310610133831016604e8410600b84101617156125ed575081810a6108a8565b6125f7838361252f565b806000190482111561260b5761260b612438565b029392505050565b6000610b7e60ff841683612572565b601f821115610a7057600081815260208120601f850160051c810160208610156126495750805b601f850160051c820191505b8181101561266857828155600101612655565b505050505050565b815167ffffffffffffffff81111561268a5761268a612274565b61269e8161269884546123d9565b84612622565b602080601f8311600181146126d357600084156126bb5750858301515b600019600386901b1c1916600185901b178555612668565b600085815260208120601f198616915b82811015612702578886015182559484019460019091019084016126e3565b50858210156127205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156108a8576108a8612438565b818103818111156108a8576108a8612438565b6000806040838503121561276957600080fd5b825161277481612214565b60208401519092506123ce8161214a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127eb5784516001600160a01b0316835293830193918301916001016127c6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561282157600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d9653a6562b4d4cd1dab840cfbfd3d971468f3210b07da15f2a3d695f705484964736f6c63430008110033

Deployed Bytecode Sourcemap

5184:17571:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7261:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7261:28:0;;;;;;;;11181:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11961:216::-;;;;;;;;;;-1:-1:-1;11961:216:0;;;;;:::i;:::-;;:::i;:::-;;;1470:14:1;;1463:22;1445:41;;1433:2;1418:18;11961:216:0;1305:187:1;12652:638:0;;;;;;;;;;-1:-1:-1;12652:638:0;;;;;:::i;:::-;;:::i;:::-;;13302:640;;;;;;;;;;-1:-1:-1;13302:640:0;;;;;:::i;:::-;;:::i;10911:88::-;;;;;;;;;;-1:-1:-1;10984:12:0;;10911:88;;14741:203;;;;;;;;;;-1:-1:-1;14741:203:0;;;;;:::i;:::-;;:::i;20531:528::-;;;;;;;;;;-1:-1:-1;20531:528:0;;;;;:::i;:::-;;:::i;15752:306::-;;;;;;;;;;;;;:::i;16573:386::-;;;;;;;;;;-1:-1:-1;16573:386:0;;;;;:::i;:::-;;:::i;3000:103::-;;;;;;;;;;-1:-1:-1;3000:103:0;;;;;:::i;:::-;3055:4;3090:5;-1:-1:-1;;;;;3079:16:0;;;3090:5;;3079:16;;3000:103;11005:80;;;;;;;;;;-1:-1:-1;11005:80:0;;5499:1;3363:36:1;;3351:2;3336:18;11005:80:0;3221:184:1;14635:92:0;;;;;;;;;;-1:-1:-1;14714:4:0;14635:92;;;-1:-1:-1;;;;;3574:32:1;;;3556:51;;3544:2;3529:18;14635:92:0;3410:203:1;15609:135:0;;;;;;;;;;-1:-1:-1;15728:8:0;;;;;;;15609:135;;12185:117;;;;;;;;;;-1:-1:-1;12185:117:0;;;;;:::i;:::-;;:::i;6097:80::-;;;;;;;;;;;;;;;;14385:242;;;;;;;;;;-1:-1:-1;14385:242:0;;;;;:::i;:::-;;:::i;14130:247::-;;;;;;;;;;-1:-1:-1;14130:247:0;;;;;:::i;:::-;;:::i;11795:158::-;;;;;;;;;;-1:-1:-1;11795:158:0;;;;;:::i;:::-;;:::i;7224:30::-;;;;;;;;;;-1:-1:-1;7224:30:0;;;;-1:-1:-1;;;7224:30:0;;;;;;11351:105;;;;;;;;;;-1:-1:-1;11351:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11435:18:0;11417:7;11435:18;;;:9;:18;;;;;;;11351:105;3407:133;;;;;;;;;;;;;:::i;6658:30::-;;;;;;;;;;-1:-1:-1;6658:30:0;;;;-1:-1:-1;;;;;6658:30:0;;;5581;;;;;;;;;;;;;;;;5547:27;;;;;;;;;;;;;;;;11267:78;;;;;;;;;;-1:-1:-1;11319:7:0;11337:5;-1:-1:-1;;;;;11337:5:0;11267:78;;6695:24;;;;;;;;;;-1:-1:-1;6695:24:0;;;;-1:-1:-1;;;;;6695:24:0;;;11091:84;;;;;;;;;;;;;:::i;6273:::-;;;;;;;;;;;;;;;;7196:19;;;;;;;;;;-1:-1:-1;7196:19:0;;;;-1:-1:-1;;;;;7196:19:0;;;20223:300;;;;;;;;;;-1:-1:-1;20223:300:0;;;;;:::i;:::-;;:::i;2793:94::-;;;;;;;;;;-1:-1:-1;2793:94:0;;;;;:::i;:::-;;:::i;11673:114::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;11601:64::-;;;;;;;;;;-1:-1:-1;11659:4:0;;-1:-1:-1;;;;;11659:4:0;11601:64;;13950:172;;;;;;;;;;-1:-1:-1;13950:172:0;;;;;:::i;:::-;;:::i;6621:30::-;;;;;;;;;;-1:-1:-1;6621:30:0;;;;-1:-1:-1;;;;;6621:30:0;;;11462:133;;;;;;;;;;-1:-1:-1;11462:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11564:19:0;;;11546:7;11564:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11462:133;16137:128;;;;;;;;;;;;;:::i;2895:97::-;;;;;;;;;;-1:-1:-1;2895:97:0;;;;;:::i;:::-;;:::i;3226:173::-;;;;;;;;;;-1:-1:-1;3226:173:0;;;;;:::i;:::-;;:::i;7165:24::-;;;;;;;;;;-1:-1:-1;7165:24:0;;;;;;;-1:-1:-1;;;;;7165:24:0;;;3111:107;;;;;;;;;;-1:-1:-1;3111:107:0;;;;;:::i;:::-;;:::i;11181:80::-;11229:13;11253:5;11246:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11181:80;:::o;11961:216::-;12065:10;12036:4;12053:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12053:32:0;;;;;;;;;;:41;;;12110:37;12036:4;;12053:32;;12110:37;;;;12088:6;160:25:1;;148:2;133:18;;14:177;12110:37:0;;;;;;;;-1:-1:-1;12165:4:0;11961:216;;;;;:::o;12652:638::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;;;;;;;;;12846:3:::1;12796:45;12833:7:::0;12796:32:::1;:13:::0;12814;12796:17:::1;:32::i;:::-;:36:::0;::::1;:45::i;:::-;12795:54;;12787:63;;;::::0;::::1;;12861:15;:31:::0;;;12903:15:::1;:31:::0;;;12945:9:::1;:19:::0;;;12992:16:::1;::::0;:35:::1;::::0;12879:13;12992:20:::1;:35::i;:::-;12977:12;:50:::0;13053:16:::1;::::0;:35:::1;::::0;13074:13;13053:20:::1;:35::i;:::-;13038:12;:50:::0;13108:10:::1;::::0;:23:::1;::::0;13123:7;13108:14:::1;:23::i;:::-;13099:6;:32:::0;13158:52:::1;13208:1;13158:45;13195:7:::0;13158:45;:13;13176;13158:17:::1;:32::i;:52::-;13144:11;:66:::0;13267:6:::1;::::0;13249:12:::1;::::0;13232::::1;::::0;:50:::1;::::0;13279:2:::1;::::0;13232:42:::1;::::0;;;:16:::1;:30::i;:50::-;13221:8;:61:::0;-1:-1:-1;;;12652:638:0:o;13302:640::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;13497:3:::1;13447:45;13484:7:::0;13447:32:::1;:13:::0;13465;13447:17:::1;:32::i;:45::-;13446:54;;13438:63;;;::::0;::::1;;13512:16;:32:::0;;;13555:16:::1;:32:::0;;;13598:10:::1;:20:::0;;;13646:15:::1;::::0;:34:::1;::::0;13531:13;13646:19:::1;:34::i;:::-;13631:12;:49:::0;13706:15:::1;::::0;:34:::1;::::0;13726:13;13706:19:::1;:34::i;:::-;13691:12;:49:::0;13760:9:::1;::::0;:22:::1;::::0;13774:7;13760:13:::1;:22::i;:::-;13751:6;:31:::0;13810:52:::1;13860:1;13810:45;13847:7:::0;13810:45;:13;13828;13810:17:::1;:32::i;:52::-;13795:12;:67:::0;13919:6:::1;::::0;13901:12:::1;::::0;13884::::1;::::0;:50:::1;::::0;13931:2:::1;::::0;13884:42:::1;::::0;;;:16:::1;:30::i;14741:203::-:0;14875:15;;14835:21;;-1:-1:-1;;;;;14875:15:0;14867:69;14932:3;14901:28;14913:16;14835:21;14901:28;:::i;:::-;:34;;;;:::i;:::-;14867:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14804:140;14741:203;:::o;20531:528::-;20631:4;-1:-1:-1;;;;;20656:20:0;;20648:70;;;;-1:-1:-1;;;20648:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20737:23:0;;20729:71;;;;-1:-1:-1;;;20729:71:0;;;;;;;:::i;:::-;20849:12;;-1:-1:-1;;;;;20814:19:0;;;;;;:11;:19;;;;;;;;20834:10;20814:31;;;;;;;;:47;20811:181;;20911:69;;;;;;;;;;;-1:-1:-1;;;20911:69:0;;;;;;;;-1:-1:-1;;;;;20911:19:0;;-1:-1:-1;20911:19:0;;;:11;:19;;;;;20931:10;20911:31;;;;;;;;;;:69;;20947:6;;20911:35;:69::i;:::-;-1:-1:-1;;;;;20877:19:0;;;;;;:11;:19;;;;;;;;20897:10;20877:31;;;;;;;:103;20811:181;21011:40;21025:6;21033:9;21044:6;21011:13;:40::i;:::-;21004:47;;20531:528;;;;;;:::o;15752:306::-;3055:4;3090:5;-1:-1:-1;;;;;3090:5:0;2652:10;3079:16;2636:38;;;;-1:-1:-1;;;2636:38:0;;;;;;;:::i;:::-;15814:8:::1;::::0;::::1;::::0;::::1;;;:17;15806:26;;;::::0;::::1;;15843:12;:20:::0;;15887:15:::1;15874:10;:28:::0;-1:-1:-1;;15913:15:0;15843:20:::1;15913:15;::::0;;15950:7:::1;::::0;-1:-1:-1;;;;;15950:7:0::1;15858:5;15939:19:::0;;;:10:::1;:19;::::0;;;;;;:26;;-1:-1:-1;;15939:26:0::1;15843:20:::0;15939:26:::1;::::0;;16003:12;;15983:33;;::::1;::::0;::::1;::::0;15843:20:::1;16003:12:::0;;;::::1;1470:14:1::0;1463:22;1445:41;;1433:2;1418:18;;1305:187;15983:33:0::1;;;;;;;;16032:18;::::0;16045:4:::1;1445:41:1::0;;16032:18:0::1;::::0;1433:2:1;1418:18;16032::0::1;;;;;;;;15752:306::o:0;16573:386::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;16702:1:::1;16693:6;:10;16685:36;;;::::0;-1:-1:-1;;;16685:36:0;;8887:2:1;16685:36:0::1;::::0;::::1;8869:21:1::0;8926:2;8906:18;;;8899:30;-1:-1:-1;;;8945:18:1;;;8938:43;8998:18;;16685:36:0::1;8685:337:1::0;16685:36:0::1;16753:1;16740:10;:14;:63;;;;;16772:31;16797:5;16772:20;16789:2;16772:12;;:16;;:20;;;;:::i;:::-;:24:::0;::::1;:31::i;:::-;16758:10;:45;;16740:63;16732:98;;;::::0;-1:-1:-1;;;16732:98:0;;9229:2:1;16732:98:0::1;::::0;::::1;9211:21:1::0;9268:2;9248:18;;;9241:30;-1:-1:-1;;;9287:18:1;;;9280:52;9349:18;;16732:98:0::1;9027:346:1::0;16732:98:0::1;16841:11;:22:::0;;-1:-1:-1;;;;16841:22:0::1;-1:-1:-1::0;;;16841:22:0;::::1;;;;::::0;;16904:15:::1;5499:1;16904:2;:15;:::i;:::-;16890:30;::::0;:10;:30:::1;:::i;:::-;16874:13;:46:::0;16931:9:::1;:18:::0;-1:-1:-1;;16573:386:0:o;12185:117::-;12240:4;12264:30;12272:7;12281:12;;12264:7;:30::i;14385:242::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;14472:1:::1;14461:7;:12;;14453:21;;;::::0;::::1;;14531:2;14520:7;:13;;14512:22;;;::::0;::::1;;14615:4;14603:7;14588:12;;:22;;;;:::i;:::-;14586:33;;;;:::i;:::-;14571:12;:48:::0;-1:-1:-1;14385:242:0:o;14130:247::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;14219:1:::1;14208:7;:12;;14200:21;;;::::0;::::1;;14278:2;14267:7;:13;;14259:22;;;::::0;::::1;;14365:4;14353:7;14338:12;;:22;;;;:::i;:::-;14336:33;;;;:::i;:::-;14318:15;:51:::0;-1:-1:-1;14130:247:0:o;11795:158::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;11896:8:::1;:20;11907:9:::0;11896:8;:20:::1;:::i;:::-;-1:-1:-1::0;11927:7:0::1;:18;11937:8:::0;11927:7;:18:::1;:::i;3407:133::-:0;3055:4;3090:5;-1:-1:-1;;;;;3090:5:0;2652:10;3079:16;2636:38;;;;-1:-1:-1;;;2636:38:0;;;;;;;:::i;:::-;3482:1:::1;3466:18:::0;;-1:-1:-1;;;;;;3466:18:0::1;::::0;;3500:32:::1;::::0;3556:51:1;;;3500:32:0::1;::::0;3544:2:1;3529:18;3500:32:0::1;3410:203:1::0;11091:84:0;11141:13;11165:7;11158:14;;;;;:::i;20223:300::-;20303:4;20324:5;;20333:10;-1:-1:-1;;;;;20324:5:0;;;:19;20320:196;;20366:45;20381:10;20393:9;20404:6;20366:14;:45::i;:::-;20359:52;;;;20320:196;20460:44;20474:10;20486:9;20497:6;20460:13;:44::i;2793:94::-;3055:4;3090:5;-1:-1:-1;;;;;3090:5:0;2652:10;3079:16;2636:38;;;;-1:-1:-1;;;2636:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2853:19:0::1;;::::0;;;2875:4:::1;2853:19;::::0;;;;;;;:26;;-1:-1:-1;;2853:26:0::1;::::0;;::::1;::::0;;2793:94::o;11673:114::-;11715:13;11729;11762:8;11771:7;11754:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11673:114;;:::o;13950:172::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;14047:15:::1;:34:::0;;-1:-1:-1;;;;;14047:34:0;;::::1;-1:-1:-1::0;;;;;;14047:34:0;;::::1;;::::0;;;14092:9:::1;:22:::0;;;;;::::1;::::0;::::1;;::::0;;13950:172::o;16137:128::-;2734:24;2747:10;2734:12;:24::i;:::-;2726:48;;;;-1:-1:-1;;;2726:48:0;;;;;;;:::i;:::-;16214:10:::1;::::0;:17:::1;::::0;16227:4:::1;16214:17;:::i;:::-;16195:15;:36;;16187:45;;;::::0;::::1;;16243:6;:14:::0;;-1:-1:-1;;16243:14:0::1;::::0;;16137:128::o;2895:97::-;3055:4;3090:5;-1:-1:-1;;;;;3090:5:0;2652:10;3079:16;2636:38;;;;-1:-1:-1;;;2636:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2957:19:0::1;2979:5;2957:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2957:27:0::1;::::0;;2895:97::o;3226:173::-;3055:4;3090:5;-1:-1:-1;;;;;3090:5:0;2652:10;3079:16;2636:38;;;;-1:-1:-1;;;2636:38:0;;;;;;;:::i;:::-;3302:5:::1;:11:::0;;-1:-1:-1;;;;;;3302:11:0::1;-1:-1:-1::0;;;;;3302:11:0;::::1;::::0;;::::1;::::0;;3324:19;;;-1:-1:-1;3324:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3324:26:0::1;::::0;;::::1;::::0;;;3366:25;;3556:51:1;;;3366:25:0::1;::::0;3529:18:1;3366:25:0::1;;;;;;;3226:173:::0;:::o;3111:107::-;-1:-1:-1;;;;;3191:19:0;3167:4;3191:19;;;:14;:19;;;;;;;;;3111:107::o;191:181::-;249:7;;281:5;285:1;281;:5;:::i;:::-;269:17;;310:1;305;:6;;297:46;;;;-1:-1:-1;;;297:46:0;;13513:2:1;297:46:0;;;13495:21:1;13552:2;13532:18;;;13525:30;13591:29;13571:18;;;13564:57;13638:18;;297:46:0;13311:351:1;718:250:0;776:7;800:1;805;800:6;796:47;;-1:-1:-1;830:1:0;823:8;;796:47;855:9;867:5;871:1;867;:5;:::i;:::-;855:17;-1:-1:-1;900:1:0;891:5;895:1;855:17;891:5;:::i;:::-;:10;883:56;;;;-1:-1:-1;;;883:56:0;;13869:2:1;883:56:0;;;13851:21:1;13908:2;13888:18;;;13881:30;13947:34;13927:18;;;13920:62;-1:-1:-1;;;13998:18:1;;;13991:31;14039:19;;883:56:0;13667:397:1;974:132:0;1032:7;1059:39;1063:1;1066;1059:39;;;;;;;;;;;;;;;;;:3;:39::i;378:136::-;436:7;463:43;467:1;470;463:43;;;;;;;;;;;;;;;;;520:192;606:7;642:12;634:6;;;;626:29;;;;-1:-1:-1;;;626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;666:9:0;678:5;682:1;678;:5;:::i;:::-;666:17;520:192;-1:-1:-1;;;;;520:192:0:o;21067:1622::-;21159:4;-1:-1:-1;;;;;21186:20:0;;21178:70;;;;-1:-1:-1;;;21178:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21267:23:0;;21259:71;;;;-1:-1:-1;;;21259:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21347:18:0;;;;;;:10;:18;;;;;;;;21346:19;:45;;;;-1:-1:-1;;;;;;21370:21:0;;;;;;:10;:21;;;;;;;;21369:22;21346:45;21343:128;;;21415:12;;;;:20;;:12;:20;21407:52;;;;-1:-1:-1;;;21407:52:0;;14404:2:1;21407:52:0;;;14386:21:1;14443:2;14423:18;;;14416:30;-1:-1:-1;;;14462:18:1;;;14455:50;14522:18;;21407:52:0;14202:344:1;21407:52:0;-1:-1:-1;;;;;21489:22:0;;;;;;:14;:22;;;;;;;;;:51;;-1:-1:-1;;;;;;21515:25:0;;;;;;:14;:25;;;;;;;;21489:51;21485:131;;;21563:41;21578:6;21586:9;21597:6;21563:14;:41::i;:::-;21556:48;;;;21485:131;21631:6;;;;21628:63;;;21647:41;21662:6;21670:9;21681:6;21647:14;:41::i;21628:63::-;-1:-1:-1;;;;;21707:22:0;;;;;;:14;:22;;;;;;;;21706:23;:53;;;;-1:-1:-1;;;;;;21734:25:0;;;;;;:14;:25;;;;;;;;21733:26;21706:53;21703:136;;;21783:12;;;;:20;;:12;:20;21775:52;;;;-1:-1:-1;;;21775:52:0;;14404:2:1;21775:52:0;;;14386:21:1;14443:2;14423:18;;;14416:30;-1:-1:-1;;;14462:18:1;;;14455:50;14522:18;;21775:52:0;14202:344:1;21775:52:0;21873:4;;-1:-1:-1;;;;;21863:14:0;;;21873:4;;21863:14;:44;;;;-1:-1:-1;;;;;;21881:26:0;;21902:4;21881:26;;21863:44;21859:114;;;21925:7;;;21939:10;;21925:36;;-1:-1:-1;;;21925:36:0;;;;;14725:25:1;-1:-1:-1;;;;;14786:32:1;;;14766:18;;;14759:60;21925:7:0;;:13;;14698:18:1;;21925:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21859:114;21997:6;;;;21993:76;;;22019:38;22031:6;22039:9;22050:6;22019:11;:38::i;:::-;22084:34;22100:6;22108:9;22084:15;:34::i;:::-;22081:60;;;22121:17;22131:6;22121:9;:17::i;:::-;22181:53;;;;;;;;;;;-1:-1:-1;;;22181:53:0;;;;;;;;-1:-1:-1;;;;;22181:17:0;;-1:-1:-1;22181:17:0;;;:9;:17;;;;;;;;:53;;22203:6;;22181:21;:53::i;:::-;-1:-1:-1;;;;;22161:17:0;;;;;;;:9;:17;;;;;:73;;;;22284:4;;22271:17;;;22284:4;;22271:17;;:35;;-1:-1:-1;22302:4:0;;-1:-1:-1;;;;;22292:14:0;;;22302:4;;22292:14;22271:35;22270:83;;22347:6;22270:83;;;22310:34;22318:6;22326:9;22337:6;22310:7;:34::i;:::-;-1:-1:-1;;;;;22403:20:0;;;;;;:9;:20;;;;;;22245:108;;-1:-1:-1;22403:40:0;;22245:108;22403:24;:40::i;:::-;-1:-1:-1;;;;;22380:20:0;;;;;;;:9;:20;;;;;:63;;;;22479:4;;22469:14;;;22479:4;;22469:14;;:35;;-1:-1:-1;22500:4:0;;-1:-1:-1;;;;;22487:17:0;;;22500:4;;22487:17;22469:35;22468:67;;;;-1:-1:-1;;;;;;22509:26:0;;22530:4;22509:26;;22468:67;22464:117;;;22568:1;22551:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;22464:117:0;22633:9;-1:-1:-1;;;;;22616:43:0;22625:6;-1:-1:-1;;;;;22616:43:0;;22644:14;22616:43;;;;160:25:1;;148:2;133:18;;14:177;22616:43:0;;;;;;;;-1:-1:-1;22677:4:0;;21067:1622;-1:-1:-1;;;;21067:1622:0:o;12314:330::-;12444:53;;;;;;;;;;;-1:-1:-1;;;12444:53:0;;;;;;;;-1:-1:-1;;;;;12444:17:0;;12407:4;12444:17;;;:9;:17;;;;;;;:53;;12466:6;;12444:21;:53::i;:::-;-1:-1:-1;;;;;12424:17:0;;;;;;;:9;:17;;;;;;:73;;;;12531:20;;;;;;;:32;;12556:6;12531:24;:32::i;:::-;-1:-1:-1;;;;;12508:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12579:35;;;;;;;;;;12607:6;160:25:1;;148:2;133:18;;14:177;12579:35:0;;;;;;;;-1:-1:-1;12632:4:0;12314:330;;;;;:::o;1112:345::-;1198:7;1300:12;1293:5;1285:28;;;;-1:-1:-1;;;1285:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1324:9:0;1336:5;1340:1;1336;:5;:::i;14952:649::-;-1:-1:-1;;;;;15053:22:0;;;;;;:14;:22;;;;;;;;15052:23;:53;;;;-1:-1:-1;;;;;;15079:26:0;;15100:4;15079:26;;15052:53;:80;;;;-1:-1:-1;;;;;;15109:23:0;;15127:4;15109:23;;15052:80;:125;;;;-1:-1:-1;15172:4:0;;-1:-1:-1;;;;;15151:26:0;;;15172:4;;15151:26;;15052:125;:146;;;;-1:-1:-1;15194:4:0;;-1:-1:-1;;;;;15181:17:0;;;15194:4;;15181:17;;15052:146;:178;;;;-1:-1:-1;15215:15:0;;-1:-1:-1;;;;;15202:28:0;;;15215:15;;15202:28;;15052:178;:210;;;;-1:-1:-1;15247:15:0;;-1:-1:-1;;;;;15234:28:0;;;15247:15;;15234:28;;15052:210;15048:424;;;-1:-1:-1;;;;;11435:18:0;;15282;11435;;;:9;:18;;;;;;15375:15;;15351:19;15364:6;11435:18;15351:19;:::i;:::-;15350:40;;15342:114;;;;-1:-1:-1;;;15342:114:0;;15416:2:1;15342:114:0;;;15398:21:1;15455:2;15435:18;;;15428:30;15494:34;15474:18;;;15467:62;15565:32;15545:18;;;15538:60;15615:19;;15342:114:0;15214:426:1;15342:114:0;15263:209;15048:424;15502:12;;15492:6;:22;;:49;;;-1:-1:-1;;;;;;15518:23:0;;;;;;:15;:23;;;;;;;;15492:49;:79;;;-1:-1:-1;;;;;;15545:26:0;;;;;;:15;:26;;;;;;;;15492:79;15484:109;;;;-1:-1:-1;;;15484:109:0;;15847:2:1;15484:109:0;;;15829:21:1;15886:2;15866:18;;;15859:30;-1:-1:-1;;;15905:18:1;;;15898:47;15962:18;;15484:109:0;15645:341:1;16971:408:0;17054:4;17073:15;17127;17091:33;17108:15;;17091:12;;:16;;:33;;;;:::i;:::-;17175:4;;17091:51;-1:-1:-1;17091:51:0;-1:-1:-1;;;;;;17162:17:0;;;17175:4;;17162:17;:40;;;;;17192:10;17162:40;:60;;;;-1:-1:-1;17216:6:0;;;;17215:7;17162:60;:84;;;;-1:-1:-1;17235:11:0;;-1:-1:-1;;;17235:11:0;;;;17162:84;:138;;;;-1:-1:-1;17287:13:0;;17277:4;17259:24;;;;:9;:24;;;;;;:41;;17162:138;:209;;;;;17341:30;17367:3;17341:21;17352:9;;17341:6;:10;;:21;;;;:::i;:30::-;17331:4;17313:24;;;;:9;:24;;;;;;:58;;17162:209;17155:216;16971:408;-1:-1:-1;;;;16971:408:0:o;17845:2370::-;7367:6;:13;;-1:-1:-1;;7367:13:0;7376:4;7367:13;;;17941:9:::1;::::0;7367:6;;17929:31:::1;::::0;17956:3:::1;::::0;17929:22:::1;::::0;:7;;:11:::1;:22::i;:31::-;18085:13;::::0;17912:48;;-1:-1:-1;18060:2:0::1;::::0;18076:22;::::1;18075:58;;18120:13;;18111:22;;;18075:58;;;18102:6;18075:58;;18146:23;18188:1:::0;18173:12:::1;;:16;18172:70;;18241:1;18172:70;;;18193:45;18236:1;18193:38;18222:8;;18193:24;18204:12;;18193:6;:10;;:24;;;;:::i;:45::-;18146:96:::0;-1:-1:-1;18255:20:0::1;18278:27;:6:::0;18146:96;18278:10:::1;:27::i;:::-;18342:16;::::0;;18356:1:::1;18342:16:::0;;;;;::::1;::::0;;18255:50;;-1:-1:-1;18318:21:0::1;::::0;18342:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18342:16:0::1;18318:40;;18387:4;18369;18374:1;18369:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18369:23:0::1;;;-1:-1:-1::0;;;;;18369:23:0::1;;;::::0;::::1;18413:42;18403:4;18408:1;18403:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18403:52:0;;::::1;:7;::::0;;::::1;::::0;;;;;:52;18526:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;18526:188:0;;18492:21:::1;::::0;18526:6:::1;::::0;;::::1;::::0;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;18598:12;;18468:21:::1;::::0;18641:4;;18668::::1;::::0;18688:15:::1;::::0;18526:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18727:15;18755:17:::0;18775:40:::1;18801:13;18775:21;:25;;:40;;;;:::i;:::-;18755:60;;18826:19;18864:1:::0;18849:12:::1;;:16;18848:65;;18905:8;;18848:65;;;18882:12;::::0;18869:33:::1;::::0;18882:19:::1;::::0;18899:1:::1;18882:16;:19::i;:::-;18869:8;::::0;;:12:::1;:33::i;:::-;18826:87;;18936:26;18965:51;19014:1;18965:44;18997:11;18965:27;18979:12;;18965:9;:13;;:27;;;;:::i;:51::-;19031:6;::::0;18936:80;;-1:-1:-1;19031:10:0;19027:242:::1;;19057:20;19080:38;19106:11;19080:21;19094:6;;19080:9;:13;;:21;;;;:::i;:38::-;19171:9;::::0;19163:61:::1;::::0;19057;;-1:-1:-1;;;;;;19171:9:0::1;::::0;19213:6:::1;::::0;19057:61;;19163::::1;::::0;;;19057;19171:9;19213:6;19163:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;19252:5:0::1;::::0;-1:-1:-1;;;;19027:242:0::1;19284:19:::0;;19281:356:::1;;19319:6;::::0;19493:15:::1;::::0;19319:238:::1;::::0;-1:-1:-1;;;19319:238:0;;19395:4:::1;19319:238;::::0;::::1;17659:34:1::0;17709:18;;;17702:34;;;19453:1:0::1;17752:18:1::0;;;17745:34;;;17795:18;;;17788:34;-1:-1:-1;;;;;19493:15:0;;::::1;17838:19:1::0;;;17831:44;19527:15:0::1;17891:19:1::0;;;17884:35;19319:6:0::1;::::0;;::::1;;::::0;:22:::1;::::0;19349:18;;17593:19:1;;19319:238:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19577:48:0::1;::::0;;18415:25:1;;;18471:2;18456:18;;18449:34;;;19577:48:0::1;::::0;-1:-1:-1;18388:18:1;19577:48:0::1;;;;;;;19281:356;19741:17;19761:38;19787:11:::0;19761:21:::1;:9:::0;19775:6;19761:13:::1;:21::i;:38::-;19834:12;::::0;19826:61:::1;::::0;19741:58;;-1:-1:-1;;;;;;19834:12:0::1;::::0;19876:6:::1;::::0;19741:58;;19826:61:::1;::::0;;;19741:58;19834:12;19876:6;19826:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;19911:5:0::1;::::0;-1:-1:-1;19958:21:0::1;::::0;-1:-1:-1;;19993:22:0;;19990:175:::1;;20055:15;::::0;20047:73:::1;::::0;-1:-1:-1;;;;;20055:15:0;;::::1;::::0;20109:6:::1;::::0;20084:18;;20047:73:::1;::::0;;;20084:18;20055:15;20109:6;20047:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;20148:5:0::1;::::0;-1:-1:-1;;;19990:175:0::1;-1:-1:-1::0;;20192:15:0::1;20177:12;:30:::0;-1:-1:-1;;7385:6:0;:14;;-1:-1:-1;;7385:14:0;;;-1:-1:-1;;;;;;;;;17845:2370:0:o;17387:450::-;17551:4;;17473:7;;;;-1:-1:-1;;;;;17538:17:0;;;17551:4;;17538:17;17537:48;;17574:11;;17537:48;;;17559:12;;17537:48;17525:60;-1:-1:-1;17598:17:0;17618:31;17644:4;17618:21;:6;17525:60;17618:10;:21::i;:31::-;17707:4;17689:24;;;;:9;:24;;;;;;17598:51;;-1:-1:-1;17689:39:0;;17598:51;17689:28;:39::i;:::-;17680:4;17662:24;;;;:9;:24;;;;;;;:66;;;;17746:42;;-1:-1:-1;;;;;17746:42:0;;;;;;;17778:9;160:25:1;;148:2;133:18;;14:177;17746:42:0;;;;;;;;17808:21;:6;17819:9;17808:10;:21::i;:::-;17801:28;17387:450;-1:-1:-1;;;;;;17387:450:0:o;196:423:1:-;238:3;276:5;270:12;303:6;298:3;291:19;328:1;338:162;352:6;349:1;346:13;338:162;;;414:4;470:13;;;466:22;;460:29;442:11;;;438:20;;431:59;367:12;338:162;;;342:3;545:1;538:4;529:6;524:3;520:16;516:27;509:38;608:4;601:2;597:7;592:2;584:6;580:15;576:29;571:3;567:39;563:50;556:57;;;196:423;;;;:::o;624:220::-;773:2;762:9;755:21;736:4;793:45;834:2;823:9;819:18;811:6;793:45;:::i;849:131::-;-1:-1:-1;;;;;924:31:1;;914:42;;904:70;;970:1;967;960:12;904:70;849:131;:::o;985:315::-;1053:6;1061;1114:2;1102:9;1093:7;1089:23;1085:32;1082:52;;;1130:1;1127;1120:12;1082:52;1169:9;1156:23;1188:31;1213:5;1188:31;:::i;:::-;1238:5;1290:2;1275:18;;;;1262:32;;-1:-1:-1;;;985:315:1:o;1497:316::-;1574:6;1582;1590;1643:2;1631:9;1622:7;1618:23;1614:32;1611:52;;;1659:1;1656;1649:12;1611:52;-1:-1:-1;;1682:23:1;;;1752:2;1737:18;;1724:32;;-1:-1:-1;1803:2:1;1788:18;;;1775:32;;1497:316;-1:-1:-1;1497:316:1:o;1818:180::-;1877:6;1930:2;1918:9;1909:7;1905:23;1901:32;1898:52;;;1946:1;1943;1936:12;1898:52;-1:-1:-1;1969:23:1;;1818:180;-1:-1:-1;1818:180:1:o;2003:456::-;2080:6;2088;2096;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2204:9;2191:23;2223:31;2248:5;2223:31;:::i;:::-;2273:5;-1:-1:-1;2330:2:1;2315:18;;2302:32;2343:33;2302:32;2343:33;:::i;:::-;2003:456;;2395:7;;-1:-1:-1;;;2449:2:1;2434:18;;;;2421:32;;2003:456::o;2464:118::-;2550:5;2543:13;2536:21;2529:5;2526:32;2516:60;;2572:1;2569;2562:12;2587:377;2661:6;2669;2677;2730:2;2718:9;2709:7;2705:23;2701:32;2698:52;;;2746:1;2743;2736:12;2698:52;2785:9;2772:23;2804:28;2826:5;2804:28;:::i;:::-;2851:5;2903:2;2888:18;;2875:32;;-1:-1:-1;2954:2:1;2939:18;;;2926:32;;2587:377;-1:-1:-1;;;2587:377:1:o;2969:247::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:31;3180:5;3155:31;:::i;3618:127::-;3679:10;3674:3;3670:20;3667:1;3660:31;3710:4;3707:1;3700:15;3734:4;3731:1;3724:15;3750:719;3793:5;3846:3;3839:4;3831:6;3827:17;3823:27;3813:55;;3864:1;3861;3854:12;3813:55;3900:6;3887:20;3926:18;3963:2;3959;3956:10;3953:36;;;3969:18;;:::i;:::-;4044:2;4038:9;4012:2;4098:13;;-1:-1:-1;;4094:22:1;;;4118:2;4090:31;4086:40;4074:53;;;4142:18;;;4162:22;;;4139:46;4136:72;;;4188:18;;:::i;:::-;4228:10;4224:2;4217:22;4263:2;4255:6;4248:18;4309:3;4302:4;4297:2;4289:6;4285:15;4281:26;4278:35;4275:55;;;4326:1;4323;4316:12;4275:55;4390:2;4383:4;4375:6;4371:17;4364:4;4356:6;4352:17;4339:54;4437:1;4430:4;4425:2;4417:6;4413:15;4409:26;4402:37;4457:6;4448:15;;;;;;3750:719;;;;:::o;4474:543::-;4562:6;4570;4623:2;4611:9;4602:7;4598:23;4594:32;4591:52;;;4639:1;4636;4629:12;4591:52;4679:9;4666:23;4708:18;4749:2;4741:6;4738:14;4735:34;;;4765:1;4762;4755:12;4735:34;4788:50;4830:7;4821:6;4810:9;4806:22;4788:50;:::i;:::-;4778:60;;4891:2;4880:9;4876:18;4863:32;4847:48;;4920:2;4910:8;4907:16;4904:36;;;4936:1;4933;4926:12;4904:36;;4959:52;5003:7;4992:8;4981:9;4977:24;4959:52;:::i;:::-;4949:62;;;4474:543;;;;;:::o;5022:383::-;5219:2;5208:9;5201:21;5182:4;5245:45;5286:2;5275:9;5271:18;5263:6;5245:45;:::i;:::-;5338:9;5330:6;5326:22;5321:2;5310:9;5306:18;5299:50;5366:33;5392:6;5384;5366:33;:::i;5410:388::-;5478:6;5486;5539:2;5527:9;5518:7;5514:23;5510:32;5507:52;;;5555:1;5552;5545:12;5507:52;5594:9;5581:23;5613:31;5638:5;5613:31;:::i;:::-;5663:5;-1:-1:-1;5720:2:1;5705:18;;5692:32;5733:33;5692:32;5733:33;:::i;:::-;5785:7;5775:17;;;5410:388;;;;;:::o;6289:380::-;6368:1;6364:12;;;;6411;;;6432:61;;6486:4;6478:6;6474:17;6464:27;;6432:61;6539:2;6531:6;6528:14;6508:18;6505:38;6502:161;;6585:10;6580:3;6576:20;6573:1;6566:31;6620:4;6617:1;6610:15;6648:4;6645:1;6638:15;6502:161;;6289:380;;;:::o;6674:335::-;6876:2;6858:21;;;6915:2;6895:18;;;6888:30;-1:-1:-1;;;6949:2:1;6934:18;;6927:41;7000:2;6985:18;;6674:335::o;7014:127::-;7075:10;7070:3;7066:20;7063:1;7056:31;7106:4;7103:1;7096:15;7130:4;7127:1;7120:15;7146:168;7219:9;;;7250;;7267:15;;;7261:22;;7247:37;7237:71;;7288:18;;:::i;7319:217::-;7359:1;7385;7375:132;;7429:10;7424:3;7420:20;7417:1;7410:31;7464:4;7461:1;7454:15;7492:4;7489:1;7482:15;7375:132;-1:-1:-1;7521:9:1;;7319:217::o;7541:401::-;7743:2;7725:21;;;7782:2;7762:18;;;7755:30;7821:34;7816:2;7801:18;;7794:62;-1:-1:-1;;;7887:2:1;7872:18;;7865:35;7932:3;7917:19;;7541:401::o;7947:399::-;8149:2;8131:21;;;8188:2;8168:18;;;8161:30;8227:34;8222:2;8207:18;;8200:62;-1:-1:-1;;;8293:2:1;8278:18;;8271:33;8336:3;8321:19;;7947:399::o;8351:329::-;8553:2;8535:21;;;8592:1;8572:18;;;8565:29;-1:-1:-1;;;8625:2:1;8610:18;;8603:36;8671:2;8656:18;;8351:329::o;9378:422::-;9467:1;9510:5;9467:1;9524:270;9545:7;9535:8;9532:21;9524:270;;;9604:4;9600:1;9596:6;9592:17;9586:4;9583:27;9580:53;;;9613:18;;:::i;:::-;9663:7;9653:8;9649:22;9646:55;;;9683:16;;;;9646:55;9762:22;;;;9722:15;;;;9524:270;;;9528:3;9378:422;;;;;:::o;9805:806::-;9854:5;9884:8;9874:80;;-1:-1:-1;9925:1:1;9939:5;;9874:80;9973:4;9963:76;;-1:-1:-1;10010:1:1;10024:5;;9963:76;10055:4;10073:1;10068:59;;;;10141:1;10136:130;;;;10048:218;;10068:59;10098:1;10089:10;;10112:5;;;10136:130;10173:3;10163:8;10160:17;10157:43;;;10180:18;;:::i;:::-;-1:-1:-1;;10236:1:1;10222:16;;10251:5;;10048:218;;10350:2;10340:8;10337:16;10331:3;10325:4;10322:13;10318:36;10312:2;10302:8;10299:16;10294:2;10288:4;10285:12;10281:35;10278:77;10275:159;;;-1:-1:-1;10387:19:1;;;10419:5;;10275:159;10466:34;10491:8;10485:4;10466:34;:::i;:::-;10536:6;10532:1;10528:6;10524:19;10515:7;10512:32;10509:58;;;10547:18;;:::i;:::-;10585:20;;9805:806;-1:-1:-1;;;9805:806:1:o;10616:140::-;10674:5;10703:47;10744:4;10734:8;10730:19;10724:4;10703:47;:::i;10887:545::-;10989:2;10984:3;10981:11;10978:448;;;11025:1;11050:5;11046:2;11039:17;11095:4;11091:2;11081:19;11165:2;11153:10;11149:19;11146:1;11142:27;11136:4;11132:38;11201:4;11189:10;11186:20;11183:47;;;-1:-1:-1;11224:4:1;11183:47;11279:2;11274:3;11270:12;11267:1;11263:20;11257:4;11253:31;11243:41;;11334:82;11352:2;11345:5;11342:13;11334:82;;;11397:17;;;11378:1;11367:13;11334:82;;;11338:3;;;10887:545;;;:::o;11608:1352::-;11734:3;11728:10;11761:18;11753:6;11750:30;11747:56;;;11783:18;;:::i;:::-;11812:97;11902:6;11862:38;11894:4;11888:11;11862:38;:::i;:::-;11856:4;11812:97;:::i;:::-;11964:4;;12028:2;12017:14;;12045:1;12040:663;;;;12747:1;12764:6;12761:89;;;-1:-1:-1;12816:19:1;;;12810:26;12761:89;-1:-1:-1;;11565:1:1;11561:11;;;11557:24;11553:29;11543:40;11589:1;11585:11;;;11540:57;12863:81;;12010:944;;12040:663;10834:1;10827:14;;;10871:4;10858:18;;-1:-1:-1;;12076:20:1;;;12194:236;12208:7;12205:1;12202:14;12194:236;;;12297:19;;;12291:26;12276:42;;12389:27;;;;12357:1;12345:14;;;;12224:19;;12194:236;;;12198:3;12458:6;12449:7;12446:19;12443:201;;;12519:19;;;12513:26;-1:-1:-1;;12602:1:1;12598:14;;;12614:3;12594:24;12590:37;12586:42;12571:58;12556:74;;12443:201;-1:-1:-1;;;;;12690:1:1;12674:14;;;12670:22;12657:36;;-1:-1:-1;11608:1352:1:o;12965:125::-;13030:9;;;13051:10;;;13048:36;;;13064:18;;:::i;14069:128::-;14136:9;;;14157:11;;;14154:37;;;14171:18;;:::i;14830:379::-;14906:6;14914;14967:2;14955:9;14946:7;14942:23;14938:32;14935:52;;;14983:1;14980;14973:12;14935:52;15015:9;15009:16;15034:28;15056:5;15034:28;:::i;:::-;15131:2;15116:18;;15110:25;15081:5;;-1:-1:-1;15144:33:1;15110:25;15144:33;:::i;15991:127::-;16052:10;16047:3;16043:20;16040:1;16033:31;16083:4;16080:1;16073:15;16107:4;16104:1;16097:15;16123:980;16385:4;16433:3;16422:9;16418:19;16464:6;16453:9;16446:25;16490:2;16528:6;16523:2;16512:9;16508:18;16501:34;16571:3;16566:2;16555:9;16551:18;16544:31;16595:6;16630;16624:13;16661:6;16653;16646:22;16699:3;16688:9;16684:19;16677:26;;16738:2;16730:6;16726:15;16712:29;;16759:1;16769:195;16783:6;16780:1;16777:13;16769:195;;;16848:13;;-1:-1:-1;;;;;16844:39:1;16832:52;;16939:15;;;;16904:12;;;;16880:1;16798:9;16769:195;;;-1:-1:-1;;;;;;;17020:32:1;;;;17015:2;17000:18;;16993:60;-1:-1:-1;;;17084:3:1;17069:19;17062:35;16981:3;16123:980;-1:-1:-1;;;16123:980:1:o;17930:306::-;18018:6;18026;18034;18087:2;18075:9;18066:7;18062:23;18058:32;18055:52;;;18103:1;18100;18093:12;18055:52;18132:9;18126:16;18116:26;;18182:2;18171:9;18167:18;18161:25;18151:35;;18226:2;18215:9;18211:18;18205:25;18195:35;;17930:306;;;;;:::o

Swarm Source

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