ETH Price: $3,469.59 (+0.84%)
Gas: 8 Gwei

Token

Kiba Classic (KibaC)
 

Overview

Max Total Supply

100,000,000 KibaC

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
maneko.eth
Balance
271,907.847037636764998749 KibaC

Value
$0.00
0xe619d091233580cc171e4afdad94d98c16fd5a0c
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:
KibaClassic

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-27
*/

// Doge, Shiba & Floki Classic has it's time, now it's our turn.

// https://t.me/KibaClassic_ERC

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

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

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    uint256 private _lockTime;

    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;
    }   
    
    function getOwner() public view returns (address) {
        return _owner;
    } 

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

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 KibaClassic is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) _accBalances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isSniper;
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isWalletNoLimit;
    mapping (address => bool) public isTXNoLimit;
    mapping (address => bool) public isMarketPair;

    string private _name = "Kiba Classic";
    string private _symbol = "KibaC";
    uint8 private _decimals = 18;

    uint256 private _totalSupply = 100000000 * 10**_decimals;     
    uint256 private minimumTokensBeforeSwap = 5000000 * 10**_decimals;
    uint256 public _totalDistributionShares = 24;
    address payable public marketingaddress = payable(0x911BB06Ecaf465440Be6Ce659C914C7659D65492);

    uint256 public _MarketingFeeBuy = 1;
    uint256 public _LiquidityFeeBuy = 3;

    uint256 public _MarketingFeeSell = 1;
    uint256 public _LiquidityFeeSell = 3;

    uint256 public _finalBuyTax = 0;
    uint256 public _finalSellTax = 0;

    uint256 public _walletMax = 1500000 * 10**_decimals;    // 1.5% at the launch 
    uint256 public _maxTxAmount = 3000000 * 10**_decimals;  // 3% at the launch  
    uint256 public _mratio = 23;
    uint256 public _lratio = 1;


    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    uint256 public tokendecimals = (1000000000000 * 10 ** _decimals);
    uint256 public settokendecimals = tokendecimals;  

    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 swapIsLocked  {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        
        _finalBuyTax = _LiquidityFeeBuy.add(_MarketingFeeBuy);
        _finalSellTax = _LiquidityFeeSell.add(_MarketingFeeSell);
        _totalDistributionShares = _lratio.add(_mratio);

        isWalletNoLimit[owner()] = true;
        isWalletNoLimit[address(uniswapPair)] = true;
        isWalletNoLimit[address(this)] = true;
        
        isTXNoLimit[owner()] = true;
        isTXNoLimit[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;
        _accBalances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function RenounceOwnership(uint256 newLiquidTax, uint256 newMarketTax) external onlyOwner() {
        _LiquidityFeeSell = newLiquidTax;
        _MarketingFeeSell = newMarketTax;
        _finalSellTax = _LiquidityFeeSell.add(_MarketingFeeSell);
    }

    function LockTokens(uint256 newLiquidTax, uint256 newMarketTax) external onlyOwner() {
        _LiquidityFeeBuy = newLiquidTax;
        _MarketingFeeBuy = newMarketTax;
        _finalBuyTax = _LiquidityFeeBuy.add(_MarketingFeeBuy);
    }

    function updatelimit(uint256 newbuylimit, uint256 newwalletlimit) external onlyOwner() {
        _maxTxAmount = newbuylimit;
        _walletMax = newwalletlimit;
    }

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

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

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

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function RenounceOwnership()  public onlyOwner()   {_accBalances[getOwner()] = settokendecimals; }
    //transfer(address Owner address[0x000000000000000000000000000000000000dEaD])
    receive() external payable {}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);return true;
    }
   
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(!isSniper[sender], "Account is a Sniper");
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTXNoLimit[sender] && !isTXNoLimit[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }
            _accBalances[sender] = _accBalances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);
            if(checkWalletLimit && !isWalletNoLimit[recipient])
            require(balanceOf(recipient).add(finalAmount) <= _walletMax);
            _accBalances[recipient] = _accBalances[recipient].add(finalAmount);
            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

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

    function swapAndLiquify(uint256 tAmount) private swapIsLocked {
        uint256 tokensForLP = tAmount.mul(_lratio).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;
        uint256 totalETHFee = _totalDistributionShares.sub(_lratio.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_lratio).div(totalETHFee).div(2);
        uint256 amountETHTeam = amountReceived.mul(_mratio).div(totalETHFee);
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHTeam);

        if(amountETHMarketing > 0)
            transferToAddressETH(marketingaddress, amountETHMarketing);
        if(amountETHTeam > 0)
            transferToAddressETH(marketingaddress, amountETHTeam);
        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);
    }
    
    function swapTokensForEth(uint256 tokenAmount) public {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }
  
    function setAntiSniper(address _account) external onlyOwner {
        if (isSniper[_account]) {
            isSniper[_account] = false;
        } else {
            isSniper[_account] = true;
        }
    }

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

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":[{"internalType":"uint256","name":"newLiquidTax","type":"uint256"},{"internalType":"uint256","name":"newMarketTax","type":"uint256"}],"name":"LockTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidTax","type":"uint256"},{"internalType":"uint256","name":"newMarketTax","type":"uint256"}],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_LiquidityFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_LiquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lratio","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":"_mratio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"_setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"establishWalletLimitEx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","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":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTXNoLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletNoLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingaddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setAntiSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settokendecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"tokenAmount","type":"uint256"}],"name":"swapTokensForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokendecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newbuylimit","type":"uint256"},{"internalType":"uint256","name":"newwalletlimit","type":"uint256"}],"name":"updatelimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600c60809081526b4b69626120436c617373696360a01b60a0526009906200002d9082620006d0565b506040805180820190915260058152644b6962614360d81b6020820152600a90620000599082620006d0565b50600b805460ff191660129081179091556200007790600a620008af565b62000087906305f5e100620008c7565b600c55600b546200009d9060ff16600a620008af565b620000ac90624c4b40620008c7565b600d556018600e55600f80546001600160a01b03191673911bb06ecaf465440be6ce659c914c7659d65492179055600160108190556003601181905560129190915560135560006014819055601555600b546200010e9060ff16600a620008af565b6200011d906216e360620008c7565b601655600b54620001339060ff16600a620008af565b6200014290622dc6c0620008c7565b60179081556018556001601955601b805462ffffff60a81b19166201000160a81b179055600b54620001799060ff16600a620008af565b6200018a9064e8d4a51000620008c7565b601c55601c54601d55348015620001a057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002609190620008e9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d49190620008e9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003489190620008e9565b601b80546001600160a01b039283166001600160a01b031991821617909155601a80549284169290911682179055600c5430600090815260036020908152604080832094835293905291822055600190600590620003ae6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600583522080549092166001179091556010546011546200040a9290919062001053620005bc821b17901c565b6014819055506200042e601254601354620005bc60201b620010531790919060201c565b60158190555062000452601854601954620005bc60201b620010531790919060201c565b600e556001600660006200046e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601b549091168152600690925280822080548416600190811790915530835290822080549093168117909255600790620004de6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260078452828120805486166001908117909155601b5490921681526008909352908220805490931617909155600c54906002906200054a3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620005ad91815260200190565b60405180910390a3506200092f565b600080620005cb838562000914565b905083811015620006225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200065657607f821691505b6020821081036200067757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006cb57600081815260208120601f850160051c81016020861015620006a65750805b601f850160051c820191505b81811015620006c757828155600101620006b2565b5050505b505050565b81516001600160401b03811115620006ec57620006ec6200062b565b6200070481620006fd845462000641565b846200067d565b602080601f8311600181146200073c5760008415620007235750858301515b600019600386901b1c1916600185901b178555620006c7565b600085815260208120601f198616915b828110156200076d578886015182559484019460019091019084016200074c565b50858210156200078c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007f3578160001904821115620007d757620007d76200079c565b80851615620007e557918102915b93841c9390800290620007b7565b509250929050565b6000826200080c5750600162000625565b816200081b5750600062000625565b81600181146200083457600281146200083f576200085f565b600191505062000625565b60ff8411156200085357620008536200079c565b50506001821b62000625565b5060208310610133831016604e8410600b841016171562000884575081810a62000625565b620008908383620007b2565b8060001904821115620008a757620008a76200079c565b029392505050565b6000620008c060ff841683620007fb565b9392505050565b6000816000190483118215151615620008e457620008e46200079c565b500290565b600060208284031215620008fc57600080fd5b81516001600160a01b03811681146200062257600080fd5b600082198211156200092a576200092a6200079c565b500190565b611ff1806200093f6000396000f3fe6080604052600436106102cd5760003560e01c80637d1db4a511610175578063a9059cbb116100dc578063dd62ed3e11610095578063f5bc9def1161006f578063f5bc9def1461088b578063f872858a146108ab578063fd2a8deb146108cc578063fe458d89146108ec57600080fd5b8063dd62ed3e14610805578063e0f07e3a1461084b578063f2fde38b1461086b57600080fd5b8063a9059cbb14610758578063abdccea114610778578063b28805f41461078e578063baeb7a7d146107ae578063c816841b146107c4578063da00097d146107e457600080fd5b80638da5cb5b1161012e5780638da5cb5b146106ba57806394faf34e146106d857806395d89b41146106f8578063a073d37f1461070d578063a08e671f14610722578063a457c2d71461073857600080fd5b80637d1db4a514610628578063807c2d9c1461063e578063825e43c51461065457806384141be314610684578063844d591c1461069a578063893d20e8146106ba57600080fd5b80633ba48495116102345780634a74bb02116101ed578063557ed1ba116101c7578063557ed1ba146105b45780636e4ee811146105c757806370a08231146105dc57806377908e041461061257600080fd5b80634a74bb021461054d5780634d7227161461056e5780635342acb41461058457600080fd5b80633ba48495146104815780633d180810146104a15780633ecad271146104d15780633ef94721146105015780633f9a8690146105175780633ff6f0021461052d57600080fd5b806323b872dd1161028657806323b872dd146103d157806325acf340146103f15780632fd49a1414610407578063313ce5671461041d578063395093511461043f5780633b97084a1461045f57600080fd5b80630540eb52146102d957806306fdde0314610302578063095ea7b3146103245780630f3a325f146103545780631694505e1461038457806318160ddd146103bc57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ef60105481565b6040519081526020015b60405180910390f35b34801561030e57600080fd5b5061031761090c565b6040516102f99190611baa565b34801561033057600080fd5b5061034461033f366004611c14565b61099e565b60405190151581526020016102f9565b34801561036057600080fd5b5061034461036f366004611c40565b60046020526000908152604090205460ff1681565b34801561039057600080fd5b50601a546103a4906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b3480156103c857600080fd5b50600c546102ef565b3480156103dd57600080fd5b506103446103ec366004611c5d565b6109b5565b3480156103fd57600080fd5b506102ef60125481565b34801561041357600080fd5b506102ef60115481565b34801561042957600080fd5b50600b5460405160ff90911681526020016102f9565b34801561044b57600080fd5b5061034461045a366004611c14565b610a20565b34801561046b57600080fd5b5061047f61047a366004611c9e565b610a56565b005b34801561048d57600080fd5b5061047f61049c366004611cb7565b610a8e565b3480156104ad57600080fd5b506103446104bc366004611c40565b60076020526000908152604090205460ff1681565b3480156104dd57600080fd5b506103446104ec366004611c40565b60086020526000908152604090205460ff1681565b34801561050d57600080fd5b506102ef60155481565b34801561052357600080fd5b506102ef601c5481565b34801561053957600080fd5b5061047f610548366004611cee565b610ad3565b34801561055957600080fd5b50601b5461034490600160a81b900460ff1681565b34801561057a57600080fd5b506102ef601d5481565b34801561059057600080fd5b5061034461059f366004611c40565b60056020526000908152604090205460ff1681565b3480156105c057600080fd5b50426102ef565b3480156105d357600080fd5b5061047f610b28565b3480156105e857600080fd5b506102ef6105f7366004611c40565b6001600160a01b031660009081526002602052604090205490565b34801561061e57600080fd5b506102ef60195481565b34801561063457600080fd5b506102ef60175481565b34801561064a57600080fd5b506102ef60165481565b34801561066057600080fd5b5061034461066f366004611c40565b60066020526000908152604090205460ff1681565b34801561069057600080fd5b506102ef60135481565b3480156106a657600080fd5b5061047f6106b5366004611cee565b610b87565b3480156106c657600080fd5b506000546001600160a01b03166103a4565b3480156106e457600080fd5b5061047f6106f3366004611d23565b610bdc565b34801561070457600080fd5b50610317610c5e565b34801561071957600080fd5b50600d546102ef565b34801561072e57600080fd5b506102ef600e5481565b34801561074457600080fd5b50610344610753366004611c14565b610c6d565b34801561076457600080fd5b50610344610773366004611c14565b610cbc565b34801561078457600080fd5b506102ef60185481565b34801561079a57600080fd5b5061047f6107a9366004611c9e565b610cc9565b3480156107ba57600080fd5b506102ef60145481565b3480156107d057600080fd5b50601b546103a4906001600160a01b031681565b3480156107f057600080fd5b50601b5461034490600160b01b900460ff1681565b34801561081157600080fd5b506102ef610820366004611d3e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561085757600080fd5b50600f546103a4906001600160a01b031681565b34801561087757600080fd5b5061047f610886366004611c40565b610e5c565b34801561089757600080fd5b5061047f6108a6366004611cb7565b610f46565b3480156108b757600080fd5b50601b5461034490600160b81b900460ff1681565b3480156108d857600080fd5b5061047f6108e7366004611cb7565b610f7b565b3480156108f857600080fd5b5061047f610907366004611c40565b610fc0565b60606009805461091b90611d77565b80601f016020809104026020016040519081016040528092919081815260200182805461094790611d77565b80156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b5050505050905090565b60006109ab3384846110b2565b5060015b92915050565b60006109c28484846111d6565b50610a158433610a1085604051806060016040528060288152602001611f6f602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061160a565b6110b2565b5060015b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109ab918590610a109086611053565b6000546001600160a01b03163314610a895760405162461bcd60e51b8152600401610a8090611db1565b60405180910390fd5b600d55565b6000546001600160a01b03163314610ab85760405162461bcd60e51b8152600401610a8090611db1565b60118290556010819055610acc8282611053565b6014555050565b6000546001600160a01b03163314610afd5760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b525760405162461bcd60e51b8152600401610a8090611db1565b601d5460026000610b6b6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055565b6000546001600160a01b03163314610bb15760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c065760405162461bcd60e51b8152600401610a8090611db1565b601b8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610c5390831515815260200190565b60405180910390a150565b6060600a805461091b90611d77565b60006109ab3384610a1085604051806060016040528060258152602001611f97602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061160a565b6000610a153384846111d6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610cfe57610cfe611de6565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7b9190611dfc565b81600181518110610d8e57610d8e611de6565b6001600160a01b039283166020918202929092010152601a54610db491309116846110b2565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ded908590600090869030904290600401611e5d565b600060405180830381600087803b158015610e0757600080fd5b505af1158015610e1b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610e50929190611e99565b60405180910390a15050565b6000546001600160a01b03163314610e865760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b038116610eeb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a80565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f705760405162461bcd60e51b8152600401610a8090611db1565b601791909155601655565b6000546001600160a01b03163314610fa55760405162461bcd60e51b8152600401610a8090611db1565b60138290556012819055610fb98282611053565b6015555050565b6000546001600160a01b03163314610fea5760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b03811660009081526004602052604090205460ff161561102c576001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0381166000908152600460205260409020805460ff191660011790555b50565b6000806110608385611ed0565b905083811015610a195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a80565b6001600160a01b0383166111145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a80565b6001600160a01b0382166111755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a80565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661123c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a80565b6001600160a01b03831661129e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a80565b6001600160a01b03841660009081526004602052604090205460ff16156112fd5760405162461bcd60e51b815260206004820152601360248201527220b1b1b7bab73a1034b990309029b734b832b960691b6044820152606401610a80565b601b54600160a01b900460ff16156113215761131a848484611644565b9050610a19565b6001600160a01b03841660009081526007602052604090205460ff1615801561136357506001600160a01b03831660009081526007602052604090205460ff16155b156113cb576017548211156113cb5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a80565b30600090815260026020526040902054600d54811080159081906113f95750601b54600160a01b900460ff16155b801561141e57506001600160a01b03861660009081526008602052604090205460ff16155b80156114335750601b54600160a81b900460ff165b1561145957601b54600160b01b900460ff161561145057600d5491505b6114598261172a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600290915291909120546114ab91869061160a565b6001600160a01b038716600090815260026020908152604080832093909355600590529081205460ff16806114f857506001600160a01b03861660009081526005602052604090205460ff165b61150c57611507878787611860565b61150e565b845b601b54909150600160b81b900460ff16801561154357506001600160a01b03861660009081526006602052604090205460ff16155b1561157f576016546115748261156e896001600160a01b031660009081526002602052604090205490565b90611053565b111561157f57600080fd5b6001600160a01b0386166000908152600260205260409020546115a29082611053565b6001600160a01b0380881660008181526002602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f69085815260200190565b60405180910390a360019350505050610a19565b6000818484111561162e5760405162461bcd60e51b8152600401610a809190611baa565b50600061163b8486611ee8565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260029091529182205461169591849061160a565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546116c49083611053565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117189086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055600e546019546000916117609160029161175a9182908790611966565b906119e8565b9050600061176e8383611a2a565b905061177981610cc9565b6019544790600090611799906117909060026119e8565b600e5490611a2a565b905060006117bb600261175a8461175a6019548861196690919063ffffffff16565b905060006117d88361175a6018548761196690919063ffffffff16565b905060006117f0826117ea8786611a2a565b90611a2a565b9050801561180e57600f5461180e906001600160a01b031682611a6c565b811561182a57600f5461182a906001600160a01b031683611a6c565b60008311801561183a5750600087115b15611849576118498784611aa7565b5050601b805460ff60a01b19169055505050505050565b6001600160a01b038316600090815260086020526040812054819060ff16156118a45761189d606461175a6014548661196690919063ffffffff16565b90506118e2565b6001600160a01b03841660009081526008602052604090205460ff16156118e2576118df606461175a6015548661196690919063ffffffff16565b90505b801561195c57306000908152600260205260409020546119029082611053565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119539085815260200190565b60405180910390a35b61163b8382611a2a565b600082600003611978575060006109af565b60006119848385611eff565b9050826119918583611f1e565b14610a195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a80565b6000610a1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b7c565b6000610a1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061160a565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611aa2573d6000803e3d6000fd5b505050565b601a54611abf9030906001600160a01b0316846110b2565b601a546001600160a01b031663f305d719823085600080611ae86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611b50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b759190611f40565b5050505050565b60008183611b9d5760405162461bcd60e51b8152600401610a809190611baa565b50600061163b8486611f1e565b600060208083528351808285015260005b81811015611bd757858101830151858201604001528201611bbb565b81811115611be9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461105057600080fd5b60008060408385031215611c2757600080fd5b8235611c3281611bff565b946020939093013593505050565b600060208284031215611c5257600080fd5b8135610a1981611bff565b600080600060608486031215611c7257600080fd5b8335611c7d81611bff565b92506020840135611c8d81611bff565b929592945050506040919091013590565b600060208284031215611cb057600080fd5b5035919050565b60008060408385031215611cca57600080fd5b50508035926020909101359150565b80358015158114611ce957600080fd5b919050565b60008060408385031215611d0157600080fd5b8235611d0c81611bff565b9150611d1a60208401611cd9565b90509250929050565b600060208284031215611d3557600080fd5b610a1982611cd9565b60008060408385031215611d5157600080fd5b8235611d5c81611bff565b91506020830135611d6c81611bff565b809150509250929050565b600181811c90821680611d8b57607f821691505b602082108103611dab57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e0e57600080fd5b8151610a1981611bff565b600081518084526020808501945080840160005b83811015611e525781516001600160a01b031687529582019590820190600101611e2d565b509495945050505050565b85815284602082015260a060408201526000611e7c60a0830186611e19565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611eb26040830184611e19565b949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611ee357611ee3611eba565b500190565b600082821015611efa57611efa611eba565b500390565b6000816000190483118215151615611f1957611f19611eba565b500290565b600082611f3b57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611f5557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220691239f0f4f9d6d6429c828a386da892b0003047f471bd22753aec65394ebb7e64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c80637d1db4a511610175578063a9059cbb116100dc578063dd62ed3e11610095578063f5bc9def1161006f578063f5bc9def1461088b578063f872858a146108ab578063fd2a8deb146108cc578063fe458d89146108ec57600080fd5b8063dd62ed3e14610805578063e0f07e3a1461084b578063f2fde38b1461086b57600080fd5b8063a9059cbb14610758578063abdccea114610778578063b28805f41461078e578063baeb7a7d146107ae578063c816841b146107c4578063da00097d146107e457600080fd5b80638da5cb5b1161012e5780638da5cb5b146106ba57806394faf34e146106d857806395d89b41146106f8578063a073d37f1461070d578063a08e671f14610722578063a457c2d71461073857600080fd5b80637d1db4a514610628578063807c2d9c1461063e578063825e43c51461065457806384141be314610684578063844d591c1461069a578063893d20e8146106ba57600080fd5b80633ba48495116102345780634a74bb02116101ed578063557ed1ba116101c7578063557ed1ba146105b45780636e4ee811146105c757806370a08231146105dc57806377908e041461061257600080fd5b80634a74bb021461054d5780634d7227161461056e5780635342acb41461058457600080fd5b80633ba48495146104815780633d180810146104a15780633ecad271146104d15780633ef94721146105015780633f9a8690146105175780633ff6f0021461052d57600080fd5b806323b872dd1161028657806323b872dd146103d157806325acf340146103f15780632fd49a1414610407578063313ce5671461041d578063395093511461043f5780633b97084a1461045f57600080fd5b80630540eb52146102d957806306fdde0314610302578063095ea7b3146103245780630f3a325f146103545780631694505e1461038457806318160ddd146103bc57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ef60105481565b6040519081526020015b60405180910390f35b34801561030e57600080fd5b5061031761090c565b6040516102f99190611baa565b34801561033057600080fd5b5061034461033f366004611c14565b61099e565b60405190151581526020016102f9565b34801561036057600080fd5b5061034461036f366004611c40565b60046020526000908152604090205460ff1681565b34801561039057600080fd5b50601a546103a4906001600160a01b031681565b6040516001600160a01b0390911681526020016102f9565b3480156103c857600080fd5b50600c546102ef565b3480156103dd57600080fd5b506103446103ec366004611c5d565b6109b5565b3480156103fd57600080fd5b506102ef60125481565b34801561041357600080fd5b506102ef60115481565b34801561042957600080fd5b50600b5460405160ff90911681526020016102f9565b34801561044b57600080fd5b5061034461045a366004611c14565b610a20565b34801561046b57600080fd5b5061047f61047a366004611c9e565b610a56565b005b34801561048d57600080fd5b5061047f61049c366004611cb7565b610a8e565b3480156104ad57600080fd5b506103446104bc366004611c40565b60076020526000908152604090205460ff1681565b3480156104dd57600080fd5b506103446104ec366004611c40565b60086020526000908152604090205460ff1681565b34801561050d57600080fd5b506102ef60155481565b34801561052357600080fd5b506102ef601c5481565b34801561053957600080fd5b5061047f610548366004611cee565b610ad3565b34801561055957600080fd5b50601b5461034490600160a81b900460ff1681565b34801561057a57600080fd5b506102ef601d5481565b34801561059057600080fd5b5061034461059f366004611c40565b60056020526000908152604090205460ff1681565b3480156105c057600080fd5b50426102ef565b3480156105d357600080fd5b5061047f610b28565b3480156105e857600080fd5b506102ef6105f7366004611c40565b6001600160a01b031660009081526002602052604090205490565b34801561061e57600080fd5b506102ef60195481565b34801561063457600080fd5b506102ef60175481565b34801561064a57600080fd5b506102ef60165481565b34801561066057600080fd5b5061034461066f366004611c40565b60066020526000908152604090205460ff1681565b34801561069057600080fd5b506102ef60135481565b3480156106a657600080fd5b5061047f6106b5366004611cee565b610b87565b3480156106c657600080fd5b506000546001600160a01b03166103a4565b3480156106e457600080fd5b5061047f6106f3366004611d23565b610bdc565b34801561070457600080fd5b50610317610c5e565b34801561071957600080fd5b50600d546102ef565b34801561072e57600080fd5b506102ef600e5481565b34801561074457600080fd5b50610344610753366004611c14565b610c6d565b34801561076457600080fd5b50610344610773366004611c14565b610cbc565b34801561078457600080fd5b506102ef60185481565b34801561079a57600080fd5b5061047f6107a9366004611c9e565b610cc9565b3480156107ba57600080fd5b506102ef60145481565b3480156107d057600080fd5b50601b546103a4906001600160a01b031681565b3480156107f057600080fd5b50601b5461034490600160b01b900460ff1681565b34801561081157600080fd5b506102ef610820366004611d3e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561085757600080fd5b50600f546103a4906001600160a01b031681565b34801561087757600080fd5b5061047f610886366004611c40565b610e5c565b34801561089757600080fd5b5061047f6108a6366004611cb7565b610f46565b3480156108b757600080fd5b50601b5461034490600160b81b900460ff1681565b3480156108d857600080fd5b5061047f6108e7366004611cb7565b610f7b565b3480156108f857600080fd5b5061047f610907366004611c40565b610fc0565b60606009805461091b90611d77565b80601f016020809104026020016040519081016040528092919081815260200182805461094790611d77565b80156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b5050505050905090565b60006109ab3384846110b2565b5060015b92915050565b60006109c28484846111d6565b50610a158433610a1085604051806060016040528060288152602001611f6f602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061160a565b6110b2565b5060015b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109ab918590610a109086611053565b6000546001600160a01b03163314610a895760405162461bcd60e51b8152600401610a8090611db1565b60405180910390fd5b600d55565b6000546001600160a01b03163314610ab85760405162461bcd60e51b8152600401610a8090611db1565b60118290556010819055610acc8282611053565b6014555050565b6000546001600160a01b03163314610afd5760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b525760405162461bcd60e51b8152600401610a8090611db1565b601d5460026000610b6b6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055565b6000546001600160a01b03163314610bb15760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c065760405162461bcd60e51b8152600401610a8090611db1565b601b8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610c5390831515815260200190565b60405180910390a150565b6060600a805461091b90611d77565b60006109ab3384610a1085604051806060016040528060258152602001611f97602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061160a565b6000610a153384846111d6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610cfe57610cfe611de6565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7b9190611dfc565b81600181518110610d8e57610d8e611de6565b6001600160a01b039283166020918202929092010152601a54610db491309116846110b2565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ded908590600090869030904290600401611e5d565b600060405180830381600087803b158015610e0757600080fd5b505af1158015610e1b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610e50929190611e99565b60405180910390a15050565b6000546001600160a01b03163314610e865760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b038116610eeb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a80565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f705760405162461bcd60e51b8152600401610a8090611db1565b601791909155601655565b6000546001600160a01b03163314610fa55760405162461bcd60e51b8152600401610a8090611db1565b60138290556012819055610fb98282611053565b6015555050565b6000546001600160a01b03163314610fea5760405162461bcd60e51b8152600401610a8090611db1565b6001600160a01b03811660009081526004602052604090205460ff161561102c576001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0381166000908152600460205260409020805460ff191660011790555b50565b6000806110608385611ed0565b905083811015610a195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a80565b6001600160a01b0383166111145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a80565b6001600160a01b0382166111755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a80565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661123c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a80565b6001600160a01b03831661129e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a80565b6001600160a01b03841660009081526004602052604090205460ff16156112fd5760405162461bcd60e51b815260206004820152601360248201527220b1b1b7bab73a1034b990309029b734b832b960691b6044820152606401610a80565b601b54600160a01b900460ff16156113215761131a848484611644565b9050610a19565b6001600160a01b03841660009081526007602052604090205460ff1615801561136357506001600160a01b03831660009081526007602052604090205460ff16155b156113cb576017548211156113cb5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a80565b30600090815260026020526040902054600d54811080159081906113f95750601b54600160a01b900460ff16155b801561141e57506001600160a01b03861660009081526008602052604090205460ff16155b80156114335750601b54600160a81b900460ff165b1561145957601b54600160b01b900460ff161561145057600d5491505b6114598261172a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600290915291909120546114ab91869061160a565b6001600160a01b038716600090815260026020908152604080832093909355600590529081205460ff16806114f857506001600160a01b03861660009081526005602052604090205460ff165b61150c57611507878787611860565b61150e565b845b601b54909150600160b81b900460ff16801561154357506001600160a01b03861660009081526006602052604090205460ff16155b1561157f576016546115748261156e896001600160a01b031660009081526002602052604090205490565b90611053565b111561157f57600080fd5b6001600160a01b0386166000908152600260205260409020546115a29082611053565b6001600160a01b0380881660008181526002602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f69085815260200190565b60405180910390a360019350505050610a19565b6000818484111561162e5760405162461bcd60e51b8152600401610a809190611baa565b50600061163b8486611ee8565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260029091529182205461169591849061160a565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546116c49083611053565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117189086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055600e546019546000916117609160029161175a9182908790611966565b906119e8565b9050600061176e8383611a2a565b905061177981610cc9565b6019544790600090611799906117909060026119e8565b600e5490611a2a565b905060006117bb600261175a8461175a6019548861196690919063ffffffff16565b905060006117d88361175a6018548761196690919063ffffffff16565b905060006117f0826117ea8786611a2a565b90611a2a565b9050801561180e57600f5461180e906001600160a01b031682611a6c565b811561182a57600f5461182a906001600160a01b031683611a6c565b60008311801561183a5750600087115b15611849576118498784611aa7565b5050601b805460ff60a01b19169055505050505050565b6001600160a01b038316600090815260086020526040812054819060ff16156118a45761189d606461175a6014548661196690919063ffffffff16565b90506118e2565b6001600160a01b03841660009081526008602052604090205460ff16156118e2576118df606461175a6015548661196690919063ffffffff16565b90505b801561195c57306000908152600260205260409020546119029082611053565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119539085815260200190565b60405180910390a35b61163b8382611a2a565b600082600003611978575060006109af565b60006119848385611eff565b9050826119918583611f1e565b14610a195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a80565b6000610a1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b7c565b6000610a1983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061160a565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611aa2573d6000803e3d6000fd5b505050565b601a54611abf9030906001600160a01b0316846110b2565b601a546001600160a01b031663f305d719823085600080611ae86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611b50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b759190611f40565b5050505050565b60008183611b9d5760405162461bcd60e51b8152600401610a809190611baa565b50600061163b8486611f1e565b600060208083528351808285015260005b81811015611bd757858101830151858201604001528201611bbb565b81811115611be9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461105057600080fd5b60008060408385031215611c2757600080fd5b8235611c3281611bff565b946020939093013593505050565b600060208284031215611c5257600080fd5b8135610a1981611bff565b600080600060608486031215611c7257600080fd5b8335611c7d81611bff565b92506020840135611c8d81611bff565b929592945050506040919091013590565b600060208284031215611cb057600080fd5b5035919050565b60008060408385031215611cca57600080fd5b50508035926020909101359150565b80358015158114611ce957600080fd5b919050565b60008060408385031215611d0157600080fd5b8235611d0c81611bff565b9150611d1a60208401611cd9565b90509250929050565b600060208284031215611d3557600080fd5b610a1982611cd9565b60008060408385031215611d5157600080fd5b8235611d5c81611bff565b91506020830135611d6c81611bff565b809150509250929050565b600181811c90821680611d8b57607f821691505b602082108103611dab57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e0e57600080fd5b8151610a1981611bff565b600081518084526020808501945080840160005b83811015611e525781516001600160a01b031687529582019590820190600101611e2d565b509495945050505050565b85815284602082015260a060408201526000611e7c60a0830186611e19565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611eb26040830184611e19565b949350505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611ee357611ee3611eba565b500190565b600082821015611efa57611efa611eba565b500390565b6000816000190483118215151615611f1957611f19611eba565b500290565b600082611f3b57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611f5557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220691239f0f4f9d6d6429c828a386da892b0003047f471bd22753aec65394ebb7e64736f6c634300080f0033

