ETH Price: $2,434.42 (+1.00%)

Contract

0xD0ce42a6FBC497E6Bb83253738A51697C3030c4E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205917172024-08-23 13:52:4743 days ago1724421167IN
0xD0ce42a6...7C3030c4E
0 ETH0.000120942.61962218
Approve195869642024-04-05 3:48:35184 days ago1712288915IN
0xD0ce42a6...7C3030c4E
0 ETH0.0006800114.64878017
Approve195420432024-03-29 20:31:11190 days ago1711744271IN
0xD0ce42a6...7C3030c4E
0 ETH0.0016486535.51537713
Approve195420212024-03-29 20:26:47190 days ago1711744007IN
0xD0ce42a6...7C3030c4E
0 ETH0.0015470733.32702197
Approve195420202024-03-29 20:26:35190 days ago1711743995IN
0xD0ce42a6...7C3030c4E
0 ETH0.0013903729.95137682
Approve195419732024-03-29 20:17:11190 days ago1711743431IN
0xD0ce42a6...7C3030c4E
0 ETH0.0022670848.77439232
Approve195419692024-03-29 20:16:23190 days ago1711743383IN
0xD0ce42a6...7C3030c4E
0 ETH0.0013288728.82032731
Approve195419652024-03-29 20:15:35190 days ago1711743335IN
0xD0ce42a6...7C3030c4E
0 ETH0.0014390731.00059811
Transfer195419622024-03-29 20:14:59190 days ago1711743299IN
0xD0ce42a6...7C3030c4E
0 ETH0.0017922329.82182413
Renounce Ownersh...195419502024-03-29 20:12:35190 days ago1711743155IN
0xD0ce42a6...7C3030c4E
0 ETH0.0006968730.66956695
Approve195419502024-03-29 20:12:35190 days ago1711743155IN
0xD0ce42a6...7C3030c4E
0 ETH0.0017113836.81902887
Set Tax Swaps195419482024-03-29 20:12:11190 days ago1711743131IN
0xD0ce42a6...7C3030c4E
0 ETH0.0011017330.93813719
Approve195419442024-03-29 20:11:23190 days ago1711743083IN
0xD0ce42a6...7C3030c4E
0 ETH0.0017633937.93805248
Approve195419402024-03-29 20:10:35190 days ago1711743035IN
0xD0ce42a6...7C3030c4E
0 ETH0.0020091943.22609238
Approve195419402024-03-29 20:10:35190 days ago1711743035IN
0xD0ce42a6...7C3030c4E
0 ETH0.0020091943.22609238
Approve195419312024-03-29 20:08:47190 days ago1711742927IN
0xD0ce42a6...7C3030c4E
0 ETH0.0017528237.75932106
Approve195419292024-03-29 20:08:23190 days ago1711742903IN
0xD0ce42a6...7C3030c4E
0 ETH0.0016592335.69713191
Approve195419282024-03-29 20:08:11190 days ago1711742891IN
0xD0ce42a6...7C3030c4E
0 ETH0.0016955236.4778156
Approve195419252024-03-29 20:07:35190 days ago1711742855IN
0xD0ce42a6...7C3030c4E
0 ETH0.001638935.30525954
Set Tax Swaps195419232024-03-29 20:07:11190 days ago1711742831IN
0xD0ce42a6...7C3030c4E
0 ETH0.0011791333.11144998
Approve195419212024-03-29 20:06:47190 days ago1711742807IN
0xD0ce42a6...7C3030c4E
0 ETH0.0018965940.80376793
Approve195419212024-03-29 20:06:47190 days ago1711742807IN
0xD0ce42a6...7C3030c4E
0 ETH0.0018965940.80376793
Approve195419202024-03-29 20:06:35190 days ago1711742795IN
0xD0ce42a6...7C3030c4E
0 ETH0.0016471835.43782119
Approve195419182024-03-29 20:06:11190 days ago1711742771IN
0xD0ce42a6...7C3030c4E
0 ETH0.0014675431.82783743
Approve195419182024-03-29 20:06:11190 days ago1711742771IN
0xD0ce42a6...7C3030c4E
0 ETH0.0024541252.79853987
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
195420472024-03-29 20:31:59190 days ago1711744319
0xD0ce42a6...7C3030c4E
0.01221571 ETH
195420472024-03-29 20:31:59190 days ago1711744319
0xD0ce42a6...7C3030c4E
0.01221571 ETH
195420252024-03-29 20:27:35190 days ago1711744055
0xD0ce42a6...7C3030c4E
0.01488946 ETH
195420252024-03-29 20:27:35190 days ago1711744055
0xD0ce42a6...7C3030c4E
0.01488946 ETH
195420222024-03-29 20:26:59190 days ago1711744019
0xD0ce42a6...7C3030c4E
0.01488946 ETH
195420222024-03-29 20:26:59190 days ago1711744019
0xD0ce42a6...7C3030c4E
0.01488946 ETH
195419852024-03-29 20:19:35190 days ago1711743575
0xD0ce42a6...7C3030c4E
0.01863516 ETH
195419852024-03-29 20:19:35190 days ago1711743575
0xD0ce42a6...7C3030c4E
0.01863516 ETH
195419702024-03-29 20:16:35190 days ago1711743395
0xD0ce42a6...7C3030c4E
0.01545443 ETH
195419702024-03-29 20:16:35190 days ago1711743395
0xD0ce42a6...7C3030c4E
0.01545443 ETH
195419662024-03-29 20:15:47190 days ago1711743347
0xD0ce42a6...7C3030c4E
0.01843653 ETH
195419662024-03-29 20:15:47190 days ago1711743347
0xD0ce42a6...7C3030c4E
0.01843653 ETH
195419632024-03-29 20:15:11190 days ago1711743311
0xD0ce42a6...7C3030c4E
0.03284339 ETH
195419632024-03-29 20:15:11190 days ago1711743311
0xD0ce42a6...7C3030c4E
0.03284339 ETH
195419622024-03-29 20:14:59190 days ago1711743299
0xD0ce42a6...7C3030c4E
0.03781537 ETH
195419622024-03-29 20:14:59190 days ago1711743299
0xD0ce42a6...7C3030c4E
0.03781537 ETH
195419302024-03-29 20:08:35190 days ago1711742915
0xD0ce42a6...7C3030c4E
0.08935636 ETH
195419302024-03-29 20:08:35190 days ago1711742915
0xD0ce42a6...7C3030c4E
0.08935636 ETH
195419292024-03-29 20:08:23190 days ago1711742903
0xD0ce42a6...7C3030c4E
0.07184417 ETH
195419292024-03-29 20:08:23190 days ago1711742903
0xD0ce42a6...7C3030c4E
0.07184417 ETH
195419282024-03-29 20:08:11190 days ago1711742891
0xD0ce42a6...7C3030c4E
0.0854768 ETH
195419282024-03-29 20:08:11190 days ago1711742891
0xD0ce42a6...7C3030c4E
0.0854768 ETH
195419272024-03-29 20:07:59190 days ago1711742879
0xD0ce42a6...7C3030c4E
0.10478905 ETH
195419272024-03-29 20:07:59190 days ago1711742879
0xD0ce42a6...7C3030c4E
0.10478905 ETH
195419262024-03-29 20:07:47190 days ago1711742867
0xD0ce42a6...7C3030c4E
0.10291997 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VAI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-28
*/

//SPDX-License-Identifier: MIT

/*
 VIP AI - YOUR PERSONAL CRYPTO ASSISTANT - LAUNCHING FRIDAY 8PM UTC
 https://t.me/VipAiEth
 https://VipAiEth.Com
 https://X.Com/VipAIEth
 */

pragma solidity ^0.8.21;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address holder, 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);
}

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

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); 
        _; 
    }
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    function owner() public view returns (address) { return _owner; }
    function transferOwnership(address payable _newOwner) external onlyOwner { 
        _owner = _newOwner; 
        emit OwnershipTransferred(_newOwner); }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0);
        emit OwnershipTransferred(address(0)); }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

