ETH Price: $2,525.23 (+0.26%)
Gas: 0.81 Gwei

Token

Chou coin ($CHOU)
 

Overview

Max Total Supply

1,000,000,000 $CHOU

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,999,999.099999999999999999 $CHOU

Value
$0.00
0xf865f6259939dc17bbed312ca66b588f5b87b629
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:
CHOU

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-14
*/

/*


     ██████ ██   ██  ██████  ██    ██  ██████  ██████  ██ ███    ██ 
    ██      ██   ██ ██    ██ ██    ██ ██      ██    ██ ██ ████   ██ 
    ██      ███████ ██    ██ ██    ██ ██      ██    ██ ██ ██ ██  ██ 
    ██      ██   ██ ██    ██ ██    ██ ██      ██    ██ ██ ██  ██ ██ 
     ██████ ██   ██  ██████   ██████   ██████  ██████  ██ ██   ████ 
                                                                    
                                                                    
* telegram: CHOUCOIN

*/


// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract CHOU is Context, IERC20, Ownable {

    using SafeMath for uint256;
 
    string private _name = "Chou coin"; // token name
    string private _symbol = "$CHOU"; // token ticker
    uint8 private _decimals = 18; // token decimals

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 _buyMarketingFee = 20;
    uint256 _buyLiquidityFee = 10;

    uint256 _sellMarketingFee = 20;
    uint256 _sellLiquidityFee = 10;

    uint256 public totalBuyFee;
    uint256 public totalSellFee;

    address liquidityReciever;
    address public marketingWallet = address(0x95b580899E0a76A3281b543ba722BF4C56089Fd0);

    uint256 public constant MAX_SELL_TAX = 200;      // 20% 
    uint256 public constant MAX_BUY_TAX = 100; // 10%
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

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

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 feedenominator = 1000;

    uint256 public _maxTxAmount =  _totalSupply.mul(10).div(1000);      //1%
    uint256 public _walletMax = _totalSupply.mul(10).div(1000);    //1%
    uint256 public swapThreshold = 20_000 * 10**_decimals;

    bool public swapEnabled = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IDexSwapRouter public DexRouter;
    address public DexPair;

    bool inSwap;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        DexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        DexRouter = _dexRouter;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);

        liquidityReciever = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(DexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(DexPair)] = true;
        isWalletLimitExempt[address(DexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(DexRouter)] = true;

        isMarketPair[address(DexPair)] = true;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);
        _allowances[address(this)][address(DexPair)] = ~uint256(0);

        totalBuyFee = _buyLiquidityFee.add(_buyMarketingFee);
        totalSellFee = _sellLiquidityFee.add(_sellMarketingFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

     //to recieve ETH from Router 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");
        require(amount > 0, "Transfer amount must be greater than zero");

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

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }
            
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

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

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

        }

    }

    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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

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

        unchecked {

            if(isMarketPair[sender]) { //buy
                feeAmount = amount.mul(totalBuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { //sell
                feeAmount = amount.mul(totalSellFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        uint256 totalShares = totalBuyFee.add(totalSellFee);

        if(totalShares == 0) return;

        uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        // uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee);

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

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

        uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity);

        if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity);
        if(amountETHMarketing > 0) payable(marketingWallet).transfer(amountETHMarketing);
    }

    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] = DexRouter.WETH();

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

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

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

        // add the liquidity
        DexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }

    //To Rescue Stucked Balance
    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner {
        adr.transfer(recipient,amount);
    }

    function setBuyFee(uint _newLiq, uint _newMarketing) external onlyOwner {
        _buyLiquidityFee = _newLiq;
        _buyMarketingFee = _newMarketing;
        totalBuyFee = _buyLiquidityFee.add(_buyMarketingFee);
        require(totalBuyFee <= MAX_BUY_TAX,"MAX BUY TAX IS 10%");
    }

    function setSellFee(uint _newLiq, uint _newMarketing) external onlyOwner {
        _sellLiquidityFee = _newLiq;
        _sellMarketingFee = _newMarketing;
        totalSellFee = _sellLiquidityFee.add(_sellMarketingFee);
        require(totalSellFee <= MAX_SELL_TAX,"MAX BUY TAX IS 20%");
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setLiquidityWallet(address _newWallet) external onlyOwner {
        liquidityReciever = _newWallet;
    }

    function setMarketingWallet(address _newWallet) external onlyOwner {
        marketingWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        isWalletLimitExempt[_pair] = _status;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setManualRouter(address _router) external onlyOwner {
        DexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        DexPair = _pair;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"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":"DexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BUY_TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SELL_TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLiq","type":"uint256"},{"internalType":"uint256","name":"_newMarketing","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLiq","type":"uint256"},{"internalType":"uint256","name":"_newMarketing","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600960c09081526821b437ba9031b7b4b760b91b60e0526001906200002b908262000795565b506040805180820190915260058152642443484f5560d81b602082015260029062000057908262000795565b506003805460ff1916601290811790915561dead608052600060a05260146004819055600a60058190556006919091556007819055600b80546001600160a01b0319167395b580899e0a76a3281b543ba722bf4c56089fd0179055620000be919062000974565b620000ce90633b9aca0062000985565b6012556103e86013556200010f6103e8620000fb600a6012546200052060201b620013141790919060201c565b620005b760201b620013961790919060201c565b601455620001366103e8620000fb600a6012546200052060201b620013141790919060201c565b6015556003546200014c9060ff16600a62000974565b6200015a90614e2062000985565b6016556017805462ffffff1916620101011790553480156200017b57600080fd5b50620001873362000601565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020591906200099f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027991906200099f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ed91906200099f565b601880546001600160a01b03199081166001600160a01b03938416178255601780546301000000600160b81b0319166301000000868616810291909117808355306000818152600d60209081526040808320948690048a16835284825280832060001990819055600a8054339a168a179055848452600e8352818420805460ff1990811660019081179092558a8652838620805482168317905589548990048d16865283862080548216831790558a86526010855283862080548216831790558b548d168652838620805482168317905589548990048d168652838620805482168317905586865283862080548216831790556080518d16808752848720805483168417905560a0518e1680885285882080548416851790559087526011865284872080548316841790558652838620805482168317905599855282852080548b168217905594845281842080548a168617905587548790048b16845281842080548a168617905589548b168452600f835281842080549099169094179097559454939093048716835290835283822081905593549094168452922055600454600554620004a79290919062000651811b620013d817901c565b600881905550620004cb6006546007546200065160201b620013d81790919060201c565b600955601254336000818152600c6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000a53565b6000826000036200053457506000620005b1565b600062000542838562000985565b905082620005518583620009ca565b14620005ae5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006b460201b60201c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080620006608385620009ed565b905083811015620005ae5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620005a5565b60008183620006d85760405162461bcd60e51b8152600401620005a5919062000a03565b506000620006e78486620009ca565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200071b57607f821691505b6020821081036200073c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079057600081815260208120601f850160051c810160208610156200076b5750805b601f850160051c820191505b818110156200078c5782815560010162000777565b5050505b505050565b81516001600160401b03811115620007b157620007b1620006f0565b620007c981620007c2845462000706565b8462000742565b602080601f831160018114620008015760008415620007e85750858301515b600019600386901b1c1916600185901b1785556200078c565b600085815260208120601f198616915b82811015620008325788860151825594840194600190910190840162000811565b5085821015620008515787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008b85781600019048211156200089c576200089c62000861565b80851615620008aa57918102915b93841c93908002906200087c565b509250929050565b600082620008d157506001620005b1565b81620008e057506000620005b1565b8160018114620008f95760028114620009045762000924565b6001915050620005b1565b60ff84111562000918576200091862000861565b50506001821b620005b1565b5060208310610133831016604e8410600b841016171562000949575081810a620005b1565b62000955838362000877565b80600019048211156200096c576200096c62000861565b029392505050565b6000620005ae60ff841683620008c0565b8082028115828204841417620005b157620005b162000861565b600060208284031215620009b257600080fd5b81516001600160a01b0381168114620005ae57600080fd5b600082620009e857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005b157620005b162000861565b600060208083528351808285015260005b8181101562000a325785810183015185820160400152820162000a14565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a05161254c62000a87600039600081816103510152610b2b0152600081816104020152610b66015261254c6000f3fe6080604052600436106102e85760003560e01c806372460e7f11610190578063c16dd4a4116100dc578063e6b2603b11610095578063f2fde38b1161006f578063f2fde38b14610938578063f71b9bbf14610958578063f872858a14610978578063fb0ecfa41461099857600080fd5b8063e6b2603b146108ee578063e7cb0df914610903578063ee828db31461091857600080fd5b8063c16dd4a4146107f8578063c867d60b14610818578063cea9d26f14610848578063dd62ed3e14610868578063df20fd49146108ae578063df8408fe146108ce57600080fd5b80638b42507f116101495780639d9241ec116101235780639d9241ec14610782578063a457c2d714610798578063a9059cbb146107b8578063ae85ade6146107d857600080fd5b80638b42507f1461071f5780638da5cb5b1461074f57806395d89b411461076d57600080fd5b806372460e7f1461066c578063728d41c91461068c578063736ce0d4146106ac57806375f0a874146106d35780637d1db4a5146106f3578063807c2d9c1461070957600080fd5b80633ecad2711161024f5780635d098b38116102085780636ac9a870116101e25780636ac9a870146105e75780636ddd17131461060757806370a0823114610621578063715018a61461065757600080fd5b80635d098b38146105885780635e42358c146105a8578063651a8987146105c757600080fd5b80633ecad271146104b25780634974d88f146104e25780635342acb41461050257806359b107b91461053257806359fac517146105485780635c85974f1461056857600080fd5b806327c8f835116102a157806327c8f835146103f0578063296f0a0c146104245780632b112e4914610446578063313ce5671461045b578063395093511461047d5780633de7f8441461049d57600080fd5b80630445b667146102f457806306fdde031461031d5780630930907b1461033f578063095ea7b31461038b57806318160ddd146103bb57806323b872dd146103d057600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030a60165481565b6040519081526020015b60405180910390f35b34801561032957600080fd5b506103326109b8565b60405161031491906120ee565b34801561034b57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610314565b34801561039757600080fd5b506103ab6103a6366004612151565b610a4a565b6040519015158152602001610314565b3480156103c757600080fd5b5060125461030a565b3480156103dc57600080fd5b506103ab6103eb36600461217d565b610a61565b3480156103fc57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b34801561043057600080fd5b5061044461043f3660046121be565b610acc565b005b34801561045257600080fd5b5061030a610b21565b34801561046757600080fd5b5060035460405160ff9091168152602001610314565b34801561048957600080fd5b506103ab610498366004612151565b610bb4565b3480156104a957600080fd5b5061030a606481565b3480156104be57600080fd5b506103ab6104cd3660046121be565b600f6020526000908152604090205460ff1681565b3480156104ee57600080fd5b506104446104fd3660046121e9565b610bea565b34801561050e57600080fd5b506103ab61051d3660046121be565b600e6020526000908152604090205460ff1681565b34801561053e57600080fd5b5061030a60085481565b34801561055457600080fd5b506104446105633660046121be565b610c30565b34801561057457600080fd5b50610444610583366004612206565b610c86565b34801561059457600080fd5b506104446105a33660046121be565b610cb5565b3480156105b457600080fd5b506017546103ab90610100900460ff1681565b3480156105d357600080fd5b506104446105e236600461221f565b610d01565b3480156105f357600080fd5b50610444610602366004612258565b610d56565b34801561061357600080fd5b506017546103ab9060ff1681565b34801561062d57600080fd5b5061030a61063c3660046121be565b6001600160a01b03166000908152600c602052604090205490565b34801561066357600080fd5b50610444610de2565b34801561067857600080fd5b50601854610373906001600160a01b031681565b34801561069857600080fd5b506104446106a7366004612206565b610e18565b3480156106b857600080fd5b5060175461037390630100000090046001600160a01b031681565b3480156106df57600080fd5b50600b54610373906001600160a01b031681565b3480156106ff57600080fd5b5061030a60145481565b34801561071557600080fd5b5061030a60155481565b34801561072b57600080fd5b506103ab61073a3660046121be565b60116020526000908152604090205460ff1681565b34801561075b57600080fd5b506000546001600160a01b0316610373565b34801561077957600080fd5b50610332610e47565b34801561078e57600080fd5b5061030a60095481565b3480156107a457600080fd5b506103ab6107b3366004612151565b610e56565b3480156107c457600080fd5b506103ab6107d3366004612151565b610ea5565b3480156107e457600080fd5b506104446107f336600461221f565b610eb2565b34801561080457600080fd5b5061044461081336600461221f565b610f07565b34801561082457600080fd5b506103ab6108333660046121be565b60106020526000908152604090205460ff1681565b34801561085457600080fd5b5061044461086336600461217d565b610f6f565b34801561087457600080fd5b5061030a61088336600461227a565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b3480156108ba57600080fd5b506104446108c93660046122a8565b611012565b3480156108da57600080fd5b506104446108e936600461221f565b611053565b3480156108fa57600080fd5b506104446110a8565b34801561090f57600080fd5b5061030a60c881565b34801561092457600080fd5b506104446109333660046121e9565b611164565b34801561094457600080fd5b506104446109533660046121be565b6111a8565b34801561096457600080fd5b506104446109733660046121be565b611240565b34801561098457600080fd5b506017546103ab9062010000900460ff1681565b3480156109a457600080fd5b506104446109b3366004612258565b61128c565b6060600180546109c7906122c6565b80601f01602080910402602001604051908101604052809291908181526020018280546109f3906122c6565b8015610a405780601f10610a1557610100808354040283529160200191610a40565b820191906000526020600020905b815481529060010190602001808311610a2357829003601f168201915b5050505050905090565b6000610a57338484611437565b5060015b92915050565b6000610a6e84848461155b565b50610ac18433610abc856040518060600160405280602881526020016124ca602891396001600160a01b038a166000908152600d6020908152604080832033845290915290205491906119a1565b611437565b5060015b9392505050565b6000546001600160a01b03163314610aff5760405162461bcd60e51b8152600401610af690612300565b60405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600c6020526040812054610baf90610ba9610ba07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152600c602052604090205490565b601254906119db565b906119db565b905090565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610a57918590610abc90866113d8565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152600401610af690612300565b60178054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b8152600401610af690612300565b601780546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6000546001600160a01b03163314610cb05760405162461bcd60e51b8152600401610af690612300565b601455565b6000546001600160a01b03163314610cdf5760405162461bcd60e51b8152600401610af690612300565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d2b5760405162461bcd60e51b8152600401610af690612300565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d805760405162461bcd60e51b8152600401610af690612300565b60078290556006819055610d9482826113d8565b600981905560c81015610dde5760405162461bcd60e51b81526020600482015260126024820152714d415820425559205441582049532032302560701b6044820152606401610af6565b5050565b6000546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610af690612300565b610e166000611a1d565b565b6000546001600160a01b03163314610e425760405162461bcd60e51b8152600401610af690612300565b601555565b6060600280546109c7906122c6565b6000610a573384610abc856040518060600160405280602581526020016124f260259139336000908152600d602090815260408083206001600160a01b038d16845290915290205491906119a1565b6000610ac133848461155b565b6000546001600160a01b03163314610edc5760405162461bcd60e51b8152600401610af690612300565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f315760405162461bcd60e51b8152600401610af690612300565b6001600160a01b039091166000908152600f60209081526040808320805494151560ff19958616811790915560109092529091208054909216179055565b6000546001600160a01b03163314610f995760405162461bcd60e51b8152600401610af690612300565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100c9190612335565b50505050565b6000546001600160a01b0316331461103c5760405162461bcd60e51b8152600401610af690612300565b6017805460ff191692151592909217909155601655565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610af690612300565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110d25760405162461bcd60e51b8152600401610af690612300565b604051600090339047908381818185875af1925050503d8060008114611114576040519150601f19603f3d011682016040523d82523d6000602084013e611119565b606091505b50509050806111615760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610af6565b50565b6000546001600160a01b0316331461118e5760405162461bcd60e51b8152600401610af690612300565b601780549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146111d25760405162461bcd60e51b8152600401610af690612300565b6001600160a01b0381166112375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af6565b61116181611a1d565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610af690612300565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112b65760405162461bcd60e51b8152600401610af690612300565b600582905560048190556112ca82826113d8565b600881905560641015610dde5760405162461bcd60e51b81526020600482015260126024820152714d415820425559205441582049532031302560701b6044820152606401610af6565b60008260000361132657506000610a5b565b60006113328385612368565b90508261133f858361237f565b14610ac55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610af6565b6000610ac583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6d565b6000806113e583856123a1565b905083811015610ac55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610af6565b6001600160a01b0383166114995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af6565b6001600160a01b0382166114fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af6565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af6565b6001600160a01b0383166116235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af6565b600082116116855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af6565b601854600160a01b900460ff16156116a9576116a2848484611a9b565b9050610ac5565b306000908152600c6020526040902054601654811080159081906116d75750601854600160a01b900460ff16155b80156116fc57506001600160a01b0386166000908152600f602052604090205460ff16155b801561170a575060175460ff165b156117185761171882611b81565b6001600160a01b03861660009081526011602052604090205460ff1615801561175a57506001600160a01b03851660009081526011602052604090205460ff16155b801561176d5750601754610100900460ff165b156117d5576014548411156117d55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610af6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600c90915291909120546118279186906119a1565b6001600160a01b0387166000908152600c602052604081209190915561184d8787611cca565b6118615761185c878787611d6a565b611863565b845b60175490915062010000900460ff16801561189757506001600160a01b03861660009081526010602052604090205460ff16155b15611916576015546118c8826118c2896001600160a01b03166000908152600c602052604090205490565b906113d8565b11156119165760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610af6565b6001600160a01b0386166000908152600c602052604090205461193990826113d8565b6001600160a01b038088166000818152600c602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061198d9085815260200190565b60405180910390a360019350505050610ac5565b600081848411156119c55760405162461bcd60e51b8152600401610af691906120ee565b5060006119d284866123b4565b95945050505050565b6000610ac583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611a8e5760405162461bcd60e51b8152600401610af691906120ee565b5060006119d2848661237f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600c90915291822054611aec9184906119a1565b6001600160a01b038086166000908152600c60205260408082209390935590851681522054611b1b90836113d8565b6001600160a01b038085166000818152600c602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b6f9086815260200190565b60405180910390a35060019392505050565b6018805460ff60a01b1916600160a01b179055600954600854600091611ba791906113d8565b905080600003611bb75750611cba565b6000611bd06007546005546113d890919063ffffffff16565b90506000611beb6002611be585818887611314565b90611396565b90506000611bf985836119db565b905047611c0582611e72565b6000611c1147836119db565b90506000611c2a611c23876002611396565b88906119db565b90506000611c3f6002611be58481878c611314565b90506000611c4d84836119db565b9050600082118015611c5f5750600087115b15611c6e57611c6e878361202c565b8015611cb057600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611cae573d6000803e3d6000fd5b505b5050505050505050505b506018805460ff60a01b19169055565b6001600160a01b0382166000908152600e602052604081205460ff1680611d0957506001600160a01b0382166000908152600e602052604090205460ff165b15611d1657506001610a5b565b6001600160a01b0383166000908152600f602052604090205460ff1680611d5557506001600160a01b0382166000908152600f602052604090205460ff165b15611d6257506000610a5b565b506000610a5b565b6001600160a01b0383166000908152600f6020526040812054819060ff1615611daf57611da8601354611be56008548661131490919063ffffffff16565b9050611dee565b6001600160a01b0384166000908152600f602052604090205460ff1615611dee57611deb601354611be56009548661131490919063ffffffff16565b90505b8015611e6857306000908152600c6020526040902054611e0e90826113d8565b306000818152600c6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e5f9085815260200190565b60405180910390a35b6119d283826119db565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ea757611ea76123c7565b60200260200101906001600160a01b031690816001600160a01b031681525050601760039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e91906123dd565b81600181518110611f5157611f516123c7565b6001600160a01b039283166020918202929092010152601754611f7e913091630100000090041684611437565b60175460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611fbd90859060009086903090429060040161243e565b600060405180830381600087803b158015611fd757600080fd5b505af1158015611feb573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161202092919061247a565b60405180910390a15050565b60175461204b903090630100000090046001600160a01b031684611437565b601754600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af11580156120c2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120e7919061249b565b5050505050565b600060208083528351808285015260005b8181101561211b578581018301518582016040015282016120ff565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461116157600080fd5b6000806040838503121561216457600080fd5b823561216f8161213c565b946020939093013593505050565b60008060006060848603121561219257600080fd5b833561219d8161213c565b925060208401356121ad8161213c565b929592945050506040919091013590565b6000602082840312156121d057600080fd5b8135610ac58161213c565b801515811461116157600080fd5b6000602082840312156121fb57600080fd5b8135610ac5816121db565b60006020828403121561221857600080fd5b5035919050565b6000806040838503121561223257600080fd5b823561223d8161213c565b9150602083013561224d816121db565b809150509250929050565b6000806040838503121561226b57600080fd5b50508035926020909101359150565b6000806040838503121561228d57600080fd5b82356122988161213c565b9150602083013561224d8161213c565b600080604083850312156122bb57600080fd5b823561216f816121db565b600181811c908216806122da57607f821691505b6020821081036122fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561234757600080fd5b8151610ac5816121db565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a5b57610a5b612352565b60008261239c57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610a5b57610a5b612352565b81810381811115610a5b57610a5b612352565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156123ef57600080fd5b8151610ac58161213c565b600081518084526020808501945080840160005b838110156124335781516001600160a01b03168752958201959082019060010161240e565b509495945050505050565b85815284602082015260a06040820152600061245d60a08301866123fa565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061249360408301846123fa565b949350505050565b6000806000606084860312156124b057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202b1c184b0f8eebb82d42bb5e34842d2ec2f88be8d3a77ad2af61b7d5714c445564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806372460e7f11610190578063c16dd4a4116100dc578063e6b2603b11610095578063f2fde38b1161006f578063f2fde38b14610938578063f71b9bbf14610958578063f872858a14610978578063fb0ecfa41461099857600080fd5b8063e6b2603b146108ee578063e7cb0df914610903578063ee828db31461091857600080fd5b8063c16dd4a4146107f8578063c867d60b14610818578063cea9d26f14610848578063dd62ed3e14610868578063df20fd49146108ae578063df8408fe146108ce57600080fd5b80638b42507f116101495780639d9241ec116101235780639d9241ec14610782578063a457c2d714610798578063a9059cbb146107b8578063ae85ade6146107d857600080fd5b80638b42507f1461071f5780638da5cb5b1461074f57806395d89b411461076d57600080fd5b806372460e7f1461066c578063728d41c91461068c578063736ce0d4146106ac57806375f0a874146106d35780637d1db4a5146106f3578063807c2d9c1461070957600080fd5b80633ecad2711161024f5780635d098b38116102085780636ac9a870116101e25780636ac9a870146105e75780636ddd17131461060757806370a0823114610621578063715018a61461065757600080fd5b80635d098b38146105885780635e42358c146105a8578063651a8987146105c757600080fd5b80633ecad271146104b25780634974d88f146104e25780635342acb41461050257806359b107b91461053257806359fac517146105485780635c85974f1461056857600080fd5b806327c8f835116102a157806327c8f835146103f0578063296f0a0c146104245780632b112e4914610446578063313ce5671461045b578063395093511461047d5780633de7f8441461049d57600080fd5b80630445b667146102f457806306fdde031461031d5780630930907b1461033f578063095ea7b31461038b57806318160ddd146103bb57806323b872dd146103d057600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030a60165481565b6040519081526020015b60405180910390f35b34801561032957600080fd5b506103326109b8565b60405161031491906120ee565b34801561034b57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610314565b34801561039757600080fd5b506103ab6103a6366004612151565b610a4a565b6040519015158152602001610314565b3480156103c757600080fd5b5060125461030a565b3480156103dc57600080fd5b506103ab6103eb36600461217d565b610a61565b3480156103fc57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000dead81565b34801561043057600080fd5b5061044461043f3660046121be565b610acc565b005b34801561045257600080fd5b5061030a610b21565b34801561046757600080fd5b5060035460405160ff9091168152602001610314565b34801561048957600080fd5b506103ab610498366004612151565b610bb4565b3480156104a957600080fd5b5061030a606481565b3480156104be57600080fd5b506103ab6104cd3660046121be565b600f6020526000908152604090205460ff1681565b3480156104ee57600080fd5b506104446104fd3660046121e9565b610bea565b34801561050e57600080fd5b506103ab61051d3660046121be565b600e6020526000908152604090205460ff1681565b34801561053e57600080fd5b5061030a60085481565b34801561055457600080fd5b506104446105633660046121be565b610c30565b34801561057457600080fd5b50610444610583366004612206565b610c86565b34801561059457600080fd5b506104446105a33660046121be565b610cb5565b3480156105b457600080fd5b506017546103ab90610100900460ff1681565b3480156105d357600080fd5b506104446105e236600461221f565b610d01565b3480156105f357600080fd5b50610444610602366004612258565b610d56565b34801561061357600080fd5b506017546103ab9060ff1681565b34801561062d57600080fd5b5061030a61063c3660046121be565b6001600160a01b03166000908152600c602052604090205490565b34801561066357600080fd5b50610444610de2565b34801561067857600080fd5b50601854610373906001600160a01b031681565b34801561069857600080fd5b506104446106a7366004612206565b610e18565b3480156106b857600080fd5b5060175461037390630100000090046001600160a01b031681565b3480156106df57600080fd5b50600b54610373906001600160a01b031681565b3480156106ff57600080fd5b5061030a60145481565b34801561071557600080fd5b5061030a60155481565b34801561072b57600080fd5b506103ab61073a3660046121be565b60116020526000908152604090205460ff1681565b34801561075b57600080fd5b506000546001600160a01b0316610373565b34801561077957600080fd5b50610332610e47565b34801561078e57600080fd5b5061030a60095481565b3480156107a457600080fd5b506103ab6107b3366004612151565b610e56565b3480156107c457600080fd5b506103ab6107d3366004612151565b610ea5565b3480156107e457600080fd5b506104446107f336600461221f565b610eb2565b34801561080457600080fd5b5061044461081336600461221f565b610f07565b34801561082457600080fd5b506103ab6108333660046121be565b60106020526000908152604090205460ff1681565b34801561085457600080fd5b5061044461086336600461217d565b610f6f565b34801561087457600080fd5b5061030a61088336600461227a565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b3480156108ba57600080fd5b506104446108c93660046122a8565b611012565b3480156108da57600080fd5b506104446108e936600461221f565b611053565b3480156108fa57600080fd5b506104446110a8565b34801561090f57600080fd5b5061030a60c881565b34801561092457600080fd5b506104446109333660046121e9565b611164565b34801561094457600080fd5b506104446109533660046121be565b6111a8565b34801561096457600080fd5b506104446109733660046121be565b611240565b34801561098457600080fd5b506017546103ab9062010000900460ff1681565b3480156109a457600080fd5b506104446109b3366004612258565b61128c565b6060600180546109c7906122c6565b80601f01602080910402602001604051908101604052809291908181526020018280546109f3906122c6565b8015610a405780601f10610a1557610100808354040283529160200191610a40565b820191906000526020600020905b815481529060010190602001808311610a2357829003601f168201915b5050505050905090565b6000610a57338484611437565b5060015b92915050565b6000610a6e84848461155b565b50610ac18433610abc856040518060600160405280602881526020016124ca602891396001600160a01b038a166000908152600d6020908152604080832033845290915290205491906119a1565b611437565b5060015b9392505050565b6000546001600160a01b03163314610aff5760405162461bcd60e51b8152600401610af690612300565b60405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600c6020526040812054610baf90610ba9610ba07f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03166000908152600c602052604090205490565b601254906119db565b906119db565b905090565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610a57918590610abc90866113d8565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152600401610af690612300565b60178054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b8152600401610af690612300565b601780546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6000546001600160a01b03163314610cb05760405162461bcd60e51b8152600401610af690612300565b601455565b6000546001600160a01b03163314610cdf5760405162461bcd60e51b8152600401610af690612300565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d2b5760405162461bcd60e51b8152600401610af690612300565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d805760405162461bcd60e51b8152600401610af690612300565b60078290556006819055610d9482826113d8565b600981905560c81015610dde5760405162461bcd60e51b81526020600482015260126024820152714d415820425559205441582049532032302560701b6044820152606401610af6565b5050565b6000546001600160a01b03163314610e0c5760405162461bcd60e51b8152600401610af690612300565b610e166000611a1d565b565b6000546001600160a01b03163314610e425760405162461bcd60e51b8152600401610af690612300565b601555565b6060600280546109c7906122c6565b6000610a573384610abc856040518060600160405280602581526020016124f260259139336000908152600d602090815260408083206001600160a01b038d16845290915290205491906119a1565b6000610ac133848461155b565b6000546001600160a01b03163314610edc5760405162461bcd60e51b8152600401610af690612300565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f315760405162461bcd60e51b8152600401610af690612300565b6001600160a01b039091166000908152600f60209081526040808320805494151560ff19958616811790915560109092529091208054909216179055565b6000546001600160a01b03163314610f995760405162461bcd60e51b8152600401610af690612300565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610fe8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100c9190612335565b50505050565b6000546001600160a01b0316331461103c5760405162461bcd60e51b8152600401610af690612300565b6017805460ff191692151592909217909155601655565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610af690612300565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110d25760405162461bcd60e51b8152600401610af690612300565b604051600090339047908381818185875af1925050503d8060008114611114576040519150601f19603f3d011682016040523d82523d6000602084013e611119565b606091505b50509050806111615760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610af6565b50565b6000546001600160a01b0316331461118e5760405162461bcd60e51b8152600401610af690612300565b601780549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146111d25760405162461bcd60e51b8152600401610af690612300565b6001600160a01b0381166112375760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af6565b61116181611a1d565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610af690612300565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112b65760405162461bcd60e51b8152600401610af690612300565b600582905560048190556112ca82826113d8565b600881905560641015610dde5760405162461bcd60e51b81526020600482015260126024820152714d415820425559205441582049532031302560701b6044820152606401610af6565b60008260000361132657506000610a5b565b60006113328385612368565b90508261133f858361237f565b14610ac55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610af6565b6000610ac583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6d565b6000806113e583856123a1565b905083811015610ac55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610af6565b6001600160a01b0383166114995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af6565b6001600160a01b0382166114fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af6565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610af6565b6001600160a01b0383166116235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610af6565b600082116116855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af6565b601854600160a01b900460ff16156116a9576116a2848484611a9b565b9050610ac5565b306000908152600c6020526040902054601654811080159081906116d75750601854600160a01b900460ff16155b80156116fc57506001600160a01b0386166000908152600f602052604090205460ff16155b801561170a575060175460ff165b156117185761171882611b81565b6001600160a01b03861660009081526011602052604090205460ff1615801561175a57506001600160a01b03851660009081526011602052604090205460ff16155b801561176d5750601754610100900460ff165b156117d5576014548411156117d55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610af6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600c90915291909120546118279186906119a1565b6001600160a01b0387166000908152600c602052604081209190915561184d8787611cca565b6118615761185c878787611d6a565b611863565b845b60175490915062010000900460ff16801561189757506001600160a01b03861660009081526010602052604090205460ff16155b15611916576015546118c8826118c2896001600160a01b03166000908152600c602052604090205490565b906113d8565b11156119165760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610af6565b6001600160a01b0386166000908152600c602052604090205461193990826113d8565b6001600160a01b038088166000818152600c602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061198d9085815260200190565b60405180910390a360019350505050610ac5565b600081848411156119c55760405162461bcd60e51b8152600401610af691906120ee565b5060006119d284866123b4565b95945050505050565b6000610ac583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611a8e5760405162461bcd60e51b8152600401610af691906120ee565b5060006119d2848661237f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600c90915291822054611aec9184906119a1565b6001600160a01b038086166000908152600c60205260408082209390935590851681522054611b1b90836113d8565b6001600160a01b038085166000818152600c602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b6f9086815260200190565b60405180910390a35060019392505050565b6018805460ff60a01b1916600160a01b179055600954600854600091611ba791906113d8565b905080600003611bb75750611cba565b6000611bd06007546005546113d890919063ffffffff16565b90506000611beb6002611be585818887611314565b90611396565b90506000611bf985836119db565b905047611c0582611e72565b6000611c1147836119db565b90506000611c2a611c23876002611396565b88906119db565b90506000611c3f6002611be58481878c611314565b90506000611c4d84836119db565b9050600082118015611c5f5750600087115b15611c6e57611c6e878361202c565b8015611cb057600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611cae573d6000803e3d6000fd5b505b5050505050505050505b506018805460ff60a01b19169055565b6001600160a01b0382166000908152600e602052604081205460ff1680611d0957506001600160a01b0382166000908152600e602052604090205460ff165b15611d1657506001610a5b565b6001600160a01b0383166000908152600f602052604090205460ff1680611d5557506001600160a01b0382166000908152600f602052604090205460ff165b15611d6257506000610a5b565b506000610a5b565b6001600160a01b0383166000908152600f6020526040812054819060ff1615611daf57611da8601354611be56008548661131490919063ffffffff16565b9050611dee565b6001600160a01b0384166000908152600f602052604090205460ff1615611dee57611deb601354611be56009548661131490919063ffffffff16565b90505b8015611e6857306000908152600c6020526040902054611e0e90826113d8565b306000818152600c6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e5f9085815260200190565b60405180910390a35b6119d283826119db565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ea757611ea76123c7565b60200260200101906001600160a01b031690816001600160a01b031681525050601760039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e91906123dd565b81600181518110611f5157611f516123c7565b6001600160a01b039283166020918202929092010152601754611f7e913091630100000090041684611437565b60175460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611fbd90859060009086903090429060040161243e565b600060405180830381600087803b158015611fd757600080fd5b505af1158015611feb573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161202092919061247a565b60405180910390a15050565b60175461204b903090630100000090046001600160a01b031684611437565b601754600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af11580156120c2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120e7919061249b565b5050505050565b600060208083528351808285015260005b8181101561211b578581018301518582016040015282016120ff565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461116157600080fd5b6000806040838503121561216457600080fd5b823561216f8161213c565b946020939093013593505050565b60008060006060848603121561219257600080fd5b833561219d8161213c565b925060208401356121ad8161213c565b929592945050506040919091013590565b6000602082840312156121d057600080fd5b8135610ac58161213c565b801515811461116157600080fd5b6000602082840312156121fb57600080fd5b8135610ac5816121db565b60006020828403121561221857600080fd5b5035919050565b6000806040838503121561223257600080fd5b823561223d8161213c565b9150602083013561224d816121db565b809150509250929050565b6000806040838503121561226b57600080fd5b50508035926020909101359150565b6000806040838503121561228d57600080fd5b82356122988161213c565b9150602083013561224d8161213c565b600080604083850312156122bb57600080fd5b823561216f816121db565b600181811c908216806122da57607f821691505b6020821081036122fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561234757600080fd5b8151610ac5816121db565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a5b57610a5b612352565b60008261239c57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610a5b57610a5b612352565b81810381811115610a5b57610a5b612352565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156123ef57600080fd5b8151610ac58161213c565b600081518084526020808501945080840160005b838110156124335781516001600160a01b03168752958201959082019060010161240e565b509495945050505050565b85815284602082015260a06040820152600061245d60a08301866123fa565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061249360408301846123fa565b949350505050565b6000806000606084860312156124b057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202b1c184b0f8eebb82d42bb5e34842d2ec2f88be8d3a77ad2af61b7d5714c445564736f6c63430008120033

Deployed Bytecode Sourcemap

7943:14232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9446:53;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9446:53:0;;;;;;;;11742:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8283:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;913:32:1;;;895:51;;883:2;868:18;8283:81:0;749:203:1;13080:161:0;;;;;;;;;;-1:-1:-1;13080:161:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;13080:161:0;1413:187:1;12019:100:0;;;;;;;;;;-1:-1:-1;12099:12:0;;12019:100;;13854:313;;;;;;;;;;-1:-1:-1;13854:313:0;;;;;:::i;:::-;;:::i;8195:81::-;;;;;;;;;;;;;;;21348:116;;;;;;;;;;-1:-1:-1;21348:116:0;;;;;:::i;:::-;;:::i;:::-;;12413:156;;;;;;;;;;;;;:::i;11928:83::-;;;;;;;;;;-1:-1:-1;11994:9:0;;11928:83;;11994:9;;;;2460:36:1;;2448:2;2433:18;11928:83:0;2318:184:1;12577:218:0;;;;;;;;;;-1:-1:-1;12577:218:0;;;;;:::i;:::-;;:::i;8779:41::-;;;;;;;;;;;;8817:3;8779:41;;9020:45;;;;;;;;;;-1:-1:-1;9020:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20614:105;;;;;;;;;;-1:-1:-1;20614:105:0;;;;;:::i;:::-;;:::i;8963:50::-;;;;;;;;;;-1:-1:-1;8963:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8523:26;;;;;;;;;;;;;;;;21954:115;;;;;;;;;;-1:-1:-1;21954:115:0;;;;;:::i;:::-;;:::i;21235:101::-;;;;;;;;;;-1:-1:-1;21235:101:0;;;;;:::i;:::-;;:::i;21472:114::-;;;;;;;;;;-1:-1:-1;21472:114:0;;;;;:::i;:::-;;:::i;9545:32::-;;;;;;;;;;-1:-1:-1;9545:32:0;;;;;;;;;;;20857:128;;;;;;;;;;-1:-1:-1;20857:128:0;;;;;:::i;:::-;;:::i;20202:298::-;;;;;;;;;;-1:-1:-1;20202:298:0;;;;;:::i;:::-;;:::i;9508:30::-;;;;;;;;;;-1:-1:-1;9508:30:0;;;;;;;;12127:123;;;;;;;;;;-1:-1:-1;12127:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;12219:18:0;12193:7;12219:18;;;:9;:18;;;;;;;12127:123;2703:94;;;;;;;;;;;;;:::i;9666:22::-;;;;;;;;;;-1:-1:-1;9666:22:0;;;;-1:-1:-1;;;;;9666:22:0;;;21121:106;;;;;;;;;;-1:-1:-1;21121:106:0;;;;;:::i;:::-;;:::i;9628:31::-;;;;;;;;;;-1:-1:-1;9628:31:0;;;;;;;-1:-1:-1;;;;;9628:31:0;;;8624:84;;;;;;;;;;-1:-1:-1;8624:84:0;;;;-1:-1:-1;;;;;8624:84:0;;;9295:61;;;;;;;;;;;;;;;;9373:58;;;;;;;;;;;;;;;;9131:48;;;;;;;;;;-1:-1:-1;9131:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2394:87;;;;;;;;;;-1:-1:-1;2440:7:0;2467:6;-1:-1:-1;;;;;2467:6:0;2394:87;;11833;;;;;;;;;;;;;:::i;8556:27::-;;;;;;;;;;;;;;;;12803:269;;;;;;;;;;-1:-1:-1;12803:269:0;;;;;:::i;:::-;;:::i;13679:167::-;;;;;;;;;;-1:-1:-1;13679:167:0;;;;;:::i;:::-;;:::i;20993:120::-;;;;;;;;;;-1:-1:-1;20993:120:0;;;;;:::i;:::-;;:::i;21594:166::-;;;;;;;;;;-1:-1:-1;21594:166:0;;;;;:::i;:::-;;:::i;9072:52::-;;;;;;;;;;-1:-1:-1;9072:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19764:132;;;;;;;;;;-1:-1:-1;19764:132:0;;;;;:::i;:::-;;:::i;12258:143::-;;;;;;;;;;-1:-1:-1;12258:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12366:18:0;;;12339:7;12366:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12258:143;21768:178;;;;;;;;;;-1:-1:-1;21768:178:0;;;;;:::i;:::-;;:::i;20727:122::-;;;;;;;;;;-1:-1:-1;20727:122:0;;;;;:::i;:::-;;:::i;19546:178::-;;;;;;;;;;;;;:::i;8717:42::-;;;;;;;;;;;;8756:3;8717:42;;20508:98;;;;;;;;;;-1:-1:-1;20508:98:0;;;;;:::i;:::-;;:::i;2805:229::-;;;;;;;;;;-1:-1:-1;2805:229:0;;;;;:::i;:::-;;:::i;22077:91::-;;;;;;;;;;-1:-1:-1;22077:91:0;;;;;:::i;:::-;;:::i;9584:35::-;;;;;;;;;;-1:-1:-1;9584:35:0;;;;;;;;;;;19904:290;;;;;;;;;;-1:-1:-1;19904:290:0;;;;;:::i;:::-;;:::i;11742:83::-;11779:13;11812:5;11805:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11742:83;:::o;13080:161::-;13155:4;13172:39;1041:10;13195:7;13204:6;13172:8;:39::i;:::-;-1:-1:-1;13229:4:0;13080:161;;;;;:::o;13854:313::-;13952:4;13969:36;13979:6;13987:9;13998:6;13969:9;:36::i;:::-;-1:-1:-1;14016:121:0;14025:6;1041:10;14047:89;14085:6;14047:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14047:19:0;;;;;;:11;:19;;;;;;;;1041:10;14047:33;;;;;;;;;;:37;:89::i;:::-;14016:8;:121::i;:::-;-1:-1:-1;14155:4:0;13854:313;;;;;;:::o;21348:116::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;;;;;;;;;21426:17:::1;:30:::0;;-1:-1:-1;;;;;;21426:30:0::1;-1:-1:-1::0;;;;;21426:30:0;;;::::1;::::0;;;::::1;::::0;;21348:116::o;12413:156::-;-1:-1:-1;;;;;12548:11:0;12219:18;12466:7;12219:18;;;:9;:18;;;;;;12493:68;;:40;12510:22;12520:11;-1:-1:-1;;;;;12219:18:0;12193:7;12219:18;;;:9;:18;;;;;;;12127:123;12510:22;12493:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;12486:75;;12413:156;:::o;12577:218::-;1041:10;12665:4;12714:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12714:34:0;;;;;;;;;;12665:4;;12682:83;;12705:7;;12714:50;;12753:10;12714:38;:50::i;20614:105::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;20685:16:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20685:26:0;;::::1;::::0;;;::::1;::::0;;20614:105::o;21954:115::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;22026:9:::1;:35:::0;;-1:-1:-1;;;;;22026:35:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;22026:35:0;;::::1;::::0;;;::::1;::::0;;21954:115::o;21235:101::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;21305:12:::1;:23:::0;21235:101::o;21472:114::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;21550:15:::1;:28:::0;;-1:-1:-1;;;;;;21550:28:0::1;-1:-1:-1::0;;;;;21550:28:0;;;::::1;::::0;;;::::1;::::0;;21472:114::o;20857:128::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20942:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;20942:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20857:128::o;20202:298::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;20286:17:::1;:27:::0;;;20324:17:::1;:33:::0;;;20383:40:::1;20306:7:::0;20344:13;20383:21:::1;:40::i;:::-;20368:12;:55:::0;;;8756:3:::1;-1:-1:-1::0;20442:28:0::1;20434:58;;;::::0;-1:-1:-1;;;20434:58:0;;6060:2:1;20434:58:0::1;::::0;::::1;6042:21:1::0;6099:2;6079:18;;;6072:30;-1:-1:-1;;;6118:18:1;;;6111:48;6176:18;;20434:58:0::1;5858:342:1::0;20434:58:0::1;20202:298:::0;;:::o;2703:94::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;2768:21:::1;2786:1;2768:9;:21::i;:::-;2703:94::o:0;21121:106::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;21198:10:::1;:21:::0;21121:106::o;11833:87::-;11872:13;11905:7;11898:14;;;;;:::i;12803:269::-;12896:4;12913:129;1041:10;12936:7;12945:96;12984:15;12945:96;;;;;;;;;;;;;;;;;1041:10;12945:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12945:34:0;;;;;;;;;;;;:38;:96::i;13679:167::-;13757:4;13774:42;1041:10;13798:9;13809:6;13774:9;:42::i;20993:120::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21074:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;21074:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20993:120::o;21594:166::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21676:19:0;;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;;:29;;;::::1;;-1:-1:-1::0;;21676:29:0;;::::1;::::0;::::1;::::0;;;21716:19:::1;:26:::0;;;;;;:36;;;;::::1;;::::0;;21594:166::o;19764:132::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;19858:30:::1;::::0;-1:-1:-1;;;19858:30:0;;-1:-1:-1;;;;;6397:32:1;;;19858:30:0::1;::::0;::::1;6379:51:1::0;6446:18;;;6439:34;;;19858:12:0;::::1;::::0;::::1;::::0;6352:18:1;;19858:30:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19764:132:::0;;;:::o;21768:178::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;21882:11:::1;:22:::0;;-1:-1:-1;;21882:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;21915:13:::1;:23:::0;21768:178::o;20727:122::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20808:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;20808:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20727:122::o;19546:178::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;19613:58:::1;::::0;19601:7:::1;::::0;19621:10:::1;::::0;19645:21:::1;::::0;19601:7;19613:58;19601:7;19613:58;19645:21;19621:10;19613:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19600:71;;;19690:2;19682:34;;;::::0;-1:-1:-1;;;19682:34:0;;7146:2:1;19682:34:0::1;::::0;::::1;7128:21:1::0;7185:2;7165:18;;;7158:30;-1:-1:-1;;;7204:18:1;;;7197:50;7264:18;;19682:34:0::1;6944:344:1::0;19682:34:0::1;19588:136;19546:178::o:0;20508:98::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;20575:13:::1;:23:::0;;;::::1;;;;-1:-1:-1::0;;20575:23:0;;::::1;::::0;;;::::1;::::0;;20508:98::o;2805:229::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2908:22:0;::::1;2886:110;;;::::0;-1:-1:-1;;;2886:110:0;;7495:2:1;2886:110:0::1;::::0;::::1;7477:21:1::0;7534:2;7514:18;;;7507:30;7573:34;7553:18;;;7546:62;-1:-1:-1;;;7624:18:1;;;7617:36;7670:19;;2886:110:0::1;7293:402:1::0;2886:110:0::1;3007:19;3017:8;3007:9;:19::i;22077:91::-:0;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;22145:7:::1;:15:::0;;-1:-1:-1;;;;;;22145:15:0::1;-1:-1:-1::0;;;;;22145:15:0;;;::::1;::::0;;;::::1;::::0;;22077:91::o;19904:290::-;2440:7;2467:6;-1:-1:-1;;;;;2467:6:0;1041:10;2615:23;2607:68;;;;-1:-1:-1;;;2607:68:0;;;;;;;:::i;:::-;19987:16:::1;:26:::0;;;20024:16:::1;:32:::0;;;20081:38:::1;20006:7:::0;20043:13;20081:20:::1;:38::i;:::-;20067:11;:52:::0;;;8817:3:::1;-1:-1:-1::0;20138:26:0::1;20130:56;;;::::0;-1:-1:-1;;;20130:56:0;;7902:2:1;20130:56:0::1;::::0;::::1;7884:21:1::0;7941:2;7921:18;;;7914:30;-1:-1:-1;;;7960:18:1;;;7953:48;8018:18;;20130:56:0::1;7700:342:1::0;3781:250:0;3839:7;3863:1;3868;3863:6;3859:47;;-1:-1:-1;3893:1:0;3886:8;;3859:47;3918:9;3930:5;3934:1;3930;:5;:::i;:::-;3918:17;-1:-1:-1;3963:1:0;3954:5;3958:1;3918:17;3954:5;:::i;:::-;:10;3946:56;;;;-1:-1:-1;;;3946:56:0;;8776:2:1;3946:56:0;;;8758:21:1;8815:2;8795:18;;;8788:30;8854:34;8834:18;;;8827:62;-1:-1:-1;;;8905:18:1;;;8898:31;8946:19;;3946:56:0;8574:397:1;4039:132:0;4097:7;4124:39;4128:1;4131;4124:39;;;;;;;;;;;;;;;;;:3;:39::i;3248:181::-;3306:7;;3338:5;3342:1;3338;:5;:::i;:::-;3326:17;;3367:1;3362;:6;;3354:46;;;;-1:-1:-1;;;3354:46:0;;9308:2:1;3354:46:0;;;9290:21:1;9347:2;9327:18;;;9320:30;9386:29;9366:18;;;9359:57;9433:18;;3354:46:0;9106:351:1;13249:337:0;-1:-1:-1;;;;;13342:19:0;;13334:68;;;;-1:-1:-1;;;13334:68:0;;9664:2:1;13334:68:0;;;9646:21:1;9703:2;9683:18;;;9676:30;9742:34;9722:18;;;9715:62;-1:-1:-1;;;9793:18:1;;;9786:34;9837:19;;13334:68:0;9462:400:1;13334:68:0;-1:-1:-1;;;;;13421:21:0;;13413:68;;;;-1:-1:-1;;;13413:68:0;;10069:2:1;13413:68:0;;;10051:21:1;10108:2;10088:18;;;10081:30;10147:34;10127:18;;;10120:62;-1:-1:-1;;;10198:18:1;;;10191:32;10240:19;;13413:68:0;9867:398:1;13413:68:0;-1:-1:-1;;;;;13494:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13546:32;;160:25:1;;;13546:32:0;;133:18:1;13546:32:0;;;;;;;13249:337;;;:::o;14175:1586::-;14262:4;-1:-1:-1;;;;;14289:20:0;;14281:70;;;;-1:-1:-1;;;14281:70:0;;10472:2:1;14281:70:0;;;10454:21:1;10511:2;10491:18;;;10484:30;10550:34;10530:18;;;10523:62;-1:-1:-1;;;10601:18:1;;;10594:35;10646:19;;14281:70:0;10270:401:1;14281:70:0;-1:-1:-1;;;;;14370:23:0;;14362:71;;;;-1:-1:-1;;;14362:71:0;;10878:2:1;14362:71:0;;;10860:21:1;10917:2;10897:18;;;10890:30;10956:34;10936:18;;;10929:62;-1:-1:-1;;;11007:18:1;;;11000:33;11050:19;;14362:71:0;10676:399:1;14362:71:0;14461:1;14452:6;:10;14444:64;;;;-1:-1:-1;;;14444:64:0;;11282:2:1;14444:64:0;;;11264:21:1;11321:2;11301:18;;;11294:30;11360:34;11340:18;;;11333:62;-1:-1:-1;;;11411:18:1;;;11404:39;11460:19;;14444:64:0;11080:405:1;14444:64:0;14525:6;;-1:-1:-1;;;14525:6:0;;;;14521:1231;;;14555:41;14570:6;14578:9;14589:6;14555:14;:41::i;:::-;14548:48;;;;14521:1231;14689:4;14640:28;12219:18;;;:9;:18;;;;;;14765:13;;14741:37;;;;;;;14799:34;;-1:-1:-1;14827:6:0;;-1:-1:-1;;;14827:6:0;;;;14826:7;14799:34;:59;;;;-1:-1:-1;;;;;;14838:20:0;;;;;;:12;:20;;;;;;;;14837:21;14799:59;:74;;;;-1:-1:-1;14862:11:0;;;;14799:74;14795:145;;;14894:30;14903:20;14894:8;:30::i;:::-;-1:-1:-1;;;;;14972:23:0;;;;;;:15;:23;;;;;;;;14971:24;:55;;;;-1:-1:-1;;;;;;15000:26:0;;;;;;:15;:26;;;;;;;;14999:27;14971:55;:72;;;;-1:-1:-1;15030:13:0;;;;;;;14971:72;14968:187;;;15082:12;;15072:6;:22;;15064:75;;;;-1:-1:-1;;;15064:75:0;;11692:2:1;15064:75:0;;;11674:21:1;11731:2;11711:18;;;11704:30;11770:34;11750:18;;;11743:62;-1:-1:-1;;;11821:18:1;;;11814:38;11869:19;;15064:75:0;11490:404:1;15064:75:0;15204:53;;;;;;;;;;;-1:-1:-1;;;15204:53:0;;;;;;;;-1:-1:-1;;;;;15204:17:0;;-1:-1:-1;15204:17:0;;;:9;:17;;;;;;;;:53;;15226:6;;15204:21;:53::i;:::-;-1:-1:-1;;;;;15184:17:0;;;;;;:9;:17;;;;;:73;;;;15296:34;15194:6;15320:9;15296:16;:34::i;:::-;:80;;15342:34;15350:6;15358:9;15369:6;15342:7;:34::i;:::-;15296:80;;;15333:6;15296:80;15396:16;;15274:102;;-1:-1:-1;15396:16:0;;;;;:51;;;;-1:-1:-1;;;;;;15417:30:0;;;;;;:19;:30;;;;;;;;15416:31;15396:51;15393:181;;;15517:10;;15476:37;15501:11;15476:20;15486:9;-1:-1:-1;;;;;12219:18:0;12193:7;12219:18;;;:9;:18;;;;;;;12127:123;15476:20;:24;;:37::i;:::-;:51;;15468:90;;;;-1:-1:-1;;;15468:90:0;;12101:2:1;15468:90:0;;;12083:21:1;12140:2;12120:18;;;12113:30;12179:29;12159:18;;;12152:57;12226:18;;15468:90:0;11899:351:1;15468:90:0;-1:-1:-1;;;;;15613:20:0;;;;;;:9;:20;;;;;;:37;;15638:11;15613:24;:37::i;:::-;-1:-1:-1;;;;;15590:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15672:40;;;;;;;;;;15700:11;160:25:1;;148:2;133:18;;14:177;15672:40:0;;;;;;;;15734:4;15727:11;;;;;;;3581:192;3667:7;3703:12;3695:6;;;;3687:29;;;;-1:-1:-1;;;3687:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3727:9:0;3739:5;3743:1;3739;:5;:::i;:::-;3727:17;3581:192;-1:-1:-1;;;;;3581:192:0:o;3437:136::-;3495:7;3522:43;3526:1;3529;3522:43;;;;;;;;;;;;;;;;;:3;:43::i;3042:173::-;3098:16;3117:6;;-1:-1:-1;;;;;3134:17:0;;;-1:-1:-1;;;;;;3134:17:0;;;;;;3167:40;;3117:6;;;;;;;3167:40;;3098:16;3167:40;3087:128;3042:173;:::o;4179:278::-;4265:7;4300:12;4293:5;4285:28;;;;-1:-1:-1;;;4285:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4324:9:0;4336:5;4340:1;4336;:5;:::i;15769:330::-;15899:53;;;;;;;;;;;-1:-1:-1;;;15899:53:0;;;;;;;;-1:-1:-1;;;;;15899:17:0;;15862:4;15899:17;;;:9;:17;;;;;;;:53;;15921:6;;15899:21;:53::i;:::-;-1:-1:-1;;;;;15879:17:0;;;;;;;:9;:17;;;;;;:73;;;;15986:20;;;;;;;:32;;16011:6;15986:24;:32::i;:::-;-1:-1:-1;;;;;15963:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16034:35;;;;;;;;;;16062:6;160:25:1;;148:2;133:18;;14:177;16034:35:0;;;;;;;;-1:-1:-1;16087:4:0;15769:330;;;;;:::o;17207:1123::-;9752:6;:13;;-1:-1:-1;;;;9752:13:0;-1:-1:-1;;;9752:13:0;;;17316:12:::1;::::0;17300:11:::1;::::0;9752:13;;17300:29:::1;::::0;:11;:15:::1;:29::i;:::-;17278:51;;17345:11;17360:1;17345:16:::0;17342:28:::1;;17363:7;;;17342:28;17382:23;17408:39;17429:17;;17408:16;;:20;;:39;;;;:::i;:::-;17382:65:::0;-1:-1:-1;17539:19:0::1;17561:60;17619:1;17561:53;17602:11:::0;17561:53;:15;17382:65;17561:19:::1;:36::i;:::-;:40:::0;::::1;:53::i;:60::-;17539:82:::0;-1:-1:-1;17632:21:0::1;17656:32;:15:::0;17539:82;17656:19:::1;:32::i;:::-;17632:56:::0;-1:-1:-1;17726:21:0::1;17758:31;17632:56:::0;17758:16:::1;:31::i;:::-;17800:22;17825:41;:21;17851:14:::0;17825:25:::1;:41::i;:::-;17800:66:::0;-1:-1:-1;17879:19:0::1;17901:39;17917:22;:15:::0;17937:1:::1;17917:19;:22::i;:::-;17901:11:::0;;:15:::1;:39::i;:::-;17879:61:::0;-1:-1:-1;17961:26:0::1;17990:59;18047:1;17990:52;17879:61:::0;17990:52;:14;18009:15;17990:18:::1;:35::i;:59::-;17961:88:::0;-1:-1:-1;18060:26:0::1;18089:38;:14:::0;17961:88;18089:18:::1;:38::i;:::-;18060:67;;18164:1;18143:18;:22;:41;;;;;18183:1;18169:11;:15;18143:41;18140:91;;;18186:45;18199:11;18212:18;18186:12;:45::i;:::-;18245:22:::0;;18242:80:::1;;18277:15;::::0;18269:53:::1;::::0;-1:-1:-1;;;;;18277:15:0;;::::1;::::0;18269:53;::::1;;;::::0;18303:18;;18277:15:::1;18269:53:::0;18277:15;18269:53;18303:18;18277:15;18269:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18242:80;17265:1065;;;;;;;;;9776:1;-1:-1:-1::0;9788:6:0;:14;;-1:-1:-1;;;;9788:14:0;;;17207:1123::o;16111:369::-;-1:-1:-1;;;;;16215:25:0;;16195:4;16215:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;16244:28:0;;;;;;:17;:28;;;;;;;;16215:57;16212:261;;;-1:-1:-1;16296:4:0;16289:11;;16212:261;-1:-1:-1;;;;;16331:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;16355:23:0;;;;;;:12;:23;;;;;;;;16331:47;16327:146;;;-1:-1:-1;16402:5:0;16395:12;;16327:146;-1:-1:-1;16456:5:0;16449:12;;16488:711;-1:-1:-1;;;;;16661:20:0;;16574:7;16661:20;;;:12;:20;;;;;;16574:7;;16661:20;;16658:267;;;16720:43;16748:14;;16720:23;16731:11;;16720:6;:10;;:23;;;;:::i;:43::-;16708:55;;16658:267;;;-1:-1:-1;;;;;16802:23:0;;;;;;:12;:23;;;;;;;;16799:126;;;16865:44;16894:14;;16865:24;16876:12;;16865:6;:10;;:24;;;;:::i;:44::-;16853:56;;16799:126;16944:13;;16941:185;;17023:4;17005:24;;;;:9;:24;;;;;;:39;;17034:9;17005:28;:39::i;:::-;16996:4;16978:24;;;;:9;:24;;;;;;;:66;;;;17068:42;;-1:-1:-1;;;;;17068:42:0;;;;;;;17100:9;160:25:1;;148:2;133:18;;14:177;17068:42:0;;;;;;;;16941:185;17149:21;:6;17160:9;17149:10;:21::i;18338:648::-;18488:16;;;18502:1;18488:16;;;;;;;;18464:21;;18488:16;;;;;;;;;;-1:-1:-1;18488:16:0;18464:40;;18533:4;18515;18520:1;18515:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18515:23:0;;;-1:-1:-1;;;;;18515:23:0;;;;;18559:9;;;;;;;;;-1:-1:-1;;;;;18559:9:0;-1:-1:-1;;;;;18559:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18549:4;18554:1;18549:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18549:26:0;;;:7;;;;;;;;;:26;18620:9;;18588:56;;18605:4;;18620:9;;;;18632:11;18588:8;:56::i;:::-;18683:9;;:234;;-1:-1:-1;;;18683:234:0;;:9;;;;-1:-1:-1;;;;;18683:9:0;;:60;;:234;;18758:11;;18784:1;;18828:4;;18855;;18891:15;;18683:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18943:35;18960:11;18973:4;18943:35;;;;;;;:::i;:::-;;;;;;;;18393:593;18338:648;:::o;18994:511::-;19174:9;;19142:56;;19159:4;;19174:9;;;-1:-1:-1;;;;;19174:9:0;19186:11;19142:8;:56::i;:::-;19241:9;;19439:17;;19241:256;;-1:-1:-1;;;19241:256:0;;19307:4;19241:256;;;14639:34:1;14689:18;;;14682:34;;;19353:1:0;14732:18:1;;;14725:34;;;14775:18;;;14768:34;-1:-1:-1;;;;;19439:17:0;;;14818:19:1;;;14811:44;19471:15:0;14871:19:1;;;14864:35;19241:9:0;;;;;;:25;;19274:9;;14573:19:1;;19241:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18994:511;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2066:247::-;2125:6;2178:2;2166:9;2157:7;2153:23;2149:32;2146:52;;;2194:1;2191;2184:12;2146:52;2233:9;2220:23;2252:31;2277:5;2252:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:241;2686:6;2739:2;2727:9;2718:7;2714:23;2710:32;2707:52;;;2755:1;2752;2745:12;2707:52;2794:9;2781:23;2813:28;2835:5;2813:28;:::i;2876:180::-;2935:6;2988:2;2976:9;2967:7;2963:23;2959:32;2956:52;;;3004:1;3001;2994:12;2956:52;-1:-1:-1;3027:23:1;;2876:180;-1:-1:-1;2876:180:1:o;3061:382::-;3126:6;3134;3187:2;3175:9;3166:7;3162:23;3158:32;3155:52;;;3203:1;3200;3193:12;3155:52;3242:9;3229:23;3261:31;3286:5;3261:31;:::i;:::-;3311:5;-1:-1:-1;3368:2:1;3353:18;;3340:32;3381:30;3340:32;3381:30;:::i;:::-;3430:7;3420:17;;;3061:382;;;;;:::o;3448:248::-;3516:6;3524;3577:2;3565:9;3556:7;3552:23;3548:32;3545:52;;;3593:1;3590;3583:12;3545:52;-1:-1:-1;;3616:23:1;;;3686:2;3671:18;;;3658:32;;-1:-1:-1;3448:248:1:o;4405:388::-;4473:6;4481;4534:2;4522:9;4513:7;4509:23;4505:32;4502:52;;;4550:1;4547;4540:12;4502:52;4589:9;4576:23;4608:31;4633:5;4608:31;:::i;:::-;4658:5;-1:-1:-1;4715:2:1;4700:18;;4687:32;4728:33;4687:32;4728:33;:::i;4798:309::-;4863:6;4871;4924:2;4912:9;4903:7;4899:23;4895:32;4892:52;;;4940:1;4937;4930:12;4892:52;4979:9;4966:23;4998:28;5020:5;4998:28;:::i;5112:380::-;5191:1;5187:12;;;;5234;;;5255:61;;5309:4;5301:6;5297:17;5287:27;;5255:61;5362:2;5354:6;5351:14;5331:18;5328:38;5325:161;;5408:10;5403:3;5399:20;5396:1;5389:31;5443:4;5440:1;5433:15;5471:4;5468:1;5461:15;5325:161;;5112:380;;;:::o;5497:356::-;5699:2;5681:21;;;5718:18;;;5711:30;5777:34;5772:2;5757:18;;5750:62;5844:2;5829:18;;5497:356::o;6484:245::-;6551:6;6604:2;6592:9;6583:7;6579:23;6575:32;6572:52;;;6620:1;6617;6610:12;6572:52;6652:9;6646:16;6671:28;6693:5;6671:28;:::i;8047:127::-;8108:10;8103:3;8099:20;8096:1;8089:31;8139:4;8136:1;8129:15;8163:4;8160:1;8153:15;8179:168;8252:9;;;8283;;8300:15;;;8294:22;;8280:37;8270:71;;8321:18;;:::i;8352:217::-;8392:1;8418;8408:132;;8462:10;8457:3;8453:20;8450:1;8443:31;8497:4;8494:1;8487:15;8525:4;8522:1;8515:15;8408:132;-1:-1:-1;8554:9:1;;8352:217::o;8976:125::-;9041:9;;;9062:10;;;9059:36;;;9075:18;;:::i;12255:128::-;12322:9;;;12343:11;;;12340:37;;;12357:18;;:::i;12520:127::-;12581:10;12576:3;12572:20;12569:1;12562:31;12612:4;12609:1;12602:15;12636:4;12633:1;12626:15;12652:251;12722:6;12775:2;12763:9;12754:7;12750:23;12746:32;12743:52;;;12791:1;12788;12781:12;12743:52;12823:9;12817:16;12842:31;12867:5;12842:31;:::i;12908:461::-;12961:3;12999:5;12993:12;13026:6;13021:3;13014:19;13052:4;13081:2;13076:3;13072:12;13065:19;;13118:2;13111:5;13107:14;13139:1;13149:195;13163:6;13160:1;13157:13;13149:195;;;13228:13;;-1:-1:-1;;;;;13224:39:1;13212:52;;13284:12;;;;13319:15;;;;13260:1;13178:9;13149:195;;;-1:-1:-1;13360:3:1;;12908:461;-1:-1:-1;;;;;12908:461:1:o;13374:582::-;13673:6;13662:9;13655:25;13716:6;13711:2;13700:9;13696:18;13689:34;13759:3;13754:2;13743:9;13739:18;13732:31;13636:4;13780:57;13832:3;13821:9;13817:19;13809:6;13780:57;:::i;:::-;-1:-1:-1;;;;;13873:32:1;;;;13868:2;13853:18;;13846:60;-1:-1:-1;13937:3:1;13922:19;13915:35;13772:65;13374:582;-1:-1:-1;;;13374:582:1:o;13961:332::-;14168:6;14157:9;14150:25;14211:2;14206;14195:9;14191:18;14184:30;14131:4;14231:56;14283:2;14272:9;14268:18;14260:6;14231:56;:::i;:::-;14223:64;13961:332;-1:-1:-1;;;;13961:332:1:o;14910:306::-;14998:6;15006;15014;15067:2;15055:9;15046:7;15042:23;15038:32;15035:52;;;15083:1;15080;15073:12;15035:52;15112:9;15106:16;15096:26;;15162:2;15151:9;15147:18;15141:25;15131:35;;15206:2;15195:9;15191:18;15185:25;15175:35;;14910:306;;;;;:::o

Swarm Source

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