ETH Price: $2,268.03 (+1.96%)

Contract

0x1FCC8162fb15276D1bfc9894203eAa4b45D34253
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve144612892022-03-26 10:24:21896 days ago1648290261IN
0x1FCC8162...b45D34253
0 ETH0.0004091816.87709545
Approve144612862022-03-26 10:23:56896 days ago1648290236IN
0x1FCC8162...b45D34253
0 ETH0.0004087416.85908859
Approve142534132022-02-22 3:16:01928 days ago1645499761IN
0x1FCC8162...b45D34253
0 ETH0.0041206388.56066824
Approve142524832022-02-21 23:52:02928 days ago1645487522IN
0x1FCC8162...b45D34253
0 ETH0.0046094499.06608594
Approve142523662022-02-21 23:28:18929 days ago1645486098IN
0x1FCC8162...b45D34253
0 ETH0.00505078108.55132391
Approve142521252022-02-21 22:31:06929 days ago1645482666IN
0x1FCC8162...b45D34253
0 ETH0.00563095121.02028705
Approve142513972022-02-21 19:47:38929 days ago1645472858IN
0x1FCC8162...b45D34253
0 ETH0.00506062108.76282454
Approve142513632022-02-21 19:42:14929 days ago1645472534IN
0x1FCC8162...b45D34253
0 ETH0.0096913208.28533612
Transfer142512182022-02-21 19:07:43929 days ago1645470463IN
0x1FCC8162...b45D34253
0 ETH0.01594676139.90477417
Approve142512132022-02-21 19:06:30929 days ago1645470390IN
0x1FCC8162...b45D34253
0 ETH0.00664376142.78772126
Approve142511982022-02-21 19:03:50929 days ago1645470230IN
0x1FCC8162...b45D34253
0 ETH0.0080891173.85092089
Transfer142511702022-02-21 18:56:29929 days ago1645469789IN
0x1FCC8162...b45D34253
0 ETH0.0111026397.39576657
Approve142511472022-02-21 18:52:16929 days ago1645469536IN
0x1FCC8162...b45D34253
0 ETH0.00608066130.68559379
Approve142511442022-02-21 18:51:47929 days ago1645469507IN
0x1FCC8162...b45D34253
0 ETH0.00643408138.28127497
Transfer142511042022-02-21 18:44:14929 days ago1645469054IN
0x1FCC8162...b45D34253
0 ETH0.01519724133.31497945
Transfer142510922022-02-21 18:41:51929 days ago1645468911IN
0x1FCC8162...b45D34253
0 ETH0.01784204156.51599322
Approve142510872022-02-21 18:41:02929 days ago1645468862IN
0x1FCC8162...b45D34253
0 ETH0.00965729207.55432811
Approve142510852022-02-21 18:39:57929 days ago1645468797IN
0x1FCC8162...b45D34253
0 ETH0.00779431167.5151382
Approve142510622022-02-21 18:33:52929 days ago1645468432IN
0x1FCC8162...b45D34253
0 ETH0.00623483133.99881692
Transfer142510572022-02-21 18:32:26929 days ago1645468346IN
0x1FCC8162...b45D34253
0 ETH0.01803936158.24699855
Approve142510362022-02-21 18:26:34929 days ago1645467994IN
0x1FCC8162...b45D34253
0 ETH0.0045331597.42650599
Approve142510362022-02-21 18:26:34929 days ago1645467994IN
0x1FCC8162...b45D34253
0 ETH0.01023638220
Approve142510352022-02-21 18:26:23929 days ago1645467983IN
0x1FCC8162...b45D34253
0 ETH0.0040776387.63635163
Approve142510292022-02-21 18:25:46929 days ago1645467946IN
0x1FCC8162...b45D34253
0 ETH0.00488642105.01891014
Approve142510202022-02-21 18:24:22929 days ago1645467862IN
0x1FCC8162...b45D34253
0 ETH0.00532734114.49525882
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
142910802022-02-27 22:59:30923 days ago1646002770
0x1FCC8162...b45D34253
0.00269442 ETH
142910802022-02-27 22:59:30923 days ago1646002770
0x1FCC8162...b45D34253
0.01347212 ETH
142910802022-02-27 22:59:30923 days ago1646002770
0x1FCC8162...b45D34253
0.01616654 ETH
142910792022-02-27 22:59:07923 days ago1646002747
0x1FCC8162...b45D34253
0.0023042 ETH
142910792022-02-27 22:59:07923 days ago1646002747
0x1FCC8162...b45D34253
0.01152102 ETH
142910792022-02-27 22:59:07923 days ago1646002747
0x1FCC8162...b45D34253
0.01382523 ETH
142910792022-02-27 22:59:07923 days ago1646002747
0x1FCC8162...b45D34253
0.00328189 ETH
142910792022-02-27 22:59:07923 days ago1646002747
0x1FCC8162...b45D34253
0.01640947 ETH
142910792022-02-27 22:59:07923 days ago1646002747
0x1FCC8162...b45D34253
0.01969136 ETH
142910772022-02-27 22:58:54923 days ago1646002734
0x1FCC8162...b45D34253
0.00294964 ETH
142910772022-02-27 22:58:54923 days ago1646002734
0x1FCC8162...b45D34253
0.0147482 ETH
142910772022-02-27 22:58:54923 days ago1646002734
0x1FCC8162...b45D34253
0.01769785 ETH
142592302022-02-23 0:52:09927 days ago1645577529
0x1FCC8162...b45D34253
0.00148758 ETH
142592302022-02-23 0:52:09927 days ago1645577529
0x1FCC8162...b45D34253
0.0074379 ETH
142592302022-02-23 0:52:09927 days ago1645577529
0x1FCC8162...b45D34253
0.00892548 ETH
142590822022-02-23 0:20:18927 days ago1645575618
0x1FCC8162...b45D34253
0.00331671 ETH
142590822022-02-23 0:20:18927 days ago1645575618
0x1FCC8162...b45D34253
0.01658357 ETH
142590822022-02-23 0:20:18927 days ago1645575618
0x1FCC8162...b45D34253
0.01990029 ETH
142524032022-02-21 23:34:40929 days ago1645486480
0x1FCC8162...b45D34253
0.0026418 ETH
142524032022-02-21 23:34:40929 days ago1645486480
0x1FCC8162...b45D34253
0.013209 ETH
142524032022-02-21 23:34:40929 days ago1645486480
0x1FCC8162...b45D34253
0.01585081 ETH
142523722022-02-21 23:29:04929 days ago1645486144
0x1FCC8162...b45D34253
0.0023984 ETH
142523722022-02-21 23:29:04929 days ago1645486144
0x1FCC8162...b45D34253
0.01199203 ETH
142523722022-02-21 23:29:04929 days ago1645486144
0x1FCC8162...b45D34253
0.01439043 ETH
142518472022-02-21 21:26:26929 days ago1645478786
0x1FCC8162...b45D34253
0.00280599 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ViralDAO

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-21
*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;

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

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

