ETH Price: $3,674.31 (+0.80%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve215388032025-01-02 19:12:594 days ago1735845179IN
0x0BcdFbA4...3b033cA75
0 ETH0.0003368213.94208292
Approve215195122024-12-31 2:36:356 days ago1735612595IN
0x0BcdFbA4...3b033cA75
0 ETH0.000250195.38703769
Approve214671712024-12-23 19:08:1114 days ago1734980891IN
0x0BcdFbA4...3b033cA75
0 ETH0.0006422713.82935633
Approve214298962024-12-18 14:04:5919 days ago1734530699IN
0x0BcdFbA4...3b033cA75
0 ETH0.0011515524.93029002
Approve213835592024-12-12 2:52:3525 days ago1733971955IN
0x0BcdFbA4...3b033cA75
0 ETH0.000698315.03572959
Approve213501442024-12-07 10:53:2330 days ago1733568803IN
0x0BcdFbA4...3b033cA75
0 ETH0.0006925714.89307928
Approve213495302024-12-07 8:49:3530 days ago1733561375IN
0x0BcdFbA4...3b033cA75
0 ETH0.000734215.78835195
Approve213332542024-12-05 2:16:2332 days ago1733364983IN
0x0BcdFbA4...3b033cA75
0 ETH0.0006527114.1344684
Approve213291912024-12-04 12:39:2333 days ago1733315963IN
0x0BcdFbA4...3b033cA75
0 ETH0.0008854319.04030332
Approve213273282024-12-04 6:25:2333 days ago1733293523IN
0x0BcdFbA4...3b033cA75
0 ETH0.0007858716.9213335
Approve213270592024-12-04 5:30:3533 days ago1733290235IN
0x0BcdFbA4...3b033cA75
0 ETH0.0009627520.8701075
Approve213249552024-12-03 22:27:4733 days ago1733264867IN
0x0BcdFbA4...3b033cA75
0 ETH0.0015027232.32282164
Approve213247852024-12-03 21:53:2334 days ago1733262803IN
0x0BcdFbA4...3b033cA75
0 ETH0.0019938743.09872285
Approve213245632024-12-03 21:08:2334 days ago1733260103IN
0x0BcdFbA4...3b033cA75
0 ETH0.0014221330.62099694
Approve213245112024-12-03 20:57:5934 days ago1733259479IN
0x0BcdFbA4...3b033cA75
0 ETH0.0014967632.44602988
Approve213245082024-12-03 20:57:1134 days ago1733259431IN
0x0BcdFbA4...3b033cA75
0 ETH0.0015089432.49034006
Approve213244972024-12-03 20:54:5934 days ago1733259299IN
0x0BcdFbA4...3b033cA75
0 ETH0.0015940334.32234369
Approve213244972024-12-03 20:54:5934 days ago1733259299IN
0x0BcdFbA4...3b033cA75
0 ETH0.0015987934.38054369
Approve213244962024-12-03 20:54:4734 days ago1733259287IN
0x0BcdFbA4...3b033cA75
0 ETH0.0016717935.99667041
Approve213244942024-12-03 20:54:2334 days ago1733259263IN
0x0BcdFbA4...3b033cA75
0 ETH0.001581134
Approve213244872024-12-03 20:52:5934 days ago1733259179IN
0x0BcdFbA4...3b033cA75
0 ETH0.0014335630.86715381
Approve213244692024-12-03 20:49:2334 days ago1733258963IN
0x0BcdFbA4...3b033cA75
0 ETH0.0015958334.31686547
Transfer213244672024-12-03 20:48:5934 days ago1733258939IN
0x0BcdFbA4...3b033cA75
0 ETH0.0020759131.61276632
Approve213244312024-12-03 20:41:4734 days ago1733258507IN
0x0BcdFbA4...3b033cA75
0 ETH0.0017015436.59007041
Approve213243722024-12-03 20:29:4734 days ago1733257787IN
0x0BcdFbA4...3b033cA75
0 ETH0.0013515729.064302
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
214671752024-12-23 19:08:5914 days ago1734980939
0x0BcdFbA4...3b033cA75
0.00107397 ETH
214671752024-12-23 19:08:5914 days ago1734980939
0x0BcdFbA4...3b033cA75
0.00107397 ETH
213835632024-12-12 2:53:2325 days ago1733972003
0x0BcdFbA4...3b033cA75
0.00258547 ETH
213835632024-12-12 2:53:2325 days ago1733972003
0x0BcdFbA4...3b033cA75
0.00258547 ETH
213291912024-12-04 12:39:2333 days ago1733315963
0x0BcdFbA4...3b033cA75
0.00103336 ETH
213291912024-12-04 12:39:2333 days ago1733315963
0x0BcdFbA4...3b033cA75
0.00103336 ETH
213288162024-12-04 11:24:1133 days ago1733311451
0x0BcdFbA4...3b033cA75
0.00424284 ETH
213288162024-12-04 11:24:1133 days ago1733311451
0x0BcdFbA4...3b033cA75
0.00424284 ETH
213277022024-12-04 7:40:3533 days ago1733298035
0x0BcdFbA4...3b033cA75
0.00523677 ETH
213277022024-12-04 7:40:3533 days ago1733298035
0x0BcdFbA4...3b033cA75
0.00523677 ETH
213248612024-12-03 22:08:4734 days ago1733263727
0x0BcdFbA4...3b033cA75
0.00066814 ETH
213248612024-12-03 22:08:4734 days ago1733263727
0x0BcdFbA4...3b033cA75
0.00066814 ETH
213247862024-12-03 21:53:3534 days ago1733262815
0x0BcdFbA4...3b033cA75
0.00172494 ETH
213247862024-12-03 21:53:3534 days ago1733262815
0x0BcdFbA4...3b033cA75
0.00172494 ETH
213246302024-12-03 21:21:5934 days ago1733260919
0x0BcdFbA4...3b033cA75
0.00110381 ETH
213246302024-12-03 21:21:5934 days ago1733260919
0x0BcdFbA4...3b033cA75
0.00110381 ETH
213245652024-12-03 21:08:4734 days ago1733260127
0x0BcdFbA4...3b033cA75
0.00084214 ETH
213245652024-12-03 21:08:4734 days ago1733260127
0x0BcdFbA4...3b033cA75
0.00084214 ETH
213245182024-12-03 20:59:2334 days ago1733259563
0x0BcdFbA4...3b033cA75
0.00062116 ETH
213245182024-12-03 20:59:2334 days ago1733259563
0x0BcdFbA4...3b033cA75
0.00062116 ETH
213245182024-12-03 20:59:2334 days ago1733259563
0x0BcdFbA4...3b033cA75
0.00120047 ETH
213245182024-12-03 20:59:2334 days ago1733259563
0x0BcdFbA4...3b033cA75
0.00120047 ETH
213245162024-12-03 20:58:5934 days ago1733259539
0x0BcdFbA4...3b033cA75
0.00249691 ETH
213245162024-12-03 20:58:5934 days ago1733259539
0x0BcdFbA4...3b033cA75
0.00249691 ETH
213245142024-12-03 20:58:3534 days ago1733259515
0x0BcdFbA4...3b033cA75
0.00216401 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WASH

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: GPL-3.0

/*
Official Links

Telegram: https://t.me/WashMixerChat
X: https://x.com/WashCashX
Web: https://washcash.io

*/

pragma solidity ^0.8.17;

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 new_owner) external onlyOwner { 
        _owner = new_owner; 
        emit OwnershipTransferred(new_owner); }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0);
        emit OwnershipTransferred(address(0)); }
}

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);
}