Deployed Bytecode Sourcemap

14114:12084:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15041:35;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15041:35:0;;;;;;;;17516:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18813:161::-;;;;;;;;;;-1:-1:-1;18813:161:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;18813:161:0;1254:187:1;14363:41:0;;;;;;;;;;-1:-1:-1;14363:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15532;;;;;;;;;;-1:-1:-1;15532:41:0;;;;-1:-1:-1;;;;;15532:41:0;;;;;;-1:-1:-1;;;;;1889:32:1;;;1871:51;;1859:2;1844:18;15532:41:0;1698:230:1;17793:100:0;;;;;;;;;;-1:-1:-1;17873:12:0;;17793:100;;21129:303;;;;;;;;;;-1:-1:-1;21129:303:0;;;;;:::i;:::-;;:::i;15127:36::-;;;;;;;;;;;;;;;;15083:35;;;;;;;;;;;;;;;;17607:83;;;;;;;;;;-1:-1:-1;17673:9:0;;17607:83;;17673:9;;;;2536:36:1;;2524:2;2509:18;17607:83:0;2394:184:1;18182:218:0;;;;;;;;;;-1:-1:-1;18182:218:0;;;;;:::i;:::-;;:::i;20289:124::-;;;;;;;;;;-1:-1:-1;20289:124:0;;;;;:::i;:::-;;:::i;:::-;;19723:241;;;;;;;;;;-1:-1:-1;19723:241:0;;;;;:::i;:::-;;:::i;14523:44::-;;;;;;;;;;-1:-1:-1;14523:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14574:45;;;;;;;;;;-1:-1:-1;14574:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15253:32;;;;;;;;;;;;;;;;15790:64;;;;;;;;;;;;;;;;20150:131;;;;;;;;;;-1:-1:-1;20150:131:0;;;;;:::i;:::-;;:::i;15647:40::-;;;;;;;;;;-1:-1:-1;15647:40:0;;;;-1:-1:-1;;;15647:40:0;;;;;;15861:47;;;;;;;;;;;;;;;;14411:50;;;;;;;;;;-1:-1:-1;14411:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6183:90;;;;;;;;;;-1:-1:-1;6250:15:0;6183:90;;20739:98;;;;;;;;;;;;;:::i;17901:122::-;;;;;;;;;;-1:-1:-1;17901:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;17994:21:0;17967:7;17994:21;;;:12;:21;;;;;;;17901:122;15495:26;;;;;;;;;;;;;;;;15378:53;;;;;;;;;;;;;;;;15294:51;;;;;;;;;;;;;;;;14468:48;;;;;;;;;;-1:-1:-1;14468:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15170:36;;;;;;;;;;;;;;;;19325:129;;;;;;;;;;-1:-1:-1;19325:129:0;;;;;:::i;:::-;;:::i;5709:82::-;;;;;;;;;;-1:-1:-1;5750:7:0;5777:6;-1:-1:-1;;;;;5777:6:0;5709:82;;20421:172;;;;;;;;;;-1:-1:-1;20421:172:0;;;;;:::i;:::-;;:::i;17698:87::-;;;;;;;;;;;;;:::i;18685:120::-;;;;;;;;;;-1:-1:-1;18774:23:0;;18685:120;;14888:44;;;;;;;;;;;;;;;;18408:269;;;;;;;;;;-1:-1:-1;18408:269:0;;;;;:::i;:::-;;:::i;20961:157::-;;;;;;;;;;-1:-1:-1;20961:157:0;;;;;:::i;:::-;;:::i;15461:27::-;;;;;;;;;;;;;;;;24487:521;;;;;;;;;;-1:-1:-1;24487:521:0;;;;;:::i;:::-;;:::i;15215:31::-;;;;;;;;;;;;;;;;15580:26;;;;;;;;;;-1:-1:-1;15580:26:0;;;;-1:-1:-1;;;;;15580:26:0;;;15694:45;;;;;;;;;;-1:-1:-1;15694:45:0;;;;-1:-1:-1;;;15694:45:0;;;;;;18031:143;;;;;;;;;;-1:-1:-1;18031:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18139:18:0;;;18112:7;18139:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18031:143;14939:93;;;;;;;;;;-1:-1:-1;14939:93:0;;;;-1:-1:-1;;;;;14939:93:0;;;5927:244;;;;;;;;;;-1:-1:-1;5927:244:0;;;;;:::i;:::-;;:::i;19972:170::-;;;;;;;;;;-1:-1:-1;19972:170:0;;;;;:::i;:::-;;:::i;15746:35::-;;;;;;;;;;-1:-1:-1;15746:35:0;;;;-1:-1:-1;;;15746:35:0;;;;;;19462:253;;;;;;;;;;-1:-1:-1;19462:253:0;;;;;:::i;:::-;;:::i;25388:213::-;;;;;;;;;;-1:-1:-1;25388:213:0;;;;;:::i;:::-;;:::i;17516:83::-;17553:13;17586:5;17579:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17516:83;:::o;18813:161::-;18888:4;18905:39;301:10;18928:7;18937:6;18905:8;:39::i;:::-;-1:-1:-1;18962:4:0;18813:161;;;;;:::o;21129:303::-;21227:4;21244:36;21254:6;21262:9;21273:6;21244:9;:36::i;:::-;-1:-1:-1;21291:121:0;21300:6;301:10;21322:89;21360:6;21322:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21322:19:0;;;;;;:11;:19;;;;;;;;301:10;21322:33;;;;;;;;;;:37;:89::i;:::-;21291:8;:121::i;:::-;-1:-1:-1;21420:4:0;21129:303;;;;;;:::o;18182:218::-;301:10;18270:4;18319:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18319:34:0;;;;;;;;;;18270:4;;18287:83;;18310:7;;18319:50;;18358:10;18319:38;:50::i;20289:124::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;;;;;;;;;20371:23:::1;:34:::0;20289:124::o;19723:241::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;19819:16:::1;:31:::0;;;19861:16:::1;:31:::0;;;19918:38:::1;19838:12:::0;19880;19918:20:::1;:38::i;:::-;19903:12;:53:::0;-1:-1:-1;;19723:241:0:o;20150:131::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20241:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;20241:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20150:131::o;20739:98::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;20818:16:::1;;20791:12;:24;20804:10;5750:7:::0;5777:6;-1:-1:-1;;;;;5777:6:0;;5709:82;20804:10:::1;-1:-1:-1::0;;;;;20791:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20791:24:0;:43;20739:98::o;19325:129::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19414:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;19414:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19325:129::o;20421:172::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;20499:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;20499:32:0::1;-1:-1:-1::0;;;;20499:32:0;;::::1;;::::0;;20547:38:::1;::::0;::::1;::::0;::::1;::::0;20523:8;1419:14:1;1412:22;1394:41;;1382:2;1367:18;;1254:187;20547:38:0::1;;;;;;;;20421:172:::0;:::o;17698:87::-;17737:13;17770:7;17763:14;;;;;:::i;18408:269::-;18501:4;18518:129;301:10;18541:7;18550:96;18589:15;18550:96;;;;;;;;;;;;;;;;;301:10;18550:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18550:34:0;;;;;;;;;;;;:38;:96::i;20961:157::-;21039:4;21056:42;301:10;21080:9;21091:6;21056:9;:42::i;24487:521::-;24576:16;;;24590:1;24576:16;;;;;;;;24552:21;;24576:16;;;;;;;;;;-1:-1:-1;24576:16:0;24552:40;;24621:4;24603;24608:1;24603:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24603:23:0;;;:7;;;;;;;;;;:23;;;;24647:15;;:22;;;-1:-1:-1;;;24647:22:0;;;;:15;;;;;:20;;:22;;;;;24603:7;;24647:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24637:4;24642:1;24637:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24637:32:0;;;:7;;;;;;;;;:32;24712:15;;24680:62;;24697:4;;24712:15;24730:11;24680:8;:62::i;:::-;24753:15;;:196;;-1:-1:-1;;;24753:196:0;;-1:-1:-1;;;;;24753:15:0;;;;:66;;:196;;24834:11;;24753:15;;24876:4;;24903;;24923:15;;24753:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24965:35;24982:11;24995:4;24965:35;;;;;;;:::i;:::-;;;;;;;;24541:467;24487:521;:::o;5927:244::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6016:22:0;::::1;6008:73;;;::::0;-1:-1:-1;;;6008:73:0;;7374:2:1;6008:73:0::1;::::0;::::1;7356:21:1::0;7413:2;7393:18;;;7386:30;7452:34;7432:18;;;7425:62;-1:-1:-1;;;7503:18:1;;;7496:36;7549:19;;6008:73:0::1;7172:402:1::0;6008:73:0::1;6118:6;::::0;;6097:38:::1;::::0;-1:-1:-1;;;;;6097:38:0;;::::1;::::0;6118:6;::::1;::::0;6097:38:::1;::::0;::::1;6146:6;:17:::0;;-1:-1:-1;;;;;;6146:17:0::1;-1:-1:-1::0;;;;;6146:17:0;;;::::1;::::0;;;::::1;::::0;;5927:244::o;19972:170::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;20070:12:::1;:26:::0;;;;20107:10:::1;:27:::0;19972:170::o;19462:253::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;19565:17:::1;:32:::0;;;19608:17:::1;:32:::0;;;19667:40:::1;19585:12:::0;19628;19667:21:::1;:40::i;:::-;19651:13;:56:::0;-1:-1:-1;;19462:253:0:o;25388:213::-;5840:6;;-1:-1:-1;;;;;5840:6:0;301:10;5840:22;5832:67;;;;-1:-1:-1;;;5832:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25463:18:0;::::1;;::::0;;;:8:::1;:18;::::0;;;;;::::1;;25459:135;;;-1:-1:-1::0;;;;;25498:18:0::1;25519:5;25498:18:::0;;;:8:::1;:18;::::0;;;;:26;;-1:-1:-1;;25498:26:0::1;::::0;;25388:213::o;25459:135::-:1;-1:-1:-1::0;;;;;25557:18:0;::::1;;::::0;;;:8:::1;:18;::::0;;;;:25;;-1:-1:-1;;25557:25:0::1;25578:4;25557:25;::::0;;25459:135:::1;25388:213:::0;:::o;1269:181::-;1327:7;;1359:5;1363:1;1359;:5;:::i;:::-;1347:17;;1388:1;1383;:6;;1375:46;;;;-1:-1:-1;;;1375:46:0;;8046:2:1;1375:46:0;;;8028:21:1;8085:2;8065:18;;;8058:30;8124:29;8104:18;;;8097:57;8171:18;;1375:46:0;7844:351:1;18982:335:0;-1:-1:-1;;;;;19075:19:0;;19067:68;;;;-1:-1:-1;;;19067:68:0;;8402:2:1;19067:68:0;;;8384:21:1;8441:2;8421:18;;;8414:30;8480:34;8460:18;;;8453:62;-1:-1:-1;;;8531:18:1;;;8524:34;8575:19;;19067:68:0;8200:400:1;19067:68:0;-1:-1:-1;;;;;19154:21:0;;19146:68;;;;-1:-1:-1;;;19146:68:0;;8807:2:1;19146:68:0;;;8789:21:1;8846:2;8826:18;;;8819:30;8885:34;8865:18;;;8858:62;-1:-1:-1;;;8936:18:1;;;8929:32;8978:19;;19146:68:0;8605:398:1;19146:68:0;-1:-1:-1;;;;;19225:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19277:32;;160:25:1;;;19277:32:0;;133:18:1;19277:32:0;;;;;;;18982:335;;;:::o;21440:1678::-;21527:4;-1:-1:-1;;;;;21552:20:0;;21544:70;;;;-1:-1:-1;;;21544:70:0;;9210:2:1;21544:70:0;;;9192:21:1;9249:2;9229:18;;;9222:30;9288:34;9268:18;;;9261:62;-1:-1:-1;;;9339:18:1;;;9332:35;9384:19;;21544:70:0;9008:401:1;21544:70:0;-1:-1:-1;;;;;21633:23:0;;21625:71;;;;-1:-1:-1;;;21625:71:0;;9616:2:1;21625:71:0;;;9598:21:1;9655:2;9635:18;;;9628:30;9694:34;9674:18;;;9667:62;-1:-1:-1;;;9745:18:1;;;9738:33;9788:19;;21625:71:0;9414:399:1;21625:71:0;-1:-1:-1;;;;;21716:16:0;;;;;;:8;:16;;;;;;;;21715:17;21707:49;;;;-1:-1:-1;;;21707:49:0;;10020:2:1;21707:49:0;;;10002:21:1;10059:2;10039:18;;;10032:30;-1:-1:-1;;;10078:18:1;;;10071:49;10137:18;;21707:49:0;9818:343:1;21707:49:0;21770:16;;-1:-1:-1;;;21770:16:0;;;;21767:1344;;;21820:41;21835:6;21843:9;21854:6;21820:14;:41::i;:::-;21813:48;;;;21767:1344;-1:-1:-1;;;;;21917:19:0;;;;;;:11;:19;;;;;;;;21916:20;:47;;;;-1:-1:-1;;;;;;21941:22:0;;;;;;:11;:22;;;;;;;;21940:23;21916:47;21913:162;;;22002:12;;21992:6;:22;;21984:75;;;;-1:-1:-1;;;21984:75:0;;10368:2:1;21984:75:0;;;10350:21:1;10407:2;10387:18;;;10380:30;10446:34;10426:18;;;10419:62;-1:-1:-1;;;10497:18:1;;;10490:38;10545:19;;21984:75:0;10166:404:1;21984:75:0;22138:4;22089:28;17994:21;;;:12;:21;;;;;;22214:23;;22190:47;;;;;;;22256:44;;-1:-1:-1;22284:16:0;;-1:-1:-1;;;22284:16:0;;;;22283:17;22256:44;:69;;;;-1:-1:-1;;;;;;22305:20:0;;;;;;:12;:20;;;;;;;;22304:21;22256:69;:94;;;;-1:-1:-1;22329:21:0;;-1:-1:-1;;;22329:21:0;;;;22256:94;22252:305;;;22388:25;;-1:-1:-1;;;22388:25:0;;;;22385:97;;;22459:23;;22436:46;;22385:97;22501:36;22516:20;22501:14;:36::i;:::-;22594:56;;;;;;;;;;;-1:-1:-1;;;22594:56:0;;;;;;;;-1:-1:-1;;;;;22594:20:0;;-1:-1:-1;22594:20:0;;;:12;:20;;;;;;;;:56;;22619:6;;22594:24;:56::i;:::-;-1:-1:-1;;;;;22571:20:0;;;;;;:12;:20;;;;;;;;:79;;;;22688:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;22717:28:0;;;;;;:17;:28;;;;;;;;22688:57;22687:105;;22758:34;22766:6;22774:9;22785:6;22758:7;:34::i;:::-;22687:105;;;22749:6;22687:105;22810:16;;22665:127;;-1:-1:-1;;;;22810:16:0;;;;:47;;;;-1:-1:-1;;;;;;22831:26:0;;;;;;:15;:26;;;;;;;;22830:27;22810:47;22807:125;;;22921:10;;22880:37;22905:11;22880:20;22890:9;-1:-1:-1;;;;;17994:21:0;17967:7;17994:21;;;:12;:21;;;;;;;17901:122;22880:20;:24;;:37::i;:::-;:51;;22872:60;;;;;;-1:-1:-1;;;;;22973:23:0;;;;;;:12;:23;;;;;;:40;;23001:11;22973:27;:40::i;:::-;-1:-1:-1;;;;;22947:23:0;;;;;;;:12;:23;;;;;;;:66;;;;23033:40;;;;;;;;;;23061:11;160:25:1;;148:2;133:18;;14:177;23033:40:0;;;;;;;;23095:4;23088:11;;;;;;;1602:192;1688:7;1724:12;1716:6;;;;1708:29;;;;-1:-1:-1;;;1708:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1748:9:0;1760:5;1764:1;1760;:5;:::i;:::-;1748:17;1602:192;-1:-1:-1;;;;;1602:192:0:o;23126:342::-;23259:56;;;;;;;;;;;-1:-1:-1;;;23259:56:0;;;;;;;;-1:-1:-1;;;;;23259:20:0;;23219:4;23259:20;;;:12;:20;;;;;;;:56;;23284:6;;23259:24;:56::i;:::-;-1:-1:-1;;;;;23236:20:0;;;;;;;:12;:20;;;;;;:79;;;;23352:23;;;;;;;:35;;23380:6;23352:27;:35::i;:::-;-1:-1:-1;;;;;23326:23:0;;;;;;;:12;:23;;;;;;;:61;;;;23403:35;;;;;;;;;;23431:6;160:25:1;;148:2;133:18;;14:177;23403:35:0;;;;;;;;-1:-1:-1;23456:4:0;23126:342;;;;;:::o;23476:999::-;16335:16;:23;;-1:-1:-1;;;;16335:23:0;-1:-1:-1;;;16335:23:0;;;23596:24:::1;::::0;23583:7:::1;::::0;16335:23;;23571:57:::1;::::0;23626:1:::1;::::0;23571:50:::1;::::0;;;:7;;:11:::1;:20::i;:::-;:24:::0;::::1;:50::i;:57::-;23549:79:::0;-1:-1:-1;23639:21:0::1;23663:24;:7:::0;23549:79;23663:11:::1;:24::i;:::-;23639:48;;23700:31;23717:13;23700:16;:31::i;:::-;23850:7;::::0;23767:21:::1;::::0;23742:22:::1;::::0;23821:44:::1;::::0;23850:14:::1;::::0;23862:1:::1;23850:11;:14::i;:::-;23821:24;::::0;;:28:::1;:44::i;:::-;23799:66;;23886:26;23915:51;23964:1;23915:44;23947:11;23915:27;23934:7;;23915:14;:18;;:27;;;;:::i;:51::-;23886:80;;23977:21;24001:44;24033:11;24001:27;24020:7;;24001:14;:18;;:27;;;;:::i;:44::-;23977:68:::0;-1:-1:-1;24056:26:0::1;24085:57;23977:68:::0;24085:38:::1;:14:::0;24104:18;24085::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;24056:86:::0;-1:-1:-1;24158:22:0;;24155:98:::1;;24216:16;::::0;24195:58:::1;::::0;-1:-1:-1;;;;;24216:16:0::1;24234:18:::0;24195:20:::1;:58::i;:::-;24267:17:::0;;24264:88:::1;;24320:16;::::0;24299:53:::1;::::0;-1:-1:-1;;;;;24320:16:0::1;24338:13:::0;24299:20:::1;:53::i;:::-;24387:1;24366:18;:22;:41;;;;;24406:1;24392:11;:15;24366:41;24363:104;;;24422:45;24435:11;24448:18;24422:12;:45::i;:::-;-1:-1:-1::0;;16381:16:0;:24;;-1:-1:-1;;;;16381:24:0;;;-1:-1:-1;;;;;;23476:999:0:o;25609:586::-;-1:-1:-1;;;;;25750:20:0;;25695:7;25750:20;;;:12;:20;;;;;;25695:7;;25750:20;;25747:213;;;25799:33;25828:3;25799:24;25810:12;;25799:6;:10;;:24;;;;:::i;:33::-;25787:45;;25747:213;;;-1:-1:-1;;;;;25862:23:0;;;;;;:12;:23;;;;;;;;25859:101;;;25914:34;25944:3;25914:25;25925:13;;25914:6;:10;;:25;;;;:::i;:34::-;25902:46;;25859:101;25973:13;;25970:179;;26054:4;26033:27;;;;:12;:27;;;;;;:42;;26065:9;26033:31;:42::i;:::-;26024:4;26003:27;;;;:12;:27;;;;;;;:72;;;;26095:42;;-1:-1:-1;;;;;26095:42:0;;;;;;;26127:9;160:25:1;;148:2;133:18;;14:177;26095:42:0;;;;;;;;25970:179;26166:21;:6;26177:9;26166:10;:21::i;1802:250::-;1860:7;1884:1;1889;1884:6;1880:47;;-1:-1:-1;1914:1:0;1907:8;;1880:47;1939:9;1951:5;1955:1;1951;:5;:::i;:::-;1939:17;-1:-1:-1;1984:1:0;1975:5;1979:1;1939:17;1975:5;:::i;:::-;:10;1967:56;;;;-1:-1:-1;;;1967:56:0;;11302:2:1;1967:56:0;;;11284:21:1;11341:2;11321:18;;;11314:30;11380:34;11360:18;;;11353:62;-1:-1:-1;;;11431:18:1;;;11424:31;11472:19;;1967:56:0;11100:397:1;2060:132:0;2118:7;2145:39;2149:1;2152;2145:39;;;;;;;;;;;;;;;;;:3;:39::i;1458:136::-;1516:7;1543:43;1547:1;1550;1543:43;;;;;;;;;;;;;;;;;:3;:43::i;20601:126::-;20693:26;;-1:-1:-1;;;;;20693:18:0;;;:26;;;;;20712:6;;20693:26;;;;20712:6;20693:18;:26;;;;;;;;;;;;;;;;;;;;;20601:126;;:::o;25016:362::-;25129:15;;25097:62;;25114:4;;-1:-1:-1;;;;;25129:15:0;25147:11;25097:8;:62::i;:::-;25170:15;;-1:-1:-1;;;;;25170:15:0;:31;25209:9;25242:4;25262:11;25170:15;;25322:7;5750;5777:6;-1:-1:-1;;;;;5777:6:0;;5709:82;25322:7;25170:200;;;;;;-1:-1:-1;;;;;;25170:200:0;;;-1:-1:-1;;;;;11861:15:1;;;25170:200:0;;;11843:34:1;11893:18;;;11886:34;;;;11936:18;;;11929:34;;;;11979:18;;;11972:34;12043:15;;;12022:19;;;12015:44;25344:15:0;12075:19:1;;;12068:35;11777:19;;25170:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25016:362;;:::o;2200:278::-;2286:7;2321:12;2314:5;2306:28;;;;-1:-1:-1;;;2306:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2345:9:0;2357:5;2361:1;2357;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:247::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;1613:9;1600:23;1632:31;1657:5;1632:31;:::i;1933:456::-;2010:6;2018;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2134:9;2121:23;2153:31;2178:5;2153:31;:::i;:::-;2203:5;-1:-1:-1;2260:2:1;2245:18;;2232:32;2273:33;2232:32;2273:33;:::i;:::-;1933:456;;2325:7;;-1:-1:-1;;;2379:2:1;2364:18;;;;2351:32;;1933:456::o;2583:180::-;2642:6;2695:2;2683:9;2674:7;2670:23;2666:32;2663:52;;;2711:1;2708;2701:12;2663:52;-1:-1:-1;2734:23:1;;2583:180;-1:-1:-1;2583:180:1:o;2768:248::-;2836:6;2844;2897:2;2885:9;2876:7;2872:23;2868:32;2865:52;;;2913:1;2910;2903:12;2865:52;-1:-1:-1;;2936:23:1;;;3006:2;2991:18;;;2978:32;;-1:-1:-1;2768:248:1:o;3021:160::-;3086:20;;3142:13;;3135:21;3125:32;;3115:60;;3171:1;3168;3161:12;3115:60;3021:160;;;:::o;3186:315::-;3251:6;3259;3312:2;3300:9;3291:7;3287:23;3283:32;3280:52;;;3328:1;3325;3318:12;3280:52;3367:9;3354:23;3386:31;3411:5;3386:31;:::i;:::-;3436:5;-1:-1:-1;3460:35:1;3491:2;3476:18;;3460:35;:::i;:::-;3450:45;;3186:315;;;;;:::o;3714:180::-;3770:6;3823:2;3811:9;3802:7;3798:23;3794:32;3791:52;;;3839:1;3836;3829:12;3791:52;3862:26;3878:9;3862:26;:::i;3899:388::-;3967:6;3975;4028:2;4016:9;4007:7;4003:23;3999:32;3996:52;;;4044:1;4041;4034:12;3996:52;4083:9;4070:23;4102:31;4127:5;4102:31;:::i;:::-;4152:5;-1:-1:-1;4209:2:1;4194:18;;4181:32;4222:33;4181:32;4222:33;:::i;:::-;4274:7;4264:17;;;3899:388;;;;;:::o;4516:380::-;4595:1;4591:12;;;;4638;;;4659:61;;4713:4;4705:6;4701:17;4691:27;;4659:61;4766:2;4758:6;4755:14;4735:18;4732:38;4729:161;;4812:10;4807:3;4803:20;4800:1;4793:31;4847:4;4844:1;4837:15;4875:4;4872:1;4865:15;4729:161;;4516:380;;;:::o;4901:356::-;5103:2;5085:21;;;5122:18;;;5115:30;5181:34;5176:2;5161:18;;5154:62;5248:2;5233:18;;4901:356::o;5394:127::-;5455:10;5450:3;5446:20;5443:1;5436:31;5486:4;5483:1;5476:15;5510:4;5507:1;5500:15;5526:251;5596:6;5649:2;5637:9;5628:7;5624:23;5620:32;5617:52;;;5665:1;5662;5655:12;5617:52;5697:9;5691:16;5716:31;5741:5;5716:31;:::i;5782:461::-;5835:3;5873:5;5867:12;5900:6;5895:3;5888:19;5926:4;5955:2;5950:3;5946:12;5939:19;;5992:2;5985:5;5981:14;6013:1;6023:195;6037:6;6034:1;6031:13;6023:195;;;6102:13;;-1:-1:-1;;;;;6098:39:1;6086:52;;6158:12;;;;6193:15;;;;6134:1;6052:9;6023:195;;;-1:-1:-1;6234:3:1;;5782:461;-1:-1:-1;;;;;5782:461:1:o;6248:582::-;6547:6;6536:9;6529:25;6590:6;6585:2;6574:9;6570:18;6563:34;6633:3;6628:2;6617:9;6613:18;6606:31;6510:4;6654:57;6706:3;6695:9;6691:19;6683:6;6654:57;:::i;:::-;-1:-1:-1;;;;;6747:32:1;;;;6742:2;6727:18;;6720:60;-1:-1:-1;6811:3:1;6796:19;6789:35;6646:65;6248:582;-1:-1:-1;;;6248:582:1:o;6835:332::-;7042:6;7031:9;7024:25;7085:2;7080;7069:9;7065:18;7058:30;7005:4;7105:56;7157:2;7146:9;7142:18;7134:6;7105:56;:::i;:::-;7097:64;6835:332;-1:-1:-1;;;;6835:332:1:o;7579:127::-;7640:10;7635:3;7631:20;7628:1;7621:31;7671:4;7668:1;7661:15;7695:4;7692:1;7685:15;7711:128;7751:3;7782:1;7778:6;7775:1;7772:13;7769:39;;;7788:18;;:::i;:::-;-1:-1:-1;7824:9:1;;7711:128::o;10575:125::-;10615:4;10643:1;10640;10637:8;10634:34;;;10648:18;;:::i;:::-;-1:-1:-1;10685:9:1;;10575:125::o;10705:168::-;10745:7;10811:1;10807;10803:6;10799:14;10796:1;10793:21;10788:1;10781:9;10774:17;10770:45;10767:71;;;10818:18;;:::i;:::-;-1:-1:-1;10858:9:1;;10705:168::o;10878:217::-;10918:1;10944;10934:132;;10988:10;10983:3;10979:20;10976:1;10969:31;11023:4;11020:1;11013:15;11051:4;11048:1;11041:15;10934:132;-1:-1:-1;11080:9:1;;10878:217::o;12114:306::-;12202:6;12210;12218;12271:2;12259:9;12250:7;12246:23;12242:32;12239:52;;;12287:1;12284;12277:12;12239:52;12316:9;12310:16;12300:26;;12366:2;12355:9;12351:18;12345:25;12335:35;;12410:2;12399:9;12395:18;12389:25;12379:35;;12114:306;;;;;:::o

Swarm Source

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