ETH Price: $2,624.49 (-0.24%)
Gas: 4 Gwei

Token

Stsho (Stsho)
 

Overview

Max Total Supply

100,000,000,000 Stsho

Holders

13

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Stsho

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-10-20
*/

//https://t.me/Stshoerc20
//https://twitter.com/vitalikbuterin/status/1583183824380624896?s=21&t=rKUSEA7_SSKN0_G1XBJw-g
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    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);
}

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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0xdead));
        _owner = address(0xdead);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract BEP20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable public MarketingWallet;
    address payable public TreasuryWallet;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;

    uint256 public _buyLiquidityFee;
    uint256 public _buyMarketingFee;
    uint256 public _buyTeamFee;
    
    uint256 public _sellLiquidityFee;
    uint256 public _sellMarketingFee;
    uint256 public _sellTeamFee;

    uint256 public _liquidityShare;
    uint256 public _marketingShare;
    uint256 public _teamShare;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply;
    uint256 public _txLimitAmount; 
    uint256 public _walletLimitAmount;
    uint256 private minimumTokensBeforeSwap; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyBySmallOnly = false;
    bool public walletLimitEnable = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor (string memory _NAME, 
    string memory _SYMBOL,
    uint256 _SUPPLY,
    uint256[3] memory _BUYFEE,
    uint256[3] memory _SELLFEE,
    uint256[3] memory _SHARE,
    uint256[2] memory _LMT,
    address[2] memory _walletList) 
    {
    
        _name   = _NAME;
        _symbol = _SYMBOL;
        _decimals = 9;
        _totalSupply = _SUPPLY * 10**_decimals;

        _buyLiquidityFee = _BUYFEE[0];
        _buyMarketingFee = _BUYFEE[1];
        _buyTeamFee = _BUYFEE[2];

        _sellLiquidityFee = _SELLFEE[0];
        _sellMarketingFee = _SELLFEE[1];
        _sellTeamFee = _SELLFEE[2];

        _liquidityShare = _SHARE[0];
        _marketingShare = _SHARE[1];
        _teamShare = _SHARE[2];

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        _txLimitAmount = _LMT[0] * 10**_decimals;
        _walletLimitAmount = _LMT[1] * 10**_decimals;

        minimumTokensBeforeSwap = _totalSupply.mul(1).div(10000);
        MarketingWallet = payable(_walletList[0]);
        TreasuryWallet = payable(_walletList[1]);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setisTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }
    
    function setisExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function manageExcludeFromFee(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            isExcludedFromFee[addresses[i]] = status;
        }
    }
    
    function setTxLimitAmount(uint256 newValue) external onlyOwner() {
        _txLimitAmount = newValue * 10 ** decimals();
    }

    function enableWalletLimitEnable(bool newValue) external onlyOwner {
       walletLimitEnable = newValue;
    }

    function setisWalletLimitExempt(address holder, bool exempt) external onlyOwner {
        isWalletLimitExempt[holder] = exempt;
    }

    function setWalletLimitAmount(uint256 newValue) external onlyOwner {
        _walletLimitAmount  = newValue * 10 ** decimals();
    }

    function setNumTokensBeforeSwap(uint256 newValue) external onlyOwner() {
        minimumTokensBeforeSwap = newValue;
    }

    function setMarketingWallet(address newAddress) external onlyOwner() {
        MarketingWallet = payable(newAddress);
    }

    function setTreasuryWallet(address newAddress) external onlyOwner() {
        TreasuryWallet = payable(newAddress);
    }

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

    function setSwapAndLiquifyBySmallOnly(bool newValue) public onlyOwner {
        swapAndLiquifyBySmallOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

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

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(smallOrEqual(amount, _txLimitAmount));
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyBySmallOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount;
            if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
                finalAmount = amount;
            } else {
                finalAmount = takeFee(sender, recipient, amount);
            }

            if(walletLimitEnable && !isWalletLimitExempt[recipient])
                require(smallOrEqual(balanceOf(recipient).add(finalAmount), _walletLimitAmount));

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
            
        }
    }

    function smallOrEqual(uint256 a, uint256 b) public pure returns(bool) { return a<=b; }

    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 swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(MarketingWallet, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(TreasuryWallet, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }


    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        ) {} catch {}
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        try uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            MarketingWallet,
            block.timestamp
        ) {} catch {}
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
}

