ETH Price: $2,419.08 (+0.07%)

Contract

0x13c07bfC6188ea38d119472F12C20A50d0344B9A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve197168062024-04-23 8:08:59166 days ago1713859739IN
0x13c07bfC...0d0344B9A
0 ETH0.000371047.98281045
Approve196921062024-04-19 21:17:47169 days ago1713561467IN
0x13c07bfC...0d0344B9A
0 ETH0.000257468.78084717
Approve196920812024-04-19 21:12:47169 days ago1713561167IN
0x13c07bfC...0d0344B9A
0 ETH0.000375188.13692085
Approve196898262024-04-19 13:37:23169 days ago1713533843IN
0x13c07bfC...0d0344B9A
0 ETH0.0006771714.58767934
Approve196869832024-04-19 4:02:59170 days ago1713499379IN
0x13c07bfC...0d0344B9A
0 ETH0.0004858210.46557376
Approve196856902024-04-18 23:42:35170 days ago1713483755IN
0x13c07bfC...0d0344B9A
0 ETH0.000344697.42544078
Approve196837932024-04-18 17:20:47170 days ago1713460847IN
0x13c07bfC...0d0344B9A
0 ETH0.0006839214.71410835
Approve196837782024-04-18 17:17:47170 days ago1713460667IN
0x13c07bfC...0d0344B9A
0 ETH0.0005161111.11821505
Approve196837672024-04-18 17:15:35170 days ago1713460535IN
0x13c07bfC...0d0344B9A
0 ETH0.0008293317.84246762
Approve196837672024-04-18 17:15:35170 days ago1713460535IN
0x13c07bfC...0d0344B9A
0 ETH0.0008293317.84246762
Approve196837672024-04-18 17:15:35170 days ago1713460535IN
0x13c07bfC...0d0344B9A
0 ETH0.0008293317.84246762
Approve196837672024-04-18 17:15:35170 days ago1713460535IN
0x13c07bfC...0d0344B9A
0 ETH0.0009222919.84246762
Approve196837482024-04-18 17:11:47170 days ago1713460307IN
0x13c07bfC...0d0344B9A
0 ETH0.0008543218.38009001
Approve196837432024-04-18 17:10:47170 days ago1713460247IN
0x13c07bfC...0d0344B9A
0 ETH0.0007582616.3133954
Approve196837422024-04-18 17:10:35170 days ago1713460235IN
0x13c07bfC...0d0344B9A
0 ETH0.0006022313.0610316
Approve196837392024-04-18 17:09:59170 days ago1713460199IN
0x13c07bfC...0d0344B9A
0 ETH0.00078416.86716951
Approve196837382024-04-18 17:09:47170 days ago1713460187IN
0x13c07bfC...0d0344B9A
0 ETH0.0007563716.27284503
Approve196837382024-04-18 17:09:47170 days ago1713460187IN
0x13c07bfC...0d0344B9A
0 ETH0.0007563716.27284503
Approve196837372024-04-18 17:09:35170 days ago1713460175IN
0x13c07bfC...0d0344B9A
0 ETH0.000787416.94038135
Set Tax Swaps196837332024-04-18 17:08:47170 days ago1713460127IN
0x13c07bfC...0d0344B9A
0 ETH0.0005514714.35299704
Approve196837332024-04-18 17:08:47170 days ago1713460127IN
0x13c07bfC...0d0344B9A
0 ETH0.0008035417.28769203
Approve196837322024-04-18 17:08:35170 days ago1713460115IN
0x13c07bfC...0d0344B9A
0 ETH0.0006996115.15324139
Approve196837322024-04-18 17:08:35170 days ago1713460115IN
0x13c07bfC...0d0344B9A
0 ETH0.0009088519.55324139
Approve196837312024-04-18 17:08:23170 days ago1713460103IN
0x13c07bfC...0d0344B9A
0 ETH0.0007838216.86329404
Approve196837302024-04-18 17:08:11170 days ago1713460091IN
0x13c07bfC...0d0344B9A
0 ETH0.0009414120.2538284
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
197010662024-04-21 3:21:47168 days ago1713669707
0x13c07bfC...0d0344B9A
0.00102895 ETH
197010662024-04-21 3:21:47168 days ago1713669707
0x13c07bfC...0d0344B9A
0.00102895 ETH
196955792024-04-20 8:57:11169 days ago1713603431
0x13c07bfC...0d0344B9A
0.00284951 ETH
196955792024-04-20 8:57:11169 days ago1713603431
0x13c07bfC...0d0344B9A
0.00284951 ETH
196930192024-04-20 0:21:23169 days ago1713572483
0x13c07bfC...0d0344B9A
0.00066886 ETH
196930192024-04-20 0:21:23169 days ago1713572483
0x13c07bfC...0d0344B9A
0.00066886 ETH
196862132024-04-19 1:28:11170 days ago1713490091
0x13c07bfC...0d0344B9A
0.00087653 ETH
196862132024-04-19 1:28:11170 days ago1713490091
0x13c07bfC...0d0344B9A
0.00087653 ETH
196856922024-04-18 23:42:59170 days ago1713483779
0x13c07bfC...0d0344B9A
0.00245426 ETH
196856922024-04-18 23:42:59170 days ago1713483779
0x13c07bfC...0d0344B9A
0.00245426 ETH
196851502024-04-18 21:53:59170 days ago1713477239
0x13c07bfC...0d0344B9A
0.00077379 ETH
196851502024-04-18 21:53:59170 days ago1713477239
0x13c07bfC...0d0344B9A
0.00077379 ETH
196843242024-04-18 19:07:59170 days ago1713467279
0x13c07bfC...0d0344B9A
0.00091553 ETH
196843242024-04-18 19:07:59170 days ago1713467279
0x13c07bfC...0d0344B9A
0.00091553 ETH
196840622024-04-18 18:15:11170 days ago1713464111
0x13c07bfC...0d0344B9A
0.00193063 ETH
196840622024-04-18 18:15:11170 days ago1713464111
0x13c07bfC...0d0344B9A
0.00193063 ETH
196839482024-04-18 17:52:11170 days ago1713462731
0x13c07bfC...0d0344B9A
0.00064574 ETH
196839482024-04-18 17:52:11170 days ago1713462731
0x13c07bfC...0d0344B9A
0.00064574 ETH
196838602024-04-18 17:34:35170 days ago1713461675
0x13c07bfC...0d0344B9A
0.00503166 ETH
196838602024-04-18 17:34:35170 days ago1713461675
0x13c07bfC...0d0344B9A
0.00503166 ETH
196838252024-04-18 17:27:35170 days ago1713461255
0x13c07bfC...0d0344B9A
0.00277683 ETH
196838252024-04-18 17:27:35170 days ago1713461255
0x13c07bfC...0d0344B9A
0.00277683 ETH
196838242024-04-18 17:27:23170 days ago1713461243
0x13c07bfC...0d0344B9A
0.0032181 ETH
196838242024-04-18 17:27:23170 days ago1713461243
0x13c07bfC...0d0344B9A
0.0032181 ETH
196837922024-04-18 17:20:35170 days ago1713460835
0x13c07bfC...0d0344B9A
0.00065349 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GPAI

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-04-18
*/

//SPDX-License-Identifier: MIT

 /*
 $GPAI - THE LARGEST DECENTRALIZED NETWORK OF GPUs 💎
 Welcome to GPU AI, $GPAI is not just a service; it's a paradigm shift that promises to democratize access to state-of-the-art GPU resources, 
 making them available to machine learning engineers, data scientists, and AI innovators at a fraction of the cost and time required by traditional cloud providers.
 Access the world's top GPUs and customize your computing setup to match your project's scale and complexity.

 Website - https://Gpu-Ai.Net
 Telegram - https://t.me/GPUAiErc20
 X/Twitter - https://x.com/GpuAiErc20
 */

