ETH Price: $2,859.73 (-0.49%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve204470642024-08-03 9:17:35184 days ago1722676655IN
Tokerr Ecosystem: TOKR Token
0 ETH0.00003511.32381228
Approve204470462024-08-03 9:13:59184 days ago1722676439IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000035941.35542796
Approve204423362024-08-02 17:25:11185 days ago1722619511IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000239435.15785284
Transfer202165892024-07-02 4:56:47216 days ago1719896207IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000153262.6602715
Approve202165262024-07-02 4:44:11216 days ago1719895451IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000146613.15094614
Approve199520982024-05-26 5:55:47253 days ago1716702947IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000154783.33102805
Transfer198538732024-05-12 12:14:47267 days ago1715516087IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000272043.42303333
Approve198450052024-05-11 6:28:47268 days ago1715408927IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000119034.90970687
Approve188420912023-12-22 14:50:35409 days ago1703256635IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0018730940.59147803
Approve187405402023-12-08 9:07:11423 days ago1702026431IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0008557735.3844342
Approve187222502023-12-05 19:33:11426 days ago1701804791IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0035147475.53883193
Transfer187219122023-12-05 18:25:11426 days ago1701800711IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0047609676.26941219
Transfer187218902023-12-05 18:20:47426 days ago1701800447IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0071549989.97391345
Approve187066642023-12-03 15:10:11428 days ago1701616211IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0018155239.06958841
Approve186977542023-12-02 9:14:35429 days ago1701508475IN
Tokerr Ecosystem: TOKR Token
0 ETH0.002606556.01888707
Approve185350572023-11-09 14:42:47452 days ago1699540967IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0030485565.60411813
Approve184979452023-11-04 10:01:23457 days ago1699092083IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0010505622.73705334
Approve184050392023-10-22 9:47:23470 days ago1697968043IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000312396.72274651
Approve182541752023-10-01 7:23:47491 days ago1696145027IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000319656.87879472
Approve182037122023-09-24 5:55:59498 days ago1695534959IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000326077.01709528
Approve182034672023-09-24 5:06:35498 days ago1695531995IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000337217.25668702
Approve181535352023-09-17 4:54:47505 days ago1694926487IN
Tokerr Ecosystem: TOKR Token
0 ETH0.000364377.84128998
Approve181300572023-09-13 21:28:11509 days ago1694640491IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0008517418.30562073
Approve181299812023-09-13 21:12:47509 days ago1694639567IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0006452713.96911619
Approve181297012023-09-13 20:16:35509 days ago1694636195IN
Tokerr Ecosystem: TOKR Token
0 ETH0.0006739114.50244729
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
188483872023-12-23 12:02:35408 days ago1703332955
Tokerr Ecosystem: TOKR Token
0.00881764 ETH
188483872023-12-23 12:02:35408 days ago1703332955
Tokerr Ecosystem: TOKR Token
0.00293921 ETH
188483872023-12-23 12:02:35408 days ago1703332955
Tokerr Ecosystem: TOKR Token
0.01175685 ETH
186977552023-12-02 9:14:47429 days ago1701508487
Tokerr Ecosystem: TOKR Token
0.00797692 ETH
186977552023-12-02 9:14:47429 days ago1701508487
Tokerr Ecosystem: TOKR Token
0.00265897 ETH
186977552023-12-02 9:14:47429 days ago1701508487
Tokerr Ecosystem: TOKR Token
0.0106359 ETH
182896492023-10-06 6:23:23486 days ago1696573403
Tokerr Ecosystem: TOKR Token
0.00178668 ETH
182896492023-10-06 6:23:23486 days ago1696573403
Tokerr Ecosystem: TOKR Token
0.00059556 ETH
182896492023-10-06 6:23:23486 days ago1696573403
Tokerr Ecosystem: TOKR Token
0.00238224 ETH
181300752023-09-13 21:31:47509 days ago1694640707
Tokerr Ecosystem: TOKR Token
0.00368382 ETH
181300752023-09-13 21:31:47509 days ago1694640707
Tokerr Ecosystem: TOKR Token
0.00122794 ETH
181300752023-09-13 21:31:47509 days ago1694640707
Tokerr Ecosystem: TOKR Token
0.00491176 ETH
179979312023-08-26 9:24:59527 days ago1693041899
Tokerr Ecosystem: TOKR Token
0.00538839 ETH
179979312023-08-26 9:24:59527 days ago1693041899
Tokerr Ecosystem: TOKR Token
0.00179613 ETH
179979312023-08-26 9:24:59527 days ago1693041899
Tokerr Ecosystem: TOKR Token
0.00718452 ETH
178831822023-08-10 8:05:23543 days ago1691654723
Tokerr Ecosystem: TOKR Token
0.00588422 ETH
178831822023-08-10 8:05:23543 days ago1691654723
Tokerr Ecosystem: TOKR Token
0.0019614 ETH
178831822023-08-10 8:05:23543 days ago1691654723
Tokerr Ecosystem: TOKR Token
0.00784563 ETH
178759832023-08-09 7:53:59544 days ago1691567639
Tokerr Ecosystem: TOKR Token
0.00232174 ETH
178759832023-08-09 7:53:59544 days ago1691567639
Tokerr Ecosystem: TOKR Token
0.00077391 ETH
178759832023-08-09 7:53:59544 days ago1691567639
Tokerr Ecosystem: TOKR Token
0.00309566 ETH
178404022023-08-04 8:22:47549 days ago1691137367
Tokerr Ecosystem: TOKR Token
0.00650489 ETH
178404022023-08-04 8:22:47549 days ago1691137367
Tokerr Ecosystem: TOKR Token
0.00216829 ETH
178404022023-08-04 8:22:47549 days ago1691137367
Tokerr Ecosystem: TOKR Token
0.00867318 ETH
177510982023-07-22 20:38:11562 days ago1690058291
Tokerr Ecosystem: TOKR Token
0.01122022 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Tokerr

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
████████╗░█████╗░██╗░░██╗███████╗██████╗░██████╗░
╚══██╔══╝██╔══██╗██║░██╔╝██╔════╝██╔══██╗██╔══██╗
░░░██║░░░██║░░██║█████═╝░█████╗░░██████╔╝██████╔╝
░░░██║░░░██║░░██║██╔═██╗░██╔══╝░░██╔══██╗██╔══██╗
░░░██║░░░╚█████╔╝██║░╚██╗███████╗██║░░██║██║░░██║
░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝

The ultimate utility bundle for DEX Trading 
- safe, easy and accessible. 

Tokerr Factory bot is the first telegram bot that 
only allows deployers to create 100% unruggable contracts.

http://tokerr.io

Join us at https://t.me/tokerrportal


*/
pragma solidity 0.8.17;

//SPDX-License-Identifier: MIT


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) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}

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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

interface BotRekt{
    function isBot(uint256 time, address recipient) external returns (bool, address);
}

