ETH Price: $3,459.00 (-1.80%)
Gas: 3 Gwei

Contract

0x5Dc1c7d6dbBB3DE99d7c41407E507868090FC2A1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve172338452023-05-11 1:26:59440 days ago1683768419IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0037174580.44002991
Transfer168711162023-03-20 19:58:47491 days ago1679342327IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0067615723.33703658
Approve158666102022-10-31 7:41:23632 days ago1667202083IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.000162666.70346779
Approve157913812022-10-20 19:24:35642 days ago1666293875IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0014599731.36365682
Approve156172002022-09-26 11:18:11666 days ago1664191091IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.000259685.57869839
Approve154742472022-09-04 22:32:44688 days ago1662330764IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.000310766.67596126
Approve154739542022-09-04 21:22:32688 days ago1662326552IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.00037248
Approve154497182022-09-01 0:20:41692 days ago1661991641IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0008148717.50547507
Approve154421182022-08-30 19:13:57693 days ago1661886837IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0020152643.29256415
Approve154407362022-08-30 13:55:53693 days ago1661867753IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.000947320.35023942
Approve154268532022-08-28 8:52:35696 days ago1661676755IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.000263865.66838225
Approve154192182022-08-27 3:23:02697 days ago1661570582IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.000424319.11527663
Approve153496092022-08-16 2:00:53708 days ago1660615253IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0006481813.9244368
Approve153327522022-08-13 10:00:52710 days ago1660384852IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0005379911.55725708
Approve153223842022-08-11 18:58:58712 days ago1660244338IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0006320626.04722339
Approve153223682022-08-11 18:55:01712 days ago1660244101IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0012684327.24887833
Approve152850572022-08-05 22:37:19718 days ago1659739039IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0007908916.9903124
Approve152135762022-07-25 19:25:02729 days ago1658777102IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0010653222.88556171
Approve151701002022-07-19 1:29:59736 days ago1658194199IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0011365124.41497023
Approve151637572022-07-18 1:52:20737 days ago1658109140IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0005536111.89300238
Set Fees151218172022-07-11 14:19:19743 days ago1657549159IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0022525836.69541987
Approve150747692022-07-04 7:55:32751 days ago1656921332IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0009196119.75550384
Approve149682902022-06-15 15:45:19769 days ago1655307919IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0032938770.75991724
Approve149616152022-06-14 11:58:59770 days ago1655207939IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.0018798940.38447567
Approve149570732022-06-13 16:59:08771 days ago1655139548IN
0x5Dc1c7d6...8090FC2A1
0 ETH0.003948784.82726016
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
168711162023-03-20 19:58:47491 days ago1679342327
0x5Dc1c7d6...8090FC2A1
0.00040285 ETH
168711162023-03-20 19:58:47491 days ago1679342327
0x5Dc1c7d6...8090FC2A1
0.00030988 ETH
168711162023-03-20 19:58:47491 days ago1679342327
0x5Dc1c7d6...8090FC2A1
0.0000119 ETH
168711162023-03-20 19:58:47491 days ago1679342327
0x5Dc1c7d6...8090FC2A1
0.00015235 ETH
168711162023-03-20 19:58:47491 days ago1679342327
0x5Dc1c7d6...8090FC2A1
0.00085318 ETH
156005022022-09-24 3:22:59669 days ago1663989779
0x5Dc1c7d6...8090FC2A1
0.0002941 ETH
156005022022-09-24 3:22:59669 days ago1663989779
0x5Dc1c7d6...8090FC2A1
0.00022623 ETH
156005022022-09-24 3:22:59669 days ago1663989779
0x5Dc1c7d6...8090FC2A1
0.00011311 ETH
156005022022-09-24 3:22:59669 days ago1663989779
0x5Dc1c7d6...8090FC2A1
0.00063346 ETH
154750402022-09-05 1:34:40688 days ago1662341680
0x5Dc1c7d6...8090FC2A1
0.00061343 ETH
154750402022-09-05 1:34:40688 days ago1662341680
0x5Dc1c7d6...8090FC2A1
0.00047187 ETH
154750402022-09-05 1:34:40688 days ago1662341680
0x5Dc1c7d6...8090FC2A1
0.00023593 ETH
154750402022-09-05 1:34:40688 days ago1662341680
0x5Dc1c7d6...8090FC2A1
0.00132125 ETH
154427282022-08-30 21:34:46693 days ago1661895286
0x5Dc1c7d6...8090FC2A1
0.00693113 ETH
154427282022-08-30 21:34:46693 days ago1661895286
0x5Dc1c7d6...8090FC2A1
0.00533164 ETH
154427282022-08-30 21:34:46693 days ago1661895286
0x5Dc1c7d6...8090FC2A1
0.00266582 ETH
154427282022-08-30 21:34:46693 days ago1661895286
0x5Dc1c7d6...8090FC2A1
0.01492859 ETH
154289632022-08-28 16:51:23695 days ago1661705483
0x5Dc1c7d6...8090FC2A1
0.00719588 ETH
154289632022-08-28 16:51:23695 days ago1661705483
0x5Dc1c7d6...8090FC2A1
0.00553529 ETH
154289632022-08-28 16:51:23695 days ago1661705483
0x5Dc1c7d6...8090FC2A1
0.00276764 ETH
154289632022-08-28 16:51:23695 days ago1661705483
0x5Dc1c7d6...8090FC2A1
0.01549883 ETH
152135792022-07-25 19:25:38729 days ago1658777138
0x5Dc1c7d6...8090FC2A1
0.00791596 ETH
152135792022-07-25 19:25:38729 days ago1658777138
0x5Dc1c7d6...8090FC2A1
0.0060892 ETH
152135792022-07-25 19:25:38729 days ago1658777138
0x5Dc1c7d6...8090FC2A1
0.0030446 ETH
152135792022-07-25 19:25:38729 days ago1658777138
0x5Dc1c7d6...8090FC2A1
0.01704977 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KanaKoin

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-20
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

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 Ownable {

    address internal owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "not owner"); 
        _;
    }

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

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

interface IDEXRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

contract KanaKoin is ERC20, Ownable {

    // Events
    event SetMaxWallet(uint256 maxWalletToken);
    event SetFees(uint256 DevFee);
    event SetSwapBackSettings(bool enabled, uint256 swapThreshold);
    event SetIsFeeExempt(address holder, bool enabled);
    event SetIsTxLimitExempt(address holder, bool enabled);
    event SetFeeReceiver(address DevWallet);
    event StuckBalanceSent(uint256 amountETH, address recipient);

    // Mappings
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;

    // Basic Contract Info
    string constant _name = "KanaKoin"; 
    string constant _symbol = "KANA"; 
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 420000000000 * (10 ** _decimals); 
    
    // Max wallet
    uint256 public _maxWalletSize = (_totalSupply * 2) / 1000;
    uint256 public _maxTxSize = (_totalSupply * 2) / 1000;

    // Fee receiver    
	uint256 public DevFeeBuy = 20;
	uint256 public MarketingFeeBuy = 30;
	uint256 public LiquidityFeeBuy = 40;

	uint256 public DevFeeSell = 20;
	uint256 public MarketingFeeSell = 100;
	uint256 public LiquidityFeeSell = 50;

	uint256 public TotalBase = DevFeeBuy + DevFeeSell + MarketingFeeBuy + MarketingFeeSell + LiquidityFeeBuy + LiquidityFeeSell;

    // Fee receiver & Dead Wallet
    address public DevWallet;
    address public MarketingWallet = 0x0830bb98741DF4dA0A8AbF240F035CD944F09ac7;
    address constant private DEAD = 0x000000000000000000000000000000000000dEaD;

    // Router
    IDEXRouter public router;
    address public pair;
    address public newToken;
    uint256 public newTokenReq = 500000000 * (10 ** 9);

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 3; // 0.3% 

    bool public isTradingEnabled = false;
    address public tradingEnablerRole;
    uint256 public tradingTimestamp;

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

    constructor() Ownable(msg.sender) {

        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _allowances[address(this)][address(router)] = type(uint256).max;
        newToken = 0xe8F3ac3f57aE08D1C1f12233DEe069E5B84cb7d8;

        address _owner = owner;
        DevWallet = msg.sender;

        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;

        isFeeExempt[MarketingWallet] = true;
        isTxLimitExempt[MarketingWallet] = true; 

        tradingEnablerRole = _owner;
        tradingTimestamp = block.timestamp;

        _balances[MarketingWallet] = _totalSupply * 100 / 100;

        emit Transfer(address(0), MarketingWallet, _totalSupply * 100 / 100);

    }

    receive() external payable { }

// Basic Internal Functions

    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] - (amount);
        }

        return _transferFrom(sender, recipient, amount);

    }

    function getPair() public onlyOwner {
        pair = IDEXFactory(router.factory()).getPair(address(this), router.WETH());
        if (pair == address(0)) {pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());}
    }

    function renounceTradingEnablerRole() public {
        require(tradingEnablerRole == msg.sender, 'incompatible role!');
        tradingEnablerRole = address(0x0);
    }

    function setIsTradingEnabled(bool _isTradingEnabled) public {
        require(tradingEnablerRole == msg.sender, 'incompatible role!');
        isTradingEnabled = _isTradingEnabled;
        tradingTimestamp = block.timestamp;
    }

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

        if(inSwap){ return _basicTransfer(sender, recipient, amount);}
                
        require(isFeeExempt[sender] || isFeeExempt[recipient] || isTradingEnabled && 
            (ERC20(newToken).balanceOf(recipient) >= newTokenReq || ERC20(newToken).balanceOf(sender) >= newTokenReq || block.timestamp >= tradingTimestamp + 5 minutes), "Not authorized to trade yet");

        // Checks max transaction limit
        if (sender != owner && sender != MarketingWallet && recipient != owner && recipient != DEAD && recipient != pair) {           
            require(isTxLimitExempt[recipient] || (amount <= _maxTxSize && _balances[recipient] + amount <= _maxWalletSize), "Transfer amount exceeds the MaxWallet size.");
        }
        
        //Exchange tokens
        if(shouldSwapBack()){swapBack();}

        _balances[sender] = _balances[sender] - amount;

        //Check if should Take Fee
        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, recipient, amount);
        _balances[recipient] = _balances[recipient] + (amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

// Internal Functions

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
   
        uint256 feeAmount = 0;

   		if (sender == pair && recipient != pair) {
	        feeAmount = amount * (DevFeeBuy + MarketingFeeBuy + LiquidityFeeBuy) / 1000;
   		} if (sender != pair && recipient == pair) {
	        feeAmount = amount * (DevFeeSell + MarketingFeeSell + LiquidityFeeSell) / 1000;
   		}

        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + (feeAmount);
            emit Transfer(sender, address(this), feeAmount);            
        }

        return amount - (feeAmount);
    }

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

    function addLiquidity(uint256 _tokenBalance, uint256 _ETHBalance) private {
        if(_allowances[address(this)][address(router)] < _tokenBalance){_allowances[address(this)][address(router)] = _tokenBalance;}
        router.addLiquidityETH{value: _ETHBalance}(address(this), _tokenBalance, 0, 0, DevWallet, block.timestamp + 5 minutes);
    }

    function swapBack() internal swapping {

        uint256 amountToLiq = balanceOf(address(this)) * (LiquidityFeeBuy + LiquidityFeeSell) / (2 * TotalBase);
        uint256 amountToSwap = balanceOf(address(this)) - amountToLiq;

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

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

		if (amountToLiq > 0) {
            addLiquidity(amountToLiq, address(this).balance * (LiquidityFeeBuy + LiquidityFeeSell) / (2 * TotalBase - LiquidityFeeBuy - LiquidityFeeSell));
        }

        uint256 amountETHDev = address(this).balance * (DevFeeBuy + DevFeeSell) / (DevFeeBuy + DevFeeSell + MarketingFeeBuy + MarketingFeeSell);
        uint256 amountETHMarketing = address(this).balance - amountETHDev;

        (bool success1, /* bytes memory data */) = payable(DevWallet).call{value: amountETHDev, gas: 30000}("");
        (bool success2, /* bytes memory data */) = payable(MarketingWallet).call{value: amountETHMarketing, gas: 30000}("");
    
        require(success1 && success2, "receiver rejected ETH transfer");
    
    }