contract VAI is IERC20, Auth {
    string private constant _symbol = "VAI";
    string private constant _name = "VIP AI";
    uint8 private constant tknDecimals = 9;
    uint256 private constant _supply = 1000000 * (10**tknDecimals);
    mapping (address => uint256) private balance;
    mapping (address => mapping (address => uint256)) private _allowance;

    address private constant swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private uniswap_router = IUniswapV2Router02(swapRouterAddress);
    
    address private _lp; 
    mapping (address => bool) private _isLP;

    bool private tradingEnabled;

    bool private isSwapping = false;

    address payable private taxWallet = payable(0x705074AeDa495E5ebA5047129125353E0d4dE4De);
    
    uint256 private MEVBlock = 2;
    uint8 private sellTax_ = 3;
    uint8 private _buyFeeRate = 3;
    
    uint256 private launchblock;
    uint256 private _maxTxVal = _supply; 
    uint256 private _maxWalletAmount = _supply;
    uint256 private swapMinAmount = _supply * 10 / 100000;
    uint256 private _swapMaxAmt = _supply * 99 / 100000;
    uint256 private _swapTrigger = 2 * (10**16);
    uint256 private tokens_ = swapMinAmount * 60 * 100;

    mapping (uint256 => mapping (address => uint8)) private _sellsInBlock;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private _noLimit;

    modifier swapLocked { 
        isSwapping = true; 
        _; 
        isSwapping = false; 
    }

    constructor() Auth(msg.sender) {
        balance[msg.sender] = _supply;
        emit Transfer(address(0), msg.sender, balance[msg.sender]);  

        _noFee[_owner] = true;
        _noFee[address(this)] = true;
        _noFee[taxWallet] = true;
        _noFee[swapRouterAddress] = true;
        _noLimit[_owner] = true;
        _noLimit[address(this)] = true;
        _noLimit[taxWallet] = true;
        _noLimit[swapRouterAddress] = true;
    }

    receive() external payable {}

    function decimals() external pure override returns (uint8) { return tknDecimals; }
    function totalSupply() external pure override returns (uint256) { return _supply; }
    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function balanceOf(address account) public view override returns (uint256) { return balance[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowance[holder][spender]; }

    function transfer(address toWallet, uint256 amount) external override returns (bool) {
        require(_isTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, toWallet, amount); 
	}

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

    function transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(_isTradingOpen(fromWallet), "Trading not open");
        _allowance[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount); 
	}

    function _testLimit(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingEnabled && !_noLimit[fromWallet] && !_noLimit[toWallet] ) {
            if ( transferAmount > _maxTxVal ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (balance[toWallet] + transferAmount > _maxWalletAmount) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function updateLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = _supply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxVal, "tx too low");
        _maxTxVal = newTxAmt;
        uint256 newWalletAmt = _supply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

    function addLiquidity() external payable onlyOwner swapLocked {
        require(_lp == address(0), "LP created");
        require(!tradingEnabled, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH");
        require(balance[address(this)]>0, "No tokens");
        _lp = IUniswapV2Factory(uniswap_router.factory()).createPair(address(this), uniswap_router.WETH());
        addLiquidityToLP(balance[address(this)], address(this).balance);
    }

    function buyFees() external view returns(uint8) { return _buyFeeRate; }
    function sellTax() external view returns(uint8) { return sellTax_; }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowance[address(this)][swapRouterAddress] < _tokenAmount ) {
            _allowance[address(this)][swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), swapRouterAddress, type(uint256).max);
        }
    }

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv, uint32 trigger) external onlyOwner {
        swapMinAmount = _supply * minVal / minDiv;
        _swapMaxAmt = _supply * maxVal / maxDiv;
        _swapTrigger = trigger * 10**15;
        require(_swapMaxAmt>=swapMinAmount, "Min-Max error");
    }

    function addExemptions(address wlt, bool isNoFees, bool isNoLimits) external onlyOwner {
        if (isNoLimits || isNoFees) { require(!_isLP[wlt], "Cannot exempt LP"); }
        _noFee[ wlt ] = isNoFees;
        _noLimit[ wlt ] = isNoLimits;
    }

    function swapTax() private swapLocked {
        uint256 _taxTokenAvailable = tokens_;
        if ( _taxTokenAvailable >= swapMinAmount && tradingEnabled ) {
            if ( _taxTokenAvailable >= _swapMaxAmt ) { _taxTokenAvailable = _swapMaxAmt; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**tknDecimals ) {
                balance[address(this)] += _taxTokenAvailable;
                _swapTokensForETH(_tokensForSwap);
                tokens_ -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { distributeEth(_contractETHBalance); }
        }
    }

    function distributeEth(uint256 amount) private {
        taxWallet.transfer(amount);
    }

    function _isTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( tradingEnabled ) { checkResult = true; } 
        else if (_noFee[fromWallet] && _noLimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function getTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( !tradingEnabled || _noFee[fromWallet] || _noFee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _buyFeeRate / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * sellTax_ / 100; 
        }
        return taxAmount;
    }

    function _openTrading() internal {
        _maxTxVal = 20 * _supply / 1000;
        _maxWalletAmount = 20 * _supply / 1000;
        balance[_lp] -= tokens_;
        (_isLP[_lp],) = _lp.call(abi.encodeWithSignature("sync()") );
        require(_isLP[_lp], "Failed bootstrap");
        launchblock = block.number;
        MEVBlock = MEVBlock + launchblock;
        tradingEnabled = true;
    }

    function exemptions(address wallet) external view returns (bool fees, bool limits) {
        return (_noFee[wallet], _noLimit[wallet]); 
	}

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

    function addLiquidityToLP(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        uniswap_router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function maxWalletAmount() external view returns (uint256) { 
        return _maxWalletAmount; 
	}
    function maxTxAmount() external view returns (uint256) { 
        return _maxTxVal; 
	}

    function _swapEligible(uint256 tokenAmt) private view returns (bool) {
        bool result;
        if (_swapTrigger > 0) { 
            uint256 lpTkn = balance[_lp];
            uint256 lpWeth = IERC20(uniswap_router.WETH()).balanceOf(_lp); 
            uint256 weiValue = (tokenAmt * lpWeth) / lpTkn;
            if (weiValue >= _swapTrigger) { result = true; }    
        } else { result = true; }
        return result;
    }

    function setMarketing(address marketingWlt) external onlyOwner {
        require(!_isLP[marketingWlt], "LP cannot be tax wallet");
        taxWallet = payable(marketingWlt);
        _noFee[marketingWlt] = true;
        _noLimit[marketingWlt] = true;
    }

    function marketingWallet() external view returns (address) { 
        return taxWallet; 
	}

    function updateFee(uint8 buyFeePercent, uint8 sellFeePercent) external onlyOwner {
        require(buyFeePercent + sellFeePercent <= 6, "Roundtrip too high");
        _buyFeeRate = buyFeePercent;
        sellTax_ = sellFeePercent;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "trading open");
        _openTrading();
    }

    function swapMin() external view returns (uint256) { 
        return swapMinAmount; 
	}
    function swapMax() external view returns (uint256) { 
        return _swapMaxAmt; 
	}

    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!tradingEnabled) { require(_noFee[sender] && _noLimit[sender], "Trading not yet open"); }
        if ( !isSwapping && _isLP[toWallet] && _swapEligible(amount) ) { swapTax(); }

        if ( block.number >= launchblock ) {
            if (block.number < MEVBlock && _isLP[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < MEVBlock + 600 && _isLP[toWallet] && sender != address(this) ) {
                _sellsInBlock[block.number][toWallet] += 1;
                require(_sellsInBlock[block.number][toWallet] <= 2, "MEV block");
            }
        }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_testLimit(sender, toWallet, amount), "TX over limits"); 
        }

        uint256 _taxAmount = getTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        balance[sender] -= amount;
        tokens_ += _taxAmount;
        balance[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"isNoFees","type":"bool"},{"internalType":"bool","name":"isNoLimits","type":"bool"}],"name":"addExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptions","outputs":[{"internalType":"bool","name":"fees","type":"bool"},{"internalType":"bool","name":"limits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"setMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"minDiv","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"},{"internalType":"uint32","name":"maxDiv","type":"uint32"},{"internalType":"uint32","name":"trigger","type":"uint32"}],"name":"setTaxSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","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":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFeePercent","type":"uint8"},{"internalType":"uint8","name":"sellFeePercent","type":"uint8"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260038054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031990911617905560068054610100600160b01b03191675705074aeda495e5eba5047129125353e0d4de4de000017905560026007556008805461ffff19166103031790556100756009600a6103a3565b61008290620f42406103b8565b600a556009600a61009391906103a3565b6100a090620f42406103b8565b600b55620186a06100b36009600a6103a3565b6100c090620f42406103b8565b6100cb90600a6103b8565b6100d591906103cf565b600c55620186a06100e86009600a6103a3565b6100f590620f42406103b8565b6101009060636103b8565b61010a91906103cf565b600d5566470de4df820000600e55600c5461012690603c6103b8565b6101319060646103b8565b600f5534801561013f575f80fd5b505f80546001600160a01b0319163317905561015d6009600a6103a3565b61016a90620f42406103b8565b335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b0390811682526011602090815260408084208054600160ff1991821681179092553080875283872080548316841790556006805462010000908190048816895285892080548516861790557fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d680548516861790558854881689526012909652848820805484168517905590875283872080548316841790555493909304909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527f3c6737805ae477fd0cfdda13dc5f99b32fcbfecb81e47f9e11e1b03813c08ec280549092161790556103ee565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102fb57815f19048211156102e1576102e16102ad565b808516156102ee57918102915b93841c93908002906102c6565b509250929050565b5f826103115750600161039d565b8161031d57505f61039d565b8160018114610333576002811461033d57610359565b600191505061039d565b60ff84111561034e5761034e6102ad565b50506001821b61039d565b5060208310610133831016604e8410600b841016171561037c575081810a61039d565b61038683836102c1565b805f1904821115610399576103996102ad565b0290505b92915050565b5f6103b160ff841683610303565b9392505050565b808202811582820484141761039d5761039d6102ad565b5f826103e957634e487b7160e01b5f52601260045260245ffd5b500490565b6121b4806103fb5f395ff3fe608060405260043610610198575f3560e01c80638da5cb5b116100e7578063cc1776d311610087578063e4748b9e11610062578063e4748b9e146104f5578063e537a83414610511578063e8078d9414610530578063f2fde38b14610538575f80fd5b8063cc1776d31461047b578063d8e3d09914610492578063dd62ed3e146104b1575f80fd5b8063a5e992bb116100c2578063a5e992bb14610420578063a9059cbb14610434578063aa4bde2814610453578063b3de9b5d14610467575f80fd5b80638da5cb5b146103ba578063950c6c39146103d657806395d89b41146103f5575f80fd5b8063313ce5671161015257806375f0a8741161012d57806375f0a8741461033c5780638a8c523c146103735780638b0414d5146103875780638c0b5e22146103a6575f80fd5b8063313ce567146102d357806370a08231146102f4578063715018a614610328575f80fd5b806306fdde03146101a3578063095ea7b3146101e357806318160ddd1461021257806323b872dd1461023457806328bac04c1461025357806330449efd14610274575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600681526556495020414960d01b60208201525b6040516101da9190611c66565b60405180910390f35b3480156101ee575f80fd5b506102026101fd366004611caf565b610557565b60405190151581526020016101da565b34801561021d575f80fd5b506102266105c3565b6040519081526020016101da565b34801561023f575f80fd5b5061020261024e366004611cd9565b6105e2565b34801561025e575f80fd5b5061027261026d366004611d2d565b61067b565b005b34801561027f575f80fd5b506102bc61028e366004611d5e565b6001600160a01b03165f9081526011602090815260408083205460129092529091205460ff91821692911690565b6040805192151583529015156020830152016101da565b3480156102de575f80fd5b5060095b60405160ff90911681526020016101da565b3480156102ff575f80fd5b5061022661030e366004611d5e565b6001600160a01b03165f9081526001602052604090205490565b348015610333575f80fd5b506102726107bd565b348015610347575f80fd5b506006546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101da565b34801561037e575f80fd5b5061027261082a565b348015610392575f80fd5b506102726103a1366004611d5e565b61089f565b3480156103b1575f80fd5b50600a54610226565b3480156103c5575f80fd5b505f546001600160a01b031661035b565b3480156103e1575f80fd5b506102726103f0366004611d89565b610989565b348015610400575f80fd5b5060408051808201909152600381526256414960e81b60208201526101cd565b34801561042b575f80fd5b50600d54610226565b34801561043f575f80fd5b5061020261044e366004611caf565b610a24565b34801561045e575f80fd5b50600b54610226565b348015610472575f80fd5b50600c54610226565b348015610486575f80fd5b5060085460ff166102e2565b34801561049d575f80fd5b506102726104ac366004611dc0565b610a7f565b3480156104bc575f80fd5b506102266104cb366004611e02565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610500575f80fd5b50600854610100900460ff166102e2565b34801561051c575f80fd5b5061027261052b366004611e4c565b610b52565b610272610c5f565b348015610543575f80fd5b50610272610552366004611d5e565b610f53565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b19086815260200190565b60405180910390a35060015b92915050565b5f6105d06009600a611fa1565b6105dd90620f4240611faf565b905090565b5f6105ec84610fcf565b6106305760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610662908490611fc6565b909155506106739050848484611032565b949350505050565b5f546001600160a01b031633146106a45760405162461bcd60e51b815260040161062790611fd9565b5f6103e861ffff84166106b96009600a611fa1565b6106c690620f4240611faf565b6106d09190611faf565b6106da9190612010565b6106e590600161202f565b9050600a548110156107265760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610627565b80600a819055505f6103e88361ffff166009600a6107449190611fa1565b61075190620f4240611faf565b61075b9190611faf565b6107659190612010565b61077090600161202f565b9050600b548110156107b55760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610627565b600b55505050565b5f546001600160a01b031633146107e65760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146108535760405162461bcd60e51b815260040161062790611fd9565b60065460ff16156108955760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b61089d61144c565b565b5f546001600160a01b031633146108c85760405162461bcd60e51b815260040161062790611fd9565b6001600160a01b0381165f9081526005602052604090205460ff16156109305760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610627565b6006805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601160209081526040808320805460ff1990811660019081179092556012909352922080549091169091179055565b5f546001600160a01b031633146109b25760405162461bcd60e51b815260040161062790611fd9565b60066109be8284612042565b60ff161115610a045760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610627565b6008805461ffff191661010060ff9485160260ff19161791909216179055565b5f610a2e33610fcf565b610a6d5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610627565b610a78338484611032565b9392505050565b5f546001600160a01b03163314610aa85760405162461bcd60e51b815260040161062790611fd9565b8080610ab15750815b15610b11576001600160a01b0383165f9081526005602052604090205460ff1615610b115760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610627565b6001600160a01b039092165f908152601160209081526040808320805494151560ff1995861617905560129091529020805492151592909116919091179055565b5f546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161062790611fd9565b63ffffffff808516908616610b926009600a611fa1565b610b9f90620f4240611faf565b610ba99190611faf565b610bb39190612010565b600c5563ffffffff808316908416610bcd6009600a611fa1565b610bda90620f4240611faf565b610be49190611faf565b610bee9190612010565b600d55610c0863ffffffff821666038d7ea4c6800061205b565b66ffffffffffffff16600e55600c54600d541015610c585760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610627565b5050505050565b5f546001600160a01b03163314610c885760405162461bcd60e51b815260040161062790611fd9565b6006805461ff0019166101001790556004546001600160a01b031615610cdd5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610627565b60065460ff1615610d1f5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b5f341180610d2c57505f47115b610d615760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610627565b305f90815260016020526040902054610da85760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610627565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1c9190612086565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612086565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612086565b600480546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f469047611607565b6006805461ff0019169055565b5f546001600160a01b03163314610f7c5760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6006545f90819060ff1615610fe6575060016105bd565b6001600160a01b0383165f9081526011602052604090205460ff16801561102457506001600160a01b0383165f9081526012602052604090205460ff165b156105bd5750600192915050565b5f6001600160a01b0384166110895760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610627565b60065460ff16611114576001600160a01b0384165f9081526011602052604090205460ff1680156110d157506001600160a01b0384165f9081526012602052604090205460ff165b6111145760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610627565b600654610100900460ff1615801561114357506001600160a01b0383165f9081526005602052604090205460ff165b80156111535750611153826116a5565b15611160576111606117da565b60095443106112db576007544310801561119157506001600160a01b0384165f9081526005602052604090205460ff165b156111da576001600160a01b03831632146111da5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6007546111e99061025861202f565b4310801561120e57506001600160a01b0383165f9081526005602052604090205460ff165b801561122357506001600160a01b0384163014155b156112db57435f9081526010602090815260408083206001600160a01b0387168452909152812080546001929061125e90849060ff16612042565b82546101009290920a60ff818102199093169183160217909155435f9081526010602090815260408083206001600160a01b038916845290915290205460029116111590506112db5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6001600160a01b03841630148015906112fd57506001600160a01b0383163014155b801561131657505f546001600160a01b03858116911614155b1561136357611326848484611897565b6113635760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610627565b5f61136f85858561195a565b90505f61137c8285611fc6565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a8908490611fc6565b9250508190555081600f5f8282546113c0919061202f565b90915550506001600160a01b0385165f90815260016020526040812080548392906113ec90849061202f565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143891815260200190565b60405180910390a350600195945050505050565b6103e861145b6009600a611fa1565b61146890620f4240611faf565b611473906014611faf565b61147d9190612010565b600a9081556103e89061149290600990611fa1565b61149f90620f4240611faf565b6114aa906014611faf565b6114b49190612010565b600b55600f546004546001600160a01b03165f90815260016020526040812080549091906114e3908490611fc6565b909155505060048054604080519283526024830181526020830180516001600160e01b031660016209351760e01b0319179052516001600160a01b039091169161152c916120a1565b5f604051808303815f865af19150503d805f8114611565576040519150601f19603f3d011682016040523d82523d5f602084013e61156a565b606091505b5050600480546001600160a01b039081165f90815260056020526040808220805460ff1916951515959095179094559154168152205460ff166115e25760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610627565b4360098190556007546115f5919061202f565b6007556006805460ff19166001179055565b61161082611a44565b6003545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611680573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5891906120b7565b5f805f600e5411156117d157600480546001600160a01b039081165f9081526001602090815260408083205460035482516315ab88c960e31b8152925191969495169363ad5c46489383820193909291908290030181865afa15801561170d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190612086565b600480546040516370a0823160e01b81526001600160a01b039182169281019290925291909116906370a0823190602401602060405180830381865afa15801561177d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a191906120e2565b90505f826117af8388611faf565b6117b99190612010565b9050600e5481106117c957600193505b5050506105bd565b50600192915050565b6006805461ff001916610100179055600f54600c548110801590611800575060065460ff165b1561188957600d5481106118135750600d545b806118206009600a611fa1565b61182b906001611faf565b81111561187657305f908152600160205260408120805484929061185090849061202f565b9091555061185f905081611ae6565b81600f5f8282546118709190611fc6565b90915550505b4780156118865761188681611c26565b50505b506006805461ff0019169055565b6006545f9060019060ff1680156118c657506001600160a01b0385165f9081526012602052604090205460ff16155b80156118ea57506001600160a01b0384165f9081526012602052604090205460ff16155b1561067357600a5483111561190057505f610673565b6001600160a01b0384165f9081526005602052604090205460ff1615801561194b5750600b546001600160a01b0385165f9081526001602052604090205461194990859061202f565b115b1561067357505f949350505050565b6006545f90819060ff16158061198757506001600160a01b0385165f9081526011602052604090205460ff165b806119a957506001600160a01b0384165f9081526011602052604090205460ff165b156119b557505f610673565b6001600160a01b0385165f9081526005602052604090205460ff16156119fe576008546064906119ed90610100900460ff1685611faf565b6119f79190612010565b9050610673565b6001600160a01b0384165f9081526005602052604090205460ff161561067357600854606490611a319060ff1685611faf565b611a3b9190612010565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ae357305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611aef81611a44565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b2257611b226120f9565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9d9190612086565b81600181518110611bb057611bb06120f9565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611bf59085905f9086903090429060040161210d565b5f604051808303815f87803b158015611c0c575f80fd5b505af1158015611c1e573d5f803e3d5ffd5b505050505050565b600654604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611c62573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ae3575f80fd5b5f8060408385031215611cc0575f80fd5b8235611ccb81611c9b565b946020939093013593505050565b5f805f60608486031215611ceb575f80fd5b8335611cf681611c9b565b92506020840135611d0681611c9b565b929592945050506040919091013590565b803561ffff81168114611d28575f80fd5b919050565b5f8060408385031215611d3e575f80fd5b611d4783611d17565b9150611d5560208401611d17565b90509250929050565b5f60208284031215611d6e575f80fd5b8135610a7881611c9b565b803560ff81168114611d28575f80fd5b5f8060408385031215611d9a575f80fd5b611da383611d79565b9150611d5560208401611d79565b80358015158114611d28575f80fd5b5f805f60608486031215611dd2575f80fd5b8335611ddd81611c9b565b9250611deb60208501611db1565b9150611df960408501611db1565b90509250925092565b5f8060408385031215611e13575f80fd5b8235611e1e81611c9b565b91506020830135611e2e81611c9b565b809150509250929050565b803563ffffffff81168114611d28575f80fd5b5f805f805f60a08688031215611e60575f80fd5b611e6986611e39565b9450611e7760208701611e39565b9350611e8560408701611e39565b9250611e9360608701611e39565b9150611ea160808701611e39565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611efb57815f1904821115611ee157611ee1611ead565b80851615611eee57918102915b93841c9390800290611ec6565b509250929050565b5f82611f11575060016105bd565b81611f1d57505f6105bd565b8160018114611f335760028114611f3d57611f59565b60019150506105bd565b60ff841115611f4e57611f4e611ead565b50506001821b6105bd565b5060208310610133831016604e8410600b8410161715611f7c575081810a6105bd565b611f868383611ec1565b805f1904821115611f9957611f99611ead565b029392505050565b5f610a7860ff841683611f03565b80820281158282048414176105bd576105bd611ead565b818103818111156105bd576105bd611ead565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261202a57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105bd576105bd611ead565b60ff81811683821601908111156105bd576105bd611ead565b66ffffffffffffff81811683821602808216919082811461207e5761207e611ead565b505092915050565b5f60208284031215612096575f80fd5b8151610a7881611c9b565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120c9575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f2575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561215d5784516001600160a01b031683529383019391830191600101612138565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f9b0683304191056c6cf397603d8a6e763cabe758e11b65725fe53e9218bba5764736f6c63430008190033

