ETH Price: $3,476.60 (+2.01%)
Gas: 8 Gwei

Token

Cool Spot (7up)
 

Overview

Max Total Supply

7,000,000,000 7up

Holders

302

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,987,395.044140677 7up

Value
$0.00
0xd2b38994aa6f4831fb164ad4a4c2e62507ab34c8
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:
sevenup

Compiler Version
v0.8.21+commit.d9974bed

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-09
*/

/**
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0kxdolllccccccloodxO0XNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKkdl:;'.........'''.........,;:ldOXWMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0dc;'...'',,,,,,,,,,,,,,,,,,,,,,,''...,:lxKWMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl;...',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..':o0NMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMNOl,..',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..;o0WMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMXd;..',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.'ckNMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMWKo'.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..;xNMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMXo'.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..;kNMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMNk,.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..:0WMMMMMMMM
MMMMMMMMMMMMMMMMMMKc..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''....ldolccl0M
MMMMMMMMMMMMMMMMWO;.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''..............               .OM
MMMMMMMMMMMMMMMWk'.',,,,,,,,,,,,,,,,,,,,,,,'''''................                                 oWM
MMMMMMMMMMMMMMWx'.,,,,,,,'''''..............                        ..   ,o;                    :XMM
MMMMMWWNXXK0OOo. .........                                         :0d. ;0Kc                   .OMMM
MKo:;,,'....                .   ,do'          ...                 :0k' ,0Kc                   ..cNMM
M0,                       .ox' c0Xo.         .',,'...            ;0k' ;OKl.                 ..,..xWM
MM0;                      l0c.:KXo.         .',,,,,,'..         .ld. ;0Xo.                ..',,,.;KM
MMMXo.                   :0l.,OXd.        ..',,,,,,,,,,'..          .kXo.               ..',,,,,..dW
MMMMWO:.                ,xl.,OXx.        .',,,,,,,,,,,,,,,'....      ,,.            ...',,,,,,,,'.:X
MMMMMMNOc.              ..  ,oc.      ..',,,,,,,,,,,,,,,,,,,,,,'........   .......'',,,,,,,,,,,,,.'O
MMMMMMMMWKd.                       ...',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''',,,,,,,,,,,,,,,,,,,,,..x
MMMMMMMMMMX:.....              ...',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..d
MMMMMMMMMMX:.,,,,'...........'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..d
MMMMMMMMMMNc.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..d
MMMMMMMMMMWl.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..k
MMMMMMMMMMMx..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,K
MMMMMMMMMMMK,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.lW
MMMMMMMMMMMWo.',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.'OM
MMMMMMMMMMMM0,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.lNM
MMMMMMMMMMMMWx..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.;KMM
MMMMMMMMMMMMMNl..,,,,,,,,,,,,,,,,,,,,,,,,,,'.....'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..kMMM
MMMMMMMMMMMMMMXc.',,,,,,,,,,,,,,,,,,,,,,,'.       ..',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..xWMMM
MMMMMMMMMMMMMMMXc.',,,,,,,,,,,,,,,,,,,,,'.           .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..xWMMMM
MMMMMMMMMMMMMMMMNo..,,,,,,,,,,,,,,,,,,,,.            .',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.'kWMMMMM
MMMMMMMMMMMMMMMMMNx'.',,,,,,,,,,,,,,,,,,'.           .',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.;0WMMMMMM
MMMMMMMMMMMMMMMMMMW0:..,,,,,,,,,,,,,,,,,,..         .',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..oXMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNk,.',,,,,,,,,,,,,,,,,'...  ....',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..:OWMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMXd,.',,,,,,,,,,,,,,,,,,'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..:kNMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMXd;..',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..:kNMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMNkc'..',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..,o0WMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMWKd:'..',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'..,lkNMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;'..'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,'...,:oONMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKkoc;'....''',,,,,,,,,,,,,''.....,:cdOXWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKOxolc:;;,,,''''',,,;;:cldk0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXKK0OkkkOO0KXNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function 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 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 sevenup is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Cool Spot';
    string private constant _symbol = '7up';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 7000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 100; // 10000;
    uint256 private _maxTransferPercent = 100;
    uint256 private _maxWalletPercent = 100;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private liquidityFee = 200;
    uint256 private marketingFee = 1600;
    uint256 private developmentFee = 200;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 4000;
    uint256 private transferFee = 2000;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping; 
    uint256 public swapThreshold = ( _totalSupply * 100 ) / 5000;
    uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xf5793E187dBAd964622eb110e338e441869Eb774; 
    address internal marketing_receiver = 0xea354433d64072b9bBe58c85C85976448c6A1559;
    address internal liquidity_receiver = 0xf5793E187dBAd964622eb110e338e441869Eb774;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function enableTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function setisfeeExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(address(0)));}
    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setTaxes(uint256 _liquidity, uint256 _marketing, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5), "totalFee and sellFee cannot be more than 10%");
    }

    function setLimits(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000;
        uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function changeReceiverAddresses(address _liquidity_receiver, address _marketing_receiver, address _development_receiver) external onlyOwner {
        liquidity_receiver = _liquidity_receiver;
        marketing_receiver = _marketing_receiver;
        development_receiver = _development_receiver;
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");}
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(sender != pair){require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(1) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function changeSwapthreshold(uint256 _swapThreshold) public onlyOwner {
        swapThreshold = _swapThreshold;
    
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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);
    }

}

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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTransferAmount","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":"_maxWalletToken","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":[{"internalType":"address","name":"_liquidity_receiver","type":"address"},{"internalType":"address","name":"_marketing_receiver","type":"address"},{"internalType":"address","name":"_development_receiver","type":"address"}],"name":"changeReceiverAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"changeSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisfeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200047c565b62000023906401a13b860062000493565b600181815560646002819055600381905560048190556009805460ff60a01b1916905560c8600a819055610640600b55600c556107d0600d819055610fa0600e55600f556127106010556011805460ff1916909217909155611388916200008a9162000493565b620000969190620004ad565b601455620186a0600154600a620000ae919062000493565b620000ba9190620004ad565b601555601680546001600160a01b031990811673f5793e187dbad964622eb110e338e441869eb77490811790925560178054821673ea354433d64072b9bbe58c85c85976448c6a15591790556018805490911690911790553480156200011e575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000183573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a99190620004cd565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021b9190620004cd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000266573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028c9190620004cd565b600880546001600160a01b038581166001600160a01b031992831617909255600980548484169216919091179055305f908152600760209081526040808320805460ff19908116600190811790925560185486168552828520805482168317905560175486168552828520805482168317905560165490951684528184208054861682179055338085528285208054909616821790955554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004f5565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003c157815f1904821115620003a557620003a56200036d565b80851615620003b357918102915b93841c939080029062000386565b509250929050565b5f82620003d95750600162000476565b81620003e757505f62000476565b81600181146200040057600281146200040b576200042b565b600191505062000476565b60ff8411156200041f576200041f6200036d565b50506001821b62000476565b5060208310610133831016604e8410600b841016171562000450575081810a62000476565b6200045c838362000381565b805f19048211156200047257620004726200036d565b0290505b92915050565b5f6200048c60ff841683620003c9565b9392505050565b80820281158282048414176200047657620004766200036d565b5f82620004c857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004de575f80fd5b81516001600160a01b03811681146200048c575f80fd5b611a2a80620005035f395ff3fe60806040526004361061014a575f3560e01c806378109e54116100b35780639abba4e61161006d5780639abba4e6146103cd578063a8aa1b31146103ec578063a9059cbb1461040b578063d37e91771461042a578063dd62ed3e14610449578063f2fde38b1461048d575f80fd5b806378109e54146103175780637d1db4a51461032b57806383ddf8281461033f578063893d20e81461035e5780638a8c523c1461038e57806395d89b41146103a2575f80fd5b80631f976b7e116101045780631f976b7e1461023a57806323b872dd1461024e5780632f54bf6e1461026d578063313ce5671461029a5780633f4218e0146102b557806370a08231146102e3575f80fd5b80630445b6671461015557806304d4c9901461017d57806306fdde031461019e578063095ea7b3146101d857806318160ddd14610207578063189ae5f21461021b575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a60145481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5061019c610197366004611660565b6104ac565b005b3480156101a9575f80fd5b5060408051808201909152600981526810dbdbdb0814dc1bdd60ba1b60208201525b604051610174919061169f565b3480156101e3575f80fd5b506101f76101f2366004611701565b610593565b6040519015158152602001610174565b348015610212575f80fd5b5061016a6105a9565b348015610226575f80fd5b5061019c61023536600461172b565b6105e5565b348015610245575f80fd5b5061016a610730565b348015610259575f80fd5b506101f7610268366004611754565b610753565b348015610278575f80fd5b506101f7610287366004611792565b5f546001600160a01b0391821691161490565b3480156102a5575f80fd5b5060405160098152602001610174565b3480156102c0575f80fd5b506101f76102cf366004611792565b60076020525f908152604090205460ff1681565b3480156102ee575f80fd5b5061016a6102fd366004611792565b6001600160a01b03165f9081526005602052604090205490565b348015610322575f80fd5b5061016a6107bb565b348015610336575f80fd5b5061016a6107ca565b34801561034a575f80fd5b5061019c6103593660046117ad565b6107d9565b348015610369575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610174565b348015610399575f80fd5b5061019c610841565b3480156103ad575f80fd5b5060408051808201909152600381526203775760ec1b60208201526101cb565b3480156103d8575f80fd5b5061019c6103e73660046117f5565b61087f565b3480156103f7575f80fd5b50600954610376906001600160a01b031681565b348015610416575f80fd5b506101f7610425366004611701565b6108ad565b348015610435575f80fd5b5061019c61044436600461180c565b6108b9565b348015610454575f80fd5b5061016a610463366004611847565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610498575f80fd5b5061019c6104a7366004611792565b61090c565b5f546001600160a01b031633146104de5760405162461bcd60e51b81526004016104d590611873565b60405180910390fd5b600a869055600b859055600c849055600d839055600e829055600f81905560105461050a906005610988565b600d541115801561052a5750601054610524906005610988565b600e5411155b61058b5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2031302560a01b60648201526084016104d5565b505050505050565b5f61059f338484610993565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546105e091610ab6565b905090565b5f546001600160a01b0316331461060e5760405162461bcd60e51b81526004016104d590611873565b5f6127108461061b6105a9565b61062591906118a7565b61062f91906118be565b90505f6127108461063e6105a9565b61064891906118a7565b61065291906118be565b90505f612710846106616105a9565b61066b91906118a7565b61067591906118be565b60028790556003869055600485905590505f6106a66103e86106a0600561069a6105a9565b90610ac1565b90610988565b90508084101580156106b85750808310155b80156106c45750808210155b6107275760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104d5565b50505050505050565b5f60105460035461073f6105a9565b61074991906118a7565b6105e091906118be565b5f61075f848484610acc565b6107b084336107ab856040518060600160405280602881526020016119cd602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190610bee565b610993565b5060015b9392505050565b5f60105460045461073f6105a9565b5f60105460025461073f6105a9565b5f546001600160a01b031633146108025760405162461bcd60e51b81526004016104d590611873565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560168054919093169116179055565b5f546001600160a01b0316331461086a5760405162461bcd60e51b81526004016104d590611873565b6009805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146108a85760405162461bcd60e51b81526004016104d590611873565b601455565b5f61059f338484610acc565b5f546001600160a01b031633146108e25760405162461bcd60e51b81526004016104d590611873565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109355760405162461bcd60e51b81526004016104d590611873565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f6107b482846118be565b6001600160a01b0383166109f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d5565b6001600160a01b038216610a565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d5565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6107b482846118dd565b5f6107b482846118a7565b610ad7838383610c19565b610ae18383610dc6565b610aec838383610e59565b610af68383610f47565b610b01838383610f9c565b610b0c8383836110cf565b6001600160a01b0383165f90815260056020526040902054610b2e9082610ab6565b6001600160a01b0384165f90815260056020526040812091909155610b5384846110f3565b610b5d5781610b68565b610b68848484611137565b6001600160a01b0384165f90815260056020526040902054909150610b8d90826111f2565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610be09085815260200190565b60405180910390a350505050565b5f8184841115610c115760405162461bcd60e51b81526004016104d5919061169f565b505050900390565b6001600160a01b038316610c7d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d5565b6001600160a01b038216610cdf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d5565b5f8111610d405760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d5565b6001600160a01b0383165f90815260056020526040902054811115610dc15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104d5565b505050565b6001600160a01b0382165f9081526007602052604090205460ff16158015610e0657506001600160a01b0381165f9081526007602052604090205460ff16155b15610e5557600954600160a01b900460ff16610e555760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104d5565b5050565b6001600160a01b0383165f9081526007602052604090205460ff16158015610e9957506001600160a01b0382165f9081526007602052604090205460ff16155b8015610eb357506009546001600160a01b03838116911614155b8015610eca57506001600160a01b03821661dead14155b15610dc157610ed76107bb565b6001600160a01b0383165f90815260056020526040902054610ef990836111f2565b1115610dc15760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104d5565b6009546001600160a01b038281169116148015610f7c57506001600160a01b0382165f9081526007602052604090205460ff16155b15610e5557600160125f828254610f9391906118f0565b90915550505050565b6009546001600160a01b0384811691161461104057610fb9610730565b81111580610fde57506001600160a01b0383165f9081526007602052604090205460ff165b8061100057506001600160a01b0382165f9081526007602052604090205460ff165b6110405760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104d5565b6110486107ca565b8111158061106d57506001600160a01b0383165f9081526007602052604090205460ff165b8061108f57506001600160a01b0382165f9081526007602052604090205460ff165b610dc15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104d5565b6110da8383836111fd565b15610dc1576110ea6014546112ad565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff161580156107b45750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f80611143858561141d565b11156111eb575f611165611157868661141d565b60105461069a908690610988565b305f9081526005602052604090205490915061118190826111f2565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d19085815260200190565b60405180910390a36111e38382610ab6565b9150506107b4565b5092915050565b5f6107b482846118f0565b601554601454305f9081526005602052604081205460135491938510159211159060ff16158015611230575060115460ff165b80156112455750600954600160a01b900460ff165b801561124e5750815b801561127257506001600160a01b0386165f9081526007602052604090205460ff16155b801561128b57506009546001600160a01b038681169116145b801561129a5750600160125410155b80156112a35750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f936112e69360029361069a9391926112e09283916111f2565b906111f2565b90505f611302826106a0600a5486610ac190919063ffffffff16565b90505f61130f8483610ab6565b90504761131b82611467565b5f6113264783610ab6565b90505f611348611341600a5488610ab690919063ffffffff16565b8390610988565b90505f611360600a5483610ac190919063ffffffff16565b905080156113725761137286826115af565b600b545f906113869061069a856002610ac1565b905080156113c7576017546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113c5573d5f803e3d5ffd5b505b478015611407576016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611405573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b039081169083160361143e5750600e546105a3565b6009546001600160a01b039081169084160361145d5750600d546105a3565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061149a5761149a611903565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115159190611917565b8160018151811061152857611528611903565b6001600160a01b03928316602091820292909201015260085461154e9130911684610993565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906115869085905f90869030904290600401611932565b5f604051808303815f87803b15801561159d575f80fd5b505af115801561058b573d5f803e3d5ffd5b6008546115c79030906001600160a01b031684610993565b60085460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611634573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061165991906119a1565b5050505050565b5f805f805f8060c08789031215611675575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b818110156116ca578581018301518582016040015282016116ae565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fe575f80fd5b50565b5f8060408385031215611712575f80fd5b823561171d816116ea565b946020939093013593505050565b5f805f6060848603121561173d575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611766575f80fd5b8335611771816116ea565b92506020840135611781816116ea565b929592945050506040919091013590565b5f602082840312156117a2575f80fd5b81356107b4816116ea565b5f805f606084860312156117bf575f80fd5b83356117ca816116ea565b925060208401356117da816116ea565b915060408401356117ea816116ea565b809150509250925092565b5f60208284031215611805575f80fd5b5035919050565b5f806040838503121561181d575f80fd5b8235611828816116ea565b91506020830135801515811461183c575f80fd5b809150509250929050565b5f8060408385031215611858575f80fd5b8235611863816116ea565b9150602083013561183c816116ea565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105a3576105a3611893565b5f826118d857634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105a3576105a3611893565b808201808211156105a3576105a3611893565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611927575f80fd5b81516107b4816116ea565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119805784516001600160a01b03168352938301939183019160010161195b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156119b3575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d75447491237ed0bd2363a58a021d664186802c5de6176c21ee242a28fb8783764736f6c63430008150033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c806378109e54116100b35780639abba4e61161006d5780639abba4e6146103cd578063a8aa1b31146103ec578063a9059cbb1461040b578063d37e91771461042a578063dd62ed3e14610449578063f2fde38b1461048d575f80fd5b806378109e54146103175780637d1db4a51461032b57806383ddf8281461033f578063893d20e81461035e5780638a8c523c1461038e57806395d89b41146103a2575f80fd5b80631f976b7e116101045780631f976b7e1461023a57806323b872dd1461024e5780632f54bf6e1461026d578063313ce5671461029a5780633f4218e0146102b557806370a08231146102e3575f80fd5b80630445b6671461015557806304d4c9901461017d57806306fdde031461019e578063095ea7b3146101d857806318160ddd14610207578063189ae5f21461021b575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a60145481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5061019c610197366004611660565b6104ac565b005b3480156101a9575f80fd5b5060408051808201909152600981526810dbdbdb0814dc1bdd60ba1b60208201525b604051610174919061169f565b3480156101e3575f80fd5b506101f76101f2366004611701565b610593565b6040519015158152602001610174565b348015610212575f80fd5b5061016a6105a9565b348015610226575f80fd5b5061019c61023536600461172b565b6105e5565b348015610245575f80fd5b5061016a610730565b348015610259575f80fd5b506101f7610268366004611754565b610753565b348015610278575f80fd5b506101f7610287366004611792565b5f546001600160a01b0391821691161490565b3480156102a5575f80fd5b5060405160098152602001610174565b3480156102c0575f80fd5b506101f76102cf366004611792565b60076020525f908152604090205460ff1681565b3480156102ee575f80fd5b5061016a6102fd366004611792565b6001600160a01b03165f9081526005602052604090205490565b348015610322575f80fd5b5061016a6107bb565b348015610336575f80fd5b5061016a6107ca565b34801561034a575f80fd5b5061019c6103593660046117ad565b6107d9565b348015610369575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610174565b348015610399575f80fd5b5061019c610841565b3480156103ad575f80fd5b5060408051808201909152600381526203775760ec1b60208201526101cb565b3480156103d8575f80fd5b5061019c6103e73660046117f5565b61087f565b3480156103f7575f80fd5b50600954610376906001600160a01b031681565b348015610416575f80fd5b506101f7610425366004611701565b6108ad565b348015610435575f80fd5b5061019c61044436600461180c565b6108b9565b348015610454575f80fd5b5061016a610463366004611847565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610498575f80fd5b5061019c6104a7366004611792565b61090c565b5f546001600160a01b031633146104de5760405162461bcd60e51b81526004016104d590611873565b60405180910390fd5b600a869055600b859055600c849055600d839055600e829055600f81905560105461050a906005610988565b600d541115801561052a5750601054610524906005610988565b600e5411155b61058b5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2031302560a01b60648201526084016104d5565b505050505050565b5f61059f338484610993565b5060015b92915050565b5f80805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546001546105e091610ab6565b905090565b5f546001600160a01b0316331461060e5760405162461bcd60e51b81526004016104d590611873565b5f6127108461061b6105a9565b61062591906118a7565b61062f91906118be565b90505f6127108461063e6105a9565b61064891906118a7565b61065291906118be565b90505f612710846106616105a9565b61066b91906118a7565b61067591906118be565b60028790556003869055600485905590505f6106a66103e86106a0600561069a6105a9565b90610ac1565b90610988565b90508084101580156106b85750808310155b80156106c45750808210155b6107275760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104d5565b50505050505050565b5f60105460035461073f6105a9565b61074991906118a7565b6105e091906118be565b5f61075f848484610acc565b6107b084336107ab856040518060600160405280602881526020016119cd602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190610bee565b610993565b5060015b9392505050565b5f60105460045461073f6105a9565b5f60105460025461073f6105a9565b5f546001600160a01b031633146108025760405162461bcd60e51b81526004016104d590611873565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560168054919093169116179055565b5f546001600160a01b0316331461086a5760405162461bcd60e51b81526004016104d590611873565b6009805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146108a85760405162461bcd60e51b81526004016104d590611873565b601455565b5f61059f338484610acc565b5f546001600160a01b031633146108e25760405162461bcd60e51b81526004016104d590611873565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109355760405162461bcd60e51b81526004016104d590611873565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f6107b482846118be565b6001600160a01b0383166109f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d5565b6001600160a01b038216610a565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d5565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6107b482846118dd565b5f6107b482846118a7565b610ad7838383610c19565b610ae18383610dc6565b610aec838383610e59565b610af68383610f47565b610b01838383610f9c565b610b0c8383836110cf565b6001600160a01b0383165f90815260056020526040902054610b2e9082610ab6565b6001600160a01b0384165f90815260056020526040812091909155610b5384846110f3565b610b5d5781610b68565b610b68848484611137565b6001600160a01b0384165f90815260056020526040902054909150610b8d90826111f2565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610be09085815260200190565b60405180910390a350505050565b5f8184841115610c115760405162461bcd60e51b81526004016104d5919061169f565b505050900390565b6001600160a01b038316610c7d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d5565b6001600160a01b038216610cdf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d5565b5f8111610d405760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d5565b6001600160a01b0383165f90815260056020526040902054811115610dc15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104d5565b505050565b6001600160a01b0382165f9081526007602052604090205460ff16158015610e0657506001600160a01b0381165f9081526007602052604090205460ff16155b15610e5557600954600160a01b900460ff16610e555760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104d5565b5050565b6001600160a01b0383165f9081526007602052604090205460ff16158015610e9957506001600160a01b0382165f9081526007602052604090205460ff16155b8015610eb357506009546001600160a01b03838116911614155b8015610eca57506001600160a01b03821661dead14155b15610dc157610ed76107bb565b6001600160a01b0383165f90815260056020526040902054610ef990836111f2565b1115610dc15760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104d5565b6009546001600160a01b038281169116148015610f7c57506001600160a01b0382165f9081526007602052604090205460ff16155b15610e5557600160125f828254610f9391906118f0565b90915550505050565b6009546001600160a01b0384811691161461104057610fb9610730565b81111580610fde57506001600160a01b0383165f9081526007602052604090205460ff165b8061100057506001600160a01b0382165f9081526007602052604090205460ff165b6110405760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104d5565b6110486107ca565b8111158061106d57506001600160a01b0383165f9081526007602052604090205460ff165b8061108f57506001600160a01b0382165f9081526007602052604090205460ff165b610dc15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104d5565b6110da8383836111fd565b15610dc1576110ea6014546112ad565b5f601255505050565b6001600160a01b0382165f9081526007602052604081205460ff161580156107b45750506001600160a01b03165f9081526007602052604090205460ff1615919050565b5f80611143858561141d565b11156111eb575f611165611157868661141d565b60105461069a908690610988565b305f9081526005602052604090205490915061118190826111f2565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d19085815260200190565b60405180910390a36111e38382610ab6565b9150506107b4565b5092915050565b5f6107b482846118f0565b601554601454305f9081526005602052604081205460135491938510159211159060ff16158015611230575060115460ff165b80156112455750600954600160a01b900460ff165b801561124e5750815b801561127257506001600160a01b0386165f9081526007602052604090205460ff16155b801561128b57506009546001600160a01b038681169116145b801561129a5750600160125410155b80156112a35750805b9695505050505050565b6013805460ff19166001908117909155600c54600b54600a545f936112e69360029361069a9391926112e09283916111f2565b906111f2565b90505f611302826106a0600a5486610ac190919063ffffffff16565b90505f61130f8483610ab6565b90504761131b82611467565b5f6113264783610ab6565b90505f611348611341600a5488610ab690919063ffffffff16565b8390610988565b90505f611360600a5483610ac190919063ffffffff16565b905080156113725761137286826115af565b600b545f906113869061069a856002610ac1565b905080156113c7576017546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113c5573d5f803e3d5ffd5b505b478015611407576016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611405573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6009545f906001600160a01b039081169083160361143e5750600e546105a3565b6009546001600160a01b039081169084160361145d5750600d546105a3565b50600f5492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061149a5761149a611903565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115159190611917565b8160018151811061152857611528611903565b6001600160a01b03928316602091820292909201015260085461154e9130911684610993565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906115869085905f90869030904290600401611932565b5f604051808303815f87803b15801561159d575f80fd5b505af115801561058b573d5f803e3d5ffd5b6008546115c79030906001600160a01b031684610993565b60085460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611634573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061165991906119a1565b5050505050565b5f805f805f8060c08789031215611675575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b818110156116ca578581018301518582016040015282016116ae565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fe575f80fd5b50565b5f8060408385031215611712575f80fd5b823561171d816116ea565b946020939093013593505050565b5f805f6060848603121561173d575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611766575f80fd5b8335611771816116ea565b92506020840135611781816116ea565b929592945050506040919091013590565b5f602082840312156117a2575f80fd5b81356107b4816116ea565b5f805f606084860312156117bf575f80fd5b83356117ca816116ea565b925060208401356117da816116ea565b915060408401356117ea816116ea565b809150509250925092565b5f60208284031215611805575f80fd5b5035919050565b5f806040838503121561181d575f80fd5b8235611828816116ea565b91506020830135801515811461183c575f80fd5b809150509250929050565b5f8060408385031215611858575f80fd5b8235611863816116ea565b9150602083013561183c816116ea565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105a3576105a3611893565b5f826118d857634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105a3576105a3611893565b808201808211156105a3576105a3611893565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611927575f80fd5b81516107b4816116ea565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119805784516001600160a01b03168352938301939183019160010161195b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156119b3575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d75447491237ed0bd2363a58a021d664186802c5de6176c21ee242a28fb8783764736f6c63430008150033

Deployed Bytecode Sourcemap

9417:11634:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10496:60;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10496:60:0;;;;;;;;14486:482;;;;;;;;;;-1:-1:-1;14486:482:0;;;;;:::i;:::-;;:::i;:::-;;11704:67;;;;;;;;;;-1:-1:-1;11764:5:0;;;;;;;;;;;;-1:-1:-1;;;11764:5:0;;;;11704:67;;;;;;;:::i;12723:133::-;;;;;;;;;;-1:-1:-1;12723:133:0;;;;;:::i;:::-;;:::i;:::-;;;1898:14:1;;1891:22;1873:41;;1861:2;1846:18;12723:133:0;1733:187:1;12862:111:0;;;;;;;;;;;;;:::i;14976:580::-;;;;;;;;;;-1:-1:-1;14976:580:0;;;;;:::i;:::-;;:::i;13218:119::-;;;;;;;;;;;;;:::i;20394:309::-;;;;;;;;;;-1:-1:-1;20394:309:0;;;;;:::i;:::-;;:::i;7797:87::-;;;;;;;;;;-1:-1:-1;7797:87:0;;;;;:::i;:::-;7852:4;7877:5;-1:-1:-1;;;;;7866:16:0;;;7877:5;;7866:16;;7797:87;11854:67;;;;;;;;;;-1:-1:-1;11854:67:0;;9624:1;3101:36:1;;3089:2;3074:18;11854:67:0;2959:184:1;9973:44:0;;;;;;;;;;-1:-1:-1;9973:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12085:103;;;;;;;;;;-1:-1:-1;12085:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;12168:18:0;12151:7;12168:18;;;:9;:18;;;;;;;12085:103;12979:114;;;;;;;;;;;;;:::i;13099:113::-;;;;;;;;;;;;;:::i;15564:306::-;;;;;;;;;;-1:-1:-1;15564:306:0;;;;;:::i;:::-;;:::i;12001:78::-;;;;;;;;;;-1:-1:-1;12053:7:0;12071:5;-1:-1:-1;;;;;12071:5:0;12001:78;;;-1:-1:-1;;;;;3846:32:1;;;3828:51;;3816:2;3801:18;12001:78:0;3682:203:1;11927:68:0;;;;;;;;;;;;;:::i;11777:71::-;;;;;;;;;;-1:-1:-1;11839:7:0;;;;;;;;;;;;-1:-1:-1;;;11839:7:0;;;;11777:71;;19821:125;;;;;;;;;;-1:-1:-1;19821:125:0;;;;;:::i;:::-;;:::i;10045:19::-;;;;;;;;;;-1:-1:-1;10045:19:0;;;;-1:-1:-1;;;;;10045:19:0;;;12194:139;;;;;;;;;;-1:-1:-1;12194:139:0;;;;;:::i;:::-;;:::i;12606:111::-;;;;;;;;;;-1:-1:-1;12606:111:0;;;;;:::i;:::-;;:::i;12339:127::-;;;;;;;;;;-1:-1:-1;12339:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;12437:18:0;;;12420:7;12437:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12339:127;7890:111;;;;;;;;;;-1:-1:-1;7890:111:0;;;;;:::i;:::-;;:::i;14486:482::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;;;;;;;;;14643:12:::1;:25:::0;;;14679:12:::1;:25:::0;;;14715:14:::1;:29:::0;;;14755:8:::1;:17:::0;;;14783:7:::1;:15:::0;;;14809:11:::1;:20:::0;;;14860:11:::1;::::0;:18:::1;::::0;14876:1:::1;14860:15;:18::i;:::-;14848:8;;:30;;:63;;;;-1:-1:-1::0;14893:11:0::1;::::0;:18:::1;::::0;14909:1:::1;14893:15;:18::i;:::-;14882:7;;:29;;14848:63;14840:120;;;::::0;-1:-1:-1;;;14840:120:0;;5685:2:1;14840:120:0::1;::::0;::::1;5667:21:1::0;5724:2;5704:18;;;5697:30;5763:34;5743:18;;;5736:62;-1:-1:-1;;;5814:18:1;;;5807:42;5866:19;;14840:120:0::1;5483:408:1::0;14840:120:0::1;14486:482:::0;;;;;;:::o;12723:133::-;12798:4;12805:37;12814:10;12826:7;12835:6;12805:8;:37::i;:::-;-1:-1:-1;12850:4:0;12723:133;;;;;:::o;12862:111::-;12915:7;12168:18;;;:9;:18;;;;12932:12;;:39;;:16;:39::i;:::-;12925:46;;12862:111;:::o;14976:580::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;15072:13:::1;15113:5;15105:4;15089:13;:11;:13::i;:::-;:20;;;;:::i;:::-;15088:30;;;;:::i;:::-;15072:46;;15129:19;15178:5;15168:6;15152:13;:11;:13::i;:::-;:22;;;;:::i;:::-;15151:32;;;;:::i;:::-;15129:54;;15194:17;15242:5;15231:7;15215:13;:11;:13::i;:::-;:23;;;;:::i;:::-;15214:33;;;;:::i;:::-;15258:19;:26:::0;;;15295:19:::1;:28:::0;;;15334:17:::1;:27:::0;;;15194:53;-1:-1:-1;;15388:30:0::1;15413:4;15388:20;15406:1;15388:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;15372:46;;15446:5;15437;:14;;:38;;;;;15470:5;15455:11;:20;;15437:38;:60;;;;;15492:5;15479:9;:18;;15437:60;15429:119;;;::::0;-1:-1:-1;;;15429:119:0;;6625:2:1;15429:119:0::1;::::0;::::1;6607:21:1::0;6664:2;6644:18;;;6637:30;6703:34;6683:18;;;6676:62;-1:-1:-1;;;6754:18:1;;;6747:44;6808:19;;15429:119:0::1;6423:410:1::0;15429:119:0::1;15061:495;;;;14976:580:::0;;;:::o;13218:119::-;13269:7;13324:11;;13302:19;;13286:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;20394:309::-;20492:4;20509:36;20519:6;20527:9;20538:6;20509:9;:36::i;:::-;20556:117;20565:6;20573:10;20585:87;20621:6;20585:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20585:19:0;;;;;;:11;:19;;;;;;;;20605:10;20585:31;;;;;;;;;:87;:35;:87::i;:::-;20556:8;:117::i;:::-;-1:-1:-1;20691:4:0;20394:309;;;;;;:::o;12979:114::-;13027:7;13080:11;;13060:17;;13044:13;:11;:13::i;13099:113::-;13144:7;13199:11;;13177:19;;13161:13;:11;:13::i;15564:306::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;15716:18:::1;:40:::0;;-1:-1:-1;;;;;15716:40:0;;::::1;-1:-1:-1::0;;;;;;15716:40:0;;::::1;;::::0;;;15767:18:::1;:40:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;15818:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;15564:306::o;11927:68::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;11972:14:::1;:21:::0;;-1:-1:-1;;;;11972:21:0::1;-1:-1:-1::0;;;11972:21:0::1;::::0;;11927:68::o;19821:125::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;19902:13:::1;:30:::0;19821:125::o;12194:139::-;12272:4;12279:40;12289:10;12301:9;12312:6;12279:9;:40::i;12606:111::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12683:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;12683:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12606:111::o;7890:::-;7852:4;7877:5;-1:-1:-1;;;;;7877:5:0;7764:10;7866:16;7748:38;;;;-1:-1:-1;;;7748:38:0;;;;;;;:::i;:::-;7956:5:::1;:11:::0;;-1:-1:-1;;;;;;7956:11:0::1;-1:-1:-1::0;;;;;7956:11:0;::::1;::::0;;::::1;::::0;;;7974:25:::1;::::0;3828:51:1;;;7974:25:0::1;::::0;3816:2:1;3801:18;7974:25:0::1;;;;;;;7890:111:::0;:::o;5159:82::-;5217:7;5234:5;5238:1;5234;:5;:::i;20711:335::-;-1:-1:-1;;;;;20804:19:0;;20796:68;;;;-1:-1:-1;;;20796:68:0;;7256:2:1;20796:68:0;;;7238:21:1;7295:2;7275:18;;;7268:30;7334:34;7314:18;;;7307:62;-1:-1:-1;;;7385:18:1;;;7378:34;7429:19;;20796:68:0;7054:400:1;20796:68:0;-1:-1:-1;;;;;20883:21:0;;20875:68;;;;-1:-1:-1;;;20875:68:0;;7661:2:1;20875:68:0;;;7643:21:1;7700:2;7680:18;;;7673:30;7739:34;7719:18;;;7712:62;-1:-1:-1;;;7790:18:1;;;7783:32;7832:19;;20875:68:0;7459:398:1;20875:68:0;-1:-1:-1;;;;;20954:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21006:32;;160:25:1;;;21006:32:0;;133:18:1;21006:32:0;;;;;;;20711:335;;;:::o;4983:82::-;5041:7;5058:5;5062:1;5058;:5;:::i;5071:82::-;5129:7;5146:5;5150:1;5146;:5;:::i;13792:686::-;13881:37;13892:6;13900:9;13911:6;13881:10;:37::i;:::-;13929:38;13949:6;13957:9;13929:19;:38::i;:::-;13978:41;13993:6;14001:9;14012:6;13978:14;:41::i;:::-;14031:35;14048:6;14056:9;14031:16;:35::i;:::-;14077:39;14090:6;14098:9;14109:6;14077:12;:39::i;:::-;14128:35;14137:6;14145:9;14156:6;14128:8;:35::i;:::-;-1:-1:-1;;;;;14194:17:0;;;;;;:9;:17;;;;;;:29;;14216:6;14194:21;:29::i;:::-;-1:-1:-1;;;;;14174:17:0;;;;;;:9;:17;;;;;:49;;;;14259:32;14184:6;14281:9;14259:13;:32::i;:::-;:78;;14331:6;14259:78;;;14294:34;14302:6;14310:9;14321:6;14294:7;:34::i;:::-;-1:-1:-1;;;;;14371:20:0;;;;;;:9;:20;;;;;;14234:103;;-1:-1:-1;14371:40:0;;14234:103;14371:24;:40::i;:::-;-1:-1:-1;;;;;14348:20:0;;;;;;;:9;:20;;;;;;;:63;;;;14427:43;;;;;;;;;;14455:14;160:25:1;;148:2;133:18;;14:177;14427:43:0;;;;;;;;13870:608;13792:686;;;:::o;6196:162::-;6282:7;6328:12;6320:6;;;;6312:29;;;;-1:-1:-1;;;6312:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;6350:5:0;;;6196:162::o;13345:439::-;-1:-1:-1;;;;;13449:20:0;;13441:70;;;;-1:-1:-1;;;13441:70:0;;8197:2:1;13441:70:0;;;8179:21:1;8236:2;8216:18;;;8209:30;8275:34;8255:18;;;8248:62;-1:-1:-1;;;8326:18:1;;;8319:35;8371:19;;13441:70:0;7995:401:1;13441:70:0;-1:-1:-1;;;;;13530:23:0;;13522:71;;;;-1:-1:-1;;;13522:71:0;;8603:2:1;13522:71:0;;;8585:21:1;8642:2;8622:18;;;8615:30;8681:34;8661:18;;;8654:62;-1:-1:-1;;;8732:18:1;;;8725:33;8775:19;;13522:71:0;8401:399:1;13522:71:0;13629:1;13612:6;:19;13604:73;;;;-1:-1:-1;;;13604:73:0;;9007:2:1;13604:73:0;;;8989:21:1;9046:2;9026:18;;;9019:30;9085:34;9065:18;;;9058:62;-1:-1:-1;;;9136:18:1;;;9129:39;9185:19;;13604:73:0;8805:405:1;13604:73:0;-1:-1:-1;;;;;12168:18:0;;12151:7;12168:18;;;:9;:18;;;;;;13696:6;:27;;13688:88;;;;-1:-1:-1;;;13688:88:0;;9417:2:1;13688:88:0;;;9399:21:1;9456:2;9436:18;;;9429:30;9495:34;9475:18;;;9468:62;-1:-1:-1;;;9546:18:1;;;9539:47;9603:19;;13688:88:0;9215:413:1;13688:88:0;13345:439;;;:::o;15878:191::-;-1:-1:-1;;;;;15971:19:0;;;;;;:11;:19;;;;;;;;15970:20;:47;;;;-1:-1:-1;;;;;;15995:22:0;;;;;;:11;:22;;;;;;;;15994:23;15970:47;15967:95;;;16027:14;;-1:-1:-1;;;16027:14:0;;;;16019:41;;;;-1:-1:-1;;;16019:41:0;;9835:2:1;16019:41:0;;;9817:21:1;9874:2;9854:18;;;9847:30;-1:-1:-1;;;9893:18:1;;;9886:44;9947:18;;16019:41:0;9633:338:1;16019:41:0;15878:191;;:::o;16081:333::-;-1:-1:-1;;;;;16185:19:0;;;;;;:11;:19;;;;;;;;16184:20;:47;;;;-1:-1:-1;;;;;;16209:22:0;;;;;;:11;:22;;;;;;;;16208:23;16184:47;:77;;;;-1:-1:-1;16256:4:0;;-1:-1:-1;;;;;16235:26:0;;;16256:4;;16235:26;;16184:77;:107;;;;-1:-1:-1;;;;;;16265:26:0;;10735:42;16265:26;;16184:107;16181:226;;;16353:17;:15;:17::i;:::-;-1:-1:-1;;;;;16316:20:0;;;;;;:9;:20;;;;;;:32;;16341:6;16316:24;:32::i;:::-;16315:55;;16307:98;;;;-1:-1:-1;;;16307:98:0;;10178:2:1;16307:98:0;;;10160:21:1;10217:2;10197:18;;;10190:30;10256:32;10236:18;;;10229:60;10306:18;;16307:98:0;9976:354:1;16422:159:0;16519:4;;-1:-1:-1;;;;;16506:17:0;;;16519:4;;16506:17;:41;;;;-1:-1:-1;;;;;;16528:19:0;;;;;;:11;:19;;;;;;;;16527:20;16506:41;16503:71;;;16570:1;16549:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;16422:159:0;;:::o;16589:349::-;16700:4;;-1:-1:-1;;;;;16690:14:0;;;16700:4;;16690:14;16687:130;;16724:20;:18;:20::i;:::-;16714:6;:30;;:53;;;-1:-1:-1;;;;;;16748:19:0;;;;;;:11;:19;;;;;;;;16714:53;:79;;;-1:-1:-1;;;;;;16771:22:0;;;;;;:11;:22;;;;;;;;16714:79;16706:109;;;;-1:-1:-1;;;16706:109:0;;10667:2:1;16706:109:0;;;10649:21:1;10706:2;10686:18;;;10679:30;-1:-1:-1;;;10725:18:1;;;10718:47;10782:18;;16706:109:0;10465:341:1;16706:109:0;16845:14;:12;:14::i;:::-;16835:6;:24;;:47;;;-1:-1:-1;;;;;;16863:19:0;;;;;;:11;:19;;;;;;;;16835:47;:73;;;-1:-1:-1;;;;;;16886:22:0;;;;;;:11;:22;;;;;;;;16835:73;16827:103;;;;-1:-1:-1;;;16827:103:0;;10667:2:1;16827:103:0;;;10649:21:1;10706:2;10686:18;;;10679:30;-1:-1:-1;;;10725:18:1;;;10718:47;10782:18;;16827:103:0;10465:341:1;19221:197:0;19313:41;19328:6;19336:9;19347:6;19313:14;:41::i;:::-;19310:101;;;19356:29;19371:13;;19356:14;:29::i;:::-;19407:1;19387:9;:22;19221:197;;;:::o;19426:160::-;-1:-1:-1;;;;;19532:19:0;;19507:4;19532:19;;;:11;:19;;;;;;;;19531:20;:47;;;;-1:-1:-1;;;;;;;19556:22:0;;;;;:11;:22;;;;;;;;19555:23;;19426:160;-1:-1:-1;19426:160:0:o;19954:432::-;20040:7;20096:1;20063:30;20075:6;20083:9;20063:11;:30::i;:::-;:34;20060:304;;;20109:17;20129:59;20157:30;20169:6;20177:9;20157:11;:30::i;:::-;20140:11;;20129:23;;:6;;:10;:23::i;:59::-;20244:4;20226:24;;;;:9;:24;;;;;;20109:79;;-1:-1:-1;20226:39:0;;20109:79;20226:28;:39::i;:::-;20217:4;20199:24;;;;:9;:24;;;;;;;:66;;;;20281:42;;-1:-1:-1;;;;;20281:42:0;;;;;;;20313:9;160:25:1;;148:2;133:18;;14:177;20281:42:0;;;;;;;;20341:21;:6;20352:9;20341:10;:21::i;:::-;20334:28;;;;;20060:304;-1:-1:-1;20372:6:0;19954:432;-1:-1:-1;;19954:432:0:o;4895:82::-;4953:7;4970:5;4974:1;4970;:5;:::i;18813:400::-;18954:15;;19030:13;;19020:4;18911;12168:18;;;:9;:18;;;;;;19062:8;;18911:4;;18944:25;;;;-1:-1:-1;19002:41:0;;19062:8;;19061:9;:24;;;;-1:-1:-1;19074:11:0;;;;19061:24;:42;;;;-1:-1:-1;19089:14:0;;-1:-1:-1;;;19089:14:0;;;;19061:42;:54;;;;;19107:8;19061:54;:78;;;;-1:-1:-1;;;;;;19120:19:0;;;;;;:11;:19;;;;;;;;19119:20;19061:78;:99;;;;-1:-1:-1;19156:4:0;;-1:-1:-1;;;;;19143:17:0;;;19156:4;;19143:17;19061:99;:126;;;;;19185:1;19164:9;;:23;;19061:126;:144;;;;;19191:14;19061:144;19054:151;18813:400;-1:-1:-1;;;;;;18813:400:0:o;16946:1066::-;10656:8;:15;;-1:-1:-1;;10656:15:0;10667:4;10656:15;;;;;;17083:14:::1;::::0;17065:12:::1;::::0;17041::::1;::::0;10656:8;;17040:66:::1;::::0;17104:1:::1;::::0;17041:57:::1;::::0;17083:14;;17041:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;17040:66::-;17017:89;;17117:32;17152:42;17181:12;17152:24;17163:12;;17152:6;:10;;:24;;;;:::i;:42::-;17117:77:::0;-1:-1:-1;17205:14:0::1;17222:36;:6:::0;17117:77;17222:10:::1;:36::i;:::-;17205:53:::0;-1:-1:-1;17294:21:0::1;17326:24;17205:53:::0;17326:16:::1;:24::i;:::-;17361:20;17384:41;:21;17410:14:::0;17384:25:::1;:41::i;:::-;17361:64;;17436:19;17457:48;17474:30;17491:12;;17474;:16;;:30;;;;:::i;:::-;17457:12:::0;;:16:::1;:48::i;:::-;17436:69;;17516:29;17548;17564:12;;17548:11;:15;;:29;;;;:::i;:::-;17516:61:::0;-1:-1:-1;17591:34:0;;17588:103:::1;;17627:61;17640:24;17666:21;17627:12;:61::i;:::-;17747:12;::::0;17701:20:::1;::::0;17724:36:::1;::::0;:18:::1;:11:::0;17740:1:::1;17724:15;:18::i;:36::-;17701:59:::0;-1:-1:-1;17774:16:0;;17771:73:::1;;17800:18;::::0;17792:50:::1;::::0;-1:-1:-1;;;;;17800:18:0;;::::1;::::0;17792:50;::::1;;;::::0;17829:12;;17800:18:::1;17792:50:::0;17800:18;17792:50;17829:12;17800:18;17792:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17771:73;17881:21;17916:29:::0;;17913:92:::1;;17955:20;::::0;17947:56:::1;::::0;-1:-1:-1;;;;;17955:20:0;;::::1;::::0;17947:56;::::1;;;::::0;17986:16;;17955:20:::1;17947:56:::0;17955:20;17947:56;17986:16;17955:20;17947:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17913:92;-1:-1:-1::0;;10676:8:0;:16;;-1:-1:-1;;10676:16:0;;;-1:-1:-1;;;;;;;;16946:1066:0:o;19594:219::-;19709:4;;19673:7;;-1:-1:-1;;;;;19709:4:0;;;19696:17;;;;19693:38;;-1:-1:-1;19722:7:0;;19715:14;;19693:38;19754:4;;-1:-1:-1;;;;;19754:4:0;;;19744:14;;;;19741:36;;-1:-1:-1;19767:8:0;;19760:15;;19741:36;-1:-1:-1;19794:11:0;;19594:219;;;;:::o;18371:434::-;18461:16;;;18475:1;18461:16;;;;;;;;18437:21;;18461:16;;;;;;;;;;-1:-1:-1;18461:16:0;18437:40;;18506:4;18488;18493:1;18488:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18488:23:0;;;:7;;;;;;;;;;:23;;;;18532:6;;:13;;;-1:-1:-1;;;18532:13:0;;;;:6;;;;;:11;;:13;;;;;18488:7;;18532:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18522:4;18527:1;18522:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18522:23:0;;;:7;;;;;;;;;:23;18588:6;;18556:53;;18573:4;;18588:6;18597:11;18556:8;:53::i;:::-;18620:6;;:177;;-1:-1:-1;;;18620:177:0;;-1:-1:-1;;;;;18620:6:0;;;;:57;;:177;;18692:11;;18620:6;;18734:4;;18761;;18781:15;;18620:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18020:343;18133:6;;18101:53;;18118:4;;-1:-1:-1;;;;;18133:6:0;18142:11;18101:8;:53::i;:::-;18165:6;;18306:18;;18165:190;;-1:-1:-1;;;18165:190:0;;18228:4;18165:190;;;12657:34:1;12707:18;;;12700:34;;;18165:6:0;12750:18:1;;;12743:34;;;12793:18;;;12786:34;-1:-1:-1;;;;;18306:18:0;;;12836:19:1;;;12829:44;18339:15:0;12889:19:1;;;12882:35;18165:6:0;;;:22;;18195:9;;12591:19:1;;18165:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18020:343;;:::o;196:523:1:-;300:6;308;316;324;332;340;393:3;381:9;372:7;368:23;364:33;361:53;;;410:1;407;400:12;361:53;-1:-1:-1;;433:23:1;;;503:2;488:18;;475:32;;-1:-1:-1;554:2:1;539:18;;526:32;;605:2;590:18;;577:32;;-1:-1:-1;656:3:1;641:19;;628:33;;-1:-1:-1;708:3:1;693:19;680:33;;-1:-1:-1;196:523:1;-1:-1:-1;196:523:1:o;724:548::-;836:4;865:2;894;883:9;876:21;926:6;920:13;969:6;964:2;953:9;949:18;942:34;994:1;1004:140;1018:6;1015:1;1012:13;1004:140;;;1113:14;;;1109:23;;1103:30;1079:17;;;1098:2;1075:26;1068:66;1033:10;;1004:140;;;1008:3;1193:1;1188:2;1179:6;1168:9;1164:22;1160:31;1153:42;1263:2;1256;1252:7;1247:2;1239:6;1235:15;1231:29;1220:9;1216:45;1212:54;1204:62;;;;724:548;;;;:::o;1277:131::-;-1:-1:-1;;;;;1352:31:1;;1342:42;;1332:70;;1398:1;1395;1388:12;1332:70;1277:131;:::o;1413:315::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:52;;;1558:1;1555;1548:12;1510:52;1597:9;1584:23;1616:31;1641:5;1616:31;:::i;:::-;1666:5;1718:2;1703:18;;;;1690:32;;-1:-1:-1;;;1413:315:1:o;1925:316::-;2002:6;2010;2018;2071:2;2059:9;2050:7;2046:23;2042:32;2039:52;;;2087:1;2084;2077:12;2039:52;-1:-1:-1;;2110:23:1;;;2180:2;2165:18;;2152:32;;-1:-1:-1;2231:2:1;2216:18;;;2203:32;;1925:316;-1:-1:-1;1925:316:1:o;2246:456::-;2323:6;2331;2339;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2447:9;2434:23;2466:31;2491:5;2466:31;:::i;:::-;2516:5;-1:-1:-1;2573:2:1;2558:18;;2545:32;2586:33;2545:32;2586:33;:::i;:::-;2246:456;;2638:7;;-1:-1:-1;;;2692:2:1;2677:18;;;;2664:32;;2246:456::o;2707:247::-;2766:6;2819:2;2807:9;2798:7;2794:23;2790:32;2787:52;;;2835:1;2832;2825:12;2787:52;2874:9;2861:23;2893:31;2918:5;2893:31;:::i;3148:529::-;3225:6;3233;3241;3294:2;3282:9;3273:7;3269:23;3265:32;3262:52;;;3310:1;3307;3300:12;3262:52;3349:9;3336:23;3368:31;3393:5;3368:31;:::i;:::-;3418:5;-1:-1:-1;3475:2:1;3460:18;;3447:32;3488:33;3447:32;3488:33;:::i;:::-;3540:7;-1:-1:-1;3599:2:1;3584:18;;3571:32;3612:33;3571:32;3612:33;:::i;:::-;3664:7;3654:17;;;3148:529;;;;;:::o;3890:180::-;3949:6;4002:2;3990:9;3981:7;3977:23;3973:32;3970:52;;;4018:1;4015;4008:12;3970:52;-1:-1:-1;4041:23:1;;3890:180;-1:-1:-1;3890:180:1:o;4075:416::-;4140:6;4148;4201:2;4189:9;4180:7;4176:23;4172:32;4169:52;;;4217:1;4214;4207:12;4169:52;4256:9;4243:23;4275:31;4300:5;4275:31;:::i;:::-;4325:5;-1:-1:-1;4382:2:1;4367:18;;4354:32;4424:15;;4417:23;4405:36;;4395:64;;4455:1;4452;4445:12;4395:64;4478:7;4468:17;;;4075:416;;;;;:::o;4496:388::-;4564:6;4572;4625:2;4613:9;4604:7;4600:23;4596:32;4593:52;;;4641:1;4638;4631:12;4593:52;4680:9;4667:23;4699:31;4724:5;4699:31;:::i;:::-;4749:5;-1:-1:-1;4806:2:1;4791:18;;4778:32;4819:33;4778:32;4819:33;:::i;5149:329::-;5351:2;5333:21;;;5390:1;5370:18;;;5363:29;-1:-1:-1;;;5423:2:1;5408:18;;5401:36;5469:2;5454:18;;5149:329::o;5896:127::-;5957:10;5952:3;5948:20;5945:1;5938:31;5988:4;5985:1;5978:15;6012:4;6009:1;6002:15;6028:168;6101:9;;;6132;;6149:15;;;6143:22;;6129:37;6119:71;;6170:18;;:::i;6201:217::-;6241:1;6267;6257:132;;6311:10;6306:3;6302:20;6299:1;6292:31;6346:4;6343:1;6336:15;6374:4;6371:1;6364:15;6257:132;-1:-1:-1;6403:9:1;;6201:217::o;7862:128::-;7929:9;;;7950:11;;;7947:37;;;7964:18;;:::i;10335:125::-;10400:9;;;10421:10;;;10418:36;;;10434:18;;:::i;10943:127::-;11004:10;10999:3;10995:20;10992:1;10985:31;11035:4;11032:1;11025:15;11059:4;11056:1;11049:15;11075:251;11145:6;11198:2;11186:9;11177:7;11173:23;11169:32;11166:52;;;11214:1;11211;11204:12;11166:52;11246:9;11240:16;11265:31;11290:5;11265:31;:::i;11331:980::-;11593:4;11641:3;11630:9;11626:19;11672:6;11661:9;11654:25;11698:2;11736:6;11731:2;11720:9;11716:18;11709:34;11779:3;11774:2;11763:9;11759:18;11752:31;11803:6;11838;11832:13;11869:6;11861;11854:22;11907:3;11896:9;11892:19;11885:26;;11946:2;11938:6;11934:15;11920:29;;11967:1;11977:195;11991:6;11988:1;11985:13;11977:195;;;12056:13;;-1:-1:-1;;;;;12052:39:1;12040:52;;12147:15;;;;12112:12;;;;12088:1;12006:9;11977:195;;;-1:-1:-1;;;;;;;12228:32:1;;;;12223:2;12208:18;;12201:60;-1:-1:-1;;;12292:3:1;12277:19;12270:35;12189:3;11331:980;-1:-1:-1;;;11331:980:1:o;12928:306::-;13016:6;13024;13032;13085:2;13073:9;13064:7;13060:23;13056:32;13053:52;;;13101:1;13098;13091:12;13053:52;13130:9;13124:16;13114:26;;13180:2;13169:9;13165:18;13159:25;13149:35;;13224:2;13213:9;13209:18;13203:25;13193:35;;12928:306;;;;;:::o

Swarm Source

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