// External Functions

   function setMaxWalletAndTx(uint256 _maxWalletSize_, uint256 _maxTxSize_) external onlyOwner {
        require(_maxWalletSize_ >= _totalSupply / 1000 && _maxTxSize_ >= _totalSupply / 1000, "Can't set MaxWallet or Tx below 0.1%");
        _maxWalletSize = _maxWalletSize_;
        _maxTxSize = _maxTxSize_;
        emit SetMaxWallet(_maxWalletSize);
    }

    function setNewToken(address _newToken, uint256 _newTokenReq) external onlyOwner {

        newToken = _newToken;
        newTokenReq = _newTokenReq;

    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        emit SetIsFeeExempt(holder, exempt);
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
        emit SetIsTxLimitExempt(holder, exempt);
    }

    function setFees(uint256 _DevFeeBuy, uint256 _MarketingFeeBuy, uint256 _LiquidityFeeBuy, 
    	uint256 _DevFeeSell, uint256 _MarketingFeeSell, uint256 _LiquidityFeeSell) external onlyOwner {
        
        require(_DevFeeBuy + _MarketingFeeBuy + _LiquidityFeeBuy <= 33 && _DevFeeSell + _MarketingFeeSell + _LiquidityFeeSell <= 33, "Total fees must be equal to or less than 33%");

		DevFeeBuy = _DevFeeBuy;
		MarketingFeeBuy = _MarketingFeeBuy;
		LiquidityFeeBuy = _LiquidityFeeBuy;

		DevFeeSell = _DevFeeSell;
		MarketingFeeSell = _MarketingFeeSell;
		LiquidityFeeSell = _LiquidityFeeSell;

		TotalBase = DevFeeBuy + DevFeeSell + MarketingFeeBuy + MarketingFeeSell + LiquidityFeeBuy + LiquidityFeeSell;
        
        emit SetFees(DevFeeBuy);
    }

    function setFeeReceiver(address _DevWallet, address _MarketingWallet) external onlyOwner {
        DevWallet = _DevWallet;
		MarketingWallet = _MarketingWallet;
        emit SetFeeReceiver(DevWallet);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount >= 1, "Can't set SwapThreshold to ZERO");
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit SetSwapBackSettings(swapEnabled, swapThreshold);
    }

    function initSwapBack() public onlyOwner {

        swapBack();

    }