contract Stsho is BEP20 {
    constructor() BEP20(
        "Stsho",  
        "Stsho",
        100000000000,
        [uint256(2),uint256(2),uint256(0)], 
        [uint256(2),uint256(2),uint256(0)], 
        [uint256(4),uint256(4),uint256(0)], 
        [uint256(100000000000),uint256(100000000000)],
        [address(0x1695096071aBa6913903da254bc86093803F5234),address(0)] 
    ){}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"MarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TreasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableWalletLimitEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyBySmallOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setTxLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setWalletLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setisExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"smallOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"swapAndLiquifyBySmallOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletLimitEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405261dead608052601c805462ffffff60a81b19166201000160a81b1790553480156200002e57600080fd5b5060405180604001604052806005815260200164537473686f60d81b81525060405180604001604052806005815260200164537473686f60d81b81525064174876e800604051806060016040528060028152602001600281526020016000815250604051806060016040528060028152602001600281526020016000815250604051806060016040528060048152602001600481526020016000815250604051806040016040528064174876e800815260200164174876e8008152506040518060400160405280731695096071aba6913903da254bc86093803f52346001600160a01b03166001600160a01b0316815260200160006001600160a01b03166001600160a01b031681525060006200014a6200071360201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001620001a289826200093c565b506002620001b188826200093c565b506003805460ff19166009908117909155620001cf90600a62000b1b565b620001db908762000b2c565b6017558451600b819055602080870151600c819055604080890151600d8190558851600e5588840151600f558882015160105587516011558784015160125590870151601355620002519390926200023d92906200127062000717821b17901c565b6200071760201b620012701790919060201c565b6014819055506200027c6010546200023d600f54600e546200071760201b620012701790919060201c565b601581905550620002a76013546200023d6012546011546200071760201b620012701790919060201c565b601655600354620002bd9060ff16600a62000b1b565b8251620002cb919062000b2c565b601855600354620002e19060ff16600a62000b1b565b6020830151620002f2919062000b2c565b601981905550620003306127106200031c60016017546200078760201b620012cf1790919060201c565b6200081160201b620013511790919060201c565b601a55805160038054610100600160a81b0319166101006001600160a01b039384160217905560208083015160048054919093166001600160a01b03199091161782556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a015593808301939192908290030181865afa158015620003c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e8919062000b46565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045c919062000b46565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620004aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d0919062000b46565b601c80546001600160a01b039283166001600160a01b031991821617909155601b8054928416929091168217905560175430600090815260066020908152604080832094835293905291822055600190600790620005366000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260079092528120805490921660019081179092556008906200058f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601c5490911681526008909252808220805484166001908117909155308352908220805484168217905561dead82527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805490931681179092556009906200062d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260098452828120805486166001908117909155601c549092168152600a90935290822080549093161790915560175490600590620006993390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601754604051620006fc91815260200190565b60405180910390a350505050505050505062000bfa565b3390565b60008062000726838562000b71565b9050838110156200077e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b6000826000036200079b5750600062000781565b6000620007a9838562000b2c565b905082620007b8858362000b87565b146200077e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000775565b60006200077e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200085b60201b60201c565b600081836200087f5760405162461bcd60e51b815260040162000775919062000baa565b5060006200088e848662000b87565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620008c257607f821691505b602082108103620008e357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200093757600081815260208120601f850160051c81016020861015620009125750805b601f850160051c820191505b8181101562000933578281556001016200091e565b5050505b505050565b81516001600160401b0381111562000958576200095862000897565b6200097081620009698454620008ad565b84620008e9565b602080601f831160018114620009a857600084156200098f5750858301515b600019600386901b1c1916600185901b17855562000933565b600085815260208120601f198616915b82811015620009d957888601518255948401946001909101908401620009b8565b5085821015620009f85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000a5f57816000190482111562000a435762000a4362000a08565b8085161562000a5157918102915b93841c939080029062000a23565b509250929050565b60008262000a785750600162000781565b8162000a875750600062000781565b816001811462000aa0576002811462000aab5762000acb565b600191505062000781565b60ff84111562000abf5762000abf62000a08565b50506001821b62000781565b5060208310610133831016604e8410600b841016171562000af0575081810a62000781565b62000afc838362000a1e565b806000190482111562000b135762000b1362000a08565b029392505050565b60006200077e60ff84168362000a67565b808202811582820484141762000781576200078162000a08565b60006020828403121562000b5957600080fd5b81516001600160a01b03811681146200077e57600080fd5b8082018082111562000781576200078162000a08565b60008262000ba557634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101562000bd95785810183015185820160400152820162000bbb565b506000604082860101526040601f19601f8301168501019250505092915050565b60805161245762000c1d600039600081816104e60152610caf01526124576000f3fe60806040526004361061036f5760003560e01c806388790a68116101c6578063c469b6dd116100f7578063cdf7249311610095578063dd62ed3e1161006f578063dd62ed3e146109f3578063e2f2a68614610a39578063f0cd1dac14610a59578063f2fde38b14610a6f57600080fd5b8063cdf724931461099c578063d9419b73146109bc578063dc44b6a0146109dd57600080fd5b8063c816841b116100d1578063c816841b14610920578063c860795214610940578063c867d60b14610956578063cab034711461098657600080fd5b8063c469b6dd146108d4578063c49b9a80146108ea578063c5d241891461090a57600080fd5b8063a073d37f11610164578063a83f53a71161013e578063a83f53a71461085e578063a8602fea14610874578063a9059cbb14610894578063a911928c146108b457600080fd5b8063a073d37f14610813578063a08e671f14610828578063a457c2d71461083e57600080fd5b8063914eb66a116101a0578063914eb66a146107b357806395d89b41146107c8578063989200de146107dd5780639daec0bc146107fd57600080fd5b806388790a681461074f5780638b42507f146107655780638da5cb5b1461079557600080fd5b80633e07387c116102a057806361a23c691161023e57806370a02c8b1161021857806370a02c8b146106c357806370a08231146106e357806382eefb4314610719578063844d591c1461072f57600080fd5b806361a23c691461067757806362e8e50b1461068d5780636ad53b59146106ad57600080fd5b80634a74bb021161027a5780634a74bb02146105f05780635342acb41461061157806357a5802f146106415780635d098b381461065757600080fd5b80633e07387c1461057f5780633ecad2711461059f57806346663b82146105cf57600080fd5b806323b872dd1161030d5780632b112e49116102e75780632b112e4914610508578063313ce5671461051d578063395093511461053f5780633b97084a1461055f57600080fd5b806323b872dd1461048f5780632598cdb2146104af57806327c8f835146104d457600080fd5b806311ffeaf21161034957806311ffeaf2146103f85780631694505e1461043057806318160ddd146104505780631afe88921461046f57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630ecc200f146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a8f565b60405161039d9190611e95565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004611efb565b610b21565b604051901515815260200161039d565b3480156103e257600080fd5b506103f66103f1366004611f3c565b610b38565b005b34801561040457600080fd5b50600454610418906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561043c57600080fd5b50601b54610418906001600160a01b031681565b34801561045c57600080fd5b506017545b60405190815260200161039d565b34801561047b57600080fd5b506103f661048a366004611fc0565b610bed565b34801561049b57600080fd5b506103c66104aa366004611ff5565b610c42565b3480156104bb57600080fd5b506003546104189061010090046001600160a01b031681565b3480156104e057600080fd5b506104187f000000000000000000000000000000000000000000000000000000000000000081565b34801561051457600080fd5b50610461610cad565b34801561052957600080fd5b5060035460405160ff909116815260200161039d565b34801561054b57600080fd5b506103c661055a366004611efb565b610cf7565b34801561056b57600080fd5b506103f661057a366004612036565b610d2d565b34801561058b57600080fd5b506103f661059a36600461204f565b610d5c565b3480156105ab57600080fd5b506103c66105ba36600461206a565b600a6020526000908152604090205460ff1681565b3480156105db57600080fd5b50601c546103c690600160b81b900460ff1681565b3480156105fc57600080fd5b50601c546103c690600160a81b900460ff1681565b34801561061d57600080fd5b506103c661062c36600461206a565b60076020526000908152604090205460ff1681565b34801561064d57600080fd5b5061046160115481565b34801561066357600080fd5b506103f661067236600461206a565b610da4565b34801561068357600080fd5b5061046160125481565b34801561069957600080fd5b506103f66106a836600461204f565b610df6565b3480156106b957600080fd5b5061046160185481565b3480156106cf57600080fd5b506103f66106de366004611fc0565b610e3e565b3480156106ef57600080fd5b506104616106fe36600461206a565b6001600160a01b031660009081526005602052604090205490565b34801561072557600080fd5b5061046160155481565b34801561073b57600080fd5b506103f661074a366004611fc0565b610e93565b34801561075b57600080fd5b50610461600e5481565b34801561077157600080fd5b506103c661078036600461206a565b60096020526000908152604090205460ff1681565b3480156107a157600080fd5b506000546001600160a01b0316610418565b3480156107bf57600080fd5b506103f6610ee8565b3480156107d457600080fd5b50610390610f62565b3480156107e957600080fd5b506103f66107f8366004612036565b610f71565b34801561080957600080fd5b5061046160195481565b34801561081f57600080fd5b50601a54610461565b34801561083457600080fd5b5061046160165481565b34801561084a57600080fd5b506103c6610859366004611efb565b610fbc565b34801561086a57600080fd5b5061046160135481565b34801561088057600080fd5b506103f661088f36600461206a565b61100b565b3480156108a057600080fd5b506103c66108af366004611efb565b611057565b3480156108c057600080fd5b506103c66108cf366004612087565b101590565b3480156108e057600080fd5b50610461600d5481565b3480156108f657600080fd5b506103f661090536600461204f565b611064565b34801561091657600080fd5b50610461600c5481565b34801561092c57600080fd5b50601c54610418906001600160a01b031681565b34801561094c57600080fd5b50610461600f5481565b34801561096257600080fd5b506103c661097136600461206a565b60086020526000908152604090205460ff1681565b34801561099257600080fd5b5061046160105481565b3480156109a857600080fd5b506103f66109b7366004612036565b6110e6565b3480156109c857600080fd5b50601c546103c690600160b01b900460ff1681565b3480156109e957600080fd5b50610461600b5481565b3480156109ff57600080fd5b50610461610a0e3660046120a9565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a4557600080fd5b506103f6610a54366004611fc0565b611131565b348015610a6557600080fd5b5061046160145481565b348015610a7b57600080fd5b506103f6610a8a36600461206a565b611186565b606060018054610a9e906120e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610aca906120e2565b8015610b175780601f10610aec57610100808354040283529160200191610b17565b820191906000526020600020905b815481529060010190602001808311610afa57829003601f168201915b5050505050905090565b6000610b2e338484611393565b5060015b92915050565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b8152600401610b629061211c565b60405180910390fd5b60c98210610b7857600080fd5b60005b82811015610be7578160076000868685818110610b9a57610b9a612151565b9050602002016020810190610baf919061206a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610be08161217d565b9050610b7b565b50505050565b6000546001600160a01b03163314610c175760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c4f8484846114b7565b50610ca28433610c9d856040518060600160405280602881526020016123d5602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611845565b611393565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260056020526040812054601754610cf29161187f565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b2e918590610c9d9086611270565b6000546001600160a01b03163314610d575760405162461bcd60e51b8152600401610b629061211c565b601a55565b6000546001600160a01b03163314610d865760405162461bcd60e51b8152600401610b629061211c565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610b629061211c565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610e205760405162461bcd60e51b8152600401610b629061211c565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b03163314610e685760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f125760405162461bcd60e51b8152600401610b629061211c565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060028054610a9e906120e2565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b8152600401610b629061211c565b60035460ff16610fac90600a61227a565b610fb69082612289565b60195550565b6000610b2e3384610c9d856040518060600160405280602581526020016123fd602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611845565b6000546001600160a01b031633146110355760405162461bcd60e51b8152600401610b629061211c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ca23384846114b7565b6000546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610b629061211c565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110db90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111105760405162461bcd60e51b8152600401610b629061211c565b60035460ff1661112190600a61227a565b61112b9082612289565b60185550565b6000546001600160a01b0316331461115b5760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111b05760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b0381166112155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b62565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061127d83856122a0565b905083811015610ca65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b62565b6000826000036112e157506000610b32565b60006112ed8385612289565b9050826112fa85836122b3565b14610ca65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b62565b6000610ca683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118c1565b6001600160a01b0383166113f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b62565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b62565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661151d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b62565b6001600160a01b03831661157f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b62565b601c54600160a01b900460ff16156115a35761159c8484846118ef565b9050610ca6565b6001600160a01b03841660009081526009602052604090205460ff161580156115e557506001600160a01b03831660009081526009602052604090205460ff16155b156115ff576115f682601854101590565b6115ff57600080fd5b30600090815260056020526040902054601a548110801590819061162d5750601c54600160a01b900460ff16155b801561165257506001600160a01b0386166000908152600a602052604090205460ff16155b80156116675750601c54600160a81b900460ff165b1561168d57601c54600160b01b900460ff161561168457601a5491505b61168d826119d5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546116df918690611845565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061172c57506001600160a01b03861660009081526007602052604090205460ff165b15611738575083611746565b611743878787611b10565b90505b601c54600160b81b900460ff16801561177857506001600160a01b03861660009081526008602052604090205460ff16155b156117ba576117b16117a9826117a3896001600160a01b031660009081526005602052604090205490565b90611270565b601954101590565b6117ba57600080fd5b6001600160a01b0386166000908152600560205260409020546117dd9082611270565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118319085815260200190565b60405180910390a360019350505050610ca6565b600081848411156118695760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122d5565b95945050505050565b6000610ca683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611845565b600081836118e25760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611940918490611845565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461196f9083611270565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119c39086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b179055601654601154600091611a0b91600291611a0591829087906112cf565b90611351565b90506000611a19838361187f565b9050611a2481611c16565b6011544790600090611a4490611a3b906002611351565b6016549061187f565b90506000611a666002611a0584611a05601154886112cf90919063ffffffff16565b90506000611a8383611a05601354876112cf90919063ffffffff16565b90506000611a9b82611a95878661187f565b9061187f565b90508015611abe57600354611abe9061010090046001600160a01b031682611da3565b8115611ada57600454611ada906001600160a01b031683611da3565b600083118015611aea5750600087115b15611af957611af98784611dde565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611b5457611b4d6064611a05601454866112cf90919063ffffffff16565b9050611b92565b6001600160a01b0384166000908152600a602052604090205460ff1615611b9257611b8f6064611a05601554866112cf90919063ffffffff16565b90505b8015611c0c5730600090815260056020526040902054611bb29082611270565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c039085815260200190565b60405180910390a35b611876838261187f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4b57611c4b612151565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc891906122e8565b81600181518110611cdb57611cdb612151565b6001600160a01b039283166020918202929092010152601b54611d019130911684611393565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d3a908590600090869030904290600401612349565b600060405180830381600087803b158015611d5457600080fd5b505af1925050508015611d65575060015b507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611d97929190612385565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611dd9573d6000803e3d6000fd5b505050565b601b54611df69030906001600160a01b031684611393565b601b5460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af193505050508015611e88575060408051601f3d908101601f19168201909252611e85918101906123a6565b60015b15611e91575050505b5050565b600060208083528351808285015260005b81811015611ec257858101830151858201604001528201611ea6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ef857600080fd5b50565b60008060408385031215611f0e57600080fd5b8235611f1981611ee3565b946020939093013593505050565b80358015158114611f3757600080fd5b919050565b600080600060408486031215611f5157600080fd5b833567ffffffffffffffff80821115611f6957600080fd5b818601915086601f830112611f7d57600080fd5b813581811115611f8c57600080fd5b8760208260051b8501011115611fa157600080fd5b602092830195509350611fb79186019050611f27565b90509250925092565b60008060408385031215611fd357600080fd5b8235611fde81611ee3565b9150611fec60208401611f27565b90509250929050565b60008060006060848603121561200a57600080fd5b833561201581611ee3565b9250602084013561202581611ee3565b929592945050506040919091013590565b60006020828403121561204857600080fd5b5035919050565b60006020828403121561206157600080fd5b610ca682611f27565b60006020828403121561207c57600080fd5b8135610ca681611ee3565b6000806040838503121561209a57600080fd5b50508035926020909101359150565b600080604083850312156120bc57600080fd5b82356120c781611ee3565b915060208301356120d781611ee3565b809150509250929050565b600181811c908216806120f657607f821691505b60208210810361211657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161218f5761218f612167565b5060010190565b600181815b808511156121d15781600019048211156121b7576121b7612167565b808516156121c457918102915b93841c939080029061219b565b509250929050565b6000826121e857506001610b32565b816121f557506000610b32565b816001811461220b576002811461221557612231565b6001915050610b32565b60ff84111561222657612226612167565b50506001821b610b32565b5060208310610133831016604e8410600b8410161715612254575081810a610b32565b61225e8383612196565b806000190482111561227257612272612167565b029392505050565b6000610ca660ff8416836121d9565b8082028115828204841417610b3257610b32612167565b80820180821115610b3257610b32612167565b6000826122d057634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610b3257610b32612167565b6000602082840312156122fa57600080fd5b8151610ca681611ee3565b600081518084526020808501945080840160005b8381101561233e5781516001600160a01b031687529582019590820190600101612319565b509495945050505050565b85815284602082015260a06040820152600061236860a0830186612305565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061239e6040830184612305565b949350505050565b6000806000606084860312156123bb57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d797726a00c77961c136ace2a06fdd69f30912b36ced4844269649ac12f5936c64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c806388790a68116101c6578063c469b6dd116100f7578063cdf7249311610095578063dd62ed3e1161006f578063dd62ed3e146109f3578063e2f2a68614610a39578063f0cd1dac14610a59578063f2fde38b14610a6f57600080fd5b8063cdf724931461099c578063d9419b73146109bc578063dc44b6a0146109dd57600080fd5b8063c816841b116100d1578063c816841b14610920578063c860795214610940578063c867d60b14610956578063cab034711461098657600080fd5b8063c469b6dd146108d4578063c49b9a80146108ea578063c5d241891461090a57600080fd5b8063a073d37f11610164578063a83f53a71161013e578063a83f53a71461085e578063a8602fea14610874578063a9059cbb14610894578063a911928c146108b457600080fd5b8063a073d37f14610813578063a08e671f14610828578063a457c2d71461083e57600080fd5b8063914eb66a116101a0578063914eb66a146107b357806395d89b41146107c8578063989200de146107dd5780639daec0bc146107fd57600080fd5b806388790a681461074f5780638b42507f146107655780638da5cb5b1461079557600080fd5b80633e07387c116102a057806361a23c691161023e57806370a02c8b1161021857806370a02c8b146106c357806370a08231146106e357806382eefb4314610719578063844d591c1461072f57600080fd5b806361a23c691461067757806362e8e50b1461068d5780636ad53b59146106ad57600080fd5b80634a74bb021161027a5780634a74bb02146105f05780635342acb41461061157806357a5802f146106415780635d098b381461065757600080fd5b80633e07387c1461057f5780633ecad2711461059f57806346663b82146105cf57600080fd5b806323b872dd1161030d5780632b112e49116102e75780632b112e4914610508578063313ce5671461051d578063395093511461053f5780633b97084a1461055f57600080fd5b806323b872dd1461048f5780632598cdb2146104af57806327c8f835146104d457600080fd5b806311ffeaf21161034957806311ffeaf2146103f85780631694505e1461043057806318160ddd146104505780631afe88921461046f57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630ecc200f146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a8f565b60405161039d9190611e95565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004611efb565b610b21565b604051901515815260200161039d565b3480156103e257600080fd5b506103f66103f1366004611f3c565b610b38565b005b34801561040457600080fd5b50600454610418906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561043c57600080fd5b50601b54610418906001600160a01b031681565b34801561045c57600080fd5b506017545b60405190815260200161039d565b34801561047b57600080fd5b506103f661048a366004611fc0565b610bed565b34801561049b57600080fd5b506103c66104aa366004611ff5565b610c42565b3480156104bb57600080fd5b506003546104189061010090046001600160a01b031681565b3480156104e057600080fd5b506104187f000000000000000000000000000000000000000000000000000000000000dead81565b34801561051457600080fd5b50610461610cad565b34801561052957600080fd5b5060035460405160ff909116815260200161039d565b34801561054b57600080fd5b506103c661055a366004611efb565b610cf7565b34801561056b57600080fd5b506103f661057a366004612036565b610d2d565b34801561058b57600080fd5b506103f661059a36600461204f565b610d5c565b3480156105ab57600080fd5b506103c66105ba36600461206a565b600a6020526000908152604090205460ff1681565b3480156105db57600080fd5b50601c546103c690600160b81b900460ff1681565b3480156105fc57600080fd5b50601c546103c690600160a81b900460ff1681565b34801561061d57600080fd5b506103c661062c36600461206a565b60076020526000908152604090205460ff1681565b34801561064d57600080fd5b5061046160115481565b34801561066357600080fd5b506103f661067236600461206a565b610da4565b34801561068357600080fd5b5061046160125481565b34801561069957600080fd5b506103f66106a836600461204f565b610df6565b3480156106b957600080fd5b5061046160185481565b3480156106cf57600080fd5b506103f66106de366004611fc0565b610e3e565b3480156106ef57600080fd5b506104616106fe36600461206a565b6001600160a01b031660009081526005602052604090205490565b34801561072557600080fd5b5061046160155481565b34801561073b57600080fd5b506103f661074a366004611fc0565b610e93565b34801561075b57600080fd5b50610461600e5481565b34801561077157600080fd5b506103c661078036600461206a565b60096020526000908152604090205460ff1681565b3480156107a157600080fd5b506000546001600160a01b0316610418565b3480156107bf57600080fd5b506103f6610ee8565b3480156107d457600080fd5b50610390610f62565b3480156107e957600080fd5b506103f66107f8366004612036565b610f71565b34801561080957600080fd5b5061046160195481565b34801561081f57600080fd5b50601a54610461565b34801561083457600080fd5b5061046160165481565b34801561084a57600080fd5b506103c6610859366004611efb565b610fbc565b34801561086a57600080fd5b5061046160135481565b34801561088057600080fd5b506103f661088f36600461206a565b61100b565b3480156108a057600080fd5b506103c66108af366004611efb565b611057565b3480156108c057600080fd5b506103c66108cf366004612087565b101590565b3480156108e057600080fd5b50610461600d5481565b3480156108f657600080fd5b506103f661090536600461204f565b611064565b34801561091657600080fd5b50610461600c5481565b34801561092c57600080fd5b50601c54610418906001600160a01b031681565b34801561094c57600080fd5b50610461600f5481565b34801561096257600080fd5b506103c661097136600461206a565b60086020526000908152604090205460ff1681565b34801561099257600080fd5b5061046160105481565b3480156109a857600080fd5b506103f66109b7366004612036565b6110e6565b3480156109c857600080fd5b50601c546103c690600160b01b900460ff1681565b3480156109e957600080fd5b50610461600b5481565b3480156109ff57600080fd5b50610461610a0e3660046120a9565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a4557600080fd5b506103f6610a54366004611fc0565b611131565b348015610a6557600080fd5b5061046160145481565b348015610a7b57600080fd5b506103f6610a8a36600461206a565b611186565b606060018054610a9e906120e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610aca906120e2565b8015610b175780601f10610aec57610100808354040283529160200191610b17565b820191906000526020600020905b815481529060010190602001808311610afa57829003601f168201915b5050505050905090565b6000610b2e338484611393565b5060015b92915050565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b8152600401610b629061211c565b60405180910390fd5b60c98210610b7857600080fd5b60005b82811015610be7578160076000868685818110610b9a57610b9a612151565b9050602002016020810190610baf919061206a565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610be08161217d565b9050610b7b565b50505050565b6000546001600160a01b03163314610c175760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c4f8484846114b7565b50610ca28433610c9d856040518060600160405280602881526020016123d5602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611845565b611393565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260056020526040812054601754610cf29161187f565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b2e918590610c9d9086611270565b6000546001600160a01b03163314610d575760405162461bcd60e51b8152600401610b629061211c565b601a55565b6000546001600160a01b03163314610d865760405162461bcd60e51b8152600401610b629061211c565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610b629061211c565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610e205760405162461bcd60e51b8152600401610b629061211c565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b03163314610e685760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f125760405162461bcd60e51b8152600401610b629061211c565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060028054610a9e906120e2565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b8152600401610b629061211c565b60035460ff16610fac90600a61227a565b610fb69082612289565b60195550565b6000610b2e3384610c9d856040518060600160405280602581526020016123fd602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611845565b6000546001600160a01b031633146110355760405162461bcd60e51b8152600401610b629061211c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ca23384846114b7565b6000546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610b629061211c565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110db90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111105760405162461bcd60e51b8152600401610b629061211c565b60035460ff1661112190600a61227a565b61112b9082612289565b60185550565b6000546001600160a01b0316331461115b5760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111b05760405162461bcd60e51b8152600401610b629061211c565b6001600160a01b0381166112155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b62565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061127d83856122a0565b905083811015610ca65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b62565b6000826000036112e157506000610b32565b60006112ed8385612289565b9050826112fa85836122b3565b14610ca65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b62565b6000610ca683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118c1565b6001600160a01b0383166113f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b62565b6001600160a01b0382166114565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b62565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661151d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b62565b6001600160a01b03831661157f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b62565b601c54600160a01b900460ff16156115a35761159c8484846118ef565b9050610ca6565b6001600160a01b03841660009081526009602052604090205460ff161580156115e557506001600160a01b03831660009081526009602052604090205460ff16155b156115ff576115f682601854101590565b6115ff57600080fd5b30600090815260056020526040902054601a548110801590819061162d5750601c54600160a01b900460ff16155b801561165257506001600160a01b0386166000908152600a602052604090205460ff16155b80156116675750601c54600160a81b900460ff165b1561168d57601c54600160b01b900460ff161561168457601a5491505b61168d826119d5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546116df918690611845565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061172c57506001600160a01b03861660009081526007602052604090205460ff165b15611738575083611746565b611743878787611b10565b90505b601c54600160b81b900460ff16801561177857506001600160a01b03861660009081526008602052604090205460ff16155b156117ba576117b16117a9826117a3896001600160a01b031660009081526005602052604090205490565b90611270565b601954101590565b6117ba57600080fd5b6001600160a01b0386166000908152600560205260409020546117dd9082611270565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118319085815260200190565b60405180910390a360019350505050610ca6565b600081848411156118695760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122d5565b95945050505050565b6000610ca683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611845565b600081836118e25760405162461bcd60e51b8152600401610b629190611e95565b50600061187684866122b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611940918490611845565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461196f9083611270565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119c39086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b179055601654601154600091611a0b91600291611a0591829087906112cf565b90611351565b90506000611a19838361187f565b9050611a2481611c16565b6011544790600090611a4490611a3b906002611351565b6016549061187f565b90506000611a666002611a0584611a05601154886112cf90919063ffffffff16565b90506000611a8383611a05601354876112cf90919063ffffffff16565b90506000611a9b82611a95878661187f565b9061187f565b90508015611abe57600354611abe9061010090046001600160a01b031682611da3565b8115611ada57600454611ada906001600160a01b031683611da3565b600083118015611aea5750600087115b15611af957611af98784611dde565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611b5457611b4d6064611a05601454866112cf90919063ffffffff16565b9050611b92565b6001600160a01b0384166000908152600a602052604090205460ff1615611b9257611b8f6064611a05601554866112cf90919063ffffffff16565b90505b8015611c0c5730600090815260056020526040902054611bb29082611270565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c039085815260200190565b60405180910390a35b611876838261187f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4b57611c4b612151565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc891906122e8565b81600181518110611cdb57611cdb612151565b6001600160a01b039283166020918202929092010152601b54611d019130911684611393565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d3a908590600090869030904290600401612349565b600060405180830381600087803b158015611d5457600080fd5b505af1925050508015611d65575060015b507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611d97929190612385565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611dd9573d6000803e3d6000fd5b505050565b601b54611df69030906001600160a01b031684611393565b601b5460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af193505050508015611e88575060408051601f3d908101601f19168201909252611e85918101906123a6565b60015b15611e91575050505b5050565b600060208083528351808285015260005b81811015611ec257858101830151858201604001528201611ea6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ef857600080fd5b50565b60008060408385031215611f0e57600080fd5b8235611f1981611ee3565b946020939093013593505050565b80358015158114611f3757600080fd5b919050565b600080600060408486031215611f5157600080fd5b833567ffffffffffffffff80821115611f6957600080fd5b818601915086601f830112611f7d57600080fd5b813581811115611f8c57600080fd5b8760208260051b8501011115611fa157600080fd5b602092830195509350611fb79186019050611f27565b90509250925092565b60008060408385031215611fd357600080fd5b8235611fde81611ee3565b9150611fec60208401611f27565b90509250929050565b60008060006060848603121561200a57600080fd5b833561201581611ee3565b9250602084013561202581611ee3565b929592945050506040919091013590565b60006020828403121561204857600080fd5b5035919050565b60006020828403121561206157600080fd5b610ca682611f27565b60006020828403121561207c57600080fd5b8135610ca681611ee3565b6000806040838503121561209a57600080fd5b50508035926020909101359150565b600080604083850312156120bc57600080fd5b82356120c781611ee3565b915060208301356120d781611ee3565b809150509250929050565b600181811c908216806120f657607f821691505b60208210810361211657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161218f5761218f612167565b5060010190565b600181815b808511156121d15781600019048211156121b7576121b7612167565b808516156121c457918102915b93841c939080029061219b565b509250929050565b6000826121e857506001610b32565b816121f557506000610b32565b816001811461220b576002811461221557612231565b6001915050610b32565b60ff84111561222657612226612167565b50506001821b610b32565b5060208310610133831016604e8410600b8410161715612254575081810a610b32565b61225e8383612196565b806000190482111561227257612272612167565b029392505050565b6000610ca660ff8416836121d9565b8082028115828204841417610b3257610b32612167565b80820180821115610b3257610b32612167565b6000826122d057634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610b3257610b32612167565b6000602082840312156122fa57600080fd5b8151610ca681611ee3565b600081518084526020808501945080840160005b8381101561233e5781516001600160a01b031687529582019590820190600101612319565b509495945050505050565b85815284602082015260a06040820152600061236860a0830186612305565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061239e6040830184612305565b949350505050565b6000806000606084860312156123bb57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d797726a00c77961c136ace2a06fdd69f30912b36ced4844269649ac12f5936c64736f6c63430008110033

Deployed Bytecode Sourcemap

18490:393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8746:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10040:161;;;;;;;;;;-1:-1:-1;10040:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10040:161:0;1023:187:1;10973:260:0;;;;;;;;;;-1:-1:-1;10973:260:0;;;;;:::i;:::-;;:::i;:::-;;4614:37;;;;;;;;;;-1:-1:-1;4614:37:0;;;;-1:-1:-1;;;;;4614:37:0;;;;;;-1:-1:-1;;;;;2254:32:1;;;2236:51;;2224:2;2209:18;4614:37:0;2074:219:1;5731:41:0;;;;;;;;;;-1:-1:-1;5731:41:0;;;;-1:-1:-1;;;;;5731:41:0;;;9023:100;;;;;;;;;;-1:-1:-1;9103:12:0;;9023:100;;;2678:25:1;;;2666:2;2651:18;9023:100:0;2532:177:1;10691:127:0;;;;;;;;;;-1:-1:-1;10691:127:0;;;;;:::i;:::-;;:::i;13039:313::-;;;;;;;;;;-1:-1:-1;13039:313:0;;;;;:::i;:::-;;:::i;4569:38::-;;;;;;;;;;-1:-1:-1;4569:38:0;;;;;;;-1:-1:-1;;;;;4569:38:0;;;4658:81;;;;;;;;;;;;;;;12500:128;;;;;;;;;;;;;:::i;8932:83::-;;;;;;;;;;-1:-1:-1;8998:9:0;;8932:83;;8998:9;;;;3845:36:1;;3833:2;3818:18;8932:83:0;3703:184:1;9409:218:0;;;;;;;;;;-1:-1:-1;9409:218:0;;;;;:::i;:::-;;:::i;11788:124::-;;;;;;;;;;-1:-1:-1;11788:124:0;;;;;:::i;:::-;;:::i;12363:125::-;;;;;;;;;;-1:-1:-1;12363:125:0;;;;;:::i;:::-;;:::i;5052:45::-;;;;;;;;;;-1:-1:-1;5052:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5945:36;;;;;;;;;;-1:-1:-1;5945:36:0;;;;-1:-1:-1;;;5945:36:0;;;;;;5846:40;;;;;;;;;;-1:-1:-1;5846:40:0;;;;-1:-1:-1;;;5846:40:0;;;;;;4881:50;;;;;;;;;;-1:-1:-1;4881:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5335:30;;;;;;;;;;;;;;;;11920:125;;;;;;;;;;-1:-1:-1;11920:125:0;;;;;:::i;:::-;;:::i;5372:30::-;;;;;;;;;;;;;;;;11381:113;;;;;;;;;;-1:-1:-1;11381:113:0;;;;;:::i;:::-;;:::i;5605:29::-;;;;;;;;;;;;;;;;11502:135;;;;;;;;;;-1:-1:-1;11502:135:0;;;;;:::i;:::-;;:::i;9131:119::-;;;;;;;;;;-1:-1:-1;9131:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9224:18:0;9197:7;9224:18;;;:9;:18;;;;;;;9131:119;5482:33;;;;;;;;;;;;;;;;10554:129;;;;;;;;;;-1:-1:-1;10554:129:0;;;;;:::i;:::-;;:::i;5221:32::-;;;;;;;;;;;;;;;;4997:48;;;;;;;;;;-1:-1:-1;4997:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2921:79;;;;;;;;;;-1:-1:-1;2959:7:0;2986:6;-1:-1:-1;;;;;2986:6:0;2921:79;;3146:155;;;;;;;;;;;;;:::i;8837:87::-;;;;;;;;;;;;;:::i;11645:135::-;;;;;;;;;;-1:-1:-1;11645:135:0;;;;;:::i;:::-;;:::i;5642:33::-;;;;;;;;;;;;;;;;9912:120;;;;;;;;;;-1:-1:-1;10001:23:0;;9912:120;;5522:39;;;;;;;;;;;;;;;;9635:269;;;;;;;;;;-1:-1:-1;9635:269:0;;;;;:::i;:::-;;:::i;5409:25::-;;;;;;;;;;;;;;;;12053:123;;;;;;;;;;-1:-1:-1;12053:123:0;;;;;:::i;:::-;;:::i;12864:167::-;;;;;;;;;;-1:-1:-1;12864:167:0;;;;;:::i;:::-;;:::i;15148:86::-;;;;;;;;;;-1:-1:-1;15148:86:0;;;;;:::i;:::-;-1:-1:-1;15227:4:0;;15148:86;5182:26;;;;;;;;;;;;;;;;12184:171;;;;;;;;;;-1:-1:-1;12184:171:0;;;;;:::i;:::-;;:::i;5144:31::-;;;;;;;;;;;;;;;;5779:26;;;;;;;;;;-1:-1:-1;5779:26:0;;;;-1:-1:-1;;;;;5779:26:0;;;5260:32;;;;;;;;;;;;;;;;4938:52;;;;;;;;;;-1:-1:-1;4938:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5299:27;;;;;;;;;;;;;;;;11245:128;;;;;;;;;;-1:-1:-1;11245:128:0;;;;;:::i;:::-;;:::i;5893:45::-;;;;;;;;;;-1:-1:-1;5893:45:0;;;;-1:-1:-1;;;5893:45:0;;;;;;5106:31;;;;;;;;;;;;;;;;9258:143;;;;;;;;;;-1:-1:-1;9258:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9366:18:0;;;9339:7;9366:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9258:143;10830:135;;;;;;;;;;-1:-1:-1;10830:135:0;;;;;:::i;:::-;;:::i;5443:32::-;;;;;;;;;;;;;;;;3309:244;;;;;;;;;;-1:-1:-1;3309:244:0;;;;;:::i;:::-;;:::i;8746:83::-;8783:13;8816:5;8809:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8746:83;:::o;10040:161::-;10115:4;10132:39;311:10;10155:7;10164:6;10132:8;:39::i;:::-;-1:-1:-1;10189:4:0;10040:161;;;;;:::o;10973:260::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;;;;;;;;;11101:3:::1;11082:22:::0;::::1;11074:31;;;::::0;::::1;;11121:9;11116:110;11132:20:::0;;::::1;11116:110;;;11208:6;11174:17;:31;11192:9;;11202:1;11192:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11174:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11174:31:0;:40;;-1:-1:-1;;11174:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11154:3:::1;::::0;::::1;:::i;:::-;;;11116:110;;;;10973:260:::0;;;:::o;10691:127::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10778:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;10778:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10691:127::o;13039:313::-;13137:4;13154:36;13164:6;13172:9;13183:6;13154:9;:36::i;:::-;-1:-1:-1;13201:121:0;13210:6;311:10;13232:89;13270:6;13232:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13232:19:0;;;;;;:11;:19;;;;;;;;311:10;13232:33;;;;;;;;;;:37;:89::i;:::-;13201:8;:121::i;:::-;-1:-1:-1;13340:4:0;13039:313;;;;;;:::o;12500:128::-;12607:11;-1:-1:-1;;;;;9224:18:0;12553:7;9224:18;;;:9;:18;;;;;;12580:12;;:40;;:16;:40::i;:::-;12573:47;;12500:128;:::o;9409:218::-;311:10;9497:4;9546:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9546:34:0;;;;;;;;;;9497:4;;9514:83;;9537:7;;9546:50;;9585:10;9546:38;:50::i;11788:124::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11870:23:::1;:34:::0;11788:124::o;12363:125::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;12444:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;12444:36:0::1;-1:-1:-1::0;;;;12444:36:0;;::::1;::::0;;;::::1;::::0;;12363:125::o;11920:::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;12000:15:::1;:37:::0;;-1:-1:-1;;;;;12000:37:0;;::::1;;;-1:-1:-1::0;;;;;;12000:37:0;;::::1;::::0;;;::::1;::::0;;11920:125::o;11381:113::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11458:17:::1;:28:::0;;;::::1;;-1:-1:-1::0;;;11458:28:0::1;-1:-1:-1::0;;;;11458:28:0;;::::1;::::0;;;::::1;::::0;;11381:113::o;11502:135::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11593:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;11593:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11502:135::o;10554:129::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10643:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;10643:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10554:129::o;3146:155::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;3234:6:::1;::::0;;3213:45:::1;::::0;3250:6:::1;::::0;-1:-1:-1;;;;;3234:6:0;;::::1;::::0;3213:45:::1;::::0;::::1;3269:6;:24:::0;;-1:-1:-1;;;;;;3269:24:0::1;3286:6;3269:24;::::0;;3146:155::o;8837:87::-;8876:13;8909:7;8902:14;;;;;:::i;11645:135::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;8998:9;;;;11756:16:::1;::::0;:2:::1;:16;:::i;:::-;11745:27;::::0;:8;:27:::1;:::i;:::-;11723:18;:49:::0;-1:-1:-1;11645:135:0:o;9635:269::-;9728:4;9745:129;311:10;9768:7;9777:96;9816:15;9777:96;;;;;;;;;;;;;;;;;311:10;9777:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9777:34:0;;;;;;;;;;;;:38;:96::i;12053:123::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;12132:14:::1;:36:::0;;-1:-1:-1;;;;;;12132:36:0::1;-1:-1:-1::0;;;;;12132:36:0;;;::::1;::::0;;;::::1;::::0;;12053:123::o;12864:167::-;12942:4;12959:42;311:10;12983:9;12994:6;12959:9;:42::i;12184:171::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;12261:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;12261:32:0::1;-1:-1:-1::0;;;;12261:32:0;;::::1;;::::0;;12309:38:::1;::::0;::::1;::::0;::::1;::::0;12285:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;12309:38:0::1;;;;;;;;12184:171:::0;:::o;11245:128::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;8998:9;;;;11349:16:::1;::::0;:2:::1;:16;:::i;:::-;11338:27;::::0;:8;:27:::1;:::i;:::-;11321:14;:44:::0;-1:-1:-1;11245:128:0:o;10830:135::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10920:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;10920:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10830:135::o;3309:244::-;3055:6;;-1:-1:-1;;;;;3055:6:0;311:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3398:22:0;::::1;3390:73;;;::::0;-1:-1:-1;;;3390:73:0;;8068:2:1;3390:73:0::1;::::0;::::1;8050:21:1::0;8107:2;8087:18;;;8080:30;8146:34;8126:18;;;8119:62;-1:-1:-1;;;8197:18:1;;;8190:36;8243:19;;3390:73:0::1;7866:402:1::0;3390:73:0::1;3500:6;::::0;;3479:38:::1;::::0;-1:-1:-1;;;;;3479:38:0;;::::1;::::0;3500:6;::::1;::::0;3479:38:::1;::::0;::::1;3528:6;:17:::0;;-1:-1:-1;;;;;;3528:17:0::1;-1:-1:-1::0;;;;;3528:17:0;;;::::1;::::0;;;::::1;::::0;;3309:244::o;1164:181::-;1222:7;;1254:5;1258:1;1254;:5;:::i;:::-;1242:17;;1283:1;1278;:6;;1270:46;;;;-1:-1:-1;;;1270:46:0;;8605:2:1;1270:46:0;;;8587:21:1;8644:2;8624:18;;;8617:30;8683:29;8663:18;;;8656:57;8730:18;;1270:46:0;8403:351:1;1697:250:0;1755:7;1779:1;1784;1779:6;1775:47;;-1:-1:-1;1809:1:0;1802:8;;1775:47;1834:9;1846:5;1850:1;1846;:5;:::i;:::-;1834:17;-1:-1:-1;1879:1:0;1870:5;1874:1;1834:17;1870:5;:::i;:::-;:10;1862:56;;;;-1:-1:-1;;;1862:56:0;;9183:2:1;1862:56:0;;;9165:21:1;9222:2;9202:18;;;9195:30;9261:34;9241:18;;;9234:62;-1:-1:-1;;;9312:18:1;;;9305:31;9353:19;;1862:56:0;8981:397:1;1955:132:0;2013:7;2040:39;2044:1;2047;2040:39;;;;;;;;;;;;;;;;;:3;:39::i;10209:337::-;-1:-1:-1;;;;;10302:19:0;;10294:68;;;;-1:-1:-1;;;10294:68:0;;9585:2:1;10294:68:0;;;9567:21:1;9624:2;9604:18;;;9597:30;9663:34;9643:18;;;9636:62;-1:-1:-1;;;9714:18:1;;;9707:34;9758:19;;10294:68:0;9383:400:1;10294:68:0;-1:-1:-1;;;;;10381:21:0;;10373:68;;;;-1:-1:-1;;;10373:68:0;;9990:2:1;10373:68:0;;;9972:21:1;10029:2;10009:18;;;10002:30;10068:34;10048:18;;;10041:62;-1:-1:-1;;;10119:18:1;;;10112:32;10161:19;;10373:68:0;9788:398:1;10373:68:0;-1:-1:-1;;;;;10454:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10506:32;;2678:25:1;;;10506:32:0;;2651:18:1;10506:32:0;;;;;;;10209:337;;;:::o;13360:1780::-;13447:4;-1:-1:-1;;;;;13474:20:0;;13466:70;;;;-1:-1:-1;;;13466:70:0;;10393:2:1;13466:70:0;;;10375:21:1;10432:2;10412:18;;;10405:30;10471:34;10451:18;;;10444:62;-1:-1:-1;;;10522:18:1;;;10515:35;10567:19;;13466:70:0;10191:401:1;13466:70:0;-1:-1:-1;;;;;13555:23:0;;13547:71;;;;-1:-1:-1;;;13547:71:0;;10799:2:1;13547:71:0;;;10781:21:1;10838:2;10818:18;;;10811:30;10877:34;10857:18;;;10850:62;-1:-1:-1;;;10928:18:1;;;10921:33;10971:19;;13547:71:0;10597:399:1;13547:71:0;13634:16;;-1:-1:-1;;;13634:16:0;;;;13631:1502;;;13684:41;13699:6;13707:9;13718:6;13684:14;:41::i;:::-;13677:48;;;;13631:1502;-1:-1:-1;;;;;13781:23:0;;;;;;:15;:23;;;;;;;;13780:24;:55;;;;-1:-1:-1;;;;;;13809:26:0;;;;;;:15;:26;;;;;;;;13808:27;13780:55;13777:140;;;13864:36;13877:6;13885:14;;-1:-1:-1;15227:4:0;;15148:86;13864:36;13856:45;;;;;;13994:4;13945:28;9224:18;;;:9;:18;;;;;;14070:23;;14046:47;;;;;;;14126:44;;-1:-1:-1;14154:16:0;;-1:-1:-1;;;14154:16:0;;;;14153:17;14126:44;:69;;;;-1:-1:-1;;;;;;14175:20:0;;;;;;:12;:20;;;;;;;;14174:21;14126:69;:94;;;;-1:-1:-1;14199:21:0;;-1:-1:-1;;;14199:21:0;;;;14126:94;14122:305;;;14258:25;;-1:-1:-1;;;14258:25:0;;;;14255:97;;;14329:23;;14306:46;;14255:97;14371:36;14386:20;14371:14;:36::i;:::-;14463:53;;;;;;;;;;;-1:-1:-1;;;14463:53:0;;;;;;;;-1:-1:-1;;;;;14463:17:0;;-1:-1:-1;14463:17:0;;;:9;:17;;;;;;;;:53;;14485:6;;14463:21;:53::i;:::-;-1:-1:-1;;;;;14443:17:0;;;;;;:9;:17;;;;;;;;:73;;;;14569:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;14598:28:0;;;;;;:17;:28;;;;;;;;14569:57;14565:207;;;-1:-1:-1;14661:6:0;14565:207;;;14722:34;14730:6;14738:9;14749:6;14722:7;:34::i;:::-;14708:48;;14565:207;14791:17;;-1:-1:-1;;;14791:17:0;;;;:52;;;;-1:-1:-1;;;;;;14813:30:0;;;;;;:19;:30;;;;;;;;14812:31;14791:52;14788:154;;;14870:71;14883:37;14908:11;14883:20;14893:9;-1:-1:-1;;;;;9224:18:0;9197:7;9224:18;;;:9;:18;;;;;;;9131:119;14883:20;:24;;:37::i;:::-;14922:18;;-1:-1:-1;15227:4:0;;15148:86;14870:71;14862:80;;;;;;-1:-1:-1;;;;;14982:20:0;;;;;;:9;:20;;;;;;:37;;15007:11;14982:24;:37::i;:::-;-1:-1:-1;;;;;14959:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15041:40;;;;;;;;;;15069:11;2678:25:1;;2666:2;2651:18;;2532:177;15041:40:0;;;;;;;;15103:4;15096:11;;;;;;;1497:192;1583:7;1619:12;1611:6;;;;1603:29;;;;-1:-1:-1;;;1603:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1643:9:0;1655:5;1659:1;1655;:5;:::i;:::-;1643:17;1497:192;-1:-1:-1;;;;;1497:192:0:o;1353:136::-;1411:7;1438:43;1442:1;1445;1438:43;;;;;;;;;;;;;;;;;:3;:43::i;2095:189::-;2181:7;2216:12;2209:5;2201:28;;;;-1:-1:-1;;;2201:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2240:9:0;2252:5;2256:1;2252;:5;:::i;15242:330::-;15372:53;;;;;;;;;;;-1:-1:-1;;;15372:53:0;;;;;;;;-1:-1:-1;;;;;15372:17:0;;15335:4;15372:17;;;:9;:17;;;;;;;:53;;15394:6;;15372:21;:53::i;:::-;-1:-1:-1;;;;;15352:17:0;;;;;;;:9;:17;;;;;;:73;;;;15459:20;;;;;;;:32;;15484:6;15459:24;:32::i;:::-;-1:-1:-1;;;;;15436:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15507:35;;;;;;;;;;15535:6;2678:25:1;;2666:2;2651:18;;2532:177;15507:35:0;;;;;;;;-1:-1:-1;15560:4:0;15242:330;;;;;:::o;15580:1038::-;6404:16;:23;;-1:-1:-1;;;;6404:23:0;-1:-1:-1;;;6404:23:0;;;15717:24:::1;::::0;15696:15:::1;::::0;6404:23;;15684:65:::1;::::0;15747:1:::1;::::0;15684:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;15662:87:::0;-1:-1:-1;15760:21:0::1;15784:24;:7:::0;15662:87;15784:11:::1;:24::i;:::-;15760:48;;15821:31;15838:13;15821:16;:31::i;:::-;15973:15;::::0;15888:21:::1;::::0;15863:22:::1;::::0;15944:52:::1;::::0;15973:22:::1;::::0;15993:1:::1;15973:19;:22::i;:::-;15944:24;::::0;;:28:::1;:52::i;:::-;15922:74;;16017:26;16046:59;16103:1;16046:52;16086:11;16046:35;16065:15;;16046:14;:18;;:35;;;;:::i;:59::-;16017:88;;16116:21;16140:47;16175:11;16140:30;16159:10;;16140:14;:18;;:30;;;;:::i;:47::-;16116:71:::0;-1:-1:-1;16198:26:0::1;16227:57;16116:71:::0;16227:38:::1;:14:::0;16246:18;16227::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;16198:86:::0;-1:-1:-1;16300:22:0;;16297:97:::1;;16358:15;::::0;16337:57:::1;::::0;16358:15:::1;::::0;::::1;-1:-1:-1::0;;;;;16358:15:0::1;16375:18:::0;16337:20:::1;:57::i;:::-;16410:17:::0;;16407:86:::1;;16463:14;::::0;16442:51:::1;::::0;-1:-1:-1;;;;;16463:14:0::1;16479:13:::0;16442:20:::1;:51::i;:::-;16530:1;16509:18;:22;:41;;;;;16549:1;16535:11;:15;16509:41;16506:104;;;16565:45;16578:11;16591:18;16565:12;:45::i;:::-;-1:-1:-1::0;;6450:16:0;:24;;-1:-1:-1;;;;6450:24:0;;;-1:-1:-1;;;;;;15580:1038:0:o;17861:622::-;-1:-1:-1;;;;;18022:20:0;;17947:7;18022:20;;;:12;:20;;;;;;17947:7;;18022:20;;18019:223;;;18071:38;18105:3;18071:29;18082:17;;18071:6;:10;;:29;;;;:::i;:38::-;18059:50;;18019:223;;;-1:-1:-1;;;;;18139:23:0;;;;;;:12;:23;;;;;;;;18136:106;;;18191:39;18226:3;18191:30;18202:18;;18191:6;:10;;:30;;;;:::i;:39::-;18179:51;;18136:106;18265:13;;18262:173;;18340:4;18322:24;;;;:9;:24;;;;;;:39;;18351:9;18322:28;:39::i;:::-;18313:4;18295:24;;;;:9;:24;;;;;;;:66;;;;18381:42;;-1:-1:-1;;;;;18381:42:0;;;;;;;18413:9;2678:25:1;;2666:2;2651:18;;2532:177;18381:42:0;;;;;;;;18262:173;18454:21;:6;18465:9;18454:10;:21::i;16628:681::-;16778:16;;;16792:1;16778:16;;;;;;;;16754:21;;16778:16;;;;;;;;;;-1:-1:-1;16778:16:0;16754:40;;16823:4;16805;16810:1;16805:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16805:23:0;;;:7;;;;;;;;;;:23;;;;16849:15;;:22;;;-1:-1:-1;;;16849:22:0;;;;:15;;;;;:20;;:22;;;;;16805:7;;16849:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16839:4;16844:1;16839:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16839:32:0;;;:7;;;;;;;;;:32;16916:15;;16884:62;;16901:4;;16916:15;16934:11;16884:8;:62::i;:::-;16989:15;;:240;;-1:-1:-1;;;16989:240:0;;-1:-1:-1;;;;;16989:15:0;;;;:66;;:240;;17070:11;;16989:15;;17140:4;;17167;;17203:15;;16989:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16985:256;17266:35;17283:11;17296:4;17266:35;;;;;;;:::i;:::-;;;;;;;;16683:626;16628:681;:::o;12636:126::-;12728:26;;-1:-1:-1;;;;;12728:18:0;;;:26;;;;;12747:6;;12728:26;;;;12747:6;12728:18;:26;;;;;;;;;;;;;;;;;;;;;12636:126;;:::o;17317:536::-;17497:15;;17465:62;;17482:4;;-1:-1:-1;;;;;17497:15:0;17515:11;17465:8;:62::i;:::-;17574:15;;17778;;17574:260;;-1:-1:-1;;;17574:260:0;;17646:4;17574:260;;;13261:34:1;13311:18;;;13304:34;;;-1:-1:-1;13354:18:1;;;13347:34;;;13397:18;;;13390:34;-1:-1:-1;;;;;17574:15:0;17778;;;;;13440:19:1;;;13433:44;17808:15:0;13493:19:1;;;13486:35;17574:15:0;;;:31;;17613:9;;13195:19:1;;17574:260:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17574:260:0;;;;;;;;-1:-1:-1;;17574:260:0;;;;;;;;;;;;:::i;:::-;;;17570:276;;;;;;;17317:536;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:160::-;1280:20;;1336:13;;1329:21;1319:32;;1309:60;;1365:1;1362;1355:12;1309:60;1215:160;;;:::o;1380:689::-;1472:6;1480;1488;1541:2;1529:9;1520:7;1516:23;1512:32;1509:52;;;1557:1;1554;1547:12;1509:52;1597:9;1584:23;1626:18;1667:2;1659:6;1656:14;1653:34;;;1683:1;1680;1673:12;1653:34;1721:6;1710:9;1706:22;1696:32;;1766:7;1759:4;1755:2;1751:13;1747:27;1737:55;;1788:1;1785;1778:12;1737:55;1828:2;1815:16;1854:2;1846:6;1843:14;1840:34;;;1870:1;1867;1860:12;1840:34;1925:7;1918:4;1908:6;1905:1;1901:14;1897:2;1893:23;1889:34;1886:47;1883:67;;;1946:1;1943;1936:12;1883:67;1977:4;1969:13;;;;-1:-1:-1;2001:6:1;-1:-1:-1;2026:37:1;;2042:20;;;-1:-1:-1;2026:37:1;:::i;:::-;2016:47;;1380:689;;;;;:::o;2714:315::-;2779:6;2787;2840:2;2828:9;2819:7;2815:23;2811:32;2808:52;;;2856:1;2853;2846:12;2808:52;2895:9;2882:23;2914:31;2939:5;2914:31;:::i;:::-;2964:5;-1:-1:-1;2988:35:1;3019:2;3004:18;;2988:35;:::i;:::-;2978:45;;2714:315;;;;;:::o;3034:456::-;3111:6;3119;3127;3180:2;3168:9;3159:7;3155:23;3151:32;3148:52;;;3196:1;3193;3186:12;3148:52;3235:9;3222:23;3254:31;3279:5;3254:31;:::i;:::-;3304:5;-1:-1:-1;3361:2:1;3346:18;;3333:32;3374:33;3333:32;3374:33;:::i;:::-;3034:456;;3426:7;;-1:-1:-1;;;3480:2:1;3465:18;;;;3452:32;;3034:456::o;3892:180::-;3951:6;4004:2;3992:9;3983:7;3979:23;3975:32;3972:52;;;4020:1;4017;4010:12;3972:52;-1:-1:-1;4043:23:1;;3892:180;-1:-1:-1;3892:180:1:o;4077:::-;4133:6;4186:2;4174:9;4165:7;4161:23;4157:32;4154:52;;;4202:1;4199;4192:12;4154:52;4225:26;4241:9;4225:26;:::i;4262:247::-;4321:6;4374:2;4362:9;4353:7;4349:23;4345:32;4342:52;;;4390:1;4387;4380:12;4342:52;4429:9;4416:23;4448:31;4473:5;4448:31;:::i;4514:248::-;4582:6;4590;4643:2;4631:9;4622:7;4618:23;4614:32;4611:52;;;4659:1;4656;4649:12;4611:52;-1:-1:-1;;4682:23:1;;;4752:2;4737:18;;;4724:32;;-1:-1:-1;4514:248:1:o;4767:388::-;4835:6;4843;4896:2;4884:9;4875:7;4871:23;4867:32;4864:52;;;4912:1;4909;4902:12;4864:52;4951:9;4938:23;4970:31;4995:5;4970:31;:::i;:::-;5020:5;-1:-1:-1;5077:2:1;5062:18;;5049:32;5090:33;5049:32;5090:33;:::i;:::-;5142:7;5132:17;;;4767:388;;;;;:::o;5160:380::-;5239:1;5235:12;;;;5282;;;5303:61;;5357:4;5349:6;5345:17;5335:27;;5303:61;5410:2;5402:6;5399:14;5379:18;5376:38;5373:161;;5456:10;5451:3;5447:20;5444:1;5437:31;5491:4;5488:1;5481:15;5519:4;5516:1;5509:15;5373:161;;5160:380;;;:::o;5545:356::-;5747:2;5729:21;;;5766:18;;;5759:30;5825:34;5820:2;5805:18;;5798:62;5892:2;5877:18;;5545:356::o;5906:127::-;5967:10;5962:3;5958:20;5955:1;5948:31;5998:4;5995:1;5988:15;6022:4;6019:1;6012:15;6038:127;6099:10;6094:3;6090:20;6087:1;6080:31;6130:4;6127:1;6120:15;6154:4;6151:1;6144:15;6170:135;6209:3;6230:17;;;6227:43;;6250:18;;:::i;:::-;-1:-1:-1;6297:1:1;6286:13;;6170:135::o;6310:422::-;6399:1;6442:5;6399:1;6456:270;6477:7;6467:8;6464:21;6456:270;;;6536:4;6532:1;6528:6;6524:17;6518:4;6515:27;6512:53;;;6545:18;;:::i;:::-;6595:7;6585:8;6581:22;6578:55;;;6615:16;;;;6578:55;6694:22;;;;6654:15;;;;6456:270;;;6460:3;6310:422;;;;;:::o;6737:806::-;6786:5;6816:8;6806:80;;-1:-1:-1;6857:1:1;6871:5;;6806:80;6905:4;6895:76;;-1:-1:-1;6942:1:1;6956:5;;6895:76;6987:4;7005:1;7000:59;;;;7073:1;7068:130;;;;6980:218;;7000:59;7030:1;7021:10;;7044:5;;;7068:130;7105:3;7095:8;7092:17;7089:43;;;7112:18;;:::i;:::-;-1:-1:-1;;7168:1:1;7154:16;;7183:5;;6980:218;;7282:2;7272:8;7269:16;7263:3;7257:4;7254:13;7250:36;7244:2;7234:8;7231:16;7226:2;7220:4;7217:12;7213:35;7210:77;7207:159;;;-1:-1:-1;7319:19:1;;;7351:5;;7207:159;7398:34;7423:8;7417:4;7398:34;:::i;:::-;7468:6;7464:1;7460:6;7456:19;7447:7;7444:32;7441:58;;;7479:18;;:::i;:::-;7517:20;;6737:806;-1:-1:-1;;;6737:806:1:o;7548:140::-;7606:5;7635:47;7676:4;7666:8;7662:19;7656:4;7635:47;:::i;7693:168::-;7766:9;;;7797;;7814:15;;;7808:22;;7794:37;7784:71;;7835:18;;:::i;8273:125::-;8338:9;;;8359:10;;;8356:36;;;8372:18;;:::i;8759:217::-;8799:1;8825;8815:132;;8869:10;8864:3;8860:20;8857:1;8850:31;8904:4;8901:1;8894:15;8932:4;8929:1;8922:15;8815:132;-1:-1:-1;8961:9:1;;8759:217::o;11001:128::-;11068:9;;;11089:11;;;11086:37;;;11103:18;;:::i;11266:251::-;11336:6;11389:2;11377:9;11368:7;11364:23;11360:32;11357:52;;;11405:1;11402;11395:12;11357:52;11437:9;11431:16;11456:31;11481:5;11456:31;:::i;11522:461::-;11575:3;11613:5;11607:12;11640:6;11635:3;11628:19;11666:4;11695:2;11690:3;11686:12;11679:19;;11732:2;11725:5;11721:14;11753:1;11763:195;11777:6;11774:1;11771:13;11763:195;;;11842:13;;-1:-1:-1;;;;;11838:39:1;11826:52;;11898:12;;;;11933:15;;;;11874:1;11792:9;11763:195;;;-1:-1:-1;11974:3:1;;11522:461;-1:-1:-1;;;;;11522:461:1:o;11988:582::-;12287:6;12276:9;12269:25;12330:6;12325:2;12314:9;12310:18;12303:34;12373:3;12368:2;12357:9;12353:18;12346:31;12250:4;12394:57;12446:3;12435:9;12431:19;12423:6;12394:57;:::i;:::-;-1:-1:-1;;;;;12487:32:1;;;;12482:2;12467:18;;12460:60;-1:-1:-1;12551:3:1;12536:19;12529:35;12386:65;11988:582;-1:-1:-1;;;11988:582:1:o;12575:332::-;12782:6;12771:9;12764:25;12825:2;12820;12809:9;12805:18;12798:30;12745:4;12845:56;12897:2;12886:9;12882:18;12874:6;12845:56;:::i;:::-;12837:64;12575:332;-1:-1:-1;;;;12575:332:1:o;13532:306::-;13620:6;13628;13636;13689:2;13677:9;13668:7;13664:23;13660:32;13657:52;;;13705:1;13702;13695:12;13657:52;13734:9;13728:16;13718:26;;13784:2;13773:9;13769:18;13763:25;13753:35;;13828:2;13817:9;13813:18;13807:25;13797:35;;13532:306;;;;;:::o

Swarm Source

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