Deployed Bytecode

0x608060405260043610610198575f3560e01c80638da5cb5b116100e7578063cc1776d311610087578063e4748b9e11610062578063e4748b9e146104f5578063e537a83414610511578063e8078d9414610530578063f2fde38b14610538575f80fd5b8063cc1776d31461047b578063d8e3d09914610492578063dd62ed3e146104b1575f80fd5b8063a5e992bb116100c2578063a5e992bb14610420578063a9059cbb14610434578063aa4bde2814610453578063b3de9b5d14610467575f80fd5b80638da5cb5b146103ba578063950c6c39146103d657806395d89b41146103f5575f80fd5b8063313ce5671161015257806375f0a8741161012d57806375f0a8741461033c5780638a8c523c146103735780638b0414d5146103875780638c0b5e22146103a6575f80fd5b8063313ce567146102d357806370a08231146102f4578063715018a614610328575f80fd5b806306fdde03146101a3578063095ea7b3146101e357806318160ddd1461021257806323b872dd1461023457806328bac04c1461025357806330449efd14610274575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600681526556495020414960d01b60208201525b6040516101da9190611c66565b60405180910390f35b3480156101ee575f80fd5b506102026101fd366004611caf565b610557565b60405190151581526020016101da565b34801561021d575f80fd5b506102266105c3565b6040519081526020016101da565b34801561023f575f80fd5b5061020261024e366004611cd9565b6105e2565b34801561025e575f80fd5b5061027261026d366004611d2d565b61067b565b005b34801561027f575f80fd5b506102bc61028e366004611d5e565b6001600160a01b03165f9081526011602090815260408083205460129092529091205460ff91821692911690565b6040805192151583529015156020830152016101da565b3480156102de575f80fd5b5060095b60405160ff90911681526020016101da565b3480156102ff575f80fd5b5061022661030e366004611d5e565b6001600160a01b03165f9081526001602052604090205490565b348015610333575f80fd5b506102726107bd565b348015610347575f80fd5b506006546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101da565b34801561037e575f80fd5b5061027261082a565b348015610392575f80fd5b506102726103a1366004611d5e565b61089f565b3480156103b1575f80fd5b50600a54610226565b3480156103c5575f80fd5b505f546001600160a01b031661035b565b3480156103e1575f80fd5b506102726103f0366004611d89565b610989565b348015610400575f80fd5b5060408051808201909152600381526256414960e81b60208201526101cd565b34801561042b575f80fd5b50600d54610226565b34801561043f575f80fd5b5061020261044e366004611caf565b610a24565b34801561045e575f80fd5b50600b54610226565b348015610472575f80fd5b50600c54610226565b348015610486575f80fd5b5060085460ff166102e2565b34801561049d575f80fd5b506102726104ac366004611dc0565b610a7f565b3480156104bc575f80fd5b506102266104cb366004611e02565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610500575f80fd5b50600854610100900460ff166102e2565b34801561051c575f80fd5b5061027261052b366004611e4c565b610b52565b610272610c5f565b348015610543575f80fd5b50610272610552366004611d5e565b610f53565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b19086815260200190565b60405180910390a35060015b92915050565b5f6105d06009600a611fa1565b6105dd90620f4240611faf565b905090565b5f6105ec84610fcf565b6106305760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610662908490611fc6565b909155506106739050848484611032565b949350505050565b5f546001600160a01b031633146106a45760405162461bcd60e51b815260040161062790611fd9565b5f6103e861ffff84166106b96009600a611fa1565b6106c690620f4240611faf565b6106d09190611faf565b6106da9190612010565b6106e590600161202f565b9050600a548110156107265760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610627565b80600a819055505f6103e88361ffff166009600a6107449190611fa1565b61075190620f4240611faf565b61075b9190611faf565b6107659190612010565b61077090600161202f565b9050600b548110156107b55760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610627565b600b55505050565b5f546001600160a01b031633146107e65760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146108535760405162461bcd60e51b815260040161062790611fd9565b60065460ff16156108955760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b61089d61144c565b565b5f546001600160a01b031633146108c85760405162461bcd60e51b815260040161062790611fd9565b6001600160a01b0381165f9081526005602052604090205460ff16156109305760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610627565b6006805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601160209081526040808320805460ff1990811660019081179092556012909352922080549091169091179055565b5f546001600160a01b031633146109b25760405162461bcd60e51b815260040161062790611fd9565b60066109be8284612042565b60ff161115610a045760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610627565b6008805461ffff191661010060ff9485160260ff19161791909216179055565b5f610a2e33610fcf565b610a6d5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610627565b610a78338484611032565b9392505050565b5f546001600160a01b03163314610aa85760405162461bcd60e51b815260040161062790611fd9565b8080610ab15750815b15610b11576001600160a01b0383165f9081526005602052604090205460ff1615610b115760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610627565b6001600160a01b039092165f908152601160209081526040808320805494151560ff1995861617905560129091529020805492151592909116919091179055565b5f546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161062790611fd9565b63ffffffff808516908616610b926009600a611fa1565b610b9f90620f4240611faf565b610ba99190611faf565b610bb39190612010565b600c5563ffffffff808316908416610bcd6009600a611fa1565b610bda90620f4240611faf565b610be49190611faf565b610bee9190612010565b600d55610c0863ffffffff821666038d7ea4c6800061205b565b66ffffffffffffff16600e55600c54600d541015610c585760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610627565b5050505050565b5f546001600160a01b03163314610c885760405162461bcd60e51b815260040161062790611fd9565b6006805461ff0019166101001790556004546001600160a01b031615610cdd5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610627565b60065460ff1615610d1f5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610627565b5f341180610d2c57505f47115b610d615760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610627565b305f90815260016020526040902054610da85760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610627565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1c9190612086565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612086565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612086565b600480546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f469047611607565b6006805461ff0019169055565b5f546001600160a01b03163314610f7c5760405162461bcd60e51b815260040161062790611fd9565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6006545f90819060ff1615610fe6575060016105bd565b6001600160a01b0383165f9081526011602052604090205460ff16801561102457506001600160a01b0383165f9081526012602052604090205460ff165b156105bd5750600192915050565b5f6001600160a01b0384166110895760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610627565b60065460ff16611114576001600160a01b0384165f9081526011602052604090205460ff1680156110d157506001600160a01b0384165f9081526012602052604090205460ff165b6111145760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610627565b600654610100900460ff1615801561114357506001600160a01b0383165f9081526005602052604090205460ff165b80156111535750611153826116a5565b15611160576111606117da565b60095443106112db576007544310801561119157506001600160a01b0384165f9081526005602052604090205460ff165b156111da576001600160a01b03831632146111da5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6007546111e99061025861202f565b4310801561120e57506001600160a01b0383165f9081526005602052604090205460ff165b801561122357506001600160a01b0384163014155b156112db57435f9081526010602090815260408083206001600160a01b0387168452909152812080546001929061125e90849060ff16612042565b82546101009290920a60ff818102199093169183160217909155435f9081526010602090815260408083206001600160a01b038916845290915290205460029116111590506112db5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610627565b6001600160a01b03841630148015906112fd57506001600160a01b0383163014155b801561131657505f546001600160a01b03858116911614155b1561136357611326848484611897565b6113635760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610627565b5f61136f85858561195a565b90505f61137c8285611fc6565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a8908490611fc6565b9250508190555081600f5f8282546113c0919061202f565b90915550506001600160a01b0385165f90815260016020526040812080548392906113ec90849061202f565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143891815260200190565b60405180910390a350600195945050505050565b6103e861145b6009600a611fa1565b61146890620f4240611faf565b611473906014611faf565b61147d9190612010565b600a9081556103e89061149290600990611fa1565b61149f90620f4240611faf565b6114aa906014611faf565b6114b49190612010565b600b55600f546004546001600160a01b03165f90815260016020526040812080549091906114e3908490611fc6565b909155505060048054604080519283526024830181526020830180516001600160e01b031660016209351760e01b0319179052516001600160a01b039091169161152c916120a1565b5f604051808303815f865af19150503d805f8114611565576040519150601f19603f3d011682016040523d82523d5f602084013e61156a565b606091505b5050600480546001600160a01b039081165f90815260056020526040808220805460ff1916951515959095179094559154168152205460ff166115e25760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610627565b4360098190556007546115f5919061202f565b6007556006805460ff19166001179055565b61161082611a44565b6003545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611680573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5891906120b7565b5f805f600e5411156117d157600480546001600160a01b039081165f9081526001602090815260408083205460035482516315ab88c960e31b8152925191969495169363ad5c46489383820193909291908290030181865afa15801561170d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190612086565b600480546040516370a0823160e01b81526001600160a01b039182169281019290925291909116906370a0823190602401602060405180830381865afa15801561177d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a191906120e2565b90505f826117af8388611faf565b6117b99190612010565b9050600e5481106117c957600193505b5050506105bd565b50600192915050565b6006805461ff001916610100179055600f54600c548110801590611800575060065460ff165b1561188957600d5481106118135750600d545b806118206009600a611fa1565b61182b906001611faf565b81111561187657305f908152600160205260408120805484929061185090849061202f565b9091555061185f905081611ae6565b81600f5f8282546118709190611fc6565b90915550505b4780156118865761188681611c26565b50505b506006805461ff0019169055565b6006545f9060019060ff1680156118c657506001600160a01b0385165f9081526012602052604090205460ff16155b80156118ea57506001600160a01b0384165f9081526012602052604090205460ff16155b1561067357600a5483111561190057505f610673565b6001600160a01b0384165f9081526005602052604090205460ff1615801561194b5750600b546001600160a01b0385165f9081526001602052604090205461194990859061202f565b115b1561067357505f949350505050565b6006545f90819060ff16158061198757506001600160a01b0385165f9081526011602052604090205460ff165b806119a957506001600160a01b0384165f9081526011602052604090205460ff165b156119b557505f610673565b6001600160a01b0385165f9081526005602052604090205460ff16156119fe576008546064906119ed90610100900460ff1685611faf565b6119f79190612010565b9050610673565b6001600160a01b0384165f9081526005602052604090205460ff161561067357600854606490611a319060ff1685611faf565b611a3b9190612010565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ae357305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611aef81611a44565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b2257611b226120f9565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9d9190612086565b81600181518110611bb057611bb06120f9565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611bf59085905f9086903090429060040161210d565b5f604051808303815f87803b158015611c0c575f80fd5b505af1158015611c1e573d5f803e3d5ffd5b505050505050565b600654604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611c62573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ae3575f80fd5b5f8060408385031215611cc0575f80fd5b8235611ccb81611c9b565b946020939093013593505050565b5f805f60608486031215611ceb575f80fd5b8335611cf681611c9b565b92506020840135611d0681611c9b565b929592945050506040919091013590565b803561ffff81168114611d28575f80fd5b919050565b5f8060408385031215611d3e575f80fd5b611d4783611d17565b9150611d5560208401611d17565b90509250929050565b5f60208284031215611d6e575f80fd5b8135610a7881611c9b565b803560ff81168114611d28575f80fd5b5f8060408385031215611d9a575f80fd5b611da383611d79565b9150611d5560208401611d79565b80358015158114611d28575f80fd5b5f805f60608486031215611dd2575f80fd5b8335611ddd81611c9b565b9250611deb60208501611db1565b9150611df960408501611db1565b90509250925092565b5f8060408385031215611e13575f80fd5b8235611e1e81611c9b565b91506020830135611e2e81611c9b565b809150509250929050565b803563ffffffff81168114611d28575f80fd5b5f805f805f60a08688031215611e60575f80fd5b611e6986611e39565b9450611e7760208701611e39565b9350611e8560408701611e39565b9250611e9360608701611e39565b9150611ea160808701611e39565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611efb57815f1904821115611ee157611ee1611ead565b80851615611eee57918102915b93841c9390800290611ec6565b509250929050565b5f82611f11575060016105bd565b81611f1d57505f6105bd565b8160018114611f335760028114611f3d57611f59565b60019150506105bd565b60ff841115611f4e57611f4e611ead565b50506001821b6105bd565b5060208310610133831016604e8410600b8410161715611f7c575081810a6105bd565b611f868383611ec1565b805f1904821115611f9957611f99611ead565b029392505050565b5f610a7860ff841683611f03565b80820281158282048414176105bd576105bd611ead565b818103818111156105bd576105bd611ead565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261202a57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105bd576105bd611ead565b60ff81811683821601908111156105bd576105bd611ead565b66ffffffffffffff81811683821602808216919082811461207e5761207e611ead565b505092915050565b5f60208284031215612096575f80fd5b8151610a7881611c9b565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120c9575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f2575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561215d5784516001600160a01b031683529383019391830191600101612138565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f9b0683304191056c6cf397603d8a6e763cabe758e11b65725fe53e9218bba5764736f6c63430008190033