// Stuck Balance Function

    function ClearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(DevWallet).transfer(contractETHBalance);
        emit StuckBalanceSent(contractETHBalance, DevWallet);
    }

    function withdrawToken(address _token) public onlyOwner {
        ERC20(_token).transfer(owner, ERC20(_token).balanceOf(address(this)));
    }

    function getSelfAddress() public view returns(address) {
        return address(this);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DevWallet","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"DevFee","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SetIsTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletToken","type":"uint256"}],"name":"SetMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"StuckBalanceSent","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":"ClearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSelfAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"newToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newTokenReq","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceTradingEnablerRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_DevWallet","type":"address"},{"internalType":"address","name":"_MarketingWallet","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_DevFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_MarketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_DevFeeSell","type":"uint256"},{"internalType":"uint256","name":"_MarketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"_LiquidityFeeSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingEnabled","type":"bool"}],"name":"setIsTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize_","type":"uint256"},{"internalType":"uint256","name":"_maxTxSize_","type":"uint256"}],"name":"setMaxWalletAndTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newToken","type":"address"},{"internalType":"uint256","name":"_newTokenReq","type":"uint256"}],"name":"setNewToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnablerRole","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000403565b62000023906461c9f368006200041b565b6007556103e860075460026200003a91906200041b565b6200004691906200043d565b6008556103e860075460026200005d91906200041b565b6200006991906200043d565b6009556014600a55601e600b556028600c556014600d556064600e556032600f55600f54600c54600e54600b54600d54600a54620000a8919062000460565b620000b4919062000460565b620000c0919062000460565b620000cc919062000460565b620000d8919062000460565b601055601280546001600160a01b031916730830bb98741df4da0a8abf240f035cd944f09ac71790556706f05b59d3b200006016556017805460ff191660011790556007546200012c90612710906200043d565b620001399060036200041b565b6018556019805460ff191690553480156200015357600080fd5b5060008054336001600160a01b03199182168117835560138054737a250d5630b4cf539739df2c5dacb4c659f2488d908416811790915530845260046020908152604080862092865291815281852060001990556015805473e8f3ac3f57ae08d1c1f12233dee069e5b84cb7d89086161790558454601180549095169093179093556001600160a01b039182168085526005808552828620805460ff199081166001908117909255600680885285892080548316841790556012805488168a52938852858920805483168417905592549095168752945293208054909116909117905560198054610100600160a81b031916610100830217905542601a556007546064906200026390826200041b565b6200026f91906200043d565b601280546001600160a01b039081166000908152600360205260408120939093559054600754911691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90606490620002ca90826200041b565b620002d691906200043d565b60405190815260200160405180910390a3506200047b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000345578160001904821115620003295762000329620002ee565b808516156200033757918102915b93841c939080029062000309565b509250929050565b6000826200035e57506001620003fd565b816200036d57506000620003fd565b81600181146200038657600281146200039157620003b1565b6001915050620003fd565b60ff841115620003a557620003a5620002ee565b50506001821b620003fd565b5060208310610133831016604e8410600b8410161715620003d6575081810a620003fd565b620003e2838362000304565b8060001904821115620003f957620003f9620002ee565b0290505b92915050565b60006200041460ff8416836200034d565b9392505050565b6000816000190483118215151615620004385762000438620002ee565b500290565b6000826200045b57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620004765762000476620002ee565b500190565b612542806200048b6000396000f3fe6080604052600436106102b25760003560e01c806370a0823111610175578063b115e4df116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610871578063f556fcdb14610891578063f84ba65d146108a4578063f887ea40146108c457600080fd5b8063dd62ed3e146107eb578063df20fd4914610831578063e66db25e1461085157600080fd5b8063b115e4df14610745578063b1be427114610765578063c1f1b1b51461077b578063c42bd05a14610790578063cbdcfd81146107b0578063da235459146107d557600080fd5b80638f9a55c01161012e5780638f9a55c01461069857806390a9ac3f146106ae57806395d89b41146106c357806399ab04a7146106f0578063a8aa1b3114610705578063a9059cbb1461072557600080fd5b806370a08231146105be578063769b3fdd146105f457806386f6c3c11461060a578063893d20e81461062a57806389476069146106485780638b42507f1461066857600080fd5b80633f4218e011610219578063571ac8b0116101d2578063571ac8b0146105185780635be0499b146105385780636295c6491461054e5780636540648114610564578063658d4b7f146105845780636ddd1713146105a457600080fd5b80633f4218e01461046657806340c39c091461049657806345497f1f146104ac5780634cea44b5146104cc578063511b5f61146104e2578063559ef225146104f857600080fd5b806323b872dd1161026b57806323b872dd1461039657806325348b05146103b65780632598cdb2146103cd5780632f54bf6e146104055780632fe76bc214610434578063313ce5671461044a57600080fd5b80630445b667146102be578063064a59d0146102e757806306fdde0314610311578063095ea7b31461034b5780630eca29421461036b57806318160ddd1461038157600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460185481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506019546103019060ff1681565b60405190151581526020016102de565b34801561031d57600080fd5b5060408051808201909152600881526725b0b730a5b7b4b760c11b60208201525b6040516102de919061214f565b34801561035757600080fd5b506103016103663660046121bc565b6108e4565b34801561037757600080fd5b506102d460165481565b34801561038d57600080fd5b506007546102d4565b3480156103a257600080fd5b506103016103b13660046121e8565b610950565b3480156103c257600080fd5b506103cb6109e5565b005b3480156103d957600080fd5b506012546103ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561041157600080fd5b50610301610420366004612229565b6000546001600160a01b0391821691161490565b34801561044057600080fd5b506102d4600f5481565b34801561045657600080fd5b50604051601281526020016102de565b34801561047257600080fd5b50610301610481366004612229565b60056020526000908152604090205460ff1681565b3480156104a257600080fd5b506102d4601a5481565b3480156104b857600080fd5b506103cb6104c73660046121bc565b610a9b565b3480156104d857600080fd5b506102d4600b5481565b3480156104ee57600080fd5b506102d460095481565b34801561050457600080fd5b506103cb610513366004612254565b610aeb565b34801561052457600080fd5b50610301610533366004612229565b610b56565b34801561054457600080fd5b506102d460105481565b34801561055a57600080fd5b506102d4600d5481565b34801561057057600080fd5b506103cb61057f366004612271565b610b6a565b34801561059057600080fd5b506103cb61059f366004612293565b610c5c565b3480156105b057600080fd5b506017546103019060ff1681565b3480156105ca57600080fd5b506102d46105d9366004612229565b6001600160a01b031660009081526003602052604090205490565b34801561060057600080fd5b506102d4600c5481565b34801561061657600080fd5b506103cb6106253660046122cc565b610ce2565b34801561063657600080fd5b506000546001600160a01b03166103ed565b34801561065457600080fd5b506103cb610663366004612229565b610e3c565b34801561067457600080fd5b50610301610683366004612229565b60066020526000908152604090205460ff1681565b3480156106a457600080fd5b506102d460085481565b3480156106ba57600080fd5b506103cb610f50565b3480156106cf57600080fd5b506040805180820190915260048152634b414e4160e01b602082015261033e565b3480156106fc57600080fd5b506103cb610f84565b34801561071157600080fd5b506014546103ed906001600160a01b031681565b34801561073157600080fd5b506103016107403660046121bc565b610feb565b34801561075157600080fd5b506011546103ed906001600160a01b031681565b34801561077157600080fd5b506102d4600e5481565b34801561078757600080fd5b506103cb610ff8565b34801561079c57600080fd5b506015546103ed906001600160a01b031681565b3480156107bc57600080fd5b506019546103ed9061010090046001600160a01b031681565b3480156107e157600080fd5b506102d4600a5481565b3480156107f757600080fd5b506102d461080636600461230f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561083d57600080fd5b506103cb61084c36600461233d565b611341565b34801561085d57600080fd5b506103cb61086c36600461230f565b61140e565b34801561087d57600080fd5b506103cb61088c366004612229565b611496565b34801561089d57600080fd5b50306103ed565b3480156108b057600080fd5b506103cb6108bf366004612293565b611580565b3480156108d057600080fd5b506013546103ed906001600160a01b031681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061093f9086815260200190565b60405180910390a350600192915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109d0576001600160a01b03841660009081526004602090815260408083203384529091529020546109ab908390612371565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6109db848484611606565b90505b9392505050565b6000546001600160a01b03163314610a185760405162461bcd60e51b8152600401610a0f90612388565b60405180910390fd5b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a52573d6000803e3d6000fd5b50601154604080518381526001600160a01b0390921660208301527f98be19c3f4396a31e2a152c079eecc8fe940dcc3538dfe8fdc516e83567e9767910160405180910390a150565b6000546001600160a01b03163314610ac55760405162461bcd60e51b8152600401610a0f90612388565b601580546001600160a01b0319166001600160a01b039390931692909217909155601655565b60195461010090046001600160a01b03163314610b3f5760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b6019805460ff191691151591909117905542601a55565b6000610b64826000196108e4565b92915050565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610a0f90612388565b6103e8600754610ba491906123ab565b8210158015610bc257506103e8600754610bbe91906123ab565b8110155b610c1a5760405162461bcd60e51b8152602060048201526024808201527f43616e277420736574204d617857616c6c6574206f722054782062656c6f7720604482015263302e312560e01b6064820152608401610a0f565b600882905560098190556040518281527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf636186906020015b60405180910390a15050565b6000546001600160a01b03163314610c865760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d699101610c50565b6000546001600160a01b03163314610d0c5760405162461bcd60e51b8152600401610a0f90612388565b602184610d1987896123cd565b610d2391906123cd565b11158015610d465750602181610d3984866123cd565b610d4391906123cd565b11155b610da75760405162461bcd60e51b815260206004820152602c60248201527f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60448201526b657373207468616e2033332560a01b6064820152608401610a0f565b600a869055600b859055600c849055600d839055600e829055600f81905580848387610dd3878b6123cd565b610ddd91906123cd565b610de791906123cd565b610df191906123cd565b610dfb91906123cd565b601055600a546040519081527fa142c987774756b13db02cb5b530db2fa8a680ce74f42d87f33148e3f7098ebb9060200160405180910390a1505050505050565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610a0f90612388565b6000546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906123e5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906123fe565b5050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610a0f90612388565b610f82611a2d565b565b60195461010090046001600160a01b03163314610fd85760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b60198054610100600160a81b0319169055565b60006109de338484611606565b6000546001600160a01b031633146110225760405162461bcd60e51b8152600401610a0f90612388565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061241b565b6001600160a01b031663e6a4390530601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561116a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118e919061241b565b601480546001600160a01b0319166001600160a01b03929092169182179055610f8257601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611228919061241b565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f919061241b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610a0f90612388565b60018110156113bc5760405162461bcd60e51b815260206004820152601f60248201527f43616e27742073657420537761705468726573686f6c6420746f205a45524f006044820152606401610a0f565b6017805460ff191683151590811790915560188290556040805160ff90921615158252602082018390527f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349101610c50565b6000546001600160a01b031633146114385760405162461bcd60e51b8152600401610a0f90612388565b601180546001600160a01b038481166001600160a01b0319928316811790935560128054918516919092161790556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f90602001610c50565b6000546001600160a01b031633146114c05760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b0381166115255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115aa5760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba9101610c50565b601b5460009060ff16156116265761161f848484611dc4565b90506109de565b6001600160a01b03841660009081526005602052604090205460ff168061166557506001600160a01b03831660009081526005602052604090205460ff165b8061177e575060195460ff16801561177e57506016546015546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e991906123e5565b10158061176557506016546015546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa15801561173e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176291906123e5565b10155b8061177e5750601a5461177a9061012c6123cd565b4210155b6117ca5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420617574686f72697a656420746f2074726164652079657400000000006044820152606401610a0f565b6000546001600160a01b038581169116148015906117f657506012546001600160a01b03858116911614155b801561181057506000546001600160a01b03848116911614155b801561182757506001600160a01b03831661dead14155b801561184157506014546001600160a01b03848116911614155b156118ff576001600160a01b03831660009081526006602052604090205460ff168061189f5750600954821115801561189f57506008546001600160a01b03841660009081526003602052604090205461189c9084906123cd565b11155b6118ff5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b6064820152608401610a0f565b611907611e7e565b1561191457611914611a2d565b6001600160a01b038416600090815260036020526040902054611938908390612371565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1615158061198957506001600160a01b03841660009081526005602052604090205460ff1615155b61199d57611998858585611ecf565b61199f565b825b6001600160a01b0385166000908152600360205260409020549091506119c69082906123cd565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1a9085815260200190565b60405180910390a3506001949350505050565b601b805460ff19166001179055601054600090611a4b906002612438565b600f54600c54611a5b91906123cd565b30600090815260036020526040902054611a759190612438565b611a7f91906123ab565b3060009081526003602052604081205491925090611a9e908390612371565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611ad857611ad8612457565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b55919061241b565b81600181518110611b6857611b68612457565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611bae90859060009086903090429060040161246d565b600060405180830381600087803b158015611bc857600080fd5b505af1158015611bdc573d6000803e3d6000fd5b505050506000831115611c3f57611c3f83600f54600c546010546002611c029190612438565b611c0c9190612371565b611c169190612371565b600f54600c54611c2691906123cd565b611c309047612438565b611c3a91906123ab565b612030565b6000600e54600b54600d54600a54611c5791906123cd565b611c6191906123cd565b611c6b91906123cd565b600d54600a54611c7b91906123cd565b611c859047612438565b611c8f91906123ab565b90506000611c9d8247612371565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611cf4576040519150601f19603f3d011682016040523d82523d6000602084013e611cf9565b606091505b50506012546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611d52576040519150601f19603f3d011682016040523d82523d6000602084013e611d57565b606091505b50509050818015611d655750805b611db15760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610a0f565b5050601b805460ff191690555050505050565b6001600160a01b038316600090815260036020526040812054611de8908390612371565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611e189083906123cd565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e6c9086815260200190565b60405180910390a35060019392505050565b6014546000906001600160a01b03163314801590611e9f5750601b5460ff16155b8015611ead575060175460ff165b8015611eca57506018543060009081526003602052604090205410155b905090565b60145460009081906001600160a01b038681169116148015611eff57506014546001600160a01b03858116911614155b15611f3b576103e8600c54600b54600a54611f1a91906123cd565b611f2491906123cd565b611f2e9085612438565b611f3891906123ab565b90505b6014546001600160a01b03868116911614801590611f6657506014546001600160a01b038581169116145b15611fa2576103e8600f54600e54600d54611f8191906123cd565b611f8b91906123cd565b611f959085612438565b611f9f91906123ab565b90505b801561201d5730600090815260036020526040902054611fc39082906123cd565b30600081815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120149085815260200190565b60405180910390a35b6120278184612371565b95945050505050565b3060009081526004602090815260408083206013546001600160a01b03168452909152902054821115612086573060009081526004602090815260408083206013546001600160a01b0316845290915290208290555b6013546011546001600160a01b039182169163f305d719918491309187916000918291166120b64261012c6123cd565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015612123573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061214891906124de565b5050505050565b600060208083528351808285015260005b8181101561217c57858101830151858201604001528201612160565b8181111561218e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146121b957600080fd5b50565b600080604083850312156121cf57600080fd5b82356121da816121a4565b946020939093013593505050565b6000806000606084860312156121fd57600080fd5b8335612208816121a4565b92506020840135612218816121a4565b929592945050506040919091013590565b60006020828403121561223b57600080fd5b81356109de816121a4565b80151581146121b957600080fd5b60006020828403121561226657600080fd5b81356109de81612246565b6000806040838503121561228457600080fd5b50508035926020909101359150565b600080604083850312156122a657600080fd5b82356122b1816121a4565b915060208301356122c181612246565b809150509250929050565b60008060008060008060c087890312156122e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561232257600080fd5b823561232d816121a4565b915060208301356122c1816121a4565b6000806040838503121561235057600080fd5b82356121da81612246565b634e487b7160e01b600052601160045260246000fd5b6000828210156123835761238361235b565b500390565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6000826123c857634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156123e0576123e061235b565b500190565b6000602082840312156123f757600080fd5b5051919050565b60006020828403121561241057600080fd5b81516109de81612246565b60006020828403121561242d57600080fd5b81516109de816121a4565b60008160001904831182151516156124525761245261235b565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124bd5784516001600160a01b031683529383019391830191600101612498565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124f357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220eb3ddfcab5aae659710edde14e9b79ffe558049df38279a9f56ba1a9f75e30f164736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806370a0823111610175578063b115e4df116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610871578063f556fcdb14610891578063f84ba65d146108a4578063f887ea40146108c457600080fd5b8063dd62ed3e146107eb578063df20fd4914610831578063e66db25e1461085157600080fd5b8063b115e4df14610745578063b1be427114610765578063c1f1b1b51461077b578063c42bd05a14610790578063cbdcfd81146107b0578063da235459146107d557600080fd5b80638f9a55c01161012e5780638f9a55c01461069857806390a9ac3f146106ae57806395d89b41146106c357806399ab04a7146106f0578063a8aa1b3114610705578063a9059cbb1461072557600080fd5b806370a08231146105be578063769b3fdd146105f457806386f6c3c11461060a578063893d20e81461062a57806389476069146106485780638b42507f1461066857600080fd5b80633f4218e011610219578063571ac8b0116101d2578063571ac8b0146105185780635be0499b146105385780636295c6491461054e5780636540648114610564578063658d4b7f146105845780636ddd1713146105a457600080fd5b80633f4218e01461046657806340c39c091461049657806345497f1f146104ac5780634cea44b5146104cc578063511b5f61146104e2578063559ef225146104f857600080fd5b806323b872dd1161026b57806323b872dd1461039657806325348b05146103b65780632598cdb2146103cd5780632f54bf6e146104055780632fe76bc214610434578063313ce5671461044a57600080fd5b80630445b667146102be578063064a59d0146102e757806306fdde0314610311578063095ea7b31461034b5780630eca29421461036b57806318160ddd1461038157600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d460185481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506019546103019060ff1681565b60405190151581526020016102de565b34801561031d57600080fd5b5060408051808201909152600881526725b0b730a5b7b4b760c11b60208201525b6040516102de919061214f565b34801561035757600080fd5b506103016103663660046121bc565b6108e4565b34801561037757600080fd5b506102d460165481565b34801561038d57600080fd5b506007546102d4565b3480156103a257600080fd5b506103016103b13660046121e8565b610950565b3480156103c257600080fd5b506103cb6109e5565b005b3480156103d957600080fd5b506012546103ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561041157600080fd5b50610301610420366004612229565b6000546001600160a01b0391821691161490565b34801561044057600080fd5b506102d4600f5481565b34801561045657600080fd5b50604051601281526020016102de565b34801561047257600080fd5b50610301610481366004612229565b60056020526000908152604090205460ff1681565b3480156104a257600080fd5b506102d4601a5481565b3480156104b857600080fd5b506103cb6104c73660046121bc565b610a9b565b3480156104d857600080fd5b506102d4600b5481565b3480156104ee57600080fd5b506102d460095481565b34801561050457600080fd5b506103cb610513366004612254565b610aeb565b34801561052457600080fd5b50610301610533366004612229565b610b56565b34801561054457600080fd5b506102d460105481565b34801561055a57600080fd5b506102d4600d5481565b34801561057057600080fd5b506103cb61057f366004612271565b610b6a565b34801561059057600080fd5b506103cb61059f366004612293565b610c5c565b3480156105b057600080fd5b506017546103019060ff1681565b3480156105ca57600080fd5b506102d46105d9366004612229565b6001600160a01b031660009081526003602052604090205490565b34801561060057600080fd5b506102d4600c5481565b34801561061657600080fd5b506103cb6106253660046122cc565b610ce2565b34801561063657600080fd5b506000546001600160a01b03166103ed565b34801561065457600080fd5b506103cb610663366004612229565b610e3c565b34801561067457600080fd5b50610301610683366004612229565b60066020526000908152604090205460ff1681565b3480156106a457600080fd5b506102d460085481565b3480156106ba57600080fd5b506103cb610f50565b3480156106cf57600080fd5b506040805180820190915260048152634b414e4160e01b602082015261033e565b3480156106fc57600080fd5b506103cb610f84565b34801561071157600080fd5b506014546103ed906001600160a01b031681565b34801561073157600080fd5b506103016107403660046121bc565b610feb565b34801561075157600080fd5b506011546103ed906001600160a01b031681565b34801561077157600080fd5b506102d4600e5481565b34801561078757600080fd5b506103cb610ff8565b34801561079c57600080fd5b506015546103ed906001600160a01b031681565b3480156107bc57600080fd5b506019546103ed9061010090046001600160a01b031681565b3480156107e157600080fd5b506102d4600a5481565b3480156107f757600080fd5b506102d461080636600461230f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561083d57600080fd5b506103cb61084c36600461233d565b611341565b34801561085d57600080fd5b506103cb61086c36600461230f565b61140e565b34801561087d57600080fd5b506103cb61088c366004612229565b611496565b34801561089d57600080fd5b50306103ed565b3480156108b057600080fd5b506103cb6108bf366004612293565b611580565b3480156108d057600080fd5b506013546103ed906001600160a01b031681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061093f9086815260200190565b60405180910390a350600192915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109d0576001600160a01b03841660009081526004602090815260408083203384529091529020546109ab908390612371565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6109db848484611606565b90505b9392505050565b6000546001600160a01b03163314610a185760405162461bcd60e51b8152600401610a0f90612388565b60405180910390fd5b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a52573d6000803e3d6000fd5b50601154604080518381526001600160a01b0390921660208301527f98be19c3f4396a31e2a152c079eecc8fe940dcc3538dfe8fdc516e83567e9767910160405180910390a150565b6000546001600160a01b03163314610ac55760405162461bcd60e51b8152600401610a0f90612388565b601580546001600160a01b0319166001600160a01b039390931692909217909155601655565b60195461010090046001600160a01b03163314610b3f5760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b6019805460ff191691151591909117905542601a55565b6000610b64826000196108e4565b92915050565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610a0f90612388565b6103e8600754610ba491906123ab565b8210158015610bc257506103e8600754610bbe91906123ab565b8110155b610c1a5760405162461bcd60e51b8152602060048201526024808201527f43616e277420736574204d617857616c6c6574206f722054782062656c6f7720604482015263302e312560e01b6064820152608401610a0f565b600882905560098190556040518281527fa2c87c3e7a3048198ae94e814f6a27e12a4e2a7476e33a0db4d97ffeaf636186906020015b60405180910390a15050565b6000546001600160a01b03163314610c865760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d699101610c50565b6000546001600160a01b03163314610d0c5760405162461bcd60e51b8152600401610a0f90612388565b602184610d1987896123cd565b610d2391906123cd565b11158015610d465750602181610d3984866123cd565b610d4391906123cd565b11155b610da75760405162461bcd60e51b815260206004820152602c60248201527f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60448201526b657373207468616e2033332560a01b6064820152608401610a0f565b600a869055600b859055600c849055600d839055600e829055600f81905580848387610dd3878b6123cd565b610ddd91906123cd565b610de791906123cd565b610df191906123cd565b610dfb91906123cd565b601055600a546040519081527fa142c987774756b13db02cb5b530db2fa8a680ce74f42d87f33148e3f7098ebb9060200160405180910390a1505050505050565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610a0f90612388565b6000546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906123e5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c91906123fe565b5050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610a0f90612388565b610f82611a2d565b565b60195461010090046001600160a01b03163314610fd85760405162461bcd60e51b8152602060048201526012602482015271696e636f6d70617469626c6520726f6c652160701b6044820152606401610a0f565b60198054610100600160a81b0319169055565b60006109de338484611606565b6000546001600160a01b031633146110225760405162461bcd60e51b8152600401610a0f90612388565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061241b565b6001600160a01b031663e6a4390530601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561116a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118e919061241b565b601480546001600160a01b0319166001600160a01b03929092169182179055610f8257601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611228919061241b565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae919061241b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f919061241b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610a0f90612388565b60018110156113bc5760405162461bcd60e51b815260206004820152601f60248201527f43616e27742073657420537761705468726573686f6c6420746f205a45524f006044820152606401610a0f565b6017805460ff191683151590811790915560188290556040805160ff90921615158252602082018390527f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349101610c50565b6000546001600160a01b031633146114385760405162461bcd60e51b8152600401610a0f90612388565b601180546001600160a01b038481166001600160a01b0319928316811790935560128054918516919092161790556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f90602001610c50565b6000546001600160a01b031633146114c05760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b0381166115255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115aa5760405162461bcd60e51b8152600401610a0f90612388565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f6824b1d87573c276dab7cd55e81d1a9dda557f5deb51bad3c38832e5d1333fba9101610c50565b601b5460009060ff16156116265761161f848484611dc4565b90506109de565b6001600160a01b03841660009081526005602052604090205460ff168061166557506001600160a01b03831660009081526005602052604090205460ff165b8061177e575060195460ff16801561177e57506016546015546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e991906123e5565b10158061176557506016546015546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa15801561173e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176291906123e5565b10155b8061177e5750601a5461177a9061012c6123cd565b4210155b6117ca5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420617574686f72697a656420746f2074726164652079657400000000006044820152606401610a0f565b6000546001600160a01b038581169116148015906117f657506012546001600160a01b03858116911614155b801561181057506000546001600160a01b03848116911614155b801561182757506001600160a01b03831661dead14155b801561184157506014546001600160a01b03848116911614155b156118ff576001600160a01b03831660009081526006602052604090205460ff168061189f5750600954821115801561189f57506008546001600160a01b03841660009081526003602052604090205461189c9084906123cd565b11155b6118ff5760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b6064820152608401610a0f565b611907611e7e565b1561191457611914611a2d565b6001600160a01b038416600090815260036020526040902054611938908390612371565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1615158061198957506001600160a01b03841660009081526005602052604090205460ff1615155b61199d57611998858585611ecf565b61199f565b825b6001600160a01b0385166000908152600360205260409020549091506119c69082906123cd565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1a9085815260200190565b60405180910390a3506001949350505050565b601b805460ff19166001179055601054600090611a4b906002612438565b600f54600c54611a5b91906123cd565b30600090815260036020526040902054611a759190612438565b611a7f91906123ab565b3060009081526003602052604081205491925090611a9e908390612371565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611ad857611ad8612457565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b55919061241b565b81600181518110611b6857611b68612457565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611bae90859060009086903090429060040161246d565b600060405180830381600087803b158015611bc857600080fd5b505af1158015611bdc573d6000803e3d6000fd5b505050506000831115611c3f57611c3f83600f54600c546010546002611c029190612438565b611c0c9190612371565b611c169190612371565b600f54600c54611c2691906123cd565b611c309047612438565b611c3a91906123ab565b612030565b6000600e54600b54600d54600a54611c5791906123cd565b611c6191906123cd565b611c6b91906123cd565b600d54600a54611c7b91906123cd565b611c859047612438565b611c8f91906123ab565b90506000611c9d8247612371565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611cf4576040519150601f19603f3d011682016040523d82523d6000602084013e611cf9565b606091505b50506012546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611d52576040519150601f19603f3d011682016040523d82523d6000602084013e611d57565b606091505b50509050818015611d655750805b611db15760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610a0f565b5050601b805460ff191690555050505050565b6001600160a01b038316600090815260036020526040812054611de8908390612371565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611e189083906123cd565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e6c9086815260200190565b60405180910390a35060019392505050565b6014546000906001600160a01b03163314801590611e9f5750601b5460ff16155b8015611ead575060175460ff165b8015611eca57506018543060009081526003602052604090205410155b905090565b60145460009081906001600160a01b038681169116148015611eff57506014546001600160a01b03858116911614155b15611f3b576103e8600c54600b54600a54611f1a91906123cd565b611f2491906123cd565b611f2e9085612438565b611f3891906123ab565b90505b6014546001600160a01b03868116911614801590611f6657506014546001600160a01b038581169116145b15611fa2576103e8600f54600e54600d54611f8191906123cd565b611f8b91906123cd565b611f959085612438565b611f9f91906123ab565b90505b801561201d5730600090815260036020526040902054611fc39082906123cd565b30600081815260036020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120149085815260200190565b60405180910390a35b6120278184612371565b95945050505050565b3060009081526004602090815260408083206013546001600160a01b03168452909152902054821115612086573060009081526004602090815260408083206013546001600160a01b0316845290915290208290555b6013546011546001600160a01b039182169163f305d719918491309187916000918291166120b64261012c6123cd565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015612123573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061214891906124de565b5050505050565b600060208083528351808285015260005b8181101561217c57858101830151858201604001528201612160565b8181111561218e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146121b957600080fd5b50565b600080604083850312156121cf57600080fd5b82356121da816121a4565b946020939093013593505050565b6000806000606084860312156121fd57600080fd5b8335612208816121a4565b92506020840135612218816121a4565b929592945050506040919091013590565b60006020828403121561223b57600080fd5b81356109de816121a4565b80151581146121b957600080fd5b60006020828403121561226657600080fd5b81356109de81612246565b6000806040838503121561228457600080fd5b50508035926020909101359150565b600080604083850312156122a657600080fd5b82356122b1816121a4565b915060208301356122c181612246565b809150509250929050565b60008060008060008060c087890312156122e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561232257600080fd5b823561232d816121a4565b915060208301356122c1816121a4565b6000806040838503121561235057600080fd5b82356121da81612246565b634e487b7160e01b600052601160045260246000fd5b6000828210156123835761238361235b565b500390565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6000826123c857634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156123e0576123e061235b565b500190565b6000602082840312156123f757600080fd5b5051919050565b60006020828403121561241057600080fd5b81516109de81612246565b60006020828403121561242d57600080fd5b81516109de816121a4565b60008160001904831182151516156124525761245261235b565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124bd5784516001600160a01b031683529383019391830191600101612498565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124f357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220eb3ddfcab5aae659710edde14e9b79ffe558049df38279a9f56ba1a9f75e30f164736f6c634300080d0033

Deployed Bytecode Sourcemap

2467:12310:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4325:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4325:55:0;;;;;;;;4398:36;;;;;;;;;;-1:-1:-1;4398:36:0;;;;;;;;;;;361:14:1;;354:22;336:41;;324:2;309:18;4398:36:0;196:187:1;5688:80:0;;;;;;;;;;-1:-1:-1;5760:5:0;;;;;;;;;;;;-1:-1:-1;;;5760:5:0;;;;5688:80;;;;;;;:::i;6110:216::-;;;;;;;;;;-1:-1:-1;6110:216:0;;;;;:::i;:::-;;:::i;4229:50::-;;;;;;;;;;;;;;;;5418:88;;;;;;;;;;-1:-1:-1;5491:12:0;;5418:88;;6682:345;;;;;;;;;;-1:-1:-1;6682:345:0;;;;;:::i;:::-;;:::i;14280:238::-;;;;;;;;;;;;;:::i;:::-;;3962:75;;;;;;;;;;-1:-1:-1;3962:75:0;;;;-1:-1:-1;;;;;3962:75:0;;;;;;-1:-1:-1;;;;;2071:32:1;;;2053:51;;2041:2;2026:18;3962:75:0;1907:203:1;1376:103:0;;;;;;;;;;-1:-1:-1;1376:103:0;;;;;:::i;:::-;1431:4;1466:5;-1:-1:-1;;;;;1455:16:0;;;1466:5;;1455:16;;1376:103;3722:36;;;;;;;;;;;;;;;;5512:80;;;;;;;;;;-1:-1:-1;5512:80:0;;3289:2;2509:36:1;;2497:2;2482:18;5512:80:0;2367:184:1;3044:44:0;;;;;;;;;;-1:-1:-1;3044:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4481:31;;;;;;;;;;;;;;;;12353:161;;;;;;;;;;-1:-1:-1;12353:161:0;;;;;:::i;:::-;;:::i;3567:35::-;;;;;;;;;;;;;;;;3450:53;;;;;;;;;;;;;;;;7465:234;;;;;;;;;;-1:-1:-1;7465:234:0;;;;;:::i;:::-;;:::i;6334:122::-;;;;;;;;;;-1:-1:-1;6334:122:0;;;;;:::i;:::-;;:::i;3764:123::-;;;;;;;;;;;;;;;;3647:30;;;;;;;;;;;;;;;;11987:358;;;;;;;;;;-1:-1:-1;11987:358:0;;;;;:::i;:::-;;:::i;12522:165::-;;;;;;;;;;-1:-1:-1;12522:165:0;;;;;:::i;:::-;;:::i;4288:30::-;;;;;;;;;;-1:-1:-1;4288:30:0;;;;;;;;5858:105;;;;;;;;;;-1:-1:-1;5858:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5942:18:0;5924:7;5942:18;;;:9;:18;;;;;;;5858:105;3606:35;;;;;;;;;;;;;;;;12880:770;;;;;;;;;;-1:-1:-1;12880:770:0;;;;;:::i;:::-;;:::i;5774:78::-;;;;;;;;;;-1:-1:-1;5826:7:0;5844:5;-1:-1:-1;;;;;5844:5:0;5774:78;;14526:144;;;;;;;;;;-1:-1:-1;14526:144:0;;;;;:::i;:::-;;:::i;3095:48::-;;;;;;;;;;-1:-1:-1;3095:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3386:57;;;;;;;;;;;;;;;;14169:74;;;;;;;;;;;;;:::i;5598:84::-;;;;;;;;;;-1:-1:-1;5672:7:0;;;;;;;;;;;;-1:-1:-1;;;5672:7:0;;;;5598:84;;7286:171;;;;;;;;;;;;;:::i;4173:19::-;;;;;;;;;;-1:-1:-1;4173:19:0;;;;-1:-1:-1;;;;;4173:19:0;;;6464:156;;;;;;;;;;-1:-1:-1;6464:156:0;;;;;:::i;:::-;;:::i;3931:24::-;;;;;;;;;;-1:-1:-1;3931:24:0;;;;-1:-1:-1;;;;;3931:24:0;;;3681:37;;;;;;;;;;;;;;;;7035:243;;;;;;;;;;;;;:::i;4199:23::-;;;;;;;;;;-1:-1:-1;4199:23:0;;;;-1:-1:-1;;;;;4199:23:0;;;4441:33;;;;;;;;;;-1:-1:-1;4441:33:0;;;;;;;-1:-1:-1;;;;;4441:33:0;;;3534:29;;;;;;;;;;;;;;;;5969:133;;;;;;;;;;-1:-1:-1;5969:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6071:19:0;;;6053:7;6071:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5969:133;13876:285;;;;;;;;;;-1:-1:-1;13876:285:0;;;;;:::i;:::-;;:::i;13658:210::-;;;;;;;;;;-1:-1:-1;13658:210:0;;;;;:::i;:::-;;:::i;1487:242::-;;;;;;;;;;-1:-1:-1;1487:242:0;;;;;:::i;:::-;;:::i;14678:94::-;;;;;;;;;;-1:-1:-1;14759:4:0;14678:94;;12695:177;;;;;;;;;;-1:-1:-1;12695:177:0;;;;;:::i;:::-;;:::i;4142:24::-;;;;;;;;;;-1:-1:-1;4142:24:0;;;;-1:-1:-1;;;;;4142:24:0;;;6110:216;6214:10;6185:4;6202:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6202:32:0;;;;;;;;;;:41;;;6259:37;6185:4;;6202:32;;6259:37;;;;6237:6;160:25:1;;148:2;133:18;;14:177;6259:37:0;;;;;;;;-1:-1:-1;6314:4:0;6110:216;;;;:::o;6682:345::-;-1:-1:-1;;;;;6802:19:0;;6782:4;6802:19;;;:11;:19;;;;;;;;6822:10;6802:31;;;;;;;;-1:-1:-1;;6802:52:0;6799:159;;-1:-1:-1;;;;;6904:19:0;;;;;;:11;:19;;;;;;;;6924:10;6904:31;;;;;;;;:42;;6939:6;;6904:42;:::i;:::-;-1:-1:-1;;;;;6870:19:0;;;;;;:11;:19;;;;;;;;6890:10;6870:31;;;;;;;:76;6799:159;6977:40;6991:6;6999:9;7010:6;6977:13;:40::i;:::-;6970:47;;6682:345;;;;;;:::o;14280:238::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;;;;;;;;;14408:9:::1;::::0;14400:47:::1;::::0;14368:21:::1;::::0;-1:-1:-1;;;;;14408:9:0::1;::::0;14400:47;::::1;;;::::0;14368:21;;14339:26:::1;14400:47:::0;14339:26;14400:47;14368:21;14408:9;14400:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14500:9:0::1;::::0;14463:47:::1;::::0;;5799:25:1;;;-1:-1:-1;;;;;14500:9:0;;::::1;5855:2:1::0;5840:18;;5833:60;14463:47:0::1;::::0;5772:18:1;14463:47:0::1;;;;;;;14328:190;14280:238::o:0;12353:161::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;12447:8:::1;:20:::0;;-1:-1:-1;;;;;;12447:20:0::1;-1:-1:-1::0;;;;;12447:20:0;;;::::1;::::0;;;::::1;::::0;;;12478:11:::1;:26:::0;12353:161::o;7465:234::-;7544:18;;;;;-1:-1:-1;;;;;7544:18:0;7566:10;7544:32;7536:63;;;;-1:-1:-1;;;7536:63:0;;6106:2:1;7536:63:0;;;6088:21:1;6145:2;6125:18;;;6118:30;-1:-1:-1;;;6164:18:1;;;6157:48;6222:18;;7536:63:0;5904:342:1;7536:63:0;7610:16;:36;;-1:-1:-1;;7610:36:0;;;;;;;;;;7676:15;7657:16;:34;7465:234::o;6334:122::-;6389:4;6413:35;6421:7;-1:-1:-1;;6413:7:0;:35::i;:::-;6406:42;6334:122;-1:-1:-1;;6334:122:0:o;11987:358::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;12132:4:::1;12117:12;;:19;;;;:::i;:::-;12098:15;:38;;:76;;;;;12170:4;12155:12;;:19;;;;:::i;:::-;12140:11;:34;;12098:76;12090:125;;;::::0;-1:-1:-1;;;12090:125:0;;6675:2:1;12090:125:0::1;::::0;::::1;6657:21:1::0;6714:2;6694:18;;;6687:30;6753:34;6733:18;;;6726:62;-1:-1:-1;;;6804:18:1;;;6797:34;6848:19;;12090:125:0::1;6473:400:1::0;12090:125:0::1;12226:14;:32:::0;;;12269:10:::1;:24:::0;;;12309:28:::1;::::0;160:25:1;;;12309:28:0::1;::::0;148:2:1;133:18;12309:28:0::1;;;;;;;;11987:358:::0;;:::o;12522:165::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12605:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;12605:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12649:30;;7046:51:1;;;7113:18;;;7106:50;12649:30:0::1;::::0;7019:18:1;12649:30:0::1;6878:284:1::0;12880:770:0;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;13151:2:::1;13131:16:::0;13099:29:::1;13112:16:::0;13099:10;:29:::1;:::i;:::-;:48;;;;:::i;:::-;:54;;:115;;;;-1:-1:-1::0;13212:2:0::1;13191:17:::0;13157:31:::1;13171:17:::0;13157:11;:31:::1;:::i;:::-;:51;;;;:::i;:::-;:57;;13099:115;13091:172;;;::::0;-1:-1:-1;;;13091:172:0;;7502:2:1;13091:172:0::1;::::0;::::1;7484:21:1::0;7541:2;7521:18;;;7514:30;7580:34;7560:18;;;7553:62;-1:-1:-1;;;7631:18:1;;;7624:42;7683:19;;13091:172:0::1;7300:408:1::0;13091:172:0::1;13270:9;:22:::0;;;13297:15:::1;:34:::0;;;13336:15:::1;:34:::0;;;13377:10:::1;:24:::0;;;13406:16:::1;:36:::0;;;13447:16:::1;:36:::0;;;13466:17;13354:16;13425:17;13315:16;13502:22:::1;13390:11:::0;13282:10;13502:22:::1;:::i;:::-;:40;;;;:::i;:::-;:59;;;;:::i;:::-;:77;;;;:::i;:::-;:96;;;;:::i;:::-;13490:9;:108:::0;13632:9:::1;::::0;13624:18:::1;::::0;160:25:1;;;13624:18:0::1;::::0;148:2:1;133:18;13624::0::1;;;;;;;12880:770:::0;;;;;;:::o;14526:144::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;14616:5:::1;::::0;14623:38:::1;::::0;-1:-1:-1;;;14623:38:0;;14655:4:::1;14623:38;::::0;::::1;2053:51:1::0;-1:-1:-1;;;;;14593:22:0;;::::1;::::0;::::1;::::0;14616:5;::::1;::::0;14593:22;;14623:23:::1;::::0;2026:18:1;;14623:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14593:69;::::0;-1:-1:-1;;;;;;14593:69:0::1;::::0;;;;;;-1:-1:-1;;;;;8094:32:1;;;14593:69:0::1;::::0;::::1;8076:51:1::0;8143:18;;;8136:34;8049:18;;14593:69:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14526:144:::0;:::o;14169:74::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;14223:10:::1;:8;:10::i;:::-;14169:74::o:0;7286:171::-;7350:18;;;;;-1:-1:-1;;;;;7350:18:0;7372:10;7350:32;7342:63;;;;-1:-1:-1;;;7342:63:0;;6106:2:1;7342:63:0;;;6088:21:1;6145:2;6125:18;;;6118:30;-1:-1:-1;;;6164:18:1;;;6157:48;6222:18;;7342:63:0;5904:342:1;7342:63:0;7416:18;:33;;-1:-1:-1;;;;;;7416:33:0;;;7286:171::o;6464:156::-;6544:4;6568:44;6582:10;6594:9;6605:6;6568:13;:44::i;7035:243::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;7101:6:::1;;;;;;;;;-1:-1:-1::0;;;;;7101:6:0::1;-1:-1:-1::0;;;;;7101:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7089:37:0::1;;7135:4;7142:6;;;;;;;;;-1:-1:-1::0;;;;;7142:6:0::1;-1:-1:-1::0;;;;;7142:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7089:67;::::0;-1:-1:-1;;;;;;7089:67:0::1;::::0;;;;;;-1:-1:-1;;;;;8917:15:1;;;7089:67:0::1;::::0;::::1;8899:34:1::0;8969:15;;8949:18;;;8942:43;8834:18;;7089:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7082:4;:74:::0;;-1:-1:-1;;;;;;7082:74:0::1;-1:-1:-1::0;;;;;7082:74:0;;;::::1;::::0;;::::1;::::0;;7167:104:::1;;7211:6;;;;;;;;;-1:-1:-1::0;;;;;7211:6:0::1;-1:-1:-1::0;;;;;7211:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7199:40:0::1;;7248:4;7255:6;;;;;;;;;-1:-1:-1::0;;;;;7255:6:0::1;-1:-1:-1::0;;;;;7255:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7199:70;::::0;-1:-1:-1;;;;;;7199:70:0::1;::::0;;;;;;-1:-1:-1;;;;;8917:15:1;;;7199:70:0::1;::::0;::::1;8899:34:1::0;8969:15;;8949:18;;;8942:43;8834:18;;7199:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7192:4;:77:::0;;-1:-1:-1;;;;;;7192:77:0::1;-1:-1:-1::0;;;;;7192:77:0;;;::::1;::::0;;;::::1;::::0;;7035:243::o;13876:285::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;13986:1:::1;13975:7;:12;;13967:56;;;::::0;-1:-1:-1;;;13967:56:0;;9198:2:1;13967:56:0::1;::::0;::::1;9180:21:1::0;9237:2;9217:18;;;9210:30;9276:33;9256:18;;;9249:61;9327:18;;13967:56:0::1;8996:355:1::0;13967:56:0::1;14034:11;:22:::0;;-1:-1:-1;;14034:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14067:13:::1;:23:::0;;;14106:47:::1;::::0;;14034:22:::1;14126:11:::0;;;9549:14:1;9542:22;9524:41;;9596:2;9581:18;;9574:34;;;14106:47:0::1;::::0;9497:18:1;14106:47:0::1;9356:258:1::0;13658:210:0;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;13758:9:::1;:22:::0;;-1:-1:-1;;;;;13758:22:0;;::::1;-1:-1:-1::0;;;;;;13758:22:0;;::::1;::::0;::::1;::::0;;;13785:15:::1;:34:::0;;;;::::1;::::0;;;::::1;;::::0;;13835:25:::1;::::0;2053:51:1;;;13835:25:0::1;::::0;2041:2:1;2026:18;13835:25:0::1;1907:203:1::0;1487:242:0;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1576:22:0;::::1;1568:73;;;::::0;-1:-1:-1;;;1568:73:0;;9821:2:1;1568:73:0::1;::::0;::::1;9803:21:1::0;9860:2;9840:18;;;9833:30;9899:34;9879:18;;;9872:62;-1:-1:-1;;;9950:18:1;;;9943:36;9996:19;;1568:73:0::1;9619:402:1::0;1568:73:0::1;1678:5;::::0;;1657:37:::1;::::0;-1:-1:-1;;;;;1657:37:0;;::::1;::::0;1678:5;::::1;::::0;1657:37:::1;::::0;::::1;1705:5;:16:::0;;-1:-1:-1;;;;;;1705:16:0::1;-1:-1:-1::0;;;;;1705:16:0;;;::::1;::::0;;;::::1;::::0;;1487:242::o;12695:177::-;1328:5;;-1:-1:-1;;;;;1328:5:0;1314:10;:19;1306:41;;;;-1:-1:-1;;;1306:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12782:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;;;;:32;;-1:-1:-1;;12782:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12830:34;;7046:51:1;;;7113:18;;;7106:50;12830:34:0::1;::::0;7019:18:1;12830:34:0::1;6878:284:1::0;7707:1322:0;7821:6;;7799:4;;7821:6;;7818:62;;;7837:41;7852:6;7860:9;7871:6;7837:14;:41::i;:::-;7830:48;;;;7818:62;-1:-1:-1;;;;;7916:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7939:22:0;;;;;;:11;:22;;;;;;;;7916:45;:239;;;-1:-1:-1;7965:16:0;;;;:190;;;;-1:-1:-1;8040:11:0;;8006:8;;8000:36;;-1:-1:-1;;;8000:36:0;;-1:-1:-1;;;;;2071:32:1;;;8000:36:0;;;2053:51:1;8006:8:0;;;;8000:25;;2026:18:1;;8000:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;:103;;;-1:-1:-1;8092:11:0;;8061:8;;8055:33;;-1:-1:-1;;;8055:33:0;;-1:-1:-1;;;;;2071:32:1;;;8055:33:0;;;2053:51:1;8061:8:0;;;;8055:25;;2026:18:1;;8055:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;8000:103;:154;;;-1:-1:-1;8126:16:0;;:28;;8145:9;8126:28;:::i;:::-;8107:15;:47;;8000:154;7908:279;;;;-1:-1:-1;;;7908:279:0;;10228:2:1;7908:279:0;;;10210:21:1;10267:2;10247:18;;;10240:30;10306:29;10286:18;;;10279:57;10353:18;;7908:279:0;10026:351:1;7908:279:0;8255:5;;-1:-1:-1;;;;;8245:15:0;;;8255:5;;8245:15;;;;:44;;-1:-1:-1;8274:15:0;;-1:-1:-1;;;;;8264:25:0;;;8274:15;;8264:25;;8245:44;:66;;;;-1:-1:-1;8306:5:0;;-1:-1:-1;;;;;8293:18:0;;;8306:5;;8293:18;;8245:66;:87;;;;-1:-1:-1;;;;;;8315:17:0;;4076:42;8315:17;;8245:87;:108;;;;-1:-1:-1;8349:4:0;;-1:-1:-1;;;;;8336:17:0;;;8349:4;;8336:17;;8245:108;8241:311;;;-1:-1:-1;;;;;8389:26:0;;;;;;:15;:26;;;;;;;;;:103;;;8430:10;;8420:6;:20;;:71;;;;-1:-1:-1;8477:14:0;;-1:-1:-1;;;;;8444:20:0;;;;;;:9;:20;;;;;;:29;;8467:6;;8444:29;:::i;:::-;:47;;8420:71;8381:159;;;;-1:-1:-1;;;8381:159:0;;10584:2:1;8381:159:0;;;10566:21:1;10623:2;10603:18;;;10596:30;10662:34;10642:18;;;10635:62;-1:-1:-1;;;10713:18:1;;;10706:41;10764:19;;8381:159:0;10382:407:1;8381:159:0;8602:16;:14;:16::i;:::-;8599:33;;;8620:10;:8;:10::i;:::-;-1:-1:-1;;;;;8664:17:0;;;;;;:9;:17;;;;;;:26;;8684:6;;8664:26;:::i;:::-;-1:-1:-1;;;;;8644:17:0;;;;;;:9;:17;;;;;;;;:46;;;;9461:11;:19;;;;;;;;9460:20;8765:22;:51;;;-1:-1:-1;;;;;;9461:19:0;;9436:4;9461:19;;;:11;:19;;;;;;;;9460:20;8791:25;8765:51;8764:99;;8829:34;8837:6;8845:9;8856:6;8829:7;:34::i;:::-;8764:99;;;8820:6;8764:99;-1:-1:-1;;;;;8897:20:0;;;;;;:9;:20;;;;;;8739:124;;-1:-1:-1;8897:39:0;;8739:124;;8897:39;:::i;:::-;-1:-1:-1;;;;;8874:20:0;;;;;;;:9;:20;;;;;;;:62;;;;8954:43;;;;;;;;;;8982:14;160:25:1;;148:2;133:18;;14:177;8954:43:0;;;;;;;;-1:-1:-1;9017:4:0;;7707:1322;-1:-1:-1;;;;7707:1322:0:o;10727:1228::-;4561:6;:13;;-1:-1:-1;;4561:13:0;4570:4;4561:13;;;10871:9:::1;::::0;4561:6;;10867:13:::1;::::0;:1:::1;:13;:::i;:::-;10846:16;;10828:15;;:34;;;;:::i;:::-;10818:4;5924:7:::0;5942:18;;;:9;:18;;;;;;10800:63:::1;;;;:::i;:::-;:81;;;;:::i;:::-;10933:4;10892:20;5942:18:::0;;;:9;:18;;;;;;10778:103;;-1:-1:-1;10892:20:0;10915:38:::1;::::0;10778:103;;10915:38:::1;:::i;:::-;10990:16;::::0;;11004:1:::1;10990:16:::0;;;;;::::1;::::0;;10892:61;;-1:-1:-1;10966:21:0::1;::::0;10990:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10990:16:0::1;10966:40;;11035:4;11017;11022:1;11017:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11017:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11061:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11061:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11017:7;;11061:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11051:4;11056:1;11051:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11051:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11087:6:::1;::::0;:112:::1;::::0;-1:-1:-1;;;11087:112:0;;:6;::::1;::::0;:57:::1;::::0;:112:::1;::::0;11145:12;;11087:6:::1;::::0;11162:4;;11176::::1;::::0;11183:15:::1;::::0;11087:112:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11224:1;11210:11;:15;11206:190;;;11242:142;11255:11;11366:16;;11348:15;;11336:9;;11332:1;:13;;;;:::i;:::-;:31;;;;:::i;:::-;:50;;;;:::i;:::-;11311:16;;11293:15;;:34;;;;:::i;:::-;11268:60;::::0;:21:::1;:60;:::i;:::-;:115;;;;:::i;:::-;11242:12;:142::i;:::-;11408:20;11526:16;;11508:15;;11495:10;;11483:9;;:22;;;;:::i;:::-;:40;;;;:::i;:::-;:59;;;;:::i;:::-;11468:10;;11456:9;;:22;;;;:::i;:::-;11431:48;::::0;:21:::1;:48;:::i;:::-;:112;;;;:::i;:::-;11408:135:::0;-1:-1:-1;11554:26:0::1;11583:36;11408:135:::0;11583:21:::1;:36;:::i;:::-;11683:9;::::0;11675:60:::1;::::0;11554:65;;-1:-1:-1;11633:13:0::1;::::0;-1:-1:-1;;;;;11683:9:0;;::::1;::::0;11725:5:::1;::::0;11706:12;;11633:13;11675:60;11633:13;11675:60;11706:12;11683:9;11725:5;11675:60:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;11797:15:0::1;::::0;11789:72:::1;::::0;11632:103;;-1:-1:-1;11747:13:0::1;::::0;-1:-1:-1;;;;;11797:15:0;;::::1;::::0;11851:5:::1;::::0;11826:18;;11747:13;11789:72;11747:13;11789:72;11826:18;11797:15;11851:5;11789:72:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11746:115;;;11886:8;:20;;;;;11898:8;11886:20;11878:63;;;::::0;-1:-1:-1;;;11878:63:0;;12628:2:1;11878:63:0::1;::::0;::::1;12610:21:1::0;12667:2;12647:18;;;12640:30;12706:32;12686:18;;;12679:60;12756:18;;11878:63:0::1;12426:354:1::0;11878:63:0::1;-1:-1:-1::0;;4579:6:0;:14;;-1:-1:-1;;4579:14:0;;;-1:-1:-1;;;;;10727:1228:0:o;9041:300::-;-1:-1:-1;;;;;9171:17:0;;9134:4;9171:17;;;:9;:17;;;;;;:26;;9191:6;;9171:26;:::i;:::-;-1:-1:-1;;;;;9151:17:0;;;;;;;:9;:17;;;;;;:46;;;;9231:20;;;;;;;:29;;9254:6;;9231:29;:::i;:::-;-1:-1:-1;;;;;9208:20:0;;;;;;;:9;:20;;;;;;;:52;;;;9276:35;;;;;;;;;;9304:6;160:25:1;;148:2;133:18;;14:177;9276:35:0;;;;;;;;-1:-1:-1;9329:4:0;9041:300;;;;;:::o;10168:197::-;10255:4;;10217;;-1:-1:-1;;;;;10255:4:0;10241:10;:18;;;;:38;;-1:-1:-1;10273:6:0;;;;10272:7;10241:38;:62;;;;-1:-1:-1;10292:11:0;;;;10241:62;:116;;;;-1:-1:-1;10344:13:0;;10334:4;10316:24;;;;:9;:24;;;;;;:41;;10241:116;10234:123;;10168:197;:::o;9496:664::-;9652:4;;9582:7;;;;-1:-1:-1;;;;;9642:14:0;;;9652:4;;9642:14;:35;;;;-1:-1:-1;9673:4:0;;-1:-1:-1;;;;;9660:17:0;;;9673:4;;9660:17;;9642:35;9638:137;;;9762:4;9743:15;;9725;;9713:9;;:27;;;;:::i;:::-;:45;;;;:::i;:::-;9703:56;;:6;:56;:::i;:::-;:63;;;;:::i;:::-;9691:75;;9638:137;9790:4;;-1:-1:-1;;;;;9780:14:0;;;9790:4;;9780:14;;;;:35;;-1:-1:-1;9811:4:0;;-1:-1:-1;;;;;9798:17:0;;;9811:4;;9798:17;9780:35;9776:140;;;9903:4;9883:16;;9864;;9851:10;;:29;;;;:::i;:::-;:48;;;;:::i;:::-;9841:59;;:6;:59;:::i;:::-;:66;;;;:::i;:::-;9829:78;;9776:140;9932:13;;9928:185;;10007:4;9989:24;;;;:9;:24;;;;;;:38;;10017:9;;9989:38;:::i;:::-;9980:4;9962:24;;;;:9;:24;;;;;;;:65;;;;10047:42;;-1:-1:-1;;;;;10047:42:0;;;;;;;10079:9;160:25:1;;148:2;133:18;;14:177;10047:42:0;;;;;;;;9928:185;10132:20;10142:9;10132:6;:20;:::i;:::-;10125:27;9496:664;-1:-1:-1;;;;;9496:664:0:o;10373:346::-;10481:4;10461:26;;;;:11;:26;;;;;;;;10496:6;;-1:-1:-1;;;;;10496:6:0;10461:43;;;;;;;;:59;-1:-1:-1;10458:125:0;;;10542:4;10522:26;;;;:11;:26;;;;;;;;10557:6;;-1:-1:-1;;;;;10557:6:0;10522:43;;;;;;;:59;;;10458:125;10593:6;;10672:9;;-1:-1:-1;;;;;10593:6:0;;;;:22;;10623:11;;10644:4;;10651:13;;10593:6;;;;10672:9;10683:27;:15;10701:9;10683:27;:::i;:::-;10593:118;;;;;;-1:-1:-1;;;;;;10593:118:0;;;-1:-1:-1;;;;;13144:15:1;;;10593:118:0;;;13126:34:1;13176:18;;;13169:34;;;;13219:18;;;13212:34;;;;13262:18;;;13255:34;;;;13326:15;;;13305:19;;;13298:44;13358:19;;;13351:35;;;;13060:19;;10593:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10373:346;;:::o;388:597:1:-;500:4;529:2;558;547:9;540:21;590:6;584:13;633:6;628:2;617:9;613:18;606:34;658:1;668:140;682:6;679:1;676:13;668:140;;;777:14;;;773:23;;767:30;743:17;;;762:2;739:26;732:66;697:10;;668:140;;;826:6;823:1;820:13;817:91;;;896:1;891:2;882:6;871:9;867:22;863:31;856:42;817:91;-1:-1:-1;969:2:1;948:15;-1:-1:-1;;944:29:1;929:45;;;;976:2;925:54;;388:597;-1:-1:-1;;;388:597:1:o;990:131::-;-1:-1:-1;;;;;1065:31:1;;1055:42;;1045:70;;1111:1;1108;1101:12;1045:70;990:131;:::o;1126:315::-;1194:6;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:31;1354:5;1329:31;:::i;:::-;1379:5;1431:2;1416:18;;;;1403:32;;-1:-1:-1;;;1126:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2115:247::-;2174:6;2227:2;2215:9;2206:7;2202:23;2198:32;2195:52;;;2243:1;2240;2233:12;2195:52;2282:9;2269:23;2301:31;2326:5;2301:31;:::i;2556:118::-;2642:5;2635:13;2628:21;2621:5;2618:32;2608:60;;2664:1;2661;2654:12;2679:241;2735:6;2788:2;2776:9;2767:7;2763:23;2759:32;2756:52;;;2804:1;2801;2794:12;2756:52;2843:9;2830:23;2862:28;2884:5;2862:28;:::i;2925:248::-;2993:6;3001;3054:2;3042:9;3033:7;3029:23;3025:32;3022:52;;;3070:1;3067;3060:12;3022:52;-1:-1:-1;;3093:23:1;;;3163:2;3148:18;;;3135:32;;-1:-1:-1;2925:248:1:o;3178:382::-;3243:6;3251;3304:2;3292:9;3283:7;3279:23;3275:32;3272:52;;;3320:1;3317;3310:12;3272:52;3359:9;3346:23;3378:31;3403:5;3378:31;:::i;:::-;3428:5;-1:-1:-1;3485:2:1;3470:18;;3457:32;3498:30;3457:32;3498:30;:::i;:::-;3547:7;3537:17;;;3178:382;;;;;:::o;3565:523::-;3669:6;3677;3685;3693;3701;3709;3762:3;3750:9;3741:7;3737:23;3733:33;3730:53;;;3779:1;3776;3769:12;3730:53;-1:-1:-1;;3802:23:1;;;3872:2;3857:18;;3844:32;;-1:-1:-1;3923:2:1;3908:18;;3895:32;;3974:2;3959:18;;3946:32;;-1:-1:-1;4025:3:1;4010:19;;3997:33;;-1:-1:-1;4077:3:1;4062:19;4049:33;;-1:-1:-1;3565:523:1;-1:-1:-1;3565:523:1:o;4093:388::-;4161:6;4169;4222:2;4210:9;4201:7;4197:23;4193:32;4190:52;;;4238:1;4235;4228:12;4190:52;4277:9;4264:23;4296:31;4321:5;4296:31;:::i;:::-;4346:5;-1:-1:-1;4403:2:1;4388:18;;4375:32;4416:33;4375:32;4416:33;:::i;4486:309::-;4551:6;4559;4612:2;4600:9;4591:7;4587:23;4583:32;4580:52;;;4628:1;4625;4618:12;4580:52;4667:9;4654:23;4686:28;4708:5;4686:28;:::i;5026:127::-;5087:10;5082:3;5078:20;5075:1;5068:31;5118:4;5115:1;5108:15;5142:4;5139:1;5132:15;5158:125;5198:4;5226:1;5223;5220:8;5217:34;;;5231:18;;:::i;:::-;-1:-1:-1;5268:9:1;;5158:125::o;5288:332::-;5490:2;5472:21;;;5529:1;5509:18;;;5502:29;-1:-1:-1;;;5562:2:1;5547:18;;5540:39;5611:2;5596:18;;5288:332::o;6251:217::-;6291:1;6317;6307:132;;6361:10;6356:3;6352:20;6349:1;6342:31;6396:4;6393:1;6386:15;6424:4;6421:1;6414:15;6307:132;-1:-1:-1;6453:9:1;;6251:217::o;7167:128::-;7207:3;7238:1;7234:6;7231:1;7228:13;7225:39;;;7244:18;;:::i;:::-;-1:-1:-1;7280:9:1;;7167:128::o;7713:184::-;7783:6;7836:2;7824:9;7815:7;7811:23;7807:32;7804:52;;;7852:1;7849;7842:12;7804:52;-1:-1:-1;7875:16:1;;7713:184;-1:-1:-1;7713:184:1:o;8181:245::-;8248:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:52;;;8317:1;8314;8307:12;8269:52;8349:9;8343:16;8368:28;8390:5;8368:28;:::i;8431:251::-;8501:6;8554:2;8542:9;8533:7;8529:23;8525:32;8522:52;;;8570:1;8567;8560:12;8522:52;8602:9;8596:16;8621:31;8646:5;8621:31;:::i;10794:168::-;10834:7;10900:1;10896;10892:6;10888:14;10885:1;10882:21;10877:1;10870:9;10863:17;10859:45;10856:71;;;10907:18;;:::i;:::-;-1:-1:-1;10947:9:1;;10794:168::o;11099:127::-;11160:10;11155:3;11151:20;11148:1;11141:31;11191:4;11188:1;11181:15;11215:4;11212:1;11205:15;11231:980;11493:4;11541:3;11530:9;11526:19;11572:6;11561:9;11554:25;11598:2;11636:6;11631:2;11620:9;11616:18;11609:34;11679:3;11674:2;11663:9;11659:18;11652:31;11703:6;11738;11732:13;11769:6;11761;11754:22;11807:3;11796:9;11792:19;11785:26;;11846:2;11838:6;11834:15;11820:29;;11867:1;11877:195;11891:6;11888:1;11885:13;11877:195;;;11956:13;;-1:-1:-1;;;;;11952:39:1;11940:52;;12047:15;;;;12012:12;;;;11988:1;11906:9;11877:195;;;-1:-1:-1;;;;;;;12128:32:1;;;;12123:2;12108:18;;12101:60;-1:-1:-1;;;12192:3:1;12177:19;12170:35;12089:3;11231:980;-1:-1:-1;;;11231:980:1:o;13397:306::-;13485:6;13493;13501;13554:2;13542:9;13533:7;13529:23;13525:32;13522:52;;;13570:1;13567;13560:12;13522:52;13599:9;13593:16;13583:26;;13649:2;13638:9;13634:18;13628:25;13618:35;;13693:2;13682:9;13678:18;13672:25;13662:35;;13397:306;;;;;:::o

Swarm Source

ipfs://eb3ddfcab5aae659710edde14e9b79ffe558049df38279a9f56ba1a9f75e30f1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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