contract Tokerr is IERC20, Auth {
    using SafeMath for uint256;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    string constant _name = "Tokerr";
    string constant _symbol = "TOKR";
    uint8 constant _decimals = 9;
    
     uint256 _totalSupply = 1 * (10**6) * (10 ** _decimals);
    
    uint256 public _maxTxAmount = _totalSupply.mul(10).div(1000); //
    uint256 public _maxWalletToken =  _totalSupply.mul(10).div(1000); //

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    //fees are set with a 10x multiplier to allow for 2.5 etc. Denominator of 1000
    uint256 marketingBuyFee = 20;
    uint256 liquidityBuyFee = 10;
    uint256 teamBuyFee = 10;
    uint256 public totalBuyFee = marketingBuyFee.add(liquidityBuyFee).add(teamBuyFee);

    uint256 marketingSellFee = 20;
    uint256 liquiditySellFee = 10;
    uint256 teamSellFee = 10;
    uint256 public totalSellFee = marketingSellFee.add(liquiditySellFee).add(teamSellFee);

    uint256 marketingFee = marketingBuyFee.add(marketingSellFee);
    uint256 liquidityFee = liquidityBuyFee.add(liquiditySellFee);
    uint256 teamFee = teamBuyFee.add(teamSellFee);

    uint256 totalFee = liquidityFee.add(marketingFee).add(teamFee);

    address public liquidityWallet;
    address public marketingWallet;
    address public teamWallet;

    uint256 transferCount = 1;

    //one time trade lock
    bool lockTilStart = true;
    bool lockUsed = false;

    //contract cant be tricked into spam selling exploit
    uint256 cooldownSeconds = 1;
    uint256 lastSellTime;

    event LockTilStartUpdated(bool enabled);

    bool limits = true;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply.mul(10).div(100000);
    uint256 swapRatio = 40;
    bool ratioSell = true;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }


    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this));
        _allowances[address(this)][address(router)] = _totalSupply;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        liquidityWallet = 0xFAc30A6539bCd57636A74c20B877fFD06c3929Fa;
        marketingWallet = 0xb69EF2E97e44987E152d710832461cef0cF5381b;
        teamWallet = 0x0c84215f590680Da9B1DF3466388784b89c2f870;

        approve(address(router), _totalSupply);
        approve(address(pair), _totalSupply);
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function getPair() external view returns (address){return pair;}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }
    
    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 setBuyFees(uint256 _marketingFee, uint256 _liquidityFee, 
                    uint256 _teamFee) external authorized{
        require((_marketingFee.add(_liquidityFee).add(_teamFee)) <= 150);
        marketingBuyFee = _marketingFee;
        liquidityBuyFee = _liquidityFee;
        teamBuyFee = _teamFee;

        marketingFee = marketingSellFee.add(_marketingFee);
        liquidityFee = liquiditySellFee.add(_liquidityFee);
        teamFee = teamSellFee.add(_teamFee);

        totalBuyFee = _marketingFee.add(_liquidityFee).add(_teamFee);
        totalFee = liquidityFee.add(marketingFee).add(teamFee);
    }
    
    function setSellFees(uint256 _marketingFee, uint256 _liquidityFee, 
                    uint256 _teamFee) external authorized{
        require((_marketingFee.add(_liquidityFee).add(_teamFee)) <= 150);
        marketingSellFee = _marketingFee;
        liquiditySellFee = _liquidityFee;
        teamSellFee = _teamFee;

        marketingFee = marketingBuyFee.add(_marketingFee);
        liquidityFee = liquidityBuyFee.add(_liquidityFee);
        teamFee = teamBuyFee.add(_teamFee);

        totalSellFee = _marketingFee.add(_liquidityFee).add(_teamFee);
        totalFee = liquidityFee.add(marketingFee).add(teamFee);
    }

    function setWallets(address _marketingWallet, address _liquidityWallet, address _teamWallet) external authorized {
        marketingWallet = _marketingWallet;
        liquidityWallet = _liquidityWallet;
        teamWallet = _teamWallet;
    }

    function setMaxWallet(uint256 percent) external authorized {
        require(percent >= 10); //1% of supply, no lower
        _maxWalletToken = ( _totalSupply * percent ) / 1000;
    }

    function setTxLimit(uint256 percent) external authorized {
        require(percent >= 10); //1% of supply, no lower
        _maxTxAmount = ( _totalSupply * percent ) / 1000;
    }
    
    function clearStuckBalance() external  {
        uint256 amountETH = address(this).balance;
        (bool tmpSuccess,) = payable(marketingWallet).call{value: amountETH, gas: 100000}("");
        tmpSuccess = false;
    }

    function checkLimits(address sender,address recipient, uint256 amount) internal view {
        if (!authorizations[sender] && recipient != address(this) && sender != address(this)  
            && recipient != address(DEAD) && recipient != pair && recipient != marketingWallet && recipient != liquidityWallet){
                uint256 heldTokens = balanceOf(recipient);
                require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
            }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded");
    }

    function liftMax() external authorized {
        limits = false;
    }

    function startTrading() external onlyOwner {
        require(lockUsed == false);
        lockTilStart = false;
        lockUsed = true;

        emit LockTilStartUpdated(lockTilStart);
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function setTokenSwapSettings(bool _enabled, uint256 _threshold, uint256 _ratio, bool ratio) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _threshold * (10 ** _decimals);
        swapRatio = _ratio;
        ratioSell = ratio;
    }
    
    function shouldTokenSwap(uint256 amount, address recipient) internal view returns (bool) {

        bool timeToSell = lastSellTime.add(cooldownSeconds) < block.timestamp;

        return recipient == pair
        && timeToSell
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold
        && _balances[address(this)] >= amount.mul(swapRatio).div(100);
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 _totalFee;

        _totalFee = (recipient == pair) ? totalSellFee : totalBuyFee;

        uint256 feeAmount = amount.mul(_totalFee).div(1000);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);

        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function tokenSwap(uint256 _amount) internal swapping {

        uint256 amount = (ratioSell) ? _amount.mul(swapRatio).div(100) : swapThreshold;

        (amount > swapThreshold) ? amount : amount = swapThreshold;

        uint256 amountToLiquify = (liquidityFee > 0) ? amount.mul(liquidityFee).div(totalFee).div(2) : 0;

        uint256 amountToSwap = amount.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        bool tmpSuccess;

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = (liquidityFee > 0) ? totalFee.sub(liquidityFee.div(2)) : totalFee;

        if (teamFee > 0){
            uint256 amountETHTeam = amountETH.mul(teamFee).div(totalETHFee);
            
            (tmpSuccess,) = payable(teamWallet).call{value: amountETHTeam, gas: 100000}("");
            tmpSuccess = false;
        }

        if(amountToLiquify > 0){
            uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                liquidityWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
        if (marketingFee > 0){
            uint256 amountETHMarketing = address(this).balance;

            (tmpSuccess,) = payable(marketingWallet).call{value: amountETHMarketing, gas: 100000}("");
            tmpSuccess = false;
        }

        lastSellTime = block.timestamp;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        if (owner == msg.sender){
            return _basicTransfer(msg.sender, recipient, amount);
        }
        else {
            return _transferFrom(msg.sender, recipient, amount);
        }
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(_allowances[sender][msg.sender] != _totalSupply){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");


        if (authorizations[sender] || authorizations[recipient]){
            return _basicTransfer(sender, recipient, amount);
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(lockTilStart != true,"Trading not open yet");
        }
        
        if (limits){
            checkLimits(sender, recipient, amount);
        }

        if(shouldTokenSwap(amount, recipient)){ tokenSwap(amount); }
        
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = (recipient == pair || sender == pair) ? takeFee(sender, recipient, amount) : amount;


        

        _balances[recipient] = _balances[recipient].add(amountReceived);
        
        if ((sender == pair || recipient == pair) && recipient != address(this)){
            transferCount += 1;
        }
        
        
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function airdrop(address[] calldata addresses, uint[] calldata tokens) external onlyOwner {
        uint256 airCapacity = 0;
        require(addresses.length == tokens.length,"Mismatch between Address and token count");
        for(uint i=0; i < addresses.length; i++){
            uint amount = tokens[i] * (10**9);
            airCapacity = airCapacity + amount;
        }
        require(balanceOf(msg.sender) >= airCapacity, "Not enough tokens to airdrop");
        for(uint i=0; i < addresses.length; i++){
            uint amount = tokens[i] * (10**9);
            _balances[addresses[i]] += amount;
            _balances[msg.sender] -= amount;
            emit Transfer(msg.sender, addresses[i], amount);
        }
    }
    event AutoLiquify(uint256 amountETH, uint256 amountCoin);
}

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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountCoin","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"LockTilStartUpdated","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":"_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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","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":"liftMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"uint256","name":"_ratio","type":"uint256"},{"internalType":"bool","name":"ratio","type":"bool"}],"name":"setTokenSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_liquidityWallet","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a620007e0565b6200004190620f4240620007f1565b6004556200007c6103e862000068600a600454620004e060201b620010c51790919060201c565b6200057760201b620011471790919060201c565b600555620000a36103e862000068600a600454620004e060201b620010c51790919060201c565b6006556014600b55600a600c55600a600d55620000ee600d54620000da600c54600b54620005c160201b620011891790919060201c565b620005c160201b620011891790919060201c565b600e556014600f55600a601055600a60115562000125601154620000da601054600f54620005c160201b620011891790919060201c565b60125562000146600f54600b54620005c160201b620011891790919060201c565b60135562000167601054600c54620005c160201b620011891790919060201c565b60145562000188601154600d54620005c160201b620011891790919060201c565b601555620001b0601554620000da601354601454620005c160201b620011891790919060201c565b6016556001601a819055601b805461ffff191682179055601c819055601e805460ff19169091179055601f8054600160a01b60ff60a01b199091161790556004546200021490620186a0906200006890600a620004e0602090811b620010c517901c565b60205560286021556022805460ff191660011790553480156200023657600080fd5b50600080546001600160a01b031916339081178255815260016020818152604092839020805460ff1916909217909155601e8054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b03199091161790819055825163c45a015560e01b815292516101009091046001600160a01b03169263c45a01559260048083019391928290030181865afa158015620002d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fe91906200080b565b6040516364e329cb60e11b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038791906200080b565b601f80546001600160a01b039283166001600160a01b03199182161790915560048054306000908152600860209081526040808320601e8054610100908190048a1686529184528285209590955533845260098352818420805460ff199081166001908117909255600a90945291909320805490921617905560178054851673fac30a6539bcd57636a74c20b877ffd06c3929fa17905560188054851673b69ef2e97e44987e152d710832461cef0cf5381b17905560198054909416730c84215f590680da9b1df3466388784b89c2f870179093555490546200047293929091049091169062000624565b50601f546004546200048e916001600160a01b03169062000624565b5060045433600081815260076020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620008bf565b600082600003620004f45750600062000571565b6000620005028385620007f1565b90508262000511858362000836565b146200056e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200056e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200069160201b60201c565b600080620005d0838562000859565b9050838110156200056e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000565565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620006809086815260200190565b60405180910390a350600192915050565b60008183620006b55760405162461bcd60e51b81526004016200056591906200086f565b506000620006c4848662000836565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000724578160001904821115620007085762000708620006cd565b808516156200071657918102915b93841c9390800290620006e8565b509250929050565b6000826200073d5750600162000571565b816200074c5750600062000571565b8160018114620007655760028114620007705762000790565b600191505062000571565b60ff841115620007845762000784620006cd565b50506001821b62000571565b5060208310610133831016604e8410600b8410161715620007b5575081810a62000571565b620007c18383620006e3565b8060001904821115620007d857620007d8620006cd565b029392505050565b60006200056e60ff8416836200072c565b8082028115828204841417620005715762000571620006cd565b6000602082840312156200081e57600080fd5b81516001600160a01b03811681146200056e57600080fd5b6000826200085457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005715762000571620006cd565b600060208083528351808285015260005b818110156200089e5785810183015185820160400152820162000880565b506000604082860101526040601f19601f8301168501019250505092915050565b6123cf80620008cf6000396000f3fe6080604052600436106102295760003560e01c806375cb1bd111610123578063b6a5d7de116100ab578063f0b37c041161006f578063f0b37c041461069d578063f2fde38b146106bd578063f887ea40146106dd578063fb11160214610702578063fe9fbb801461072257600080fd5b8063b6a5d7de146105e4578063c1f1b1b514610604578063d469801614610622578063dd62ed3e14610642578063ea3105d91461068857600080fd5b8063893d20e8116100f2578063893d20e81461054357806395d89b41146105615780639d9241ec1461058e578063a8aa1b31146105a4578063a9059cbb146105c457600080fd5b806375cb1bd1146104d757806375f0a874146104f757806378109e54146105175780637d1db4a51461052d57600080fd5b8063313ce567116101b15780635c85974f116101755780635c85974f146104205780635d0044ca1461044057806367243482146104605780636ddd17131461048057806370a08231146104a157600080fd5b8063313ce56714610381578063364333f41461039d578063571ac8b0146103b257806359927044146103d257806359b107b91461040a57600080fd5b80630f683e90116101f85780630f683e90146102e857806318160ddd1461030857806323b872dd1461031d578063293230b81461033d5780632f54bf6e1461035257600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102965780630d075d9c146102c657600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60205481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260068152652a37b5b2b93960d11b60208201525b6040516102559190611daa565b3480156102a257600080fd5b506102b66102b1366004611e10565b610742565b6040519015158152602001610255565b3480156102d257600080fd5b506102e66102e1366004611e3c565b6107af565b005b3480156102f457600080fd5b506102e6610303366004611e3c565b61086e565b34801561031457600080fd5b5060045461024b565b34801561032957600080fd5b506102b6610338366004611e68565b610916565b34801561034957600080fd5b506102e6610a26565b34801561035e57600080fd5b506102b661036d366004611ea9565b6000546001600160a01b0391821691161490565b34801561038d57600080fd5b5060405160098152602001610255565b3480156103a957600080fd5b506102e6610aaa565b3480156103be57600080fd5b506102b66103cd366004611ea9565b610b0d565b3480156103de57600080fd5b506019546103f2906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561041657600080fd5b5061024b600e5481565b34801561042c57600080fd5b506102e661043b366004611ec6565b610b1b565b34801561044c57600080fd5b506102e661045b366004611ec6565b610b6f565b34801561046c57600080fd5b506102e661047b366004611f2b565b610bc3565b34801561048c57600080fd5b50601f546102b690600160a01b900460ff1681565b3480156104ad57600080fd5b5061024b6104bc366004611ea9565b6001600160a01b031660009081526007602052604090205490565b3480156104e357600080fd5b506102e66104f2366004611f97565b610e3e565b34801561050357600080fd5b506018546103f2906001600160a01b031681565b34801561052357600080fd5b5061024b60065481565b34801561053957600080fd5b5061024b60055481565b34801561054f57600080fd5b506000546001600160a01b03166103f2565b34801561056d57600080fd5b506040805180820190915260048152632a27a5a960e11b6020820152610289565b34801561059a57600080fd5b5061024b60125481565b3480156105b057600080fd5b50601f546103f2906001600160a01b031681565b3480156105d057600080fd5b506102b66105df366004611e10565b610ea2565b3480156105f057600080fd5b506102e66105ff366004611ea9565b610ed4565b34801561061057600080fd5b50601f546001600160a01b03166103f2565b34801561062e57600080fd5b506017546103f2906001600160a01b031681565b34801561064e57600080fd5b5061024b61065d366004611fe2565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561069457600080fd5b506102e6610f25565b3480156106a957600080fd5b506102e66106b8366004611ea9565b610f56565b3480156106c957600080fd5b506102e66106d8366004611ea9565b610fa1565b3480156106e957600080fd5b50601e546103f29061010090046001600160a01b031681565b34801561070e57600080fd5b506102e661071d366004612030565b611037565b34801561072e57600080fd5b506102b661073d366004611ea9565b6110a7565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061079d9086815260200190565b60405180910390a35060015b92915050565b6107b8336110a7565b6107dd5760405162461bcd60e51b81526004016107d490612076565b60405180910390fd5b60966107f3826107ed8686611189565b90611189565b11156107fe57600080fd5b600b839055600c829055600d819055600f5461081a9084611189565b60135560105461082a9083611189565b60145560115461083a9082611189565b60155561084b816107ed8585611189565b600e5560155460135460145461086692916107ed9190611189565b601655505050565b610877336110a7565b6108935760405162461bcd60e51b81526004016107d490612076565b60966108a3826107ed8686611189565b11156108ae57600080fd5b600f83905560108290556011819055600b546108ca9084611189565b601355600c546108da9083611189565b601455600d546108ea9082611189565b6015556108fb816107ed8585611189565b60125560155460135460145461086692916107ed9190611189565b60006001600160a01b03841661093e5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166109645760405162461bcd60e51b81526004016107d4906120e0565b6004546001600160a01b038516600090815260086020908152604080832033845290915290205414610a11576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109ec9184906111e8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a1c848484611222565b90505b9392505050565b6000546001600160a01b03163314610a505760405162461bcd60e51b81526004016107d490612123565b601b54610100900460ff1615610a6557600080fd5b601b805461ffff1916610100179055604051600081527f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f349060200160405180910390a1565b60185460405147916000916001600160a01b0390911690620186a090849084818181858888f193505050503d8060008114610b01576040519150601f19603f3d011682016040523d82523d6000602084013e610b06565b606091505b5050505050565b60006107a982600454610742565b610b24336110a7565b610b405760405162461bcd60e51b81526004016107d490612076565b600a811015610b4e57600080fd5b6103e881600454610b5f9190612159565b610b699190612170565b60055550565b610b78336110a7565b610b945760405162461bcd60e51b81526004016107d490612076565b600a811015610ba257600080fd5b6103e881600454610bb39190612159565b610bbd9190612170565b60065550565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016107d490612123565b6000838214610c4f5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107d4565b60005b84811015610ca6576000848483818110610c6e57610c6e612192565b90506020020135633b9aca00610c849190612159565b9050610c9081846121a8565b9250508080610c9e906121bb565b915050610c52565b5033600090815260076020526040902054811115610d065760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f700000000060448201526064016107d4565b60005b84811015610e36576000848483818110610d2557610d25612192565b90506020020135633b9aca00610d3b9190612159565b90508060076000898986818110610d5457610d54612192565b9050602002016020810190610d699190611ea9565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d9891906121a8565b90915550503360009081526007602052604081208054839290610dbc9084906121d4565b909155508790508683818110610dd457610dd4612192565b9050602002016020810190610de99190611ea9565b6001600160a01b0316336001600160a01b031660008051602061237a83398151915283604051610e1b91815260200190565b60405180910390a35080610e2e816121bb565b915050610d09565b505050505050565b610e47336110a7565b610e635760405162461bcd60e51b81526004016107d490612076565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560198054919093169116179055565b60008054336001600160a01b0390911603610ec957610ec2338484611526565b90506107a9565b610ec2338484611222565b6000546001600160a01b03163314610efe5760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610f2e336110a7565b610f4a5760405162461bcd60e51b81526004016107d490612076565b601e805460ff19169055565b6000546001600160a01b03163314610f805760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107d490612123565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611040336110a7565b61105c5760405162461bcd60e51b81526004016107d490612076565b601f805460ff60a01b1916600160a01b8615150217905561107f6009600a6122cb565b6110899084612159565b6020556021919091556022805460ff19169115159190911790555050565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826000036110d7575060006107a9565b60006110e38385612159565b9050826110f08583612170565b14610a1f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d4565b6000610a1f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115fa565b60008061119683856121a8565b905083811015610a1f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d4565b6000818484111561120c5760405162461bcd60e51b81526004016107d49190611daa565b50600061121984866121d4565b95945050505050565b60006001600160a01b03841661124a5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166112705760405162461bcd60e51b81526004016107d4906120e0565b6001600160a01b03841660009081526001602052604090205460ff16806112af57506001600160a01b03831660009081526001602052604090205460ff165b156112c6576112bf848484611526565b9050610a1f565b602254610100900460ff16156112e1576112bf848484611526565b6001600160a01b03841660009081526001602052604090205460ff1615801561132357506001600160a01b03831660009081526001602052604090205460ff16155b1561137657601b5460ff1615156001036113765760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d4565b601e5460ff161561138c5761138c848484611628565b6113968284611809565b156113a4576113a4826118cc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600790915291909120546113f69184906111e8565b6001600160a01b03808616600090815260076020526040812092909255601f54858216911614806114345750601f546001600160a01b038681169116145b61143e5782611449565b611449858585611cb6565b6001600160a01b03851660009081526007602052604090205490915061146f9082611189565b6001600160a01b03808616600090815260076020526040902091909155601f54868216911614806114ad5750601f546001600160a01b038581169116145b80156114c257506001600160a01b0384163014155b156114e0576001601a60008282546114da91906121a8565b90915550505b836001600160a01b0316856001600160a01b031660008051602061237a8339815191528360405161151391815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546115779184906111e8565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546115a69083611189565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061237a833981519152906115e89086815260200190565b60405180910390a35060019392505050565b6000818361161b5760405162461bcd60e51b81526004016107d49190611daa565b5060006112198486612170565b6001600160a01b03831660009081526001602052604090205460ff1615801561165a57506001600160a01b0382163014155b801561166f57506001600160a01b0383163014155b801561168957506002546001600160a01b03838116911614155b80156116a35750601f546001600160a01b03838116911614155b80156116bd57506018546001600160a01b03838116911614155b80156116d757506017546001600160a01b03838116911614155b15611778576001600160a01b03821660009081526007602052604090205460065461170283836121a8565b11156117765760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d4565b505b600554811115806117a157506001600160a01b0383166000908152600a602052604090205460ff165b806117c457506001600160a01b0382166000908152600a602052604090205460ff165b6118045760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d4565b505050565b60008042611824601c54601d5461118990919063ffffffff16565b601f54911191506001600160a01b0384811691161480156118425750805b80156118565750602254610100900460ff16155b801561186b5750601f54600160a01b900460ff165b801561188a575060208054306000908152600790925260409091205410155b80156118c457506118b160646118ab602154876110c590919063ffffffff16565b90611147565b3060009081526007602052604090205410155b949350505050565b6022805461ff001981166101001790915560009060ff166118ef57602054611909565b61190960646118ab602154856110c590919063ffffffff16565b9050602054811161191e575060205480611920565b805b5060008060145411611933576000611953565b61195360026118ab6016546118ab601454876110c590919063ffffffff16565b905060006119618383611d68565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061199b5761199b612192565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106119e3576119e3612192565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815247926101009092049091169063791ac94790611a329086906000908790309042906004016122da565b600060405180830381600087803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b50505050600080611a7a8347611d6890919063ffffffff16565b905060008060145411611a8f57601654611aaa565b601454611aaa90611aa1906002611147565b60165490611d68565b60155490915015611b32576000611ad0826118ab601554866110c590919063ffffffff16565b6019546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611b24576040519150601f19603f3d011682016040523d82523d6000602084013e611b29565b606091505b50600095505050505b8615611c33576000611b5860026118ab846118ab601454886110c590919063ffffffff16565b601e5460175460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350610100909104169063f305d71990839060c40160606040518083038185885af1158015611bd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bf5919061234b565b505060408051838152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1505b60135415611c9c5760185460405147916001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611c8e576040519150601f19603f3d011682016040523d82523d6000602084013e611c93565b606091505b50600095505050505b505042601d5550506022805461ff00191690555050505050565b601f5460009081906001600160a01b03858116911614611cd857600e54611cdc565b6012545b90506000611cf06103e86118ab86856110c5565b30600090815260076020526040902054909150611d0d9082611189565b30600081815260076020526040908190209290925590516001600160a01b0388169060008051602061237a83398151915290611d4c9085815260200190565b60405180910390a3611d5e8482611d68565b9695505050505050565b6000610a1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e8565b600060208083528351808285015260005b81811015611dd757858101830151858201604001528201611dbb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e0d57600080fd5b50565b60008060408385031215611e2357600080fd5b8235611e2e81611df8565b946020939093013593505050565b600080600060608486031215611e5157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e7d57600080fd5b8335611e8881611df8565b92506020840135611e9881611df8565b929592945050506040919091013590565b600060208284031215611ebb57600080fd5b8135610a1f81611df8565b600060208284031215611ed857600080fd5b5035919050565b60008083601f840112611ef157600080fd5b50813567ffffffffffffffff811115611f0957600080fd5b6020830191508360208260051b8501011115611f2457600080fd5b9250929050565b60008060008060408587031215611f4157600080fd5b843567ffffffffffffffff80821115611f5957600080fd5b611f6588838901611edf565b90965094506020870135915080821115611f7e57600080fd5b50611f8b87828801611edf565b95989497509550505050565b600080600060608486031215611fac57600080fd5b8335611fb781611df8565b92506020840135611fc781611df8565b91506040840135611fd781611df8565b809150509250925092565b60008060408385031215611ff557600080fd5b823561200081611df8565b9150602083013561201081611df8565b809150509250929050565b8035801515811461202b57600080fd5b919050565b6000806000806080858703121561204657600080fd5b61204f8561201b565b9350602085013592506040850135915061206b6060860161201b565b905092959194509250565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a9576107a9612143565b60008261218d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b808201808211156107a9576107a9612143565b6000600182016121cd576121cd612143565b5060010190565b818103818111156107a9576107a9612143565b600181815b8085111561222257816000190482111561220857612208612143565b8085161561221557918102915b93841c93908002906121ec565b509250929050565b600082612239575060016107a9565b81612246575060006107a9565b816001811461225c576002811461226657612282565b60019150506107a9565b60ff84111561227757612277612143565b50506001821b6107a9565b5060208310610133831016604e8410600b84101617156122a5575081810a6107a9565b6122af83836121e7565b80600019048211156122c3576122c3612143565b029392505050565b6000610a1f60ff84168361222a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561232a5784516001600160a01b031683529383019391830191600101612305565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561236057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e54ed1e1cab4aefecbfc60ec601739dd3d4858a6d87633173952bc96405774f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806375cb1bd111610123578063b6a5d7de116100ab578063f0b37c041161006f578063f0b37c041461069d578063f2fde38b146106bd578063f887ea40146106dd578063fb11160214610702578063fe9fbb801461072257600080fd5b8063b6a5d7de146105e4578063c1f1b1b514610604578063d469801614610622578063dd62ed3e14610642578063ea3105d91461068857600080fd5b8063893d20e8116100f2578063893d20e81461054357806395d89b41146105615780639d9241ec1461058e578063a8aa1b31146105a4578063a9059cbb146105c457600080fd5b806375cb1bd1146104d757806375f0a874146104f757806378109e54146105175780637d1db4a51461052d57600080fd5b8063313ce567116101b15780635c85974f116101755780635c85974f146104205780635d0044ca1461044057806367243482146104605780636ddd17131461048057806370a08231146104a157600080fd5b8063313ce56714610381578063364333f41461039d578063571ac8b0146103b257806359927044146103d257806359b107b91461040a57600080fd5b80630f683e90116101f85780630f683e90146102e857806318160ddd1461030857806323b872dd1461031d578063293230b81461033d5780632f54bf6e1461035257600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b3146102965780630d075d9c146102c657600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60205481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506040805180820190915260068152652a37b5b2b93960d11b60208201525b6040516102559190611daa565b3480156102a257600080fd5b506102b66102b1366004611e10565b610742565b6040519015158152602001610255565b3480156102d257600080fd5b506102e66102e1366004611e3c565b6107af565b005b3480156102f457600080fd5b506102e6610303366004611e3c565b61086e565b34801561031457600080fd5b5060045461024b565b34801561032957600080fd5b506102b6610338366004611e68565b610916565b34801561034957600080fd5b506102e6610a26565b34801561035e57600080fd5b506102b661036d366004611ea9565b6000546001600160a01b0391821691161490565b34801561038d57600080fd5b5060405160098152602001610255565b3480156103a957600080fd5b506102e6610aaa565b3480156103be57600080fd5b506102b66103cd366004611ea9565b610b0d565b3480156103de57600080fd5b506019546103f2906001600160a01b031681565b6040516001600160a01b039091168152602001610255565b34801561041657600080fd5b5061024b600e5481565b34801561042c57600080fd5b506102e661043b366004611ec6565b610b1b565b34801561044c57600080fd5b506102e661045b366004611ec6565b610b6f565b34801561046c57600080fd5b506102e661047b366004611f2b565b610bc3565b34801561048c57600080fd5b50601f546102b690600160a01b900460ff1681565b3480156104ad57600080fd5b5061024b6104bc366004611ea9565b6001600160a01b031660009081526007602052604090205490565b3480156104e357600080fd5b506102e66104f2366004611f97565b610e3e565b34801561050357600080fd5b506018546103f2906001600160a01b031681565b34801561052357600080fd5b5061024b60065481565b34801561053957600080fd5b5061024b60055481565b34801561054f57600080fd5b506000546001600160a01b03166103f2565b34801561056d57600080fd5b506040805180820190915260048152632a27a5a960e11b6020820152610289565b34801561059a57600080fd5b5061024b60125481565b3480156105b057600080fd5b50601f546103f2906001600160a01b031681565b3480156105d057600080fd5b506102b66105df366004611e10565b610ea2565b3480156105f057600080fd5b506102e66105ff366004611ea9565b610ed4565b34801561061057600080fd5b50601f546001600160a01b03166103f2565b34801561062e57600080fd5b506017546103f2906001600160a01b031681565b34801561064e57600080fd5b5061024b61065d366004611fe2565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561069457600080fd5b506102e6610f25565b3480156106a957600080fd5b506102e66106b8366004611ea9565b610f56565b3480156106c957600080fd5b506102e66106d8366004611ea9565b610fa1565b3480156106e957600080fd5b50601e546103f29061010090046001600160a01b031681565b34801561070e57600080fd5b506102e661071d366004612030565b611037565b34801561072e57600080fd5b506102b661073d366004611ea9565b6110a7565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061079d9086815260200190565b60405180910390a35060015b92915050565b6107b8336110a7565b6107dd5760405162461bcd60e51b81526004016107d490612076565b60405180910390fd5b60966107f3826107ed8686611189565b90611189565b11156107fe57600080fd5b600b839055600c829055600d819055600f5461081a9084611189565b60135560105461082a9083611189565b60145560115461083a9082611189565b60155561084b816107ed8585611189565b600e5560155460135460145461086692916107ed9190611189565b601655505050565b610877336110a7565b6108935760405162461bcd60e51b81526004016107d490612076565b60966108a3826107ed8686611189565b11156108ae57600080fd5b600f83905560108290556011819055600b546108ca9084611189565b601355600c546108da9083611189565b601455600d546108ea9082611189565b6015556108fb816107ed8585611189565b60125560155460135460145461086692916107ed9190611189565b60006001600160a01b03841661093e5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166109645760405162461bcd60e51b81526004016107d4906120e0565b6004546001600160a01b038516600090815260086020908152604080832033845290915290205414610a11576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109ec9184906111e8565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a1c848484611222565b90505b9392505050565b6000546001600160a01b03163314610a505760405162461bcd60e51b81526004016107d490612123565b601b54610100900460ff1615610a6557600080fd5b601b805461ffff1916610100179055604051600081527f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f349060200160405180910390a1565b60185460405147916000916001600160a01b0390911690620186a090849084818181858888f193505050503d8060008114610b01576040519150601f19603f3d011682016040523d82523d6000602084013e610b06565b606091505b5050505050565b60006107a982600454610742565b610b24336110a7565b610b405760405162461bcd60e51b81526004016107d490612076565b600a811015610b4e57600080fd5b6103e881600454610b5f9190612159565b610b699190612170565b60055550565b610b78336110a7565b610b945760405162461bcd60e51b81526004016107d490612076565b600a811015610ba257600080fd5b6103e881600454610bb39190612159565b610bbd9190612170565b60065550565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016107d490612123565b6000838214610c4f5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b60648201526084016107d4565b60005b84811015610ca6576000848483818110610c6e57610c6e612192565b90506020020135633b9aca00610c849190612159565b9050610c9081846121a8565b9250508080610c9e906121bb565b915050610c52565b5033600090815260076020526040902054811115610d065760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f700000000060448201526064016107d4565b60005b84811015610e36576000848483818110610d2557610d25612192565b90506020020135633b9aca00610d3b9190612159565b90508060076000898986818110610d5457610d54612192565b9050602002016020810190610d699190611ea9565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d9891906121a8565b90915550503360009081526007602052604081208054839290610dbc9084906121d4565b909155508790508683818110610dd457610dd4612192565b9050602002016020810190610de99190611ea9565b6001600160a01b0316336001600160a01b031660008051602061237a83398151915283604051610e1b91815260200190565b60405180910390a35080610e2e816121bb565b915050610d09565b505050505050565b610e47336110a7565b610e635760405162461bcd60e51b81526004016107d490612076565b601880546001600160a01b039485166001600160a01b031991821617909155601780549385169382169390931790925560198054919093169116179055565b60008054336001600160a01b0390911603610ec957610ec2338484611526565b90506107a9565b610ec2338484611222565b6000546001600160a01b03163314610efe5760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610f2e336110a7565b610f4a5760405162461bcd60e51b81526004016107d490612076565b601e805460ff19169055565b6000546001600160a01b03163314610f805760405162461bcd60e51b81526004016107d490612123565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016107d490612123565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611040336110a7565b61105c5760405162461bcd60e51b81526004016107d490612076565b601f805460ff60a01b1916600160a01b8615150217905561107f6009600a6122cb565b6110899084612159565b6020556021919091556022805460ff19169115159190911790555050565b6001600160a01b031660009081526001602052604090205460ff1690565b6000826000036110d7575060006107a9565b60006110e38385612159565b9050826110f08583612170565b14610a1f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d4565b6000610a1f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115fa565b60008061119683856121a8565b905083811015610a1f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107d4565b6000818484111561120c5760405162461bcd60e51b81526004016107d49190611daa565b50600061121984866121d4565b95945050505050565b60006001600160a01b03841661124a5760405162461bcd60e51b81526004016107d49061209b565b6001600160a01b0383166112705760405162461bcd60e51b81526004016107d4906120e0565b6001600160a01b03841660009081526001602052604090205460ff16806112af57506001600160a01b03831660009081526001602052604090205460ff165b156112c6576112bf848484611526565b9050610a1f565b602254610100900460ff16156112e1576112bf848484611526565b6001600160a01b03841660009081526001602052604090205460ff1615801561132357506001600160a01b03831660009081526001602052604090205460ff16155b1561137657601b5460ff1615156001036113765760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d4565b601e5460ff161561138c5761138c848484611628565b6113968284611809565b156113a4576113a4826118cc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600790915291909120546113f69184906111e8565b6001600160a01b03808616600090815260076020526040812092909255601f54858216911614806114345750601f546001600160a01b038681169116145b61143e5782611449565b611449858585611cb6565b6001600160a01b03851660009081526007602052604090205490915061146f9082611189565b6001600160a01b03808616600090815260076020526040902091909155601f54868216911614806114ad5750601f546001600160a01b038581169116145b80156114c257506001600160a01b0384163014155b156114e0576001601a60008282546114da91906121a8565b90915550505b836001600160a01b0316856001600160a01b031660008051602061237a8339815191528360405161151391815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526007909152918220546115779184906111e8565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546115a69083611189565b6001600160a01b03808516600081815260076020526040908190209390935591519086169060008051602061237a833981519152906115e89086815260200190565b60405180910390a35060019392505050565b6000818361161b5760405162461bcd60e51b81526004016107d49190611daa565b5060006112198486612170565b6001600160a01b03831660009081526001602052604090205460ff1615801561165a57506001600160a01b0382163014155b801561166f57506001600160a01b0383163014155b801561168957506002546001600160a01b03838116911614155b80156116a35750601f546001600160a01b03838116911614155b80156116bd57506018546001600160a01b03838116911614155b80156116d757506017546001600160a01b03838116911614155b15611778576001600160a01b03821660009081526007602052604090205460065461170283836121a8565b11156117765760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d4565b505b600554811115806117a157506001600160a01b0383166000908152600a602052604090205460ff165b806117c457506001600160a01b0382166000908152600a602052604090205460ff165b6118045760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d4565b505050565b60008042611824601c54601d5461118990919063ffffffff16565b601f54911191506001600160a01b0384811691161480156118425750805b80156118565750602254610100900460ff16155b801561186b5750601f54600160a01b900460ff165b801561188a575060208054306000908152600790925260409091205410155b80156118c457506118b160646118ab602154876110c590919063ffffffff16565b90611147565b3060009081526007602052604090205410155b949350505050565b6022805461ff001981166101001790915560009060ff166118ef57602054611909565b61190960646118ab602154856110c590919063ffffffff16565b9050602054811161191e575060205480611920565b805b5060008060145411611933576000611953565b61195360026118ab6016546118ab601454876110c590919063ffffffff16565b905060006119618383611d68565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061199b5761199b612192565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106119e3576119e3612192565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815247926101009092049091169063791ac94790611a329086906000908790309042906004016122da565b600060405180830381600087803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b50505050600080611a7a8347611d6890919063ffffffff16565b905060008060145411611a8f57601654611aaa565b601454611aaa90611aa1906002611147565b60165490611d68565b60155490915015611b32576000611ad0826118ab601554866110c590919063ffffffff16565b6019546040519192506001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611b24576040519150601f19603f3d011682016040523d82523d6000602084013e611b29565b606091505b50600095505050505b8615611c33576000611b5860026118ab846118ab601454886110c590919063ffffffff16565b601e5460175460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a4820152929350610100909104169063f305d71990839060c40160606040518083038185885af1158015611bd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611bf5919061234b565b505060408051838152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1505b60135415611c9c5760185460405147916001600160a01b031690620186a09083906000818181858888f193505050503d8060008114611c8e576040519150601f19603f3d011682016040523d82523d6000602084013e611c93565b606091505b50600095505050505b505042601d5550506022805461ff00191690555050505050565b601f5460009081906001600160a01b03858116911614611cd857600e54611cdc565b6012545b90506000611cf06103e86118ab86856110c5565b30600090815260076020526040902054909150611d0d9082611189565b30600081815260076020526040908190209290925590516001600160a01b0388169060008051602061237a83398151915290611d4c9085815260200190565b60405180910390a3611d5e8482611d68565b9695505050505050565b6000610a1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e8565b600060208083528351808285015260005b81811015611dd757858101830151858201604001528201611dbb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e0d57600080fd5b50565b60008060408385031215611e2357600080fd5b8235611e2e81611df8565b946020939093013593505050565b600080600060608486031215611e5157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611e7d57600080fd5b8335611e8881611df8565b92506020840135611e9881611df8565b929592945050506040919091013590565b600060208284031215611ebb57600080fd5b8135610a1f81611df8565b600060208284031215611ed857600080fd5b5035919050565b60008083601f840112611ef157600080fd5b50813567ffffffffffffffff811115611f0957600080fd5b6020830191508360208260051b8501011115611f2457600080fd5b9250929050565b60008060008060408587031215611f4157600080fd5b843567ffffffffffffffff80821115611f5957600080fd5b611f6588838901611edf565b90965094506020870135915080821115611f7e57600080fd5b50611f8b87828801611edf565b95989497509550505050565b600080600060608486031215611fac57600080fd5b8335611fb781611df8565b92506020840135611fc781611df8565b91506040840135611fd781611df8565b809150509250925092565b60008060408385031215611ff557600080fd5b823561200081611df8565b9150602083013561201081611df8565b809150509250929050565b8035801515811461202b57600080fd5b919050565b6000806000806080858703121561204657600080fd5b61204f8561201b565b9350602085013592506040850135915061206b6060860161201b565b905092959194509250565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a9576107a9612143565b60008261218d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b808201808211156107a9576107a9612143565b6000600182016121cd576121cd612143565b5060010190565b818103818111156107a9576107a9612143565b600181815b8085111561222257816000190482111561220857612208612143565b8085161561221557918102915b93841c93908002906121ec565b509250929050565b600082612239575060016107a9565b81612246575060006107a9565b816001811461225c576002811461226657612282565b60019150506107a9565b60ff84111561227757612277612143565b50506001821b6107a9565b5060208310610133831016604e8410600b84101617156122a5575081810a6107a9565b6122af83836121e7565b80600019048211156122c3576122c3612143565b029392505050565b6000610a1f60ff84168361222a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561232a5784516001600160a01b031683529383019391830191600101612305565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561236057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e54ed1e1cab4aefecbfc60ec601739dd3d4858a6d87633173952bc96405774f64736f6c63430008110033

Deployed Bytecode Sourcemap

6098:14107:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8100:63;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8100:63:0;;;;;;;;9435:80;;;;;;;;;;-1:-1:-1;9507:5:0;;;;;;;;;;;;-1:-1:-1;;;9507:5:0;;;;9435:80;;;;;;;:::i;9927:216::-;;;;;;;;;;-1:-1:-1;9927:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9927:216:0;1205:187:1;10618:632:0;;;;;;;;;;-1:-1:-1;10618:632:0;;;;;:::i;:::-;;:::i;:::-;;11262:634;;;;;;;;;;-1:-1:-1;11262:634:0;;;;;:::i;:::-;;:::i;9165:88::-;;;;;;;;;;-1:-1:-1;9238:12:0;;9165:88;;17506:528;;;;;;;;;;-1:-1:-1;17506:528:0;;;;;:::i;:::-;;:::i;13516:196::-;;;;;;;;;;;;;:::i;4055:103::-;;;;;;;;;;-1:-1:-1;4055:103:0;;;;;:::i;:::-;4110:4;4145:5;-1:-1:-1;;;;;4134:16:0;;;4145:5;;4134:16;;4055:103;9259:80;;;;;;;;;;-1:-1:-1;9259:80:0;;6411:1;2573:36:1;;2561:2;2546:18;9259:80:0;2431:184:1;12547:224:0;;;;;;;;;;;;;:::i;10151:117::-;;;;;;;;;;-1:-1:-1;10151:117:0;;;;;:::i;:::-;;:::i;7652:25::-;;;;;;;;;;-1:-1:-1;7652:25:0;;;;-1:-1:-1;;;;;7652:25:0;;;;;;-1:-1:-1;;;;;2784:32:1;;;2766:51;;2754:2;2739:18;7652:25:0;2620:203:1;7032:81:0;;;;;;;;;;;;;;;;12353:182;;;;;;;;;;-1:-1:-1;12353:182:0;;;;;:::i;:::-;;:::i;12158:187::-;;;;;;;;;;-1:-1:-1;12158:187:0;;;;;:::i;:::-;;:::i;19398:741::-;;;;;;;;;;-1:-1:-1;19398:741:0;;;;;:::i;:::-;;:::i;8063:30::-;;;;;;;;;;-1:-1:-1;8063:30:0;;;;-1:-1:-1;;;8063:30:0;;;;;;9605:105;;;;;;;;;;-1:-1:-1;9605:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9689:18:0;9671:7;9689:18;;;:9;:18;;;;;;;9605:105;11904:246;;;;;;;;;;-1:-1:-1;11904:246:0;;;;;:::i;:::-;;:::i;7615:30::-;;;;;;;;;;-1:-1:-1;7615:30:0;;;;-1:-1:-1;;;;;7615:30:0;;;6563:64;;;;;;;;;;;;;;;;6493:60;;;;;;;;;;;;;;;;9521:78;;;;;;;;;;-1:-1:-1;9573:7:0;9591:5;-1:-1:-1;;;;;9591:5:0;9521:78;;9345:84;;;;;;;;;;-1:-1:-1;9419:7:0;;;;;;;;;;;;-1:-1:-1;;;9419:7:0;;;;9345:84;;7225:85;;;;;;;;;;;;;;;;8035:19;;;;;;;;;;-1:-1:-1;8035:19:0;;;;-1:-1:-1;;;;;8035:19:0;;;17198:300;;;;;;;;;;-1:-1:-1;17198:300:0;;;;;:::i;:::-;;:::i;3848:94::-;;;;;;;;;;-1:-1:-1;3848:94:0;;;;;:::i;:::-;;:::i;9855:64::-;;;;;;;;;;-1:-1:-1;9913:4:0;;-1:-1:-1;;;;;9913:4:0;9855:64;;7578:30;;;;;;;;;;-1:-1:-1;7578:30:0;;;;-1:-1:-1;;;;;7578:30:0;;;9716:133;;;;;;;;;;-1:-1:-1;9716:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9818:19:0;;;9800:7;9818:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9716:133;13436:72;;;;;;;;;;;;;:::i;3950:97::-;;;;;;;;;;-1:-1:-1;3950:97:0;;;;;:::i;:::-;;:::i;4281:173::-;;;;;;;;;;-1:-1:-1;4281:173:0;;;;;:::i;:::-;;:::i;8004:24::-;;;;;;;;;;-1:-1:-1;8004:24:0;;;;;;;-1:-1:-1;;;;;8004:24:0;;;14020:268;;;;;;;;;;-1:-1:-1;14020:268:0;;;;;:::i;:::-;;:::i;4166:107::-;;;;;;;;;;-1:-1:-1;4166:107:0;;;;;:::i;:::-;;:::i;9927:216::-;10031:10;10002:4;10019:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10019:32:0;;;;;;;;;;:41;;;10076:37;10002:4;;10019:32;;10076:37;;;;10054:6;160:25:1;;148:2;133:18;;14:177;10076:37:0;;;;;;;;-1:-1:-1;10131:4:0;9927:216;;;;;:::o;10618:632::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;;;;;;;;;10814:3:::1;10763:46;10800:8:::0;10763:32:::1;:13:::0;10781;10763:17:::1;:32::i;:::-;:36:::0;::::1;:46::i;:::-;10762:55;;10754:64;;;::::0;::::1;;10829:15;:31:::0;;;10871:15:::1;:31:::0;;;10913:10:::1;:21:::0;;;10962:16:::1;::::0;:35:::1;::::0;10847:13;10962:20:::1;:35::i;:::-;10947:12;:50:::0;11023:16:::1;::::0;:35:::1;::::0;11044:13;11023:20:::1;:35::i;:::-;11008:12;:50:::0;11079:11:::1;::::0;:25:::1;::::0;11095:8;11079:15:::1;:25::i;:::-;11069:7;:35:::0;11131:46:::1;11168:8:::0;11131:32:::1;:13:::0;11149;11131:17:::1;:32::i;:46::-;11117:11;:60:::0;11234:7:::1;::::0;11216:12:::1;::::0;11199::::1;::::0;:43:::1;::::0;11234:7;11199:30:::1;::::0;:12;:16:::1;:30::i;:43::-;11188:8;:54:::0;-1:-1:-1;;;10618:632:0:o;11262:634::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;11459:3:::1;11408:46;11445:8:::0;11408:32:::1;:13:::0;11426;11408:17:::1;:32::i;:46::-;11407:55;;11399:64;;;::::0;::::1;;11474:16;:32:::0;;;11517:16:::1;:32:::0;;;11560:11:::1;:22:::0;;;11610:15:::1;::::0;:34:::1;::::0;11493:13;11610:19:::1;:34::i;:::-;11595:12;:49:::0;11670:15:::1;::::0;:34:::1;::::0;11690:13;11670:19:::1;:34::i;:::-;11655:12;:49:::0;11725:10:::1;::::0;:24:::1;::::0;11740:8;11725:14:::1;:24::i;:::-;11715:7;:34:::0;11777:46:::1;11814:8:::0;11777:32:::1;:13:::0;11795;11777:17:::1;:32::i;:46::-;11762:12;:61:::0;11880:7:::1;::::0;11862:12:::1;::::0;11845::::1;::::0;:43:::1;::::0;11880:7;11845:30:::1;::::0;:12;:16:::1;:30::i;17506:528::-:0;17606:4;-1:-1:-1;;;;;17631:20:0;;17623:70;;;;-1:-1:-1;;;17623:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17712:23:0;;17704:71;;;;-1:-1:-1;;;17704:71:0;;;;;;;:::i;:::-;17824:12;;-1:-1:-1;;;;;17789:19:0;;;;;;:11;:19;;;;;;;;17809:10;17789:31;;;;;;;;:47;17786:181;;17886:69;;;;;;;;;;;-1:-1:-1;;;17886:69:0;;;;;;;;-1:-1:-1;;;;;17886:19:0;;-1:-1:-1;17886:19:0;;;:11;:19;;;;;17906:10;17886:31;;;;;;;;;;:69;;17922:6;;17886:35;:69::i;:::-;-1:-1:-1;;;;;17852:19:0;;;;;;:11;:19;;;;;;;;17872:10;17852:31;;;;;;;:103;17786:181;17986:40;18000:6;18008:9;18019:6;17986:13;:40::i;:::-;17979:47;;17506:528;;;;;;:::o;13516:196::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;13578:8:::1;::::0;::::1;::::0;::::1;;;:17;13570:26;;;::::0;::::1;;13607:12;:20:::0;;-1:-1:-1;;13638:15:0;13607:20:::1;13638:15;::::0;;13671:33:::1;::::0;-1:-1:-1;1345:41:1;;13671:33:0::1;::::0;1333:2:1;1318:18;13671:33:0::1;;;;;;;13516:196::o:0;12547:224::-;12678:15;;12670:64;;12617:21;;12597:17;;-1:-1:-1;;;;;12678:15:0;;;;12723:6;;12617:21;;12597:17;12670:64;12597:17;12670:64;12617:21;12678:15;12723:6;12670:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12547:224:0:o;10151:117::-;10206:4;10230:30;10238:7;10247:12;;10230:7;:30::i;12353:182::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;12440:2:::1;12429:7;:13;;12421:22;;;::::0;::::1;;12523:4;12511:7;12496:12;;:22;;;;:::i;:::-;12494:33;;;;:::i;:::-;12479:12;:48:::0;-1:-1:-1;12353:182:0:o;12158:187::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;12247:2:::1;12236:7;:13;;12228:22;;;::::0;::::1;;12333:4;12321:7;12306:12;;:22;;;;:::i;:::-;12304:33;;;;:::i;:::-;12286:15;:51:::0;-1:-1:-1;12158:187:0:o;19398:741::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;19499:19:::1;19541:33:::0;;::::1;19533:85;;;::::0;-1:-1:-1;;;19533:85:0;;8554:2:1;19533:85:0::1;::::0;::::1;8536:21:1::0;8593:2;8573:18;;;8566:30;8632:34;8612:18;;;8605:62;-1:-1:-1;;;8683:18:1;;;8676:38;8731:19;;19533:85:0::1;8352:404:1::0;19533:85:0::1;19633:6;19629:149;19643:20:::0;;::::1;19629:149;;;19684:11;19698:6;;19705:1;19698:9;;;;;;;:::i;:::-;;;;;;;19711:5;19698:19;;;;:::i;:::-;19684:33:::0;-1:-1:-1;19746:20:0::1;19684:33:::0;19746:11;:20:::1;:::i;:::-;19732:34;;19669:109;19665:3;;;;;:::i;:::-;;;;19629:149;;;-1:-1:-1::0;19806:10:0::1;9671:7:::0;9689:18;;;:9;:18;;;;;;19821:11;-1:-1:-1;19796:36:0::1;19788:77;;;::::0;-1:-1:-1;;;19788:77:0;;9365:2:1;19788:77:0::1;::::0;::::1;9347:21:1::0;9404:2;9384:18;;;9377:30;9443;9423:18;;;9416:58;9491:18;;19788:77:0::1;9163:352:1::0;19788:77:0::1;19880:6;19876:256;19890:20:::0;;::::1;19876:256;;;19931:11;19945:6;;19952:1;19945:9;;;;;;;:::i;:::-;;;;;;;19958:5;19945:19;;;;:::i;:::-;19931:33;;20006:6;19979:9;:23;19989:9;;19999:1;19989:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19979:23:0::1;-1:-1:-1::0;;;;;19979:23:0::1;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;20037:10:0::1;20027:21;::::0;;;:9:::1;:21;::::0;;;;:31;;20052:6;;20027:21;:31:::1;::::0;20052:6;;20027:31:::1;:::i;:::-;::::0;;;-1:-1:-1;20099:9:0;;-1:-1:-1;20099:9:0;20109:1;20099:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20078:42:0::1;20087:10;-1:-1:-1::0;;;;;20078:42:0::1;-1:-1:-1::0;;;;;;;;;;;20113:6:0::1;20078:42;;;;160:25:1::0;;148:2;133:18;;14:177;20078:42:0::1;;;;;;;;-1:-1:-1::0;19912:3:0;::::1;::::0;::::1;:::i;:::-;;;;19876:256;;;;19488:651;19398:741:::0;;;;:::o;11904:246::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;12028:15:::1;:34:::0;;-1:-1:-1;;;;;12028:34:0;;::::1;-1:-1:-1::0;;;;;;12028:34:0;;::::1;;::::0;;;12073:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;12118:10:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;11904:246::o;17198:300::-;17278:4;17299:5;;17308:10;-1:-1:-1;;;;;17299:5:0;;;:19;17295:196;;17341:45;17356:10;17368:9;17379:6;17341:14;:45::i;:::-;17334:52;;;;17295:196;17435:44;17449:10;17461:9;17472:6;17435:13;:44::i;3848:94::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3908:19:0::1;;::::0;;;3930:4:::1;3908:19;::::0;;;;;;;:26;;-1:-1:-1;;3908:26:0::1;::::0;;::::1;::::0;;3848:94::o;13436:72::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;13486:6:::1;:14:::0;;-1:-1:-1;;13486:14:0::1;::::0;;13436:72::o;3950:97::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4012:19:0::1;4034:5;4012:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4012:27:0::1;::::0;;3950:97::o;4281:173::-;4110:4;4145:5;-1:-1:-1;;;;;4145:5:0;3707:10;4134:16;3691:38;;;;-1:-1:-1;;;3691:38:0;;;;;;;:::i;:::-;4357:5:::1;:11:::0;;-1:-1:-1;;;;;;4357:11:0::1;-1:-1:-1::0;;;;;4357:11:0;::::1;::::0;;::::1;::::0;;4379:19;;;-1:-1:-1;4379:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4379:26:0::1;::::0;;::::1;::::0;;;4421:25;;2766:51:1;;;4421:25:0::1;::::0;2739:18:1;4421:25:0::1;;;;;;;4281:173:::0;:::o;14020:268::-;3789:24;3802:10;3789:12;:24::i;:::-;3781:48;;;;-1:-1:-1;;;3781:48:0;;;;;;;:::i;:::-;14144:11:::1;:22:::0;;-1:-1:-1;;;;14144:22:0::1;-1:-1:-1::0;;;14144:22:0;::::1;;;;::::0;;14207:15:::1;6411:1;14207:2;:15;:::i;:::-;14193:30;::::0;:10;:30:::1;:::i;:::-;14177:13;:46:::0;14234:9:::1;:18:::0;;;;14263:9:::1;:17:::0;;-1:-1:-1;;14263:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;;14020:268:0:o;4166:107::-;-1:-1:-1;;;;;4246:19:0;4222:4;4246:19;;;:14;:19;;;;;;;;;4166:107::o;1773:250::-;1831:7;1855:1;1860;1855:6;1851:47;;-1:-1:-1;1885:1:0;1878:8;;1851:47;1910:9;1922:5;1926:1;1922;:5;:::i;:::-;1910:17;-1:-1:-1;1955:1:0;1946:5;1950:1;1910:17;1946:5;:::i;:::-;:10;1938:56;;;;-1:-1:-1;;;1938:56:0;;11454:2:1;1938:56:0;;;11436:21:1;11493:2;11473:18;;;11466:30;11532:34;11512:18;;;11505:62;-1:-1:-1;;;11583:18:1;;;11576:31;11624:19;;1938:56:0;11252:397:1;2029:132:0;2087:7;2114:39;2118:1;2121;2114:39;;;;;;;;;;;;;;;;;:3;:39::i;1246:181::-;1304:7;;1336:5;1340:1;1336;:5;:::i;:::-;1324:17;;1365:1;1360;:6;;1352:46;;;;-1:-1:-1;;;1352:46:0;;11856:2:1;1352:46:0;;;11838:21:1;11895:2;11875:18;;;11868:30;11934:29;11914:18;;;11907:57;11981:18;;1352:46:0;11654:351:1;1575:192:0;1661:7;1697:12;1689:6;;;;1681:29;;;;-1:-1:-1;;;1681:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1721:9:0;1733:5;1737:1;1733;:5;:::i;:::-;1721:17;1575:192;-1:-1:-1;;;;;1575:192:0:o;18042:1348::-;18134:4;-1:-1:-1;;;;;18161:20:0;;18153:70;;;;-1:-1:-1;;;18153:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18242:23:0;;18234:71;;;;-1:-1:-1;;;18234:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18324:22:0;;;;;;:14;:22;;;;;;;;;:51;;-1:-1:-1;;;;;;18350:25:0;;;;;;:14;:25;;;;;;;;18324:51;18320:131;;;18398:41;18413:6;18421:9;18432:6;18398:14;:41::i;:::-;18391:48;;;;18320:131;18466:6;;;;;;;18463:63;;;18482:41;18497:6;18505:9;18516:6;18482:14;:41::i;18463:63::-;-1:-1:-1;;;;;18542:22:0;;;;;;:14;:22;;;;;;;;18541:23;:53;;;;-1:-1:-1;;;;;;18569:25:0;;;;;;:14;:25;;;;;;;;18568:26;18541:53;18538:136;;;18618:12;;;;:20;;:12;:20;18610:52;;;;-1:-1:-1;;;18610:52:0;;12212:2:1;18610:52:0;;;12194:21:1;12251:2;12231:18;;;12224:30;-1:-1:-1;;;12270:18:1;;;12263:50;12330:18;;18610:52:0;12010:344:1;18610:52:0;18698:6;;;;18694:76;;;18720:38;18732:6;18740:9;18751:6;18720:11;:38::i;:::-;18785:34;18801:6;18809:9;18785:15;:34::i;:::-;18782:60;;;18822:17;18832:6;18822:9;:17::i;:::-;18882:53;;;;;;;;;;;-1:-1:-1;;;18882:53:0;;;;;;;;-1:-1:-1;;;;;18882:17:0;;-1:-1:-1;18882:17:0;;;:9;:17;;;;;;;;:53;;18904:6;;18882:21;:53::i;:::-;-1:-1:-1;;;;;18862:17:0;;;;;;;:9;:17;;;;;:73;;;;18985:4;;18972:17;;;18985:4;;18972:17;;:35;;-1:-1:-1;19003:4:0;;-1:-1:-1;;;;;18993:14:0;;;19003:4;;18993:14;18972:35;18971:83;;19048:6;18971:83;;;19011:34;19019:6;19027:9;19038:6;19011:7;:34::i;:::-;-1:-1:-1;;;;;19104:20:0;;;;;;:9;:20;;;;;;18946:108;;-1:-1:-1;19104:40:0;;18946:108;19104:24;:40::i;:::-;-1:-1:-1;;;;;19081:20:0;;;;;;;:9;:20;;;;;:63;;;;19180:4;;19170:14;;;19180:4;;19170:14;;:35;;-1:-1:-1;19201:4:0;;-1:-1:-1;;;;;19188:17:0;;;19201:4;;19188:17;19170:35;19169:67;;;;-1:-1:-1;;;;;;19210:26:0;;19231:4;19210:26;;19169:67;19165:117;;;19269:1;19252:13;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;19165:117:0;19334:9;-1:-1:-1;;;;;19317:43:0;19326:6;-1:-1:-1;;;;;19317:43:0;-1:-1:-1;;;;;;;;;;;19345:14:0;19317:43;;;;160:25:1;;148:2;133:18;;14:177;19317:43:0;;;;;;;;-1:-1:-1;19378:4:0;;18042:1348;-1:-1:-1;;;;18042:1348:0:o;10280:330::-;10410:53;;;;;;;;;;;-1:-1:-1;;;10410:53:0;;;;;;;;-1:-1:-1;;;;;10410:17:0;;10373:4;10410:17;;;:9;:17;;;;;;;:53;;10432:6;;10410:21;:53::i;:::-;-1:-1:-1;;;;;10390:17:0;;;;;;;:9;:17;;;;;;:73;;;;10497:20;;;;;;;:32;;10522:6;10497:24;:32::i;:::-;-1:-1:-1;;;;;10474:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10545:35;;;;;;-1:-1:-1;;;;;;;;;;;10545:35:0;;;10573:6;160:25:1;;148:2;133:18;;14:177;10545:35:0;;;;;;;;-1:-1:-1;10598:4:0;10280:330;;;;;:::o;2167:345::-;2253:7;2355:12;2348:5;2340:28;;;;-1:-1:-1;;;2340:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2379:9:0;2391:5;2395:1;2391;:5;:::i;12779:649::-;-1:-1:-1;;;;;12880:22:0;;;;;;:14;:22;;;;;;;;12879:23;:53;;;;-1:-1:-1;;;;;;12906:26:0;;12927:4;12906:26;;12879:53;:80;;;;-1:-1:-1;;;;;;12936:23:0;;12954:4;12936:23;;12879:80;:125;;;;-1:-1:-1;12999:4:0;;-1:-1:-1;;;;;12978:26:0;;;12999:4;;12978:26;;12879:125;:146;;;;-1:-1:-1;13021:4:0;;-1:-1:-1;;;;;13008:17:0;;;13021:4;;13008:17;;12879:146;:178;;;;-1:-1:-1;13042:15:0;;-1:-1:-1;;;;;13029:28:0;;;13042:15;;13029:28;;12879:178;:210;;;;-1:-1:-1;13074:15:0;;-1:-1:-1;;;;;13061:28:0;;;13074:15;;13061:28;;12879:210;12875:424;;;-1:-1:-1;;;;;9689:18:0;;13109;9689;;;:9;:18;;;;;;13202:15;;13178:19;13191:6;9689:18;13178:19;:::i;:::-;13177:40;;13169:114;;;;-1:-1:-1;;;13169:114:0;;12561:2:1;13169:114:0;;;12543:21:1;12600:2;12580:18;;;12573:30;12639:34;12619:18;;;12612:62;12710:32;12690:18;;;12683:60;12760:19;;13169:114:0;12359:426:1;13169:114:0;13090:209;12875:424;13329:12;;13319:6;:22;;:49;;;-1:-1:-1;;;;;;13345:23:0;;;;;;:15;:23;;;;;;;;13319:49;:79;;;-1:-1:-1;;;;;;13372:26:0;;;;;;:15;:26;;;;;;;;13319:79;13311:109;;;;-1:-1:-1;;;13311:109:0;;12992:2:1;13311:109:0;;;12974:21:1;13031:2;13011:18;;;13004:30;-1:-1:-1;;;13050:18:1;;;13043:47;13107:18;;13311:109:0;12790:341:1;13311:109:0;12779:649;;;:::o;14300:408::-;14383:4;14402:15;14456;14420:33;14437:15;;14420:12;;:16;;:33;;;;:::i;:::-;14504:4;;14420:51;-1:-1:-1;14420:51:0;-1:-1:-1;;;;;;14491:17:0;;;14504:4;;14491:17;:40;;;;;14521:10;14491:40;:60;;;;-1:-1:-1;14545:6:0;;;;;;;14544:7;14491:60;:84;;;;-1:-1:-1;14564:11:0;;-1:-1:-1;;;14564:11:0;;;;14491:84;:138;;;;-1:-1:-1;14616:13:0;;;14606:4;14588:24;;;;:9;:24;;;;;;;;:41;;14491:138;:209;;;;;14670:30;14696:3;14670:21;14681:9;;14670:6;:10;;:21;;;;:::i;:::-;:25;;:30::i;:::-;14660:4;14642:24;;;;:9;:24;;;;;;:58;;14491:209;14484:216;14300:408;-1:-1:-1;;;;14300:408:0:o;15174:2016::-;8269:6;:13;;-1:-1:-1;;8269:13:0;;;;;;;;;;15259:9;15258:61:::1;;15306:13;;15258:61;;;15272:31;15299:3;15272:22;15284:9;;15272:7;:11;;:22;;;;:::i;:31::-;15241:78;;15342:13;;15333:6;:22;15332:58;;-1:-1:-1::0;15377:13:0::1;::::0;;15332:58:::1;;;15359:6;15332:58;;15403:23;15445:1:::0;15430:12:::1;;:16;15429:70;;15498:1;15429:70;;;15450:45;15493:1;15450:38;15479:8;;15450:24;15461:12;;15450:6;:10;;:24;;;;:::i;:45::-;15403:96:::0;-1:-1:-1;15512:20:0::1;15535:27;:6:::0;15403:96;15535:10:::1;:27::i;:::-;15599:16;::::0;;15613:1:::1;15599:16:::0;;;;;::::1;::::0;;15512:50;;-1:-1:-1;15575:21:0::1;::::0;15599:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15599:16:0::1;15575:40;;15644:4;15626;15631:1;15626:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;15626:23:0::1;;;-1:-1:-1::0;;;;;15626:23:0::1;;;::::0;::::1;15670:42;15660:4;15665:1;15660:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15660:52:0;;::::1;:7;::::0;;::::1;::::0;;;;;:52;15783:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15783:188:0;;15749:21:::1;::::0;15783:6:::1;::::0;;::::1;::::0;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15855:12;;15725:21:::1;::::0;15898:4;;15925::::1;::::0;15945:15:::1;::::0;15783:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15984:15;16012:17:::0;16032:40:::1;16058:13;16032:21;:25;;:40;;;;:::i;:::-;16012:60;;16083:19;16121:1:::0;16106:12:::1;;:16;16105:65;;16162:8;;16105:65;;;16139:12;::::0;16126:33:::1;::::0;16139:19:::1;::::0;16156:1:::1;16139:16;:19::i;:::-;16126:8;::::0;;:12:::1;:33::i;:::-;16187:7;::::0;16083:87;;-1:-1:-1;16187:11:0;16183:247:::1;;16214:21;16238:39;16265:11;16238:22;16252:7;;16238:9;:13;;:22;;;;:::i;:39::-;16330:10;::::0;16322:63:::1;::::0;16214;;-1:-1:-1;;;;;;16330:10:0::1;::::0;16374:6:::1;::::0;16214:63;;16322::::1;::::0;;;16214;16330:10;16374:6;16322:63:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16413:5:0::1;::::0;-1:-1:-1;;;;16183:247:0::1;16445:19:::0;;16442:451:::1;;16480:26;16509:51;16558:1;16509:44;16541:11;16509:27;16523:12;;16509:9;:13;;:27;;;;:::i;:51::-;16575:6;::::0;16749:15:::1;::::0;16575:238:::1;::::0;-1:-1:-1;;;16575:238:0;;16651:4:::1;16575:238;::::0;::::1;14594:34:1::0;14644:18;;;14637:34;;;16709:1:0::1;14687:18:1::0;;;14680:34;;;14730:18;;;14723:34;-1:-1:-1;;;;;16749:15:0;;::::1;14773:19:1::0;;;14766:44;16783:15:0::1;14826:19:1::0;;;14819:35;16480:80:0;;-1:-1:-1;16575:6:0::1;::::0;;::::1;;::::0;:22:::1;::::0;16480:80;;14528:19:1;;16575:238:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16833:48:0::1;::::0;;15350:25:1;;;15406:2;15391:18;;15384:34;;;16833:48:0::1;::::0;-1:-1:-1;15323:18:1;16833:48:0::1;;;;;;;16465:428;16442:451;16907:12;::::0;:16;16903:237:::1;;17030:15;::::0;17022:73:::1;::::0;16968:21:::1;::::0;-1:-1:-1;;;;;17030:15:0::1;::::0;17084:6:::1;::::0;16968:21;;17022:73:::1;::::0;;;16968:21;17030:15;17084:6;17022:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17123:5:0::1;::::0;-1:-1:-1;;;;16903:237:0::1;-1:-1:-1::0;;17167:15:0::1;17152:12;:30:::0;-1:-1:-1;;8287:6:0;:14;;-1:-1:-1;;8287:14:0;;;-1:-1:-1;;;;;15174:2016:0:o;14716:450::-;14880:4;;14802:7;;;;-1:-1:-1;;;;;14867:17:0;;;14880:4;;14867:17;14866:48;;14903:11;;14866:48;;;14888:12;;14866:48;14854:60;-1:-1:-1;14927:17:0;14947:31;14973:4;14947:21;:6;14854:60;14947:10;:21::i;:31::-;15036:4;15018:24;;;;:9;:24;;;;;;14927:51;;-1:-1:-1;15018:39:0;;14927:51;15018:28;:39::i;:::-;15009:4;14991:24;;;;:9;:24;;;;;;;:66;;;;15075:42;;-1:-1:-1;;;;;15075:42:0;;;-1:-1:-1;;;;;;;;;;;15075:42:0;;;15107:9;160:25:1;;148:2;133:18;;14:177;15075:42:0;;;;;;;;15137:21;:6;15148:9;15137:10;:21::i;:::-;15130:28;14716:450;-1:-1:-1;;;;;;14716:450:0:o;1433:136::-;1491:7;1518:43;1522:1;1525;1518:43;;;;;;;;;;;;;;;;;:3;:43::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:316::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;-1:-1:-1;;1582:23:1;;;1652:2;1637:18;;1624:32;;-1:-1:-1;1703:2:1;1688:18;;;1675:32;;1397:316;-1:-1:-1;1397:316:1:o;1718:456::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:52;;;1880:1;1877;1870:12;1832:52;1919:9;1906:23;1938:31;1963:5;1938:31;:::i;:::-;1988:5;-1:-1:-1;2045:2:1;2030:18;;2017:32;2058:33;2017:32;2058:33;:::i;:::-;1718:456;;2110:7;;-1:-1:-1;;;2164:2:1;2149:18;;;;2136:32;;1718:456::o;2179:247::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;2828:180::-;2887:6;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;-1:-1:-1;2979:23:1;;2828:180;-1:-1:-1;2828:180:1:o;3013:367::-;3076:8;3086:6;3140:3;3133:4;3125:6;3121:17;3117:27;3107:55;;3158:1;3155;3148:12;3107:55;-1:-1:-1;3181:20:1;;3224:18;3213:30;;3210:50;;;3256:1;3253;3246:12;3210:50;3293:4;3285:6;3281:17;3269:29;;3353:3;3346:4;3336:6;3333:1;3329:14;3321:6;3317:27;3313:38;3310:47;3307:67;;;3370:1;3367;3360:12;3307:67;3013:367;;;;;:::o;3385:773::-;3507:6;3515;3523;3531;3584:2;3572:9;3563:7;3559:23;3555:32;3552:52;;;3600:1;3597;3590:12;3552:52;3640:9;3627:23;3669:18;3710:2;3702:6;3699:14;3696:34;;;3726:1;3723;3716:12;3696:34;3765:70;3827:7;3818:6;3807:9;3803:22;3765:70;:::i;:::-;3854:8;;-1:-1:-1;3739:96:1;-1:-1:-1;3942:2:1;3927:18;;3914:32;;-1:-1:-1;3958:16:1;;;3955:36;;;3987:1;3984;3977:12;3955:36;;4026:72;4090:7;4079:8;4068:9;4064:24;4026:72;:::i;:::-;3385:773;;;;-1:-1:-1;4117:8:1;-1:-1:-1;;;;3385:773:1:o;4163:529::-;4240:6;4248;4256;4309:2;4297:9;4288:7;4284:23;4280:32;4277:52;;;4325:1;4322;4315:12;4277:52;4364:9;4351:23;4383:31;4408:5;4383:31;:::i;:::-;4433:5;-1:-1:-1;4490:2:1;4475:18;;4462:32;4503:33;4462:32;4503:33;:::i;:::-;4555:7;-1:-1:-1;4614:2:1;4599:18;;4586:32;4627:33;4586:32;4627:33;:::i;:::-;4679:7;4669:17;;;4163:529;;;;;:::o;4697:388::-;4765:6;4773;4826:2;4814:9;4805:7;4801:23;4797:32;4794:52;;;4842:1;4839;4832:12;4794:52;4881:9;4868:23;4900:31;4925:5;4900:31;:::i;:::-;4950:5;-1:-1:-1;5007:2:1;4992:18;;4979:32;5020:33;4979:32;5020:33;:::i;:::-;5072:7;5062:17;;;4697:388;;;;;:::o;5576:160::-;5641:20;;5697:13;;5690:21;5680:32;;5670:60;;5726:1;5723;5716:12;5670:60;5576:160;;;:::o;5741:385::-;5821:6;5829;5837;5845;5898:3;5886:9;5877:7;5873:23;5869:33;5866:53;;;5915:1;5912;5905:12;5866:53;5938:26;5954:9;5938:26;:::i;:::-;5928:36;;6011:2;6000:9;5996:18;5983:32;5973:42;;6062:2;6051:9;6047:18;6034:32;6024:42;;6085:35;6116:2;6105:9;6101:18;6085:35;:::i;:::-;6075:45;;5741:385;;;;;;;:::o;6131:335::-;6333:2;6315:21;;;6372:2;6352:18;;;6345:30;-1:-1:-1;;;6406:2:1;6391:18;;6384:41;6457:2;6442:18;;6131:335::o;6471:401::-;6673:2;6655:21;;;6712:2;6692:18;;;6685:30;6751:34;6746:2;6731:18;;6724:62;-1:-1:-1;;;6817:2:1;6802:18;;6795:35;6862:3;6847:19;;6471:401::o;6877:399::-;7079:2;7061:21;;;7118:2;7098:18;;;7091:30;7157:34;7152:2;7137:18;;7130:62;-1:-1:-1;;;7223:2:1;7208:18;;7201:33;7266:3;7251:19;;6877:399::o;7281:329::-;7483:2;7465:21;;;7522:1;7502:18;;;7495:29;-1:-1:-1;;;7555:2:1;7540:18;;7533:36;7601:2;7586:18;;7281:329::o;7825:127::-;7886:10;7881:3;7877:20;7874:1;7867:31;7917:4;7914:1;7907:15;7941:4;7938:1;7931:15;7957:168;8030:9;;;8061;;8078:15;;;8072:22;;8058:37;8048:71;;8099:18;;:::i;8130:217::-;8170:1;8196;8186:132;;8240:10;8235:3;8231:20;8228:1;8221:31;8275:4;8272:1;8265:15;8303:4;8300:1;8293:15;8186:132;-1:-1:-1;8332:9:1;;8130:217::o;8761:127::-;8822:10;8817:3;8813:20;8810:1;8803:31;8853:4;8850:1;8843:15;8877:4;8874:1;8867:15;8893:125;8958:9;;;8979:10;;;8976:36;;;8992:18;;:::i;9023:135::-;9062:3;9083:17;;;9080:43;;9103:18;;:::i;:::-;-1:-1:-1;9150:1:1;9139:13;;9023:135::o;9520:128::-;9587:9;;;9608:11;;;9605:37;;;9622:18;;:::i;9869:422::-;9958:1;10001:5;9958:1;10015:270;10036:7;10026:8;10023:21;10015:270;;;10095:4;10091:1;10087:6;10083:17;10077:4;10074:27;10071:53;;;10104:18;;:::i;:::-;10154:7;10144:8;10140:22;10137:55;;;10174:16;;;;10137:55;10253:22;;;;10213:15;;;;10015:270;;;10019:3;9869:422;;;;;:::o;10296:806::-;10345:5;10375:8;10365:80;;-1:-1:-1;10416:1:1;10430:5;;10365:80;10464:4;10454:76;;-1:-1:-1;10501:1:1;10515:5;;10454:76;10546:4;10564:1;10559:59;;;;10632:1;10627:130;;;;10539:218;;10559:59;10589:1;10580:10;;10603:5;;;10627:130;10664:3;10654:8;10651:17;10648:43;;;10671:18;;:::i;:::-;-1:-1:-1;;10727:1:1;10713:16;;10742:5;;10539:218;;10841:2;10831:8;10828:16;10822:3;10816:4;10813:13;10809:36;10803:2;10793:8;10790:16;10785:2;10779:4;10776:12;10772:35;10769:77;10766:159;;;-1:-1:-1;10878:19:1;;;10910:5;;10766:159;10957:34;10982:8;10976:4;10957:34;:::i;:::-;11027:6;11023:1;11019:6;11015:19;11006:7;11003:32;11000:58;;;11038:18;;:::i;:::-;11076:20;;10296:806;-1:-1:-1;;;10296:806:1:o;11107:140::-;11165:5;11194:47;11235:4;11225:8;11221:19;11215:4;11194:47;:::i;13268:980::-;13530:4;13578:3;13567:9;13563:19;13609:6;13598:9;13591:25;13635:2;13673:6;13668:2;13657:9;13653:18;13646:34;13716:3;13711:2;13700:9;13696:18;13689:31;13740:6;13775;13769:13;13806:6;13798;13791:22;13844:3;13833:9;13829:19;13822:26;;13883:2;13875:6;13871:15;13857:29;;13904:1;13914:195;13928:6;13925:1;13922:13;13914:195;;;13993:13;;-1:-1:-1;;;;;13989:39:1;13977:52;;14084:15;;;;14049:12;;;;14025:1;13943:9;13914:195;;;-1:-1:-1;;;;;;;14165:32:1;;;;14160:2;14145:18;;14138:60;-1:-1:-1;;;14229:3:1;14214:19;14207:35;14126:3;13268:980;-1:-1:-1;;;13268:980:1:o;14865:306::-;14953:6;14961;14969;15022:2;15010:9;15001:7;14997:23;14993:32;14990:52;;;15038:1;15035;15028:12;14990:52;15067:9;15061:16;15051:26;;15117:2;15106:9;15102:18;15096:25;15086:35;;15161:2;15150:9;15146:18;15140:25;15130:35;;14865:306;;;;;:::o

Swarm Source

ipfs://4e54ed1e1cab4aefecbfc60ec601739dd3d4858a6d87633173952bc96405774f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Tokerr is the one-stop ecosystem with a singular goal to create safety, security and accessibility for DeFi investors. All the Tokerr utilities and dapps have been carefully envisioned prioritizing the investors, and trying to fix unique problems that plague DeFi, from the ground up.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.