Deployed Bytecode Sourcemap

2431:11700:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4676:80;;;;;;;;;;-1:-1:-1;4748:5:0;;;;;;;;;;;;-1:-1:-1;;;4748:5:0;;;;4676:80;;;;;;;:::i;:::-;;;;;;;;5327:213;;;;;;;;;;-1:-1:-1;5327:213:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;5327:213:0;893:187:1;4587:83:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;4587:83:0;1085:177:1;5548:297:0;;;;;;;;;;-1:-1:-1;5548:297:0;;;;;:::i;:::-;;:::i;6421:435::-;;;;;;;;;;-1:-1:-1;6421:435:0;;;;;:::i;:::-;;:::i;:::-;;10447:141;;;;;;;;;;-1:-1:-1;10447:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;10549:14:0;10506:9;10549:14;;;:6;:14;;;;;;;;;10565:8;:16;;;;;;;10549:14;;;;;10565:16;;;10447:141;;;;;2592:14:1;;2585:22;2567:41;;2651:14;;2644:22;2639:2;2624:18;;2617:50;2540:18;10447:141:0;2405:268:1;4499:82:0;;;;;;;;;;-1:-1:-1;2597:1:0;4499:82;;;2850:4:1;2838:17;;;2820:36;;2808:2;2793:18;4499:82:0;2678:184:1;4852:103:0;;;;;;;;;;-1:-1:-1;4852:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;4936:16:0;4918:7;4936:16;;;:7;:16;;;;;;;4852:103;1741:130;;;;;;;;;;;;;:::i;12140:93::-;;;;;;;;;;-1:-1:-1;12218:9:0;;;;;-1:-1:-1;;;;;12218:9:0;12140:93;;;-1:-1:-1;;;;;3031:32:1;;;3013:51;;3001:2;2986:18;12140:93:0;2867:203:1;12489:128:0;;;;;;;;;;;;;:::i;11872:260::-;;;;;;;;;;-1:-1:-1;11872:260:0;;;;;:::i;:::-;;:::i;11328:89::-;;;;;;;;;;-1:-1:-1;11402:9:0;;11328:89;;1510:65;;;;;;;;;;-1:-1:-1;1548:7:0;1566:6;-1:-1:-1;;;;;1566:6:0;1510:65;;12241:240;;;;;;;;;;-1:-1:-1;12241:240:0;;;;;:::i;:::-;;:::i;4762:84::-;;;;;;;;;;-1:-1:-1;4836:7:0;;;;;;;;;;;;-1:-1:-1;;;4836:7:0;;;;4762:84;;12720:87;;;;;;;;;;-1:-1:-1;12790:11:0;;12720:87;;5101:218;;;;;;;;;;-1:-1:-1;5101:218:0;;;;;:::i;:::-;;:::i;11222:100::-;;;;;;;;;;-1:-1:-1;11300:16:0;;11222:100;;12625:89;;;;;;;;;;-1:-1:-1;12695:13:0;;12625:89;;7431:68;;;;;;;;;;-1:-1:-1;7488:8:0;;;;7431:68;;8166:252;;;;;;;;;;-1:-1:-1;8166:252:0;;;;;:::i;:::-;;:::i;4961:132::-;;;;;;;;;;-1:-1:-1;4961:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;5063:18:0;;;5045:7;5063:18;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;4961:132;7354:71;;;;;;;;;;-1:-1:-1;7411:11:0;;;;;;;7354:71;;7827:331;;;;;;;;;;-1:-1:-1;7827:331:0;;;;;:::i;:::-;;:::i;6864:482::-;;;:::i;1581:154::-;;;;;;;;;;-1:-1:-1;1581:154:0;;;;;:::i;:::-;;:::i;5327:213::-;5430:10;5402:4;5419:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;5419:31:0;;;;;;;;;;:40;;;5475:37;5402:4;;5419:31;;5475:37;;;;5453:6;1231:25:1;;1219:2;1204:18;;1085:177;5475:37:0;;;;;;;;-1:-1:-1;5530:4:0;5327:213;;;;;:::o;4587:83::-;4642:7;2651:15;2597:1;2651:2;:15;:::i;:::-;2640:27;;:7;:27;:::i;:::-;4653:14;;4587:83;:::o;5548:297::-;5651:4;5676:26;5691:10;5676:14;:26::i;:::-;5668:55;;;;-1:-1:-1;;;5668:55:0;;7230:2:1;5668:55:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;5668:55:0;;;;;;;;;-1:-1:-1;;;;;5734:22:0;;;;;;:10;:22;;;;;;;;5757:10;5734:34;;;;;;;:44;;5772:6;;5734:22;:44;;5772:6;;5734:44;:::i;:::-;;;;-1:-1:-1;5796:43:0;;-1:-1:-1;5810:10:0;5822:8;5832:6;5796:13;:43::i;:::-;5789:50;5548:297;-1:-1:-1;;;;5548:297:0:o;6421:435::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;6523:16:::1;6571:4;6542:26;::::0;::::1;2651:15;2597:1;2651:2;:15;:::i;:::-;2640:27;::::0;:7:::1;:27;:::i;:::-;6542:26;;;;:::i;:::-;:33;;;;:::i;:::-;:37;::::0;6578:1:::1;6542:37;:::i;:::-;6523:56;;6610:9;;6598:8;:21;;6590:44;;;::::0;-1:-1:-1;;;6590:44:0;;8413:2:1;6590:44:0::1;::::0;::::1;8395:21:1::0;8452:2;8432:18;;;8425:30;-1:-1:-1;;;8471:18:1;;;8464:40;8521:18;;6590:44:0::1;8211:334:1::0;6590:44:0::1;6657:8;6645:9;:20;;;;6676;6728:4;6709:16;6699:26;;2597:1;2651:2;:15;;;;:::i;:::-;2640:27;::::0;:7:::1;:27;:::i;:::-;6699:26;;;;:::i;:::-;:33;;;;:::i;:::-;:37;::::0;6735:1:::1;6699:37;:::i;:::-;6676:60;;6771:16;;6755:12;:32;;6747:59;;;::::0;-1:-1:-1;;;6747:59:0;;8752:2:1;6747:59:0::1;::::0;::::1;8734:21:1::0;8791:2;8771:18;;;8764:30;-1:-1:-1;;;8810:18:1;;;8803:44;8864:18;;6747:59:0::1;8550:338:1::0;6747:59:0::1;6817:16;:31:::0;-1:-1:-1;;;6421:435:0:o;1741:130::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;1818:1:::1;1801:19:::0;;-1:-1:-1;;;;;;1801:19:0::1;::::0;;1836:32:::1;::::0;3013:51:1;;;1836:32:0::1;::::0;3001:2:1;2986:18;1836:32:0::1;;;;;;;1741:130::o:0;12489:128::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;12553:14:::1;::::0;::::1;;12552:15;12544:40;;;::::0;-1:-1:-1;;;12544:40:0;;9095:2:1;12544:40:0::1;::::0;::::1;9077:21:1::0;9134:2;9114:18;;;9107:30;-1:-1:-1;;;9153:18:1;;;9146:42;9205:18;;12544:40:0::1;8893:336:1::0;12544:40:0::1;12595:14;:12;:14::i;:::-;12489:128::o:0;11872:260::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11955:19:0;::::1;;::::0;;;:5:::1;:19;::::0;;;;;::::1;;11954:20;11946:56;;;::::0;-1:-1:-1;;;11946:56:0;;9436:2:1;11946:56:0::1;::::0;::::1;9418:21:1::0;9475:2;9455:18;;;9448:30;9514:25;9494:18;;;9487:53;9557:18;;11946:56:0::1;9234:347:1::0;11946:56:0::1;12013:9;:33:::0;;-1:-1:-1;;;;;;12013:33:0::1;::::0;-1:-1:-1;;;;;12013:33:0;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;12057:20:0;;;:6:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;12057:27:0;;::::1;-1:-1:-1::0;12057:27:0;;::::1;::::0;;;12095:8:::1;:22:::0;;;;;:29;;;;::::1;::::0;;::::1;::::0;;11872:260::o;12241:240::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;12375:1:::1;12341:30;12357:14:::0;12341:13;:30:::1;:::i;:::-;:35;;;;12333:66;;;::::0;-1:-1:-1;;;12333:66:0;;9941:2:1;12333:66:0::1;::::0;::::1;9923:21:1::0;9980:2;9960:18;;;9953:30;-1:-1:-1;;;9999:18:1;;;9992:48;10057:18;;12333:66:0::1;9739:342:1::0;12333:66:0::1;12410:11;:27:::0;;-1:-1:-1;;12448:25:0;12410:27:::1;;::::0;;::::1;;-1:-1:-1::0;;12448:25:0;;;;;::::1;;::::0;;12241:240::o;5101:218::-;5180:4;5205:26;5220:10;5205:14;:26::i;:::-;5197:55;;;;-1:-1:-1;;;5197:55:0;;7230:2:1;5197:55:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;5197:55:0;7028:340:1;5197:55:0;5270:43;5284:10;5296:8;5306:6;5270:13;:43::i;:::-;5263:50;5101:218;-1:-1:-1;;;5101:218:0:o;8166:252::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;8268:10:::1;:22;;;;8282:8;8268:22;8264:73;;;-1:-1:-1::0;;;;;8303:10:0;::::1;;::::0;;;:5:::1;:10;::::0;;;;;::::1;;8302:11;8294:40;;;::::0;-1:-1:-1;;;8294:40:0;;10288:2:1;8294:40:0::1;::::0;::::1;10270:21:1::0;10327:2;10307:18;;;10300:30;-1:-1:-1;;;10346:18:1;;;10339:46;10402:18;;8294:40:0::1;10086:340:1::0;8294:40:0::1;-1:-1:-1::0;;;;;8347:13:0;;::::1;;::::0;;;:6:::1;:13;::::0;;;;;;;:24;;;::::1;;-1:-1:-1::0;;8347:24:0;;::::1;;::::0;;8382:8:::1;:15:::0;;;;;:28;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8166:252::o;7827:331::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;7970:25:::1;::::0;;::::1;::::0;:16;::::1;2651:15;2597:1;2651:2;:15;:::i;:::-;2640:27;::::0;:7:::1;:27;:::i;:::-;7970:16;;;;:::i;:::-;:25;;;;:::i;:::-;7954:13;:41:::0;8020:25:::1;::::0;;::::1;::::0;:16;::::1;2651:15;2597:1;2651:2;:15;:::i;:::-;2640:27;::::0;:7:::1;:27;:::i;:::-;8020:16;;;;:::i;:::-;:25;;;;:::i;:::-;8006:11;:39:::0;8071:16:::1;;::::0;::::1;8081:6;8071:16;:::i;:::-;8056:31;;:12;:31:::0;8119:13:::1;::::0;8106:11:::1;::::0;:26:::1;;8098:52;;;::::0;-1:-1:-1;;;8098:52:0;;10893:2:1;8098:52:0::1;::::0;::::1;10875:21:1::0;10932:2;10912:18;;;10905:30;-1:-1:-1;;;10951:18:1;;;10944:43;11004:18;;8098:52:0::1;10691:337:1::0;8098:52:0::1;7827:331:::0;;;;;:::o;6864:482::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;3919:10:::1;:17:::0;;-1:-1:-1;;3919:17:0::1;;;::::0;;6945:3:::2;::::0;-1:-1:-1;;;;;6945:3:0::2;:17:::0;6937:40:::2;;;::::0;-1:-1:-1;;;6937:40:0;;11235:2:1;6937:40:0::2;::::0;::::2;11217:21:1::0;11274:2;11254:18;;;11247:30;-1:-1:-1;;;11293:18:1;;;11286:40;11343:18;;6937:40:0::2;11033:334:1::0;6937:40:0::2;6997:14;::::0;::::2;;6996:15;6988:40;;;::::0;-1:-1:-1;;;6988:40:0;;9095:2:1;6988:40:0::2;::::0;::::2;9077:21:1::0;9134:2;9114:18;;;9107:30;-1:-1:-1;;;9153:18:1;;;9146:42;9205:18;;6988:40:0::2;8893:336:1::0;6988:40:0::2;7059:1;7047:9;:13;:40;;;;7086:1;7064:21;:23;7047:40;7039:59;;;::::0;-1:-1:-1;;;7039:59:0;;11574:2:1;7039:59:0::2;::::0;::::2;11556:21:1::0;11613:1;11593:18;;;11586:29;-1:-1:-1;;;11631:18:1;;;11624:36;11677:18;;7039:59:0::2;11372:329:1::0;7039:59:0::2;7133:4;7140:1;7117:22:::0;;;:7:::2;:22;::::0;;;;;7109:46:::2;;;::::0;-1:-1:-1;;;7109:46:0;;11908:2:1;7109:46:0::2;::::0;::::2;11890:21:1::0;11947:1;11927:18;;;11920:29;-1:-1:-1;;;11965:18:1;;;11958:39;12014:18;;7109:46:0::2;11706:332:1::0;7109:46:0::2;7190:14;;;;;;;;;-1:-1:-1::0;;;;;7190:14:0::2;-1:-1:-1::0;;;;;7190:22:0::2;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7172:54:0::2;;7235:4;7242:14;;;;;;;;;-1:-1:-1::0;;;;;7242:14:0::2;-1:-1:-1::0;;;;;7242:19:0::2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7172:92;::::0;-1:-1:-1;;;;;;7172:92:0::2;::::0;;;;;;-1:-1:-1;;;;;12529:15:1;;;7172:92:0::2;::::0;::::2;12511:34:1::0;12581:15;;12561:18;;;12554:43;12446:18;;7172:92:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7166:3;:98:::0;;-1:-1:-1;;;;;;7166:98:0::2;-1:-1:-1::0;;;;;7166:98:0;;;::::2;::::0;;;::::2;::::0;;7308:4:::2;-1:-1:-1::0;7292:22:0;;;-1:-1:-1;7292:22:0::2;::::0;;;;;7275:63:::2;::::0;7316:21:::2;7275:16;:63::i;:::-;3961:10:::1;:18:::0;;-1:-1:-1;;3961:18:0::1;::::0;;6864:482::o;1581:154::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1351:10;:20;1343:57;;;;-1:-1:-1;;;1343:57:0;;;;;;;:::i;:::-;1666:6:::1;:18:::0;;-1:-1:-1;;;;;;1666:18:0::1;-1:-1:-1::0;;;;;1666:18:0;::::1;::::0;;::::1;::::0;;;1701:31:::1;::::0;3013:51:1;;;1701:31:0::1;::::0;3001:2:1;2986:18;1701:31:0::1;;;;;;;1581:154:::0;:::o;9258:288::-;9380:14;;9324:4;;;;9380:14;;9375:132;;;-1:-1:-1;9413:4:0;9375:132;;;-1:-1:-1;;;;;9440:18:0;;;;;;:6;:18;;;;;;;;:42;;;;-1:-1:-1;;;;;;9462:20:0;;;;;;:8;:20;;;;;;;;9440:42;9436:71;;;-1:-1:-1;9500:4:0;9527:11;9258:288;-1:-1:-1;;9258:288:0:o;12815:1313::-;12906:4;-1:-1:-1;;;;;12931:20:0;;12923:59;;;;-1:-1:-1;;;12923:59:0;;13026:2:1;12923:59:0;;;13008:21:1;13065:2;13045:18;;;13038:30;13104:28;13084:18;;;13077:56;13150:18;;12923:59:0;12824:350:1;12923:59:0;12998:14;;;;12993:93;;-1:-1:-1;;;;;13024:14:0;;;;;;:6;:14;;;;;;;;:34;;;;-1:-1:-1;;;;;;13042:16:0;;;;;;:8;:16;;;;;;;;13024:34;13016:67;;;;-1:-1:-1;;;13016:67:0;;13381:2:1;13016:67:0;;;13363:21:1;13420:2;13400:18;;;13393:30;-1:-1:-1;;;13439:18:1;;;13432:50;13499:18;;13016:67:0;13179:344:1;13016:67:0;13102:10;;;;;;;13101:11;:30;;;;-1:-1:-1;;;;;;13116:15:0;;;;;;:5;:15;;;;;;;;13101:30;:55;;;;;13135:21;13149:6;13135:13;:21::i;:::-;13096:77;;;13161:9;:7;:9::i;:::-;13206:11;;13190:12;:27;13185:443;;13254:8;;13239:12;:23;:40;;;;-1:-1:-1;;;;;;13266:13:0;;;;;;:5;:13;;;;;;;;13239:40;13235:126;;;-1:-1:-1;;;;;13309:21:0;;13321:9;13309:21;13301:43;;;;-1:-1:-1;;;13301:43:0;;13730:2:1;13301:43:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;13301:43:0;13528:332:1;13301:43:0;13394:8;;:14;;13405:3;13394:14;:::i;:::-;13379:12;:29;:48;;;;-1:-1:-1;;;;;;13412:15:0;;;;;;:5;:15;;;;;;;;13379:48;:75;;;;-1:-1:-1;;;;;;13431:23:0;;13449:4;13431:23;;13379:75;13375:242;;;13490:12;13476:27;;;;:13;:27;;;;;;;;-1:-1:-1;;;;;13476:37:0;;;;;;;;;:42;;13517:1;;13476:27;:42;;13517:1;;13476:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;13559:12;-1:-1:-1;13545:27:0;;;:13;:27;;;;;;;;-1:-1:-1;;;;;13545:37:0;;;;;;;;;;13586:1;13545:37;;:42;;;-1:-1:-1;13537:64:0;;;;-1:-1:-1;;;13537:64:0;;13730:2:1;13537:64:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;13537:64:0;13528:332:1;13537:64:0;-1:-1:-1;;;;;13645:23:0;;13663:4;13645:23;;;;:52;;-1:-1:-1;;;;;;13672:25:0;;13692:4;13672:25;;13645:52;:72;;;;-1:-1:-1;13711:6:0;;-1:-1:-1;;;;;13701:16:0;;;13711:6;;13701:16;;13645:72;13640:172;;;13744:36;13755:6;13763:8;13773:6;13744:10;:36::i;:::-;13736:63;;;;-1:-1:-1;;;13736:63:0;;14067:2:1;13736:63:0;;;14049:21:1;14106:2;14086:18;;;14079:30;-1:-1:-1;;;14125:18:1;;;14118:44;14179:18;;13736:63:0;13865:338:1;13736:63:0;13824:18;13845:32;13852:6;13860:8;13870:6;13845;:32::i;:::-;13824:53;-1:-1:-1;13888:23:0;13914:19;13824:53;13914:6;:19;:::i;:::-;-1:-1:-1;;;;;13944:15:0;;;;;;:7;:15;;;;;:25;;13888:45;;-1:-1:-1;13963:6:0;;13944:15;;;:25;;13963:6;;13944:25;:::i;:::-;;;;;;;;13991:10;13980:7;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;14012:17:0;;;;;;:7;:17;;;;;:36;;14033:15;;14012:17;:36;;14033:15;;14012:36;:::i;:::-;;;;;;;;14081:8;-1:-1:-1;;;;;14064:34:0;14073:6;-1:-1:-1;;;;;14064:34:0;;14091:6;14064:34;;;;1231:25:1;;1219:2;1204:18;;1085:177;14064:34:0;;;;;;;;-1:-1:-1;14116:4:0;;12815:1313;-1:-1:-1;;;;;12815:1313:0:o;10039:400::-;10110:4;2651:15;2597:1;2651:2;:15;:::i;:::-;2640:27;;:7;:27;:::i;:::-;10095:12;;:2;:12;:::i;:::-;:19;;;;:::i;:::-;10083:9;:31;;;10159:4;;2651:15;;2597:1;;2651:15;:::i;:::-;2640:27;;:7;:27;:::i;:::-;10144:12;;:2;:12;:::i;:::-;:19;;;;:::i;:::-;10125:16;:38;10190:7;;10182:3;;-1:-1:-1;;;;;10182:3:0;10174:12;;;;:7;:12;;;;;:23;;:12;;;:23;;10190:7;;10174:23;:::i;:::-;;;;-1:-1:-1;;10224:3:0;;;10233:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10233:33:0;-1:-1:-1;;;;;;10233:33:0;;;10224:44;-1:-1:-1;;;;;10224:3:0;;;;:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10215:3:0;;;-1:-1:-1;;;;;10215:3:0;;;10209:10;;;;:5;:10;;;;;;10208:60;;-1:-1:-1;;10208:60:0;;;;;;;;;;;10293:3;;;10287:10;;;;10208:60;10287:10;10279:39;;;;-1:-1:-1;;;10279:39:0;;14716:2:1;10279:39:0;;;14698:21:1;14755:2;14735:18;;;14728:30;-1:-1:-1;;;14774:18:1;;;14767:46;14830:18;;10279:39:0;14514:340:1;10279:39:0;10343:12;10329:11;:26;;;10377:8;;:22;;10343:12;10377:22;:::i;:::-;10366:8;:33;10410:14;:21;;-1:-1:-1;;10410:21:0;10427:4;10410:21;;;10039:400::o;10961:253::-;11052:28;11067:12;11052:14;:28::i;:::-;11091:14;;;11181:6;;11091:115;;-1:-1:-1;;;11091:115:0;;11154:4;11091:115;;;15200:34:1;15250:18;;;15243:34;;;15293:18;;;15286:34;;;15336:18;;;15329:34;;;;-1:-1:-1;;;;;11181:6:0;;;15379:19:1;;;15372:44;11189:15:0;15432:19:1;;;15425:35;11091:14:0;;;;:30;;11129:13;;15134:19:1;;11091:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11425:439::-;11488:4;11505:11;11546:1;11531:12;;:16;11527:306;;;11589:3;;;-1:-1:-1;;;;;11589:3:0;;;11565:13;11581:12;;;:7;:12;;;;;;;;;11632:14;;:21;;-1:-1:-1;;;11632:21:0;;;;11581:12;;11565:13;;11632:14;;:19;;:21;;;;11581:12;;11632:21;;;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11665:3;;;11625:44;;-1:-1:-1;;;11625:44:0;;-1:-1:-1;;;;;11665:3:0;;;11625:44;;;3013:51:1;;;;11625:39:0;;;;;;;2986:18:1;;11625:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11608:61;-1:-1:-1;11685:16:0;11726:5;11705:17;11608:61;11705:8;:17;:::i;:::-;11704:27;;;;:::i;:::-;11685:46;;11762:12;;11750:8;:24;11746:48;;11787:4;11778:13;;11746:48;11549:260;;;11527:306;;;-1:-1:-1;11826:4:0;11850:6;11425:439;-1:-1:-1;;11425:439:0:o;8426:724::-;3919:10;:17;;-1:-1:-1;;3919:17:0;;;;;8504:7:::1;::::0;8549:13:::1;::::0;8527:35;::::1;::::0;::::1;::::0;:53:::1;;-1:-1:-1::0;8566:14:0::1;::::0;::::1;;8527:53;8522:621;;;8625:11;;8603:18;:33;8598:78;;-1:-1:-1::0;8662:11:0::1;::::0;8598:78:::1;8729:18:::0;8788:15:::1;2597:1;8788:2;:15;:::i;:::-;8784:19;::::0;:1:::1;:19;:::i;:::-;8767:14;:36;8763:222;;;8841:4;8825:22;::::0;;;:7:::1;:22;::::0;;;;:44;;8851:18;;8825:22;:44:::1;::::0;8851:18;;8825:44:::1;:::i;:::-;::::0;;;-1:-1:-1;8888:33:0::1;::::0;-1:-1:-1;8906:14:0;8888:17:::1;:33::i;:::-;8951:18;8940:7;;:29;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8763:222:0::1;9029:21;9068:23:::0;;9065:67:::1;;9095:34;9109:19;9095:13;:34::i;:::-;8583:560;;8522:621;-1:-1:-1::0;3961:10:0;:18;;-1:-1:-1;;3961:18:0;;;8426:724::o;5853:560::-;6019:14;;5958:4;;5999;;6019:14;;:39;;;;-1:-1:-1;;;;;;6038:20:0;;;;;;:8;:20;;;;;;;;6037:21;6019:39;:62;;;;-1:-1:-1;;;;;;6063:18:0;;;;;;:8;:18;;;;;;;;6062:19;6019:62;6014:358;;;6121:9;;6104:14;:26;6099:262;;;-1:-1:-1;6172:5:0;6099:262;;;-1:-1:-1;;;;;6237:15:0;;;;;;:5;:15;;;;;;;;6236:16;:75;;;;-1:-1:-1;6294:16:0;;-1:-1:-1;;;;;6257:17:0;;;;;;:7;:17;;;;;;:34;;6277:14;;6257:34;:::i;:::-;:53;6236:75;6213:148;;;-1:-1:-1;6353:5:0;6389:16;5853:560;-1:-1:-1;;;;5853:560:0:o;9554:477::-;9702:14;;9648:7;;;;9702:14;;9701:15;;:37;;-1:-1:-1;;;;;;9720:18:0;;;;;;:6;:18;;;;;;;;9701:37;:58;;;-1:-1:-1;;;;;;9742:17:0;;;;;;:6;:17;;;;;;;;9701:58;9696:301;;;-1:-1:-1;9790:1:0;9696:301;;;-1:-1:-1;;;;;9815:17:0;;;;;;:5;:17;;;;;;;;9810:187;;;9872:11;;9886:3;;9863:20;;9872:11;;;;;9863:6;:20;:::i;:::-;:26;;;;:::i;:::-;9851:38;;9810:187;;;-1:-1:-1;;;;;9914:16:0;;;;;;:5;:16;;;;;;;;9909:88;;;9970:8;;9981:3;;9961:17;;9970:8;;9961:6;:17;:::i;:::-;:23;;;;:::i;:::-;9949:35;9554:477;-1:-1:-1;;;;;9554:477:0:o;7507:312::-;7597:4;7578:25;;;;:10;:25;;;;;;;;2855:42;7578:44;;;;;;;;:59;-1:-1:-1;7573:239:0;;;7674:4;7655:25;;;;:10;:25;;;;;;;;2855:42;7655:44;;;;;;;;;;-1:-1:-1;;7655:64:0;;;;7739:61;;1231:25:1;;;2855:42:0;;7674:4;7739:61;;1204:18:1;7739:61:0;;;;;;;7573:239;7507:312;:::o;10596:357::-;10663:27;10678:11;10663:14;:27::i;:::-;10725:16;;;10739:1;10725:16;;;;;;;;10701:21;;10725:16;;;;;;;;;;-1:-1:-1;10725:16:0;10701:40;;10771:4;10752;10757:1;10752:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10752:25:0;;;:7;;;;;;;;;;:25;;;;10798:14;;:21;;;-1:-1:-1;;;10798:21:0;;;;:14;;;;;:19;;:21;;;;;10752:7;;10798:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10788:4;10793:1;10788:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10788:31:0;;;:7;;;;;;;;;:31;10830:14;;:115;;-1:-1:-1;;;10830:115:0;;:14;;;:65;;:115;;10896:11;;10830:14;;10910:4;;10923;;10929:15;;10830:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10652:301;10596:357;:::o;9158:92::-;9216:9;;:26;;:9;;;;-1:-1:-1;;;;;9216:9:0;;:26;;;;;;;;;;;;:9;:26;;;;;;;;;;;;;;;;;;;;;9158:92;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1728:159::-;1795:20;;1855:6;1844:18;;1834:29;;1824:57;;1877:1;1874;1867:12;1824:57;1728:159;;;:::o;1892:256::-;1958:6;1966;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2058:28;2076:9;2058:28;:::i;:::-;2048:38;;2105:37;2138:2;2127:9;2123:18;2105:37;:::i;:::-;2095:47;;1892:256;;;;;:::o;2153:247::-;2212:6;2265:2;2253:9;2244:7;2240:23;2236:32;2233:52;;;2281:1;2278;2271:12;2233:52;2320:9;2307:23;2339:31;2364:5;2339:31;:::i;3075:156::-;3141:20;;3201:4;3190:16;;3180:27;;3170:55;;3221:1;3218;3211:12;3236:252;3300:6;3308;3361:2;3349:9;3340:7;3336:23;3332:32;3329:52;;;3377:1;3374;3367:12;3329:52;3400:27;3417:9;3400:27;:::i;:::-;3390:37;;3446:36;3478:2;3467:9;3463:18;3446:36;:::i;3493:160::-;3558:20;;3614:13;;3607:21;3597:32;;3587:60;;3643:1;3640;3633:12;3658:383;3729:6;3737;3745;3798:2;3786:9;3777:7;3773:23;3769:32;3766:52;;;3814:1;3811;3804:12;3766:52;3853:9;3840:23;3872:31;3897:5;3872:31;:::i;:::-;3922:5;-1:-1:-1;3946:35:1;3977:2;3962:18;;3946:35;:::i;:::-;3936:45;;4000:35;4031:2;4020:9;4016:18;4000:35;:::i;:::-;3990:45;;3658:383;;;;;:::o;4046:388::-;4114:6;4122;4175:2;4163:9;4154:7;4150:23;4146:32;4143:52;;;4191:1;4188;4181:12;4143:52;4230:9;4217:23;4249:31;4274:5;4249:31;:::i;:::-;4299:5;-1:-1:-1;4356:2:1;4341:18;;4328:32;4369:33;4328:32;4369:33;:::i;:::-;4421:7;4411:17;;;4046:388;;;;;:::o;4439:163::-;4506:20;;4566:10;4555:22;;4545:33;;4535:61;;4592:1;4589;4582:12;4607:474;4697:6;4705;4713;4721;4729;4782:3;4770:9;4761:7;4757:23;4753:33;4750:53;;;4799:1;4796;4789:12;4750:53;4822:28;4840:9;4822:28;:::i;:::-;4812:38;;4869:37;4902:2;4891:9;4887:18;4869:37;:::i;:::-;4859:47;;4925:37;4958:2;4947:9;4943:18;4925:37;:::i;:::-;4915:47;;4981:37;5014:2;5003:9;4999:18;4981:37;:::i;:::-;4971:47;;5037:38;5070:3;5059:9;5055:19;5037:38;:::i;:::-;5027:48;;4607:474;;;;;;;;:::o;5346:127::-;5407:10;5402:3;5398:20;5395:1;5388:31;5438:4;5435:1;5428:15;5462:4;5459:1;5452:15;5478:416;5567:1;5604:5;5567:1;5618:270;5639:7;5629:8;5626:21;5618:270;;;5698:4;5694:1;5690:6;5686:17;5680:4;5677:27;5674:53;;;5707:18;;:::i;:::-;5757:7;5747:8;5743:22;5740:55;;;5777:16;;;;5740:55;5856:22;;;;5816:15;;;;5618:270;;;5622:3;5478:416;;;;;:::o;5899:806::-;5948:5;5978:8;5968:80;;-1:-1:-1;6019:1:1;6033:5;;5968:80;6067:4;6057:76;;-1:-1:-1;6104:1:1;6118:5;;6057:76;6149:4;6167:1;6162:59;;;;6235:1;6230:130;;;;6142:218;;6162:59;6192:1;6183:10;;6206:5;;;6230:130;6267:3;6257:8;6254:17;6251:43;;;6274:18;;:::i;:::-;-1:-1:-1;;6330:1:1;6316:16;;6345:5;;6142:218;;6444:2;6434:8;6431:16;6425:3;6419:4;6416:13;6412:36;6406:2;6396:8;6393:16;6388:2;6382:4;6379:12;6375:35;6372:77;6369:159;;;-1:-1:-1;6481:19:1;;;6513:5;;6369:159;6560:34;6585:8;6579:4;6560:34;:::i;:::-;6630:6;6626:1;6622:6;6618:19;6609:7;6606:32;6603:58;;;6641:18;;:::i;:::-;6679:20;;5899:806;-1:-1:-1;;;5899:806:1:o;6710:140::-;6768:5;6797:47;6838:4;6828:8;6824:19;6818:4;6797:47;:::i;6855:168::-;6928:9;;;6959;;6976:15;;;6970:22;;6956:37;6946:71;;6997:18;;:::i;7373:128::-;7440:9;;;7461:11;;;7458:37;;;7475:18;;:::i;7506:348::-;7708:2;7690:21;;;7747:2;7727:18;;;7720:30;7786:26;7781:2;7766:18;;7759:54;7845:2;7830:18;;7506:348::o;7859:217::-;7899:1;7925;7915:132;;7969:10;7964:3;7960:20;7957:1;7950:31;8004:4;8001:1;7994:15;8032:4;8029:1;8022:15;7915:132;-1:-1:-1;8061:9:1;;7859:217::o;8081:125::-;8146:9;;;8167:10;;;8164:36;;;8180:18;;:::i;9586:148::-;9674:4;9653:12;;;9667;;;9649:31;;9692:13;;9689:39;;;9708:18;;:::i;10431:255::-;10502:16;10550:10;;;10562;;;10546:27;10593:20;;;;10502:16;10632:24;;;10622:58;;10660:18;;:::i;:::-;10622:58;;10431:255;;;;:::o;12043:251::-;12113:6;12166:2;12154:9;12145:7;12141:23;12137:32;12134:52;;;12182:1;12179;12172:12;12134:52;12214:9;12208:16;12233:31;12258:5;12233:31;:::i;14208:301::-;14337:3;14375:6;14369:13;14421:6;14414:4;14406:6;14402:17;14397:3;14391:37;14483:1;14447:16;;14472:13;;;-1:-1:-1;14447:16:1;14208:301;-1:-1:-1;14208:301:1:o;15471:306::-;15559:6;15567;15575;15628:2;15616:9;15607:7;15603:23;15599:32;15596:52;;;15644:1;15641;15634:12;15596:52;15673:9;15667:16;15657:26;;15723:2;15712:9;15708:18;15702:25;15692:35;;15767:2;15756:9;15752:18;15746:25;15736:35;;15471:306;;;;;:::o;15782:184::-;15852:6;15905:2;15893:9;15884:7;15880:23;15876:32;15873:52;;;15921:1;15918;15911:12;15873:52;-1:-1:-1;15944:16:1;;15782:184;-1:-1:-1;15782:184:1:o;16103:127::-;16164:10;16159:3;16155:20;16152:1;16145:31;16195:4;16192:1;16185:15;16219:4;16216:1;16209:15;16235:980;16497:4;16545:3;16534:9;16530:19;16576:6;16565:9;16558:25;16602:2;16640:6;16635:2;16624:9;16620:18;16613:34;16683:3;16678:2;16667:9;16663:18;16656:31;16707:6;16742;16736:13;16773:6;16765;16758:22;16811:3;16800:9;16796:19;16789:26;;16850:2;16842:6;16838:15;16824:29;;16871:1;16881:195;16895:6;16892:1;16889:13;16881:195;;;16960:13;;-1:-1:-1;;;;;16956:39:1;16944:52;;17051:15;;;;17016:12;;;;16992:1;16910:9;16881:195;;;-1:-1:-1;;;;;;;17132:32:1;;;;17127:2;17112:18;;17105:60;-1:-1:-1;;;17196:3:1;17181:19;17174:35;17093:3;16235:980;-1:-1:-1;;;16235:980:1:o

Swarm Source

ipfs://f9b0683304191056c6cf397603d8a6e763cabe758e11b65725fe53e9218bba57

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.