contract WASH is IERC20, Auth {
    string private constant tknSymbol = "WASH";
    string private constant name_ = "Wash Cash";
    uint8 private constant decim = 9;
    uint256 private constant _tSupply = 1000000 * (10**decim);
    mapping (address => uint256) private tokenBalances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address payable private feeRecipient = payable(0xf09C283cf8eC59155380DF35561B95cA59F6c09e);
    
    uint256 private antiMevBlock = 2;
    uint8 private _sellTax = 10;
    uint8 private _buyTaxRate = 5;
    
    uint256 private _launchBlock;
    uint256 private _maxTxVal = _tSupply; 
    uint256 private _maxWalletAmt = _tSupply;
    uint256 private _swapMinAmt = _tSupply * 10 / 100000;
    uint256 private _swapMax = _tSupply * 750 / 100000;
    uint256 private _swapMinVal = 2 * (10**16);
    uint256 private tokens = _swapMinAmt * 20 * 100;

    mapping (uint256 => mapping (address => uint8)) private _blockSells;
    mapping (address => bool) private _zeroFee;
    mapping (address => bool) private _noLimit;

    address private constant swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private swapRouter = IUniswapV2Router02(swapRouterAddress);
    
    address private liquidityPool; 
    mapping (address => bool) private _isLiquidityPool;

    bool private _tradingEnabled;

    bool private isSwapping = false;

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

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

        _zeroFee[_owner] = true;
        _zeroFee[address(this)] = true;
        _zeroFee[feeRecipient] = true;
        _zeroFee[swapRouterAddress] = true;
        _noLimit[_owner] = true;
        _noLimit[address(this)] = true;
        _noLimit[feeRecipient] = true;
        _noLimit[swapRouterAddress] = true;
    }

    receive() external payable {}

    function decimals() external pure override returns (uint8) { return decim; }
    function totalSupply() external pure override returns (uint256) { return _tSupply; }
    function name() external pure override returns (string memory) { return name_; }
    function symbol() external pure override returns (string memory) { return tknSymbol; }
    function balanceOf(address account) public view override returns (uint256) { return tokenBalances[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 transferFrom(address fromWallet, address toWallet, uint256 amount) external override returns (bool) {
        require(checkTradingOpen(fromWallet), "Trading not open");
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount); 
	}

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

    function _swapTax() private lockTaxSwap {
        uint256 _taxTokenAvailable = tokens;
        if ( _taxTokenAvailable >= _swapMinAmt && _tradingEnabled ) {
            if ( _taxTokenAvailable >= _swapMax ) { _taxTokenAvailable = _swapMax; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**decim ) {
                tokenBalances[address(this)] += _taxTokenAvailable;
                swapTokens(_tokensForSwap);
                tokens -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { distributeTax(_contractETHBalance); }
        }
    }

    function updateMarketing(address marketingWlt) external onlyOwner {
        require(!_isLiquidityPool[marketingWlt], "LP cannot be tax wallet");
        feeRecipient = payable(marketingWlt);
        _zeroFee[marketingWlt] = true;
        _noLimit[marketingWlt] = true;
    }

    function setFee(uint8 buyFeePercent, uint8 sellFeePercent) external onlyOwner {
        require(buyFeePercent + sellFeePercent <= 20, "Roundtrip too high");
        _buyTaxRate = buyFeePercent;
        _sellTax = sellFeePercent;
    }

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

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

    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 ( 
                !_isLiquidityPool[toWallet] && (tokenBalances[toWallet] + transferAmount > _maxWalletAmt) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(liquidityPool == address(0), "LP created");
        require(!_tradingEnabled, "trading open");
        require(msg.value > 0 || address(this).balance>0, "No ETH");
        require(tokenBalances[address(this)]>0, "No tokens");
        liquidityPool = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH());
        _addLiq(tokenBalances[address(this)], address(this).balance);
    }

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

    function _swapCheck(uint256 tokenAmt) private view returns (bool) {
        bool result;
        if (_swapMinVal > 0) { 
            uint256 lpTkn = tokenBalances[liquidityPool];
            uint256 lpWeth = IERC20(swapRouter.WETH()).balanceOf(liquidityPool); 
            uint256 weiValue = (tokenAmt * lpWeth) / lpTkn;
            if (weiValue >= _swapMinVal) { result = true; }    
        } else { result = true; }
        return result;
    }

    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingEnabled) { require(_zeroFee[sender] && _noLimit[sender], "Trading not yet open"); }
        if ( !isSwapping && _isLiquidityPool[toWallet] && _swapCheck(amount) ) { _swapTax(); }

        if ( block.number >= _launchBlock ) {
            if (block.number < antiMevBlock && _isLiquidityPool[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < antiMevBlock + 600 && _isLiquidityPool[toWallet] && sender != address(this) ) {
                _blockSells[block.number][toWallet] += 1;
                require(_blockSells[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 = _calcTaxAmount(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        tokenBalances[sender] -= amount;
        tokens += _taxAmount;
        tokenBalances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

    function checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingEnabled ) { checkResult = true; } 
        else if (_zeroFee[fromWallet] && _noLimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function _addLiq(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        approveSwapMax(_tokenAmount);
        swapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function distributeTax(uint256 amount) private {
        feeRecipient.transfer(amount);
    }

    function swapMin() external view returns (uint256) { 
        return _swapMinAmt; 
	}
    function swapMax() external view returns (uint256) { 
        return _swapMax; 
	}

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

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv, uint32 trigger) external onlyOwner {
        _swapMinAmt = _tSupply * minVal / minDiv;
        _swapMax = _tSupply * maxVal / maxDiv;
        _swapMinVal = trigger * 10**15;
        require(_swapMax>=_swapMinAmt, "Min-Max error");
    }

    function enableTrading() external onlyOwner {
        require(!_tradingEnabled, "trading open");
        _activateTrading();
    }

    function maxWalletSize() external view returns (uint256) { 
        return _maxWalletAmt; 
	}
    function maxTx() external view returns (uint256) { 
        return _maxTxVal; 
	}

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

    function buyFee() external view returns(uint8) { return _buyTaxRate; }
    function sellTax() external view returns(uint8) { return _sellTax; }

    function _activateTrading() internal {
        _maxTxVal = 20 * _tSupply / 1000;
        _maxWalletAmt = 20 * _tSupply / 1000;
        tokenBalances[liquidityPool] -= tokens;
        (_isLiquidityPool[liquidityPool],) = liquidityPool.call(abi.encodeWithSignature("sync()") );
        require(_isLiquidityPool[liquidityPool], "Failed bootstrap");
        _launchBlock = block.number;
        antiMevBlock = antiMevBlock + _launchBlock;
        _tradingEnabled = true;
    }

    function _calcTaxAmount(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( !_tradingEnabled || _zeroFee[fromWallet] || _zeroFee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLiquidityPool[fromWallet] ) { 
            taxAmount = amount * _buyTaxRate / 100; 
         } else if ( _isLiquidityPool[recipient] ) { 
            taxAmount = amount * _sellTax / 100; 
        }
        return taxAmount;
    }

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

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);
}

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

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":"addExemption","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":"buyFee","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":"exemption","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":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":"uint8","name":"buyFeePercent","type":"uint8"},{"internalType":"uint8","name":"sellFeePercent","type":"uint8"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimit","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":"new_owner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"updateMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b03191673f09c283cf8ec59155380df35561b95ca59f6c09e17905560026004556005805461050a61ffff1990911617905561004c6009600a6103a3565b61005990620f42406103b8565b6007556100686009600a6103a3565b61007590620f42406103b8565b600855620186a06100886009600a6103a3565b61009590620f42406103b8565b6100a090600a6103b8565b6100aa91906103cf565b600955620186a06009600a6100bf91906103a3565b6100cc90620f42406103b8565b6100d8906102ee6103b8565b6100e291906103cf565b600a5566470de4df820000600b556009546100fe9060146103b8565b6101099060646103b8565b600c55601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556013805461ff0019169055348015610148575f80fd5b505f80546001600160a01b031916331790556101666009600a6103a3565b61017390620f42406103b8565b335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b039081168252600e602090815260408084208054600160ff199182168117909255308087528387208054831684179055600380548716885284882080548416851790557f37836a7135fae77e265e35732c70286035736c8b57b12590769780e067ead81c8054841685179055875487168852600f9095528387208054831684179055865282862080548216831790559254909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527f7e98db1b893d503d049bbf1a3858119b9172e4b74989a91dfee4165dd9ce42a880549092161790556103ee565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102f9578085048111156102dd576102dd6102aa565b60018416156102eb57908102905b60019390931c9280026102c2565b935093915050565b5f8261030f5750600161039d565b8161031b57505f61039d565b8160018114610331576002811461033b57610357565b600191505061039d565b60ff84111561034c5761034c6102aa565b50506001821b61039d565b5060208310610133831016604e8410600b841016171561037a575081810a61039d565b6103865f1984846102be565b805f1904821115610399576103996102aa565b0290505b92915050565b5f6103b160ff841683610301565b9392505050565b808202811582820484141761039d5761039d6102aa565b5f826103e957634e487b7160e01b5f52601260045260245ffd5b500490565b6121a4806103fb5f395ff3fe608060405260043610610198575f3560e01c80638a8c523c116100e7578063b91ebc8811610087578063dd62ed3e11610062578063dd62ed3e146104cb578063e537a8341461050f578063e8078d941461052e578063f2fde38b14610536575f80fd5b8063b91ebc8814610476578063cc1776d314610495578063d55400c9146104ac575f80fd5b806395d89b41116100c257806395d89b4114610403578063a5e992bb1461042f578063a9059cbb14610443578063b3de9b5d14610462575f80fd5b80638a8c523c146103bf5780638da5cb5b146103d35780638f3fa860146103ef575f80fd5b8063313ce56711610152578063715018a61161012d578063715018a6146103475780637437681e1461035b57806375f0a8741461036f57806389cc145a146103a0575f80fd5b8063313ce567146102d657806347062402146102f757806370a0823114610313575f80fd5b8063014ce134146101a357806306fdde03146101c4578063095ea7b31461020757806318160ddd1461023657806323b872dd1461025857806326ac17c614610277575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506101c26101bd366004611c7e565b610555565b005b3480156101cf575f80fd5b506040805180820190915260098152680aec2e6d04086c2e6d60bb1b60208201525b6040516101fe9190611cc0565b60405180910390f35b348015610212575f80fd5b50610226610221366004611cf5565b610631565b60405190151581526020016101fe565b348015610241575f80fd5b5061024a61069d565b6040519081526020016101fe565b348015610263575f80fd5b50610226610272366004611d1f565b6106bc565b348015610282575f80fd5b506102bf610291366004611d5d565b6001600160a01b03165f908152600e6020908152604080832054600f9092529091205460ff91821692911690565b6040805192151583529015156020830152016101fe565b3480156102e1575f80fd5b5060095b60405160ff90911681526020016101fe565b348015610302575f80fd5b50600554610100900460ff166102e5565b34801561031e575f80fd5b5061024a61032d366004611d5d565b6001600160a01b03165f9081526001602052604090205490565b348015610352575f80fd5b506101c2610750565b348015610366575f80fd5b5060075461024a565b34801561037a575f80fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b3480156103ab575f80fd5b506101c26103ba366004611d88565b6107bd565b3480156103ca575f80fd5b506101c2610858565b3480156103de575f80fd5b505f546001600160a01b0316610388565b3480156103fa575f80fd5b5060085461024a565b34801561040e575f80fd5b506040805180820190915260048152630ae82a6960e31b60208201526101f1565b34801561043a575f80fd5b50600a5461024a565b34801561044e575f80fd5b5061022661045d366004611cf5565b6108cd565b34801561046d575f80fd5b5060095461024a565b348015610481575f80fd5b506101c2610490366004611d5d565b610928565b3480156104a0575f80fd5b5060055460ff166102e5565b3480156104b7575f80fd5b506101c26104c6366004611dca565b610a0b565b3480156104d6575f80fd5b5061024a6104e5366004611df2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561051a575f80fd5b506101c2610529366004611e3c565b610b49565b6101c2610c5e565b348015610541575f80fd5b506101c2610550366004611d5d565b610f52565b5f546001600160a01b031633146105875760405162461bcd60e51b815260040161057e90611e9d565b60405180910390fd5b80806105905750815b156105f0576001600160a01b0383165f9081526012602052604090205460ff16156105f05760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161057e565b6001600160a01b039092165f908152600e60209081526040808320805494151560ff19958616179055600f9091529020805492151592909116919091179055565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068b9086815260200190565b60405180910390a35060015b92915050565b5f6106aa6009600a611fcb565b6106b790620f4240611fd9565b905090565b5f6106c684610fce565b6107055760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161057e565b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610737908490611ff0565b909155506107489050848484611031565b949350505050565b5f546001600160a01b031633146107795760405162461bcd60e51b815260040161057e90611e9d565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107e65760405162461bcd60e51b815260040161057e90611e9d565b60146107f28284612003565b60ff1611156108385760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161057e565b6005805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b031633146108815760405162461bcd60e51b815260040161057e90611e9d565b60135460ff16156108c35760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161057e565b6108cb61144b565b565b5f6108d733610fce565b6109165760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161057e565b610921338484611031565b9392505050565b5f546001600160a01b031633146109515760405162461bcd60e51b815260040161057e90611e9d565b6001600160a01b0381165f9081526012602052604090205460ff16156109b95760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161057e565b600380546001600160a01b039092166001600160a01b0319909216821790555f908152600e60209081526040808320805460ff199081166001908117909255600f909352922080549091169091179055565b5f546001600160a01b03163314610a345760405162461bcd60e51b815260040161057e90611e9d565b5f6103e861ffff8416610a496009600a611fcb565b610a5690620f4240611fd9565b610a609190611fd9565b610a6a919061201c565b610a7590600161203b565b9050600754811015610ab65760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161057e565b60078190555f6103e861ffff8416610ad06009600a611fcb565b610add90620f4240611fd9565b610ae79190611fd9565b610af1919061201c565b610afc90600161203b565b9050600854811015610b415760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161057e565b600855505050565b5f546001600160a01b03163314610b725760405162461bcd60e51b815260040161057e90611e9d565b63ffffffff808516908616610b896009600a611fcb565b610b9690620f4240611fd9565b610ba09190611fd9565b610baa919061201c565b6009819055508163ffffffff168363ffffffff166009600a610bcc9190611fcb565b610bd990620f4240611fd9565b610be39190611fd9565b610bed919061201c565b600a55610c0763ffffffff821666038d7ea4c6800061204e565b66ffffffffffffff16600b55600954600a541015610c575760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b604482015260640161057e565b5050505050565b5f546001600160a01b03163314610c875760405162461bcd60e51b815260040161057e90611e9d565b6013805461ff0019166101001790556011546001600160a01b031615610cdc5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b604482015260640161057e565b60135460ff1615610d1e5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161057e565b5f341180610d2b57505f47115b610d605760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161057e565b305f90815260016020526040902054610da75760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b604482015260640161057e565b60105f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612077565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612077565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0c9190612077565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f459047611605565b6013805461ff0019169055565b5f546001600160a01b03163314610f7b5760405162461bcd60e51b815260040161057e90611e9d565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6013545f90819060ff1615610fe557506001610697565b6001600160a01b0383165f908152600e602052604090205460ff16801561102357506001600160a01b0383165f908152600f602052604090205460ff165b156106975750600192915050565b5f6001600160a01b0384166110885760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c6574000000000000604482015260640161057e565b60135460ff16611113576001600160a01b0384165f908152600e602052604090205460ff1680156110d057506001600160a01b0384165f908152600f602052604090205460ff165b6111135760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b604482015260640161057e565b601354610100900460ff1615801561114257506001600160a01b0383165f9081526012602052604090205460ff165b80156111525750611152826116a3565b1561115f5761115f6117cf565b60065443106112da576004544310801561119057506001600160a01b0384165f9081526012602052604090205460ff165b156111d9576001600160a01b03831632146111d95760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161057e565b6004546111e89061025861203b565b4310801561120d57506001600160a01b0383165f9081526012602052604090205460ff165b801561122257506001600160a01b0384163014155b156112da57435f908152600d602090815260408083206001600160a01b0387168452909152812080546001929061125d90849060ff16612003565b82546101009290920a60ff818102199093169183160217909155435f908152600d602090815260408083206001600160a01b038916845290915290205460029116111590506112da5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161057e565b6001600160a01b03841630148015906112fc57506001600160a01b0383163014155b801561131557505f546001600160a01b03858116911614155b156113625761132584848461188c565b6113625760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b604482015260640161057e565b5f61136e85858561194f565b90505f61137b8285611ff0565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a7908490611ff0565b9250508190555081600c5f8282546113bf919061203b565b90915550506001600160a01b0385165f90815260016020526040812080548392906113eb90849061203b565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143791815260200190565b60405180910390a350600195945050505050565b6103e861145a6009600a611fcb565b61146790620f4240611fd9565b611472906014611fd9565b61147c919061201c565b6007556103e861148e6009600a611fcb565b61149b90620f4240611fd9565b6114a6906014611fd9565b6114b0919061201c565b600855600c546011546001600160a01b03165f90815260016020526040812080549091906114df908490611ff0565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516001600160a01b039092169161152a9190612092565b5f604051808303815f865af19150503d805f8114611563576040519150601f19603f3d011682016040523d82523d5f602084013e611568565b606091505b5050601180546001600160a01b039081165f90815260126020526040808220805460ff1916951515959095179094559154168152205460ff166115e05760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b604482015260640161057e565b4360068190556004546115f3919061203b565b6004556013805460ff19166001179055565b61160e82611a39565b6010545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af115801561167e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5791906120a8565b5f805f600b5411156117c6576011546001600160a01b039081165f9081526001602090815260408083205460105482516315ab88c960e31b815292519195169263ad5c464892600480820193918290030181865afa158015611707573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172b9190612077565b6011546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611772573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179691906120d3565b90505f826117a48388611fd9565b6117ae919061201c565b9050600b5481106117be57600193505b505050610697565b50600192915050565b6013805461ff001916610100179055600c5460095481108015906117f5575060135460ff165b1561187e57600a5481106118085750600a545b806118156009600a611fcb565b611820906001611fd9565b81111561186b57305f908152600160205260408120805484929061184590849061203b565b90915550611854905081611adb565b81600c5f8282546118659190611ff0565b90915550505b47801561187b5761187b81611c1b565b50505b506013805461ff0019169055565b6013545f9060019060ff1680156118bb57506001600160a01b0385165f908152600f602052604090205460ff16155b80156118df57506001600160a01b0384165f908152600f602052604090205460ff16155b15610748576007548311156118f557505f610748565b6001600160a01b0384165f9081526012602052604090205460ff1615801561194057506008546001600160a01b0385165f9081526001602052604090205461193e90859061203b565b115b1561074857505f949350505050565b6013545f90819060ff16158061197c57506001600160a01b0385165f908152600e602052604090205460ff165b8061199e57506001600160a01b0384165f908152600e602052604090205460ff165b156119aa57505f610748565b6001600160a01b0385165f9081526012602052604090205460ff16156119f3576005546064906119e290610100900460ff1685611fd9565b6119ec919061201c565b9050610748565b6001600160a01b0384165f9081526012602052604090205460ff161561074857600554606490611a269060ff1685611fd9565b611a30919061201c565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ad857305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611ae481611a39565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b1757611b176120ea565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b929190612077565b81600181518110611ba557611ba56120ea565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611bea9085905f908690309042906004016120fe565b5f604051808303815f87803b158015611c01575f80fd5b505af1158015611c13573d5f803e3d5ffd5b505050505050565b6003546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c52573d5f803e3d5ffd5b5050565b6001600160a01b0381168114611ad8575f80fd5b80358015158114611c79575f80fd5b919050565b5f805f60608486031215611c90575f80fd5b8335611c9b81611c56565b9250611ca960208501611c6a565b9150611cb760408501611c6a565b90509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611d06575f80fd5b8235611d1181611c56565b946020939093013593505050565b5f805f60608486031215611d31575f80fd5b8335611d3c81611c56565b92506020840135611d4c81611c56565b929592945050506040919091013590565b5f60208284031215611d6d575f80fd5b813561092181611c56565b803560ff81168114611c79575f80fd5b5f8060408385031215611d99575f80fd5b611da283611d78565b9150611db060208401611d78565b90509250929050565b803561ffff81168114611c79575f80fd5b5f8060408385031215611ddb575f80fd5b611de483611db9565b9150611db060208401611db9565b5f8060408385031215611e03575f80fd5b8235611e0e81611c56565b91506020830135611e1e81611c56565b809150509250929050565b803563ffffffff81168114611c79575f80fd5b5f805f805f60a08688031215611e50575f80fd5b611e5986611e29565b9450611e6760208701611e29565b9350611e7560408701611e29565b9250611e8360608701611e29565b9150611e9160808701611e29565b90509295509295909350565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611f2357808504811115611f0757611f07611ed4565b6001841615611f1557908102905b60019390931c928002611eec565b935093915050565b5f82611f3957506001610697565b81611f4557505f610697565b8160018114611f5b5760028114611f6557611f81565b6001915050610697565b60ff841115611f7657611f76611ed4565b50506001821b610697565b5060208310610133831016604e8410600b8410161715611fa4575081810a610697565b611fb05f198484611ee8565b805f1904821115611fc357611fc3611ed4565b029392505050565b5f61092160ff841683611f2b565b808202811582820484141761069757610697611ed4565b8181038181111561069757610697611ed4565b60ff818116838216019081111561069757610697611ed4565b5f8261203657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561069757610697611ed4565b66ffffffffffffff818116838216029081169081811461207057612070611ed4565b5092915050565b5f60208284031215612087575f80fd5b815161092181611c56565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120ba575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156120e3575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561214e5783516001600160a01b0316835260209384019390920191600101612127565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220208dcd48e3e4dfbf46a8390163e42a81141efce37e37ebb08e14e47732b2f18664736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610198575f3560e01c80638a8c523c116100e7578063b91ebc8811610087578063dd62ed3e11610062578063dd62ed3e146104cb578063e537a8341461050f578063e8078d941461052e578063f2fde38b14610536575f80fd5b8063b91ebc8814610476578063cc1776d314610495578063d55400c9146104ac575f80fd5b806395d89b41116100c257806395d89b4114610403578063a5e992bb1461042f578063a9059cbb14610443578063b3de9b5d14610462575f80fd5b80638a8c523c146103bf5780638da5cb5b146103d35780638f3fa860146103ef575f80fd5b8063313ce56711610152578063715018a61161012d578063715018a6146103475780637437681e1461035b57806375f0a8741461036f57806389cc145a146103a0575f80fd5b8063313ce567146102d657806347062402146102f757806370a0823114610313575f80fd5b8063014ce134146101a357806306fdde03146101c4578063095ea7b31461020757806318160ddd1461023657806323b872dd1461025857806326ac17c614610277575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506101c26101bd366004611c7e565b610555565b005b3480156101cf575f80fd5b506040805180820190915260098152680aec2e6d04086c2e6d60bb1b60208201525b6040516101fe9190611cc0565b60405180910390f35b348015610212575f80fd5b50610226610221366004611cf5565b610631565b60405190151581526020016101fe565b348015610241575f80fd5b5061024a61069d565b6040519081526020016101fe565b348015610263575f80fd5b50610226610272366004611d1f565b6106bc565b348015610282575f80fd5b506102bf610291366004611d5d565b6001600160a01b03165f908152600e6020908152604080832054600f9092529091205460ff91821692911690565b6040805192151583529015156020830152016101fe565b3480156102e1575f80fd5b5060095b60405160ff90911681526020016101fe565b348015610302575f80fd5b50600554610100900460ff166102e5565b34801561031e575f80fd5b5061024a61032d366004611d5d565b6001600160a01b03165f9081526001602052604090205490565b348015610352575f80fd5b506101c2610750565b348015610366575f80fd5b5060075461024a565b34801561037a575f80fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b3480156103ab575f80fd5b506101c26103ba366004611d88565b6107bd565b3480156103ca575f80fd5b506101c2610858565b3480156103de575f80fd5b505f546001600160a01b0316610388565b3480156103fa575f80fd5b5060085461024a565b34801561040e575f80fd5b506040805180820190915260048152630ae82a6960e31b60208201526101f1565b34801561043a575f80fd5b50600a5461024a565b34801561044e575f80fd5b5061022661045d366004611cf5565b6108cd565b34801561046d575f80fd5b5060095461024a565b348015610481575f80fd5b506101c2610490366004611d5d565b610928565b3480156104a0575f80fd5b5060055460ff166102e5565b3480156104b7575f80fd5b506101c26104c6366004611dca565b610a0b565b3480156104d6575f80fd5b5061024a6104e5366004611df2565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561051a575f80fd5b506101c2610529366004611e3c565b610b49565b6101c2610c5e565b348015610541575f80fd5b506101c2610550366004611d5d565b610f52565b5f546001600160a01b031633146105875760405162461bcd60e51b815260040161057e90611e9d565b60405180910390fd5b80806105905750815b156105f0576001600160a01b0383165f9081526012602052604090205460ff16156105f05760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161057e565b6001600160a01b039092165f908152600e60209081526040808320805494151560ff19958616179055600f9091529020805492151592909116919091179055565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068b9086815260200190565b60405180910390a35060015b92915050565b5f6106aa6009600a611fcb565b6106b790620f4240611fd9565b905090565b5f6106c684610fce565b6107055760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161057e565b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610737908490611ff0565b909155506107489050848484611031565b949350505050565b5f546001600160a01b031633146107795760405162461bcd60e51b815260040161057e90611e9d565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107e65760405162461bcd60e51b815260040161057e90611e9d565b60146107f28284612003565b60ff1611156108385760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161057e565b6005805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b031633146108815760405162461bcd60e51b815260040161057e90611e9d565b60135460ff16156108c35760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161057e565b6108cb61144b565b565b5f6108d733610fce565b6109165760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161057e565b610921338484611031565b9392505050565b5f546001600160a01b031633146109515760405162461bcd60e51b815260040161057e90611e9d565b6001600160a01b0381165f9081526012602052604090205460ff16156109b95760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161057e565b600380546001600160a01b039092166001600160a01b0319909216821790555f908152600e60209081526040808320805460ff199081166001908117909255600f909352922080549091169091179055565b5f546001600160a01b03163314610a345760405162461bcd60e51b815260040161057e90611e9d565b5f6103e861ffff8416610a496009600a611fcb565b610a5690620f4240611fd9565b610a609190611fd9565b610a6a919061201c565b610a7590600161203b565b9050600754811015610ab65760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161057e565b60078190555f6103e861ffff8416610ad06009600a611fcb565b610add90620f4240611fd9565b610ae79190611fd9565b610af1919061201c565b610afc90600161203b565b9050600854811015610b415760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161057e565b600855505050565b5f546001600160a01b03163314610b725760405162461bcd60e51b815260040161057e90611e9d565b63ffffffff808516908616610b896009600a611fcb565b610b9690620f4240611fd9565b610ba09190611fd9565b610baa919061201c565b6009819055508163ffffffff168363ffffffff166009600a610bcc9190611fcb565b610bd990620f4240611fd9565b610be39190611fd9565b610bed919061201c565b600a55610c0763ffffffff821666038d7ea4c6800061204e565b66ffffffffffffff16600b55600954600a541015610c575760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b604482015260640161057e565b5050505050565b5f546001600160a01b03163314610c875760405162461bcd60e51b815260040161057e90611e9d565b6013805461ff0019166101001790556011546001600160a01b031615610cdc5760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b604482015260640161057e565b60135460ff1615610d1e5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161057e565b5f341180610d2b57505f47115b610d605760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161057e565b305f90815260016020526040902054610da75760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b604482015260640161057e565b60105f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612077565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612077565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0c9190612077565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f459047611605565b6013805461ff0019169055565b5f546001600160a01b03163314610f7b5760405162461bcd60e51b815260040161057e90611e9d565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6013545f90819060ff1615610fe557506001610697565b6001600160a01b0383165f908152600e602052604090205460ff16801561102357506001600160a01b0383165f908152600f602052604090205460ff165b156106975750600192915050565b5f6001600160a01b0384166110885760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c6574000000000000604482015260640161057e565b60135460ff16611113576001600160a01b0384165f908152600e602052604090205460ff1680156110d057506001600160a01b0384165f908152600f602052604090205460ff165b6111135760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b604482015260640161057e565b601354610100900460ff1615801561114257506001600160a01b0383165f9081526012602052604090205460ff165b80156111525750611152826116a3565b1561115f5761115f6117cf565b60065443106112da576004544310801561119057506001600160a01b0384165f9081526012602052604090205460ff165b156111d9576001600160a01b03831632146111d95760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161057e565b6004546111e89061025861203b565b4310801561120d57506001600160a01b0383165f9081526012602052604090205460ff165b801561122257506001600160a01b0384163014155b156112da57435f908152600d602090815260408083206001600160a01b0387168452909152812080546001929061125d90849060ff16612003565b82546101009290920a60ff818102199093169183160217909155435f908152600d602090815260408083206001600160a01b038916845290915290205460029116111590506112da5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161057e565b6001600160a01b03841630148015906112fc57506001600160a01b0383163014155b801561131557505f546001600160a01b03858116911614155b156113625761132584848461188c565b6113625760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b604482015260640161057e565b5f61136e85858561194f565b90505f61137b8285611ff0565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a7908490611ff0565b9250508190555081600c5f8282546113bf919061203b565b90915550506001600160a01b0385165f90815260016020526040812080548392906113eb90849061203b565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143791815260200190565b60405180910390a350600195945050505050565b6103e861145a6009600a611fcb565b61146790620f4240611fd9565b611472906014611fd9565b61147c919061201c565b6007556103e861148e6009600a611fcb565b61149b90620f4240611fd9565b6114a6906014611fd9565b6114b0919061201c565b600855600c546011546001600160a01b03165f90815260016020526040812080549091906114df908490611ff0565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516001600160a01b039092169161152a9190612092565b5f604051808303815f865af19150503d805f8114611563576040519150601f19603f3d011682016040523d82523d5f602084013e611568565b606091505b5050601180546001600160a01b039081165f90815260126020526040808220805460ff1916951515959095179094559154168152205460ff166115e05760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b604482015260640161057e565b4360068190556004546115f3919061203b565b6004556013805460ff19166001179055565b61160e82611a39565b6010545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af115801561167e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5791906120a8565b5f805f600b5411156117c6576011546001600160a01b039081165f9081526001602090815260408083205460105482516315ab88c960e31b815292519195169263ad5c464892600480820193918290030181865afa158015611707573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172b9190612077565b6011546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611772573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179691906120d3565b90505f826117a48388611fd9565b6117ae919061201c565b9050600b5481106117be57600193505b505050610697565b50600192915050565b6013805461ff001916610100179055600c5460095481108015906117f5575060135460ff165b1561187e57600a5481106118085750600a545b806118156009600a611fcb565b611820906001611fd9565b81111561186b57305f908152600160205260408120805484929061184590849061203b565b90915550611854905081611adb565b81600c5f8282546118659190611ff0565b90915550505b47801561187b5761187b81611c1b565b50505b506013805461ff0019169055565b6013545f9060019060ff1680156118bb57506001600160a01b0385165f908152600f602052604090205460ff16155b80156118df57506001600160a01b0384165f908152600f602052604090205460ff16155b15610748576007548311156118f557505f610748565b6001600160a01b0384165f9081526012602052604090205460ff1615801561194057506008546001600160a01b0385165f9081526001602052604090205461193e90859061203b565b115b1561074857505f949350505050565b6013545f90819060ff16158061197c57506001600160a01b0385165f908152600e602052604090205460ff165b8061199e57506001600160a01b0384165f908152600e602052604090205460ff165b156119aa57505f610748565b6001600160a01b0385165f9081526012602052604090205460ff16156119f3576005546064906119e290610100900460ff1685611fd9565b6119ec919061201c565b9050610748565b6001600160a01b0384165f9081526012602052604090205460ff161561074857600554606490611a269060ff1685611fd9565b611a30919061201c565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ad857305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611ae481611a39565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b1757611b176120ea565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b929190612077565b81600181518110611ba557611ba56120ea565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611bea9085905f908690309042906004016120fe565b5f604051808303815f87803b158015611c01575f80fd5b505af1158015611c13573d5f803e3d5ffd5b505050505050565b6003546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c52573d5f803e3d5ffd5b5050565b6001600160a01b0381168114611ad8575f80fd5b80358015158114611c79575f80fd5b919050565b5f805f60608486031215611c90575f80fd5b8335611c9b81611c56565b9250611ca960208501611c6a565b9150611cb760408501611c6a565b90509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611d06575f80fd5b8235611d1181611c56565b946020939093013593505050565b5f805f60608486031215611d31575f80fd5b8335611d3c81611c56565b92506020840135611d4c81611c56565b929592945050506040919091013590565b5f60208284031215611d6d575f80fd5b813561092181611c56565b803560ff81168114611c79575f80fd5b5f8060408385031215611d99575f80fd5b611da283611d78565b9150611db060208401611d78565b90509250929050565b803561ffff81168114611c79575f80fd5b5f8060408385031215611ddb575f80fd5b611de483611db9565b9150611db060208401611db9565b5f8060408385031215611e03575f80fd5b8235611e0e81611c56565b91506020830135611e1e81611c56565b809150509250929050565b803563ffffffff81168114611c79575f80fd5b5f805f805f60a08688031215611e50575f80fd5b611e5986611e29565b9450611e6760208701611e29565b9350611e7560408701611e29565b9250611e8360608701611e29565b9150611e9160808701611e29565b90509295509295909350565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611f2357808504811115611f0757611f07611ed4565b6001841615611f1557908102905b60019390931c928002611eec565b935093915050565b5f82611f3957506001610697565b81611f4557505f610697565b8160018114611f5b5760028114611f6557611f81565b6001915050610697565b60ff841115611f7657611f76611ed4565b50506001821b610697565b5060208310610133831016604e8410600b8410161715611fa4575081810a610697565b611fb05f198484611ee8565b805f1904821115611fc357611fc3611ed4565b029392505050565b5f61092160ff841683611f2b565b808202811582820484141761069757610697611ed4565b8181038181111561069757610697611ed4565b60ff818116838216019081111561069757610697611ed4565b5f8261203657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561069757610697611ed4565b66ffffffffffffff818116838216029081169081811461207057612070611ed4565b5092915050565b5f60208284031215612087575f80fd5b815161092181611c56565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120ba575f80fd5b5050815160208301516040909301519094929350919050565b5f602082840312156120e3575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561214e5783516001600160a01b0316835260209384019390920191600101612127565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220208dcd48e3e4dfbf46a8390163e42a81141efce37e37ebb08e14e47732b2f18664736f6c634300081a0033

Deployed Bytecode Sourcemap

1721:11954:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11158:264;;;;;;;;;;-1:-1:-1;11158:264:0;;;;;:::i;:::-;;:::i;:::-;;4012:80;;;;;;;;;;-1:-1:-1;4084:5:0;;;;;;;;;;;;-1:-1:-1;;;4084:5:0;;;;4012:80;;;;;;;:::i;:::-;;;;;;;;4446:214;;;;;;;;;;-1:-1:-1;4446:214:0;;;;;:::i;:::-;;:::i;:::-;;;1663:14:1;;1656:22;1638:41;;1626:2;1611:18;4446:214:0;1498:187:1;3922:84:0;;;;;;;;;;;;;:::i;:::-;;;1836:25:1;;;1824:2;1809:18;3922:84:0;1690:177:1;4668:300:0;;;;;;;;;;-1:-1:-1;4668:300:0;;;;;:::i;:::-;;:::i;6455:142::-;;;;;;;;;;-1:-1:-1;6455:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;6556:16:0;6513:9;6556:16;;;:8;:16;;;;;;;;;6574:8;:16;;;;;;;6556;;;;;6574;;;6455:142;;;;;2824:14:1;;2817:22;2799:41;;2883:14;;2876:22;2871:2;2856:18;;2849:50;2772:18;6455:142:0;2637:268:1;3840:76:0;;;;;;;;;;-1:-1:-1;1888:1:0;3840:76;;;3082:4:1;3070:17;;;3052:36;;3040:2;3025:18;3840:76:0;2910:184:1;12415:70:0;;;;;;;;;;-1:-1:-1;12471:11:0;;;;;;;12415:70;;4190:109;;;;;;;;;;-1:-1:-1;4190:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;4274:22:0;4256:7;4274:22;;;:13;:22;;;;;;;4190:109;728:130;;;;;;;;;;;;;:::i;12002:83::-;;;;;;;;;;-1:-1:-1;12070:9:0;;12002:83;;13576:96;;;;;;;;;;-1:-1:-1;13654:12:0;;-1:-1:-1;;;;;13654:12:0;13576:96;;;-1:-1:-1;;;;;3263:32:1;;;3245:51;;3233:2;3218:18;13576:96:0;3099:203:1;6209:238:0;;;;;;;;;;-1:-1:-1;6209:238:0;;;;;:::i;:::-;;:::i;11760:133::-;;;;;;;;;;;;;:::i;497:65::-;;;;;;;;;;-1:-1:-1;535:7:0;553:6;-1:-1:-1;;;;;553:6:0;497:65;;11901:95;;;;;;;;;;-1:-1:-1;11977:13:0;;11901:95;;4098:86;;;;;;;;;;-1:-1:-1;4172:9:0;;;;;;;;;;;;-1:-1:-1;;;4172:9:0;;;;4098:86;;11066:84;;;;;;;;;;-1:-1:-1;11136:8:0;;11066:84;;4976:220;;;;;;;;;;-1:-1:-1;4976:220:0;;;;;:::i;:::-;;:::i;10973:87::-;;;;;;;;;;-1:-1:-1;11043:11:0;;10973:87;;5922:279;;;;;;;;;;-1:-1:-1;5922:279:0;;;;;:::i;:::-;;:::i;12491:68::-;;;;;;;;;;-1:-1:-1;12548:8:0;;;;12491:68;;6605:427;;;;;;;;;;-1:-1:-1;6605:427:0;;;;;:::i;:::-;;:::i;4305:133::-;;;;;;;;;;-1:-1:-1;4305:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;4407:19:0;;;4389:7;4407:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4305:133;11430:322;;;;;;;;;;-1:-1:-1;11430:322:0;;;;;:::i;:::-;;:::i;7622:499::-;;;:::i;568:154::-;;;;;;;;;;-1:-1:-1;568:154:0;;;;;:::i;:::-;;:::i;11158:264::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;;;;;;;;;11259:10:::1;:22;;;;11273:8;11259:22;11255:84;;;-1:-1:-1::0;;;;;11294:21:0;::::1;;::::0;;;:16:::1;:21;::::0;;;;;::::1;;11293:22;11285:51;;;::::0;-1:-1:-1;;;11285:51:0;;6005:2:1;11285:51:0::1;::::0;::::1;5987:21:1::0;6044:2;6024:18;;;6017:30;-1:-1:-1;;;6063:18:1;;;6056:46;6119:18;;11285:51:0::1;5803:340:1::0;11285:51:0::1;-1:-1:-1::0;;;;;11349:15:0;;::::1;;::::0;;;:8:::1;:15;::::0;;;;;;;:26;;;::::1;;-1:-1:-1::0;;11349:26:0;;::::1;;::::0;;11386:8:::1;:15:::0;;;;;:28;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;11158:264::o;4446:214::-;4550:10;4521:4;4538:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4538:32:0;;;;;;;;;;:41;;;4595:37;4521:4;;4538:32;;4595:37;;;;4573:6;1836:25:1;;1824:2;1809:18;;1690:177;4595:37:0;;;;;;;;-1:-1:-1;4650:4:0;4446:214;;;;;:::o;3922:84::-;3977:7;1943:9;1888:1;1943:2;:9;:::i;:::-;1932:21;;:7;:21;:::i;:::-;3988:15;;3922:84;:::o;4668:300::-;4771:4;4796:28;4813:10;4796:16;:28::i;:::-;4788:57;;;;-1:-1:-1;;;4788:57:0;;8087:2:1;4788:57:0;;;8069:21:1;8126:2;8106:18;;;8099:30;-1:-1:-1;;;8145:18:1;;;8138:46;8201:18;;4788:57:0;7885:340:1;4788:57:0;-1:-1:-1;;;;;4856:23:0;;;;;;:11;:23;;;;;;;;4880:10;4856:35;;;;;;;:45;;4895:6;;4856:23;:45;;4895:6;;4856:45;:::i;:::-;;;;-1:-1:-1;4919:43:0;;-1:-1:-1;4933:10:0;4945:8;4955:6;4919:13;:43::i;:::-;4912:50;4668:300;-1:-1:-1;;;;4668:300:0:o;728:130::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;805:1:::1;788:19:::0;;-1:-1:-1;;;;;;788:19:0::1;::::0;;823:32:::1;::::0;3245:51:1;;;823:32:0::1;::::0;3233:2:1;3218:18;823:32:0::1;;;;;;;728:130::o:0;6209:238::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;6340:2:::1;6306:30;6322:14:::0;6306:13;:30:::1;:::i;:::-;:36;;;;6298:67;;;::::0;-1:-1:-1;;;6298:67:0;;8718:2:1;6298:67:0::1;::::0;::::1;8700:21:1::0;8757:2;8737:18;;;8730:30;-1:-1:-1;;;8776:18:1;;;8769:48;8834:18;;6298:67:0::1;8516:342:1::0;6298:67:0::1;6376:11;:27:::0;;-1:-1:-1;;6414:25:0;6376:27:::1;;::::0;;::::1;;-1:-1:-1::0;;6414:25:0;;;;;::::1;;::::0;;6209:238::o;11760:133::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;11824:15:::1;::::0;::::1;;11823:16;11815:41;;;::::0;-1:-1:-1;;;11815:41:0;;9065:2:1;11815:41:0::1;::::0;::::1;9047:21:1::0;9104:2;9084:18;;;9077:30;-1:-1:-1;;;9123:18:1;;;9116:42;9175:18;;11815:41:0::1;8863:336:1::0;11815:41:0::1;11867:18;:16;:18::i;:::-;11760:133::o:0;4976:220::-;5055:4;5080:28;5097:10;5080:16;:28::i;:::-;5072:57;;;;-1:-1:-1;;;5072:57:0;;8087:2:1;5072:57:0;;;8069:21:1;8126:2;8106:18;;;8099:30;-1:-1:-1;;;8145:18:1;;;8138:46;8201:18;;5072:57:0;7885:340:1;5072:57:0;5147:43;5161:10;5173:8;5183:6;5147:13;:43::i;:::-;5140:50;4976:220;-1:-1:-1;;;4976:220:0:o;5922:279::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6008:30:0;::::1;;::::0;;;:16:::1;:30;::::0;;;;;::::1;;6007:31;5999:67;;;::::0;-1:-1:-1;;;5999:67:0;;9406:2:1;5999:67:0::1;::::0;::::1;9388:21:1::0;9445:2;9425:18;;;9418:30;9484:25;9464:18;;;9457:53;9527:18;;5999:67:0::1;9204:347:1::0;5999:67:0::1;6077:12;:36:::0;;-1:-1:-1;;;;;6077:36:0;;::::1;-1:-1:-1::0;;;;;;6077:36:0;;::::1;::::0;::::1;::::0;;:12:::1;6124:22:::0;;;:8:::1;:22;::::0;;;;;;;:29;;-1:-1:-1;;6124:29:0;;::::1;6077:36:::0;6124:29;;::::1;::::0;;;6164:8:::1;:22:::0;;;;;:29;;;;::::1;::::0;;::::1;::::0;;5922:279::o;6605:427::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;6703:16:::1;6752:4;6722:27;::::0;::::1;1943:9;1888:1;1943:2;:9;:::i;:::-;1932:21;::::0;:7:::1;:21;:::i;:::-;6722:27;;;;:::i;:::-;:34;;;;:::i;:::-;:38;::::0;6759:1:::1;6722:38;:::i;:::-;6703:57;;6791:9;;6779:8;:21;;6771:44;;;::::0;-1:-1:-1;;;6771:44:0;;10110:2:1;6771:44:0::1;::::0;::::1;10092:21:1::0;10149:2;10129:18;;;10122:30;-1:-1:-1;;;10168:18:1;;;10161:40;10218:18;;6771:44:0::1;9908:334:1::0;6771:44:0::1;6826:9;:20:::0;;;6857::::1;6910:4;6880:27;::::0;::::1;1943:9;1888:1;1943:2;:9;:::i;:::-;1932:21;::::0;:7:::1;:21;:::i;:::-;6880:27;;;;:::i;:::-;:34;;;;:::i;:::-;:38;::::0;6917:1:::1;6880:38;:::i;:::-;6857:61;;6953:13;;6937:12;:29;;6929:56;;;::::0;-1:-1:-1;;;6929:56:0;;10449:2:1;6929:56:0::1;::::0;::::1;10431:21:1::0;10488:2;10468:18;;;10461:30;-1:-1:-1;;;10507:18:1;;;10500:44;10561:18;;6929:56:0::1;10247:338:1::0;6929:56:0::1;6996:13;:28:::0;-1:-1:-1;;;6605:427:0:o;11430:322::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;11571:26:::1;::::0;;::::1;::::0;:17;::::1;1943:9;1888:1;1943:2;:9;:::i;:::-;1932:21;::::0;:7:::1;:21;:::i;:::-;11571:17;;;;:::i;:::-;:26;;;;:::i;:::-;11557:11;:40;;;;11639:6;11619:26;;11630:6;11619:17;;1888:1;1943:2;:9;;;;:::i;:::-;1932:21;::::0;:7:::1;:21;:::i;:::-;11619:17;;;;:::i;:::-;:26;;;;:::i;:::-;11608:8;:37:::0;11670:16:::1;;::::0;::::1;11680:6;11670:16;:::i;:::-;11656:30;;:11;:30:::0;11715:11:::1;::::0;11705:8:::1;::::0;:21:::1;;11697:47;;;::::0;-1:-1:-1;;;11697:47:0;;11059:2:1;11697:47:0::1;::::0;::::1;11041:21:1::0;11098:2;11078:18;;;11071:30;-1:-1:-1;;;11117:18:1;;;11110:43;11170:18;;11697:47:0::1;10857:337:1::0;11697:47:0::1;11430:322:::0;;;;;:::o;7622:499::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;3233:10:::1;:17:::0;;-1:-1:-1;;3233:17:0::1;;;::::0;;7704:13:::2;::::0;-1:-1:-1;;;;;7704:13:0::2;:27:::0;7696:50:::2;;;::::0;-1:-1:-1;;;7696:50:0;;11401:2:1;7696:50:0::2;::::0;::::2;11383:21:1::0;11440:2;11420:18;;;11413:30;-1:-1:-1;;;11459:18:1;;;11452:40;11509:18;;7696:50:0::2;11199:334:1::0;7696:50:0::2;7766:15;::::0;::::2;;7765:16;7757:41;;;::::0;-1:-1:-1;;;7757:41:0;;9065:2:1;7757:41:0::2;::::0;::::2;9047:21:1::0;9104:2;9084:18;;;9077:30;-1:-1:-1;;;9123:18:1;;;9116:42;9175:18;;7757:41:0::2;8863:336:1::0;7757:41:0::2;7829:1;7817:9;:13;:40;;;;7856:1;7834:21;:23;7817:40;7809:59;;;::::0;-1:-1:-1;;;7809:59:0;;11740:2:1;7809:59:0::2;::::0;::::2;11722:21:1::0;11779:1;11759:18;;;11752:29;-1:-1:-1;;;11797:18:1;;;11790:36;11843:18;;7809:59:0::2;11538:329:1::0;7809:59:0::2;7909:4;7916:1;7887:28:::0;;;:13:::2;:28;::::0;;;;;7879:52:::2;;;::::0;-1:-1:-1;;;7879:52:0;;12074:2:1;7879:52:0::2;::::0;::::2;12056:21:1::0;12113:1;12093:18;;;12086:29;-1:-1:-1;;;12131:18:1;;;12124:39;12180:18;;7879:52:0::2;11872:332:1::0;7879:52:0::2;7976:10;;;;;;;;;-1:-1:-1::0;;;;;7976:10:0::2;-1:-1:-1::0;;;;;7976:18:0::2;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7958:50:0::2;;8017:4;8024:10;;;;;;;;;-1:-1:-1::0;;;;;8024:10:0::2;-1:-1:-1::0;;;;;8024:15:0::2;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7958:84;::::0;-1:-1:-1;;;;;;7958:84:0::2;::::0;;;;;;-1:-1:-1;;;;;12657:32:1;;;7958:84:0::2;::::0;::::2;12639:51:1::0;12726:32;;12706:18;;;12699:60;12612:18;;7958:84:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7942:13;:100:::0;;-1:-1:-1;;;;;;7942:100:0::2;-1:-1:-1::0;;;;;7942:100:0;;;::::2;::::0;;;::::2;::::0;;8083:4:::2;-1:-1:-1::0;8061:28:0;;;-1:-1:-1;8061:28:0::2;::::0;;;;;8053:60:::2;::::0;8091:21:::2;8053:7;:60::i;:::-;3275:10:::1;:18:::0;;-1:-1:-1;;3275:18:0::1;::::0;;7622:499::o;568:154::-;352:6;;-1:-1:-1;;;;;352:6:0;338:10;:20;330:57;;;;-1:-1:-1;;;330:57:0;;;;;;;:::i;:::-;653:6:::1;:18:::0;;-1:-1:-1;;;;;;653:18:0::1;-1:-1:-1::0;;;;;653:18:0;::::1;::::0;;::::1;::::0;;;688:31:::1;::::0;3245:51:1;;;688:31:0::1;::::0;3233:2:1;3218:18;688:31:0::1;;;;;;;568:154:::0;:::o;10321:293::-;10445:15;;10389:4;;;;10445:15;;10440:135;;;-1:-1:-1;10479:4:0;10440:135;;;-1:-1:-1;;;;;10506:20:0;;;;;;:8;:20;;;;;;;;:44;;;;-1:-1:-1;;;;;;10530:20:0;;;;;;:8;:20;;;;;;;;10506:44;10502:73;;;-1:-1:-1;10568:4:0;10595:11;10321:293;-1:-1:-1;;10321:293:0:o;8943:1370::-;9034:4;-1:-1:-1;;;;;9059:20:0;;9051:59;;;;-1:-1:-1;;;9051:59:0;;13188:2:1;9051:59:0;;;13170:21:1;13227:2;13207:18;;;13200:30;13266:28;13246:18;;;13239:56;13312:18;;9051:59:0;12986:350:1;9051:59:0;9126:15;;;;9121:96;;-1:-1:-1;;;;;9153:16:0;;;;;;:8;:16;;;;;;;;:36;;;;-1:-1:-1;;;;;;9173:16:0;;;;;;:8;:16;;;;;;;;9153:36;9145:69;;;;-1:-1:-1;;;9145:69:0;;13543:2:1;9145:69:0;;;13525:21:1;13582:2;13562:18;;;13555:30;-1:-1:-1;;;13601:18:1;;;13594:50;13661:18;;9145:69:0;13341:344:1;9145:69:0;9233:10;;;;;;;9232:11;:41;;;;-1:-1:-1;;;;;;9247:26:0;;;;;;:16;:26;;;;;;;;9232:41;:63;;;;;9277:18;9288:6;9277:10;:18::i;:::-;9227:86;;;9300:10;:8;:10::i;:::-;9346:12;;9330;:28;9325:470;;9395:12;;9380;:27;:55;;;;-1:-1:-1;;;;;;9411:24:0;;;;;;:16;:24;;;;;;;;9380:55;9376:141;;;-1:-1:-1;;;;;9465:21:0;;9477:9;9465:21;9457:43;;;;-1:-1:-1;;;9457:43:0;;13892:2:1;9457:43:0;;;13874:21:1;13931:1;13911:18;;;13904:29;-1:-1:-1;;;13949:18:1;;;13942:39;13998:18;;9457:43:0;13690:332:1;9457:43:0;9550:12;;:18;;9565:3;9550:18;:::i;:::-;9535:12;:33;:63;;;;-1:-1:-1;;;;;;9572:26:0;;;;;;:16;:26;;;;;;;;9535:63;:90;;;;-1:-1:-1;;;;;;9602:23:0;;9620:4;9602:23;;9535:90;9531:253;;;9659:12;9647:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9647:35:0;;;;;;;;;:40;;9686:1;;9647:25;:40;;9686:1;;9647:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;9726:12;-1:-1:-1;9714:25:0;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9714:35:0;;;;;;;;;;9753:1;9714:35;;:40;;;-1:-1:-1;9706:62:0;;;;-1:-1:-1;;;9706:62:0;;13892:2:1;9706:62:0;;;13874:21:1;13931:1;13911:18;;;13904:29;-1:-1:-1;;;13949:18:1;;;13942:39;13998:18;;9706:62:0;13690:332:1;9706:62:0;-1:-1:-1;;;;;9812:23:0;;9830:4;9812:23;;;;:52;;-1:-1:-1;;;;;;9839:25:0;;9859:4;9839:25;;9812:52;:72;;;;-1:-1:-1;9878:6:0;;-1:-1:-1;;;;;9868:16:0;;;9878:6;;9868:16;;9812:72;9807:171;;;9911:35;9921:6;9929:8;9939:6;9911:9;:35::i;:::-;9903:62;;;;-1:-1:-1;;;9903:62:0;;14229:2:1;9903:62:0;;;14211:21:1;14268:2;14248:18;;;14241:30;-1:-1:-1;;;14287:18:1;;;14280:44;14341:18;;9903:62:0;14027:338:1;9903:62:0;9990:18;10011:40;10026:6;10034:8;10044:6;10011:14;:40::i;:::-;9990:61;-1:-1:-1;10062:23:0;10088:19;9990:61;10088:6;:19;:::i;:::-;-1:-1:-1;;;;;10118:21:0;;;;;;:13;:21;;;;;:31;;10062:45;;-1:-1:-1;10143:6:0;;10118:21;;;:31;;10143:6;;10118:31;:::i;:::-;;;;;;;;10170:10;10160:6;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;10191:23:0;;;;;;:13;:23;;;;;:42;;10218:15;;10191:23;:42;;10218:15;;10191:42;:::i;:::-;;;;;;;;10266:8;-1:-1:-1;;;;;10249:34:0;10258:6;-1:-1:-1;;;;;10249:34:0;;10276:6;10249:34;;;;1836:25:1;;1824:2;1809:18;;1690:177;10249:34:0;;;;;;;;-1:-1:-1;10301:4:0;;8943:1370;-1:-1:-1;;;;;8943:1370:0:o;12567:481::-;12643:4;1943:9;1888:1;1943:2;:9;:::i;:::-;1932:21;;:7;:21;:::i;:::-;12627:13;;:2;:13;:::i;:::-;:20;;;;:::i;:::-;12615:9;:32;12690:4;1943:9;1888:1;1943:2;:9;:::i;:::-;1932:21;;:7;:21;:::i;:::-;12674:13;;:2;:13;:::i;:::-;:20;;;;:::i;:::-;12658:13;:36;12737:6;;12719:13;;-1:-1:-1;;;;;12719:13:0;12705:28;;;;:13;:28;;;;;:38;;:28;;;:38;;12737:6;;12705:38;:::i;:::-;;;;-1:-1:-1;;12791:13:0;;12810:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12810:33:0;-1:-1:-1;;;;;;12810:33:0;;;12791:54;;-1:-1:-1;;;;;12791:13:0;;;;:54;;12810:33;12791:54;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12772:13:0;;;-1:-1:-1;;;;;12772:13:0;;;12755:31;;;;:16;:31;;;;;;12754:91;;-1:-1:-1;;12754:91:0;;;;;;;;;;;12881:13;;;12864:31;;;;12754:91;12864:31;12856:60;;;;-1:-1:-1;;;12856:60:0;;14878:2:1;12856:60:0;;;14860:21:1;14917:2;14897:18;;;14890:30;-1:-1:-1;;;14936:18:1;;;14929:46;14992:18;;12856:60:0;14676:340:1;12856:60:0;12942:12;12927;:27;;;12980:12;;:27;;12942:12;12980:27;:::i;:::-;12965:12;:42;13018:15;:22;;-1:-1:-1;;13018:22:0;13036:4;13018:22;;;12567:481::o;10622:240::-;10704:28;10719:12;10704:14;:28::i;:::-;10743:10;;;10829:6;;10743:111;;-1:-1:-1;;;10743:111:0;;10802:4;10743:111;;;15324:51:1;15391:18;;;15384:34;;;15434:18;;;15427:34;;;15477:18;;;15470:34;;;;-1:-1:-1;;;;;10829:6:0;;;15520:19:1;;;15513:61;10837:15:0;15590:19:1;;;15583:35;10743:10:0;;;;:26;;10777:13;;15296:19:1;;10743:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8479:456::-;8539:4;8556:11;8596:1;8582:11;;:15;8578:326;;;8645:13;;-1:-1:-1;;;;;8645:13:0;;;8615;8631:28;;;:13;:28;;;;;;;;;8698:10;;:17;;-1:-1:-1;;;8698:17:0;;;;8631:28;;8698:10;;:15;;:17;;;;;;;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8727:13;;8691:50;;-1:-1:-1;;;8691:50:0;;-1:-1:-1;;;;;8727:13:0;;;8691:50;;;3245:51:1;8691:35:0;;;;;3218:18:1;;8691:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8674:67;-1:-1:-1;8757:16:0;8798:5;8777:17;8674:67;8777:8;:17;:::i;:::-;8776:27;;;;:::i;:::-;8757:46;;8834:11;;8822:8;:23;8818:47;;8858:4;8849:13;;8818:47;8599:281;;;8578:326;;;-1:-1:-1;8897:4:0;8921:6;8479:456;-1:-1:-1;;8479:456:0:o;5204:710::-;3233:10;:17;;-1:-1:-1;;3233:17:0;;;;;5284:6:::1;::::0;5328:11:::1;::::0;5306:33;::::1;::::0;::::1;::::0;:52:::1;;-1:-1:-1::0;5343:15:0::1;::::0;::::1;;5306:52;5301:606;;;5403:8;;5381:18;:30;5376:72;;-1:-1:-1::0;5437:8:0::1;::::0;5376:72:::1;5501:18:::0;5560:9:::1;1888:1;5560:2;:9;:::i;:::-;5556:13;::::0;:1:::1;:13;:::i;:::-;5539:14;:30;5535:214;;;5613:4;5591:28;::::0;;;:13:::1;:28;::::0;;;;:50;;5623:18;;5591:28;:50:::1;::::0;5623:18;;5591:50:::1;:::i;:::-;::::0;;;-1:-1:-1;5660:26:0::1;::::0;-1:-1:-1;5671:14:0;5660:10:::1;:26::i;:::-;5715:18;5705:6;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5535:214:0::1;5793:21;5832:23:::0;;5829:67:::1;;5859:34;5873:19;5859:13;:34::i;:::-;5361:546;;5301:606;-1:-1:-1::0;3275:10:0;:18;;-1:-1:-1;;3275:18:0;;;5204:710::o;7040:574::-;7205:15;;7144:4;;7185;;7205:15;;:40;;;;-1:-1:-1;;;;;;7225:20:0;;;;;;:8;:20;;;;;;;;7224:21;7205:40;:63;;;;-1:-1:-1;;;;;;7250:18:0;;;;;;:8;:18;;;;;;;;7249:19;7205:63;7200:373;;;7308:9;;7291:14;:26;7286:276;;;-1:-1:-1;7359:5:0;7286:276;;;-1:-1:-1;;;;;7424:26:0;;;;;;:16;:26;;;;;;;;7423:27;:89;;;;-1:-1:-1;7498:13:0;;-1:-1:-1;;;;;7455:23:0;;;;;;:13;:23;;;;;;:40;;7481:14;;7455:40;:::i;:::-;:56;7423:89;7400:162;;;-1:-1:-1;7554:5:0;7590:16;7040:574;-1:-1:-1;;;;7040:574:0:o;13056:512::-;13212:15;;13158:7;;;;13212:15;;13211:16;;:40;;-1:-1:-1;;;;;;13231:20:0;;;;;;:8;:20;;;;;;;;13211:40;:63;;;-1:-1:-1;;;;;;13255:19:0;;;;;;:8;:19;;;;;;;;13211:63;13206:328;;;-1:-1:-1;13305:1:0;13206:328;;;-1:-1:-1;;;;;13330:28:0;;;;;;:16;:28;;;;;;;;13325:209;;;13398:11;;13412:3;;13389:20;;13398:11;;;;;13389:6;:20;:::i;:::-;:26;;;;:::i;:::-;13377:38;;13325:209;;;-1:-1:-1;;;;;13440:27:0;;;;;;:16;:27;;;;;;;;13435:99;;;13507:8;;13518:3;;13498:17;;13507:8;;13498:6;:17;:::i;:::-;:23;;;;:::i;:::-;13486:35;13056:512;-1:-1:-1;;;;;13056:512:0:o;12093:314::-;12184:4;12164:26;;;;:11;:26;;;;;;;;2887:42;12164:45;;;;;;;;:60;-1:-1:-1;12159:241:0;;;12262:4;12242:26;;;;:11;:26;;;;;;;;2887:42;12242:45;;;;;;;;;;-1:-1:-1;;12242:65:0;;;;12327:61;;1836:25:1;;;2887:42:0;;12262:4;12327:61;;1809:18:1;12327:61:0;;;;;;;12159:241;12093:314;:::o;8129:342::-;8189:27;8204:11;8189:14;:27::i;:::-;8251:16;;;8265:1;8251:16;;;;;;;;8227:21;;8251:16;;;;;;;;;;-1:-1:-1;8251:16:0;8227:40;;8297:4;8278;8283:1;8278:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8278:25:0;;;:7;;;;;;;;;;:25;;;;8324:10;;:17;;;-1:-1:-1;;;8324:17:0;;;;:10;;;;;:15;;:17;;;;;8278:7;;8324:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8314:4;8319:1;8314:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8314:27:0;;;:7;;;;;;;;;:27;8352:10;;:111;;-1:-1:-1;;;8352:111:0;;:10;;;:61;;:111;;8414:11;;8352:10;;8428:4;;8441;;8447:15;;8352:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8178:293;8129:342;:::o;10870:95::-;10928:12;;:29;;-1:-1:-1;;;;;10928:12:0;;;;:29;;;;;10950:6;;10928:12;:29;:12;:29;10950:6;10928:12;:29;;;;;;;;;;;;;;;;;;;;;10870:95;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:160;215:20;;271:13;;264:21;254:32;;244:60;;300:1;297;290:12;244:60;150:160;;;:::o;315:383::-;386:6;394;402;455:2;443:9;434:7;430:23;426:32;423:52;;;471:1;468;461:12;423:52;510:9;497:23;529:31;554:5;529:31;:::i;:::-;579:5;-1:-1:-1;603:35:1;634:2;619:18;;603:35;:::i;:::-;593:45;;657:35;688:2;677:9;673:18;657:35;:::i;:::-;647:45;;315:383;;;;;:::o;703:418::-;852:2;841:9;834:21;815:4;884:6;878:13;927:6;922:2;911:9;907:18;900:34;986:6;981:2;973:6;969:15;964:2;953:9;949:18;943:50;1042:1;1037:2;1028:6;1017:9;1013:22;1009:31;1002:42;1112:2;1105;1101:7;1096:2;1088:6;1084:15;1080:29;1069:9;1065:45;1061:54;1053:62;;;703:418;;;;:::o;1126:367::-;1194:6;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:31;1354:5;1329:31;:::i;:::-;1379:5;1457:2;1442:18;;;;1429:32;;-1:-1:-1;;;1126:367:1:o;1872:508::-;1949:6;1957;1965;2018:2;2006:9;1997:7;1993:23;1989:32;1986:52;;;2034:1;2031;2024:12;1986:52;2073:9;2060:23;2092:31;2117:5;2092:31;:::i;:::-;2142:5;-1:-1:-1;2199:2:1;2184:18;;2171:32;2212:33;2171:32;2212:33;:::i;:::-;1872:508;;2264:7;;-1:-1:-1;;;2344:2:1;2329:18;;;;2316:32;;1872:508::o;2385:247::-;2444:6;2497:2;2485:9;2476:7;2472:23;2468:32;2465:52;;;2513:1;2510;2503:12;2465:52;2552:9;2539:23;2571:31;2596:5;2571:31;:::i;3307:156::-;3373:20;;3433:4;3422:16;;3412:27;;3402:55;;3453:1;3450;3443:12;3468:252;3532:6;3540;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;3632:27;3649:9;3632:27;:::i;:::-;3622:37;;3678:36;3710:2;3699:9;3695:18;3678:36;:::i;:::-;3668:46;;3468:252;;;;;:::o;3725:159::-;3792:20;;3852:6;3841:18;;3831:29;;3821:57;;3874:1;3871;3864:12;3889:256;3955:6;3963;4016:2;4004:9;3995:7;3991:23;3987:32;3984:52;;;4032:1;4029;4022:12;3984:52;4055:28;4073:9;4055:28;:::i;:::-;4045:38;;4102:37;4135:2;4124:9;4120:18;4102:37;:::i;4150:388::-;4218:6;4226;4279:2;4267:9;4258:7;4254:23;4250:32;4247:52;;;4295:1;4292;4285:12;4247:52;4334:9;4321:23;4353:31;4378:5;4353:31;:::i;:::-;4403:5;-1:-1:-1;4460:2:1;4445:18;;4432:32;4473:33;4432:32;4473:33;:::i;:::-;4525:7;4515:17;;;4150:388;;;;;:::o;4543:163::-;4610:20;;4670:10;4659:22;;4649:33;;4639:61;;4696:1;4693;4686:12;4711:474;4801:6;4809;4817;4825;4833;4886:3;4874:9;4865:7;4861:23;4857:33;4854:53;;;4903:1;4900;4893:12;4854:53;4926:28;4944:9;4926:28;:::i;:::-;4916:38;;4973:37;5006:2;4995:9;4991:18;4973:37;:::i;:::-;4963:47;;5029:37;5062:2;5051:9;5047:18;5029:37;:::i;:::-;5019:47;;5085:37;5118:2;5107:9;5103:18;5085:37;:::i;:::-;5075:47;;5141:38;5174:3;5163:9;5159:19;5141:38;:::i;:::-;5131:48;;4711:474;;;;;;;;:::o;5450:348::-;5652:2;5634:21;;;5691:2;5671:18;;;5664:30;5730:26;5725:2;5710:18;;5703:54;5789:2;5774:18;;5450:348::o;6148:127::-;6209:10;6204:3;6200:20;6197:1;6190:31;6240:4;6237:1;6230:15;6264:4;6261:1;6254:15;6280:375;6368:1;6386:5;6400:249;6421:1;6411:8;6408:15;6400:249;;;6471:4;6466:3;6462:14;6456:4;6453:24;6450:50;;;6480:18;;:::i;:::-;6530:1;6520:8;6516:16;6513:49;;;6544:16;;;;6513:49;6627:1;6623:16;;;;;6583:15;;6400:249;;;6280:375;;;;;;:::o;6660:902::-;6709:5;6739:8;6729:80;;-1:-1:-1;6780:1:1;6794:5;;6729:80;6828:4;6818:76;;-1:-1:-1;6865:1:1;6879:5;;6818:76;6910:4;6928:1;6923:59;;;;6996:1;6991:174;;;;6903:262;;6923:59;6953:1;6944:10;;6967:5;;;6991:174;7028:3;7018:8;7015:17;7012:43;;;7035:18;;:::i;:::-;-1:-1:-1;;7091:1:1;7077:16;;7150:5;;6903:262;;7249:2;7239:8;7236:16;7230:3;7224:4;7221:13;7217:36;7211:2;7201:8;7198:16;7193:2;7187:4;7184:12;7180:35;7177:77;7174:203;;;-1:-1:-1;7286:19:1;;;7362:5;;7174:203;7409:42;-1:-1:-1;;7434:8:1;7428:4;7409:42;:::i;:::-;7487:6;7483:1;7479:6;7475:19;7466:7;7463:32;7460:58;;;7498:18;;:::i;:::-;7536:20;;6660:902;-1:-1:-1;;;6660:902:1:o;7567:140::-;7625:5;7654:47;7695:4;7685:8;7681:19;7675:4;7654:47;:::i;7712:168::-;7785:9;;;7816;;7833:15;;;7827:22;;7813:37;7803:71;;7854:18;;:::i;8230:128::-;8297:9;;;8318:11;;;8315:37;;;8332:18;;:::i;8363:148::-;8451:4;8430:12;;;8444;;;8426:31;;8469:13;;8466:39;;;8485:18;;:::i;9556:217::-;9596:1;9622;9612:132;;9666:10;9661:3;9657:20;9654:1;9647:31;9701:4;9698:1;9691:15;9729:4;9726:1;9719:15;9612:132;-1:-1:-1;9758:9:1;;9556:217::o;9778:125::-;9843:9;;;9864:10;;;9861:36;;;9877:18;;:::i;10590:262::-;10707:16;10674:24;;;10700;;;10670:55;10745:34;;;;10798:24;;;10788:58;;10826:18;;:::i;:::-;10788:58;10590:262;;;;:::o;12209:251::-;12279:6;12332:2;12320:9;12311:7;12307:23;12303:32;12300:52;;;12348:1;12345;12338:12;12300:52;12380:9;12374:16;12399:31;12424:5;12399:31;:::i;14370:301::-;14499:3;14537:6;14531:13;14583:6;14576:4;14568:6;14564:17;14559:3;14553:37;14645:1;14609:16;;14634:13;;;-1:-1:-1;14609:16:1;14370:301;-1:-1:-1;14370:301:1:o;15629:456::-;15717:6;15725;15733;15786:2;15774:9;15765:7;15761:23;15757:32;15754:52;;;15802:1;15799;15792:12;15754:52;-1:-1:-1;;15847:16:1;;15953:2;15938:18;;15932:25;16049:2;16034:18;;;16028:25;15847:16;;15932:25;;-1:-1:-1;16028:25:1;15629:456;-1:-1:-1;15629:456:1:o;16090:230::-;16160:6;16213:2;16201:9;16192:7;16188:23;16184:32;16181:52;;;16229:1;16226;16219:12;16181:52;-1:-1:-1;16274:16:1;;16090:230;-1:-1:-1;16090:230:1:o;16457:127::-;16518:10;16513:3;16509:20;16506:1;16499:31;16549:4;16546:1;16539:15;16573:4;16570:1;16563:15;16589:959;16851:4;16899:3;16888:9;16884:19;16930:6;16919:9;16912:25;16973:6;16968:2;16957:9;16953:18;16946:34;17016:3;17011:2;17000:9;16996:18;16989:31;17040:6;17075;17069:13;17106:6;17098;17091:22;17144:3;17133:9;17129:19;17122:26;;17183:2;17175:6;17171:15;17157:29;;17204:1;17214:195;17228:6;17225:1;17222:13;17214:195;;;17293:13;;-1:-1:-1;;;;;17289:39:1;17277:52;;17358:2;17384:15;;;;17349:12;;;;17325:1;17243:9;17214:195;;;-1:-1:-1;;;;;;;17465:32:1;;;;17460:2;17445:18;;17438:60;-1:-1:-1;;17529:3:1;17514:19;17507:35;17426:3;16589:959;-1:-1:-1;;;16589:959:1:o

Swarm Source

ipfs://208dcd48e3e4dfbf46a8390163e42a81141efce37e37ebb08e14e47732b2f186

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.