ETH Price: $3,485.36 (+4.17%)

Token

Countryside Bank (CSBANK)
 

Overview

Max Total Supply

1,000,000,000 CSBANK

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
20,696,087.206354578 CSBANK

Value
$0.00
0x738656dA11f7485F98A1F05512D82A606FF1c025
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:
CSBANK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-03
*/

/**
Countryside Bank is a decentralized, user-driven borrowing and lending liquidity market inspired by AAVE.

Website: https://countrysidebank.biz
Twitter: https://twitter.com/CSBANK_FINANCE
Telegram: https://t.me/CSBANK_OFFICIAL
Docs: https://medium.com/@csbank.finance
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.19;

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(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 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;
    }
}

interface IFactory {
    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;
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

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

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

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

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

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

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

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

interface IRouterV1 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IRouterV2 is IRouterV1 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

contract CSBANK is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    
    string private _name ="Countryside Bank";
    string private _symbol = "CSBANK";
    uint8 private _decimals = 9;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcluded;
    mapping (address => bool) public isWalletLimitExcluded;
    mapping (address => bool) public isTxLimitExcluded;
    mapping (address => bool) public ammPairs;

    address payable private _development = payable(0xdD579F2C45FcDd509dbA258865bb762A9C33d291);
    address payable private _marketing = payable(0xdD579F2C45FcDd509dbA258865bb762A9C33d291);

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyDevFee = 0;
    uint256 public _sellLiquidityFees = 0;
    uint256 public _sellMarketingFees = 1;
    uint256 public _sellDevelopmentFees = 0;

    uint256 public _lpShare = 0;
    uint256 public _marketingShare = 10;
    uint256 public _devShare = 0;

    uint256 public _buyTax = 1;
    uint256 public _sellTax = 1;
    uint256 public _totalShare = 10;

    uint256 private _tSupply = 10**9 * 10**9;
    uint256 public _maxTx = 2 * 10**7 * 10**9;
    uint256 public _maxWallet = 2 * 10**7 * 10**9;
    uint256 private _swapThreshold = 10 ** 5 * 10**9; 

    IRouterV2 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwap;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
        
        IRouterV2 _uniswapV2Router = IRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

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

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

        isExcluded[owner()] = true;
        isExcluded[_development] = true;
        isExcluded[_marketing] = true;
        
        _buyTax = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDevFee);
        _sellTax = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees);
        _totalShare = _lpShare.add(_marketingShare).add(_devShare);

        isWalletLimitExcluded[owner()] = true;
        isWalletLimitExcluded[address(uniswapPair)] = true;
        isWalletLimitExcluded[address(this)] = true;
        
        isTxLimitExcluded[owner()] = true;
        isTxLimitExcluded[_development] = true;
        isTxLimitExcluded[_marketing] = true;
        isTxLimitExcluded[address(this)] = true;

        ammPairs[address(uniswapPair)] = true;

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

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

    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 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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

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

        return amount.sub(feeAmount);
    }

    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(inSwap)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExcluded[sender] && !isTxLimitExcluded[recipient]) {
                require(amount <= _maxTx, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _swapThreshold;
            
            if (overMinimumTokenBalance && !inSwap && ammPairs[recipient] && swapAndLiquifyEnabled && !isExcluded[sender] && amount > _swapThreshold) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _swapThreshold;
                swapAndLiquify(contractTokenBalance);    
            }


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

            if(checkWalletLimit && !isWalletLimitExcluded[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _maxWallet);

            uint256 sAmount = (!checkWalletLimit && isExcluded[sender]) ? amount.sub(finalAmount) : amount;
            _balances[sender] = _balances[sender].sub(sAmount, "Insufficient Balance");
            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }
    function sendETHToFee(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

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

    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(_lpShare).div(_totalShare).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

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

        uint256 totalETHFee = _totalShare.sub(_lpShare.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_lpShare).div(totalETHFee).div(2);
        uint256 amountETHDevelopment = amountReceived.mul(_devShare).div(totalETHFee);
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHDevelopment);

        if(amountETHMarketing > 0)
            sendETHToFee(_development, amountETHMarketing);

        if(amountETHDevelopment > 0)
            sendETHToFee(_marketing, amountETHDevelopment);

        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }
    
    
    function removeLimits() external onlyOwner {
        _maxTx = _tSupply;
        checkWalletLimit = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyDevFee","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":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lpShare","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":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalShare","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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"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 IRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601060809081526f436f756e747279736964652042616e6b60801b60a05260029062000031908262000696565b50604080518082019091526006815265435342414e4b60d01b60208201526003906200005e908262000696565b5060048054600960ff19909116179055600b805473dd579f2c45fcdd509dba258865bb762a9c33d2916001600160a01b03199182168117909255600c805490911690911790556000600d8190556001600e819055600f8290556010829055601181905560128290556013829055600a60148190556015929092556016819055601755601855670de0b6b3a764000060195566470de4df820000601a819055601b55655af3107a4000601c55601e805462ffffff60a81b19166201000160a81b1790553480156200012d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000762565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000261919062000762565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000762565b601e80546001600160a01b039283166001600160a01b031991821617909155601d80549284169290911682179055601954306000908152600660209081526040808320948352939052918220556001906007906200033b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600b54821681526007909352818320805485166001908117909155600c54909116835291208054909216179055600f54600e54600d54620003b89291620003b1919062000582565b9062000582565b601655601254601154601054620003d69291620003b1919062000582565b601755601554601454601354620003f49291620003b1919062000582565b601855600160086000620004106000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601e549091168152600890925280822080548416600190811790915530835290822080549093168117909255600990620004806000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600b548216815260098452828120805486166001908117909155600c548316825283822080548716821790553082528382208054871682179055601e549092168152600a90935290822080549093161790915560195490600590620005103390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6019546040516200057391815260200190565b60405180910390a350620007af565b6000806200059183856200078d565b905083811015620005e85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200061c57607f821691505b6020821081036200063d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200069157600081815260208120601f850160051c810160208610156200066c5750805b601f850160051c820191505b818110156200068d5782815560010162000678565b5050505b505050565b81516001600160401b03811115620006b257620006b2620005f1565b620006ca81620006c3845462000607565b8462000643565b602080601f831160018114620007025760008415620006e95750858301515b600019600386901b1c1916600185901b1785556200068d565b600085815260208120601f198616915b82811015620007335788860151825594840194600190910190840162000712565b5085821015620007525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200077557600080fd5b81516001600160a01b0381168114620005e857600080fd5b80820180821115620005eb57634e487b7160e01b600052601160045260246000fd5b611afe80620007bf6000396000f3fe6080604052600436106102295760003560e01c80637830b07211610123578063b7470a2f116100ab578063da00097d1161006f578063da00097d1461063d578063dc44b6a01461065e578063dd62ed3e14610674578063f2fde38b146106ba578063f872858a146106da57600080fd5b8063b7470a2f14610591578063c5d24189146105c1578063c816841b146105d7578063ca9ec199146105f7578063cba0e9961461060d57600080fd5b80638da5cb5b116100f25780638da5cb5b146104ee57806395d89b411461050c578063a457c2d714610521578063a72905a214610541578063a9059cbb1461057157600080fd5b80637830b0721461047c5780637f523f79146104925780637f90eaa2146104c257806382247ec0146104d857600080fd5b806342a11095116101b1578063661b6e3611610175578063661b6e36146103ee5780636b363ca11461040457806370a082311461041a578063715018a614610450578063751039fc1461046757600080fd5b806342a11095146103755780634a74bb021461038b57806361a23c69146103ac57806362015852146103c2578063646d4700146103d857600080fd5b806319967a37116101f857806319967a37146102e757806323b872dd146102fd5780632f0a5fd41461031d578063313ce56714610333578063395093511461035557600080fd5b806306fdde0314610235578063095ea7b3146102605780631694505e1461029057806318160ddd146102c857600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6106fb565b604051610257919061176c565b60405180910390f35b34801561026c57600080fd5b5061028061027b3660046117d2565b61078d565b6040519015158152602001610257565b34801561029c57600080fd5b50601d546102b0906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102d457600080fd5b506019545b604051908152602001610257565b3480156102f357600080fd5b506102d960185481565b34801561030957600080fd5b506102806103183660046117fe565b6107a4565b34801561032957600080fd5b506102d960105481565b34801561033f57600080fd5b5060045460405160ff9091168152602001610257565b34801561036157600080fd5b506102806103703660046117d2565b61080f565b34801561038157600080fd5b506102d960165481565b34801561039757600080fd5b50601e5461028090600160a81b900460ff1681565b3480156103b857600080fd5b506102d960145481565b3480156103ce57600080fd5b506102d9600f5481565b3480156103e457600080fd5b506102d960125481565b3480156103fa57600080fd5b506102d960115481565b34801561041057600080fd5b506102d960155481565b34801561042657600080fd5b506102d961043536600461183f565b6001600160a01b031660009081526005602052604090205490565b34801561045c57600080fd5b50610465610845565b005b34801561047357600080fd5b506104656108c2565b34801561048857600080fd5b506102d9601a5481565b34801561049e57600080fd5b506102806104ad36600461183f565b60096020526000908152604090205460ff1681565b3480156104ce57600080fd5b506102d960135481565b3480156104e457600080fd5b506102d9601b5481565b3480156104fa57600080fd5b506000546001600160a01b03166102b0565b34801561051857600080fd5b5061024a610901565b34801561052d57600080fd5b5061028061053c3660046117d2565b610910565b34801561054d57600080fd5b5061028061055c36600461183f565b600a6020526000908152604090205460ff1681565b34801561057d57600080fd5b5061028061058c3660046117d2565b61095f565b34801561059d57600080fd5b506102806105ac36600461183f565b60086020526000908152604090205460ff1681565b3480156105cd57600080fd5b506102d9600e5481565b3480156105e357600080fd5b50601e546102b0906001600160a01b031681565b34801561060357600080fd5b506102d960175481565b34801561061957600080fd5b5061028061062836600461183f565b60076020526000908152604090205460ff1681565b34801561064957600080fd5b50601e5461028090600160b01b900460ff1681565b34801561066a57600080fd5b506102d9600d5481565b34801561068057600080fd5b506102d961068f36600461185c565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106c657600080fd5b506104656106d536600461183f565b61096c565b3480156106e657600080fd5b50601e5461028090600160b81b900460ff1681565b60606002805461070a90611895565b80601f016020809104026020016040519081016040528092919081815260200182805461073690611895565b80156107835780601f1061075857610100808354040283529160200191610783565b820191906000526020600020905b81548152906001019060200180831161076657829003601f168201915b5050505050905090565b600061079a338484610a56565b5060015b92915050565b60006107b1848484610b7a565b5061080484336107ff85604051806060016040528060288152602001611a7c602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610fde565b610a56565b5060015b9392505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161079a9185906107ff9086611018565b6000546001600160a01b031633146108785760405162461bcd60e51b815260040161086f906118cf565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108ec5760405162461bcd60e51b815260040161086f906118cf565b601954601a55601e805460ff60b81b19169055565b60606003805461070a90611895565b600061079a33846107ff85604051806060016040528060258152602001611aa4602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190610fde565b6000610804338484610b7a565b6000546001600160a01b031633146109965760405162461bcd60e51b815260040161086f906118cf565b6001600160a01b0381166109fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ab85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086f565b6001600160a01b038216610b195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086f565b6001600160a01b038316610c425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086f565b601e54600160a01b900460ff1615610c6657610c5f848484611077565b9050610808565b6001600160a01b03841660009081526009602052604090205460ff16158015610ca857506001600160a01b03831660009081526009602052604090205460ff16155b15610d1057601a54821115610d105760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161086f565b30600090815260056020526040902054601c5481108015908190610d3e5750601e54600160a01b900460ff16155b8015610d6257506001600160a01b0385166000908152600a602052604090205460ff165b8015610d775750601e54600160a81b900460ff165b8015610d9c57506001600160a01b03861660009081526007602052604090205460ff16155b8015610da95750601c5484115b15610dcf57601e54600160b01b900460ff1615610dc657601c5491505b610dcf8261115d565b6001600160a01b03861660009081526007602052604081205460ff1680610e0e57506001600160a01b03861660009081526007602052604090205460ff165b610e2257610e1d878787611293565b610e24565b845b601e54909150600160b81b900460ff168015610e5957506001600160a01b03861660009081526008602052604090205460ff16155b15610e9557601b54610e8a82610e84896001600160a01b031660009081526005602052604090205490565b90611018565b1115610e9557600080fd5b601e54600090600160b81b900460ff16158015610eca57506001600160a01b03881660009081526007602052604090205460ff165b610ed45785610ede565b610ede8683611395565b9050610f468160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250600560008c6001600160a01b03166001600160a01b0316815260200190815260200160002054610fde9092919063ffffffff16565b6001600160a01b03808a166000908152600560205260408082209390935590891681522054610f759083611018565b6001600160a01b0380891660008181526005602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc99086815260200190565b60405180910390a36001945050505050610808565b600081848411156110025760405162461bcd60e51b815260040161086f919061176c565b50600061100f848661191a565b95945050505050565b600080611025838561192d565b9050838110156108085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161086f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546110c8918490610fde565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546110f79083611018565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061114b9086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b1790556018546013546000916111939160029161118d91829087906113d7565b90611459565b905060006111a18383611395565b90506111ac8161149b565b60135447906000906111cc906111c3906002611459565b60185490611395565b905060006111ee600261118d8461118d601354886113d790919063ffffffff16565b9050600061120b8361118d601554876113d790919063ffffffff16565b905060006112238261121d8786611395565b90611395565b9050801561124157600b54611241906001600160a01b03168261162e565b811561125d57600c5461125d906001600160a01b03168361162e565b60008311801561126d5750600087115b1561127c5761127c8784611669565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156112d7576112d0606461118d601654866113d790919063ffffffff16565b9050611315565b6001600160a01b0384166000908152600a602052604090205460ff161561131557611312606461118d601754866113d790919063ffffffff16565b90505b801561138f57306000908152600560205260409020546113359082611018565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113869085815260200190565b60405180910390a35b61100f83825b600061080883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fde565b6000826000036113e95750600061079e565b60006113f58385611940565b9050826114028583611957565b146108085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161086f565b600061080883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061173e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114d0576114d0611979565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154d919061198f565b8160018151811061156057611560611979565b6001600160a01b039283166020918202929092010152601d546115869130911684610a56565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115bf9085906000908690309042906004016119f0565b600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611622929190611a2c565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611664573d6000803e3d6000fd5b505050565b601d546116819030906001600160a01b031684610a56565b601d546001600160a01b031663f305d7198230856000806116aa6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611712573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117379190611a4d565b5050505050565b6000818361175f5760405162461bcd60e51b815260040161086f919061176c565b50600061100f8486611957565b600060208083528351808285015260005b818110156117995785810183015185820160400152820161177d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117cf57600080fd5b50565b600080604083850312156117e557600080fd5b82356117f0816117ba565b946020939093013593505050565b60008060006060848603121561181357600080fd5b833561181e816117ba565b9250602084013561182e816117ba565b929592945050506040919091013590565b60006020828403121561185157600080fd5b8135610808816117ba565b6000806040838503121561186f57600080fd5b823561187a816117ba565b9150602083013561188a816117ba565b809150509250929050565b600181811c908216806118a957607f821691505b6020821081036118c957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561079e5761079e611904565b8082018082111561079e5761079e611904565b808202811582820484141761079e5761079e611904565b60008261197457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119a157600080fd5b8151610808816117ba565b600081518084526020808501945080840160005b838110156119e55781516001600160a01b0316875295820195908201906001016119c0565b509495945050505050565b85815284602082015260a060408201526000611a0f60a08301866119ac565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611a4560408301846119ac565b949350505050565b600080600060608486031215611a6257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122003d83284c5a3298ee88f8b5d34de8ad6f4fa45ef88c48509e47ac98ac8bff51264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80637830b07211610123578063b7470a2f116100ab578063da00097d1161006f578063da00097d1461063d578063dc44b6a01461065e578063dd62ed3e14610674578063f2fde38b146106ba578063f872858a146106da57600080fd5b8063b7470a2f14610591578063c5d24189146105c1578063c816841b146105d7578063ca9ec199146105f7578063cba0e9961461060d57600080fd5b80638da5cb5b116100f25780638da5cb5b146104ee57806395d89b411461050c578063a457c2d714610521578063a72905a214610541578063a9059cbb1461057157600080fd5b80637830b0721461047c5780637f523f79146104925780637f90eaa2146104c257806382247ec0146104d857600080fd5b806342a11095116101b1578063661b6e3611610175578063661b6e36146103ee5780636b363ca11461040457806370a082311461041a578063715018a614610450578063751039fc1461046757600080fd5b806342a11095146103755780634a74bb021461038b57806361a23c69146103ac57806362015852146103c2578063646d4700146103d857600080fd5b806319967a37116101f857806319967a37146102e757806323b872dd146102fd5780632f0a5fd41461031d578063313ce56714610333578063395093511461035557600080fd5b806306fdde0314610235578063095ea7b3146102605780631694505e1461029057806318160ddd146102c857600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6106fb565b604051610257919061176c565b60405180910390f35b34801561026c57600080fd5b5061028061027b3660046117d2565b61078d565b6040519015158152602001610257565b34801561029c57600080fd5b50601d546102b0906001600160a01b031681565b6040516001600160a01b039091168152602001610257565b3480156102d457600080fd5b506019545b604051908152602001610257565b3480156102f357600080fd5b506102d960185481565b34801561030957600080fd5b506102806103183660046117fe565b6107a4565b34801561032957600080fd5b506102d960105481565b34801561033f57600080fd5b5060045460405160ff9091168152602001610257565b34801561036157600080fd5b506102806103703660046117d2565b61080f565b34801561038157600080fd5b506102d960165481565b34801561039757600080fd5b50601e5461028090600160a81b900460ff1681565b3480156103b857600080fd5b506102d960145481565b3480156103ce57600080fd5b506102d9600f5481565b3480156103e457600080fd5b506102d960125481565b3480156103fa57600080fd5b506102d960115481565b34801561041057600080fd5b506102d960155481565b34801561042657600080fd5b506102d961043536600461183f565b6001600160a01b031660009081526005602052604090205490565b34801561045c57600080fd5b50610465610845565b005b34801561047357600080fd5b506104656108c2565b34801561048857600080fd5b506102d9601a5481565b34801561049e57600080fd5b506102806104ad36600461183f565b60096020526000908152604090205460ff1681565b3480156104ce57600080fd5b506102d960135481565b3480156104e457600080fd5b506102d9601b5481565b3480156104fa57600080fd5b506000546001600160a01b03166102b0565b34801561051857600080fd5b5061024a610901565b34801561052d57600080fd5b5061028061053c3660046117d2565b610910565b34801561054d57600080fd5b5061028061055c36600461183f565b600a6020526000908152604090205460ff1681565b34801561057d57600080fd5b5061028061058c3660046117d2565b61095f565b34801561059d57600080fd5b506102806105ac36600461183f565b60086020526000908152604090205460ff1681565b3480156105cd57600080fd5b506102d9600e5481565b3480156105e357600080fd5b50601e546102b0906001600160a01b031681565b34801561060357600080fd5b506102d960175481565b34801561061957600080fd5b5061028061062836600461183f565b60076020526000908152604090205460ff1681565b34801561064957600080fd5b50601e5461028090600160b01b900460ff1681565b34801561066a57600080fd5b506102d9600d5481565b34801561068057600080fd5b506102d961068f36600461185c565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106c657600080fd5b506104656106d536600461183f565b61096c565b3480156106e657600080fd5b50601e5461028090600160b81b900460ff1681565b60606002805461070a90611895565b80601f016020809104026020016040519081016040528092919081815260200182805461073690611895565b80156107835780601f1061075857610100808354040283529160200191610783565b820191906000526020600020905b81548152906001019060200180831161076657829003601f168201915b5050505050905090565b600061079a338484610a56565b5060015b92915050565b60006107b1848484610b7a565b5061080484336107ff85604051806060016040528060288152602001611a7c602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610fde565b610a56565b5060015b9392505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161079a9185906107ff9086611018565b6000546001600160a01b031633146108785760405162461bcd60e51b815260040161086f906118cf565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108ec5760405162461bcd60e51b815260040161086f906118cf565b601954601a55601e805460ff60b81b19169055565b60606003805461070a90611895565b600061079a33846107ff85604051806060016040528060258152602001611aa4602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190610fde565b6000610804338484610b7a565b6000546001600160a01b031633146109965760405162461bcd60e51b815260040161086f906118cf565b6001600160a01b0381166109fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ab85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086f565b6001600160a01b038216610b195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161086f565b6001600160a01b038316610c425760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161086f565b601e54600160a01b900460ff1615610c6657610c5f848484611077565b9050610808565b6001600160a01b03841660009081526009602052604090205460ff16158015610ca857506001600160a01b03831660009081526009602052604090205460ff16155b15610d1057601a54821115610d105760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161086f565b30600090815260056020526040902054601c5481108015908190610d3e5750601e54600160a01b900460ff16155b8015610d6257506001600160a01b0385166000908152600a602052604090205460ff165b8015610d775750601e54600160a81b900460ff165b8015610d9c57506001600160a01b03861660009081526007602052604090205460ff16155b8015610da95750601c5484115b15610dcf57601e54600160b01b900460ff1615610dc657601c5491505b610dcf8261115d565b6001600160a01b03861660009081526007602052604081205460ff1680610e0e57506001600160a01b03861660009081526007602052604090205460ff165b610e2257610e1d878787611293565b610e24565b845b601e54909150600160b81b900460ff168015610e5957506001600160a01b03861660009081526008602052604090205460ff16155b15610e9557601b54610e8a82610e84896001600160a01b031660009081526005602052604090205490565b90611018565b1115610e9557600080fd5b601e54600090600160b81b900460ff16158015610eca57506001600160a01b03881660009081526007602052604090205460ff165b610ed45785610ede565b610ede8683611395565b9050610f468160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250600560008c6001600160a01b03166001600160a01b0316815260200190815260200160002054610fde9092919063ffffffff16565b6001600160a01b03808a166000908152600560205260408082209390935590891681522054610f759083611018565b6001600160a01b0380891660008181526005602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc99086815260200190565b60405180910390a36001945050505050610808565b600081848411156110025760405162461bcd60e51b815260040161086f919061176c565b50600061100f848661191a565b95945050505050565b600080611025838561192d565b9050838110156108085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161086f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546110c8918490610fde565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546110f79083611018565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061114b9086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b1790556018546013546000916111939160029161118d91829087906113d7565b90611459565b905060006111a18383611395565b90506111ac8161149b565b60135447906000906111cc906111c3906002611459565b60185490611395565b905060006111ee600261118d8461118d601354886113d790919063ffffffff16565b9050600061120b8361118d601554876113d790919063ffffffff16565b905060006112238261121d8786611395565b90611395565b9050801561124157600b54611241906001600160a01b03168261162e565b811561125d57600c5461125d906001600160a01b03168361162e565b60008311801561126d5750600087115b1561127c5761127c8784611669565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156112d7576112d0606461118d601654866113d790919063ffffffff16565b9050611315565b6001600160a01b0384166000908152600a602052604090205460ff161561131557611312606461118d601754866113d790919063ffffffff16565b90505b801561138f57306000908152600560205260409020546113359082611018565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113869085815260200190565b60405180910390a35b61100f83825b600061080883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fde565b6000826000036113e95750600061079e565b60006113f58385611940565b9050826114028583611957565b146108085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161086f565b600061080883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061173e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114d0576114d0611979565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154d919061198f565b8160018151811061156057611560611979565b6001600160a01b039283166020918202929092010152601d546115869130911684610a56565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115bf9085906000908690309042906004016119f0565b600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611622929190611a2c565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611664573d6000803e3d6000fd5b505050565b601d546116819030906001600160a01b031684610a56565b601d546001600160a01b031663f305d7198230856000806116aa6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611712573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117379190611a4d565b5050505050565b6000818361175f5760405162461bcd60e51b815260040161086f919061176c565b50600061100f8486611957565b600060208083528351808285015260005b818110156117995785810183015185820160400152820161177d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117cf57600080fd5b50565b600080604083850312156117e557600080fd5b82356117f0816117ba565b946020939093013593505050565b60008060006060848603121561181357600080fd5b833561181e816117ba565b9250602084013561182e816117ba565b929592945050506040919091013590565b60006020828403121561185157600080fd5b8135610808816117ba565b6000806040838503121561186f57600080fd5b823561187a816117ba565b9150602083013561188a816117ba565b809150509250929050565b600181811c908216806118a957607f821691505b6020821081036118c957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561079e5761079e611904565b8082018082111561079e5761079e611904565b808202811582820484141761079e5761079e611904565b60008261197457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119a157600080fd5b8151610808816117ba565b600081518084526020808501945080840160005b838110156119e55781516001600160a01b0316875295820195908201906001016119c0565b509495945050505050565b85815284602082015260a060408201526000611a0f60a08301866119ac565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611a4560408301846119ac565b949350505050565b600080600060608486031215611a6257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122003d83284c5a3298ee88f8b5d34de8ad6f4fa45ef88c48509e47ac98ac8bff51264736f6c63430008130033

Deployed Bytecode Sourcemap

12154:10939:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15613:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16775:161;;;;;;;;;;-1:-1:-1;16775:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16775:161:0;1023:187:1;13619:32:0;;;;;;;;;;-1:-1:-1;13619:32:0;;;;-1:-1:-1;;;;;13619:32:0;;;;;;-1:-1:-1;;;;;1397:32:1;;;1379:51;;1367:2;1352:18;13619:32:0;1215:221:1;15890:96:0;;;;;;;;;;-1:-1:-1;15970:8:0;;15890:96;;;1587:25:1;;;1575:2;1560:18;15890:96:0;1441:177:1;13374:31:0;;;;;;;;;;;;;;;;18587:313;;;;;;;;;;-1:-1:-1;18587:313:0;;;;;:::i;:::-;;:::i;13058:37::-;;;;;;;;;;;;;;;;15799:83;;;;;;;;;;-1:-1:-1;15865:9:0;;15799:83;;15865:9;;;;2226:36:1;;2214:2;2199:18;15799:83:0;2084:184:1;16272:218:0;;;;;;;;;;-1:-1:-1;16272:218:0;;;;;:::i;:::-;;:::i;13307:26::-;;;;;;;;;;;;;;;;13715:40;;;;;;;;;;-1:-1:-1;13715:40:0;;;;-1:-1:-1;;;13715:40:0;;;;;;13228:35;;;;;;;;;;;;;;;;13022:29;;;;;;;;;;;;;;;;13146:39;;;;;;;;;;;;;;;;13102:37;;;;;;;;;;;;;;;;13270:28;;;;;;;;;;;;;;;;15994:119;;;;;;;;;;-1:-1:-1;15994:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;16087:18:0;16060:7;16087:18;;;:9;:18;;;;;;;15994:119;1330:148;;;;;;;;;;;;;:::i;:::-;;22976:114;;;;;;;;;;;;;:::i;13461:41::-;;;;;;;;;;;;;;;;12637:50;;;;;;;;;;-1:-1:-1;12637:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13194:27;;;;;;;;;;;;;;;;13509:45;;;;;;;;;;;;;;;;1105:79;;;;;;;;;;-1:-1:-1;1143:7:0;1170:6;-1:-1:-1;;;;;1170:6:0;1105:79;;15704:87;;;;;;;;;;;;;:::i;16498:269::-;;;;;;;;;;-1:-1:-1;16498:269:0;;;;;:::i;:::-;;:::i;12694:41::-;;;;;;;;;;-1:-1:-1;12694:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18412:167;;;;;;;;;;-1:-1:-1;18412:167:0;;;;;:::i;:::-;;:::i;12576:54::-;;;;;;;;;;-1:-1:-1;12576:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12980:35;;;;;;;;;;;;;;;;13658:26;;;;;;;;;;-1:-1:-1;13658:26:0;;;;-1:-1:-1;;;;;13658:26:0;;;13340:27;;;;;;;;;;;;;;;;12526:43;;;;;;;;;;-1:-1:-1;12526:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13762:45;;;;;;;;;;-1:-1:-1;13762:45:0;;;;-1:-1:-1;;;13762:45:0;;;;;;12938:35;;;;;;;;;;;;;;;;16121:143;;;;;;;;;;-1:-1:-1;16121:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16229:18:0;;;16202:7;16229:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16121:143;1486:244;;;;;;;;;;-1:-1:-1;1486:244:0;;;;;:::i;:::-;;:::i;13814:35::-;;;;;;;;;;-1:-1:-1;13814:35:0;;;;-1:-1:-1;;;13814:35:0;;;;;;15613:83;15650:13;15683:5;15676:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15613:83;:::o;16775:161::-;16850:4;16867:39;481:10;16890:7;16899:6;16867:8;:39::i;:::-;-1:-1:-1;16924:4:0;16775:161;;;;;:::o;18587:313::-;18685:4;18702:36;18712:6;18720:9;18731:6;18702:9;:36::i;:::-;-1:-1:-1;18749:121:0;18758:6;481:10;18780:89;18818:6;18780:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18780:19:0;;;;;;:11;:19;;;;;;;;481:10;18780:33;;;;;;;;;;:37;:89::i;:::-;18749:8;:121::i;:::-;-1:-1:-1;18888:4:0;18587:313;;;;;;:::o;16272:218::-;481:10;16360:4;16409:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16409:34:0;;;;;;;;;;16360:4;;16377:83;;16400:7;;16409:50;;16448:10;16409:38;:50::i;1330:148::-;1239:6;;-1:-1:-1;;;;;1239:6:0;481:10;1239:22;1231:67;;;;-1:-1:-1;;;1231:67:0;;;;;;;:::i;:::-;;;;;;;;;1437:1:::1;1421:6:::0;;1400:40:::1;::::0;-1:-1:-1;;;;;1421:6:0;;::::1;::::0;1400:40:::1;::::0;1437:1;;1400:40:::1;1468:1;1451:19:::0;;-1:-1:-1;;;;;;1451:19:0::1;::::0;;1330:148::o;22976:114::-;1239:6;;-1:-1:-1;;;;;1239:6:0;481:10;1239:22;1231:67;;;;-1:-1:-1;;;1231:67:0;;;;;;;:::i;:::-;23039:8:::1;::::0;23030:6:::1;:17:::0;23058:16:::1;:24:::0;;-1:-1:-1;;;;23058:24:0::1;::::0;;22976:114::o;15704:87::-;15743:13;15776:7;15769:14;;;;;:::i;16498:269::-;16591:4;16608:129;481:10;16631:7;16640:96;16679:15;16640:96;;;;;;;;;;;;;;;;;481:10;16640:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16640:34:0;;;;;;;;;;;;:38;:96::i;18412:167::-;18490:4;18507:42;481:10;18531:9;18542:6;18507:9;:42::i;1486:244::-;1239:6;;-1:-1:-1;;;;;1239:6:0;481:10;1239:22;1231:67;;;;-1:-1:-1;;;1231:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1575:22:0;::::1;1567:73;;;::::0;-1:-1:-1;;;1567:73:0;;4074:2:1;1567:73:0::1;::::0;::::1;4056:21:1::0;4113:2;4093:18;;;4086:30;4152:34;4132:18;;;4125:62;-1:-1:-1;;;4203:18:1;;;4196:36;4249:19;;1567:73:0::1;3872:402:1::0;1567:73:0::1;1677:6;::::0;;1656:38:::1;::::0;-1:-1:-1;;;;;1656:38:0;;::::1;::::0;1677:6;::::1;::::0;1656:38:::1;::::0;::::1;1705:6;:17:::0;;-1:-1:-1;;;;;;1705:17:0::1;-1:-1:-1::0;;;;;1705:17:0;;;::::1;::::0;;;::::1;::::0;;1486:244::o;16944:337::-;-1:-1:-1;;;;;17037:19:0;;17029:68;;;;-1:-1:-1;;;17029:68:0;;4481:2:1;17029:68:0;;;4463:21:1;4520:2;4500:18;;;4493:30;4559:34;4539:18;;;4532:62;-1:-1:-1;;;4610:18:1;;;4603:34;4654:19;;17029:68:0;4279:400:1;17029:68:0;-1:-1:-1;;;;;17116:21:0;;17108:68;;;;-1:-1:-1;;;17108:68:0;;4886:2:1;17108:68:0;;;4868:21:1;4925:2;4905:18;;;4898:30;4964:34;4944:18;;;4937:62;-1:-1:-1;;;5015:18:1;;;5008:32;5057:19;;17108:68:0;4684:398:1;17108:68:0;-1:-1:-1;;;;;17189:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17241:32;;1587:25:1;;;17241:32:0;;1560:18:1;17241:32:0;;;;;;;16944:337;;;:::o;18908:1813::-;18995:4;-1:-1:-1;;;;;19022:20:0;;19014:70;;;;-1:-1:-1;;;19014:70:0;;5289:2:1;19014:70:0;;;5271:21:1;5328:2;5308:18;;;5301:30;5367:34;5347:18;;;5340:62;-1:-1:-1;;;5418:18:1;;;5411:35;5463:19;;19014:70:0;5087:401:1;19014:70:0;-1:-1:-1;;;;;19103:23:0;;19095:71;;;;-1:-1:-1;;;19095:71:0;;5695:2:1;19095:71:0;;;5677:21:1;5734:2;5714:18;;;5707:30;5773:34;5753:18;;;5746:62;-1:-1:-1;;;5824:18:1;;;5817:33;5867:19;;19095:71:0;5493:399:1;19095:71:0;19182:6;;-1:-1:-1;;;19182:6:0;;;;19179:1535;;;19222:41;19237:6;19245:9;19256:6;19222:14;:41::i;:::-;19215:48;;;;19179:1535;-1:-1:-1;;;;;19319:25:0;;;;;;:17;:25;;;;;;;;19318:26;:59;;;;-1:-1:-1;;;;;;19349:28:0;;;;;;:17;:28;;;;;;;;19348:29;19318:59;19315:168;;;19416:6;;19406;:16;;19398:69;;;;-1:-1:-1;;;19398:69:0;;6099:2:1;19398:69:0;;;6081:21:1;6138:2;6118:18;;;6111:30;6177:34;6157:18;;;6150:62;-1:-1:-1;;;6228:18:1;;;6221:38;6276:19;;19398:69:0;5897:404:1;19398:69:0;19560:4;19511:28;16087:18;;;:9;:18;;;;;;19636:14;;19612:38;;;;;;;19683:34;;-1:-1:-1;19711:6:0;;-1:-1:-1;;;19711:6:0;;;;19710:7;19683:34;:57;;;;-1:-1:-1;;;;;;19721:19:0;;;;;;:8;:19;;;;;;;;19683:57;:82;;;;-1:-1:-1;19744:21:0;;-1:-1:-1;;;19744:21:0;;;;19683:82;:105;;;;-1:-1:-1;;;;;;19770:18:0;;;;;;:10;:18;;;;;;;;19769:19;19683:105;:132;;;;;19801:14;;19792:6;:23;19683:132;19679:334;;;19853:25;;-1:-1:-1;;;19853:25:0;;;;19850:88;;;19924:14;;19901:37;;19850:88;19957:36;19972:20;19957:14;:36::i;:::-;-1:-1:-1;;;;;20054:18:0;;20031:19;20054:18;;;:10;:18;;;;;;;;;:43;;-1:-1:-1;;;;;;20076:21:0;;;;;;:10;:21;;;;;;;;20054:43;20053:134;;20153:34;20161:6;20169:9;20180:6;20153:7;:34::i;:::-;20053:134;;;20144:6;20053:134;20207:16;;20031:156;;-1:-1:-1;;;;20207:16:0;;;;:53;;;;-1:-1:-1;;;;;;20228:32:0;;;;;;:21;:32;;;;;;;;20227:33;20207:53;20204:135;;;20328:10;;20287:37;20312:11;20287:20;20297:9;-1:-1:-1;;;;;16087:18:0;16060:7;16087:18;;;:9;:18;;;;;;;15994:119;20287:20;:24;;:37::i;:::-;:51;;20279:60;;;;;;20376:16;;20356:15;;-1:-1:-1;;;20376:16:0;;;;20375:17;:39;;;;-1:-1:-1;;;;;;20396:18:0;;;;;;:10;:18;;;;;;;;20375:39;20374:76;;20444:6;20374:76;;;20418:23;:6;20429:11;20418:10;:23::i;:::-;20356:94;;20485:54;20507:7;20485:54;;;;;;;;;;;;;-1:-1:-1;;;20485:54:0;;;:9;:17;20495:6;-1:-1:-1;;;;;20485:17:0;-1:-1:-1;;;;;20485:17:0;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;-1:-1:-1;;;;;20465:17:0;;;;;;;:9;:17;;;;;;:74;;;;20577:20;;;;;;;:37;;20602:11;20577:24;:37::i;:::-;-1:-1:-1;;;;;20554:20:0;;;;;;;:9;:20;;;;;;;:60;;;;20636:40;;;;;;;;;;20664:11;1587:25:1;;1575:2;1560:18;;1441:177;20636:40:0;;;;;;;;20698:4;20691:11;;;;;;;;2771:192;2857:7;2893:12;2885:6;;;;2877:29;;;;-1:-1:-1;;;2877:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2917:9:0;2929:5;2933:1;2929;:5;:::i;:::-;2917:17;2771:192;-1:-1:-1;;;;;2771:192:0:o;2438:181::-;2496:7;;2528:5;2532:1;2528;:5;:::i;:::-;2516:17;;2557:1;2552;:6;;2544:46;;;;-1:-1:-1;;;2544:46:0;;6903:2:1;2544:46:0;;;6885:21:1;6942:2;6922:18;;;6915:30;6981:29;6961:18;;;6954:57;7028:18;;2544:46:0;6701:351:1;20947:330:0;21077:53;;;;;;;;;;;-1:-1:-1;;;21077:53:0;;;;;;;;-1:-1:-1;;;;;21077:17:0;;21040:4;21077:17;;;:9;:17;;;;;;;:53;;21099:6;;21077:21;:53::i;:::-;-1:-1:-1;;;;;21057:17:0;;;;;;;:9;:17;;;;;;:73;;;;21164:20;;;;;;;:32;;21189:6;21164:24;:32::i;:::-;-1:-1:-1;;;;;21141:20:0;;;;;;;:9;:20;;;;;;;:55;;;;21212:35;;;;;;;;;;21240:6;1587:25:1;;1575:2;1560:18;;1441:177;21212:35:0;;;;;;;;-1:-1:-1;21265:4:0;20947:330;;;;;:::o;21285:995::-;14272:6;:13;;-1:-1:-1;;;;14272:13:0;-1:-1:-1;;;14272:13:0;;;21415:11:::1;::::0;21401:8:::1;::::0;14272:13;;21389:45:::1;::::0;21432:1:::1;::::0;21389:38:::1;::::0;;;:7;;:11:::1;:21::i;:::-;:25:::0;::::1;:38::i;:45::-;21367:67:::0;-1:-1:-1;21445:21:0::1;21469:24;:7:::0;21367:67;21469:11:::1;:24::i;:::-;21445:48;;21506:31;21523:13;21506:16;:31::i;:::-;21645:8;::::0;21573:21:::1;::::0;21548:22:::1;::::0;21629:32:::1;::::0;21645:15:::1;::::0;21658:1:::1;21645:12;:15::i;:::-;21629:11;::::0;;:15:::1;:32::i;:::-;21607:54;;21682:26;21711:52;21761:1;21711:45;21744:11;21711:28;21730:8;;21711:14;:18;;:28;;;;:::i;:52::-;21682:81;;21774:28;21805:46;21839:11;21805:29;21824:9;;21805:14;:18;;:29;;;;:::i;:46::-;21774:77:::0;-1:-1:-1;21862:26:0::1;21891:64;21774:77:::0;21891:38:::1;:14:::0;21910:18;21891::::1;:38::i;:::-;:42:::0;::::1;:64::i;:::-;21862:93:::0;-1:-1:-1;21971:22:0;;21968:86:::1;;22021:12;::::0;22008:46:::1;::::0;-1:-1:-1;;;;;22021:12:0::1;22035:18:::0;22008:12:::1;:46::i;:::-;22070:24:::0;;22067:88:::1;;22122:10;::::0;22109:46:::1;::::0;-1:-1:-1;;;;;22122:10:0::1;22134:20:::0;22109:12:::1;:46::i;:::-;22192:1;22171:18;:22;:41;;;;;22211:1;22197:11;:15;22171:41;22168:104;;;22227:45;22240:11;22253:18;22227:12;:45::i;:::-;-1:-1:-1::0;;14308:6:0;:14;;-1:-1:-1;;;;14308:14:0;;;-1:-1:-1;;;;;;21285:995:0:o;17810:594::-;-1:-1:-1;;;;;17971:16:0;;17896:7;17971:16;;;:8;:16;;;;;;17896:7;;17971:16;;17968:195;;;18016:28;18040:3;18016:19;18027:7;;18016:6;:10;;:19;;;;:::i;:28::-;18004:40;;17968:195;;;-1:-1:-1;;;;;18074:19:0;;;;;;:8;:19;;;;;;;;18071:92;;;18122:29;18147:3;18122:20;18133:8;;18122:6;:10;;:20;;;;:::i;:29::-;18110:41;;18071:92;18186:13;;18183:173;;18261:4;18243:24;;;;:9;:24;;;;;;:39;;18272:9;18243:28;:39::i;:::-;18234:4;18216:24;;;;:9;:24;;;;;;;:66;;;;18302:42;;-1:-1:-1;;;;;18302:42:0;;;;;;;18334:9;1587:25:1;;1575:2;1560:18;;1441:177;18302:42:0;;;;;;;;18183:173;18375:21;:6;18386:9;2627:136;2685:7;2712:43;2716:1;2719;2712:43;;;;;;;;;;;;;;;;;:3;:43::i;2971:250::-;3029:7;3053:1;3058;3053:6;3049:47;;-1:-1:-1;3083:1:0;3076:8;;3049:47;3108:9;3120:5;3124:1;3120;:5;:::i;:::-;3108:17;-1:-1:-1;3153:1:0;3144:5;3148:1;3108:17;3144:5;:::i;:::-;:10;3136:56;;;;-1:-1:-1;;;3136:56:0;;7654:2:1;3136:56:0;;;7636:21:1;7693:2;7673:18;;;7666:30;7732:34;7712:18;;;7705:62;-1:-1:-1;;;7783:18:1;;;7776:31;7824:19;;3136:56:0;7452:397:1;3229:132:0;3287:7;3314:39;3318:1;3321;3314:39;;;;;;;;;;;;;;;;;:3;:39::i;22292:666::-;22442:16;;;22456:1;22442:16;;;;;;;;22418:21;;22442:16;;;;;;;;;;-1:-1:-1;22442:16:0;22418:40;;22487:4;22469;22474:1;22469:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22469:23:0;;;:7;;;;;;;;;;:23;;;;22513:15;;:22;;;-1:-1:-1;;;22513:22:0;;;;:15;;;;;:20;;:22;;;;;22469:7;;22513:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22503:4;22508:1;22503:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22503:32:0;;;:7;;;;;;;;;:32;22580:15;;22548:62;;22565:4;;22580:15;22598:11;22548:8;:62::i;:::-;22649:15;;:240;;-1:-1:-1;;;22649:240:0;;-1:-1:-1;;;;;22649:15:0;;;;:66;;:240;;22730:11;;22649:15;;22800:4;;22827;;22863:15;;22649:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22915:35;22932:11;22945:4;22915:35;;;;;;;:::i;:::-;;;;;;;;22347:611;22292:666;:::o;20727:118::-;20811:26;;-1:-1:-1;;;;;20811:18:0;;;:26;;;;;20830:6;;20811:26;;;;20830:6;20811:18;:26;;;;;;;;;;;;;;;;;;;;;20727:118;;:::o;17289:513::-;17469:15;;17437:62;;17454:4;;-1:-1:-1;;;;;17469:15:0;17487:11;17437:8;:62::i;:::-;17542:15;;-1:-1:-1;;;;;17542:15:0;:31;17581:9;17614:4;17634:11;17542:15;;17746:7;1143;1170:6;-1:-1:-1;;;;;1170:6:0;;1105:79;17746:7;17542:252;;;;;;-1:-1:-1;;;;;;17542:252:0;;;-1:-1:-1;;;;;10123:15:1;;;17542:252:0;;;10105:34:1;10155:18;;;10148:34;;;;10198:18;;;10191:34;;;;10241:18;;;10234:34;10305:15;;;10284:19;;;10277:44;17768:15:0;10337:19:1;;;10330:35;10039:19;;17542:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17289:513;;:::o;3369:278::-;3455:7;3490:12;3483:5;3475:28;;;;-1:-1:-1;;;3475:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3514:9:0;3526:5;3530:1;3526;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1623:456::-;1700:6;1708;1716;1769:2;1757:9;1748:7;1744:23;1740:32;1737:52;;;1785:1;1782;1775:12;1737:52;1824:9;1811:23;1843:31;1868:5;1843:31;:::i;:::-;1893:5;-1:-1:-1;1950:2:1;1935:18;;1922:32;1963:33;1922:32;1963:33;:::i;:::-;1623:456;;2015:7;;-1:-1:-1;;;2069:2:1;2054:18;;;;2041:32;;1623:456::o;2273:247::-;2332:6;2385:2;2373:9;2364:7;2360:23;2356:32;2353:52;;;2401:1;2398;2391:12;2353:52;2440:9;2427:23;2459:31;2484:5;2459:31;:::i;2733:388::-;2801:6;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2917:9;2904:23;2936:31;2961:5;2936:31;:::i;:::-;2986:5;-1:-1:-1;3043:2:1;3028:18;;3015:32;3056:33;3015:32;3056:33;:::i;:::-;3108:7;3098:17;;;2733:388;;;;;:::o;3126:380::-;3205:1;3201:12;;;;3248;;;3269:61;;3323:4;3315:6;3311:17;3301:27;;3269:61;3376:2;3368:6;3365:14;3345:18;3342:38;3339:161;;3422:10;3417:3;3413:20;3410:1;3403:31;3457:4;3454:1;3447:15;3485:4;3482:1;3475:15;3339:161;;3126:380;;;:::o;3511:356::-;3713:2;3695:21;;;3732:18;;;3725:30;3791:34;3786:2;3771:18;;3764:62;3858:2;3843:18;;3511:356::o;6306:127::-;6367:10;6362:3;6358:20;6355:1;6348:31;6398:4;6395:1;6388:15;6422:4;6419:1;6412:15;6438:128;6505:9;;;6526:11;;;6523:37;;;6540:18;;:::i;6571:125::-;6636:9;;;6657:10;;;6654:36;;;6670:18;;:::i;7057:168::-;7130:9;;;7161;;7178:15;;;7172:22;;7158:37;7148:71;;7199:18;;:::i;7230:217::-;7270:1;7296;7286:132;;7340:10;7335:3;7331:20;7328:1;7321:31;7375:4;7372:1;7365:15;7403:4;7400:1;7393:15;7286:132;-1:-1:-1;7432:9:1;;7230:217::o;7986:127::-;8047:10;8042:3;8038:20;8035:1;8028:31;8078:4;8075:1;8068:15;8102:4;8099:1;8092:15;8118:251;8188:6;8241:2;8229:9;8220:7;8216:23;8212:32;8209:52;;;8257:1;8254;8247:12;8209:52;8289:9;8283:16;8308:31;8333:5;8308:31;:::i;8374:461::-;8427:3;8465:5;8459:12;8492:6;8487:3;8480:19;8518:4;8547:2;8542:3;8538:12;8531:19;;8584:2;8577:5;8573:14;8605:1;8615:195;8629:6;8626:1;8623:13;8615:195;;;8694:13;;-1:-1:-1;;;;;8690:39:1;8678:52;;8750:12;;;;8785:15;;;;8726:1;8644:9;8615:195;;;-1:-1:-1;8826:3:1;;8374:461;-1:-1:-1;;;;;8374:461:1:o;8840:582::-;9139:6;9128:9;9121:25;9182:6;9177:2;9166:9;9162:18;9155:34;9225:3;9220:2;9209:9;9205:18;9198:31;9102:4;9246:57;9298:3;9287:9;9283:19;9275:6;9246:57;:::i;:::-;-1:-1:-1;;;;;9339:32:1;;;;9334:2;9319:18;;9312:60;-1:-1:-1;9403:3:1;9388:19;9381:35;9238:65;8840:582;-1:-1:-1;;;8840:582:1:o;9427:332::-;9634:6;9623:9;9616:25;9677:2;9672;9661:9;9657:18;9650:30;9597:4;9697:56;9749:2;9738:9;9734:18;9726:6;9697:56;:::i;:::-;9689:64;9427:332;-1:-1:-1;;;;9427:332:1:o;10376:306::-;10464:6;10472;10480;10533:2;10521:9;10512:7;10508:23;10504:32;10501:52;;;10549:1;10546;10539:12;10501:52;10578:9;10572:16;10562:26;;10628:2;10617:9;10613:18;10607:25;10597:35;;10672:2;10661:9;10657:18;10651:25;10641:35;;10376:306;;;;;:::o

Swarm Source

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