pragma solidity ^0.8.14;

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

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 GPAI is IERC20, Auth {
    string private constant symbol_ = "GPAI";
    string private constant tknName = "GPU Ai";
    uint8 private constant decim = 9;
    uint256 private constant tokenSupply = 1000000 * (10**decim);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address payable private _marketing = payable(0xe59e2De087105F82b77384E2376e894da68380A0);
    
    uint256 private mevblock = 2;
    uint8 private sellTaxRate = 5;
    uint8 private buyTax_ = 5;
    
    uint256 private _launchBlock;
    uint256 private _maxTx = tokenSupply; 
    uint256 private _maxWallet = tokenSupply;
    uint256 private _swapMinAmount = tokenSupply * 10 / 100000;
    uint256 private _swapMaxAmt = tokenSupply * 999 / 100000;
    uint256 private swapTrigger = 2 * (10**16);
    uint256 private swapLimits = _swapMinAmount * 59 * 100;

    mapping (uint256 => mapping (address => uint8)) private _sellsThisBlock;
    mapping (address => bool) private zeroFee;
    mapping (address => bool) private nolimits;

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

    bool private tradingEnabled;

    bool private _swapping = false;

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

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

        zeroFee[_owner] = true;
        zeroFee[address(this)] = true;
        zeroFee[_marketing] = true;
        zeroFee[swapRouterAddress] = true;
        nolimits[_owner] = true;
        nolimits[address(this)] = true;
        nolimits[_marketing] = true;
        nolimits[swapRouterAddress] = true;
    }

    receive() external payable {}

    function decimals() external pure override returns (uint8) { return decim; }
    function totalSupply() external pure override returns (uint256) { return tokenSupply; }
    function name() external pure override returns (string memory) { return tknName; }
    function symbol() external pure override returns (string memory) { return symbol_; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    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 setMarketing(address marketingWlt) external onlyOwner {
        require(!_isLiquidityPool[marketingWlt], "LP cannot be tax wallet");
        _marketing = payable(marketingWlt);
        zeroFee[marketingWlt] = true;
        nolimits[marketingWlt] = true;
    }

    function isExempt(address wallet) external view returns (bool fees, bool limits) {
        return (zeroFee[wallet], nolimits[wallet]); 
	}

    function openTrading() external onlyOwner {
        require(!tradingEnabled, "trading open");
        _activateTrading();
    }

    function buyTax() external view returns(uint8) { return buyTax_; }
    function sellFee() external view returns(uint8) { return sellTaxRate; }

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

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

    function _limitCheck(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingEnabled && !nolimits[fromWallet] && !nolimits[toWallet] ) {
            if ( transferAmount > _maxTx ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLiquidityPool[toWallet] && (_balances[toWallet] + transferAmount > _maxWallet) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

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

    function updateFee(uint8 buyFeePercent, uint8 sellFeePercent) external onlyOwner {
        require(buyFeePercent + sellFeePercent <= 10, "Roundtrip too high");
        buyTax_ = buyFeePercent;
        sellTaxRate = sellFeePercent;
    }

    function maxWalletSize() external view returns (uint256) { 
        return _maxWallet; 
	}
    function maxTransaction() external view returns (uint256) { 
        return _maxTx; 
	}

    function _calcTax(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 * buyTax_ / 100; 
         } else if ( _isLiquidityPool[recipient] ) { 
            taxAmount = amount * sellTaxRate / 100; 
        }
        return taxAmount;
    }

    function swapTaxTokens() private lockTaxSwap {
        uint256 _taxTokenAvailable = swapLimits;
        if ( _taxTokenAvailable >= _swapMinAmount && tradingEnabled ) {
            if ( _taxTokenAvailable >= _swapMaxAmt ) { _taxTokenAvailable = _swapMaxAmt; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**decim ) {
                _balances[address(this)] += _taxTokenAvailable;
                swapTokens(_tokensForSwap);
                swapLimits -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { distributeTax(_contractETHBalance); }
        }
    }

    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 checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( tradingEnabled ) { checkResult = true; } 
        else if (zeroFee[fromWallet] && nolimits[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    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 _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!tradingEnabled) { require(zeroFee[sender] && nolimits[sender], "Trading not yet open"); }
        if ( !_swapping && _isLiquidityPool[toWallet] && shouldSwap(amount) ) { swapTaxTokens(); }

        if ( block.number >= _launchBlock ) {
            if (block.number < mevblock && _isLiquidityPool[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < mevblock + 600 && _isLiquidityPool[toWallet] && sender != address(this) ) {
                _sellsThisBlock[block.number][toWallet] += 1;
                require(_sellsThisBlock[block.number][toWallet] <= 2, "MEV block");
            }
        }

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

        uint256 _taxAmount = _calcTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        swapLimits += _taxAmount;
        _balances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

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

    function _activateTrading() internal {
        _maxTx = 20 * tokenSupply / 1000;
        _maxWallet = 20 * tokenSupply / 1000;
        _balances[lp] -= swapLimits;
        (_isLiquidityPool[lp],) = lp.call(abi.encodeWithSignature("sync()") );
        require(_isLiquidityPool[lp], "Failed bootstrap");
        _launchBlock = block.number;
        mevblock = mevblock + _launchBlock;
        tradingEnabled = true;
    }

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

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

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

    function setLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = tokenSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTx, "tx too low");
        _maxTx = newTxAmt;
        uint256 newWalletAmt = tokenSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWallet, "wallet too low");
        _maxWallet = newWalletAmt;
    }

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

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":[],"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":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isExempt","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":"maxTransaction","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"isNoFees","type":"bool"},{"internalType":"bool","name":"isNoLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","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":"new_owner","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b03191673e59e2de087105f82b77384e2376e894da68380a017905560026004556005805461050561ffff1990911617905561004c6009600a6103a0565b61005990620f42406103b5565b6007556100686009600a6103a0565b61007590620f42406103b5565b600855620186a06100886009600a6103a0565b61009590620f42406103b5565b6100a090600a6103b5565b6100aa91906103cc565b600955620186a06009600a6100bf91906103a0565b6100cc90620f42406103b5565b6100d8906103e76103b5565b6100e291906103cc565b600a5566470de4df820000600b556009546100fe90603b6103b5565b6101099060646103b5565b600c55601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556013805461ff0019169055348015610148575f80fd5b505f80546001600160a01b031916331790556101666009600a6103a0565b61017390620f42406103b5565b335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b039081168252600e602090815260408084208054600160ff199182168117909255308087528387208054831684179055600380548716885284882080548416851790557f37836a7135fae77e265e35732c70286035736c8b57b12590769780e067ead81c8054841685179055875487168852600f9095528387208054831684179055865282862080548216831790559254909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527f7e98db1b893d503d049bbf1a3858119b9172e4b74989a91dfee4165dd9ce42a880549092161790556103eb565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102f857815f19048211156102de576102de6102aa565b808516156102eb57918102915b93841c93908002906102c3565b509250929050565b5f8261030e5750600161039a565b8161031a57505f61039a565b8160018114610330576002811461033a57610356565b600191505061039a565b60ff84111561034b5761034b6102aa565b50506001821b61039a565b5060208310610133831016604e8410600b8410161715610379575081810a61039a565b61038383836102be565b805f1904821115610396576103966102aa565b0290505b92915050565b5f6103ae60ff841683610300565b9392505050565b808202811582820484141761039a5761039a6102aa565b5f826103e657634e487b7160e01b5f52601260045260245ffd5b500490565b61219d806103f85f395ff3fe608060405260043610610198575f3560e01c80638da5cb5b116100e7578063b3de9b5d11610087578063dd62ed3e11610062578063dd62ed3e146104c8578063e537a8341461050c578063e8078d941461052b578063f2fde38b14610533575f80fd5b8063b3de9b5d1461048c578063c3f70b52146104a0578063c9567bf9146104b4575f80fd5b806395d89b41116100c257806395d89b41146103ce578063a5e992bb146103fa578063a9059cbb1461040e578063ad5dff731461042d575f80fd5b80638da5cb5b1461037f5780638f3fa8601461039b578063950c6c39146103af575f80fd5b8063368f48001161015257806370a082311161012d57806370a08231146102e7578063715018a61461031b57806375f0a8741461032f5780638b0414d514610360575f80fd5b8063368f48001461028b5780634f7041a5146102ac57806357ff135a146102c8575f80fd5b806306fdde03146101a3578063095ea7b3146101e357806318160ddd1461021257806323b872dd146102345780632b14ca5614610253578063313ce56714610278575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600681526547505520416960d01b60208201525b6040516101da9190611c4f565b60405180910390f35b3480156101ee575f80fd5b506102026101fd366004611c98565b610552565b60405190151581526020016101da565b34801561021d575f80fd5b506102266105be565b6040519081526020016101da565b34801561023f575f80fd5b5061020261024e366004611cc2565b6105dd565b34801561025e575f80fd5b5060055460ff165b60405160ff90911681526020016101da565b348015610283575f80fd5b506009610266565b348015610296575f80fd5b506102aa6102a5366004611d16565b610676565b005b3480156102b7575f80fd5b50600554610100900460ff16610266565b3480156102d3575f80fd5b506102aa6102e2366004611d56565b6107b4565b3480156102f2575f80fd5b50610226610301366004611d98565b6001600160a01b03165f9081526001602052604090205490565b348015610326575f80fd5b506102aa610887565b34801561033a575f80fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b34801561036b575f80fd5b506102aa61037a366004611d98565b6108f4565b34801561038a575f80fd5b505f546001600160a01b0316610348565b3480156103a6575f80fd5b50600854610226565b3480156103ba575f80fd5b506102aa6103c9366004611dc3565b6109d7565b3480156103d9575f80fd5b506040805180820190915260048152634750414960e01b60208201526101cd565b348015610405575f80fd5b50600a54610226565b348015610419575f80fd5b50610202610428366004611c98565b610a72565b348015610438575f80fd5b50610475610447366004611d98565b6001600160a01b03165f908152600e6020908152604080832054600f9092529091205460ff91821692911690565b6040805192151583529015156020830152016101da565b348015610497575f80fd5b50600954610226565b3480156104ab575f80fd5b50600754610226565b3480156104bf575f80fd5b506102aa610acd565b3480156104d3575f80fd5b506102266104e2366004611deb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610517575f80fd5b506102aa610526366004611e35565b610b42565b6102aa610c57565b34801561053e575f80fd5b506102aa61054d366004611d98565b610f4b565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105ac9086815260200190565b60405180910390a35060015b92915050565b5f6105cb6009600a611f8a565b6105d890620f4240611f98565b905090565b5f6105e784610fc7565b61062b5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526002602090815260408083203384529091528120805484929061065d908490611faf565b9091555061066e905084848461102a565b949350505050565b5f546001600160a01b0316331461069f5760405162461bcd60e51b815260040161062290611fc2565b5f6103e861ffff84166106b46009600a611f8a565b6106c190620f4240611f98565b6106cb9190611f98565b6106d59190611ff9565b6106e0906001612018565b90506007548110156107215760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610622565b60078190555f6103e861ffff841661073b6009600a611f8a565b61074890620f4240611f98565b6107529190611f98565b61075c9190611ff9565b610767906001612018565b90506008548110156107ac5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610622565b600855505050565b5f546001600160a01b031633146107dd5760405162461bcd60e51b815260040161062290611fc2565b80806107e65750815b15610846576001600160a01b0383165f9081526012602052604090205460ff16156108465760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610622565b6001600160a01b039092165f908152600e60209081526040808320805494151560ff19958616179055600f9091529020805492151592909116919091179055565b5f546001600160a01b031633146108b05760405162461bcd60e51b815260040161062290611fc2565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b0316331461091d5760405162461bcd60e51b815260040161062290611fc2565b6001600160a01b0381165f9081526012602052604090205460ff16156109855760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610622565b600380546001600160a01b039092166001600160a01b0319909216821790555f908152600e60209081526040808320805460ff199081166001908117909255600f909352922080549091169091179055565b5f546001600160a01b03163314610a005760405162461bcd60e51b815260040161062290611fc2565b600a610a0c828461202b565b60ff161115610a525760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610622565b6005805461ffff191661010060ff9485160260ff19161791909216179055565b5f610a7c33610fc7565b610abb5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610622565b610ac633848461102a565b9392505050565b5f546001600160a01b03163314610af65760405162461bcd60e51b815260040161062290611fc2565b60135460ff1615610b385760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b610b40611444565b565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161062290611fc2565b63ffffffff808516908616610b826009600a611f8a565b610b8f90620f4240611f98565b610b999190611f98565b610ba39190611ff9565b6009819055508163ffffffff168363ffffffff166009600a610bc59190611f8a565b610bd290620f4240611f98565b610bdc9190611f98565b610be69190611ff9565b600a55610c0063ffffffff821666038d7ea4c68000612044565b66ffffffffffffff16600b55600954600a541015610c505760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610622565b5050505050565b5f546001600160a01b03163314610c805760405162461bcd60e51b815260040161062290611fc2565b6013805461ff0019166101001790556011546001600160a01b031615610cd55760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610622565b60135460ff1615610d175760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b5f341180610d2457505f47115b610d595760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610622565b305f90815260016020526040902054610da05760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610622565b60105f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e14919061206f565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e97919061206f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f05919061206f565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f3e90476115fe565b6013805461ff0019169055565b5f546001600160a01b03163314610f745760405162461bcd60e51b815260040161062290611fc2565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6013545f90819060ff1615610fde575060016105b8565b6001600160a01b0383165f908152600e602052604090205460ff16801561101c57506001600160a01b0383165f908152600f602052604090205460ff165b156105b85750600192915050565b5f6001600160a01b0384166110815760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610622565b60135460ff1661110c576001600160a01b0384165f908152600e602052604090205460ff1680156110c957506001600160a01b0384165f908152600f602052604090205460ff165b61110c5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610622565b601354610100900460ff1615801561113b57506001600160a01b0383165f9081526012602052604090205460ff165b801561114b575061114b8261169c565b15611158576111586117c8565b60065443106112d3576004544310801561118957506001600160a01b0384165f9081526012602052604090205460ff165b156111d2576001600160a01b03831632146111d25760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6004546111e190610258612018565b4310801561120657506001600160a01b0383165f9081526012602052604090205460ff165b801561121b57506001600160a01b0384163014155b156112d357435f908152600d602090815260408083206001600160a01b0387168452909152812080546001929061125690849060ff1661202b565b82546101009290920a60ff818102199093169183160217909155435f908152600d602090815260408083206001600160a01b038916845290915290205460029116111590506112d35760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6001600160a01b03841630148015906112f557506001600160a01b0383163014155b801561130e57505f546001600160a01b03858116911614155b1561135b5761131e848484611885565b61135b5760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610622565b5f611367858585611948565b90505f6113748285611faf565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a0908490611faf565b9250508190555081600c5f8282546113b89190612018565b90915550506001600160a01b0385165f90815260016020526040812080548392906113e4908490612018565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143091815260200190565b60405180910390a350600195945050505050565b6103e86114536009600a611f8a565b61146090620f4240611f98565b61146b906014611f98565b6114759190611ff9565b6007556103e86114876009600a611f8a565b61149490620f4240611f98565b61149f906014611f98565b6114a99190611ff9565b600855600c546011546001600160a01b03165f90815260016020526040812080549091906114d8908490611faf565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516001600160a01b0390921691611523919061208a565b5f604051808303815f865af19150503d805f811461155c576040519150601f19603f3d011682016040523d82523d5f602084013e611561565b606091505b5050601180546001600160a01b039081165f90815260126020526040808220805460ff1916951515959095179094559154168152205460ff166115d95760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610622565b4360068190556004546115ec9190612018565b6004556013805460ff19166001179055565b61160782611a32565b6010545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611677573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5091906120a0565b5f805f600b5411156117bf576011546001600160a01b039081165f9081526001602090815260408083205460105482516315ab88c960e31b815292519195169263ad5c464892600480820193918290030181865afa158015611700573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611724919061206f565b6011546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801561176b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178f91906120cb565b90505f8261179d8388611f98565b6117a79190611ff9565b9050600b5481106117b757600193505b5050506105b8565b50600192915050565b6013805461ff001916610100179055600c5460095481108015906117ee575060135460ff165b1561187757600a5481106118015750600a545b8061180e6009600a611f8a565b611819906001611f98565b81111561186457305f908152600160205260408120805484929061183e908490612018565b9091555061184d905081611ad4565b81600c5f82825461185e9190611faf565b90915550505b4780156118745761187481611c14565b50505b506013805461ff0019169055565b6013545f9060019060ff1680156118b457506001600160a01b0385165f908152600f602052604090205460ff16155b80156118d857506001600160a01b0384165f908152600f602052604090205460ff16155b1561066e576007548311156118ee57505f61066e565b6001600160a01b0384165f9081526012602052604090205460ff1615801561193957506008546001600160a01b0385165f90815260016020526040902054611937908590612018565b115b1561066e57505f949350505050565b6013545f90819060ff16158061197557506001600160a01b0385165f908152600e602052604090205460ff165b8061199757506001600160a01b0384165f908152600e602052604090205460ff165b156119a357505f61066e565b6001600160a01b0385165f9081526012602052604090205460ff16156119ec576005546064906119db90610100900460ff1685611f98565b6119e59190611ff9565b905061066e565b6001600160a01b0384165f9081526012602052604090205460ff161561066e57600554606490611a1f9060ff1685611f98565b611a299190611ff9565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ad157305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611add81611a32565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b1057611b106120e2565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8b919061206f565b81600181518110611b9e57611b9e6120e2565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611be39085905f908690309042906004016120f6565b5f604051808303815f87803b158015611bfa575f80fd5b505af1158015611c0c573d5f803e3d5ffd5b505050505050565b6003546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c4b573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ad1575f80fd5b5f8060408385031215611ca9575f80fd5b8235611cb481611c84565b946020939093013593505050565b5f805f60608486031215611cd4575f80fd5b8335611cdf81611c84565b92506020840135611cef81611c84565b929592945050506040919091013590565b803561ffff81168114611d11575f80fd5b919050565b5f8060408385031215611d27575f80fd5b611d3083611d00565b9150611d3e60208401611d00565b90509250929050565b80358015158114611d11575f80fd5b5f805f60608486031215611d68575f80fd5b8335611d7381611c84565b9250611d8160208501611d47565b9150611d8f60408501611d47565b90509250925092565b5f60208284031215611da8575f80fd5b8135610ac681611c84565b803560ff81168114611d11575f80fd5b5f8060408385031215611dd4575f80fd5b611ddd83611db3565b9150611d3e60208401611db3565b5f8060408385031215611dfc575f80fd5b8235611e0781611c84565b91506020830135611e1781611c84565b809150509250929050565b803563ffffffff81168114611d11575f80fd5b5f805f805f60a08688031215611e49575f80fd5b611e5286611e22565b9450611e6060208701611e22565b9350611e6e60408701611e22565b9250611e7c60608701611e22565b9150611e8a60808701611e22565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ee457815f1904821115611eca57611eca611e96565b80851615611ed757918102915b93841c9390800290611eaf565b509250929050565b5f82611efa575060016105b8565b81611f0657505f6105b8565b8160018114611f1c5760028114611f2657611f42565b60019150506105b8565b60ff841115611f3757611f37611e96565b50506001821b6105b8565b5060208310610133831016604e8410600b8410161715611f65575081810a6105b8565b611f6f8383611eaa565b805f1904821115611f8257611f82611e96565b029392505050565b5f610ac660ff841683611eec565b80820281158282048414176105b8576105b8611e96565b818103818111156105b8576105b8611e96565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261201357634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105b8576105b8611e96565b60ff81811683821601908111156105b8576105b8611e96565b66ffffffffffffff81811683821602808216919082811461206757612067611e96565b505092915050565b5f6020828403121561207f575f80fd5b8151610ac681611c84565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120b2575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120db575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121465784516001600160a01b031683529383019391830191600101612121565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a7ce448dcc7c7852448c6d322bda22b22aedf58559674bf4c939611fd8f2646f64736f6c63430008190033

Deployed Bytecode

0x608060405260043610610198575f3560e01c80638da5cb5b116100e7578063b3de9b5d11610087578063dd62ed3e11610062578063dd62ed3e146104c8578063e537a8341461050c578063e8078d941461052b578063f2fde38b14610533575f80fd5b8063b3de9b5d1461048c578063c3f70b52146104a0578063c9567bf9146104b4575f80fd5b806395d89b41116100c257806395d89b41146103ce578063a5e992bb146103fa578063a9059cbb1461040e578063ad5dff731461042d575f80fd5b80638da5cb5b1461037f5780638f3fa8601461039b578063950c6c39146103af575f80fd5b8063368f48001161015257806370a082311161012d57806370a08231146102e7578063715018a61461031b57806375f0a8741461032f5780638b0414d514610360575f80fd5b8063368f48001461028b5780634f7041a5146102ac57806357ff135a146102c8575f80fd5b806306fdde03146101a3578063095ea7b3146101e357806318160ddd1461021257806323b872dd146102345780632b14ca5614610253578063313ce56714610278575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600681526547505520416960d01b60208201525b6040516101da9190611c4f565b60405180910390f35b3480156101ee575f80fd5b506102026101fd366004611c98565b610552565b60405190151581526020016101da565b34801561021d575f80fd5b506102266105be565b6040519081526020016101da565b34801561023f575f80fd5b5061020261024e366004611cc2565b6105dd565b34801561025e575f80fd5b5060055460ff165b60405160ff90911681526020016101da565b348015610283575f80fd5b506009610266565b348015610296575f80fd5b506102aa6102a5366004611d16565b610676565b005b3480156102b7575f80fd5b50600554610100900460ff16610266565b3480156102d3575f80fd5b506102aa6102e2366004611d56565b6107b4565b3480156102f2575f80fd5b50610226610301366004611d98565b6001600160a01b03165f9081526001602052604090205490565b348015610326575f80fd5b506102aa610887565b34801561033a575f80fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b34801561036b575f80fd5b506102aa61037a366004611d98565b6108f4565b34801561038a575f80fd5b505f546001600160a01b0316610348565b3480156103a6575f80fd5b50600854610226565b3480156103ba575f80fd5b506102aa6103c9366004611dc3565b6109d7565b3480156103d9575f80fd5b506040805180820190915260048152634750414960e01b60208201526101cd565b348015610405575f80fd5b50600a54610226565b348015610419575f80fd5b50610202610428366004611c98565b610a72565b348015610438575f80fd5b50610475610447366004611d98565b6001600160a01b03165f908152600e6020908152604080832054600f9092529091205460ff91821692911690565b6040805192151583529015156020830152016101da565b348015610497575f80fd5b50600954610226565b3480156104ab575f80fd5b50600754610226565b3480156104bf575f80fd5b506102aa610acd565b3480156104d3575f80fd5b506102266104e2366004611deb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610517575f80fd5b506102aa610526366004611e35565b610b42565b6102aa610c57565b34801561053e575f80fd5b506102aa61054d366004611d98565b610f4b565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105ac9086815260200190565b60405180910390a35060015b92915050565b5f6105cb6009600a611f8a565b6105d890620f4240611f98565b905090565b5f6105e784610fc7565b61062b5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f9081526002602090815260408083203384529091528120805484929061065d908490611faf565b9091555061066e905084848461102a565b949350505050565b5f546001600160a01b0316331461069f5760405162461bcd60e51b815260040161062290611fc2565b5f6103e861ffff84166106b46009600a611f8a565b6106c190620f4240611f98565b6106cb9190611f98565b6106d59190611ff9565b6106e0906001612018565b90506007548110156107215760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610622565b60078190555f6103e861ffff841661073b6009600a611f8a565b61074890620f4240611f98565b6107529190611f98565b61075c9190611ff9565b610767906001612018565b90506008548110156107ac5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610622565b600855505050565b5f546001600160a01b031633146107dd5760405162461bcd60e51b815260040161062290611fc2565b80806107e65750815b15610846576001600160a01b0383165f9081526012602052604090205460ff16156108465760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610622565b6001600160a01b039092165f908152600e60209081526040808320805494151560ff19958616179055600f9091529020805492151592909116919091179055565b5f546001600160a01b031633146108b05760405162461bcd60e51b815260040161062290611fc2565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b0316331461091d5760405162461bcd60e51b815260040161062290611fc2565b6001600160a01b0381165f9081526012602052604090205460ff16156109855760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610622565b600380546001600160a01b039092166001600160a01b0319909216821790555f908152600e60209081526040808320805460ff199081166001908117909255600f909352922080549091169091179055565b5f546001600160a01b03163314610a005760405162461bcd60e51b815260040161062290611fc2565b600a610a0c828461202b565b60ff161115610a525760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610622565b6005805461ffff191661010060ff9485160260ff19161791909216179055565b5f610a7c33610fc7565b610abb5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610622565b610ac633848461102a565b9392505050565b5f546001600160a01b03163314610af65760405162461bcd60e51b815260040161062290611fc2565b60135460ff1615610b385760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b610b40611444565b565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161062290611fc2565b63ffffffff808516908616610b826009600a611f8a565b610b8f90620f4240611f98565b610b999190611f98565b610ba39190611ff9565b6009819055508163ffffffff168363ffffffff166009600a610bc59190611f8a565b610bd290620f4240611f98565b610bdc9190611f98565b610be69190611ff9565b600a55610c0063ffffffff821666038d7ea4c68000612044565b66ffffffffffffff16600b55600954600a541015610c505760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610622565b5050505050565b5f546001600160a01b03163314610c805760405162461bcd60e51b815260040161062290611fc2565b6013805461ff0019166101001790556011546001600160a01b031615610cd55760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610622565b60135460ff1615610d175760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b5f341180610d2457505f47115b610d595760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610622565b305f90815260016020526040902054610da05760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610622565b60105f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e14919061206f565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e97919061206f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ee1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f05919061206f565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f3e90476115fe565b6013805461ff0019169055565b5f546001600160a01b03163314610f745760405162461bcd60e51b815260040161062290611fc2565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6013545f90819060ff1615610fde575060016105b8565b6001600160a01b0383165f908152600e602052604090205460ff16801561101c57506001600160a01b0383165f908152600f602052604090205460ff165b156105b85750600192915050565b5f6001600160a01b0384166110815760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610622565b60135460ff1661110c576001600160a01b0384165f908152600e602052604090205460ff1680156110c957506001600160a01b0384165f908152600f602052604090205460ff165b61110c5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610622565b601354610100900460ff1615801561113b57506001600160a01b0383165f9081526012602052604090205460ff165b801561114b575061114b8261169c565b15611158576111586117c8565b60065443106112d3576004544310801561118957506001600160a01b0384165f9081526012602052604090205460ff165b156111d2576001600160a01b03831632146111d25760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6004546111e190610258612018565b4310801561120657506001600160a01b0383165f9081526012602052604090205460ff165b801561121b57506001600160a01b0384163014155b156112d357435f908152600d602090815260408083206001600160a01b0387168452909152812080546001929061125690849060ff1661202b565b82546101009290920a60ff818102199093169183160217909155435f908152600d602090815260408083206001600160a01b038916845290915290205460029116111590506112d35760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6001600160a01b03841630148015906112f557506001600160a01b0383163014155b801561130e57505f546001600160a01b03858116911614155b1561135b5761131e848484611885565b61135b5760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610622565b5f611367858585611948565b90505f6113748285611faf565b6001600160a01b0387165f908152600160205260408120805492935086929091906113a0908490611faf565b9250508190555081600c5f8282546113b89190612018565b90915550506001600160a01b0385165f90815260016020526040812080548392906113e4908490612018565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143091815260200190565b60405180910390a350600195945050505050565b6103e86114536009600a611f8a565b61146090620f4240611f98565b61146b906014611f98565b6114759190611ff9565b6007556103e86114876009600a611f8a565b61149490620f4240611f98565b61149f906014611f98565b6114a99190611ff9565b600855600c546011546001600160a01b03165f90815260016020526040812080549091906114d8908490611faf565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516001600160a01b0390921691611523919061208a565b5f604051808303815f865af19150503d805f811461155c576040519150601f19603f3d011682016040523d82523d5f602084013e611561565b606091505b5050601180546001600160a01b039081165f90815260126020526040808220805460ff1916951515959095179094559154168152205460ff166115d95760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610622565b4360068190556004546115ec9190612018565b6004556013805460ff19166001179055565b61160782611a32565b6010545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611677573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5091906120a0565b5f805f600b5411156117bf576011546001600160a01b039081165f9081526001602090815260408083205460105482516315ab88c960e31b815292519195169263ad5c464892600480820193918290030181865afa158015611700573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611724919061206f565b6011546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa15801561176b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178f91906120cb565b90505f8261179d8388611f98565b6117a79190611ff9565b9050600b5481106117b757600193505b5050506105b8565b50600192915050565b6013805461ff001916610100179055600c5460095481108015906117ee575060135460ff165b1561187757600a5481106118015750600a545b8061180e6009600a611f8a565b611819906001611f98565b81111561186457305f908152600160205260408120805484929061183e908490612018565b9091555061184d905081611ad4565b81600c5f82825461185e9190611faf565b90915550505b4780156118745761187481611c14565b50505b506013805461ff0019169055565b6013545f9060019060ff1680156118b457506001600160a01b0385165f908152600f602052604090205460ff16155b80156118d857506001600160a01b0384165f908152600f602052604090205460ff16155b1561066e576007548311156118ee57505f61066e565b6001600160a01b0384165f9081526012602052604090205460ff1615801561193957506008546001600160a01b0385165f90815260016020526040902054611937908590612018565b115b1561066e57505f949350505050565b6013545f90819060ff16158061197557506001600160a01b0385165f908152600e602052604090205460ff165b8061199757506001600160a01b0384165f908152600e602052604090205460ff165b156119a357505f61066e565b6001600160a01b0385165f9081526012602052604090205460ff16156119ec576005546064906119db90610100900460ff1685611f98565b6119e59190611ff9565b905061066e565b6001600160a01b0384165f9081526012602052604090205460ff161561066e57600554606490611a1f9060ff1685611f98565b611a299190611ff9565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ad157305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611add81611a32565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b1057611b106120e2565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8b919061206f565b81600181518110611b9e57611b9e6120e2565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611be39085905f908690309042906004016120f6565b5f604051808303815f87803b158015611bfa575f80fd5b505af1158015611c0c573d5f803e3d5ffd5b505050505050565b6003546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611c4b573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ad1575f80fd5b5f8060408385031215611ca9575f80fd5b8235611cb481611c84565b946020939093013593505050565b5f805f60608486031215611cd4575f80fd5b8335611cdf81611c84565b92506020840135611cef81611c84565b929592945050506040919091013590565b803561ffff81168114611d11575f80fd5b919050565b5f8060408385031215611d27575f80fd5b611d3083611d00565b9150611d3e60208401611d00565b90509250929050565b80358015158114611d11575f80fd5b5f805f60608486031215611d68575f80fd5b8335611d7381611c84565b9250611d8160208501611d47565b9150611d8f60408501611d47565b90509250925092565b5f60208284031215611da8575f80fd5b8135610ac681611c84565b803560ff81168114611d11575f80fd5b5f8060408385031215611dd4575f80fd5b611ddd83611db3565b9150611d3e60208401611db3565b5f8060408385031215611dfc575f80fd5b8235611e0781611c84565b91506020830135611e1781611c84565b809150509250929050565b803563ffffffff81168114611d11575f80fd5b5f805f805f60a08688031215611e49575f80fd5b611e5286611e22565b9450611e6060208701611e22565b9350611e6e60408701611e22565b9250611e7c60608701611e22565b9150611e8a60808701611e22565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ee457815f1904821115611eca57611eca611e96565b80851615611ed757918102915b93841c9390800290611eaf565b509250929050565b5f82611efa575060016105b8565b81611f0657505f6105b8565b8160018114611f1c5760028114611f2657611f42565b60019150506105b8565b60ff841115611f3757611f37611e96565b50506001821b6105b8565b5060208310610133831016604e8410600b8410161715611f65575081810a6105b8565b611f6f8383611eaa565b805f1904821115611f8257611f82611e96565b029392505050565b5f610ac660ff841683611eec565b80820281158282048414176105b8576105b8611e96565b818103818111156105b8576105b8611e96565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261201357634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105b8576105b8611e96565b60ff81811683821601908111156105b8576105b8611e96565b66ffffffffffffff81811683821602808216919082811461206757612067611e96565b505092915050565b5f6020828403121561207f575f80fd5b8151610ac681611c84565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120b2575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120db575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121465784516001600160a01b031683529383019391830191600101612121565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a7ce448dcc7c7852448c6d322bda22b22aedf58559674bf4c939611fd8f2646f64736f6c63430008190033

Deployed Bytecode Sourcemap

2747:11822:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5023:82;;;;;;;;;;-1:-1:-1;5095:7:0;;;;;;;;;;;;-1:-1:-1;;;5095:7:0;;;;5023:82;;;;;;;:::i;:::-;;;;;;;;5681:214;;;;;;;;;;-1:-1:-1;5681:214:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;5681:214:0;893:187:1;4930:87:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;4930:87:0;1085:177:1;5903:300:0;;;;;;;;;;-1:-1:-1;5903:300:0;;;;;:::i;:::-;;:::i;6850:71::-;;;;;;;;;;-1:-1:-1;6907:11:0;;;;6850:71;;;1900:4:1;1888:17;;;1870:36;;1858:2;1843:18;6850:71:0;1728:184:1;4848:76:0;;;;;;;;;;-1:-1:-1;2911:1:0;4848:76;;13895:422;;;;;;;;;;-1:-1:-1;13895:422:0;;;;;:::i;:::-;;:::i;:::-;;6778:66;;;;;;;;;;-1:-1:-1;6834:7:0;;;;;;;6778:66;;13334:260;;;;;;;;;;-1:-1:-1;13334:260:0;;;;;:::i;:::-;;:::i;5201:105::-;;;;;;;;;;-1:-1:-1;5201:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5285:18:0;5267:7;5285:18;;;:9;:18;;;;;;;5201:105;1754:130;;;;;;;;;;;;;:::i;13793:94::-;;;;;;;;;;-1:-1:-1;13871:10:0;;-1:-1:-1;;;;;13871:10:0;13793:94;;;-1:-1:-1;;;;;3311:32:1;;;3293:51;;3281:2;3266:18;13793:94:0;3147:203:1;6211:273:0;;;;;;;;;;-1:-1:-1;6211:273:0;;;;;:::i;:::-;;:::i;1523:65::-;;;;;;;;;;-1:-1:-1;1561:7:0;1579:6;-1:-1:-1;;;;;1579:6:0;1523:65;;8675:92;;;;;;;;;;-1:-1:-1;8751:10:0;;8675:92;;8427:240;;;;;;;;;;-1:-1:-1;8427:240:0;;;;;:::i;:::-;;:::i;5111:84::-;;;;;;;;;;-1:-1:-1;5185:7:0;;;;;;;;;;;;-1:-1:-1;;;5185:7:0;;;;5111:84;;13698:87;;;;;;;;;;-1:-1:-1;13768:11:0;;13698:87;;5453:220;;;;;;;;;;-1:-1:-1;5453:220:0;;;;;:::i;:::-;;:::i;6492:140::-;;;;;;;;;;-1:-1:-1;6492:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;6592:15:0;6549:9;6592:15;;;:7;:15;;;;;;;;;6609:8;:16;;;;;;;6592:15;;;;;6609:16;;;6492:140;;;;;3960:14:1;;3953:22;3935:41;;4019:14;;4012:22;4007:2;3992:18;;3985:50;3908:18;6492:140:0;3773:268:1;13602:90:0;;;;;;;;;;-1:-1:-1;13672:14:0;;13602:90;;8773:89;;;;;;;;;;-1:-1:-1;8850:6:0;;8773:89;;6640:130;;;;;;;;;;;;;:::i;5312:133::-;;;;;;;;;;-1:-1:-1;5312:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5414:19:0;;;5396:7;5414:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5312:133;8079:340;;;;;;;;;;-1:-1:-1;8079:340:0;;;;;:::i;:::-;;:::i;6929:468::-;;;:::i;1594:154::-;;;;;;;;;;-1:-1:-1;1594:154:0;;;;;:::i;:::-;;:::i;5681:214::-;5785:10;5756:4;5773:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5773:32:0;;;;;;;;;;:41;;;5830:37;5756:4;;5773:32;;5830:37;;;;5808:6;1231:25:1;;1219:2;1204:18;;1085:177;5830:37:0;;;;;;;;-1:-1:-1;5885:4:0;5681:214;;;;;:::o;4930:87::-;4985:7;2969:9;2911:1;2969:2;:9;:::i;:::-;2958:21;;:7;:21;:::i;:::-;4996:18;;4930:87;:::o;5903:300::-;6006:4;6031:28;6048:10;6031:16;:28::i;:::-;6023:57;;;;-1:-1:-1;;;6023:57:0;;7230:2:1;6023:57:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;6023:57:0;;;;;;;;;-1:-1:-1;;;;;6091:23:0;;;;;;:11;:23;;;;;;;;6115:10;6091:35;;;;;;;:45;;6130:6;;6091:23;:45;;6130:6;;6091:45;:::i;:::-;;;;-1:-1:-1;6154:43:0;;-1:-1:-1;6168:10:0;6180:8;6190:6;6154:13;:43::i;:::-;6147:50;5903:300;-1:-1:-1;;;;5903:300:0:o;13895:422::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;13994:16:::1;14046:4;14013:30;::::0;::::1;2969:9;2911:1;2969:2;:9;:::i;:::-;2958:21;::::0;:7:::1;:21;:::i;:::-;14013:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;::::0;14053:1:::1;14013:41;:::i;:::-;13994:60;;14085:6;;14073:8;:18;;14065:41;;;::::0;-1:-1:-1;;;14065:41:0;;8413:2:1;14065:41:0::1;::::0;::::1;8395:21:1::0;8452:2;8432:18;;;8425:30;-1:-1:-1;;;8471:18:1;;;8464:40;8521:18;;14065:41:0::1;8211:334:1::0;14065:41:0::1;14117:6;:17:::0;;;14145:20:::1;14201:4;14168:30;::::0;::::1;2969:9;2911:1;2969:2;:9;:::i;:::-;2958:21;::::0;:7:::1;:21;:::i;:::-;14168:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;::::0;14208:1:::1;14168:41;:::i;:::-;14145:64;;14244:10;;14228:12;:26;;14220:53;;;::::0;-1:-1:-1;;;14220:53:0;;8752:2:1;14220:53:0::1;::::0;::::1;8734:21:1::0;8791:2;8771:18;;;8764:30;-1:-1:-1;;;8810:18:1;;;8803:44;8864:18;;14220:53:0::1;8550:338:1::0;14220:53:0::1;14284:10;:25:::0;-1:-1:-1;;;13895:422:0:o;13334:260::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;13432:10:::1;:22;;;;13446:8;13432:22;13428:84;;;-1:-1:-1::0;;;;;13467:21:0;::::1;;::::0;;;:16:::1;:21;::::0;;;;;::::1;;13466:22;13458:51;;;::::0;-1:-1:-1;;;13458:51:0;;9095:2:1;13458:51:0::1;::::0;::::1;9077:21:1::0;9134:2;9114:18;;;9107:30;-1:-1:-1;;;9153:18:1;;;9146:46;9209:18;;13458:51:0::1;8893:340:1::0;13458:51:0::1;-1:-1:-1::0;;;;;13522:14:0;;::::1;;::::0;;;:7:::1;:14;::::0;;;;;;;:25;;;::::1;;-1:-1:-1::0;;13522:25:0;;::::1;;::::0;;13558:8:::1;:15:::0;;;;;:28;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;13334:260::o;1754:130::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;1831:1:::1;1814:19:::0;;-1:-1:-1;;;;;;1814:19:0::1;::::0;;1849:32:::1;::::0;3293:51:1;;;1849:32:0::1;::::0;3281:2:1;3266:18;1849:32:0::1;;;;;;;1754:130::o:0;6211:273::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6294:30:0;::::1;;::::0;;;:16:::1;:30;::::0;;;;;::::1;;6293:31;6285:67;;;::::0;-1:-1:-1;;;6285:67:0;;9440:2:1;6285:67:0::1;::::0;::::1;9422:21:1::0;9479:2;9459:18;;;9452:30;9518:25;9498:18;;;9491:53;9561:18;;6285:67:0::1;9238:347:1::0;6285:67:0::1;6363:10;:34:::0;;-1:-1:-1;;;;;6363:34:0;;::::1;-1:-1:-1::0;;;;;;6363:34:0;;::::1;::::0;::::1;::::0;;:10:::1;6408:21:::0;;;:7:::1;:21;::::0;;;;;;;:28;;-1:-1:-1;;6408:28:0;;::::1;6363:34:::0;6408:28;;::::1;::::0;;;6447:8:::1;:22:::0;;;;;:29;;;;::::1;::::0;;::::1;::::0;;6211:273::o;8427:240::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;8561:2:::1;8527:30;8543:14:::0;8527:13;:30:::1;:::i;:::-;:36;;;;8519:67;;;::::0;-1:-1:-1;;;8519:67:0;;9945:2:1;8519:67:0::1;::::0;::::1;9927:21:1::0;9984:2;9964:18;;;9957:30;-1:-1:-1;;;10003:18:1;;;9996:48;10061:18;;8519:67:0::1;9743:342:1::0;8519:67:0::1;8597:7;:23:::0;;-1:-1:-1;;8631:28:0;8597:23:::1;;::::0;;::::1;;-1:-1:-1::0;;8631:28:0;;;;;::::1;;::::0;;8427:240::o;5453:220::-;5532:4;5557:28;5574:10;5557:16;:28::i;:::-;5549:57;;;;-1:-1:-1;;;5549:57:0;;7230:2:1;5549:57:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;5549:57:0;7028:340:1;5549:57:0;5624:43;5638:10;5650:8;5660:6;5624:13;:43::i;:::-;5617:50;5453:220;-1:-1:-1;;;5453:220:0:o;6640:130::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;6702:14:::1;::::0;::::1;;6701:15;6693:40;;;::::0;-1:-1:-1;;;6693:40:0;;10292:2:1;6693:40:0::1;::::0;::::1;10274:21:1::0;10331:2;10311:18;;;10304:30;-1:-1:-1;;;10350:18:1;;;10343:42;10402:18;;6693:40:0::1;10090:336:1::0;6693:40:0::1;6744:18;:16;:18::i;:::-;6640:130::o:0;8079:340::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;8223:29:::1;::::0;;::::1;::::0;:20;::::1;2969:9;2911:1;2969:2;:9;:::i;:::-;2958:21;::::0;:7:::1;:21;:::i;:::-;8223:20;;;;:::i;:::-;:29;;;;:::i;:::-;8206:14;:46;;;;8300:6;8277:29;;8291:6;8277:20;;2911:1;2969:2;:9;;;;:::i;:::-;2958:21;::::0;:7:::1;:21;:::i;:::-;8277:20;;;;:::i;:::-;:29;;;;:::i;:::-;8263:11;:43:::0;8331:16:::1;;::::0;::::1;8341:6;8331:16;:::i;:::-;8317:30;;:11;:30:::0;8379:14:::1;::::0;8366:11:::1;::::0;:27:::1;;8358:53;;;::::0;-1:-1:-1;;;8358:53:0;;10893:2:1;8358:53:0::1;::::0;::::1;10875:21:1::0;10932:2;10912:18;;;10905:30;-1:-1:-1;;;10951:18:1;;;10944:43;11004:18;;8358:53:0::1;10691:337:1::0;8358:53:0::1;8079:340:::0;;;;;:::o;6929:468::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;4256:9:::1;:16:::0;;-1:-1:-1;;4256:16:0::1;;;::::0;;7011:2:::2;::::0;-1:-1:-1;;;;;7011:2:0::2;:16:::0;7003:39:::2;;;::::0;-1:-1:-1;;;7003:39:0;;11235:2:1;7003:39:0::2;::::0;::::2;11217:21:1::0;11274:2;11254:18;;;11247:30;-1:-1:-1;;;11293:18:1;;;11286:40;11343:18;;7003:39:0::2;11033:334:1::0;7003:39:0::2;7062:14;::::0;::::2;;7061:15;7053:40;;;::::0;-1:-1:-1;;;7053:40:0;;10292:2:1;7053:40:0::2;::::0;::::2;10274:21:1::0;10331:2;10311:18;;;10304:30;-1:-1:-1;;;10350:18:1;;;10343:42;10402:18;;7053:40:0::2;10090:336:1::0;7053:40:0::2;7124:1;7112:9;:13;:40;;;;7151:1;7129:21;:23;7112:40;7104:59;;;::::0;-1:-1:-1;;;7104:59:0;;11574:2:1;7104: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;;7104:59:0::2;11372:329:1::0;7104:59:0::2;7200:4;7207:1;7182:24:::0;;;:9:::2;:24;::::0;;;;;7174:48:::2;;;::::0;-1:-1:-1;;;7174:48:0;;11908:2:1;7174:48:0::2;::::0;::::2;11890:21:1::0;11947:1;11927:18;;;11920:29;-1:-1:-1;;;11965:18:1;;;11958:39;12014:18;;7174:48:0::2;11706:332:1::0;7174:48:0::2;7256:10;;;;;;;;;-1:-1:-1::0;;;;;7256:10:0::2;-1:-1:-1::0;;;;;7256:18:0::2;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7238:50:0::2;;7297:4;7304:10;;;;;;;;;-1:-1:-1::0;;;;;7304:10:0::2;-1:-1:-1::0;;;;;7304:15:0::2;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7238:84;::::0;-1:-1:-1;;;;;;7238:84:0::2;::::0;;;;;;-1:-1:-1;;;;;12529:15:1;;;7238:84:0::2;::::0;::::2;12511:34:1::0;12581:15;;12561:18;;;12554:43;12446:18;;7238:84:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7233:2;:89:::0;;-1:-1:-1;;;;;;7233:89:0::2;-1:-1:-1::0;;;;;7233:89:0;;;::::2;::::0;;;::::2;::::0;;7359:4:::2;-1:-1:-1::0;7341:24:0;;;-1:-1:-1;7341:24:0::2;::::0;;;;;7333:56:::2;::::0;7367:21:::2;7333:7;:56::i;:::-;4297:9:::1;:17:::0;;-1:-1:-1;;4297:17:0::1;::::0;;6929:468::o;1594:154::-;1378:6;;-1:-1:-1;;;;;1378:6:0;1364:10;:20;1356:57;;;;-1:-1:-1;;;1356:57:0;;;;;;;:::i;:::-;1679:6:::1;:18:::0;;-1:-1:-1;;;;;;1679:18:0::1;-1:-1:-1::0;;;;;1679:18:0;::::1;::::0;;::::1;::::0;;;1714:31:::1;::::0;3293:51:1;;;1714:31:0::1;::::0;3281:2:1;3266:18;1714:31:0::1;;;;;;;1594:154:::0;:::o;10438:291::-;10562:14;;10506:4;;;;10562:14;;10557:133;;;-1:-1:-1;10595:4:0;10557:133;;;-1:-1:-1;;;;;10622:19:0;;;;;;:7;:19;;;;;;;;:43;;;;-1:-1:-1;;;;;;10645:20:0;;;;;;:8;:20;;;;;;;;10622:43;10618:72;;;-1:-1:-1;10683:4:0;10710:11;10438:291;-1:-1:-1;;10438:291:0:o;11088:1364::-;11179:4;-1:-1:-1;;;;;11204:20:0;;11196:59;;;;-1:-1:-1;;;11196:59:0;;13026:2:1;11196:59:0;;;13008:21:1;13065:2;13045:18;;;13038:30;13104:28;13084:18;;;13077:56;13150:18;;11196:59:0;12824:350:1;11196:59:0;11271:14;;;;11266:94;;-1:-1:-1;;;;;11297:15:0;;;;;;:7;:15;;;;;;;;:35;;;;-1:-1:-1;;;;;;11316:16:0;;;;;;:8;:16;;;;;;;;11297:35;11289:68;;;;-1:-1:-1;;;11289:68:0;;13381:2:1;11289:68:0;;;13363:21:1;13420:2;13400:18;;;13393:30;-1:-1:-1;;;13439:18:1;;;13432:50;13499:18;;11289:68:0;13179:344:1;11289:68:0;11376:9;;;;;;;11375:10;:40;;;;-1:-1:-1;;;;;;11389:26:0;;;;;;:16;:26;;;;;;;;11375:40;:62;;;;;11419:18;11430:6;11419:10;:18::i;:::-;11370:90;;;11442:15;:13;:15::i;:::-;11493:12;;11477;:28;11472:470;;11542:8;;11527:12;:23;:51;;;;-1:-1:-1;;;;;;11554:24:0;;;;;;:16;:24;;;;;;;;11527:51;11523:137;;;-1:-1:-1;;;;;11608:21:0;;11620:9;11608:21;11600:43;;;;-1:-1:-1;;;11600:43:0;;13730:2:1;11600:43:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;11600:43:0;13528:332:1;11600:43:0;11693:8;;:14;;11704:3;11693:14;:::i;:::-;11678:12;:29;:59;;;;-1:-1:-1;;;;;;11711:26:0;;;;;;:16;:26;;;;;;;;11678:59;:86;;;;-1:-1:-1;;;;;;11741:23:0;;11759:4;11741:23;;11678:86;11674:257;;;11802:12;11786:29;;;;:15;:29;;;;;;;;-1:-1:-1;;;;;11786:39:0;;;;;;;;;:44;;11829:1;;11786:29;:44;;11829:1;;11786:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;11873:12;-1:-1:-1;11857:29:0;;;:15;:29;;;;;;;;-1:-1:-1;;;;;11857:39:0;;;;;;;;;;11900:1;11857:39;;:44;;;-1:-1:-1;11849:66:0;;;;-1:-1:-1;;;11849:66:0;;13730:2:1;11849:66:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;11849:66:0;13528:332:1;11849:66:0;-1:-1:-1;;;;;11959:23:0;;11977:4;11959:23;;;;:52;;-1:-1:-1;;;;;;11986:25:0;;12006:4;11986:25;;11959:52;:72;;;;-1:-1:-1;12025:6:0;;-1:-1:-1;;;;;12015:16:0;;;12025:6;;12015:16;;11959:72;11954:173;;;12058:37;12070:6;12078:8;12088:6;12058:11;:37::i;:::-;12050:64;;;;-1:-1:-1;;;12050:64:0;;14067:2:1;12050:64:0;;;14049:21:1;14106:2;14086:18;;;14079:30;-1:-1:-1;;;14125:18:1;;;14118:44;14179:18;;12050:64:0;13865:338:1;12050:64:0;12139:18;12160:34;12169:6;12177:8;12187:6;12160:8;:34::i;:::-;12139:55;-1:-1:-1;12205:23:0;12231:19;12139:55;12231:6;:19;:::i;:::-;-1:-1:-1;;;;;12261:17:0;;;;;;:9;:17;;;;;:27;;12205:45;;-1:-1:-1;12282:6:0;;12261:17;;;:27;;12282:6;;12261:27;:::i;:::-;;;;;;;;12313:10;12299;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12334:19:0;;;;;;:9;:19;;;;;:38;;12357:15;;12334:19;:38;;12357:15;;12334:38;:::i;:::-;;;;;;;;12405:8;-1:-1:-1;;;;;12388:34:0;12397:6;-1:-1:-1;;;;;12388:34:0;;12415:6;12388:34;;;;1231:25:1;;1219:2;1204:18;;1085:177;12388:34:0;;;;;;;;-1:-1:-1;12440:4:0;;11088:1364;-1:-1:-1;;;;;11088:1364:0:o;12898:428::-;12974:4;2969:9;2911:1;2969:2;:9;:::i;:::-;2958:21;;:7;:21;:::i;:::-;12955:16;;:2;:16;:::i;:::-;:23;;;;:::i;:::-;12946:6;:32;13021:4;2969:9;2911:1;2969:2;:9;:::i;:::-;2958:21;;:7;:21;:::i;:::-;13002:16;;:2;:16;:::i;:::-;:23;;;;:::i;:::-;12989:10;:36;13053:10;;13046:2;;-1:-1:-1;;;;;13046:2:0;13036:13;;;;:9;:13;;;;;:27;;:13;;;:27;;13053:10;;13036:27;:::i;:::-;;;;-1:-1:-1;;13100:2:0;;13108:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13108:33:0;-1:-1:-1;;;;;;13108:33:0;;;13100:43;;-1:-1:-1;;;;;13100:2:0;;;;:43;;13108:33;13100:43;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13092:2:0;;;-1:-1:-1;;;;;13092:2:0;;;13075:20;;;;:16;:20;;;;;;13074:69;;-1:-1:-1;;13074:69:0;;;;;;;;;;;13179:2;;;13162:20;;;;13074:69;13162:20;13154:49;;;;-1:-1:-1;;;13154:49:0;;14716:2:1;13154:49:0;;;14698:21:1;14755:2;14735:18;;;14728:30;-1:-1:-1;;;14774:18:1;;;14767:46;14830:18;;13154:49:0;14514:340:1;13154:49:0;13229:12;13214;:27;;;13263:8;;:23;;13229:12;13263:23;:::i;:::-;13252:8;:34;13297:14;:21;;-1:-1:-1;;13297:21:0;13314:4;13297:21;;;12898:428::o;14325:241::-;14407:29;14423:12;14407:15;:29::i;:::-;14447:10;;;14533:6;;14447:111;;-1:-1:-1;;;14447:111:0;;14506:4;14447:111;;;15200:34:1;15250:18;;;15243:34;;;15293:18;;;15286:34;;;15336:18;;;15329:34;;;;-1:-1:-1;;;;;14533:6:0;;;15379:19:1;;;15372:44;14541:15:0;15432:19:1;;;15425:35;14447:10:0;;;;:26;;14481:13;;15134:19:1;;14447:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12460:430::-;12520:4;12537:11;12577:1;12563:11;;:15;12559:300;;;12622:2;;-1:-1:-1;;;;;12622:2:0;;;12596:13;12612;;;:9;:13;;;;;;;;;12664:10;;:17;;-1:-1:-1;;;12664:17:0;;;;12612:13;;12664:10;;:15;;:17;;;;;;;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12693:2;;12657:39;;-1:-1:-1;;;12657:39:0;;-1:-1:-1;;;;;12693:2:0;;;12657:39;;;3293:51:1;12657:35:0;;;;;3266:18:1;;12657:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12640:56;-1:-1:-1;12712:16:0;12753:5;12732:17;12640:56;12732:8;:17;:::i;:::-;12731:27;;;;:::i;:::-;12712:46;;12789:11;;12777:8;:23;12773:47;;12813:4;12804:13;;12773:47;12580:255;;;12559:300;;;-1:-1:-1;12852:4:0;12876:6;12460:430;-1:-1:-1;;12460:430:0:o;9380:727::-;4256:9;:16;;-1:-1:-1;;4256:16:0;;;;;9465:10:::1;::::0;9513:14:::1;::::0;9491:36;::::1;::::0;::::1;::::0;:54:::1;;-1:-1:-1::0;9531:14:0::1;::::0;::::1;;9491:54;9486:614;;;9590:11;;9568:18;:33;9563:78;;-1:-1:-1::0;9627:11:0::1;::::0;9563:78:::1;9694:18:::0;9753:9:::1;2911:1;9753:2;:9;:::i;:::-;9749:13;::::0;:1:::1;:13;:::i;:::-;9732:14;:30;9728:214;;;9802:4;9784:24;::::0;;;:9:::1;:24;::::0;;;;:46;;9812:18;;9784:24;:46:::1;::::0;9812:18;;9784:46:::1;:::i;:::-;::::0;;;-1:-1:-1;9849:26:0::1;::::0;-1:-1:-1;9860:14:0;9849:10:::1;:26::i;:::-;9908:18;9894:10;;:32;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9728:214:0::1;9986:21;10025:23:::0;;10022:67:::1;;10052:34;10066:19;10052:13;:34::i;:::-;9548:552;;9486:614;-1:-1:-1::0;4297:9:0;:17;;-1:-1:-1;;4297:17:0;;;9380:727::o;7506:565::-;7673:14;;7612:4;;7653;;7673:14;;:39;;;;-1:-1:-1;;;;;;7692:20:0;;;;;;:8;:20;;;;;;;;7691:21;7673:39;:62;;;;-1:-1:-1;;;;;;7717:18:0;;;;;;:8;:18;;;;;;;;7716:19;7673:62;7668:362;;;7775:6;;7758:14;:23;7753:266;;;-1:-1:-1;7823:5:0;7753:266;;;-1:-1:-1;;;;;7888:26:0;;;;;;:16;:26;;;;;;;;7887:27;:82;;;;-1:-1:-1;7958:10:0;;-1:-1:-1;;;;;7919:19:0;;;;;;:9;:19;;;;;;:36;;7941:14;;7919:36;:::i;:::-;:49;7887:82;7864:155;;;-1:-1:-1;8011:5:0;8047:16;7506:565;-1:-1:-1;;;;7506:565:0:o;8870:502::-;9020:14;;8966:7;;;;9020:14;;9019:15;;:38;;-1:-1:-1;;;;;;9038:19:0;;;;;;:7;:19;;;;;;;;9019:38;:60;;;-1:-1:-1;;;;;;9061:18:0;;;;;;:7;:18;;;;;;;;9019:60;9014:324;;;-1:-1:-1;9110:1:0;9014:324;;;-1:-1:-1;;;;;9135:28:0;;;;;;:16;:28;;;;;;;;9130:208;;;9203:7;;9213:3;;9194:16;;9203:7;;;;;9194:6;:16;:::i;:::-;:22;;;;:::i;:::-;9182:34;;9130:208;;;-1:-1:-1;;;;;9241:27:0;;;;;;:16;:27;;;;;;;;9236:102;;;9308:11;;9322:3;;9299:20;;9308:11;;9299:6;:20;:::i;:::-;:26;;;;:::i;:::-;9287:38;8870:502;-1:-1:-1;;;;;8870:502:0:o;10115:315::-;10207:4;10187:26;;;;:11;:26;;;;;;;;3923:42;10187:45;;;;;;;;:60;-1:-1:-1;10182:241:0;;;10285:4;10265:26;;;;:11;:26;;;;;;;;3923:42;10265:45;;;;;;;;;;-1:-1:-1;;10265:65:0;;;;10350:61;;1231:25:1;;;3923:42:0;;10285:4;10350:61;;1204:18:1;10350:61:0;;;;;;;10182:241;10115:315;:::o;10737:343::-;10797:28;10813:11;10797:15;:28::i;:::-;10860:16;;;10874:1;10860:16;;;;;;;;10836:21;;10860:16;;;;;;;;;;-1:-1:-1;10860:16:0;10836:40;;10906:4;10887;10892:1;10887:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10887:25:0;;;:7;;;;;;;;;;:25;;;;10933:10;;:17;;;-1:-1:-1;;;10933:17:0;;;;:10;;;;;:15;;:17;;;;;10887:7;;10933:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10923:4;10928:1;10923:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10923:27:0;;;:7;;;;;;;;;:27;10961:10;;:111;;-1:-1:-1;;;10961:111:0;;:10;;;:61;;:111;;11023:11;;10961:10;;11037:4;;11050;;11056:15;;10961:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10786:294;10737:343;:::o;7405:93::-;7463:10;;:27;;-1:-1:-1;;;;;7463:10:0;;;;:27;;;;;7483:6;;7463:10;:27;:10;:27;7483:6;7463:10;:27;;;;;;;;;;;;;;;;;;;;;7405:93;:::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;1917:159::-;1984:20;;2044:6;2033:18;;2023:29;;2013:57;;2066:1;2063;2056:12;2013:57;1917:159;;;:::o;2081:256::-;2147:6;2155;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2247:28;2265:9;2247:28;:::i;:::-;2237:38;;2294:37;2327:2;2316:9;2312:18;2294:37;:::i;:::-;2284:47;;2081:256;;;;;:::o;2342:160::-;2407:20;;2463:13;;2456:21;2446:32;;2436:60;;2492:1;2489;2482:12;2507:383;2578:6;2586;2594;2647:2;2635:9;2626:7;2622:23;2618:32;2615:52;;;2663:1;2660;2653:12;2615:52;2702:9;2689:23;2721:31;2746:5;2721:31;:::i;:::-;2771:5;-1:-1:-1;2795:35:1;2826:2;2811:18;;2795:35;:::i;:::-;2785:45;;2849:35;2880:2;2869:9;2865:18;2849:35;:::i;:::-;2839:45;;2507:383;;;;;:::o;2895:247::-;2954:6;3007:2;2995:9;2986:7;2982:23;2978:32;2975:52;;;3023:1;3020;3013:12;2975:52;3062:9;3049:23;3081:31;3106:5;3081:31;:::i;3355:156::-;3421:20;;3481:4;3470:16;;3460:27;;3450:55;;3501:1;3498;3491:12;3516:252;3580:6;3588;3641:2;3629:9;3620:7;3616:23;3612:32;3609:52;;;3657:1;3654;3647:12;3609:52;3680:27;3697:9;3680:27;:::i;:::-;3670:37;;3726:36;3758:2;3747:9;3743:18;3726:36;:::i;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;9590:148::-;9678:4;9657:12;;;9671;;;9653:31;;9696:13;;9693:39;;;9712: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://a7ce448dcc7c7852448c6d322bda22b22aedf58559674bf4c939611fd8f2646f

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.