contract ViralDAO is IBEP20, Auth {
    using SafeMath for uint256;

    string constant _name = "ViralDAO";
    string constant _symbol = "ViralDAO";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxWalletSize = (_totalSupply * 1) / 100; 
    uint256 public _minTransferForReferral = 1 * (10 ** _decimals); 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    
    mapping (address => bool) isFeeExempt;
    mapping (address => address) public referrer; 
    mapping(address => bool) public isReferred;

    uint256 liquidityFee = 3;
    uint256 devFee = 0;
    uint256 marketingFee = 4;

    uint256 totalFee = 10;
    uint256 feeDenominator = 100;

    uint256 referralFee = 3;

    uint256 public minSupplyForReferralReward = (_totalSupply * 1) / 1000;
    
    address private marketingFeeReceiver = 0xBC456bbe548D24dB5d11b577f79f50D2a9C33317;

    IDEXRouter public router;
    address public pair;

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

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

    event ReferralBonus(address indexed feesTo , address indexed feesFrom , uint value);
    event Referred(address indexed referred,address indexed referrer);

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

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[pair] = true;
        isFeeExempt[address(router)] = true;

        isReferred[_owner] = true;
        
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }    

        if (recipient != pair) {
            require(isFeeExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }

        uint256 amountReceived = amount; 
        
        if(sender == pair) { //buy
            if(!isFeeExempt[recipient]) {
                require(isReferred[recipient],"Not referred");
                amountReceived = takeReferralFees(recipient,amount);
            }

        } else if(recipient == pair) { //sell
            if(shouldTakeFee(sender)) {
                amountReceived = takeFee(sender, amount);
            }  

        } else if(isReferred[recipient]==false) {
            if(amount >= _minTransferForReferral) {
                isReferred[recipient] = true;
                referrer[recipient] = sender;
                emit Referred(recipient,sender);
            }
        } 
        
        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function takeReferralFees(address from,uint256 amount) internal returns(uint) {
        uint256 referralTokens = referralFee * amount / feeDenominator;
        if(_balances[referrer[from]] > minSupplyForReferralReward) {
            _balances[referrer[from]] = _balances[referrer[from]].add(referralTokens);
            emit ReferralBonus(referrer[from],from,referralTokens);
        } else {
             _balances[marketingFeeReceiver] = _balances[marketingFeeReceiver].add(referralTokens);
            emit ReferralBonus(marketingFeeReceiver,from,referralTokens);
        }

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

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountBNB = address(this).balance.sub(balanceBefore);
        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity;

        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
        addLiquidity(amountToLiquify, amountBNBLiquidity);
    }

    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
        if(tokenAmount > 0){
                router.addLiquidityETH{value: BNBAmount}(
                    address(this),
                    tokenAmount,
                    0,
                    0,
                    address(this),
                    block.timestamp
                );
                emit AutoLiquify(BNBAmount, tokenAmount);
            }
    }

    function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }   

    function setMinTransferForReferral(uint256 amount) external onlyOwner() {
        require(amount <= 1*(10**_decimals) );
        _minTransferForReferral = amount; 
    }

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

    function setFees(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        devFee = _devFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_devFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }

    function transferForeignToken(address _token) public authorized {
        require(_token != address(this), "Can't let you take all native token");
        uint256 _contractBalance = IBEP20(_token).balanceOf(address(this));
        payable(marketingFeeReceiver).transfer(_contractBalance);
    }
    
    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feesTo","type":"address"},{"indexed":true,"internalType":"address","name":"feesFrom","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ReferralBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referred","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"}],"name":"Referred","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTransferForReferral","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isReferred","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minSupplyForReferralReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","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":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTransferForReferral","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":[{"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":"_token","type":"address"}],"name":"transferForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004a6565b62000022906305f5e100620004be565b60025560646002546001620000389190620004be565b620000449190620004e0565b600355620000556009600a620004a6565b62000062906001620004be565b6004556003600a556000600b556004600c55600a600d556064600e556003600f556103e86002546001620000979190620004be565b620000a39190620004e0565b601055601180546001600160a01b03191673bc456bbe548d24db5d11b577f79f50d2a9c333171790556013805460ff60a01b1916600160a01b179055600254620000f1906103e890620004e0565b620000fe906003620004be565b6014553480156200010e57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560128054737a250d5630b4cf539739df2c5dacb4c659f2488d931683179055825163c45a015560e01b81529251919263c45a015592600480830193928290030181865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb919062000503565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000243919062000503565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b6919062000503565b601380546001600160a01b0319166001600160a01b03928316178155306000908152600660209081526040808320601280548716855290835281842060001990558354861680855260078452828520805460ff19908116600190811790925596548816865283862080548816821790559154909616845281842080548616821790558584526009835281842080549095161790935560025460058252838320819055925192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200052e565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e8578160001904821115620003cc57620003cc62000391565b80851615620003da57918102915b93841c9390800290620003ac565b509250929050565b6000826200040157506001620004a0565b816200041057506000620004a0565b8160018114620004295760028114620004345762000454565b6001915050620004a0565b60ff84111562000448576200044862000391565b50506001821b620004a0565b5060208310610133831016604e8410600b841016171562000479575081810a620004a0565b620004858383620003a7565b80600019048211156200049c576200049c62000391565b0290505b92915050565b6000620004b760ff841683620003f0565b9392505050565b6000816000190483118215151615620004db57620004db62000391565b500290565b600082620004fe57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200051657600080fd5b81516001600160a01b0381168114620004b757600080fd5b611d06806200053e6000396000f3fe6080604052600436106101e75760003560e01c8063893d20e811610102578063df20fd4911610095578063f2fde38b11610064578063f2fde38b146105e0578063f429389014610600578063f887ea4014610615578063fe9fbb801461063557600080fd5b8063df20fd4914610550578063ea23a2b814610570578063f0b37c0414610590578063f0bc6cfb146105b057600080fd5b8063a9059cbb116100d1578063a9059cbb146104aa578063b6a5d7de146104ca578063dc93cf70146104ea578063dd62ed3e1461050a57600080fd5b8063893d20e8146104565780638f9a55c01461047457806395d89b411461021c578063a8aa1b311461048a57600080fd5b8063571ac8b01161017a5780636ddd1713116101495780636ddd1713146103c95780636fcba377146103ea57806370a082311461040a57806371d0979b1461044057600080fd5b8063571ac8b0146103515780635acbdedb146103715780635d0044ca14610387578063658d4b7f146103a957600080fd5b806323b872dd116101b657806323b872dd146102985780632cf003c2146102b85780632f54bf6e14610306578063313ce5671461033557600080fd5b80630445b667146101f357806306fdde031461021c578063095ea7b31461025357806318160ddd1461028357600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020960145481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506040805180820182526008815267566972616c44414f60c01b602082015290516102139190611846565b34801561025f57600080fd5b5061027361026e3660046118b3565b610655565b6040519015158152602001610213565b34801561028f57600080fd5b50600254610209565b3480156102a457600080fd5b506102736102b33660046118df565b6106c2565b3480156102c457600080fd5b506102ee6102d3366004611920565b6008602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610213565b34801561031257600080fd5b50610273610321366004611920565b6000546001600160a01b0391821691161490565b34801561034157600080fd5b5060405160098152602001610213565b34801561035d57600080fd5b5061027361036c366004611920565b610784565b34801561037d57600080fd5b5061020960105481565b34801561039357600080fd5b506103a76103a236600461193d565b610792565b005b3480156103b557600080fd5b506103a76103c436600461196b565b6107e6565b3480156103d557600080fd5b5060135461027390600160a01b900460ff1681565b3480156103f657600080fd5b506103a76104053660046119a0565b610836565b34801561041657600080fd5b50610209610425366004611920565b6001600160a01b031660009081526005602052604090205490565b34801561044c57600080fd5b5061020960045481565b34801561046257600080fd5b506000546001600160a01b03166102ee565b34801561048057600080fd5b5061020960035481565b34801561049657600080fd5b506013546102ee906001600160a01b031681565b3480156104b657600080fd5b506102736104c53660046118b3565b610889565b3480156104d657600080fd5b506103a76104e5366004611920565b610896565b3480156104f657600080fd5b506103a7610505366004611920565b6108e7565b34801561051657600080fd5b506102096105253660046119d2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561055c57600080fd5b506103a761056b366004611a0b565b610a1c565b34801561057c57600080fd5b506103a761058b36600461193d565b610a63565b34801561059c57600080fd5b506103a76105ab366004611920565b610ab5565b3480156105bc57600080fd5b506102736105cb366004611920565b60096020526000908152604090205460ff1681565b3480156105ec57600080fd5b506103a76105fb366004611920565b610b00565b34801561060c57600080fd5b506103a7610b96565b34801561062157600080fd5b506012546102ee906001600160a01b031681565b34801561064157600080fd5b50610273610650366004611920565b610bf9565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106b09086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461076f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461074a918490610c17565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61077a848484610c51565b90505b9392505050565b60006106bc82600019610655565b6000546001600160a01b031633146107c55760405162461bcd60e51b81526004016107bc90611a27565b60405180910390fd5b6103e86002546107d59190611a5d565b8110156107e157600080fd5b600355565b6107ef33610bf9565b61080b5760405162461bcd60e51b81526004016107bc90611a7f565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b61083f33610bf9565b61085b5760405162461bcd60e51b81526004016107bc90611a7f565b600a849055600b839055600c82905561087e826108788686610f9d565b90610f9d565b600d55600e55505050565b600061077d338484610c51565b6000546001600160a01b031633146108c05760405162461bcd60e51b81526004016107bc90611a27565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6108f033610bf9565b61090c5760405162461bcd60e51b81526004016107bc90611a7f565b6001600160a01b0381163014156109715760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b60648201526084016107bc565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190611aa4565b6011546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a17573d6000803e3d6000fd5b505050565b610a2533610bf9565b610a415760405162461bcd60e51b81526004016107bc90611a7f565b60138054921515600160a01b0260ff60a01b1990931692909217909155601455565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b81526004016107bc90611a27565b610a996009600a611ba1565b610aa4906001611bb0565b811115610ab057600080fd5b600455565b6000546001600160a01b03163314610adf5760405162461bcd60e51b81526004016107bc90611a27565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b81526004016107bc90611a27565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610b9f33610bf9565b610bbb5760405162461bcd60e51b81526004016107bc90611a7f565b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610bf5573d6000803e3d6000fd5b5050565b6001600160a01b031660009081526001602052604090205460ff1690565b60008184841115610c3b5760405162461bcd60e51b81526004016107bc9190611846565b506000610c488486611bcf565b95945050505050565b60155460009060ff1615610c7157610c6a848484610ffc565b905061077d565b6013546001600160a01b03848116911614610d2c576001600160a01b03831660009081526007602052604090205460ff1680610cd257506003546001600160a01b038416600090815260056020526040902054610ccf908490611be6565b11155b610d2c5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107bc565b60135482906001600160a01b0386811691161415610dcd576001600160a01b03841660009081526007602052604090205460ff16610dc8576001600160a01b03841660009081526009602052604090205460ff16610dbb5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081c9959995c9c995960a21b60448201526064016107bc565b610dc584846110e2565b90505b610ea0565b6013546001600160a01b0385811691161415610e0d576001600160a01b03851660009081526007602052604090205460ff16610dc857610dc58584611274565b6001600160a01b03841660009081526009602052604090205460ff16610ea0576004548310610ea0576001600160a01b038085166000818152600960209081526040808320805460ff1916600117905560089091528082208054948a166001600160a01b031990951685179055517f2c07cd45454a31c572d49686c5ec6fef884778b2cf441c7fd58f4bde0fa6400b9190a35b610ea8611318565b15610eb557610eb5611370565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260059091529190912054610f07918590610c17565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610f369082610f9d565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8a9085815260200190565b60405180910390a3506001949350505050565b600080610faa8385611be6565b90508381101561077d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107bc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461104d918490610c17565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461107c9083610f9d565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d09086815260200190565b60405180910390a35060019392505050565b600080600e5483600f546110f69190611bb0565b6111009190611a5d565b6010546001600160a01b03808716600090815260086020908152604080832054909316825260059052205491925010156111d6576001600160a01b0380851660009081526008602090815260408083205490931682526005905220546111669082610f9d565b6001600160a01b0385811660008181526008602081815260408084208054871685526005835281852097909755928490529081529354905185815291939216917f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630910160405180910390a3611262565b6011546001600160a01b03166000908152600560205260409020546111fb9082610f9d565b601180546001600160a01b0390811660009081526005602052604090819020939093559054915186821692909116907f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630906112599085815260200190565b60405180910390a35b61126c8184611bcf565b949350505050565b600080611298600e54611292600d548661163d90919063ffffffff16565b906116bc565b306000908152600560205260409020549091506112b59082610f9d565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113069085815260200190565b60405180910390a361126c83826116fe565b6013546000906001600160a01b03163314801590611339575060155460ff16155b801561134e5750601354600160a01b900460ff165b801561136b57506014543060009081526005602052604090205410155b905090565b6015805460ff1916600117905530600090815260056020526040812054905060006113b16002611292600d54611292600a548761163d90919063ffffffff16565b905060006113bf83836116fe565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113f9576113f9611bfe565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114769190611c14565b8160018151811061148957611489611bfe565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac947906114d3908690600090879030904290600401611c31565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b50505050600061151a82476116fe90919063ffffffff16565b905060006115406115376002600a546116bc90919063ffffffff16565b600d54906116fe565b90506000611562600261129284611292600a548861163d90919063ffffffff16565b905060006115708285611bcf565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115c7576040519150601f19603f3d011682016040523d82523d6000602084013e6115cc565b606091505b505090508061161d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016107bc565b6116278984611740565b50506015805460ff191690555050505050505050565b60008261164c575060006106bc565b60006116588385611bb0565b9050826116658583611a5d565b1461077d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107bc565b600061077d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611818565b600061077d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c17565b8115610bf55760125460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156117b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117d89190611ca2565b505060408051838152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15050565b600081836118395760405162461bcd60e51b81526004016107bc9190611846565b506000610c488486611a5d565b600060208083528351808285015260005b8181101561187357858101830151858201604001528201611857565b81811115611885576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146118b057600080fd5b50565b600080604083850312156118c657600080fd5b82356118d18161189b565b946020939093013593505050565b6000806000606084860312156118f457600080fd5b83356118ff8161189b565b9250602084013561190f8161189b565b929592945050506040919091013590565b60006020828403121561193257600080fd5b813561077d8161189b565b60006020828403121561194f57600080fd5b5035919050565b8035801515811461196657600080fd5b919050565b6000806040838503121561197e57600080fd5b82356119898161189b565b915061199760208401611956565b90509250929050565b600080600080608085870312156119b657600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156119e557600080fd5b82356119f08161189b565b91506020830135611a008161189b565b809150509250929050565b60008060408385031215611a1e57600080fd5b6118d183611956565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611a7a57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060208284031215611ab657600080fd5b5051919050565b600181815b80851115611af8578160001904821115611ade57611ade611a47565b80851615611aeb57918102915b93841c9390800290611ac2565b509250929050565b600082611b0f575060016106bc565b81611b1c575060006106bc565b8160018114611b325760028114611b3c57611b58565b60019150506106bc565b60ff841115611b4d57611b4d611a47565b50506001821b6106bc565b5060208310610133831016604e8410600b8410161715611b7b575081810a6106bc565b611b858383611abd565b8060001904821115611b9957611b99611a47565b029392505050565b600061077d60ff841683611b00565b6000816000190483118215151615611bca57611bca611a47565b500290565b600082821015611be157611be1611a47565b500390565b60008219821115611bf957611bf9611a47565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c2657600080fd5b815161077d8161189b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c815784516001600160a01b031683529383019391830191600101611c5c565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cb757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220288c925d37ec5b2a94da198d9c7d8cef29b5d9c743dc5b4f1aac7fdd11f6415564736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063893d20e811610102578063df20fd4911610095578063f2fde38b11610064578063f2fde38b146105e0578063f429389014610600578063f887ea4014610615578063fe9fbb801461063557600080fd5b8063df20fd4914610550578063ea23a2b814610570578063f0b37c0414610590578063f0bc6cfb146105b057600080fd5b8063a9059cbb116100d1578063a9059cbb146104aa578063b6a5d7de146104ca578063dc93cf70146104ea578063dd62ed3e1461050a57600080fd5b8063893d20e8146104565780638f9a55c01461047457806395d89b411461021c578063a8aa1b311461048a57600080fd5b8063571ac8b01161017a5780636ddd1713116101495780636ddd1713146103c95780636fcba377146103ea57806370a082311461040a57806371d0979b1461044057600080fd5b8063571ac8b0146103515780635acbdedb146103715780635d0044ca14610387578063658d4b7f146103a957600080fd5b806323b872dd116101b657806323b872dd146102985780632cf003c2146102b85780632f54bf6e14610306578063313ce5671461033557600080fd5b80630445b667146101f357806306fdde031461021c578063095ea7b31461025357806318160ddd1461028357600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020960145481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506040805180820182526008815267566972616c44414f60c01b602082015290516102139190611846565b34801561025f57600080fd5b5061027361026e3660046118b3565b610655565b6040519015158152602001610213565b34801561028f57600080fd5b50600254610209565b3480156102a457600080fd5b506102736102b33660046118df565b6106c2565b3480156102c457600080fd5b506102ee6102d3366004611920565b6008602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610213565b34801561031257600080fd5b50610273610321366004611920565b6000546001600160a01b0391821691161490565b34801561034157600080fd5b5060405160098152602001610213565b34801561035d57600080fd5b5061027361036c366004611920565b610784565b34801561037d57600080fd5b5061020960105481565b34801561039357600080fd5b506103a76103a236600461193d565b610792565b005b3480156103b557600080fd5b506103a76103c436600461196b565b6107e6565b3480156103d557600080fd5b5060135461027390600160a01b900460ff1681565b3480156103f657600080fd5b506103a76104053660046119a0565b610836565b34801561041657600080fd5b50610209610425366004611920565b6001600160a01b031660009081526005602052604090205490565b34801561044c57600080fd5b5061020960045481565b34801561046257600080fd5b506000546001600160a01b03166102ee565b34801561048057600080fd5b5061020960035481565b34801561049657600080fd5b506013546102ee906001600160a01b031681565b3480156104b657600080fd5b506102736104c53660046118b3565b610889565b3480156104d657600080fd5b506103a76104e5366004611920565b610896565b3480156104f657600080fd5b506103a7610505366004611920565b6108e7565b34801561051657600080fd5b506102096105253660046119d2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561055c57600080fd5b506103a761056b366004611a0b565b610a1c565b34801561057c57600080fd5b506103a761058b36600461193d565b610a63565b34801561059c57600080fd5b506103a76105ab366004611920565b610ab5565b3480156105bc57600080fd5b506102736105cb366004611920565b60096020526000908152604090205460ff1681565b3480156105ec57600080fd5b506103a76105fb366004611920565b610b00565b34801561060c57600080fd5b506103a7610b96565b34801561062157600080fd5b506012546102ee906001600160a01b031681565b34801561064157600080fd5b50610273610650366004611920565b610bf9565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106b09086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461076f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461074a918490610c17565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61077a848484610c51565b90505b9392505050565b60006106bc82600019610655565b6000546001600160a01b031633146107c55760405162461bcd60e51b81526004016107bc90611a27565b60405180910390fd5b6103e86002546107d59190611a5d565b8110156107e157600080fd5b600355565b6107ef33610bf9565b61080b5760405162461bcd60e51b81526004016107bc90611a7f565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b61083f33610bf9565b61085b5760405162461bcd60e51b81526004016107bc90611a7f565b600a849055600b839055600c82905561087e826108788686610f9d565b90610f9d565b600d55600e55505050565b600061077d338484610c51565b6000546001600160a01b031633146108c05760405162461bcd60e51b81526004016107bc90611a27565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6108f033610bf9565b61090c5760405162461bcd60e51b81526004016107bc90611a7f565b6001600160a01b0381163014156109715760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b60648201526084016107bc565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190611aa4565b6011546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a17573d6000803e3d6000fd5b505050565b610a2533610bf9565b610a415760405162461bcd60e51b81526004016107bc90611a7f565b60138054921515600160a01b0260ff60a01b1990931692909217909155601455565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b81526004016107bc90611a27565b610a996009600a611ba1565b610aa4906001611bb0565b811115610ab057600080fd5b600455565b6000546001600160a01b03163314610adf5760405162461bcd60e51b81526004016107bc90611a27565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b81526004016107bc90611a27565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610b9f33610bf9565b610bbb5760405162461bcd60e51b81526004016107bc90611a7f565b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610bf5573d6000803e3d6000fd5b5050565b6001600160a01b031660009081526001602052604090205460ff1690565b60008184841115610c3b5760405162461bcd60e51b81526004016107bc9190611846565b506000610c488486611bcf565b95945050505050565b60155460009060ff1615610c7157610c6a848484610ffc565b905061077d565b6013546001600160a01b03848116911614610d2c576001600160a01b03831660009081526007602052604090205460ff1680610cd257506003546001600160a01b038416600090815260056020526040902054610ccf908490611be6565b11155b610d2c5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107bc565b60135482906001600160a01b0386811691161415610dcd576001600160a01b03841660009081526007602052604090205460ff16610dc8576001600160a01b03841660009081526009602052604090205460ff16610dbb5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081c9959995c9c995960a21b60448201526064016107bc565b610dc584846110e2565b90505b610ea0565b6013546001600160a01b0385811691161415610e0d576001600160a01b03851660009081526007602052604090205460ff16610dc857610dc58584611274565b6001600160a01b03841660009081526009602052604090205460ff16610ea0576004548310610ea0576001600160a01b038085166000818152600960209081526040808320805460ff1916600117905560089091528082208054948a166001600160a01b031990951685179055517f2c07cd45454a31c572d49686c5ec6fef884778b2cf441c7fd58f4bde0fa6400b9190a35b610ea8611318565b15610eb557610eb5611370565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260059091529190912054610f07918590610c17565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610f369082610f9d565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8a9085815260200190565b60405180910390a3506001949350505050565b600080610faa8385611be6565b90508381101561077d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107bc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461104d918490610c17565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461107c9083610f9d565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d09086815260200190565b60405180910390a35060019392505050565b600080600e5483600f546110f69190611bb0565b6111009190611a5d565b6010546001600160a01b03808716600090815260086020908152604080832054909316825260059052205491925010156111d6576001600160a01b0380851660009081526008602090815260408083205490931682526005905220546111669082610f9d565b6001600160a01b0385811660008181526008602081815260408084208054871685526005835281852097909755928490529081529354905185815291939216917f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630910160405180910390a3611262565b6011546001600160a01b03166000908152600560205260409020546111fb9082610f9d565b601180546001600160a01b0390811660009081526005602052604090819020939093559054915186821692909116907f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630906112599085815260200190565b60405180910390a35b61126c8184611bcf565b949350505050565b600080611298600e54611292600d548661163d90919063ffffffff16565b906116bc565b306000908152600560205260409020549091506112b59082610f9d565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113069085815260200190565b60405180910390a361126c83826116fe565b6013546000906001600160a01b03163314801590611339575060155460ff16155b801561134e5750601354600160a01b900460ff165b801561136b57506014543060009081526005602052604090205410155b905090565b6015805460ff1916600117905530600090815260056020526040812054905060006113b16002611292600d54611292600a548761163d90919063ffffffff16565b905060006113bf83836116fe565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113f9576113f9611bfe565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611452573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114769190611c14565b8160018151811061148957611489611bfe565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac947906114d3908690600090879030904290600401611c31565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b50505050600061151a82476116fe90919063ffffffff16565b905060006115406115376002600a546116bc90919063ffffffff16565b600d54906116fe565b90506000611562600261129284611292600a548861163d90919063ffffffff16565b905060006115708285611bcf565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115c7576040519150601f19603f3d011682016040523d82523d6000602084013e6115cc565b606091505b505090508061161d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016107bc565b6116278984611740565b50506015805460ff191690555050505050505050565b60008261164c575060006106bc565b60006116588385611bb0565b9050826116658583611a5d565b1461077d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107bc565b600061077d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611818565b600061077d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c17565b8115610bf55760125460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156117b3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117d89190611ca2565b505060408051838152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15050565b600081836118395760405162461bcd60e51b81526004016107bc9190611846565b506000610c488486611a5d565b600060208083528351808285015260005b8181101561187357858101830151858201604001528201611857565b81811115611885576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146118b057600080fd5b50565b600080604083850312156118c657600080fd5b82356118d18161189b565b946020939093013593505050565b6000806000606084860312156118f457600080fd5b83356118ff8161189b565b9250602084013561190f8161189b565b929592945050506040919091013590565b60006020828403121561193257600080fd5b813561077d8161189b565b60006020828403121561194f57600080fd5b5035919050565b8035801515811461196657600080fd5b919050565b6000806040838503121561197e57600080fd5b82356119898161189b565b915061199760208401611956565b90509250929050565b600080600080608085870312156119b657600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156119e557600080fd5b82356119f08161189b565b91506020830135611a008161189b565b809150509250929050565b60008060408385031215611a1e57600080fd5b6118d183611956565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611a7a57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060208284031215611ab657600080fd5b5051919050565b600181815b80851115611af8578160001904821115611ade57611ade611a47565b80851615611aeb57918102915b93841c9390800290611ac2565b509250929050565b600082611b0f575060016106bc565b81611b1c575060006106bc565b8160018114611b325760028114611b3c57611b58565b60019150506106bc565b60ff841115611b4d57611b4d611a47565b50506001821b6106bc565b5060208310610133831016604e8410600b8410161715611b7b575081810a6106bc565b611b858383611abd565b8060001904821115611b9957611b99611a47565b029392505050565b600061077d60ff841683611b00565b6000816000190483118215151615611bca57611bca611a47565b500290565b600082821015611be157611be1611a47565b500390565b60008219821115611bf957611bf9611a47565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c2657600080fd5b815161077d8161189b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c815784516001600160a01b031683529383019391830191600101611c5c565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cb757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220288c925d37ec5b2a94da198d9c7d8cef29b5d9c743dc5b4f1aac7fdd11f6415564736f6c634300080c0033

