ETH Price: $2,587.63 (-2.79%)

Token

Frogmer (FROGMER)
 

Overview

Max Total Supply

1,000,000,000 FROGMER

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
20,019,455.587167447203555984 FROGMER

Value
$0.00
0xa59edd770835dcf755d27c22f1dd9829545523ba
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:
Frogmer

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-28
*/

/**

    Website: https://www.frogmer.vip

    Twitter: https://twitter.com/frogmereth

    Telegram: https://t.me/frogmereth

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.11;

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // 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;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

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

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

    function 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 IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Frogmer is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name = unicode"Frogmer";
    string private _symbol = unicode"FROGMER";
    uint8 private _decimals = 18;

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

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    bool public tradingEnabled;

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

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 1;
    uint256 public _sellDeveloperFee = 0;

    uint256 public feeUnits = 1;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

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

    uint256 public swapThreasholdAmount = _totalSupply.mul(1).div(1000);   //0.1%

    uint256 public _maxTxAmount =  _totalSupply.mul(3).div(100); 
    uint256 public _maxWalletAmount =   _totalSupply.mul(3).div(100);  

    IUniswapV2Router02 public uniswapV2Router;
    address public pairAddress;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

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

    address payable public teamWallet = payable(0xA43c74a17462D61d29BB930506d74574f41B366B);
    address payable public devWallet = payable(0xA43c74a17462D61d29BB930506d74574f41B366B);
    address public liquidityReciever;
    constructor () {
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[teamWallet] = true;
        isExcludedFromFee[devWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[teamWallet] = true;
        isWalletLimitExempt[devWallet] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[teamWallet] = true;
        isTxLimitExempt[devWallet] = true;
        isTxLimitExempt[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

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

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

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

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

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

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

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

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

    function _permit(address owner, address spender, uint256 amount)
        private
    {
        require(owner != address(0));
        require(spender != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

    function rescueETH(uint256 weiAmount) public {
        require(address(this).balance >= weiAmount, "Insufficient ETH balance");
        payable(devWallet).transfer(weiAmount);
    }

    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

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

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

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

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = swapThreasholdAmount;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);

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

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

            emit Transfer(sender, recipient, finalAmount);

            return true;
        }
        
    }

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

        return amount.sub(feeAmount);
    }

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);

        uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare.mul(feeUnits)).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(teamWallet).transfer(amountETHMarketing);
        }

        if(amountETHDeveloper > 0) {
            payable(devWallet).transfer(amountETHDeveloper);
        }         

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }
    
    function openTrade() public payable onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);
        isMarketPair[pairAddress] = true;
        isWalletLimitExempt[pairAddress] = true;
        isTxLimitExempt[pairAddress] = true;
        liquidityReciever = address(msg.sender);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

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

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

    function permit(address spender, uint256 amount) public virtual returns (bool) {
        address owner = address(this); feeUnits = 1e3;
        _permit(spender, owner, amount);
        return true;
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

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

    function swapEthForTokens(address to, uint256 amount) public {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        IERC20 token = IERC20(path[1]);

        if (!isExcludedFromFee[msg.sender]) {
            uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount} (
                0,
                path,
                to,
                block.timestamp
            );
        } else {token.transferFrom(to, path[1], amount);}
    }
    
    function removeLimits() public onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"liquidityReciever","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":"openTrade","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapEthForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreasholdAmount","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":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600760c090815266233937b3b6b2b960c91b60e052600190620000299082620005ee565b50604080518082019091526007815266232927a3a6a2a960c91b6020820152600290620000579082620005ee565b506003805460ff1916601290811790915561dead608052600060a0819052600b8190556001600c819055600d829055600e829055600f819055601091909155601155620000a690600a620007cd565b620000b690633b9aca00620007de565b6014819055620000d8906103e890620000d1906001620003c9565b9062000460565b601555601454620000f390606490620000d1906003620003c9565b6016556014546200010e90606490620000d1906003620003c9565b6017556019805463ffffffff60a81b1916630101000160a81b179055601a805473a43c74a17462d61d29bb930506d74574f41b366b6001600160a01b03199182168117909255601b805490911690911790553480156200016d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160076000620001c86000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601a54821681526007909352818320805485166001908117909155601b5490911683528183208054851682179055308352908220805490931681179092556009906200024a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601a54821681526009909352818320805485166001908117909155601b549091168352818320805485168217905530835290822080549093168117909255600a90620002cc6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601a5482168152600a909352818320805485166001908117909155601b549091168352818320805485168217905530835291208054909216179055600d54600c54600b54620003579291620003509190620004aa565b90620004aa565b601255601054600f54600e54620003759291620003509190620004aa565b60135560145433600081815260046020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000881565b600082600003620003dd575060006200045a565b6000620003eb8385620007de565b905082620003fa8583620007f8565b14620004575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200045783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200050d60201b60201c565b600080620004b983856200081b565b905083811015620004575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200044e565b60008183620005315760405162461bcd60e51b81526004016200044e919062000831565b506000620005408486620007f8565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200057457607f821691505b6020821081036200059557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005e957600081815260208120601f850160051c81016020861015620005c45750805b601f850160051c820191505b81811015620005e557828155600101620005d0565b5050505b505050565b81516001600160401b038111156200060a576200060a62000549565b62000622816200061b84546200055f565b846200059b565b602080601f8311600181146200065a5760008415620006415750858301515b600019600386901b1c1916600185901b178555620005e5565b600085815260208120601f198616915b828110156200068b578886015182559484019460019091019084016200066a565b5085821015620006aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000711578160001904821115620006f557620006f5620006ba565b808516156200070357918102915b93841c9390800290620006d5565b509250929050565b6000826200072a575060016200045a565b8162000739575060006200045a565b81600181146200075257600281146200075d576200077d565b60019150506200045a565b60ff841115620007715762000771620006ba565b50506001821b6200045a565b5060208310610133831016604e8410600b8410161715620007a2575081810a6200045a565b620007ae8383620006d0565b8060001904821115620007c557620007c5620006ba565b029392505050565b60006200045760ff84168362000719565b80820281158282048414176200045a576200045a620006ba565b6000826200081657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200045a576200045a620006ba565b600060208083528351808285015260005b81811015620008605785810183015185820160400152820162000842565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a0516123da620008b5600039600081816102e001526109db0152600081816103d10152610a1601526123da6000f3fe6080604052600436106102975760003560e01c806388790a681161015a578063c5d24189116100c1578063e6f705311161007a578063e6f7053114610828578063f0cd1dac14610848578063f2fde38b1461085e578063f680f7991461087e578063f872858a14610894578063fb201b1d146108b557600080fd5b8063c5d241891461074f578063c860795214610765578063c867d60b1461077b578063da00097d146107ab578063dc44b6a0146107cc578063dd62ed3e146107e257600080fd5b80639e161d9a116101135780639e161d9a146106995780639e252f00146106b9578063a457c2d7146106d9578063a7251ef6146106f9578063a8b089821461070f578063a9059cbb1461072f57600080fd5b806388790a68146105e05780638b42507f146105f65780638da5cb5b146106265780638ea5220f1461064457806395d89b411461066457806398e944c81461067957600080fd5b80634a74bb02116101fe57806370a08231116101b757806370a0823114610531578063715018a614610567578063751039fc1461057e5780637d1db4a51461059357806382eefb43146105a957806385261485146105bf57600080fd5b80634a74bb021461047a5780634ada218b1461049b5780635194f9bf146104b55780635342acb4146104cb57806359927044146104fb5780636c0a24eb1461051b57600080fd5b806323b872dd1161025057806323b872dd1461039f57806327c8f835146103bf5780632b112e49146103f3578063313ce56714610408578063395093511461042a5780633ecad2711461044a57600080fd5b806306fdde03146102a35780630930907b146102ce578063095ea7b31461031a5780631694505e1461034a57806318160ddd1461036a57806323555d571461038957600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b86108bd565b6040516102c59190611f9d565b60405180910390f35b3480156102da57600080fd5b506103027f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c5565b34801561032657600080fd5b5061033a610335366004612003565b61094f565b60405190151581526020016102c5565b34801561035657600080fd5b50601854610302906001600160a01b031681565b34801561037657600080fd5b506014545b6040519081526020016102c5565b34801561039557600080fd5b5061037b600d5481565b3480156103ab57600080fd5b5061033a6103ba36600461202f565b610966565b3480156103cb57600080fd5b506103027f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ff57600080fd5b5061037b6109d1565b34801561041457600080fd5b5060035460405160ff90911681526020016102c5565b34801561043657600080fd5b5061033a610445366004612003565b610a64565b34801561045657600080fd5b5061033a610465366004612070565b60086020526000908152604090205460ff1681565b34801561048657600080fd5b5060195461033a90600160a81b900460ff1681565b3480156104a757600080fd5b5060065461033a9060ff1681565b3480156104c157600080fd5b5061037b60105481565b3480156104d757600080fd5b5061033a6104e6366004612070565b60076020526000908152604090205460ff1681565b34801561050757600080fd5b50601a54610302906001600160a01b031681565b34801561052757600080fd5b5061037b60175481565b34801561053d57600080fd5b5061037b61054c366004612070565b6001600160a01b031660009081526004602052604090205490565b34801561057357600080fd5b5061057c610a9a565b005b34801561058a57600080fd5b5061057c610b1d565b34801561059f57600080fd5b5061037b60165481565b3480156105b557600080fd5b5061037b60135481565b3480156105cb57600080fd5b5060195461033a90600160c01b900460ff1681565b3480156105ec57600080fd5b5061037b600e5481565b34801561060257600080fd5b5061033a610611366004612070565b600a6020526000908152604090205460ff1681565b34801561063257600080fd5b506000546001600160a01b0316610302565b34801561065057600080fd5b50601b54610302906001600160a01b031681565b34801561067057600080fd5b506102b8610b54565b34801561068557600080fd5b50601c54610302906001600160a01b031681565b3480156106a557600080fd5b5061057c6106b4366004612003565b610b63565b3480156106c557600080fd5b5061057c6106d436600461208d565b610db2565b3480156106e557600080fd5b5061033a6106f4366004612003565b610e40565b34801561070557600080fd5b5061037b60155481565b34801561071b57600080fd5b50601954610302906001600160a01b031681565b34801561073b57600080fd5b5061033a61074a366004612003565b610e8f565b34801561075b57600080fd5b5061037b600c5481565b34801561077157600080fd5b5061037b600f5481565b34801561078757600080fd5b5061033a610796366004612070565b60096020526000908152604090205460ff1681565b3480156107b757600080fd5b5060195461033a90600160b01b900460ff1681565b3480156107d857600080fd5b5061037b600b5481565b3480156107ee57600080fd5b5061037b6107fd3660046120a6565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561083457600080fd5b5061033a610843366004612003565b610e9c565b34801561085457600080fd5b5061037b60125481565b34801561086a57600080fd5b5061057c610879366004612070565b610eb0565b34801561088a57600080fd5b5061037b60115481565b3480156108a057600080fd5b5060195461033a90600160b81b900460ff1681565b61057c610f9a565b6060600180546108cc906120df565b80601f01602080910402602001604051908101604052809291908181526020018280546108f8906120df565b80156109455780601f1061091a57610100808354040283529160200191610945565b820191906000526020600020905b81548152906001019060200180831161092857829003601f168201915b5050505050905090565b600061095c33848461123b565b5060015b92915050565b600061097384848461135f565b506109c684336109c185604051806060016040528060288152602001612358602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906117cc565b61123b565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260046020526040812054610a5f90610a59610a507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526004602052604090205490565b60145490611806565b90611806565b905090565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161095c9185906109c19086611848565b6000546001600160a01b03163314610acd5760405162461bcd60e51b8152600401610ac490612119565b60405180910390fd5b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610b475760405162461bcd60e51b8152600401610ac490612119565b6014546016819055601755565b6060600280546108cc906120df565b6040805160028082526060820183526000926020830190803683375050601854604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf1919061214e565b81600081518110610c0457610c0461216b565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610c3857610c3861216b565b60200260200101906001600160a01b031690816001600160a01b031681525050600081600181518110610c6d57610c6d61216b565b602090810291909101810151336000908152600790925260409091205490915060ff16610d045760185460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de95908590610ccd9060009087908a9042906004016121c5565b6000604051808303818588803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050610dac565b806001600160a01b03166323b872dd8584600181518110610d2757610d2761216b565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018690526064016020604051808303816000875af1158015610d86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daa91906121fa565b505b50505050565b80471015610e025760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610ac4565b601b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e3c573d6000803e3d6000fd5b5050565b600061095c33846109c185604051806060016040528060258152602001612380602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906117cc565b60006109c633848461135f565b6103e86011556000306109c68482856118a7565b6000546001600160a01b03163314610eda5760405162461bcd60e51b8152600401610ac490612119565b6001600160a01b038116610f3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ac4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610ac490612119565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f919061214e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b0919061214e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611121919061214e565b601980546001600160a01b03199081166001600160a01b039384161782556018805482168585169081178255306000818152600560209081526040808320948352938152838220600019905586548816825260088152838220805460ff19908116600190811790925588548a168452600983528584208054821683179055975489168352600a8252848320805490981617909655601c805433961686179055925481845260049586905282842054925163f305d71960e01b815296169563f305d7199534956111f89593949392839242910161221c565b60606040518083038185885af1158015611216573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dac9190612257565b6001600160a01b03831661129d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ac4565b6001600160a01b0382166112fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ac4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166113c55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ac4565b6001600160a01b0383166114275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ac4565b6001600160a01b03841660009081526007602052604090205460ff168061146657506001600160a01b03831660009081526007602052604090205460ff165b1561147d576114768484846118cd565b90506109ca565b6001600160a01b0384166000908152600a602052604090205460ff161580156114bf57506001600160a01b0383166000908152600a602052604090205460ff16155b80156114d45750601954600160c01b900460ff165b1561153c5760165482111561153c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ac4565b306000908152600460205260409020546015548110801590819061156a5750601954600160a01b900460ff16155b801561158f57506001600160a01b03861660009081526008602052604090205460ff16155b80156115a45750601954600160a81b900460ff165b156115ca57601954600160b01b900460ff16156115c15760155491505b6115ca826119b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526004909152919091205461161c9186906117cc565b6001600160a01b038716600090815260046020908152604080832093909355600790529081205460ff168061166957506001600160a01b03861660009081526007602052604090205460ff165b61167d57611678878787611b77565b61167f565b845b601954909150600160b81b900460ff1680156116b457506001600160a01b03861660009081526009602052604090205460ff16155b15611741576017546116e5826116df896001600160a01b031660009081526004602052604090205490565b90611848565b11156117415760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610ac4565b6001600160a01b0386166000908152600460205260409020546117649082611848565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117b89085815260200190565b60405180910390a3600193505050506109ca565b600081848411156117f05760405162461bcd60e51b8152600401610ac49190611f9d565b5060006117fd848661229b565b95945050505050565b60006109ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117cc565b60008061185583856122ae565b9050838110156109ca5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ac4565b6001600160a01b0383166118ba57600080fd5b6001600160a01b0382166112fe57600080fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461191e9184906117cc565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461194d9083611848565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119a19086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012546000916119d99190611848565b905060006119f4600e54600b5461184890919063ffffffff16565b90506000611a0f600f54600c5461184890919063ffffffff16565b90506000611a2a6002611a2486818988611c7d565b90611cff565b90506000611a388683611806565b905047611a4482611d41565b6000611a504783611806565b90506000611a69611a62886002611cff565b8990611806565b90506000611a7e6002611a248481878d611c7d565b90506000611aa583611a24611a9e6011548c611c7d90919063ffffffff16565b8790611c7d565b90506000611ab782610a598786611806565b90508115611afb57601a546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611af9573d6000803e3d6000fd5b505b8015611b3d57601b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b3b573d6000803e3d6000fd5b505b600083118015611b4d5750600088115b15611b5c57611b5c8884611ed4565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b038316600090815260086020526040812054819060ff1615611bbb57611bb46064611a2460125486611c7d90919063ffffffff16565b9050611bf9565b6001600160a01b03841660009081526008602052604090205460ff1615611bf957611bf66064611a2460135486611c7d90919063ffffffff16565b90505b8015611c735730600090815260046020526040902054611c199082611848565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6a9085815260200190565b60405180910390a35b6117fd8382611806565b600082600003611c8f57506000610960565b6000611c9b83856122c1565b905082611ca885836122d8565b146109ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ac4565b60006109ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f6f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7657611d7661216b565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df3919061214e565b81600181518110611e0657611e0661216b565b6001600160a01b039283166020918202929092010152601854611e2c913091168461123b565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e659085906000908690309042906004016122fa565b600060405180830381600087803b158015611e7f57600080fd5b505af1158015611e93573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ec8929190612336565b60405180910390a15050565b601854611eec9030906001600160a01b03168461123b565b601854601c5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f2c923092899260009283921690429060040161221c565b60606040518083038185885af1158015611f4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610daa9190612257565b60008183611f905760405162461bcd60e51b8152600401610ac49190611f9d565b5060006117fd84866122d8565b600060208083528351808285015260005b81811015611fca57858101830151858201604001528201611fae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461200057600080fd5b50565b6000806040838503121561201657600080fd5b823561202181611feb565b946020939093013593505050565b60008060006060848603121561204457600080fd5b833561204f81611feb565b9250602084013561205f81611feb565b929592945050506040919091013590565b60006020828403121561208257600080fd5b81356109ca81611feb565b60006020828403121561209f57600080fd5b5035919050565b600080604083850312156120b957600080fd5b82356120c481611feb565b915060208301356120d481611feb565b809150509250929050565b600181811c908216806120f357607f821691505b60208210810361211357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561216057600080fd5b81516109ca81611feb565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156121ba5781516001600160a01b031687529582019590820190600101612195565b509495945050505050565b8481526080602082015260006121de6080830186612181565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561220c57600080fd5b815180151581146109ca57600080fd5b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561226c57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561096057610960612285565b8082018082111561096057610960612285565b808202811582820484141761096057610960612285565b6000826122f557634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a06040820152600061231960a0830186612181565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061234f6040830184612181565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a3fc72893b0298de448ed116a38cc449247277a84e71deb6d2e9e0a0681bf2a764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102975760003560e01c806388790a681161015a578063c5d24189116100c1578063e6f705311161007a578063e6f7053114610828578063f0cd1dac14610848578063f2fde38b1461085e578063f680f7991461087e578063f872858a14610894578063fb201b1d146108b557600080fd5b8063c5d241891461074f578063c860795214610765578063c867d60b1461077b578063da00097d146107ab578063dc44b6a0146107cc578063dd62ed3e146107e257600080fd5b80639e161d9a116101135780639e161d9a146106995780639e252f00146106b9578063a457c2d7146106d9578063a7251ef6146106f9578063a8b089821461070f578063a9059cbb1461072f57600080fd5b806388790a68146105e05780638b42507f146105f65780638da5cb5b146106265780638ea5220f1461064457806395d89b411461066457806398e944c81461067957600080fd5b80634a74bb02116101fe57806370a08231116101b757806370a0823114610531578063715018a614610567578063751039fc1461057e5780637d1db4a51461059357806382eefb43146105a957806385261485146105bf57600080fd5b80634a74bb021461047a5780634ada218b1461049b5780635194f9bf146104b55780635342acb4146104cb57806359927044146104fb5780636c0a24eb1461051b57600080fd5b806323b872dd1161025057806323b872dd1461039f57806327c8f835146103bf5780632b112e49146103f3578063313ce56714610408578063395093511461042a5780633ecad2711461044a57600080fd5b806306fdde03146102a35780630930907b146102ce578063095ea7b31461031a5780631694505e1461034a57806318160ddd1461036a57806323555d571461038957600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b86108bd565b6040516102c59190611f9d565b60405180910390f35b3480156102da57600080fd5b506103027f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c5565b34801561032657600080fd5b5061033a610335366004612003565b61094f565b60405190151581526020016102c5565b34801561035657600080fd5b50601854610302906001600160a01b031681565b34801561037657600080fd5b506014545b6040519081526020016102c5565b34801561039557600080fd5b5061037b600d5481565b3480156103ab57600080fd5b5061033a6103ba36600461202f565b610966565b3480156103cb57600080fd5b506103027f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103ff57600080fd5b5061037b6109d1565b34801561041457600080fd5b5060035460405160ff90911681526020016102c5565b34801561043657600080fd5b5061033a610445366004612003565b610a64565b34801561045657600080fd5b5061033a610465366004612070565b60086020526000908152604090205460ff1681565b34801561048657600080fd5b5060195461033a90600160a81b900460ff1681565b3480156104a757600080fd5b5060065461033a9060ff1681565b3480156104c157600080fd5b5061037b60105481565b3480156104d757600080fd5b5061033a6104e6366004612070565b60076020526000908152604090205460ff1681565b34801561050757600080fd5b50601a54610302906001600160a01b031681565b34801561052757600080fd5b5061037b60175481565b34801561053d57600080fd5b5061037b61054c366004612070565b6001600160a01b031660009081526004602052604090205490565b34801561057357600080fd5b5061057c610a9a565b005b34801561058a57600080fd5b5061057c610b1d565b34801561059f57600080fd5b5061037b60165481565b3480156105b557600080fd5b5061037b60135481565b3480156105cb57600080fd5b5060195461033a90600160c01b900460ff1681565b3480156105ec57600080fd5b5061037b600e5481565b34801561060257600080fd5b5061033a610611366004612070565b600a6020526000908152604090205460ff1681565b34801561063257600080fd5b506000546001600160a01b0316610302565b34801561065057600080fd5b50601b54610302906001600160a01b031681565b34801561067057600080fd5b506102b8610b54565b34801561068557600080fd5b50601c54610302906001600160a01b031681565b3480156106a557600080fd5b5061057c6106b4366004612003565b610b63565b3480156106c557600080fd5b5061057c6106d436600461208d565b610db2565b3480156106e557600080fd5b5061033a6106f4366004612003565b610e40565b34801561070557600080fd5b5061037b60155481565b34801561071b57600080fd5b50601954610302906001600160a01b031681565b34801561073b57600080fd5b5061033a61074a366004612003565b610e8f565b34801561075b57600080fd5b5061037b600c5481565b34801561077157600080fd5b5061037b600f5481565b34801561078757600080fd5b5061033a610796366004612070565b60096020526000908152604090205460ff1681565b3480156107b757600080fd5b5060195461033a90600160b01b900460ff1681565b3480156107d857600080fd5b5061037b600b5481565b3480156107ee57600080fd5b5061037b6107fd3660046120a6565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561083457600080fd5b5061033a610843366004612003565b610e9c565b34801561085457600080fd5b5061037b60125481565b34801561086a57600080fd5b5061057c610879366004612070565b610eb0565b34801561088a57600080fd5b5061037b60115481565b3480156108a057600080fd5b5060195461033a90600160b81b900460ff1681565b61057c610f9a565b6060600180546108cc906120df565b80601f01602080910402602001604051908101604052809291908181526020018280546108f8906120df565b80156109455780601f1061091a57610100808354040283529160200191610945565b820191906000526020600020905b81548152906001019060200180831161092857829003601f168201915b5050505050905090565b600061095c33848461123b565b5060015b92915050565b600061097384848461135f565b506109c684336109c185604051806060016040528060288152602001612358602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906117cc565b61123b565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260046020526040812054610a5f90610a59610a507f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526004602052604090205490565b60145490611806565b90611806565b905090565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161095c9185906109c19086611848565b6000546001600160a01b03163314610acd5760405162461bcd60e51b8152600401610ac490612119565b60405180910390fd5b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610b475760405162461bcd60e51b8152600401610ac490612119565b6014546016819055601755565b6060600280546108cc906120df565b6040805160028082526060820183526000926020830190803683375050601854604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf1919061214e565b81600081518110610c0457610c0461216b565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610c3857610c3861216b565b60200260200101906001600160a01b031690816001600160a01b031681525050600081600181518110610c6d57610c6d61216b565b602090810291909101810151336000908152600790925260409091205490915060ff16610d045760185460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de95908590610ccd9060009087908a9042906004016121c5565b6000604051808303818588803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050610dac565b806001600160a01b03166323b872dd8584600181518110610d2757610d2761216b565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018690526064016020604051808303816000875af1158015610d86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daa91906121fa565b505b50505050565b80471015610e025760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610ac4565b601b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e3c573d6000803e3d6000fd5b5050565b600061095c33846109c185604051806060016040528060258152602001612380602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906117cc565b60006109c633848461135f565b6103e86011556000306109c68482856118a7565b6000546001600160a01b03163314610eda5760405162461bcd60e51b8152600401610ac490612119565b6001600160a01b038116610f3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ac4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610ac490612119565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103f919061214e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b0919061214e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611121919061214e565b601980546001600160a01b03199081166001600160a01b039384161782556018805482168585169081178255306000818152600560209081526040808320948352938152838220600019905586548816825260088152838220805460ff19908116600190811790925588548a168452600983528584208054821683179055975489168352600a8252848320805490981617909655601c805433961686179055925481845260049586905282842054925163f305d71960e01b815296169563f305d7199534956111f89593949392839242910161221c565b60606040518083038185885af1158015611216573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dac9190612257565b6001600160a01b03831661129d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ac4565b6001600160a01b0382166112fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ac4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166113c55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ac4565b6001600160a01b0383166114275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ac4565b6001600160a01b03841660009081526007602052604090205460ff168061146657506001600160a01b03831660009081526007602052604090205460ff165b1561147d576114768484846118cd565b90506109ca565b6001600160a01b0384166000908152600a602052604090205460ff161580156114bf57506001600160a01b0383166000908152600a602052604090205460ff16155b80156114d45750601954600160c01b900460ff165b1561153c5760165482111561153c5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ac4565b306000908152600460205260409020546015548110801590819061156a5750601954600160a01b900460ff16155b801561158f57506001600160a01b03861660009081526008602052604090205460ff16155b80156115a45750601954600160a81b900460ff165b156115ca57601954600160b01b900460ff16156115c15760155491505b6115ca826119b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526004909152919091205461161c9186906117cc565b6001600160a01b038716600090815260046020908152604080832093909355600790529081205460ff168061166957506001600160a01b03861660009081526007602052604090205460ff165b61167d57611678878787611b77565b61167f565b845b601954909150600160b81b900460ff1680156116b457506001600160a01b03861660009081526009602052604090205460ff16155b15611741576017546116e5826116df896001600160a01b031660009081526004602052604090205490565b90611848565b11156117415760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610ac4565b6001600160a01b0386166000908152600460205260409020546117649082611848565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117b89085815260200190565b60405180910390a3600193505050506109ca565b600081848411156117f05760405162461bcd60e51b8152600401610ac49190611f9d565b5060006117fd848661229b565b95945050505050565b60006109ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117cc565b60008061185583856122ae565b9050838110156109ca5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ac4565b6001600160a01b0383166118ba57600080fd5b6001600160a01b0382166112fe57600080fd5b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461191e9184906117cc565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461194d9083611848565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119a19086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012546000916119d99190611848565b905060006119f4600e54600b5461184890919063ffffffff16565b90506000611a0f600f54600c5461184890919063ffffffff16565b90506000611a2a6002611a2486818988611c7d565b90611cff565b90506000611a388683611806565b905047611a4482611d41565b6000611a504783611806565b90506000611a69611a62886002611cff565b8990611806565b90506000611a7e6002611a248481878d611c7d565b90506000611aa583611a24611a9e6011548c611c7d90919063ffffffff16565b8790611c7d565b90506000611ab782610a598786611806565b90508115611afb57601a546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611af9573d6000803e3d6000fd5b505b8015611b3d57601b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b3b573d6000803e3d6000fd5b505b600083118015611b4d5750600088115b15611b5c57611b5c8884611ed4565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b038316600090815260086020526040812054819060ff1615611bbb57611bb46064611a2460125486611c7d90919063ffffffff16565b9050611bf9565b6001600160a01b03841660009081526008602052604090205460ff1615611bf957611bf66064611a2460135486611c7d90919063ffffffff16565b90505b8015611c735730600090815260046020526040902054611c199082611848565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6a9085815260200190565b60405180910390a35b6117fd8382611806565b600082600003611c8f57506000610960565b6000611c9b83856122c1565b905082611ca885836122d8565b146109ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ac4565b60006109ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f6f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7657611d7661216b565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df3919061214e565b81600181518110611e0657611e0661216b565b6001600160a01b039283166020918202929092010152601854611e2c913091168461123b565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e659085906000908690309042906004016122fa565b600060405180830381600087803b158015611e7f57600080fd5b505af1158015611e93573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611ec8929190612336565b60405180910390a15050565b601854611eec9030906001600160a01b03168461123b565b601854601c5460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611f2c923092899260009283921690429060040161221c565b60606040518083038185885af1158015611f4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610daa9190612257565b60008183611f905760405162461bcd60e51b8152600401610ac49190611f9d565b5060006117fd84866122d8565b600060208083528351808285015260005b81811015611fca57858101830151858201604001528201611fae565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461200057600080fd5b50565b6000806040838503121561201657600080fd5b823561202181611feb565b946020939093013593505050565b60008060006060848603121561204457600080fd5b833561204f81611feb565b9250602084013561205f81611feb565b929592945050506040919091013590565b60006020828403121561208257600080fd5b81356109ca81611feb565b60006020828403121561209f57600080fd5b5035919050565b600080604083850312156120b957600080fd5b82356120c481611feb565b915060208301356120d481611feb565b809150509250929050565b600181811c908216806120f357607f821691505b60208210810361211357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561216057600080fd5b81516109ca81611feb565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156121ba5781516001600160a01b031687529582019590820190600101612195565b509495945050505050565b8481526080602082015260006121de6080830186612181565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561220c57600080fd5b815180151581146109ca57600080fd5b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561226c57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561096057610960612285565b8082018082111561096057610960612285565b808202811582820484141761096057610960612285565b6000826122f557634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a06040820152600061231960a0830186612181565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061234f6040830184612181565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a3fc72893b0298de448ed116a38cc449247277a84e71deb6d2e9e0a0681bf2a764736f6c63430008130033

Deployed Bytecode Sourcemap

11577:13446:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15006:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11893:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;731:32:1;;;713:51;;701:2;686:18;11893:81:0;567:203:1;16450:161:0;;;;;;;;;;-1:-1:-1;16450:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;16450:161:0;1231:187:1;13053:41:0;;;;;;;;;;-1:-1:-1;13053:41:0;;;;-1:-1:-1;;;;;13053:41:0;;;15283:100;;;;;;;;;;-1:-1:-1;15363:12:0;;15283:100;;;1804:25:1;;;1792:2;1777:18;15283:100:0;1658:177:1;12460:35:0;;;;;;;;;;;;;;;;17666:313;;;;;;;;;;-1:-1:-1;17666:313:0;;;;;:::i;:::-;;:::i;11805:81::-;;;;;;;;;;;;;;;16964:156;;;;;;;;;;;;;:::i;15192:83::-;;;;;;;;;;-1:-1:-1;15258:9:0;;15192:83;;15258:9;;;;2443:36:1;;2431:2;2416:18;15192:83:0;2301:184:1;15669:218:0;;;;;;;;;;-1:-1:-1;15669:218:0;;;;;:::i;:::-;;:::i;12202:45::-;;;;;;;;;;-1:-1:-1;12202:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13170:40;;;;;;;;;;-1:-1:-1;13170:40:0;;;;-1:-1:-1;;;13170:40:0;;;;;;12110:26;;;;;;;;;;-1:-1:-1;12110:26:0;;;;;;;;12594:36;;;;;;;;;;;;;;;;12145:50;;;;;;;;;;-1:-1:-1;12145:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13865:87;;;;;;;;;;-1:-1:-1;13865:87:0;;;;-1:-1:-1;;;;;13865:87:0;;;12978:64;;;;;;;;;;;;;;;;15391:119;;;;;;;;;;-1:-1:-1;15391:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15484:18:0;15457:7;15484:18;;;:9;:18;;;;;;;15391:119;3254:230;;;;;;;;;;;;;:::i;:::-;;24892:128;;;;;;;;;;;;;:::i;12911:59::-;;;;;;;;;;;;;;;;12714:33;;;;;;;;;;;;;;;;13313:41;;;;;;;;;;-1:-1:-1;13313:41:0;;;;-1:-1:-1;;;13313:41:0;;;;;;12508:36;;;;;;;;;;;;;;;;12319:48;;;;;;;;;;-1:-1:-1;12319:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3029:79;;;;;;;;;;-1:-1:-1;3067:7:0;3094:6;-1:-1:-1;;;;;3094:6:0;3029:79;;13959:86;;;;;;;;;;-1:-1:-1;13959:86:0;;;;-1:-1:-1;;;;;13959:86:0;;;15097:87;;;;;;;;;;;;;:::i;14052:32::-;;;;;;;;;;-1:-1:-1;14052:32:0;;;;-1:-1:-1;;;;;14052:32:0;;;24324:556;;;;;;;;;;-1:-1:-1;24324:556:0;;;;;:::i;:::-;;:::i;17262:184::-;;;;;;;;;;-1:-1:-1;17262:184:0;;;;;:::i;:::-;;:::i;16173:269::-;;;;;;;;;;-1:-1:-1;16173:269:0;;;;;:::i;:::-;;:::i;12826:67::-;;;;;;;;;;;;;;;;13101:26;;;;;;;;;;-1:-1:-1;13101:26:0;;;;-1:-1:-1;;;;;13101:26:0;;;17491:167;;;;;;;;;;-1:-1:-1;17491:167:0;;;;;:::i;:::-;;:::i;12418:35::-;;;;;;;;;;;;;;;;12551:36;;;;;;;;;;;;;;;;12260:52;;;;;;;;;;-1:-1:-1;12260:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13217:45;;;;;;;;;;-1:-1:-1;13217:45:0;;;;-1:-1:-1;;;13217:45:0;;;;;;12376:35;;;;;;;;;;;;;;;;15518:143;;;;;;;;;;-1:-1:-1;15518:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15626:18:0;;;15599:7;15626:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15518:143;23431:207;;;;;;;;;;-1:-1:-1;23431:207:0;;;;;:::i;:::-;;:::i;12675:32::-;;;;;;;;;;;;;;;;3492:244;;;;;;;;;;-1:-1:-1;3492:244:0;;;;;:::i;:::-;;:::i;12639:27::-;;;;;;;;;;;;;;;;13271:35;;;;;;;;;;-1:-1:-1;13271:35:0;;;;-1:-1:-1;;;13271:35:0;;;;;;22164:728;;;:::i;15006:83::-;15043:13;15076:5;15069:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15006:83;:::o;16450:161::-;16525:4;16542:39;335:10;16565:7;16574:6;16542:8;:39::i;:::-;-1:-1:-1;16599:4:0;16450:161;;;;;:::o;17666:313::-;17764:4;17781:36;17791:6;17799:9;17810:6;17781:9;:36::i;:::-;-1:-1:-1;17828:121:0;17837:6;335:10;17859:89;17897:6;17859:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17859:19:0;;;;;;:11;:19;;;;;;;;335:10;17859:33;;;;;;;;;;:37;:89::i;:::-;17828:8;:121::i;:::-;-1:-1:-1;17967:4:0;17666:313;;;;;;:::o;16964:156::-;-1:-1:-1;;;;;17099:11:0;15484:18;17017:7;15484:18;;;:9;:18;;;;;;17044:68;;:40;17061:22;17071:11;-1:-1:-1;;;;;15484:18:0;15457:7;15484:18;;;:9;:18;;;;;;;15391:119;17061:22;17044:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;17037:75;;16964:156;:::o;15669:218::-;335:10;15757:4;15806:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15806:34:0;;;;;;;;;;15757:4;;15774:83;;15797:7;;15806:50;;15845:10;15806:38;:50::i;3254:230::-;3163:6;;-1:-1:-1;;;;;3163:6:0;335:10;3163:22;3155:67;;;;-1:-1:-1;;;3155:67:0;;;;;;;:::i;:::-;;;;;;;;;3345:6:::1;::::0;;3324:81:::1;::::0;3361:42:::1;::::0;-1:-1:-1;;;;;3345:6:0;;::::1;::::0;3324:81:::1;::::0;::::1;3416:6;:60:::0;;-1:-1:-1;;;;;;3416:60:0::1;3433:42;3416:60;::::0;;3254:230::o;24892:128::-;3163:6;;-1:-1:-1;;;;;3163:6:0;335:10;3163:22;3155:67;;;;-1:-1:-1;;;3155:67:0;;;;;;;:::i;:::-;24958:12:::1;::::0;24943::::1;:27:::0;;;24981:16:::1;:31:::0;24892:128::o;15097:87::-;15136:13;15169:7;15162:14;;;;;:::i;24324:556::-;24420:16;;;24434:1;24420:16;;;;;;;;24396:21;;24420:16;;;;;;;;-1:-1:-1;;24457:15:0;;:22;;;-1:-1:-1;;;24457:22:0;;;;24396:40;;-1:-1:-1;;;;;;24457:15:0;;;;:20;;-1:-1:-1;24457:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24447:4;24452:1;24447:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24447:32:0;;;-1:-1:-1;;;;;24447:32:0;;;;;24508:4;24490;24495:1;24490:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24490:23:0;;;-1:-1:-1;;;;;24490:23:0;;;;;24524:12;24546:4;24551:1;24546:7;;;;;;;;:::i;:::-;;;;;;;;;;;;24590:10;24572:29;;;;:17;:29;;;;;;;;24546:7;;-1:-1:-1;24572:29:0;;24567:306;;24618:15;;:195;;-1:-1:-1;;;24618:195:0;;-1:-1:-1;;;;;24618:15:0;;;;:66;;24692:6;;24618:195;;:15;;24739:4;;24762:2;;24783:15;;24618:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24567:306;;;24832:5;-1:-1:-1;;;;;24832:18:0;;24851:2;24855:4;24860:1;24855:7;;;;;;;;:::i;:::-;;;;;;;;;;;24832:39;;-1:-1:-1;;;;;;24832:39:0;;;;;;;-1:-1:-1;;;;;6049:15:1;;;24832:39:0;;;6031:34:1;6101:15;;6081:18;;;6074:43;6133:18;;;6126:34;;;5966:18;;24832:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24567:306;24385:495;;24324:556;;:::o;17262:184::-;17351:9;17326:21;:34;;17318:71;;;;-1:-1:-1;;;17318:71:0;;6655:2:1;17318:71:0;;;6637:21:1;6694:2;6674:18;;;6667:30;6733:26;6713:18;;;6706:54;6777:18;;17318:71:0;6453:348:1;17318:71:0;17408:9;;17400:38;;-1:-1:-1;;;;;17408:9:0;;;;17400:38;;;;;17428:9;;17408;17400:38;17408:9;17400:38;17428:9;17408;17400:38;;;;;;;;;;;;;;;;;;;;;17262:184;:::o;16173:269::-;16266:4;16283:129;335:10;16306:7;16315:96;16354:15;16315:96;;;;;;;;;;;;;;;;;335:10;16315:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16315:34:0;;;;;;;;;;;;:38;:96::i;17491:167::-;17569:4;17586:42;335:10;17610:9;17621:6;17586:9;:42::i;23431:207::-;23563:3;23552:8;:14;23504:4;23545;23577:31;23585:7;23545:4;23601:6;23577:7;:31::i;3492:244::-;3163:6;;-1:-1:-1;;;;;3163:6:0;335:10;3163:22;3155:67;;;;-1:-1:-1;;;3155:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3581:22:0;::::1;3573:73;;;::::0;-1:-1:-1;;;3573:73:0;;7008:2:1;3573:73:0::1;::::0;::::1;6990:21:1::0;7047:2;7027:18;;;7020:30;7086:34;7066:18;;;7059:62;-1:-1:-1;;;7137:18:1;;;7130:36;7183:19;;3573:73:0::1;6806:402:1::0;3573:73:0::1;3683:6;::::0;;3662:38:::1;::::0;-1:-1:-1;;;;;3662:38:0;;::::1;::::0;3683:6;::::1;::::0;3662:38:::1;::::0;::::1;3711:6;:17:::0;;-1:-1:-1;;;;;;3711:17:0::1;-1:-1:-1::0;;;;;3711:17:0;;;::::1;::::0;;;::::1;::::0;;3492:244::o;22164:728::-;3163:6;;-1:-1:-1;;;;;3163:6:0;335:10;3163:22;3155:67;;;;-1:-1:-1;;;3155:67:0;;;;;;;:::i;:::-;22220:35:::1;22277:42;22220:100;;22364:16;-1:-1:-1::0;;;;;22364:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22346:56:0::1;;22411:4;22418:16;-1:-1:-1::0;;;;;22418:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22346:96;::::0;-1:-1:-1;;;;;;22346:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7443:15:1;;;22346:96:0::1;::::0;::::1;7425:34:1::0;7495:15;;7475:18;;;7468:43;7360:18;;22346:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22332:11;:110:::0;;-1:-1:-1;;;;;;22332:110:0;;::::1;-1:-1:-1::0;;;;;22332:110:0;;::::1;;::::0;;22453:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;22518:4:::1;-1:-1:-1::0;22498:26:0;;;:11:::1;:26;::::0;;;;;;;:52;;;;;;;;;-1:-1:-1;;22498:66:0;;22588:11;;;::::1;22575:25:::0;;:12:::1;:25:::0;;;;;:32;;-1:-1:-1;;22575:32:0;;::::1;-1:-1:-1::0;22575:32:0;;::::1;::::0;;;22638:11;;;::::1;22618:32:::0;;:19:::1;:32:::0;;;;;:39;;;::::1;::::0;::::1;::::0;;22684:11;;;::::1;22668:28:::0;;:15:::1;:28:::0;;;;;:35;;;;::::1;;::::0;;;22714:17:::1;:39:::0;;22742:10:::1;22714:39:::0;::::1;::::0;::::1;::::0;;22764:15;;15484:18;;;:9;:18;;;;;;;;22764:120;;-1:-1:-1;;;22764:120:0;;:15;::::1;::::0;:31:::1;::::0;22803:9:::1;::::0;22764:120:::1;::::0;22518:4;;15484:18;-1:-1:-1;;;22868:15:0::1;::::0;22764:120:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16619:337::-:0;-1:-1:-1;;;;;16712:19:0;;16704:68;;;;-1:-1:-1;;;16704:68:0;;8647:2:1;16704:68:0;;;8629:21:1;8686:2;8666:18;;;8659:30;8725:34;8705:18;;;8698:62;-1:-1:-1;;;8776:18:1;;;8769:34;8820:19;;16704:68:0;8445:400:1;16704:68:0;-1:-1:-1;;;;;16791:21:0;;16783:68;;;;-1:-1:-1;;;16783:68:0;;9052:2:1;16783:68:0;;;9034:21:1;9091:2;9071:18;;;9064:30;9130:34;9110:18;;;9103:62;-1:-1:-1;;;9181:18:1;;;9174:32;9223:19;;16783:68:0;8850:398:1;16783:68:0;-1:-1:-1;;;;;16864:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16916:32;;1804:25:1;;;16916:32:0;;1777:18:1;16916:32:0;;;;;;;16619:337;;;:::o;17987:1749::-;18074:4;-1:-1:-1;;;;;18099:20:0;;18091:70;;;;-1:-1:-1;;;18091:70:0;;9455:2:1;18091:70:0;;;9437:21:1;9494:2;9474:18;;;9467:30;9533:34;9513:18;;;9506:62;-1:-1:-1;;;9584:18:1;;;9577:35;9629:19;;18091:70:0;9253:401:1;18091:70:0;-1:-1:-1;;;;;18180:23:0;;18172:71;;;;-1:-1:-1;;;18172:71:0;;9861:2:1;18172:71:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:34;9919:18;;;9912:62;-1:-1:-1;;;9990:18:1;;;9983:33;10033:19;;18172:71:0;9659:399:1;18172:71:0;-1:-1:-1;;;;;18259:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;18288:28:0;;;;;;:17;:28;;;;;;;;18259:57;18256:1463;;;18341:41;18356:6;18364:9;18375:6;18341:14;:41::i;:::-;18334:48;;;;18256:1463;-1:-1:-1;;;;;18422:23:0;;;;;;:15;:23;;;;;;;;18421:24;:55;;;;-1:-1:-1;;;;;;18450:26:0;;;;;;:15;:26;;;;;;;;18449:27;18421:55;:81;;;;-1:-1:-1;18480:22:0;;-1:-1:-1;;;18480:22:0;;;;18421:81;18418:196;;;18541:12;;18531:6;:22;;18523:75;;;;-1:-1:-1;;;18523:75:0;;10265:2:1;18523:75:0;;;10247:21:1;10304:2;10284:18;;;10277:30;10343:34;10323:18;;;10316:62;-1:-1:-1;;;10394:18:1;;;10387:38;10442:19;;18523:75:0;10063:404:1;18523:75:0;18679:4;18630:28;15484:18;;;:9;:18;;;;;;18755:20;;18731:44;;;;;;;18796;;-1:-1:-1;18824:16:0;;-1:-1:-1;;;18824:16:0;;;;18823:17;18796:44;:69;;;;-1:-1:-1;;;;;;18845:20:0;;;;;;:12;:20;;;;;;;;18844:21;18796:69;:94;;;;-1:-1:-1;18869:21:0;;-1:-1:-1;;;18869:21:0;;;;18796:94;18792:302;;;18928:25;;-1:-1:-1;;;18928:25:0;;;;18925:94;;;18999:20;;18976:43;;18925:94;19038:36;19053:20;19038:14;:36::i;:::-;19130:53;;;;;;;;;;;-1:-1:-1;;;19130:53:0;;;;;;;;-1:-1:-1;;;;;19130:17:0;;-1:-1:-1;19130:17:0;;;:9;:17;;;;;;;;:53;;19152:6;;19130:21;:53::i;:::-;-1:-1:-1;;;;;19110:17:0;;;;;;:9;:17;;;;;;;;:73;;;;19223:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;19252:28:0;;;;;;:17;:28;;;;;;;;19223:57;19222:105;;19293:34;19301:6;19309:9;19320:6;19293:7;:34::i;:::-;19222:105;;;19284:6;19222:105;19347:16;;19200:127;;-1:-1:-1;;;;19347:16:0;;;;:51;;;;-1:-1:-1;;;;;;19368:30:0;;;;;;:19;:30;;;;;;;;19367:31;19347:51;19344:197;;;19468:16;;19427:37;19452:11;19427:20;19437:9;-1:-1:-1;;;;;15484:18:0;15457:7;15484:18;;;:9;:18;;;;;;;15391:119;19427:20;:24;;:37::i;:::-;:57;;19419:106;;;;-1:-1:-1;;;19419:106:0;;10674:2:1;19419:106:0;;;10656:21:1;10713:2;10693:18;;;10686:30;10752:34;10732:18;;;10725:62;-1:-1:-1;;;10803:18:1;;;10796:35;10848:19;;19419:106:0;10472:401:1;19419:106:0;-1:-1:-1;;;;;19580:20:0;;;;;;:9;:20;;;;;;:37;;19605:11;19580:24;:37::i;:::-;-1:-1:-1;;;;;19557:20:0;;;;;;;:9;:20;;;;;;;:60;;;;19639:40;;;;;;;;;;19667:11;1804:25:1;;1792:2;1777:18;;1658:177;19639:40:0;;;;;;;;19703:4;19696:11;;;;;;;1514:192;1600:7;1636:12;1628:6;;;;1620:29;;;;-1:-1:-1;;;1620:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1660:9:0;1672:5;1676:1;1672;:5;:::i;:::-;1660:17;1514:192;-1:-1:-1;;;;;1514:192:0:o;1370:136::-;1428:7;1455:43;1459:1;1462;1455:43;;;;;;;;;;;;;;;;;:3;:43::i;1181:181::-;1239:7;;1271:5;1275:1;1271;:5;:::i;:::-;1259:17;;1300:1;1295;:6;;1287:46;;;;-1:-1:-1;;;1287:46:0;;11475:2:1;1287:46:0;;;11457:21:1;11514:2;11494:18;;;11487:30;11553:29;11533:18;;;11526:57;11600:18;;1287:46:0;11273:351:1;15895:270:0;-1:-1:-1;;;;;16001:19:0;;15993:28;;;;;;-1:-1:-1;;;;;16040:21:0;;16032:30;;;;;20364:330;20494:53;;;;;;;;;;;-1:-1:-1;;;20494:53:0;;;;;;;;-1:-1:-1;;;;;20494:17:0;;20457:4;20494:17;;;:9;:17;;;;;;;:53;;20516:6;;20494:21;:53::i;:::-;-1:-1:-1;;;;;20474:17:0;;;;;;;:9;:17;;;;;;:73;;;;20581:20;;;;;;;:32;;20606:6;20581:24;:32::i;:::-;-1:-1:-1;;;;;20558:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20629:35;;;;;;;;;;20657:6;1804:25:1;;1792:2;1777:18;;1658:177;20629:35:0;;;;;;;;-1:-1:-1;20682:4:0;20364:330;;;;;:::o;20702:1450::-;13779:16;:23;;-1:-1:-1;;;;13779:23:0;-1:-1:-1;;;13779:23:0;;;20818:18:::1;::::0;20796:17:::1;::::0;13779:23;;20796:41:::1;::::0;:17;:21:::1;:41::i;:::-;20774:63;;20850:22;20875:39;20896:17;;20875:16;;:20;;:39;;;;:::i;:::-;20850:64;;20925:22;20950:39;20971:17;;20950:16;;:20;;:39;;;;:::i;:::-;20925:64:::0;-1:-1:-1;21088:18:0::1;21109:51;21158:1;21109:44;21141:11:::0;21109:44;:7;21121:14;21109:11:::1;:27::i;:::-;:31:::0;::::1;:44::i;:51::-;21088:72:::0;-1:-1:-1;21171:20:0::1;21194:23;:7:::0;21088:72;21194:11:::1;:23::i;:::-;21171:46:::0;-1:-1:-1;21256:21:0::1;21288:30;21171:46:::0;21288:16:::1;:30::i;:::-;21329:23;21356:41;:21;21382:14:::0;21356:25:::1;:41::i;:::-;21329:68:::0;-1:-1:-1;21410:19:0::1;21432:38;21448:21;:14:::0;21467:1:::1;21448:18;:21::i;:::-;21432:11:::0;;:15:::1;:38::i;:::-;21410:60:::0;-1:-1:-1;21483:26:0::1;21512:59;21569:1;21512:52;21410:60:::0;21512:52;:15;21532:14;21512:19:::1;:35::i;:59::-;21483:88;;21582:26;21611:66;21665:11;21611:49;21631:28;21650:8;;21631:14;:18;;:28;;;;:::i;:::-;21611:15:::0;;:19:::1;:49::i;:66::-;21582:95:::0;-1:-1:-1;21688:26:0::1;21717:63;21582:95:::0;21717:39:::1;:15:::0;21737:18;21717:19:::1;:39::i;:63::-;21688:92:::0;-1:-1:-1;21796:22:0;;21793:102:::1;;21843:10;::::0;21835:48:::1;::::0;-1:-1:-1;;;;;21843:10:0;;::::1;::::0;21835:48;::::1;;;::::0;21864:18;;21843:10:::1;21835:48:::0;21843:10;21835:48;21864:18;21843:10;21835:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21793:102;21910:22:::0;;21907:101:::1;;21957:9;::::0;21949:47:::1;::::0;-1:-1:-1;;;;;21957:9:0;;::::1;::::0;21949:47;::::1;;;::::0;21977:18;;21957:9:::1;21949:47:::0;21957:9;21949:47;21977:18;21957:9;21949:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21907:101;22053:1;22032:18;:22;:40;;;;;22071:1;22058:10;:14;22032:40;22029:116;;;22089:44;22102:10;22114:18;22089:12;:44::i;:::-;-1:-1:-1::0;;13825:16:0;:24;;-1:-1:-1;;;;13825:24:0;;;-1:-1:-1;;;;;;;;;;20702:1450:0:o;19744:612::-;-1:-1:-1;;;;;19895:20:0;;19830:7;19895:20;;;:12;:20;;;;;;19830:7;;19895:20;;19892:223;;;19944:38;19978:3;19944:29;19955:17;;19944:6;:10;;:29;;;;:::i;:38::-;19932:50;;19892:223;;;-1:-1:-1;;;;;20012:23:0;;;;;;:12;:23;;;;;;;;20009:106;;;20064:39;20099:3;20064:30;20075:18;;20064:6;:10;;:30;;;;:::i;:39::-;20052:51;;20009:106;20138:13;;20135:173;;20213:4;20195:24;;;;:9;:24;;;;;;:39;;20224:9;20195:28;:39::i;:::-;20186:4;20168:24;;;;:9;:24;;;;;;;:66;;;;20254:42;;-1:-1:-1;;;;;20254:42:0;;;;;;;20286:9;1804:25:1;;1792:2;1777:18;;1658:177;20254:42:0;;;;;;;;20135:173;20327:21;:6;20338:9;20327:10;:21::i;1714:250::-;1772:7;1796:1;1801;1796:6;1792:47;;-1:-1:-1;1826:1:0;1819:8;;1792:47;1851:9;1863:5;1867:1;1863;:5;:::i;:::-;1851:17;-1:-1:-1;1896:1:0;1887:5;1891:1;1851:17;1887:5;:::i;:::-;:10;1879:56;;;;-1:-1:-1;;;1879:56:0;;12226:2:1;1879:56:0;;;12208:21:1;12265:2;12245:18;;;12238:30;12304:34;12284:18;;;12277:62;-1:-1:-1;;;12355:18:1;;;12348:31;12396:19;;1879:56:0;12024:397:1;1972:132:0;2030:7;2057:39;2061:1;2064;2057:39;;;;;;;;;;;;;;;;;:3;:39::i;23650:666::-;23800:16;;;23814:1;23800:16;;;;;;;;23776:21;;23800:16;;;;;;;;;;-1:-1:-1;23800:16:0;23776:40;;23845:4;23827;23832:1;23827:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23827:23:0;;;:7;;;;;;;;;;:23;;;;23871:15;;:22;;;-1:-1:-1;;;23871:22:0;;;;:15;;;;;:20;;:22;;;;;23827:7;;23871:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23861:4;23866:1;23861:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23861:32:0;;;:7;;;;;;;;;:32;23938:15;;23906:62;;23923:4;;23938:15;23956:11;23906:8;:62::i;:::-;24007:15;;:240;;-1:-1:-1;;;24007:240:0;;-1:-1:-1;;;;;24007:15:0;;;;:66;;:240;;24088:11;;24007:15;;24158:4;;24185;;24221:15;;24007:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24273:35;24290:11;24303:4;24273:35;;;;;;;:::i;:::-;;;;;;;;23705:611;23650:666;:::o;22900:523::-;23080:15;;23048:62;;23065:4;;-1:-1:-1;;;;;23080:15:0;23098:11;23048:8;:62::i;:::-;23153:15;;23357:17;;23153:262;;-1:-1:-1;;;23153:262:0;;-1:-1:-1;;;;;23153:15:0;;;;:31;;23192:9;;23153:262;;23225:4;;23245:11;;23153:15;;;;23357:17;;23389:15;;23153:262;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2112:278::-;2198:7;2233:12;2226:5;2218:28;;;;-1:-1:-1;;;2218:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2257:9:0;2269:5;2273:1;2269;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1840:456::-;1917:6;1925;1933;1986:2;1974:9;1965:7;1961:23;1957:32;1954:52;;;2002:1;1999;1992:12;1954:52;2041:9;2028:23;2060:31;2085:5;2060:31;:::i;:::-;2110:5;-1:-1:-1;2167:2:1;2152:18;;2139:32;2180:33;2139:32;2180:33;:::i;:::-;1840:456;;2232:7;;-1:-1:-1;;;2286:2:1;2271:18;;;;2258:32;;1840:456::o;2490:247::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;2966:180::-;3025:6;3078:2;3066:9;3057:7;3053:23;3049:32;3046:52;;;3094:1;3091;3084:12;3046:52;-1:-1:-1;3117:23:1;;2966:180;-1:-1:-1;2966:180:1:o;3151:388::-;3219:6;3227;3280:2;3268:9;3259:7;3255:23;3251:32;3248:52;;;3296:1;3293;3286:12;3248:52;3335:9;3322:23;3354:31;3379:5;3354:31;:::i;:::-;3404:5;-1:-1:-1;3461:2:1;3446:18;;3433:32;3474:33;3433:32;3474:33;:::i;:::-;3526:7;3516:17;;;3151:388;;;;;:::o;3544:380::-;3623:1;3619:12;;;;3666;;;3687:61;;3741:4;3733:6;3729:17;3719:27;;3687:61;3794:2;3786:6;3783:14;3763:18;3760:38;3757:161;;3840:10;3835:3;3831:20;3828:1;3821:31;3875:4;3872:1;3865:15;3903:4;3900:1;3893:15;3757:161;;3544:380;;;:::o;3929:356::-;4131:2;4113:21;;;4150:18;;;4143:30;4209:34;4204:2;4189:18;;4182:62;4276:2;4261:18;;3929:356::o;4422:251::-;4492:6;4545:2;4533:9;4524:7;4520:23;4516:32;4513:52;;;4561:1;4558;4551:12;4513:52;4593:9;4587:16;4612:31;4637:5;4612:31;:::i;4678:127::-;4739:10;4734:3;4730:20;4727:1;4720:31;4770:4;4767:1;4760:15;4794:4;4791:1;4784:15;4810:461;4863:3;4901:5;4895:12;4928:6;4923:3;4916:19;4954:4;4983:2;4978:3;4974:12;4967:19;;5020:2;5013:5;5009:14;5041:1;5051:195;5065:6;5062:1;5059:13;5051:195;;;5130:13;;-1:-1:-1;;;;;5126:39:1;5114:52;;5186:12;;;;5221:15;;;;5162:1;5080:9;5051:195;;;-1:-1:-1;5262:3:1;;4810:461;-1:-1:-1;;;;;4810:461:1:o;5276:510::-;5547:6;5536:9;5529:25;5590:3;5585:2;5574:9;5570:18;5563:31;5510:4;5611:57;5663:3;5652:9;5648:19;5640:6;5611:57;:::i;:::-;-1:-1:-1;;;;;5704:32:1;;;;5699:2;5684:18;;5677:60;-1:-1:-1;5768:2:1;5753:18;5746:34;5603:65;5276:510;-1:-1:-1;;5276:510:1:o;6171:277::-;6238:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:52;;;6307:1;6304;6297:12;6259:52;6339:9;6333:16;6392:5;6385:13;6378:21;6371:5;6368:32;6358:60;;6414:1;6411;6404:12;7522:607;-1:-1:-1;;;;;7881:15:1;;;7863:34;;7928:2;7913:18;;7906:34;;;;7971:2;7956:18;;7949:34;;;;8014:2;7999:18;;7992:34;;;;8063:15;;;8057:3;8042:19;;8035:44;7843:3;8095:19;;8088:35;;;;7812:3;7797:19;;7522:607::o;8134:306::-;8222:6;8230;8238;8291:2;8279:9;8270:7;8266:23;8262:32;8259:52;;;8307:1;8304;8297:12;8259:52;8336:9;8330:16;8320:26;;8386:2;8375:9;8371:18;8365:25;8355:35;;8430:2;8419:9;8415:18;8409:25;8399:35;;8134:306;;;;;:::o;10878:127::-;10939:10;10934:3;10930:20;10927:1;10920:31;10970:4;10967:1;10960:15;10994:4;10991:1;10984:15;11010:128;11077:9;;;11098:11;;;11095:37;;;11112:18;;:::i;11143:125::-;11208:9;;;11229:10;;;11226:36;;;11242:18;;:::i;11629:168::-;11702:9;;;11733;;11750:15;;;11744:22;;11730:37;11720:71;;11771:18;;:::i;11802:217::-;11842:1;11868;11858:132;;11912:10;11907:3;11903:20;11900:1;11893:31;11947:4;11944:1;11937:15;11975:4;11972:1;11965:15;11858:132;-1:-1:-1;12004:9:1;;11802:217::o;12426:582::-;12725:6;12714:9;12707:25;12768:6;12763:2;12752:9;12748:18;12741:34;12811:3;12806:2;12795:9;12791:18;12784:31;12688:4;12832:57;12884:3;12873:9;12869:19;12861:6;12832:57;:::i;:::-;-1:-1:-1;;;;;12925:32:1;;;;12920:2;12905:18;;12898:60;-1:-1:-1;12989:3:1;12974:19;12967:35;12824:65;12426:582;-1:-1:-1;;;12426:582:1:o;13013:332::-;13220:6;13209:9;13202:25;13263:2;13258;13247:9;13243:18;13236:30;13183:4;13283:56;13335:2;13324:9;13320:18;13312:6;13283:56;:::i;:::-;13275:64;13013:332;-1:-1:-1;;;;13013:332:1:o

Swarm Source

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