ETH Price: $2,152.19 (-2.31%)

Contract

0xcE82213C4bAE42e1c04880EA64A53eEf73E195dE
 

Overview

ETH Balance

0.000047312218377568 ETH

Eth Value

$0.10 (@ $2,152.19/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve246778602026-03-17 14:37:592 days ago1773758279IN
0xcE82213C...f73E195dE
0 ETH0.000057641.24582223
Approve246610972026-03-15 6:28:234 days ago1773556103IN
0xcE82213C...f73E195dE
0 ETH0.000005140.11061602
Approve246598272026-03-15 2:13:354 days ago1773540815IN
0xcE82213C...f73E195dE
0 ETH0.000005740.12360535
Approve246507752026-03-13 19:56:236 days ago1773431783IN
0xcE82213C...f73E195dE
0 ETH0.000025910.56004853
Approve246507212026-03-13 19:45:356 days ago1773431135IN
0xcE82213C...f73E195dE
0 ETH0.000005840.12548101
Approve246487532026-03-13 13:09:596 days ago1773407399IN
0xcE82213C...f73E195dE
0 ETH0.000014570.3130004
Approve246480282026-03-13 10:44:236 days ago1773398663IN
0xcE82213C...f73E195dE
0 ETH0.000092532
Approve246480072026-03-13 10:40:116 days ago1773398411IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10152959
Approve246480072026-03-13 10:40:116 days ago1773398411IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10152959
Approve246480042026-03-13 10:39:356 days ago1773398375IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10151955
Approve246480042026-03-13 10:39:356 days ago1773398375IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10151955
Approve246480042026-03-13 10:39:356 days ago1773398375IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10151955
Approve246480042026-03-13 10:39:356 days ago1773398375IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10151955
Approve246480042026-03-13 10:39:356 days ago1773398375IN
0xcE82213C...f73E195dE
0 ETH0.00023725.10151955
Approve246476122026-03-13 9:20:596 days ago1773393659IN
0xcE82213C...f73E195dE
0 ETH0.000235565.06614793
Approve246423642026-03-12 15:45:357 days ago1773330335IN
0xcE82213C...f73E195dE
0 ETH0.000017530.37689205
Approve246415522026-03-12 13:01:357 days ago1773320495IN
0xcE82213C...f73E195dE
0 ETH0.000034960.75564466
Approve246380852026-03-12 1:25:237 days ago1773278723IN
0xcE82213C...f73E195dE
0 ETH0.000002120.04605986
Approve246369062026-03-11 21:27:598 days ago1773264479IN
0xcE82213C...f73E195dE
0 ETH0.000094472.03188274
Approve246364792026-03-11 20:01:478 days ago1773259307IN
0xcE82213C...f73E195dE
0 ETH0.000012340.2654232
Approve246359652026-03-11 18:18:238 days ago1773253103IN
0xcE82213C...f73E195dE
0 ETH0.000010060.21661809
Approve246359492026-03-11 18:15:118 days ago1773252911IN
0xcE82213C...f73E195dE
0 ETH0.000005970.12835282
Approve246359422026-03-11 18:13:478 days ago1773252827IN
0xcE82213C...f73E195dE
0 ETH0.000099382.13749062
Approve246349842026-03-11 15:00:478 days ago1773241247IN
0xcE82213C...f73E195dE
0 ETH0.000018350.39728351
Approve246349802026-03-11 14:59:598 days ago1773241199IN
0xcE82213C...f73E195dE
0 ETH0.000017790.38449547
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.00001451 ETH
Add Liquidity ET...170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.0065722 ETH
Transfer170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.01971662 ETH
Transfer170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.02628883 ETH
Transfer170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.00001687 ETH
Add Liquidity ET...170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.00704018 ETH
Transfer170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.02112054 ETH
Transfer170701832023-04-18 0:58:111066 days ago1681779491
0xcE82213C...f73E195dE
0.02816073 ETH
Transfer170701812023-04-18 0:57:471066 days ago1681779467
0xcE82213C...f73E195dE
0.00001592 ETH
Add Liquidity ET...170701812023-04-18 0:57:471066 days ago1681779467
0xcE82213C...f73E195dE
0.00683916 ETH
Transfer170701812023-04-18 0:57:471066 days ago1681779467
0xcE82213C...f73E195dE
0.0205175 ETH
Transfer170701812023-04-18 0:57:471066 days ago1681779467
0xcE82213C...f73E195dE
0.02735667 ETH
Transfer170701332023-04-18 0:48:111066 days ago1681778891
0xcE82213C...f73E195dE
0.89843923 ETH
Transfer170701332023-04-18 0:48:111066 days ago1681778891
0xcE82213C...f73E195dE
0.25384203 ETH
Transfer170701332023-04-18 0:48:111066 days ago1681778891
0xcE82213C...f73E195dE
0.42307006 ETH
Transfer170701192023-04-18 0:45:231066 days ago1681778723
0xcE82213C...f73E195dE
0.17969533 ETH
Transfer170701192023-04-18 0:45:231066 days ago1681778723
0xcE82213C...f73E195dE
0.29949221 ETH
Transfer170701182023-04-18 0:45:111066 days ago1681778711
0xcE82213C...f73E195dE
0.2332682 ETH
Transfer170701182023-04-18 0:45:111066 days ago1681778711
0xcE82213C...f73E195dE
0.38878034 ETH
Transfer170701172023-04-18 0:44:591066 days ago1681778699
0xcE82213C...f73E195dE
0.2332682 ETH
Transfer170701172023-04-18 0:44:591066 days ago1681778699
0xcE82213C...f73E195dE
0.38878034 ETH
Transfer170701152023-04-18 0:44:351066 days ago1681778675
0xcE82213C...f73E195dE
0.30541012 ETH
Transfer170701152023-04-18 0:44:351066 days ago1681778675
0xcE82213C...f73E195dE
0.50901688 ETH
Transfer170701002023-04-18 0:41:351066 days ago1681778495
0xcE82213C...f73E195dE
0.07323981 ETH
Transfer170701002023-04-18 0:41:351066 days ago1681778495
0xcE82213C...f73E195dE
0.12206636 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLORK

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-04-18
*/

//WEBSITE: florkerc.com
//TG:  https://t.me/FlorkERC
//TWITTER:  twitter.com/FlorkOfficial
//MEDIUM: https://medium.com/@FlorkERC/flork-1b824f15c608


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.17;

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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    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 Context {
    
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface 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 InterfaceLP {
    function sync() external;
}

contract FLORK is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "Flork";
    string constant _symbol = "FLORK";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

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

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

    uint256 private liquidityFee    = 2;
    uint256 private marketingFee    = 3;
    uint256 private devFee          = 0;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public antiBotMode = false;
    mapping (address => bool) public isantiBoted;   

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeexempt[msg.sender] = true;
        isFeeexempt[devFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[devFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xdDB9932Bb4bb7162824E89a6699142f30ac1456d;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _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 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, type(uint256).max);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

        function editWalletSize(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function editMaxSell(uint256 maxTXPercent) external onlyOwner {
         require(maxTXPercent >= 1); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    function removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }
      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
             if(antiBotMode){
                require(isantiBoted[recipient],"Not antiBoted"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeexempt[sender] || isFeeexempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeexempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;

        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function removeStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function swapback() external onlyOwner {
           swapBack();
    
    }

     function transfer() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);

    }

    function rescueToken(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

     function enableantiBot(bool _status) public onlyOwner {
        antiBotMode = _status;
    }

    function setIsAntiBot(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isantiBoted[addresses[i]] = status;
        }
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
        antiBotMode = true;
               
    }
    
    function goLive() public onlyOwner {
        antiBotMode = false;
        sellpercent = 600;
        buypercent = 400;
        transferpercent = 0;
         _maxTxAmount = _totalSupply.mul(15).div(1000);
        _maxWalletToken = _totalSupply.mul(15).div(1000);
                 
    }
             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function setInternalAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }
    
    function setFeeAllocation(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
    }

    function setReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setTokensToSwapAt(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }



event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

API
[{"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":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"antiBotMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"editMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"editWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableantiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isantiBoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setTokensToSwapAt","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":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006e7565b620000439064e8d4a51000620006f8565b6005556200007d6064620000696001600554620004b760201b620011d71790919060201c565b6200054e60201b620012591790919060201c565b600655620000a36064620000696001600554620004b760201b620011d71790919060201c565b6007556002600c556003600d556000600e556000600f556000601055601054600e54600c54600d54600f54620000da919062000712565b620000e6919062000712565b620000f2919062000712565b620000fe919062000712565b60115560646012819055601381905560148181556015829055601e601b55601c91909155601f805461ffff60a01b191690556021805460ff191660011790556005546103e891620001509190620006f8565b6200015c919062000728565b6022553480156200016c57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025291906200074b565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d791906200074b565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f91906200074b565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673ddb9932bb4bb7162824e89a6699142f30ac1456d1790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007c6565b600082600003620004cb5750600062000548565b6000620004d98385620006f8565b905082620004e8858362000728565b14620005455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059860201b60201c565b60008183620005bc5760405162461bcd60e51b81526004016200053c919062000776565b506000620005cb848662000728565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200062b5781600019048211156200060f576200060f620005d4565b808516156200061d57918102915b93841c9390800290620005ef565b509250929050565b600082620006445750600162000548565b81620006535750600062000548565b81600181146200066c5760028114620006775762000697565b600191505062000548565b60ff8411156200068b576200068b620005d4565b50506001821b62000548565b5060208310610133831016604e8410600b8410161715620006bc575081810a62000548565b620006c88383620005ea565b8060001904821115620006df57620006df620005d4565b029392505050565b60006200054560ff84168362000633565b8082028115828204841417620005485762000548620005d4565b80820180821115620005485762000548620005d4565b6000826200074657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200075e57600080fd5b81516001600160a01b03811681146200054557600080fd5b600060208083528351808285015260005b81811015620007a55785810183015185820160400152820162000787565b506000604082860101526040601f19601f8301168501019250505092915050565b6123a380620007d66000396000f3fe60806040526004361061026b5760003560e01c80637fa4a5bb11610144578063a9059cbb116100b6578063d148b74c1161007a578063d148b74c14610723578063d51ed1c814610738578063dd62ed3e14610758578063f2fde38b1461079e578063f887ea40146107be578063fd07aa6c146107de57600080fd5b8063a9059cbb1461068d578063b2bdfa7b146106ad578063b8a02a68146106cd578063c55137a8146106ed578063c9567bf91461070e57600080fd5b80638da5cb5b116101085780638da5cb5b146105b25780639188abd6146105d057806394dcf853146105f057806395d89b41146106105780639baa10431461063e578063a8aa1b311461066d57600080fd5b80637fa4a5bb1461050b57806381e267d61461052b5780638821004f1461054b578063893d20e81461056b5780638a4068dd1461059d57600080fd5b806333f3d628116101dd57806370a08231116101a157806370a0823114610475578063715018a614610495578063751039fc146104aa57806378109e54146104bf578063799b14a6146104d55780637d1db4a5146104f557600080fd5b806333f3d628146103db5780633554dd3c146103fb578063571ac8b01461041b5780636ce46bc31461043b5780636ddd17131461045b57600080fd5b806318160ddd1161022f57806318160ddd146103485780631df4ccfc1461035d57806323b872dd146103735780632b112e49146103935780632c28f579146103a8578063313ce567146103bf57600080fd5b80630445b6671461027757806306fdde03146102a057806308fd3d05146102d7578063095ea7b3146103085780631161ae391461032857600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60225481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b50604080518082019091526005815264466c6f726b60d81b60208201525b6040516102979190611e6c565b3480156102e357600080fd5b50601f546102f890600160a01b900460ff1681565b6040519015158152602001610297565b34801561031457600080fd5b506102f8610323366004611ed6565b6107fe565b34801561033457600080fd5b506102f8610343366004611f00565b61086b565b34801561035457600080fd5b5060055461028d565b34801561036957600080fd5b5061028d60115481565b34801561037f57600080fd5b506102f861038e366004611f22565b61087f565b34801561039f57600080fd5b5061028d610941565b3480156103b457600080fd5b506103bd61098a565b005b3480156103cb57600080fd5b5060405160098152602001610297565b3480156103e757600080fd5b506102f86103f6366004611ed6565b610a15565b34801561040757600080fd5b506103bd610416366004611f5e565b610b01565b34801561042757600080fd5b506102f8610436366004611fc3565b610b8a565b34801561044757600080fd5b506103bd610456366004611fde565b610b98565b34801561046757600080fd5b506021546102f89060ff1681565b34801561048157600080fd5b5061028d610490366004611fc3565b610bd3565b3480156104a157600080fd5b506103bd610bee565b3480156104b657600080fd5b506103bd610c62565b3480156104cb57600080fd5b5061028d60075481565b3480156104e157600080fd5b506103bd6104f036600461200a565b610c99565b34801561050157600080fd5b5061028d60065481565b34801561051757600080fd5b506103bd610526366004612031565b610cf2565b34801561053757600080fd5b506103bd610546366004612068565b610d5a565b34801561055757600080fd5b506103bd61056636600461200a565b610da2565b34801561057757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b3480156105a957600080fd5b506103bd610df6565b3480156105be57600080fd5b506000546001600160a01b0316610585565b3480156105dc57600080fd5b506103bd6105eb366004612085565b610e32565b3480156105fc57600080fd5b506103bd61060b3660046120c8565b610ef8565b34801561061c57600080fd5b50604080518082019091526005815264464c4f524b60d81b60208201526102ca565b34801561064a57600080fd5b506102f8610659366004611fc3565b602080526000908152604090205460ff1681565b34801561067957600080fd5b50601f54610585906001600160a01b031681565b34801561069957600080fd5b506102f86106a8366004611ed6565b610f39565b3480156106b957600080fd5b50600054610585906001600160a01b031681565b3480156106d957600080fd5b506103bd6106e836600461200a565b610f46565b3480156106f957600080fd5b50601f546102f890600160a81b900460ff1681565b34801561071a57600080fd5b506103bd610f9f565b34801561072f57600080fd5b506103bd610fe0565b34801561074457600080fd5b5061028d61075336600461200a565b611014565b34801561076457600080fd5b5061028d6107733660046120e6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107aa57600080fd5b506103bd6107b9366004611fc3565b61104e565b3480156107ca57600080fd5b50601d54610585906001600160a01b031681565b3480156107ea57600080fd5b506103bd6107f9366004612119565b611138565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108599086815260200190565b60405180910390a35060015b92915050565b60008261087783611014565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461092c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461090791849061129b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109378484846112d5565b90505b9392505050565b6004546000906109859061095d906001600160a01b0316610bd3565b60035461097f90610976906001600160a01b0316610bd3565b60055490611699565b90611699565b905090565b6000546001600160a01b031633146109bd5760405162461bcd60e51b81526004016109b49061219f565b60405180910390fd5b601f805460ff60a81b1916905561025860135561019060145560006015556005546109f7906103e8906109f190600f6111d7565b90611259565b600655600554610a10906103e8906109f190600f6111d7565b600755565b600081600003610a8a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8791906121d4565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906121ed565b6000546001600160a01b03163314610b2b5760405162461bcd60e51b81526004016109b49061219f565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000610865826000196107fe565b6000546001600160a01b03163314610bc25760405162461bcd60e51b81526004016109b49061219f565b601391909155601491909155601555565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610c185760405162461bcd60e51b81526004016109b49061219f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c8c5760405162461bcd60e51b81526004016109b49061219f565b6005546006819055600755565b6000546001600160a01b03163314610cc35760405162461bcd60e51b81526004016109b49061219f565b6001811015610cd157600080fd5b6103e881600554610ce29190612220565b610cec9190612237565b60075550565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b81526004016109b49061219f565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610d845760405162461bcd60e51b81526004016109b49061219f565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b60195447906001600160a01b03166108fc6064610dbf8585612220565b610dc99190612237565b6040518115909202916000818181858888f19350505050158015610df1573d6000803e3d6000fd5b505050565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e2f573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016109b49061219f565b600c869055600f859055600d849055600e8390556010829055610e8d82610e87858188818c8c6116db565b906116db565b6011556012819055610ea0600282612237565b60115410610ef05760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016109b4565b505050505050565b6000546001600160a01b03163314610f225760405162461bcd60e51b81526004016109b49061219f565b6021805460ff191692151592909217909155602255565b600061093a3384846112d5565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016109b49061219f565b6001811015610f7e57600080fd5b6103e881600554610f8f9190612220565b610f999190612237565b60065550565b6000546001600160a01b03163314610fc95760405162461bcd60e51b81526004016109b49061219f565b601f805461ffff60a01b191661010160a01b179055565b6000546001600160a01b0316331461100a5760405162461bcd60e51b81526004016109b49061219f565b61101261173a565b565b6000610865611021610941565b601f546109f19061104790600290611041906001600160a01b0316610bd3565b906111d7565b85906111d7565b6000546001600160a01b031633146110785760405162461bcd60e51b81526004016109b49061219f565b6001600160a01b0381166110dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111625760405162461bcd60e51b81526004016109b49061219f565b60005b828110156111d157816020600086868581811061118457611184612259565b90506020020160208101906111999190611fc3565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111ca8161226f565b9050611165565b50505050565b6000826000036111e957506000610865565b60006111f58385612220565b9050826112028583612237565b1461093a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109b4565b600061093a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b21565b600081848411156112bf5760405162461bcd60e51b81526004016109b49190611e6c565b5060006112cc8486612288565b95945050505050565b60235460009060ff16156112f5576112ee848484611b4f565b905061093a565b6001600160a01b03841660009081526001602052604090205460ff1615801561133757506001600160a01b03831660009081526001602052604090205460ff16155b156113f557601f54600160a01b900460ff1661138c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109b4565b601f54600160a81b900460ff16156113f5576001600160a01b038316600090815260208052604090205460ff166113f55760405162461bcd60e51b815260206004820152600d60248201526c139bdd08185b9d1a509bdd1959609a1b60448201526064016109b4565b6001600160a01b03841660009081526001602052604090205460ff1615801561142757506001600160a01b0383163014155b801561144157506003546001600160a01b03848116911614155b801561145b5750601f546001600160a01b03848116911614155b80156114755750601a546001600160a01b03848116911614155b801561148f57506017546001600160a01b03848116911614155b80156114b457506001600160a01b0383166000908152600b602052604090205460ff16155b1561154a5760006114c484610bd3565b6007549091506114d4848361229b565b11156115485760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109b4565b505b6115548483611c23565b61155c611c90565b156115695761156961173a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546115bb91849061129b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061160857506001600160a01b0384166000908152600a602052604090205460ff165b61161c57611617858486611cdf565b61161e565b825b6001600160a01b03851660009081526008602052604090205490915061164490826116db565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061234e833981519152906116869085815260200190565b60405180910390a3506001949350505050565b600061093a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061129b565b6000806116e8838561229b565b90508381101561093a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b4565b6023805460ff19166001179055601b54601c546000916117599161086b565b61176557600c54611768565b60005b9050600061178c60026109f16011546109f1866022546111d790919063ffffffff16565b905060006117a58260225461169990919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117df576117df612259565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061181057611810612259565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061185a9086906000908790309042906004016122ae565b600060405180830381600087803b15801561187457600080fd5b505af1158015611888573d6000803e3d6000fd5b5050505060006118a1824761169990919063ffffffff16565b905060006118bc6118b3886002611259565b60115490611699565b905060006118d160026109f18481878d6111d7565b905060006118ee836109f1600d54876111d790919063ffffffff16565b9050600061190b846109f1600f54886111d790919063ffffffff16565b90506000611928856109f1600e54896111d790919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461197a576040519150601f19603f3d011682016040523d82523d6000602084013e61197f565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146119cf576040519150601f19603f3d011682016040523d82523d6000602084013e6119d4565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a24576040519150601f19603f3d011682016040523d82523d6000602084013e611a29565b606091505b5060009250508b159050611b0957601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611aa7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611acc919061231f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611b425760405162461bcd60e51b81526004016109b49190611e6c565b5060006112cc8486612237565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ba091849061129b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611bcf90836116db565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061234e83398151915290611c119086815260200190565b60405180910390a35060019392505050565b60065481111580611c4c57506001600160a01b0382166000908152600b602052604090205460ff165b611c8c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109b4565b5050565b601f546000906001600160a01b03163314801590611cb1575060235460ff16155b8015611cbf575060215460ff165b801561098557505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611d055750601354611d20565b601f546001600160a01b0390811690861603611d2057506014545b6000611d4d6012546064611d349190612220565b6109f1846110416011548a6111d790919063ffffffff16565b90506000611d6c6011546109f1601054856111d790919063ffffffff16565b90506000611d7a8383611699565b30600090815260086020526040902054909150611d9790826116db565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611dc590836116db565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061234e833981519152910160405180910390a38115611e5657600554611e1f9083611699565b6005556004546040518381526001600160a01b03918216918a169060008051602061234e8339815191529060200160405180910390a35b611e608784611699565b98975050505050505050565b600060208083528351808285015260005b81811015611e9957858101830151858201604001528201611e7d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ed157600080fd5b919050565b60008060408385031215611ee957600080fd5b611ef283611eba565b946020939093013593505050565b60008060408385031215611f1357600080fd5b50508035926020909101359150565b600080600060608486031215611f3757600080fd5b611f4084611eba565b9250611f4e60208501611eba565b9150604084013590509250925092565b600080600080600060a08688031215611f7657600080fd5b611f7f86611eba565b9450611f8d60208701611eba565b9350611f9b60408701611eba565b9250611fa960608701611eba565b9150611fb760808701611eba565b90509295509295909350565b600060208284031215611fd557600080fd5b61093a82611eba565b600080600060608486031215611ff357600080fd5b505081359360208301359350604090920135919050565b60006020828403121561201c57600080fd5b5035919050565b8015158114610e2f57600080fd5b6000806040838503121561204457600080fd5b61204d83611eba565b9150602083013561205d81612023565b809150509250929050565b60006020828403121561207a57600080fd5b813561093a81612023565b60008060008060008060c0878903121561209e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120db57600080fd5b8235611ef281612023565b600080604083850312156120f957600080fd5b61210283611eba565b915061211060208401611eba565b90509250929050565b60008060006040848603121561212e57600080fd5b833567ffffffffffffffff8082111561214657600080fd5b818601915086601f83011261215a57600080fd5b81358181111561216957600080fd5b8760208260051b850101111561217e57600080fd5b6020928301955093505084013561219481612023565b809150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156121e657600080fd5b5051919050565b6000602082840312156121ff57600080fd5b815161093a81612023565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108655761086561220a565b60008261225457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016122815761228161220a565b5060010190565b818103818111156108655761086561220a565b808201808211156108655761086561220a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122fe5784516001600160a01b0316835293830193918301916001016122d9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561233457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bec71cc4bc5c119471af28368545f58123bd9030497c79a486f6a53759b6c2b564736f6c63430008110033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80637fa4a5bb11610144578063a9059cbb116100b6578063d148b74c1161007a578063d148b74c14610723578063d51ed1c814610738578063dd62ed3e14610758578063f2fde38b1461079e578063f887ea40146107be578063fd07aa6c146107de57600080fd5b8063a9059cbb1461068d578063b2bdfa7b146106ad578063b8a02a68146106cd578063c55137a8146106ed578063c9567bf91461070e57600080fd5b80638da5cb5b116101085780638da5cb5b146105b25780639188abd6146105d057806394dcf853146105f057806395d89b41146106105780639baa10431461063e578063a8aa1b311461066d57600080fd5b80637fa4a5bb1461050b57806381e267d61461052b5780638821004f1461054b578063893d20e81461056b5780638a4068dd1461059d57600080fd5b806333f3d628116101dd57806370a08231116101a157806370a0823114610475578063715018a614610495578063751039fc146104aa57806378109e54146104bf578063799b14a6146104d55780637d1db4a5146104f557600080fd5b806333f3d628146103db5780633554dd3c146103fb578063571ac8b01461041b5780636ce46bc31461043b5780636ddd17131461045b57600080fd5b806318160ddd1161022f57806318160ddd146103485780631df4ccfc1461035d57806323b872dd146103735780632b112e49146103935780632c28f579146103a8578063313ce567146103bf57600080fd5b80630445b6671461027757806306fdde03146102a057806308fd3d05146102d7578063095ea7b3146103085780631161ae391461032857600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60225481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b50604080518082019091526005815264466c6f726b60d81b60208201525b6040516102979190611e6c565b3480156102e357600080fd5b50601f546102f890600160a01b900460ff1681565b6040519015158152602001610297565b34801561031457600080fd5b506102f8610323366004611ed6565b6107fe565b34801561033457600080fd5b506102f8610343366004611f00565b61086b565b34801561035457600080fd5b5060055461028d565b34801561036957600080fd5b5061028d60115481565b34801561037f57600080fd5b506102f861038e366004611f22565b61087f565b34801561039f57600080fd5b5061028d610941565b3480156103b457600080fd5b506103bd61098a565b005b3480156103cb57600080fd5b5060405160098152602001610297565b3480156103e757600080fd5b506102f86103f6366004611ed6565b610a15565b34801561040757600080fd5b506103bd610416366004611f5e565b610b01565b34801561042757600080fd5b506102f8610436366004611fc3565b610b8a565b34801561044757600080fd5b506103bd610456366004611fde565b610b98565b34801561046757600080fd5b506021546102f89060ff1681565b34801561048157600080fd5b5061028d610490366004611fc3565b610bd3565b3480156104a157600080fd5b506103bd610bee565b3480156104b657600080fd5b506103bd610c62565b3480156104cb57600080fd5b5061028d60075481565b3480156104e157600080fd5b506103bd6104f036600461200a565b610c99565b34801561050157600080fd5b5061028d60065481565b34801561051757600080fd5b506103bd610526366004612031565b610cf2565b34801561053757600080fd5b506103bd610546366004612068565b610d5a565b34801561055757600080fd5b506103bd61056636600461200a565b610da2565b34801561057757600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b3480156105a957600080fd5b506103bd610df6565b3480156105be57600080fd5b506000546001600160a01b0316610585565b3480156105dc57600080fd5b506103bd6105eb366004612085565b610e32565b3480156105fc57600080fd5b506103bd61060b3660046120c8565b610ef8565b34801561061c57600080fd5b50604080518082019091526005815264464c4f524b60d81b60208201526102ca565b34801561064a57600080fd5b506102f8610659366004611fc3565b602080526000908152604090205460ff1681565b34801561067957600080fd5b50601f54610585906001600160a01b031681565b34801561069957600080fd5b506102f86106a8366004611ed6565b610f39565b3480156106b957600080fd5b50600054610585906001600160a01b031681565b3480156106d957600080fd5b506103bd6106e836600461200a565b610f46565b3480156106f957600080fd5b50601f546102f890600160a81b900460ff1681565b34801561071a57600080fd5b506103bd610f9f565b34801561072f57600080fd5b506103bd610fe0565b34801561074457600080fd5b5061028d61075336600461200a565b611014565b34801561076457600080fd5b5061028d6107733660046120e6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107aa57600080fd5b506103bd6107b9366004611fc3565b61104e565b3480156107ca57600080fd5b50601d54610585906001600160a01b031681565b3480156107ea57600080fd5b506103bd6107f9366004612119565b611138565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108599086815260200190565b60405180910390a35060015b92915050565b60008261087783611014565b119392505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461092c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461090791849061129b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109378484846112d5565b90505b9392505050565b6004546000906109859061095d906001600160a01b0316610bd3565b60035461097f90610976906001600160a01b0316610bd3565b60055490611699565b90611699565b905090565b6000546001600160a01b031633146109bd5760405162461bcd60e51b81526004016109b49061219f565b60405180910390fd5b601f805460ff60a81b1916905561025860135561019060145560006015556005546109f7906103e8906109f190600f6111d7565b90611259565b600655600554610a10906103e8906109f190600f6111d7565b600755565b600081600003610a8a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8791906121d4565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906121ed565b6000546001600160a01b03163314610b2b5760405162461bcd60e51b81526004016109b49061219f565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000610865826000196107fe565b6000546001600160a01b03163314610bc25760405162461bcd60e51b81526004016109b49061219f565b601391909155601491909155601555565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610c185760405162461bcd60e51b81526004016109b49061219f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c8c5760405162461bcd60e51b81526004016109b49061219f565b6005546006819055600755565b6000546001600160a01b03163314610cc35760405162461bcd60e51b81526004016109b49061219f565b6001811015610cd157600080fd5b6103e881600554610ce29190612220565b610cec9190612237565b60075550565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b81526004016109b49061219f565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610d845760405162461bcd60e51b81526004016109b49061219f565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b60195447906001600160a01b03166108fc6064610dbf8585612220565b610dc99190612237565b6040518115909202916000818181858888f19350505050158015610df1573d6000803e3d6000fd5b505050565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e2f573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016109b49061219f565b600c869055600f859055600d849055600e8390556010829055610e8d82610e87858188818c8c6116db565b906116db565b6011556012819055610ea0600282612237565b60115410610ef05760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035302500000060448201526064016109b4565b505050505050565b6000546001600160a01b03163314610f225760405162461bcd60e51b81526004016109b49061219f565b6021805460ff191692151592909217909155602255565b600061093a3384846112d5565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016109b49061219f565b6001811015610f7e57600080fd5b6103e881600554610f8f9190612220565b610f999190612237565b60065550565b6000546001600160a01b03163314610fc95760405162461bcd60e51b81526004016109b49061219f565b601f805461ffff60a01b191661010160a01b179055565b6000546001600160a01b0316331461100a5760405162461bcd60e51b81526004016109b49061219f565b61101261173a565b565b6000610865611021610941565b601f546109f19061104790600290611041906001600160a01b0316610bd3565b906111d7565b85906111d7565b6000546001600160a01b031633146110785760405162461bcd60e51b81526004016109b49061219f565b6001600160a01b0381166110dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111625760405162461bcd60e51b81526004016109b49061219f565b60005b828110156111d157816020600086868581811061118457611184612259565b90506020020160208101906111999190611fc3565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111ca8161226f565b9050611165565b50505050565b6000826000036111e957506000610865565b60006111f58385612220565b9050826112028583612237565b1461093a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109b4565b600061093a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b21565b600081848411156112bf5760405162461bcd60e51b81526004016109b49190611e6c565b5060006112cc8486612288565b95945050505050565b60235460009060ff16156112f5576112ee848484611b4f565b905061093a565b6001600160a01b03841660009081526001602052604090205460ff1615801561133757506001600160a01b03831660009081526001602052604090205460ff16155b156113f557601f54600160a01b900460ff1661138c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109b4565b601f54600160a81b900460ff16156113f5576001600160a01b038316600090815260208052604090205460ff166113f55760405162461bcd60e51b815260206004820152600d60248201526c139bdd08185b9d1a509bdd1959609a1b60448201526064016109b4565b6001600160a01b03841660009081526001602052604090205460ff1615801561142757506001600160a01b0383163014155b801561144157506003546001600160a01b03848116911614155b801561145b5750601f546001600160a01b03848116911614155b80156114755750601a546001600160a01b03848116911614155b801561148f57506017546001600160a01b03848116911614155b80156114b457506001600160a01b0383166000908152600b602052604090205460ff16155b1561154a5760006114c484610bd3565b6007549091506114d4848361229b565b11156115485760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016109b4565b505b6115548483611c23565b61155c611c90565b156115695761156961173a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546115bb91849061129b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061160857506001600160a01b0384166000908152600a602052604090205460ff165b61161c57611617858486611cdf565b61161e565b825b6001600160a01b03851660009081526008602052604090205490915061164490826116db565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061234e833981519152906116869085815260200190565b60405180910390a3506001949350505050565b600061093a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061129b565b6000806116e8838561229b565b90508381101561093a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b4565b6023805460ff19166001179055601b54601c546000916117599161086b565b61176557600c54611768565b60005b9050600061178c60026109f16011546109f1866022546111d790919063ffffffff16565b905060006117a58260225461169990919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117df576117df612259565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061181057611810612259565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061185a9086906000908790309042906004016122ae565b600060405180830381600087803b15801561187457600080fd5b505af1158015611888573d6000803e3d6000fd5b5050505060006118a1824761169990919063ffffffff16565b905060006118bc6118b3886002611259565b60115490611699565b905060006118d160026109f18481878d6111d7565b905060006118ee836109f1600d54876111d790919063ffffffff16565b9050600061190b846109f1600f54886111d790919063ffffffff16565b90506000611928856109f1600e54896111d790919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461197a576040519150601f19603f3d011682016040523d82523d6000602084013e61197f565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146119cf576040519150601f19603f3d011682016040523d82523d6000602084013e6119d4565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611a24576040519150601f19603f3d011682016040523d82523d6000602084013e611a29565b606091505b5060009250508b159050611b0957601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611aa7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611acc919061231f565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611b425760405162461bcd60e51b81526004016109b49190611e6c565b5060006112cc8486612237565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611ba091849061129b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611bcf90836116db565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061234e83398151915290611c119086815260200190565b60405180910390a35060019392505050565b60065481111580611c4c57506001600160a01b0382166000908152600b602052604090205460ff165b611c8c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109b4565b5050565b601f546000906001600160a01b03163314801590611cb1575060235460ff16155b8015611cbf575060215460ff165b801561098557505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611d055750601354611d20565b601f546001600160a01b0390811690861603611d2057506014545b6000611d4d6012546064611d349190612220565b6109f1846110416011548a6111d790919063ffffffff16565b90506000611d6c6011546109f1601054856111d790919063ffffffff16565b90506000611d7a8383611699565b30600090815260086020526040902054909150611d9790826116db565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611dc590836116db565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061234e833981519152910160405180910390a38115611e5657600554611e1f9083611699565b6005556004546040518381526001600160a01b03918216918a169060008051602061234e8339815191529060200160405180910390a35b611e608784611699565b98975050505050505050565b600060208083528351808285015260005b81811015611e9957858101830151858201604001528201611e7d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611ed157600080fd5b919050565b60008060408385031215611ee957600080fd5b611ef283611eba565b946020939093013593505050565b60008060408385031215611f1357600080fd5b50508035926020909101359150565b600080600060608486031215611f3757600080fd5b611f4084611eba565b9250611f4e60208501611eba565b9150604084013590509250925092565b600080600080600060a08688031215611f7657600080fd5b611f7f86611eba565b9450611f8d60208701611eba565b9350611f9b60408701611eba565b9250611fa960608701611eba565b9150611fb760808701611eba565b90509295509295909350565b600060208284031215611fd557600080fd5b61093a82611eba565b600080600060608486031215611ff357600080fd5b505081359360208301359350604090920135919050565b60006020828403121561201c57600080fd5b5035919050565b8015158114610e2f57600080fd5b6000806040838503121561204457600080fd5b61204d83611eba565b9150602083013561205d81612023565b809150509250929050565b60006020828403121561207a57600080fd5b813561093a81612023565b60008060008060008060c0878903121561209e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080604083850312156120db57600080fd5b8235611ef281612023565b600080604083850312156120f957600080fd5b61210283611eba565b915061211060208401611eba565b90509250929050565b60008060006040848603121561212e57600080fd5b833567ffffffffffffffff8082111561214657600080fd5b818601915086601f83011261215a57600080fd5b81358181111561216957600080fd5b8760208260051b850101111561217e57600080fd5b6020928301955093505084013561219481612023565b809150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156121e657600080fd5b5051919050565b6000602082840312156121ff57600080fd5b815161093a81612023565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108655761086561220a565b60008261225457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016122815761228161220a565b5060010190565b818103818111156108655761086561220a565b808201808211156108655761086561220a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122fe5784516001600160a01b0316835293830193918301916001016122d9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561233457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bec71cc4bc5c119471af28368545f58123bd9030497c79a486f6a53759b6c2b564736f6c63430008110033

Deployed Bytecode Sourcemap

5137:13870:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6915:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6915:55:0;;;;;;;;8417:80;;;;;;;;;;-1:-1:-1;8489:5:0;;;;;;;;;;;;-1:-1:-1;;;8489:5:0;;;;8417:80;;;;;;;:::i;6743:31::-;;;;;;;;;;-1:-1:-1;6743:31:0;;;;-1:-1:-1;;;6743:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;6743:31:0;749:187:1;8839:216:0;;;;;;;;;;-1:-1:-1;8839:216:0;;;;;:::i;:::-;;:::i;18785:150::-;;;;;;;;;;-1:-1:-1;18785:150:0;;;;;:::i;:::-;;:::i;8147:88::-;;;;;;;;;;-1:-1:-1;8220:12:0;;8147:88;;6106:90;;;;;;;;;;;;;;;;9357:370;;;;;;;;;;-1:-1:-1;9357:370:0;;;;;:::i;:::-;;:::i;18460:142::-;;;;;;;;;;;;;:::i;14923:293::-;;;;;;;;;;;;;:::i;:::-;;8241:80;;;;;;;;;;-1:-1:-1;8241:80:0;;5472:1;2106:36:1;;2094:2;2079:18;8241:80:0;1964:184:1;13974:278:0;;;;;;;;;;-1:-1:-1;13974:278:0;;;;;:::i;:::-;;:::i;17853:434::-;;;;;;;;;;-1:-1:-1;17853:434:0;;;;;:::i;:::-;;:::i;9063:122::-;;;;;;;;;;-1:-1:-1;9063:122:0;;;;;:::i;:::-;;:::i;14260:205::-;;;;;;;;;;-1:-1:-1;14260:205:0;;;;;:::i;:::-;;:::i;6878:30::-;;;;;;;;;;-1:-1:-1;6878:30:0;;;;;;;;8587:105;;;;;;;;;;-1:-1:-1;8587:105:0;;;;;:::i;:::-;;:::i;3194:148::-;;;;;;;;;;;;;:::i;10129:139::-;;;;;;;;;;;;;:::i;5610:61::-;;;;;;;;;;;;;;;;9739:202;;;;;;;;;;-1:-1:-1;9739:202:0;;;;;:::i;:::-;;:::i;5545:58::-;;;;;;;;;;;;;;;;17106:166;;;;;;;;;;-1:-1:-1;17106:166:0;;;;;:::i;:::-;;:::i;14474:94::-;;;;;;;;;;-1:-1:-1;14474:94:0;;;;;:::i;:::-;;:::i;13554:199::-;;;;;;;;;;-1:-1:-1;13554:199:0;;;;;:::i;:::-;;:::i;8503:78::-;;;;;;;;;;-1:-1:-1;8555:7:0;3045:6;-1:-1:-1;;;;;3045:6:0;8503:78;;;-1:-1:-1;;;;;4192:32:1;;;4174:51;;4162:2;4147:18;8503:78:0;4028:203:1;13848:118:0;;;;;;;;;;;;;:::i;2980:79::-;;;;;;;;;;-1:-1:-1;3018:7:0;3045:6;-1:-1:-1;;;;;3045:6:0;2980:79;;17284:561;;;;;;;;;;-1:-1:-1;17284:561:0;;;;;:::i;:::-;;:::i;18295:153::-;;;;;;;;;;-1:-1:-1;18295:153:0;;;;;:::i;:::-;;:::i;8327:84::-;;;;;;;;;;-1:-1:-1;8401:7:0;;;;;;;;;;;;-1:-1:-1;;;8401:7:0;;;;8327:84;;6822:44;;;;;;;;;;-1:-1:-1;6822:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6711:19;;;;;;;;;;-1:-1:-1;6711:19:0;;;;-1:-1:-1;;;;;6711:19:0;;;9193:156;;;;;;;;;;-1:-1:-1;9193:156:0;;;;;:::i;:::-;;:::i;2600:21::-;;;;;;;;;;-1:-1:-1;2600:21:0;;;;-1:-1:-1;;;;;2600:21:0;;;9949:172;;;;;;;;;;-1:-1:-1;9949:172:0;;;;;:::i;:::-;;:::i;6784:31::-;;;;;;;;;;-1:-1:-1;6784:31:0;;;;-1:-1:-1;;;6784:31:0;;;;;;14788:123;;;;;;;;;;;;;:::i;13762:77::-;;;;;;;;;;;;;:::i;18610:167::-;;;;;;;;;;-1:-1:-1;18610:167:0;;;;;:::i;:::-;;:::i;8698:133::-;;;;;;;;;;-1:-1:-1;8698:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8800:19:0;;;8782:7;8800:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8698:133;3350:244;;;;;;;;;;-1:-1:-1;3350:244:0;;;;;:::i;:::-;;:::i;6641:24::-;;;;;;;;;;-1:-1:-1;6641:24:0;;;;-1:-1:-1;;;;;6641:24:0;;;14576:204;;;;;;;;;;-1:-1:-1;14576:204:0;;;;;:::i;:::-;;:::i;8839:216::-;8943:10;8914:4;8931:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8931:32:0;;;;;;;;;;:41;;;8988:37;8914:4;;8931:32;;8988:37;;;;8966:6;160:25:1;;148:2;133:18;;14:177;8988:37:0;;;;;;;;-1:-1:-1;9043:4:0;8839:216;;;;;:::o;18785:150::-;18865:4;18921:6;18889:29;18909:8;18889:19;:29::i;:::-;:38;;18785:150;-1:-1:-1;;;18785:150:0:o;9357:370::-;-1:-1:-1;;;;;9477:19:0;;9457:4;9477:19;;;:11;:19;;;;;;;;9497:10;9477:31;;;;;;;;-1:-1:-1;;9477:52:0;9474:186;;9579:69;;;;;;;;;;;-1:-1:-1;;;9579:69:0;;;;;;;;-1:-1:-1;;;;;9579:19:0;;-1:-1:-1;9579:19:0;;;:11;:19;;;;;9599:10;9579:31;;;;;;;;;;:69;;9615:6;;9579:35;:69::i;:::-;-1:-1:-1;;;;;9545:19:0;;;;;;:11;:19;;;;;;;;9565:10;9545:31;;;;;;;:103;9474:186;9679:40;9693:6;9701:9;9712:6;9679:13;:40::i;:::-;9672:47;;9357:370;;;;;;:::o;18460:142::-;18588:4;;18513:7;;18540:54;;18578:15;;-1:-1:-1;;;;;18588:4:0;18578:9;:15::i;:::-;18567:4;;18540:33;;18557:15;;-1:-1:-1;;;;;18567:4:0;18557:9;:15::i;:::-;18540:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18533:61;;18460:142;:::o;14923:293::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;;;;;;;;;14969:11:::1;:19:::0;;-1:-1:-1;;;;14969:19:0::1;::::0;;15013:3:::1;14999:11;:17:::0;15040:3:::1;15027:10;:16:::0;14983:5:::1;14969:11;15054:19:::0;15100:12:::1;::::0;:30:::1;::::0;15125:4:::1;::::0;15100:20:::1;::::0;15117:2:::1;15100:16;:20::i;:::-;:24:::0;::::1;:30::i;:::-;15085:12;:45:::0;15159:12:::1;::::0;:30:::1;::::0;15184:4:::1;::::0;15159:20:::1;::::0;15176:2:::1;15159:16;:20::i;:30::-;15141:15;:48:::0;14923:293::o;13974:278::-;14049:4;14076:6;14086:1;14076:11;14073:95;;14112:44;;-1:-1:-1;;;14112:44:0;;14150:4;14112:44;;;4174:51:1;-1:-1:-1;;;;;14112:29:0;;;;;4147:18:1;;14112:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14103:53;;14073:95;14214:21;;14185:59;;-1:-1:-1;;;14185:59:0;;-1:-1:-1;;;;;14214:21:0;;;14185:59;;;7048:51:1;7115:18;;;7108:34;;;14185:28:0;;;;;;7021:18:1;;14185:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17853:434::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;18045:21:::1;:46:::0;;-1:-1:-1;;;;;;18045:46:0;;::::1;-1:-1:-1::0;;;;;18045:46:0;;::::1;;::::0;;;18102:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18157:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18200:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18245:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17853:434::o;9063:122::-;9118:4;9142:35;9150:7;-1:-1:-1;;9142:7:0;:35::i;14260:205::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;14359:11:::1;:19:::0;;;;14389:10:::1;:17:::0;;;;14417:15:::1;:24:::0;14260:205::o;8587:105::-;-1:-1:-1;;;;;8671:18:0;8653:7;8671:18;;;:9;:18;;;;;;;8587:105::o;3194:148::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;3301:1:::1;3285:6:::0;;3264:40:::1;::::0;-1:-1:-1;;;;;3285:6:0;;::::1;::::0;3264:40:::1;::::0;3301:1;;3264:40:::1;3332:1;3315:19:::0;;-1:-1:-1;;;;;;3315:19:0::1;::::0;;3194:148::o;10129:139::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;10203:12:::1;::::0;10188::::1;:27:::0;;;10230:15:::1;:30:::0;10129:139::o;9739:202::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;9844:1:::1;9826:14;:19;;9818:28;;;::::0;::::1;;9911:4;9892:14;9877:12;;:29;;;;:::i;:::-;9876:39;;;;:::i;:::-;9858:15;:57:::0;-1:-1:-1;9739:202:0:o;17106:166::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17193:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17193:28:0;;::::1;::::0;::::1;::::0;;;17232:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17106:166::o;14474:94::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;14539:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;14539:21:0::1;-1:-1:-1::0;;;;14539:21:0;;::::1;::::0;;;::::1;::::0;;14474:94::o;13554:199::-;13684:15;;13644:21;;-1:-1:-1;;;;;13684:15:0;13676:69;13741:3;13710:28;13722:16;13644:21;13710:28;:::i;:::-;:34;;;;:::i;:::-;13676:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13613:140;13554:199;:::o;13848:118::-;13902:21;;13894:62;;-1:-1:-1;;;;;13902:21:0;;;;13934;13894:62;;;;;13902:21;13894:62;13902:21;13894:62;13934:21;13902;13894:62;;;;;;;;;;;;;;;;;;;;;13848:118::o;17284:561::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;17464:12:::1;:28:::0;;;17503:7:::1;:18:::0;;;17532:12:::1;:28:::0;;;17571:6:::1;:16:::0;;;17598:7:::1;:18:::0;;;17638:73:::1;17608:8:::0;17638:59:::1;17580:7:::0;17638:59;17547:13;17638:59;17479:13;17513:8;17638:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17627:8;:84:::0;17722:14:::1;:32:::0;;;17784:18:::1;17801:1;17739:15:::0;17784:18:::1;:::i;:::-;17773:8;;:29;17765:71;;;::::0;-1:-1:-1;;;17765:71:0;;8132:2:1;17765:71:0::1;::::0;::::1;8114:21:1::0;8171:2;8151:18;;;8144:30;8210:31;8190:18;;;8183:59;8259:18;;17765:71:0::1;7930:353:1::0;17765:71:0::1;17284:561:::0;;;;;;:::o;18295:153::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;18384:11:::1;:22:::0;;-1:-1:-1;;18384:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18417:13:::1;:23:::0;18295:153::o;9193:156::-;9273:4;9297:44;9311:10;9323:9;9334:6;9297:13;:44::i;9949:172::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;10047:1:::1;10031:12;:17;;10023:26;;;::::0;::::1;;10109:4;10092:12;10077;;:27;;;;:::i;:::-;10076:37;;;;:::i;:::-;10061:12;:52:::0;-1:-1:-1;9949:172:0:o;14788:123::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;14839:11:::1;:18:::0;;-1:-1:-1;;;;14868:18:0;-1:-1:-1;;;14868:18:0;;;14788:123::o;13762:77::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;13815:10:::1;:8;:10::i;:::-;13762:77::o:0;18610:167::-;18678:7;18705:64;18746:22;:20;:22::i;:::-;18728:4;;18705:36;;18718:22;;18738:1;;18718:15;;-1:-1:-1;;;;;18728:4:0;18718:9;:15::i;:::-;:19;;:22::i;:::-;18705:8;;:12;:36::i;3350:244::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3439:22:0;::::1;3431:73;;;::::0;-1:-1:-1;;;3431:73:0;;8490:2:1;3431:73:0::1;::::0;::::1;8472:21:1::0;8529:2;8509:18;;;8502:30;8568:34;8548:18;;;8541:62;-1:-1:-1;;;8619:18:1;;;8612:36;8665:19;;3431:73:0::1;8288:402:1::0;3431:73:0::1;3541:6;::::0;;3520:38:::1;::::0;-1:-1:-1;;;;;3520:38:0;;::::1;::::0;3541:6;::::1;::::0;3520:38:::1;::::0;::::1;3569:6;:17:::0;;-1:-1:-1;;;;;;3569:17:0::1;-1:-1:-1::0;;;;;3569:17:0;;;::::1;::::0;;;::::1;::::0;;3350:244::o;14576:204::-;3107:6;;-1:-1:-1;;;;;3107:6:0;2417:10;3107:22;3099:67;;;;-1:-1:-1;;;3099:67:0;;;;;;;:::i;:::-;14674:9:::1;14669:104;14685:20:::0;;::::1;14669:104;;;14755:6;14727:11;:25;14739:9;;14749:1;14739:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14727:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14727:25:0;:34;;-1:-1:-1;;14727:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14707:3:::1;::::0;::::1;:::i;:::-;;;14669:104;;;;14576:204:::0;;;:::o;779:250::-;837:7;861:1;866;861:6;857:47;;-1:-1:-1;891:1:0;884:8;;857:47;916:9;928:5;932:1;928;:5;:::i;:::-;916:17;-1:-1:-1;961:1:0;952:5;956:1;916:17;952:5;:::i;:::-;:10;944:56;;;;-1:-1:-1;;;944:56:0;;9169:2:1;944:56:0;;;9151:21:1;9208:2;9188:18;;;9181:30;9247:34;9227:18;;;9220:62;-1:-1:-1;;;9298:18:1;;;9291:31;9339:19;;944:56:0;8967:397:1;1035:132:0;1093:7;1120:39;1124:1;1127;1120:39;;;;;;;;;;;;;;;;;:3;:39::i;581:192::-;667:7;703:12;695:6;;;;687:29;;;;-1:-1:-1;;;687:29:0;;;;;;;;:::i;:::-;-1:-1:-1;727:9:0;739:5;743:1;739;:5;:::i;:::-;727:17;581:192;-1:-1:-1;;;;;581:192:0:o;10282:1427::-;10394:6;;10374:4;;10394:6;;10391:63;;;10410:41;10425:6;10433:9;10444:6;10410:14;:41::i;:::-;10403:48;;;;10391:63;-1:-1:-1;;;;;10470:22:0;;;;;;:14;:22;;;;;;;;10469:23;:53;;;;-1:-1:-1;;;;;;10497:25:0;;;;;;:14;:25;;;;;;;;10496:26;10469:53;10466:248;;;10546:11;;-1:-1:-1;;;10546:11:0;;;;10538:43;;;;-1:-1:-1;;;10538:43:0;;9704:2:1;10538:43:0;;;9686:21:1;9743:2;9723:18;;;9716:30;-1:-1:-1;;;9762:18:1;;;9755:50;9822:18;;10538:43:0;9502:344:1;10538:43:0;10610:11;;-1:-1:-1;;;10610:11:0;;;;10607:96;;;-1:-1:-1;;;;;10649:22:0;;;;;;:11;:22;;;;;;;;10641:47;;;;-1:-1:-1;;;10641:47:0;;10053:2:1;10641:47:0;;;10035:21:1;10092:2;10072:18;;;10065:30;-1:-1:-1;;;10111:18:1;;;10104:43;10164:18;;10641:47:0;9851:337:1;10641:47:0;-1:-1:-1;;;;;10746:22:0;;;;;;:14;:22;;;;;;;;10745:23;:53;;;;-1:-1:-1;;;;;;10772:26:0;;10793:4;10772:26;;10745:53;:84;;;;-1:-1:-1;10824:4:0;;-1:-1:-1;;;;;10803:26:0;;;10824:4;;10803:26;;10745:84;:105;;;;-1:-1:-1;10846:4:0;;-1:-1:-1;;;;;10833:17:0;;;10846:4;;10833:17;;10745:105;:137;;;;-1:-1:-1;10867:15:0;;-1:-1:-1;;;;;10854:28:0;;;10867:15;;10854:28;;10745:137;:174;;;;-1:-1:-1;10899:20:0;;-1:-1:-1;;;;;10886:33:0;;;10899:20;;10886:33;;10745:174;:205;;;;-1:-1:-1;;;;;;10924:26:0;;;;;;:15;:26;;;;;;;;10923:27;10745:205;10741:397;;;10966:18;10987:20;10997:9;10987;:20::i;:::-;11055:15;;10966:41;;-1:-1:-1;11031:19:0;11044:6;10966:41;11031:19;:::i;:::-;11030:40;;11022:114;;;;-1:-1:-1;;;11022:114:0;;10525:2:1;11022:114:0;;;10507:21:1;10564:2;10544:18;;;10537:30;10603:34;10583:18;;;10576:62;10674:32;10654:18;;;10647:60;10724:19;;11022:114:0;10323:426:1;11022:114:0;10951:187;10741:397;11203:28;11216:6;11224;11203:12;:28::i;:::-;11248:16;:14;:16::i;:::-;11245:35;;;11267:10;:8;:10::i;:::-;11360:53;;;;;;;;;;;-1:-1:-1;;;11360:53:0;;;;;;;;-1:-1:-1;;;;;11360:17:0;;-1:-1:-1;11360:17:0;;;:9;:17;;;;;;;;:53;;11382:6;;11360:21;:53::i;:::-;-1:-1:-1;;;;;11340:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11452:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11475:22:0;;;;;;:11;:22;;;;;;;;11452:45;11451:93;;11510:34;11518:6;11526;11534:9;11510:7;:34::i;:::-;11451:93;;;11501:6;11451:93;-1:-1:-1;;;;;11578:20:0;;;;;;:9;:20;;;;;;11426:118;;-1:-1:-1;11578:40:0;;11426:118;11578:24;:40::i;:::-;-1:-1:-1;;;;;11555:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11636:43;;;;;;-1:-1:-1;;;;;;;;;;;11636:43:0;;;11664:14;160:25:1;;148:2;133:18;;14:177;11636:43:0;;;;;;;;-1:-1:-1;11697:4:0;;10282:1427;-1:-1:-1;;;;10282:1427:0:o;439:136::-;497:7;524:43;528:1;531;524:43;;;;;;;;;;;;;;;;;:3;:43::i;252:181::-;310:7;;342:5;346:1;342;:5;:::i;:::-;330:17;;371:1;366;:6;;358:46;;;;-1:-1:-1;;;358:46:0;;10956:2:1;358:46:0;;;10938:21:1;10995:2;10975:18;;;10968:30;11034:29;11014:18;;;11007:57;11081:18;;358:46:0;10754:351:1;15237:1861:0;7018:6;:13;;-1:-1:-1;;7018:13:0;7027:4;7018:13;;;15332:15:::1;::::0;15349:26:::1;::::0;7018:6;;15316:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15383:12;;15316:79;;;15379:1;15316:79;15286:109;;15406:23;15432:59;15489:1;15432:52;15475:8;;15432:38;15450:19;15432:13;;:17;;:38;;;;:::i;:59::-;15406:85;;15502:20;15525:34;15543:15;15525:13;;:17;;:34;;;;:::i;:::-;15596:16;::::0;;15610:1:::1;15596:16:::0;;;;;::::1;::::0;;15502:57;;-1:-1:-1;15572:21:0::1;::::0;15596:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15596:16:0::1;15572:40;;15641:4;15623;15628:1;15623:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15623:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15667:4:::1;::::0;15657:7;;15667:4;::::1;::::0;15657;;15667;;15657:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15657:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15742:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15742:188:0;;15708:21:::1;::::0;15742:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15814:12;;15684:21:::1;::::0;15857:4;;15884::::1;::::0;15904:15:::1;::::0;15742:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15943:17;15963:40;15989:13;15963:21;:25;;:40;;;;:::i;:::-;15943:60:::0;-1:-1:-1;16016:19:0::1;16038:40;16051:26;:19:::0;16075:1:::1;16051:23;:26::i;:::-;16038:8;::::0;;:12:::1;:40::i;:::-;16016:62:::0;-1:-1:-1;16099:26:0::1;16128:58;16184:1;16128:51;16016:62:::0;16128:51;:9;16142:19;16128:13:::1;:34::i;:58::-;16099:87;;16197:26;16226:44;16258:11;16226:27;16240:12;;16226:9;:13;;:27;;;;:::i;:44::-;16197:73;;16281:21;16305:39;16332:11;16305:22;16319:7;;16305:9;:13;;:22;;;;:::i;:39::-;16281:63;;16355:20;16378:38;16404:11;16378:21;16392:6;;16378:9;:13;;:21;;;;:::i;:38::-;16458:20;::::0;16450:65:::1;::::0;16355:61;;-1:-1:-1;16430:15:0::1;::::0;-1:-1:-1;;;;;16458:20:0;;::::1;::::0;16492:18;;16430:15;16450:65;16430:15;16450:65;16492:18;16458:20;16450:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16550:14:0::1;::::0;16542:53:::1;::::0;16429:86;;-1:-1:-1;;;;;;16550:14:0::1;::::0;16578:12;;16542:53:::1;::::0;;;16578:12;16550:14;16542:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16630:15:0::1;::::0;16622:55:::1;::::0;16526:69;;-1:-1:-1;;;;;;16630:15:0::1;::::0;16659:13;;16622:55:::1;::::0;;;16659:13;16630:15;16622:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16711:5:0::1;::::0;-1:-1:-1;;16732:19:0;;;-1:-1:-1;16729:362:0::1;;16767:6;::::0;16941:21:::1;::::0;16767:244:::1;::::0;-1:-1:-1;;;16767:244:0;;16843:4:::1;16767:244;::::0;::::1;12778:34:1::0;12828:18;;;12821:34;;;16767:6:0::1;12871:18:1::0;;;12864:34;;;12914:18;;;12907:34;-1:-1:-1;;;;;16941:21:0;;::::1;12957:19:1::0;;;12950:44;16981:15:0::1;13010:19:1::0;;;13003:35;16767:6:0;::::1;::::0;:22:::1;::::0;16797:18;;12712:19:1;;16767:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17031:48:0::1;::::0;;13534:25:1;;;13590:2;13575:18;;13568:34;;;17031:48:0::1;::::0;-1:-1:-1;13507:18:1;17031:48:0::1;;;;;;;16729:362;-1:-1:-1::0;;7036:6:0;:14;;-1:-1:-1;;7036:14:0;;;-1:-1:-1;;;;;;;;;;15237:1861:0:o;1173:189::-;1259:7;1294:12;1287:5;1279:28;;;;-1:-1:-1;;;1279:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1318:9:0;1330:5;1334:1;1330;:5;:::i;11721:330::-;11851:53;;;;;;;;;;;-1:-1:-1;;;11851:53:0;;;;;;;;-1:-1:-1;;;;;11851:17:0;;11814:4;11851:17;;;:9;:17;;;;;;;:53;;11873:6;;11851:21;:53::i;:::-;-1:-1:-1;;;;;11831:17:0;;;;;;;:9;:17;;;;;;:73;;;;11938:20;;;;;;;:32;;11963:6;11938:24;:32::i;:::-;-1:-1:-1;;;;;11915:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11986:35;;;;;;-1:-1:-1;;;;;;;;;;;11986:35:0;;;12014:6;160:25:1;;148:2;133:18;;14:177;11986:35:0;;;;;;;;-1:-1:-1;12039:4:0;11721:330;;;;;:::o;12059:166::-;12156:12;;12146:6;:22;;:49;;;-1:-1:-1;;;;;;12172:23:0;;;;;;:15;:23;;;;;;;;12146:49;12138:79;;;;-1:-1:-1;;;12138:79:0;;13815:2:1;12138:79:0;;;13797:21:1;13854:2;13834:18;;;13827:30;-1:-1:-1;;;13873:18:1;;;13866:47;13930:18;;12138:79:0;13613:341:1;12138:79:0;12059:166;;:::o;13349:197::-;13436:4;;13398;;-1:-1:-1;;;;;13436:4:0;13422:10;:18;;;;:38;;-1:-1:-1;13454:6:0;;;;13453:7;13422:38;:62;;;;-1:-1:-1;13473:11:0;;;;13422:62;:116;;;;-1:-1:-1;;13525:13:0;;13515:4;13497:24;;;;:9;:24;;;;;;:41;;;13349:197::o;12355:986::-;12489:15;;12533:4;;12441:7;;12489:15;-1:-1:-1;;;;;12533:4:0;;;12520:17;;;;12517:142;;-1:-1:-1;12564:11:0;;12517:142;;;12606:4;;-1:-1:-1;;;;;12606:4:0;;;12596:14;;;;12593:66;;-1:-1:-1;12637:10:0;;12593:66;12671:17;12691:59;12729:14;;12746:3;12729:20;;;;:::i;:::-;12691:33;12716:7;12691:20;12702:8;;12691:6;:10;;:20;;;;:::i;:59::-;12671:79;;12761:18;12782:36;12809:8;;12782:22;12796:7;;12782:9;:13;;:22;;;;:::i;:36::-;12761:57;-1:-1:-1;12829:22:0;12854:25;:9;12761:57;12854:13;:25::i;:::-;12937:4;12919:24;;;;:9;:24;;;;;;12829:50;;-1:-1:-1;12919:44:0;;12829:50;12919:28;:44::i;:::-;12910:4;12892:24;;;;:9;:24;;;;;;:71;;;;13013:15;;-1:-1:-1;;;;;13013:15:0;13003:26;;;;:42;;13034:10;13003:30;:42::i;:::-;12984:15;;-1:-1:-1;;;;;12984:15:0;;;12974:26;;;;:9;:26;;;;;;;;;:71;;;;13061:47;160:25:1;;;13086:4:0;;13061:47;;;;-1:-1:-1;;;;;;;;;;;13061:47:0;133:18:1;13061:47:0;;;;;;;13142:14;;13139:154;;13187:12;;:28;;13204:10;13187:16;:28::i;:::-;13172:12;:43;13252:4;;13235:34;;160:25:1;;;-1:-1:-1;;;;;13252:4:0;;;;13235:34;;;-1:-1:-1;;;;;;;;;;;13235:34:0;148:2:1;133:18;13235:34:0;;;;;;;13139:154;13312:21;:6;13323:9;13312:10;:21::i;:::-;13305:28;12355:986;-1:-1:-1;;;;;;;;12355:986:0:o;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;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;2153:484::-;2248:6;2256;2264;2272;2280;2333:3;2321:9;2312:7;2308:23;2304:33;2301:53;;;2350:1;2347;2340:12;2301:53;2373:29;2392:9;2373:29;:::i;:::-;2363:39;;2421:38;2455:2;2444:9;2440:18;2421:38;:::i;:::-;2411:48;;2478:38;2512:2;2501:9;2497:18;2478:38;:::i;:::-;2468:48;;2535:38;2569:2;2558:9;2554:18;2535:38;:::i;:::-;2525:48;;2592:39;2626:3;2615:9;2611:19;2592:39;:::i;:::-;2582:49;;2153:484;;;;;;;;:::o;2642:186::-;2701:6;2754:2;2742:9;2733:7;2729:23;2725:32;2722:52;;;2770:1;2767;2760:12;2722:52;2793:29;2812:9;2793:29;:::i;2833:316::-;2910:6;2918;2926;2979:2;2967:9;2958:7;2954:23;2950:32;2947:52;;;2995:1;2992;2985:12;2947:52;-1:-1:-1;;3018:23:1;;;3088:2;3073:18;;3060:32;;-1:-1:-1;3139:2:1;3124:18;;;3111:32;;2833:316;-1:-1:-1;2833:316:1:o;3154:180::-;3213:6;3266:2;3254:9;3245:7;3241:23;3237:32;3234:52;;;3282:1;3279;3272:12;3234:52;-1:-1:-1;3305:23:1;;3154:180;-1:-1:-1;3154:180:1:o;3339:118::-;3425:5;3418:13;3411:21;3404:5;3401:32;3391:60;;3447:1;3444;3437:12;3462:315;3527:6;3535;3588:2;3576:9;3567:7;3563:23;3559:32;3556:52;;;3604:1;3601;3594:12;3556:52;3627:29;3646:9;3627:29;:::i;:::-;3617:39;;3706:2;3695:9;3691:18;3678:32;3719:28;3741:5;3719:28;:::i;:::-;3766:5;3756:15;;;3462:315;;;;;:::o;3782:241::-;3838:6;3891:2;3879:9;3870:7;3866:23;3862:32;3859:52;;;3907:1;3904;3897:12;3859:52;3946:9;3933:23;3965:28;3987:5;3965:28;:::i;4236:523::-;4340:6;4348;4356;4364;4372;4380;4433:3;4421:9;4412:7;4408:23;4404:33;4401:53;;;4450:1;4447;4440:12;4401:53;-1:-1:-1;;4473:23:1;;;4543:2;4528:18;;4515:32;;-1:-1:-1;4594:2:1;4579:18;;4566:32;;4645:2;4630:18;;4617:32;;-1:-1:-1;4696:3:1;4681:19;;4668:33;;-1:-1:-1;4748:3:1;4733:19;4720:33;;-1:-1:-1;4236:523:1;-1:-1:-1;4236:523:1:o;4764:309::-;4829:6;4837;4890:2;4878:9;4869:7;4865:23;4861:32;4858:52;;;4906:1;4903;4896:12;4858:52;4945:9;4932:23;4964:28;4986:5;4964:28;:::i;5078:260::-;5146:6;5154;5207:2;5195:9;5186:7;5182:23;5178:32;5175:52;;;5223:1;5220;5213:12;5175:52;5246:29;5265:9;5246:29;:::i;:::-;5236:39;;5294:38;5328:2;5317:9;5313:18;5294:38;:::i;:::-;5284:48;;5078:260;;;;;:::o;5569:750::-;5661:6;5669;5677;5730:2;5718:9;5709:7;5705:23;5701:32;5698:52;;;5746:1;5743;5736:12;5698:52;5786:9;5773:23;5815:18;5856:2;5848:6;5845:14;5842:34;;;5872:1;5869;5862:12;5842:34;5910:6;5899:9;5895:22;5885:32;;5955:7;5948:4;5944:2;5940:13;5936:27;5926:55;;5977:1;5974;5967:12;5926:55;6017:2;6004:16;6043:2;6035:6;6032:14;6029:34;;;6059:1;6056;6049:12;6029:34;6114:7;6107:4;6097:6;6094:1;6090:14;6086:2;6082:23;6078:34;6075:47;6072:67;;;6135:1;6132;6125:12;6072:67;6166:4;6158:13;;;;-1:-1:-1;6190:6:1;-1:-1:-1;;6231:20:1;;6218:34;6261:28;6218:34;6261:28;:::i;:::-;6308:5;6298:15;;;5569:750;;;;;:::o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:184::-;6755:6;6808:2;6796:9;6787:7;6783:23;6779:32;6776:52;;;6824:1;6821;6814:12;6776:52;-1:-1:-1;6847:16:1;;6685:184;-1:-1:-1;6685:184:1:o;7153:245::-;7220:6;7273:2;7261:9;7252:7;7248:23;7244:32;7241:52;;;7289:1;7286;7279:12;7241:52;7321:9;7315:16;7340:28;7362:5;7340:28;:::i;7403:127::-;7464:10;7459:3;7455:20;7452:1;7445:31;7495:4;7492:1;7485:15;7519:4;7516:1;7509:15;7535:168;7608:9;;;7639;;7656:15;;;7650:22;;7636:37;7626:71;;7677:18;;:::i;7708:217::-;7748:1;7774;7764:132;;7818:10;7813:3;7809:20;7806:1;7799:31;7853:4;7850:1;7843:15;7881:4;7878:1;7871:15;7764:132;-1:-1:-1;7910:9:1;;7708:217::o;8695:127::-;8756:10;8751:3;8747:20;8744:1;8737:31;8787:4;8784:1;8777:15;8811:4;8808:1;8801:15;8827:135;8866:3;8887:17;;;8884:43;;8907:18;;:::i;:::-;-1:-1:-1;8954:1:1;8943:13;;8827:135::o;9369:128::-;9436:9;;;9457:11;;;9454:37;;;9471:18;;:::i;10193:125::-;10258:9;;;10279:10;;;10276:36;;;10292:18;;:::i;11242:980::-;11504:4;11552:3;11541:9;11537:19;11583:6;11572:9;11565:25;11609:2;11647:6;11642:2;11631:9;11627:18;11620:34;11690:3;11685:2;11674:9;11670:18;11663:31;11714:6;11749;11743:13;11780:6;11772;11765:22;11818:3;11807:9;11803:19;11796:26;;11857:2;11849:6;11845:15;11831:29;;11878:1;11888:195;11902:6;11899:1;11896:13;11888:195;;;11967:13;;-1:-1:-1;;;;;11963:39:1;11951:52;;12058:15;;;;12023:12;;;;11999:1;11917:9;11888:195;;;-1:-1:-1;;;;;;;12139:32:1;;;;12134:2;12119:18;;12112:60;-1:-1:-1;;;12203:3:1;12188:19;12181:35;12100:3;11242:980;-1:-1:-1;;;11242:980:1:o;13049:306::-;13137:6;13145;13153;13206:2;13194:9;13185:7;13181:23;13177:32;13174:52;;;13222:1;13219;13212:12;13174:52;13251:9;13245:16;13235:26;;13301:2;13290:9;13286:18;13280:25;13270:35;;13345:2;13334:9;13330:18;13324:25;13314:35;;13049:306;;;;;:::o

Swarm Source

ipfs://bec71cc4bc5c119471af28368545f58123bd9030497c79a486f6a53759b6c2b5

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.