Deployed Bytecode Sourcemap

4823:9945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5935:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5935:54:0;;;;;;;;7147:80;;;;;;;;;;-1:-1:-1;7219:5:0;;;;;;;;;;;-1:-1:-1;;;7219:5:0;;;;7147:80;;;;7219:5;7147:80;:::i;7569:216::-;;;;;;;;;;-1:-1:-1;7569:216:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;7569:216:0;1254:187:1;6877:88:0;;;;;;;;;;-1:-1:-1;6950:12:0;;6877:88;;8087:370;;;;;;;;;;-1:-1:-1;8087:370:0;;;;;:::i;:::-;;:::i;5378:44::-;;;;;;;;;;-1:-1:-1;5378:44:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5378:44:0;;;;;;-1:-1:-1;;;;;2323:32:1;;;2305:51;;2293:2;2278:18;5378:44:0;2159:203:1;2892:103:0;;;;;;;;;;-1:-1:-1;2892:103:0;;;;;:::i;:::-;2947:4;2982:5;-1:-1:-1;;;;;2971:16:0;;;2982:5;;2971:16;;2892:103;6971:80;;;;;;;;;;-1:-1:-1;6971:80:0;;5010:1;2509:36:1;;2497:2;2482:18;6971:80:0;2367:184:1;7793:122:0;;;;;;;;;;-1:-1:-1;7793:122:0;;;;;:::i;:::-;;:::i;5667:69::-;;;;;;;;;;;;;;;;13221:151;;;;;;;;;;-1:-1:-1;13221:151:0;;;;;:::i;:::-;;:::i;:::-;;13563:120;;;;;;;;;;-1:-1:-1;13563:120:0;;;;;:::i;:::-;;:::i;5898:30::-;;;;;;;;;;-1:-1:-1;5898:30:0;;;;-1:-1:-1;;;5898:30:0;;;;;;13691:348;;;;;;;;;;-1:-1:-1;13691:348:0;;;;;:::i;:::-;;:::i;7317:105::-;;;;;;;;;;-1:-1:-1;7317:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7401:18:0;7383:7;7401:18;;;:9;:18;;;;;;;7317:105;5143:62;;;;;;;;;;;;;;;;7233:78;;;;;;;;;;-1:-1:-1;7285:7:0;7303:5;-1:-1:-1;;;;;7303:5:0;7233:78;;5079:56;;;;;;;;;;;;;;;;5870:19;;;;;;;;;;-1:-1:-1;5870:19:0;;;;-1:-1:-1;;;;;5870:19:0;;;7923:156;;;;;;;;;;-1:-1:-1;7923:156:0;;;;;:::i;:::-;;:::i;2685:94::-;;;;;;;;;;-1:-1:-1;2685:94:0;;;;;:::i;:::-;;:::i;14399:298::-;;;;;;;;;;-1:-1:-1;14399:298:0;;;;;:::i;:::-;;:::i;7428:133::-;;;;;;;;;;-1:-1:-1;7428:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7530:19:0;;;7512:7;7530:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7428:133;14047:156;;;;;;;;;;-1:-1:-1;14047:156:0;;;;;:::i;:::-;;:::i;13383:172::-;;;;;;;;;;-1:-1:-1;13383:172:0;;;;;:::i;:::-;;:::i;2787:97::-;;;;;;;;;;-1:-1:-1;2787:97:0;;;;;:::i;:::-;;:::i;5430:42::-;;;;;;;;;;-1:-1:-1;5430:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3118:173;;;;;;;;;;-1:-1:-1;3118:173:0;;;;;:::i;:::-;;:::i;14211:180::-;;;;;;;;;;;;;:::i;5839:24::-;;;;;;;;;;-1:-1:-1;5839:24:0;;;;-1:-1:-1;;;;;5839:24:0;;;3003:107;;;;;;;;;;-1:-1:-1;3003:107:0;;;;;:::i;:::-;;:::i;7569:216::-;7673:10;7644:4;7661:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7661:32:0;;;;;;;;;;:41;;;7718:37;7644:4;;7661:32;;7718:37;;;;7696:6;160:25:1;;148:2;133:18;;14:177;7718:37:0;;;;;;;;-1:-1:-1;7773:4:0;7569:216;;;;;:::o;8087:370::-;-1:-1:-1;;;;;8207:19:0;;8187:4;8207:19;;;:11;:19;;;;;;;;8227:10;8207:31;;;;;;;;-1:-1:-1;;8207:52:0;8204:186;;8309:69;;;;;;;;;;;-1:-1:-1;;;8309:69:0;;;;;;;;-1:-1:-1;;;;;8309:19:0;;-1:-1:-1;8309:19:0;;;:11;:19;;;;;8329:10;8309:31;;;;;;;;;;:69;;8345:6;;8309:35;:69::i;:::-;-1:-1:-1;;;;;8275:19:0;;;;;;:11;:19;;;;;;;;8295:10;8275:31;;;;;;;:103;8204:186;8409:40;8423:6;8431:9;8442:6;8409:13;:40::i;:::-;8402:47;;8087:370;;;;;;:::o;7793:122::-;7848:4;7872:35;7880:7;-1:-1:-1;;7872:7:0;:35::i;13221:151::-;2947:4;2982:5;-1:-1:-1;;;;;2982:5:0;2544:10;2971:16;2528:38;;;;-1:-1:-1;;;2528:38:0;;;;;;;:::i;:::-;;;;;;;;;13324:4:::1;13309:12;;:19;;;;:::i;:::-;13299:6;:29;;13291:39;;;::::0;::::1;;13341:14;:23:::0;13221:151::o;13563:120::-;2626:24;2639:10;2626:12;:24::i;:::-;2618:48;;;;-1:-1:-1;;;2618:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13647:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;13647:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13563:120::o;13691:348::-;2626:24;2639:10;2626:12;:24::i;:::-;2618:48;;;;-1:-1:-1;;;2618:48:0;;;;;;;:::i;:::-;13827:12:::1;:28:::0;;;13866:6:::1;:16:::0;;;13893:12:::1;:28:::0;;;13943:45:::1;13908:13:::0;13943:26:::1;13842:13:::0;13875:7;13943:17:::1;:26::i;:::-;:30:::0;::::1;:45::i;:::-;13932:8;:56:::0;13999:14:::1;:32:::0;-1:-1:-1;;;13691:348:0:o;7923:156::-;8003:4;8027:44;8041:10;8053:9;8064:6;8027:13;:44::i;2685:94::-;2947:4;2982:5;-1:-1:-1;;;;;2982:5:0;2544:10;2971:16;2528:38;;;;-1:-1:-1;;;2528:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2745:19:0::1;;::::0;;;2767:4:::1;2745:19;::::0;;;;;;;:26;;-1:-1:-1;;2745:26:0::1;::::0;;::::1;::::0;;2685:94::o;14399:298::-;2626:24;2639:10;2626:12;:24::i;:::-;2618:48;;;;-1:-1:-1;;;2618:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14482:23:0;::::1;14500:4;14482:23;;14474:71;;;::::0;-1:-1:-1;;;14474:71:0;;5978:2:1;14474:71:0::1;::::0;::::1;5960:21:1::0;6017:2;5997:18;;;5990:30;6056:34;6036:18;;;6029:62;-1:-1:-1;;;6107:18:1;;;6100:33;6150:19;;14474:71:0::1;5776:399:1::0;14474:71:0::1;14583:39;::::0;-1:-1:-1;;;14583:39:0;;14616:4:::1;14583:39;::::0;::::1;2305:51:1::0;14556:24:0::1;::::0;-1:-1:-1;;;;;14583:24:0;::::1;::::0;::::1;::::0;2278:18:1;;14583:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14641:20;::::0;14633:56:::1;::::0;14556:66;;-1:-1:-1;;;;;;14641:20:0::1;::::0;14633:56;::::1;;;::::0;14556:66;;14641:20:::1;14633:56:::0;14641:20;14633:56;14556:66;14641:20;14633:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14463:234;14399:298:::0;:::o;14047:156::-;2626:24;2639:10;2626:12;:24::i;:::-;2618:48;;;;-1:-1:-1;;;2618:48:0;;;;;;;:::i;:::-;14139:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;14139:22:0::1;-1:-1:-1::0;;;;14139:22:0;;::::1;::::0;;;::::1;::::0;;;:11:::1;14172:23:::0;14047:156::o;13383:172::-;2947:4;2982:5;-1:-1:-1;;;;;2982:5:0;2544:10;2971:16;2528:38;;;;-1:-1:-1;;;2528:38:0;;;;;;;:::i;:::-;13487:13:::1;5010:1;13487:2;:13;:::i;:::-;13484:17;::::0;:1:::1;:17;:::i;:::-;13474:6;:27;;13466:37;;;::::0;::::1;;13514:23;:32:::0;13383:172::o;2787:97::-;2947:4;2982:5;-1:-1:-1;;;;;2982:5:0;2544:10;2971:16;2528:38;;;;-1:-1:-1;;;2528:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2849:19:0::1;2871:5;2849:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2849:27:0::1;::::0;;2787:97::o;3118:173::-;2947:4;2982:5;-1:-1:-1;;;;;2982:5:0;2544:10;2971:16;2528:38;;;;-1:-1:-1;;;2528:38:0;;;;;;;:::i;:::-;3194:5:::1;:11:::0;;-1:-1:-1;;;;;;3194:11:0::1;-1:-1:-1::0;;;;;3194:11:0;::::1;::::0;;::::1;::::0;;3216:19;;;-1:-1:-1;3216:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3216:26:0::1;::::0;;::::1;::::0;;;3258:25;;2305:51:1;;;3258:25:0::1;::::0;2278:18:1;3258:25:0::1;;;;;;;3118:173:::0;:::o;14211:180::-;2626:24;2639:10;2626:12;:24::i;:::-;2618:48;;;;-1:-1:-1;;;2618:48:0;;;;;;;:::i;:::-;14333:20:::1;::::0;14325:58:::1;::::0;14293:21:::1;::::0;-1:-1:-1;;;;;14333:20:0::1;::::0;14325:58;::::1;;;::::0;14293:21;;14264:26:::1;14325:58:::0;14264:26;14325:58;14293:21;14333:20;14325:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14253:138;14211:180::o:0;3003:107::-;-1:-1:-1;;;;;3083:19:0;3059:4;3083:19;;;:14;:19;;;;;;;;;3003:107::o;412:192::-;498:7;534:12;526:6;;;;518:29;;;;-1:-1:-1;;;518:29:0;;;;;;;;:::i;:::-;-1:-1:-1;558:9:0;570:5;574:1;570;:5;:::i;:::-;558:17;412:192;-1:-1:-1;;;;;412:192:0:o;8465:1392::-;8577:6;;8557:4;;8577:6;;8574:63;;;8593:41;8608:6;8616:9;8627:6;8593:14;:41::i;:::-;8586:48;;;;8574:63;8670:4;;-1:-1:-1;;;;;8657:17:0;;;8670:4;;8657:17;8653:173;;-1:-1:-1;;;;;8699:22:0;;;;;;:11;:22;;;;;;;;;:73;;-1:-1:-1;8758:14:0;;-1:-1:-1;;;;;8725:20:0;;;;;;:9;:20;;;;;;:29;;8748:6;;8725:29;:::i;:::-;:47;;8699:73;8691:123;;;;-1:-1:-1;;;8691:123:0;;8606:2:1;8691:123:0;;;8588:21:1;8645:2;8625:18;;;8618:30;8684:34;8664:18;;;8657:62;-1:-1:-1;;;8735:18:1;;;8728:35;8780:19;;8691:123:0;8404:401:1;8691:123:0;8904:4;;8863:6;;-1:-1:-1;;;;;8894:14:0;;;8904:4;;8894:14;8891:660;;;-1:-1:-1;;;;;8935:22:0;;;;;;:11;:22;;;;;;;;8931:178;;-1:-1:-1;;;;;8986:21:0;;;;;;:10;:21;;;;;;;;8978:45;;;;-1:-1:-1;;;8978:45:0;;9012:2:1;8978:45:0;;;8994:21:1;9051:2;9031:18;;;9024:30;-1:-1:-1;;;9070:18:1;;;9063:42;9122:18;;8978:45:0;8810:336:1;8978:45:0;9059:34;9076:9;9086:6;9059:16;:34::i;:::-;9042:51;;8931:178;8891:660;;;9144:4;;-1:-1:-1;;;;;9131:17:0;;;9144:4;;9131:17;9128:423;;;-1:-1:-1;;;;;10940:19:0;;10915:4;10940:19;;;:11;:19;;;;;;;;9172:101;;9234:23;9242:6;9250;9234:7;:23::i;9128:423::-;-1:-1:-1;;;;;9297:21:0;;;;;;:10;:21;;;;;;;;9294:257;;9355:23;;9345:6;:33;9342:198;;-1:-1:-1;;;;;9399:21:0;;;;;;;:10;:21;;;;;;;;:28;;-1:-1:-1;;9399:28:0;9423:4;9399:28;;;9446:8;:19;;;;;;:28;;;;;-1:-1:-1;;;;;;9446:28:0;;;;;;;9498:26;;;9399:21;9498:26;9342:198;9575:16;:14;:16::i;:::-;9572:35;;;9594:10;:8;:10::i;:::-;9639:53;;;;;;;;;;;-1:-1:-1;;;9639:53:0;;;;;;;;-1:-1:-1;;;;;9639:17:0;;-1:-1:-1;9639:17:0;;;:9;:17;;;;;;;;:53;;9661:6;;9639:21;:53::i;:::-;-1:-1:-1;;;;;9619:17:0;;;;;;;:9;:17;;;;;;:73;;;;9726:20;;;;;;;:40;;9751:14;9726:24;:40::i;:::-;-1:-1:-1;;;;;9703:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9784:43;;;;;;;;;;9812:14;160:25:1;;148:2;133:18;;14:177;9784:43:0;;;;;;;;-1:-1:-1;9845:4:0;;8465:1392;-1:-1:-1;;;;8465:1392:0:o;83:181::-;141:7;;173:5;177:1;173;:5;:::i;:::-;161:17;;202:1;197;:6;;189:46;;;;-1:-1:-1;;;189:46:0;;9353:2:1;189:46:0;;;9335:21:1;9392:2;9372:18;;;9365:30;9431:29;9411:18;;;9404:57;9478:18;;189:46:0;9151:351:1;9869:330:0;9999:53;;;;;;;;;;;-1:-1:-1;;;9999:53:0;;;;;;;;-1:-1:-1;;;;;9999:17:0;;9962:4;9999:17;;;:9;:17;;;;;;;:53;;10021:6;;9999:21;:53::i;:::-;-1:-1:-1;;;;;9979:17:0;;;;;;;:9;:17;;;;;;:73;;;;10086:20;;;;;;;:32;;10111:6;10086:24;:32::i;:::-;-1:-1:-1;;;;;10063:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10134:35;;;;;;;;;;10162:6;160:25:1;;148:2;133:18;;14:177;10134:35:0;;;;;;;;-1:-1:-1;10187:4:0;9869:330;;;;;:::o;10207:634::-;10279:4;10296:22;10344:14;;10335:6;10321:11;;:20;;;;:::i;:::-;:37;;;;:::i;:::-;10400:26;;-1:-1:-1;;;;;10382:14:0;;;10372:25;10382:14;;;:8;:14;;;;;;;;;;;;10372:25;;:9;:25;;;;10296:62;;-1:-1:-1;;10369:422:0;;;-1:-1:-1;;;;;10481:14:0;;;10471:25;10481:14;;;:8;:14;;;;;;;;;;;;10471:25;;:9;:25;;;;:45;;10501:14;10471:29;:45::i;:::-;-1:-1:-1;;;;;10453:14:0;;;10443:25;10453:14;;;:8;:14;;;;;;;;;;;;10443:25;;:9;:25;;;;;:73;;;;10550:14;;;;;;;;;10536:49;;160:25:1;;;10453:14:0;;10550;;;10536:49;;133:18:1;10536:49:0;;;;;;;10369:422;;;10663:20;;-1:-1:-1;;;;;10663:20:0;10653:31;;;;:9;:31;;;;;;:51;;10689:14;10653:35;:51::i;:::-;10629:20;;;-1:-1:-1;;;;;10629:20:0;;;10619:31;;;;:9;:31;;;;;;;:85;;;;10738:20;;10724:55;;;;;;10738:20;;;;10724:55;;;;10764:14;160:25:1;;148:2;133:18;;14:177;10724:55:0;;;;;;;;10369:422;10810:23;10819:14;10810:6;:23;:::i;:::-;10803:30;10207:634;-1:-1:-1;;;;10207:634:0:o;10975:333::-;11042:7;11062:17;11082:40;11107:14;;11082:20;11093:8;;11082:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;11180:4;11162:24;;;;:9;:24;;;;;;11062:60;;-1:-1:-1;11162:39:0;;11062:60;11162:28;:39::i;:::-;11153:4;11135:24;;;;:9;:24;;;;;;;:66;;;;11217:42;;-1:-1:-1;;;;;11217:42:0;;;;;;;11249:9;160:25:1;;148:2;133:18;;14:177;11217:42:0;;;;;;;;11279:21;:6;11290:9;11279:10;:21::i;11316:197::-;11403:4;;11365;;-1:-1:-1;;;;;11403:4:0;11389:10;:18;;;;:38;;-1:-1:-1;11421:6:0;;;;11420:7;11389:38;:62;;;;-1:-1:-1;11440:11:0;;-1:-1:-1;;;11440:11:0;;;;11389:62;:116;;;;-1:-1:-1;11492:13:0;;11482:4;11464:24;;;;:9;:24;;;;;;:41;;11389:116;11382:123;;11316:197;:::o;11521:1232::-;6046:6;:13;;-1:-1:-1;;6046:13:0;6055:4;6046:13;;;11619:4:::1;-1:-1:-1::0;7401:18:0;;;:9;:18;;;;;;11570:55:::1;;11636:23;11662:59;11719:1;11662:52;11705:8;;11662:38;11687:12;;11662:20;:24;;:38;;;;:::i;:59::-;11636:85:::0;-1:-1:-1;11732:20:0::1;11755:41;:20:::0;11636:85;11755:24:::1;:41::i;:::-;11833:16;::::0;;11847:1:::1;11833:16:::0;;;;;::::1;::::0;;11732:64;;-1:-1:-1;11809:21:0::1;::::0;11833:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11833:16:0::1;11809:40;;11878:4;11860;11865:1;11860:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11860:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11904:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11904:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11860:7;;11904:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11894:4;11899:1;11894:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11894:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11988:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;11988:188:0;;11954:21:::1;::::0;11988:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12060:12;;11930:21:::1;::::0;12103:4;;12130::::1;::::0;12150:15:::1;::::0;11988:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12187:17;12207:40;12233:13;12207:21;:25;;:40;;;;:::i;:::-;12187:60;;12258:19;12280:33;12293:19;12310:1;12293:12;;:16;;:19;;;;:::i;:::-;12280:8;::::0;;:12:::1;:33::i;:::-;12258:55;;12324:26;12353:51;12402:1;12353:44;12385:11;12353:27;12367:12;;12353:9;:13;;:27;;;;:::i;:51::-;12324:80:::0;-1:-1:-1;12415:26:0::1;12444:30;12324:80:::0;12444:9;:30:::1;:::i;:::-;12546:20;::::0;12538:77:::1;::::0;12415:59;;-1:-1:-1;12488:21:0::1;::::0;-1:-1:-1;;;;;12546:20:0;;::::1;::::0;12605:5:::1;::::0;12415:59;;12488:21;12538:77;12488:21;12538:77;12415:59;12546:20;12605:5;12538:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12487:128;;;12634:16;12626:59;;;::::0;-1:-1:-1;;;12626:59:0;;11424:2:1;12626:59:0::1;::::0;::::1;11406:21:1::0;11463:2;11443:18;;;11436:30;11502:32;11482:18;;;11475:60;11552:18;;12626:59:0::1;11222:354:1::0;12626:59:0::1;12696:49;12709:15;12726:18;12696:12;:49::i;:::-;-1:-1:-1::0;;6064:6:0;:14;;-1:-1:-1;;6064:14:0;;;-1:-1:-1;;;;;;;;11521:1232:0:o;610:250::-;668:7;692:6;688:47;;-1:-1:-1;722:1:0;715:8;;688:47;747:9;759:5;763:1;759;:5;:::i;:::-;747:17;-1:-1:-1;792:1:0;783:5;787:1;747:17;783:5;:::i;:::-;:10;775:56;;;;-1:-1:-1;;;775:56:0;;11783:2:1;775:56:0;;;11765:21:1;11822:2;11802:18;;;11795:30;11861:34;11841:18;;;11834:62;-1:-1:-1;;;11912:18:1;;;11905:31;11953:19;;775:56:0;11581:397:1;866:132:0;924:7;951:39;955:1;958;951:39;;;;;;;;;;;;;;;;;:3;:39::i;270:136::-;328:7;355:43;359:1;362;355:43;;;;;;;;;;;;;;;;;:3;:43::i;12761:452::-;12845:15;;12842:364;;12880:6;;:251;;-1:-1:-1;;;12880:251:0;;12951:4;12880:251;;;12324:34:1;;;12374:18;;;12367:34;;;12880:6:0;12417:18:1;;;12410:34;;;12460:18;;;12453:34;12503:19;;;12496:44;13097:15:0;12556:19:1;;;12549:35;-1:-1:-1;;;;;12880:6:0;;;;:22;;12910:9;;12258:19:1;;12880:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13155:35:0;;;13080:25:1;;;13136:2;13121:18;;13114:34;;;13155:35:0;;-1:-1:-1;13053:18:1;13155:35:0;;;;;;;12761:452;;:::o;1004:345::-;1090:7;1192:12;1185:5;1177:28;;;;-1:-1:-1;;;1177:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1216:9:0;1228:5;1232:1;1228;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;853:70;798:131;:::o;934:315::-;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934: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;1907:247::-;1966:6;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2074:9;2061:23;2093:31;2118:5;2093:31;:::i;2556:180::-;2615:6;2668:2;2656:9;2647:7;2643:23;2639:32;2636:52;;;2684:1;2681;2674:12;2636:52;-1:-1:-1;2707:23:1;;2556:180;-1:-1:-1;2556:180:1:o;2741:160::-;2806:20;;2862:13;;2855:21;2845:32;;2835:60;;2891:1;2888;2881:12;2835:60;2741:160;;;:::o;2906:315::-;2971:6;2979;3032:2;3020:9;3011:7;3007:23;3003:32;3000:52;;;3048:1;3045;3038:12;3000:52;3087:9;3074:23;3106:31;3131:5;3106:31;:::i;:::-;3156:5;-1:-1:-1;3180:35:1;3211:2;3196:18;;3180:35;:::i;:::-;3170:45;;2906:315;;;;;:::o;3226:385::-;3312:6;3320;3328;3336;3389:3;3377:9;3368:7;3364:23;3360:33;3357:53;;;3406:1;3403;3396:12;3357:53;-1:-1:-1;;3429:23:1;;;3499:2;3484:18;;3471:32;;-1:-1:-1;3550:2:1;3535:18;;3522:32;;3601:2;3586:18;3573:32;;-1:-1:-1;3226:385:1;-1:-1:-1;3226:385:1:o;3616:388::-;3684:6;3692;3745:2;3733:9;3724:7;3720:23;3716:32;3713:52;;;3761:1;3758;3751:12;3713:52;3800:9;3787:23;3819:31;3844:5;3819:31;:::i;:::-;3869:5;-1:-1:-1;3926:2:1;3911:18;;3898:32;3939:33;3898:32;3939:33;:::i;:::-;3991:7;3981:17;;;3616:388;;;;;:::o;4009:248::-;4074:6;4082;4135:2;4123:9;4114:7;4110:23;4106:32;4103:52;;;4151:1;4148;4141:12;4103:52;4174:26;4190:9;4174:26;:::i;4748:329::-;4950:2;4932:21;;;4989:1;4969:18;;;4962:29;-1:-1:-1;;;5022:2:1;5007:18;;5000:36;5068:2;5053:18;;4748:329::o;5082:127::-;5143:10;5138:3;5134:20;5131:1;5124:31;5174:4;5171:1;5164:15;5198:4;5195:1;5188:15;5214:217;5254:1;5280;5270:132;;5324:10;5319:3;5315:20;5312:1;5305:31;5359:4;5356:1;5349:15;5387:4;5384:1;5377:15;5270:132;-1:-1:-1;5416:9:1;;5214:217::o;5436:335::-;5638:2;5620:21;;;5677:2;5657:18;;;5650:30;-1:-1:-1;;;5711:2:1;5696:18;;5689:41;5762:2;5747:18;;5436:335::o;6180:184::-;6250:6;6303:2;6291:9;6282:7;6278:23;6274:32;6271:52;;;6319:1;6316;6309:12;6271:52;-1:-1:-1;6342:16:1;;6180:184;-1:-1:-1;6180:184:1:o;6369:422::-;6458:1;6501:5;6458:1;6515:270;6536:7;6526:8;6523:21;6515:270;;;6595:4;6591:1;6587:6;6583:17;6577:4;6574:27;6571:53;;;6604:18;;:::i;:::-;6654:7;6644:8;6640:22;6637:55;;;6674:16;;;;6637:55;6753:22;;;;6713:15;;;;6515:270;;;6519:3;6369:422;;;;;:::o;6796:806::-;6845:5;6875:8;6865:80;;-1:-1:-1;6916:1:1;6930:5;;6865:80;6964:4;6954:76;;-1:-1:-1;7001:1:1;7015:5;;6954:76;7046:4;7064:1;7059:59;;;;7132:1;7127:130;;;;7039:218;;7059:59;7089:1;7080:10;;7103:5;;;7127:130;7164:3;7154:8;7151:17;7148:43;;;7171:18;;:::i;:::-;-1:-1:-1;;7227:1:1;7213:16;;7242:5;;7039:218;;7341:2;7331:8;7328:16;7322:3;7316:4;7313:13;7309:36;7303:2;7293:8;7290:16;7285:2;7279:4;7276:12;7272:35;7269:77;7266:159;;;-1:-1:-1;7378:19:1;;;7410:5;;7266:159;7457:34;7482:8;7476:4;7457:34;:::i;:::-;7527:6;7523:1;7519:6;7515:19;7506:7;7503:32;7500:58;;;7538:18;;:::i;:::-;7576:20;;6796:806;-1:-1:-1;;;6796:806:1:o;7607:140::-;7665:5;7694:47;7735:4;7725:8;7721:19;7715:4;7694:47;:::i;7752:168::-;7792:7;7858:1;7854;7850:6;7846:14;7843:1;7840:21;7835:1;7828:9;7821:17;7817:45;7814:71;;;7865:18;;:::i;:::-;-1:-1:-1;7905:9:1;;7752:168::o;8141:125::-;8181:4;8209:1;8206;8203:8;8200:34;;;8214:18;;:::i;:::-;-1:-1:-1;8251:9:1;;8141:125::o;8271:128::-;8311:3;8342:1;8338:6;8335:1;8332:13;8329:39;;;8348:18;;:::i;:::-;-1:-1:-1;8384:9:1;;8271:128::o;9639:127::-;9700:10;9695:3;9691:20;9688:1;9681:31;9731:4;9728:1;9721:15;9755:4;9752:1;9745:15;9771:251;9841:6;9894:2;9882:9;9873:7;9869:23;9865:32;9862:52;;;9910:1;9907;9900:12;9862:52;9942:9;9936:16;9961:31;9986:5;9961:31;:::i;10027:980::-;10289:4;10337:3;10326:9;10322:19;10368:6;10357:9;10350:25;10394:2;10432:6;10427:2;10416:9;10412:18;10405:34;10475:3;10470:2;10459:9;10455:18;10448:31;10499:6;10534;10528:13;10565:6;10557;10550:22;10603:3;10592:9;10588:19;10581:26;;10642:2;10634:6;10630:15;10616:29;;10663:1;10673:195;10687:6;10684:1;10681:13;10673:195;;;10752:13;;-1:-1:-1;;;;;10748:39:1;10736:52;;10843:15;;;;10808:12;;;;10784:1;10702:9;10673:195;;;-1:-1:-1;;;;;;;10924:32:1;;;;10919:2;10904:18;;10897:60;-1:-1:-1;;;10988:3:1;10973:19;10966:35;10885:3;10027:980;-1:-1:-1;;;10027:980:1:o;12595:306::-;12683:6;12691;12699;12752:2;12740:9;12731:7;12727:23;12723:32;12720:52;;;12768:1;12765;12758:12;12720:52;12797:9;12791:16;12781:26;;12847:2;12836:9;12832:18;12826:25;12816:35;;12891:2;12880:9;12876:18;12870:25;12860:35;;12595:306;;;;;:::o

Swarm Source

ipfs://288c925d37ec5b2a94da198d9c7d8cef29b5d9c743dc5b4f1aac7fdd11f64155

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.