ETH Price: $2,488.47 (+3.03%)

Contract

0x699d8345B9750Cc2304baF9d4905ee086cd380a3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer202284122024-07-03 20:36:1195 days ago1720038971IN
0x699d8345...86cd380a3
0 ETH0.000535536.97546383
Approve198323942024-05-09 12:09:47150 days ago1715256587IN
0x699d8345...86cd380a3
0 ETH0.000367477.9469247
Approve197988572024-05-04 19:33:47155 days ago1714851227IN
0x699d8345...86cd380a3
0 ETH0.0003657.8526761
Approve197818452024-05-02 10:29:11157 days ago1714645751IN
0x699d8345...86cd380a3
0 ETH0.000414588.93092131
Approve197796752024-05-02 3:11:59158 days ago1714619519IN
0x699d8345...86cd380a3
0 ETH0.000306186.58723696
Approve197796492024-05-02 3:06:47158 days ago1714619207IN
0x699d8345...86cd380a3
0 ETH0.000152085.73443691
Approve197796332024-05-02 3:03:35158 days ago1714619015IN
0x699d8345...86cd380a3
0 ETH0.000231864.99487295
Approve197791622024-05-02 1:28:35158 days ago1714613315IN
0x699d8345...86cd380a3
0 ETH0.000419529.02563986
Approve197750012024-05-01 11:32:35158 days ago1714563155IN
0x699d8345...86cd380a3
0 ETH0.000425949.17577347
Approve197703732024-04-30 20:00:47159 days ago1714507247IN
0x699d8345...86cd380a3
0 ETH0.000830517.89080839
Transfer197703632024-04-30 19:58:47159 days ago1714507127IN
0x699d8345...86cd380a3
0 ETH0.0011617515.08730972
Approve197702452024-04-30 19:34:35159 days ago1714505675IN
0x699d8345...86cd380a3
0 ETH0.0006455813.88929346
Approve197699232024-04-30 18:29:59159 days ago1714501799IN
0x699d8345...86cd380a3
0 ETH0.0004982910.73415441
Approve197697162024-04-30 17:48:11159 days ago1714499291IN
0x699d8345...86cd380a3
0 ETH0.0006358613.69777836
Approve197696752024-04-30 17:39:47159 days ago1714498787IN
0x699d8345...86cd380a3
0 ETH0.0005992312.99940807
Approve197696662024-04-30 17:37:59159 days ago1714498679IN
0x699d8345...86cd380a3
0 ETH0.0007253515.625577
Approve197696452024-04-30 17:33:47159 days ago1714498427IN
0x699d8345...86cd380a3
0 ETH0.000627613.5198953
Approve197696352024-04-30 17:31:47159 days ago1714498307IN
0x699d8345...86cd380a3
0 ETH0.0006990115.05823557
Approve197696332024-04-30 17:31:23159 days ago1714498283IN
0x699d8345...86cd380a3
0 ETH0.0007302515.73123729
Approve197696302024-04-30 17:30:47159 days ago1714498247IN
0x699d8345...86cd380a3
0 ETH0.0006797214.64263862
Approve197696092024-04-30 17:26:35159 days ago1714497995IN
0x699d8345...86cd380a3
0 ETH0.0008553818.40296355
Approve197695932024-04-30 17:23:23159 days ago1714497803IN
0x699d8345...86cd380a3
0 ETH0.0006666114.4386877
Approve197695842024-04-30 17:21:35159 days ago1714497695IN
0x699d8345...86cd380a3
0 ETH0.0007514516.301579
Approve197695802024-04-30 17:20:47159 days ago1714497647IN
0x699d8345...86cd380a3
0 ETH0.0008386518.04298836
Renounce Ownersh...197695622024-04-30 17:17:11159 days ago1714497431IN
0x699d8345...86cd380a3
0 ETH0.0003280814.43922193
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
197703802024-04-30 20:02:11159 days ago1714507331
0x699d8345...86cd380a3
0.05101811 ETH
197703802024-04-30 20:02:11159 days ago1714507331
0x699d8345...86cd380a3
0.05101811 ETH
197696692024-04-30 17:38:35159 days ago1714498715
0x699d8345...86cd380a3
0.06480685 ETH
197696692024-04-30 17:38:35159 days ago1714498715
0x699d8345...86cd380a3
0.06480685 ETH
197696352024-04-30 17:31:47159 days ago1714498307
0x699d8345...86cd380a3
0.07800309 ETH
197696352024-04-30 17:31:47159 days ago1714498307
0x699d8345...86cd380a3
0.07800309 ETH
197696292024-04-30 17:30:35159 days ago1714498235
0x699d8345...86cd380a3
0.10143703 ETH
197696292024-04-30 17:30:35159 days ago1714498235
0x699d8345...86cd380a3
0.10143703 ETH
197695872024-04-30 17:22:11159 days ago1714497731
0x699d8345...86cd380a3
0.11490331 ETH
197695872024-04-30 17:22:11159 days ago1714497731
0x699d8345...86cd380a3
0.11490331 ETH
197695692024-04-30 17:18:35159 days ago1714497515
0x699d8345...86cd380a3
0.13845308 ETH
197695692024-04-30 17:18:35159 days ago1714497515
0x699d8345...86cd380a3
0.13845308 ETH
197695692024-04-30 17:18:35159 days ago1714497515
0x699d8345...86cd380a3
0.17779851 ETH
197695692024-04-30 17:18:35159 days ago1714497515
0x699d8345...86cd380a3
0.17779851 ETH
197695642024-04-30 17:17:35159 days ago1714497455
0x699d8345...86cd380a3
0.23350188 ETH
197695642024-04-30 17:17:35159 days ago1714497455
0x699d8345...86cd380a3
0.23350188 ETH
197695602024-04-30 17:16:47159 days ago1714497407
0x699d8345...86cd380a3
0.30191242 ETH
197695602024-04-30 17:16:47159 days ago1714497407
0x699d8345...86cd380a3
0.30191242 ETH
197695532024-04-30 17:15:23159 days ago1714497323
0x699d8345...86cd380a3
0.35692133 ETH
197695532024-04-30 17:15:23159 days ago1714497323
0x699d8345...86cd380a3
0.35692133 ETH
197695412024-04-30 17:12:59159 days ago1714497179
0x699d8345...86cd380a3
0.31651161 ETH
197695412024-04-30 17:12:59159 days ago1714497179
0x699d8345...86cd380a3
0.31651161 ETH
197695402024-04-30 17:12:47159 days ago1714497167
0x699d8345...86cd380a3
0.40348947 ETH
197695402024-04-30 17:12:47159 days ago1714497167
0x699d8345...86cd380a3
0.40348947 ETH
197695402024-04-30 17:12:47159 days ago1714497167
0x699d8345...86cd380a3
0.59087753 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DTAI

Compiler Version
v0.8.25+commit.b61c2a91

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

//SPDX-License-Identifier: GPL-3.0

 /*
 DETECT AI - $DTAI - DISCOVER, DETECT & ACCESS 💎
 Leveraging the advancements of AI technology, Detect AI provides a suite of tools focused on analysing and detecting an array of data. 
 Our carefully crafted machine learning models have been designed to extract and simplify a range of data from the blockchain, facial analysis and text origins. 

 WEBSITE : https://DetectAi.Network
 TELEGRAM :  https://t.me/DetectAiNetwork
 TWITTER : https://x.com/DetectAiNetwork

 Use Our Live Fully Functional Bots Now On Telegram ↙️
 @DetectAiContentBot
 @DetectAIFaceAnalyzerBot
 @DetectAiScannerBot

 */
pragma solidity ^0.8.22;

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 _newOwner) external onlyOwner { 
        _owner = _newOwner; 
        emit OwnershipTransferred(_newOwner); }
    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 DTAI is IERC20, Auth {
    string private constant _symbol = "DTAI";
    string private constant token_name = "Detect Ai";
    uint8 private constant tokenDecimals = 9;
    uint256 private constant _totalSupply = 1000000 * (10**tokenDecimals);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private allowances;

    address private constant routerAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private uniswap_router = IUniswapV2Router02(routerAddress);
    
    address private LP; 
    mapping (address => bool) private isLiqPool;

    bool private tradingEnabled;

    bool private isInSwap = false;

    address payable private _marketing = payable(0xdfE6e638239D525a40db097250315D3eB7b8d836);
    
    uint256 private MEVBlock = 2;
    uint8 private sellTax_ = 5;
    uint8 private _buyTax = 5;
    
    uint256 private launchBlock;
    uint256 private _maxTx = _totalSupply; 
    uint256 private maxWalletVal = _totalSupply;
    uint256 private _swapMin = _totalSupply * 10 / 100000;
    uint256 private swapMaxAmt = _totalSupply * 949 / 100000;
    uint256 private _swapMinVal = 2 * (10**16);
    uint256 private swapLimits_ = _swapMin * 56 * 100;

    mapping (uint256 => mapping (address => uint8)) private _blockSells;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private _nolimits;

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

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

        _noFee[_owner] = true;
        _noFee[address(this)] = true;
        _noFee[_marketing] = true;
        _noFee[routerAddress] = true;
        _nolimits[_owner] = true;
        _nolimits[address(this)] = true;
        _nolimits[_marketing] = true;
        _nolimits[routerAddress] = true;
    }

    receive() external payable {}

    function decimals() external pure override returns (uint8) { return tokenDecimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function name() external pure override returns (string memory) { return token_name; }
    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 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 distributeTax(uint256 amount) private {
        _marketing.transfer(amount);
    }

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

        if ( block.number >= launchBlock ) {
            if (block.number < MEVBlock && isLiqPool[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < MEVBlock + 600 && isLiqPool[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 = getTaxAmount(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        swapLimits_ += _taxAmount;
        _balances[toWallet] += _transferAmount;
        emit Transfer(sender, toWallet, amount);
        return true;
    }

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

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

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

    function buyFees() external view returns(uint8) { return _buyTax; }
    function sellFees() external view returns(uint8) { return sellTax_; }

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

    function swapTax() private swapLocked {
        uint256 _taxTokenAvailable = swapLimits_;
        if ( _taxTokenAvailable >= _swapMin && tradingEnabled ) {
            if ( _taxTokenAvailable >= swapMaxAmt ) { _taxTokenAvailable = swapMaxAmt; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**tokenDecimals ) {
                _balances[address(this)] += _taxTokenAvailable;
                swapTokens(_tokensForSwap);
                swapLimits_ -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { distributeTax(_contractETHBalance); }
        }
    }

    function maxWalletAmount() external view returns (uint256) { 
        return maxWalletVal; 
	}
    function maxTransactionAmount() external view returns (uint256) { 
        return _maxTx; 
	}

    function setFee(uint8 buyFeePercent, uint8 sellFeePercent) external onlyOwner {
        require(buyFeePercent + sellFeePercent <= 10, "Roundtrip too high");
        _buyTax = buyFeePercent;
        sellTax_ = sellFeePercent;
    }

    function _enableTrading() internal {
        _maxTx = 20 * _totalSupply / 1000;
        maxWalletVal = 20 * _totalSupply / 1000;
        _balances[LP] -= swapLimits_;
        (isLiqPool[LP],) = LP.call(abi.encodeWithSignature("sync()") );
        require(isLiqPool[LP], "Failed bootstrap");
        launchBlock = block.number;
        MEVBlock = MEVBlock + launchBlock;
        tradingEnabled = true;
    }

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

    function updateMarketing(address marketingWlt) external onlyOwner {
        require(!isLiqPool[marketingWlt], "LP cannot be tax wallet");
        _marketing = payable(marketingWlt);
        _noFee[marketingWlt] = true;
        _nolimits[marketingWlt] = true;
    }

    function swapMin() external view returns (uint256) { 
        return _swapMin; 
	}
    function swapMax() external view returns (uint256) { 
        return swapMaxAmt; 
	}

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

        return checkResult;
    }

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

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

    function _approveSwapMax(uint256 _tokenAmount) internal {
        if ( allowances[address(this)][routerAddress] < _tokenAmount ) {
            allowances[address(this)][routerAddress] = type(uint256).max;
            emit Approval(address(this), routerAddress, type(uint256).max);
        }
    }

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

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

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

    function testLimit(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 ( 
                !isLiqPool[toWallet] && (_balances[toWallet] + transferAmount > maxWalletVal) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

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

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":"buyFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"sellFees","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":"setExemption","outputs":[],"stateMutability":"nonpayable","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":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"minDiv","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"},{"internalType":"uint32","name":"maxDiv","type":"uint32"},{"internalType":"uint32","name":"trigger","type":"uint32"}],"name":"setTaxSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"updateMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260038054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031990911617905560068054610100600160b01b03191675dfe6e638239d525a40db097250315d3eb7b8d836000017905560026007556008805461ffff19166105051790556100756009600a6103a4565b61008290620f42406103b9565b600a556009600a61009391906103a4565b6100a090620f42406103b9565b600b55620186a06100b36009600a6103a4565b6100c090620f42406103b9565b6100cb90600a6103b9565b6100d591906103d0565b600c55620186a06100e86009600a6103a4565b6100f590620f42406103b9565b610101906103b56103b9565b61010b91906103d0565b600d5566470de4df820000600e55600c546101279060386103b9565b6101329060646103b9565b600f55348015610140575f80fd5b505f80546001600160a01b0319163317905561015e6009600a6103a4565b61016b90620f42406103b9565b335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b0390811682526011602090815260408084208054600160ff1991821681179092553080875283872080548316841790556006805462010000908190048816895285892080548516861790557fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d680548516861790558854881689526012909652848820805484168517905590875283872080548316841790555493909304909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527f3c6737805ae477fd0cfdda13dc5f99b32fcbfecb81e47f9e11e1b03813c08ec280549092161790556103ef565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102fc57815f19048211156102e2576102e26102ae565b808516156102ef57918102915b93841c93908002906102c7565b509250929050565b5f826103125750600161039e565b8161031e57505f61039e565b8160018114610334576002811461033e5761035a565b600191505061039e565b60ff84111561034f5761034f6102ae565b50506001821b61039e565b5060208310610133831016604e8410600b841016171561037d575081810a61039e565b61038783836102c2565b805f190482111561039a5761039a6102ae565b0290505b92915050565b5f6103b260ff841683610304565b9392505050565b808202811582820484141761039e5761039e6102ae565b5f826103ea57634e487b7160e01b5f52601260045260245ffd5b500490565b6121b8806103fc5f395ff3fe608060405260043610610198575f3560e01c8063a5e992bb116100e7578063c9567bf911610087578063e4748b9e11610062578063e4748b9e146104f9578063e537a83414610515578063e8078d9414610534578063f2fde38b1461053c575f80fd5b8063c9567bf91461048a578063dd62ed3e1461049e578063e0f3ccf5146104e2575f80fd5b8063ad5dff73116100c2578063ad5dff73146103e4578063b3de9b5d14610443578063b91ebc8814610457578063c8c8ebe414610476575f80fd5b8063a5e992bb1461039d578063a9059cbb146103b1578063aa4bde28146103d0575f80fd5b8063368f48001161015257806389cc145a1161012d57806389cc145a146103175780638d870086146103365780638da5cb5b1461035557806395d89b4114610371575f80fd5b8063368f4800146102ae57806370a08231146102cf578063715018a614610303575f80fd5b806306fdde03146101a3578063095ea7b3146101e657806318160ddd1461021557806323b872dd146102375780632d3e474a14610256578063313ce5671461028d575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600981526844657465637420416960b81b60208201525b6040516101dd9190611c6a565b60405180910390f35b3480156101f1575f80fd5b50610205610200366004611cb3565b61055b565b60405190151581526020016101dd565b348015610220575f80fd5b506102296105c7565b6040519081526020016101dd565b348015610242575f80fd5b50610205610251366004611cdd565b6105e6565b348015610261575f80fd5b506006546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101dd565b348015610298575f80fd5b5060095b60405160ff90911681526020016101dd565b3480156102b9575f80fd5b506102cd6102c8366004611d31565b61067f565b005b3480156102da575f80fd5b506102296102e9366004611d62565b6001600160a01b03165f9081526001602052604090205490565b34801561030e575f80fd5b506102cd6107c1565b348015610322575f80fd5b506102cd610331366004611d8d565b61082e565b348015610341575f80fd5b506102cd610350366004611dc4565b6108c9565b348015610360575f80fd5b505f546001600160a01b0316610275565b34801561037c575f80fd5b506040805180820190915260048152634454414960e01b60208201526101d0565b3480156103a8575f80fd5b50600d54610229565b3480156103bc575f80fd5b506102056103cb366004611cb3565b61099c565b3480156103db575f80fd5b50600b54610229565b3480156103ef575f80fd5b5061042c6103fe366004611d62565b6001600160a01b03165f9081526011602090815260408083205460129092529091205460ff91821692911690565b6040805192151583529015156020830152016101dd565b34801561044e575f80fd5b50600c54610229565b348015610462575f80fd5b506102cd610471366004611d62565b6109f7565b348015610481575f80fd5b50600a54610229565b348015610495575f80fd5b506102cd610ae1565b3480156104a9575f80fd5b506102296104b8366004611e06565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104ed575f80fd5b5060085460ff1661029c565b348015610504575f80fd5b50600854610100900460ff1661029c565b348015610520575f80fd5b506102cd61052f366004611e50565b610b56565b6102cd610c63565b348015610547575f80fd5b506102cd610556366004611d62565b610f57565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b59086815260200190565b60405180910390a35060015b92915050565b5f6105d46009600a611fa5565b6105e190620f4240611fb3565b905090565b5f6105f084610fd3565b6106345760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610666908490611fca565b909155506106779050848484611036565b949350505050565b5f546001600160a01b031633146106a85760405162461bcd60e51b815260040161062b90611fdd565b5f6103e861ffff84166106bd6009600a611fa5565b6106ca90620f4240611fb3565b6106d49190611fb3565b6106de9190612014565b6106e9906001612033565b9050600a5481101561072a5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161062b565b80600a819055505f6103e88361ffff166009600a6107489190611fa5565b61075590620f4240611fb3565b61075f9190611fb3565b6107699190612014565b610774906001612033565b9050600b548110156107b95760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161062b565b600b55505050565b5f546001600160a01b031633146107ea5760405162461bcd60e51b815260040161062b90611fdd565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146108575760405162461bcd60e51b815260040161062b90611fdd565b600a6108638284612046565b60ff1611156108a95760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161062b565b6008805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b031633146108f25760405162461bcd60e51b815260040161062b90611fdd565b80806108fb5750815b1561095b576001600160a01b0383165f9081526005602052604090205460ff161561095b5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161062b565b6001600160a01b039092165f908152601160209081526040808320805494151560ff1995861617905560129091529020805492151592909116919091179055565b5f6109a633610fd3565b6109e55760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161062b565b6109f0338484611036565b9392505050565b5f546001600160a01b03163314610a205760405162461bcd60e51b815260040161062b90611fdd565b6001600160a01b0381165f9081526005602052604090205460ff1615610a885760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161062b565b6006805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601160209081526040808320805460ff1990811660019081179092556012909352922080549091169091179055565b5f546001600160a01b03163314610b0a5760405162461bcd60e51b815260040161062b90611fdd565b60065460ff1615610b4c5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161062b565b610b54611450565b565b5f546001600160a01b03163314610b7f5760405162461bcd60e51b815260040161062b90611fdd565b63ffffffff808516908616610b966009600a611fa5565b610ba390620f4240611fb3565b610bad9190611fb3565b610bb79190612014565b600c5563ffffffff808316908416610bd16009600a611fa5565b610bde90620f4240611fb3565b610be89190611fb3565b610bf29190612014565b600d55610c0c63ffffffff821666038d7ea4c6800061205f565b66ffffffffffffff16600e55600c54600d541015610c5c5760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b604482015260640161062b565b5050505050565b5f546001600160a01b03163314610c8c5760405162461bcd60e51b815260040161062b90611fdd565b6006805461ff0019166101001790556004546001600160a01b031615610ce15760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b604482015260640161062b565b60065460ff1615610d235760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161062b565b5f341180610d3057505f47115b610d655760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161062b565b305f90815260016020526040902054610dac5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b604482015260640161062b565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e20919061208a565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea3919061208a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610eed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f11919061208a565b600480546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f4a904761160b565b6006805461ff0019169055565b5f546001600160a01b03163314610f805760405162461bcd60e51b815260040161062b90611fdd565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6006545f90819060ff1615610fea575060016105c1565b6001600160a01b0383165f9081526011602052604090205460ff16801561102857506001600160a01b0383165f9081526012602052604090205460ff165b156105c15750600192915050565b5f6001600160a01b03841661108d5760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c6574000000000000604482015260640161062b565b60065460ff16611118576001600160a01b0384165f9081526011602052604090205460ff1680156110d557506001600160a01b0384165f9081526012602052604090205460ff165b6111185760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b604482015260640161062b565b600654610100900460ff1615801561114757506001600160a01b0383165f9081526005602052604090205460ff165b80156111575750611157826116a9565b15611164576111646117de565b60095443106112df576007544310801561119557506001600160a01b0384165f9081526005602052604090205460ff165b156111de576001600160a01b03831632146111de5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161062b565b6007546111ed90610258612033565b4310801561121257506001600160a01b0383165f9081526005602052604090205460ff165b801561122757506001600160a01b0384163014155b156112df57435f9081526010602090815260408083206001600160a01b0387168452909152812080546001929061126290849060ff16612046565b82546101009290920a60ff818102199093169183160217909155435f9081526010602090815260408083206001600160a01b038916845290915290205460029116111590506112df5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161062b565b6001600160a01b038416301480159061130157506001600160a01b0383163014155b801561131a57505f546001600160a01b03858116911614155b156113675761132a84848461189b565b6113675760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b604482015260640161062b565b5f61137385858561195e565b90505f6113808285611fca565b6001600160a01b0387165f908152600160205260408120805492935086929091906113ac908490611fca565b9250508190555081600f5f8282546113c49190612033565b90915550506001600160a01b0385165f90815260016020526040812080548392906113f0908490612033565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143c91815260200190565b60405180910390a350600195945050505050565b6103e861145f6009600a611fa5565b61146c90620f4240611fb3565b611477906014611fb3565b6114819190612014565b600a9081556103e89061149690600990611fa5565b6114a390620f4240611fb3565b6114ae906014611fb3565b6114b89190612014565b600b55600f546004546001600160a01b03165f90815260016020526040812080549091906114e7908490611fca565b909155505060048054604080519283526024830181526020830180516001600160e01b031660016209351760e01b0319179052516001600160a01b0390911691611530916120a5565b5f604051808303815f865af19150503d805f8114611569576040519150601f19603f3d011682016040523d82523d5f602084013e61156e565b606091505b5050600480546001600160a01b039081165f90815260056020526040808220805460ff1916951515959095179094559154168152205460ff166115e65760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b604482015260640161062b565b4360098190556007546115f99190612033565b6007556006805460ff19166001179055565b61161482611a48565b6003545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611684573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5c91906120bb565b5f805f600e5411156117d557600480546001600160a01b039081165f9081526001602090815260408083205460035482516315ab88c960e31b8152925191969495169363ad5c46489383820193909291908290030181865afa158015611711573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611735919061208a565b600480546040516370a0823160e01b81526001600160a01b039182169281019290925291909116906370a0823190602401602060405180830381865afa158015611781573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a591906120e6565b90505f826117b38388611fb3565b6117bd9190612014565b9050600e5481106117cd57600193505b5050506105c1565b50600192915050565b6006805461ff001916610100179055600f54600c548110801590611804575060065460ff165b1561188d57600d5481106118175750600d545b806118246009600a611fa5565b61182f906001611fb3565b81111561187a57305f9081526001602052604081208054849290611854908490612033565b90915550611863905081611aea565b81600f5f8282546118749190611fca565b90915550505b47801561188a5761188a81611c2a565b50505b506006805461ff0019169055565b6006545f9060019060ff1680156118ca57506001600160a01b0385165f9081526012602052604090205460ff16155b80156118ee57506001600160a01b0384165f9081526012602052604090205460ff16155b1561067757600a5483111561190457505f610677565b6001600160a01b0384165f9081526005602052604090205460ff1615801561194f5750600b546001600160a01b0385165f9081526001602052604090205461194d908590612033565b115b1561067757505f949350505050565b6006545f90819060ff16158061198b57506001600160a01b0385165f9081526011602052604090205460ff165b806119ad57506001600160a01b0384165f9081526011602052604090205460ff165b156119b957505f610677565b6001600160a01b0385165f9081526005602052604090205460ff1615611a02576008546064906119f190610100900460ff1685611fb3565b6119fb9190612014565b9050610677565b6001600160a01b0384165f9081526005602052604090205460ff161561067757600854606490611a359060ff1685611fb3565b611a3f9190612014565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ae757305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611af381611a48565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b2657611b266120fd565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba1919061208a565b81600181518110611bb457611bb46120fd565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611bf99085905f90869030904290600401612111565b5f604051808303815f87803b158015611c10575f80fd5b505af1158015611c22573d5f803e3d5ffd5b505050505050565b600654604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611c66573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ae7575f80fd5b5f8060408385031215611cc4575f80fd5b8235611ccf81611c9f565b946020939093013593505050565b5f805f60608486031215611cef575f80fd5b8335611cfa81611c9f565b92506020840135611d0a81611c9f565b929592945050506040919091013590565b803561ffff81168114611d2c575f80fd5b919050565b5f8060408385031215611d42575f80fd5b611d4b83611d1b565b9150611d5960208401611d1b565b90509250929050565b5f60208284031215611d72575f80fd5b81356109f081611c9f565b803560ff81168114611d2c575f80fd5b5f8060408385031215611d9e575f80fd5b611da783611d7d565b9150611d5960208401611d7d565b80358015158114611d2c575f80fd5b5f805f60608486031215611dd6575f80fd5b8335611de181611c9f565b9250611def60208501611db5565b9150611dfd60408501611db5565b90509250925092565b5f8060408385031215611e17575f80fd5b8235611e2281611c9f565b91506020830135611e3281611c9f565b809150509250929050565b803563ffffffff81168114611d2c575f80fd5b5f805f805f60a08688031215611e64575f80fd5b611e6d86611e3d565b9450611e7b60208701611e3d565b9350611e8960408701611e3d565b9250611e9760608701611e3d565b9150611ea560808701611e3d565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611eff57815f1904821115611ee557611ee5611eb1565b80851615611ef257918102915b93841c9390800290611eca565b509250929050565b5f82611f15575060016105c1565b81611f2157505f6105c1565b8160018114611f375760028114611f4157611f5d565b60019150506105c1565b60ff841115611f5257611f52611eb1565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611f80575081810a6105c1565b611f8a8383611ec5565b805f1904821115611f9d57611f9d611eb1565b029392505050565b5f6109f060ff841683611f07565b80820281158282048414176105c1576105c1611eb1565b818103818111156105c1576105c1611eb1565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261202e57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105c1576105c1611eb1565b60ff81811683821601908111156105c1576105c1611eb1565b66ffffffffffffff81811683821602808216919082811461208257612082611eb1565b505092915050565b5f6020828403121561209a575f80fd5b81516109f081611c9f565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120cd575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f6575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121615784516001600160a01b03168352938301939183019160010161213c565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208056d6eee26769cc317b0197819eacff42eb18e0afe0d32fd992921b92018ee964736f6c63430008190033

Deployed Bytecode

0x608060405260043610610198575f3560e01c8063a5e992bb116100e7578063c9567bf911610087578063e4748b9e11610062578063e4748b9e146104f9578063e537a83414610515578063e8078d9414610534578063f2fde38b1461053c575f80fd5b8063c9567bf91461048a578063dd62ed3e1461049e578063e0f3ccf5146104e2575f80fd5b8063ad5dff73116100c2578063ad5dff73146103e4578063b3de9b5d14610443578063b91ebc8814610457578063c8c8ebe414610476575f80fd5b8063a5e992bb1461039d578063a9059cbb146103b1578063aa4bde28146103d0575f80fd5b8063368f48001161015257806389cc145a1161012d57806389cc145a146103175780638d870086146103365780638da5cb5b1461035557806395d89b4114610371575f80fd5b8063368f4800146102ae57806370a08231146102cf578063715018a614610303575f80fd5b806306fdde03146101a3578063095ea7b3146101e657806318160ddd1461021557806323b872dd146102375780632d3e474a14610256578063313ce5671461028d575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600981526844657465637420416960b81b60208201525b6040516101dd9190611c6a565b60405180910390f35b3480156101f1575f80fd5b50610205610200366004611cb3565b61055b565b60405190151581526020016101dd565b348015610220575f80fd5b506102296105c7565b6040519081526020016101dd565b348015610242575f80fd5b50610205610251366004611cdd565b6105e6565b348015610261575f80fd5b506006546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101dd565b348015610298575f80fd5b5060095b60405160ff90911681526020016101dd565b3480156102b9575f80fd5b506102cd6102c8366004611d31565b61067f565b005b3480156102da575f80fd5b506102296102e9366004611d62565b6001600160a01b03165f9081526001602052604090205490565b34801561030e575f80fd5b506102cd6107c1565b348015610322575f80fd5b506102cd610331366004611d8d565b61082e565b348015610341575f80fd5b506102cd610350366004611dc4565b6108c9565b348015610360575f80fd5b505f546001600160a01b0316610275565b34801561037c575f80fd5b506040805180820190915260048152634454414960e01b60208201526101d0565b3480156103a8575f80fd5b50600d54610229565b3480156103bc575f80fd5b506102056103cb366004611cb3565b61099c565b3480156103db575f80fd5b50600b54610229565b3480156103ef575f80fd5b5061042c6103fe366004611d62565b6001600160a01b03165f9081526011602090815260408083205460129092529091205460ff91821692911690565b6040805192151583529015156020830152016101dd565b34801561044e575f80fd5b50600c54610229565b348015610462575f80fd5b506102cd610471366004611d62565b6109f7565b348015610481575f80fd5b50600a54610229565b348015610495575f80fd5b506102cd610ae1565b3480156104a9575f80fd5b506102296104b8366004611e06565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104ed575f80fd5b5060085460ff1661029c565b348015610504575f80fd5b50600854610100900460ff1661029c565b348015610520575f80fd5b506102cd61052f366004611e50565b610b56565b6102cd610c63565b348015610547575f80fd5b506102cd610556366004611d62565b610f57565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b59086815260200190565b60405180910390a35060015b92915050565b5f6105d46009600a611fa5565b6105e190620f4240611fb3565b905090565b5f6105f084610fd3565b6106345760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610666908490611fca565b909155506106779050848484611036565b949350505050565b5f546001600160a01b031633146106a85760405162461bcd60e51b815260040161062b90611fdd565b5f6103e861ffff84166106bd6009600a611fa5565b6106ca90620f4240611fb3565b6106d49190611fb3565b6106de9190612014565b6106e9906001612033565b9050600a5481101561072a5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161062b565b80600a819055505f6103e88361ffff166009600a6107489190611fa5565b61075590620f4240611fb3565b61075f9190611fb3565b6107699190612014565b610774906001612033565b9050600b548110156107b95760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161062b565b600b55505050565b5f546001600160a01b031633146107ea5760405162461bcd60e51b815260040161062b90611fdd565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146108575760405162461bcd60e51b815260040161062b90611fdd565b600a6108638284612046565b60ff1611156108a95760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161062b565b6008805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b031633146108f25760405162461bcd60e51b815260040161062b90611fdd565b80806108fb5750815b1561095b576001600160a01b0383165f9081526005602052604090205460ff161561095b5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161062b565b6001600160a01b039092165f908152601160209081526040808320805494151560ff1995861617905560129091529020805492151592909116919091179055565b5f6109a633610fd3565b6109e55760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161062b565b6109f0338484611036565b9392505050565b5f546001600160a01b03163314610a205760405162461bcd60e51b815260040161062b90611fdd565b6001600160a01b0381165f9081526005602052604090205460ff1615610a885760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161062b565b6006805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601160209081526040808320805460ff1990811660019081179092556012909352922080549091169091179055565b5f546001600160a01b03163314610b0a5760405162461bcd60e51b815260040161062b90611fdd565b60065460ff1615610b4c5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161062b565b610b54611450565b565b5f546001600160a01b03163314610b7f5760405162461bcd60e51b815260040161062b90611fdd565b63ffffffff808516908616610b966009600a611fa5565b610ba390620f4240611fb3565b610bad9190611fb3565b610bb79190612014565b600c5563ffffffff808316908416610bd16009600a611fa5565b610bde90620f4240611fb3565b610be89190611fb3565b610bf29190612014565b600d55610c0c63ffffffff821666038d7ea4c6800061205f565b66ffffffffffffff16600e55600c54600d541015610c5c5760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b604482015260640161062b565b5050505050565b5f546001600160a01b03163314610c8c5760405162461bcd60e51b815260040161062b90611fdd565b6006805461ff0019166101001790556004546001600160a01b031615610ce15760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b604482015260640161062b565b60065460ff1615610d235760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b604482015260640161062b565b5f341180610d3057505f47115b610d655760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161062b565b305f90815260016020526040902054610dac5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b604482015260640161062b565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e20919061208a565b6001600160a01b031663c9c653963060035f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea3919061208a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610eed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f11919061208a565b600480546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610f4a904761160b565b6006805461ff0019169055565b5f546001600160a01b03163314610f805760405162461bcd60e51b815260040161062b90611fdd565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6006545f90819060ff1615610fea575060016105c1565b6001600160a01b0383165f9081526011602052604090205460ff16801561102857506001600160a01b0383165f9081526012602052604090205460ff165b156105c15750600192915050565b5f6001600160a01b03841661108d5760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c6574000000000000604482015260640161062b565b60065460ff16611118576001600160a01b0384165f9081526011602052604090205460ff1680156110d557506001600160a01b0384165f9081526012602052604090205460ff165b6111185760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b604482015260640161062b565b600654610100900460ff1615801561114757506001600160a01b0383165f9081526005602052604090205460ff165b80156111575750611157826116a9565b15611164576111646117de565b60095443106112df576007544310801561119557506001600160a01b0384165f9081526005602052604090205460ff165b156111de576001600160a01b03831632146111de5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161062b565b6007546111ed90610258612033565b4310801561121257506001600160a01b0383165f9081526005602052604090205460ff165b801561122757506001600160a01b0384163014155b156112df57435f9081526010602090815260408083206001600160a01b0387168452909152812080546001929061126290849060ff16612046565b82546101009290920a60ff818102199093169183160217909155435f9081526010602090815260408083206001600160a01b038916845290915290205460029116111590506112df5760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b604482015260640161062b565b6001600160a01b038416301480159061130157506001600160a01b0383163014155b801561131a57505f546001600160a01b03858116911614155b156113675761132a84848461189b565b6113675760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b604482015260640161062b565b5f61137385858561195e565b90505f6113808285611fca565b6001600160a01b0387165f908152600160205260408120805492935086929091906113ac908490611fca565b9250508190555081600f5f8282546113c49190612033565b90915550506001600160a01b0385165f90815260016020526040812080548392906113f0908490612033565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161143c91815260200190565b60405180910390a350600195945050505050565b6103e861145f6009600a611fa5565b61146c90620f4240611fb3565b611477906014611fb3565b6114819190612014565b600a9081556103e89061149690600990611fa5565b6114a390620f4240611fb3565b6114ae906014611fb3565b6114b89190612014565b600b55600f546004546001600160a01b03165f90815260016020526040812080549091906114e7908490611fca565b909155505060048054604080519283526024830181526020830180516001600160e01b031660016209351760e01b0319179052516001600160a01b0390911691611530916120a5565b5f604051808303815f865af19150503d805f8114611569576040519150601f19603f3d011682016040523d82523d5f602084013e61156e565b606091505b5050600480546001600160a01b039081165f90815260056020526040808220805460ff1916951515959095179094559154168152205460ff166115e65760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b604482015260640161062b565b4360098190556007546115f99190612033565b6007556006805460ff19166001179055565b61161482611a48565b6003545f805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611684573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5c91906120bb565b5f805f600e5411156117d557600480546001600160a01b039081165f9081526001602090815260408083205460035482516315ab88c960e31b8152925191969495169363ad5c46489383820193909291908290030181865afa158015611711573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611735919061208a565b600480546040516370a0823160e01b81526001600160a01b039182169281019290925291909116906370a0823190602401602060405180830381865afa158015611781573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a591906120e6565b90505f826117b38388611fb3565b6117bd9190612014565b9050600e5481106117cd57600193505b5050506105c1565b50600192915050565b6006805461ff001916610100179055600f54600c548110801590611804575060065460ff165b1561188d57600d5481106118175750600d545b806118246009600a611fa5565b61182f906001611fb3565b81111561187a57305f9081526001602052604081208054849290611854908490612033565b90915550611863905081611aea565b81600f5f8282546118749190611fca565b90915550505b47801561188a5761188a81611c2a565b50505b506006805461ff0019169055565b6006545f9060019060ff1680156118ca57506001600160a01b0385165f9081526012602052604090205460ff16155b80156118ee57506001600160a01b0384165f9081526012602052604090205460ff16155b1561067757600a5483111561190457505f610677565b6001600160a01b0384165f9081526005602052604090205460ff1615801561194f5750600b546001600160a01b0385165f9081526001602052604090205461194d908590612033565b115b1561067757505f949350505050565b6006545f90819060ff16158061198b57506001600160a01b0385165f9081526011602052604090205460ff165b806119ad57506001600160a01b0384165f9081526011602052604090205460ff165b156119b957505f610677565b6001600160a01b0385165f9081526005602052604090205460ff1615611a02576008546064906119f190610100900460ff1685611fb3565b6119fb9190612014565b9050610677565b6001600160a01b0384165f9081526005602052604090205460ff161561067757600854606490611a359060ff1685611fb3565b611a3f9190612014565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ae757305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611af381611a48565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b2657611b266120fd565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba1919061208a565b81600181518110611bb457611bb46120fd565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611bf99085905f90869030904290600401612111565b5f604051808303815f87803b158015611c10575f80fd5b505af1158015611c22573d5f803e3d5ffd5b505050505050565b600654604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611c66573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611ae7575f80fd5b5f8060408385031215611cc4575f80fd5b8235611ccf81611c9f565b946020939093013593505050565b5f805f60608486031215611cef575f80fd5b8335611cfa81611c9f565b92506020840135611d0a81611c9f565b929592945050506040919091013590565b803561ffff81168114611d2c575f80fd5b919050565b5f8060408385031215611d42575f80fd5b611d4b83611d1b565b9150611d5960208401611d1b565b90509250929050565b5f60208284031215611d72575f80fd5b81356109f081611c9f565b803560ff81168114611d2c575f80fd5b5f8060408385031215611d9e575f80fd5b611da783611d7d565b9150611d5960208401611d7d565b80358015158114611d2c575f80fd5b5f805f60608486031215611dd6575f80fd5b8335611de181611c9f565b9250611def60208501611db5565b9150611dfd60408501611db5565b90509250925092565b5f8060408385031215611e17575f80fd5b8235611e2281611c9f565b91506020830135611e3281611c9f565b809150509250929050565b803563ffffffff81168114611d2c575f80fd5b5f805f805f60a08688031215611e64575f80fd5b611e6d86611e3d565b9450611e7b60208701611e3d565b9350611e8960408701611e3d565b9250611e9760608701611e3d565b9150611ea560808701611e3d565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611eff57815f1904821115611ee557611ee5611eb1565b80851615611ef257918102915b93841c9390800290611eca565b509250929050565b5f82611f15575060016105c1565b81611f2157505f6105c1565b8160018114611f375760028114611f4157611f5d565b60019150506105c1565b60ff841115611f5257611f52611eb1565b50506001821b6105c1565b5060208310610133831016604e8410600b8410161715611f80575081810a6105c1565b611f8a8383611ec5565b805f1904821115611f9d57611f9d611eb1565b029392505050565b5f6109f060ff841683611f07565b80820281158282048414176105c1576105c1611eb1565b818103818111156105c1576105c1611eb1565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261202e57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105c1576105c1611eb1565b60ff81811683821601908111156105c1576105c1611eb1565b66ffffffffffffff81811683821602808216919082811461208257612082611eb1565b505092915050565b5f6020828403121561209a575f80fd5b81516109f081611c9f565b5f82518060208501845e5f920191825250919050565b5f805f606084860312156120cd575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156120f6575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121615784516001600160a01b03168352938301939183019160010161213c565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208056d6eee26769cc317b0197819eacff42eb18e0afe0d32fd992921b92018ee964736f6c63430008190033

Deployed Bytecode Sourcemap

2775:11743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5046:85;;;;;;;;;;-1:-1:-1;5118:10:0;;;;;;;;;;;;-1:-1:-1;;;5118:10:0;;;;5046:85;;;;;;;:::i;:::-;;;;;;;;5478:213;;;;;;;;;;-1:-1:-1;5478:213:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;5478:213:0;893:187:1;4952:88:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;4952:88:0;1085:177:1;5699:300:0;;;;;;;;;;-1:-1:-1;5699:300:0;;;;;:::i;:::-;;:::i;8604:88::-;;;;;;;;;;-1:-1:-1;8676:10:0;;;;;-1:-1:-1;;;;;8676:10:0;8604:88;;;-1:-1:-1;;;;;1892:32:1;;;1874:51;;1862:2;1847:18;8604:88:0;1728:203:1;4862:84:0;;;;;;;;;;-1:-1:-1;2953:1:0;4862:84;;;2108:4:1;2096:17;;;2078:36;;2066:2;2051:18;4862:84:0;1936:184:1;10300:428:0;;;;;;;;;;-1:-1:-1;10300:428:0;;;;;:::i;:::-;;:::i;:::-;;5227:105;;;;;;;;;;-1:-1:-1;5227:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5311:18:0;5293:7;5311:18;;;:9;:18;;;;;;;5227:105;1782:130;;;;;;;;;;;;;:::i;9635:234::-;;;;;;;;;;-1:-1:-1;9635:234:0;;;;;:::i;:::-;;:::i;12843:256::-;;;;;;;;;;-1:-1:-1;12843:256:0;;;;;:::i;:::-;;:::i;1551:65::-;;;;;;;;;;-1:-1:-1;1589:7:0;1607:6;-1:-1:-1;;;;;1607:6:0;1551:65;;5137:84;;;;;;;;;;-1:-1:-1;5211:7:0;;;;;;;;;;;;-1:-1:-1;;;5211:7:0;;;;5137:84;;11103:86;;;;;;;;;;-1:-1:-1;11173:10:0;;11103:86;;6007:221;;;;;;;;;;-1:-1:-1;6007:221:0;;;;;:::i;:::-;;:::i;9430:96::-;;;;;;;;;;-1:-1:-1;9508:12:0;;9430:96;;7675:140;;;;;;;;;;-1:-1:-1;7675:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;7775:14:0;7732:9;7775:14;;;:6;:14;;;;;;;;;7791:9;:17;;;;;;;7775:14;;;;;7791:17;;;7675:140;;;;;3960:14:1;;3953:22;3935:41;;4019:14;;4012:22;4007:2;3992:18;;3985:50;3908:18;7675:140:0;3773:268:1;11013:84:0;;;;;;;;;;-1:-1:-1;11083:8:0;;11013:84;;10736:269;;;;;;;;;;-1:-1:-1;10736:269:0;;;;;:::i;:::-;;:::i;9532:95::-;;;;;;;;;;-1:-1:-1;9615:6:0;;9532:95;;8318:128;;;;;;;;;;;;;:::i;5338:132::-;;;;;;;;;;-1:-1:-1;5338:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;5440:18:0;;;5422:7;5440:18;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;5338:132;8527:69;;;;;;;;;;-1:-1:-1;8585:8:0;;;;8527:69;;8454:67;;;;;;;;;;-1:-1:-1;8511:7:0;;;;;;;8454:67;;12507:328;;;;;;;;;;-1:-1:-1;12507:328:0;;;;;:::i;:::-;;:::i;14034:481::-;;;:::i;1622:154::-;;;;;;;;;;-1:-1:-1;1622:154:0;;;;;:::i;:::-;;:::i;5478:213::-;5581:10;5553:4;5570:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;5570:31:0;;;;;;;;;;:40;;;5626:37;5553:4;;5570:31;;5626:37;;;;5604:6;1231:25:1;;1219:2;1204:18;;1085:177;5626:37:0;;;;;;;;-1:-1:-1;5681:4:0;5478:213;;;;;:::o;4952:88::-;5007:7;3012:17;2953:1;3012:2;:17;:::i;:::-;3001:29;;:7;:29;:::i;:::-;5018:19;;4952:88;:::o;5699:300::-;5802:4;5827:29;5845:10;5827:17;:29::i;:::-;5819:58;;;;-1:-1:-1;;;5819:58:0;;7230:2:1;5819:58:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;5819:58:0;;;;;;;;;-1:-1:-1;;;;;5888:22:0;;;;;;:10;:22;;;;;;;;5911:10;5888:34;;;;;;;:44;;5926:6;;5888:22;:44;;5926:6;;5888:44;:::i;:::-;;;;-1:-1:-1;5950:43:0;;-1:-1:-1;5964:10:0;5976:8;5986:6;5950:13;:43::i;:::-;5943:50;5699:300;-1:-1:-1;;;;5699:300:0:o;10300:428::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;10399:16:::1;10452:4;10418:31;::::0;::::1;3012:17;2953:1;3012:2;:17;:::i;:::-;3001:29;::::0;:7:::1;:29;:::i;:::-;10418:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;10459:1:::1;10418:42;:::i;:::-;10399:61;;10491:6;;10479:8;:18;;10471:41;;;::::0;-1:-1:-1;;;10471:41:0;;8413:2:1;10471: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;;10471:41:0::1;8211:334:1::0;10471:41:0::1;10532:8;10523:6;:17;;;;10551:20;10608:4;10589:16;10574:31;;2953:1;3012:2;:17;;;;:::i;:::-;3001:29;::::0;:7:::1;:29;:::i;:::-;10574:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;10615:1:::1;10574:42;:::i;:::-;10551:65;;10651:12;;10635;:28;;10627:55;;;::::0;-1:-1:-1;;;10627:55:0;;8752:2:1;10627:55:0::1;::::0;::::1;8734:21:1::0;8791:2;8771:18;;;8764:30;-1:-1:-1;;;8810:18:1;;;8803:44;8864:18;;10627:55:0::1;8550:338:1::0;10627:55:0::1;10693:12;:27:::0;-1:-1:-1;;;10300:428:0:o;1782:130::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;1859:1:::1;1842:19:::0;;-1:-1:-1;;;;;;1842:19:0::1;::::0;;1877:32:::1;::::0;1874:51:1;;;1877:32:0::1;::::0;1862:2:1;1847:18;1877:32:0::1;;;;;;;1782:130::o:0;9635:234::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;9766:2:::1;9732:30;9748:14:::0;9732:13;:30:::1;:::i;:::-;:36;;;;9724:67;;;::::0;-1:-1:-1;;;9724:67:0;;9248:2:1;9724:67:0::1;::::0;::::1;9230:21:1::0;9287:2;9267:18;;;9260:30;-1:-1:-1;;;9306:18:1;;;9299:48;9364:18;;9724:67:0::1;9046:342:1::0;9724:67:0::1;9802:7;:23:::0;;-1:-1:-1;;9836:25:0;9802:23:::1;;::::0;;::::1;;-1:-1:-1::0;;9836:25:0;;;;;::::1;;::::0;;9635:234::o;12843:256::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;12944:10:::1;:22;;;;12958:8;12944:22;12940:77;;;-1:-1:-1::0;;;;;12979:14:0;::::1;;::::0;;;:9:::1;:14;::::0;;;;;::::1;;12978:15;12970:44;;;::::0;-1:-1:-1;;;12970:44:0;;9595:2:1;12970:44:0::1;::::0;::::1;9577:21:1::0;9634:2;9614:18;;;9607:30;-1:-1:-1;;;9653:18:1;;;9646:46;9709:18;;12970:44:0::1;9393:340:1::0;12970:44:0::1;-1:-1:-1::0;;;;;13027:13:0;;::::1;;::::0;;;:6:::1;:13;::::0;;;;;;;:24;;;::::1;;-1:-1:-1::0;;13027:24:0;;::::1;;::::0;;13062:9:::1;:16:::0;;;;;:29;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;12843:256::o;6007:221::-;6086:4;6111:29;6129:10;6111:17;:29::i;:::-;6103:58;;;;-1:-1:-1;;;6103:58:0;;7230:2:1;6103:58:0;;;7212:21:1;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:46;7344:18;;6103:58:0;7028:340:1;6103:58:0;6179:43;6193:10;6205:8;6215:6;6179:13;:43::i;:::-;6172:50;6007:221;-1:-1:-1;;;6007:221:0:o;10736:269::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10822:23:0;::::1;;::::0;;;:9:::1;:23;::::0;;;;;::::1;;10821:24;10813:60;;;::::0;-1:-1:-1;;;10813:60:0;;9940:2:1;10813:60:0::1;::::0;::::1;9922:21:1::0;9979:2;9959:18;;;9952:30;10018:25;9998:18;;;9991:53;10061:18;;10813:60:0::1;9738:347:1::0;10813:60:0::1;10884:10;:34:::0;;-1:-1:-1;;;;;;10884:34:0::1;::::0;-1:-1:-1;;;;;10884:34:0;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;10929:20:0;;;:6:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;10929:27:0;;::::1;-1:-1:-1::0;10929:27:0;;::::1;::::0;;;10967:9:::1;:23:::0;;;;;:30;;;;::::1;::::0;;::::1;::::0;;10736:269::o;8318:128::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;8380:14:::1;::::0;::::1;;8379:15;8371:40;;;::::0;-1:-1:-1;;;8371:40:0;;10292:2:1;8371: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;;8371:40:0::1;10090:336:1::0;8371:40:0::1;8422:16;:14;:16::i;:::-;8318:128::o:0;12507:328::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;12645:30:::1;::::0;;::::1;::::0;:21;::::1;3012:17;2953:1;3012:2;:17;:::i;:::-;3001:29;::::0;:7:::1;:29;:::i;:::-;12645:21;;;;:::i;:::-;:30;;;;:::i;:::-;12634:8;:41:::0;12699:30:::1;::::0;;::::1;::::0;:21;::::1;3012:17;2953:1;3012:2;:17;:::i;:::-;3001:29;::::0;:7:::1;:29;:::i;:::-;12699:21;;;;:::i;:::-;:30;;;;:::i;:::-;12686:10;:43:::0;12754:16:::1;;::::0;::::1;12764:6;12754:16;:::i;:::-;12740:30;;:11;:30:::0;12801:8:::1;::::0;12789:10:::1;::::0;:20:::1;;12781:46;;;::::0;-1:-1:-1;;;12781:46:0;;10893:2:1;12781:46:0::1;::::0;::::1;10875:21:1::0;10932:2;10912:18;;;10905:30;-1:-1:-1;;;10951:18:1;;;10944:43;11004:18;;12781:46:0::1;10691:337:1::0;12781:46:0::1;12507:328:::0;;;;;:::o;14034:481::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;4279:8:::1;:15:::0;;-1:-1:-1;;4279:15:0::1;;;::::0;;14115:2:::2;::::0;-1:-1:-1;;;;;14115:2:0::2;:16:::0;14107:39:::2;;;::::0;-1:-1:-1;;;14107:39:0;;11235:2:1;14107: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;;14107:39:0::2;11033:334:1::0;14107:39:0::2;14166:14;::::0;::::2;;14165:15;14157:40;;;::::0;-1:-1:-1;;;14157:40:0;;10292:2:1;14157: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;;14157:40:0::2;10090:336:1::0;14157:40:0::2;14228:1;14216:9;:13;:40;;;;14255:1;14233:21;:23;14216:40;14208:59;;;::::0;-1:-1:-1;;;14208:59:0;;11574:2:1;14208: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;;14208:59:0::2;11372:329:1::0;14208:59:0::2;14304:4;14311:1;14286:24:::0;;;:9:::2;:24;::::0;;;;;14278:48:::2;;;::::0;-1:-1:-1;;;14278:48:0;;11908:2:1;14278: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;;14278:48:0::2;11706:332:1::0;14278:48:0::2;14360:14;;;;;;;;;-1:-1:-1::0;;;;;14360:14:0::2;-1:-1:-1::0;;;;;14360:22:0::2;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14342:54:0::2;;14405:4;14412:14;;;;;;;;;-1:-1:-1::0;;;;;14412:14:0::2;-1:-1:-1::0;;;;;14412:19:0::2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14342:92;::::0;-1:-1:-1;;;;;;14342:92:0::2;::::0;;;;;;-1:-1:-1;;;;;12529:15:1;;;14342:92:0::2;::::0;::::2;12511:34:1::0;12581:15;;12561:18;;;12554:43;12446:18;;14342:92:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14337:2;:97:::0;;-1:-1:-1;;;;;;14337:97:0::2;-1:-1:-1::0;;;;;14337:97:0;;;::::2;::::0;;;::::2;::::0;;14477:4:::2;-1:-1:-1::0;14459:24:0;;;-1:-1:-1;14459:24:0::2;::::0;;;;;14445:62:::2;::::0;14485:21:::2;14445:13;:62::i;:::-;4319:8:::1;:16:::0;;-1:-1:-1;;4319:16:0::1;::::0;;14034:481::o;1622:154::-;1406:6;;-1:-1:-1;;;;;1406:6:0;1392:10;:20;1384:57;;;;-1:-1:-1;;;1384:57:0;;;;;;;:::i;:::-;1707:6:::1;:18:::0;;-1:-1:-1;;;;;;1707:18:0::1;-1:-1:-1::0;;;;;1707:18:0;::::1;::::0;;::::1;::::0;;;1742:31:::1;::::0;1874:51:1;;;1742:31:0::1;::::0;1862:2:1;1847:18;1742:31:0::1;;;;;;;1622:154:::0;:::o;11197:292::-;11322:14;;11266:4;;;;11322:14;;11317:133;;;-1:-1:-1;11355:4:0;11317:133;;;-1:-1:-1;;;;;11382:18:0;;;;;;:6;:18;;;;;;;;:43;;;;-1:-1:-1;;;;;;11404:21:0;;;;;;:9;:21;;;;;;;;11382:43;11378:72;;;-1:-1:-1;11443:4:0;11470:11;11197:292;-1:-1:-1;;11197:292:0:o;6337:1330::-;6428:4;-1:-1:-1;;;;;6453:20:0;;6445:59;;;;-1:-1:-1;;;6445:59:0;;13026:2:1;6445:59:0;;;13008:21:1;13065:2;13045:18;;;13038:30;13104:28;13084:18;;;13077:56;13150:18;;6445:59:0;12824:350:1;6445:59:0;6520:14;;;;6515:94;;-1:-1:-1;;;;;6546:14:0;;;;;;:6;:14;;;;;;;;:35;;;;-1:-1:-1;;;;;;6564:17:0;;;;;;:9;:17;;;;;;;;6546:35;6538:68;;;;-1:-1:-1;;;6538:68:0;;13381:2:1;6538:68:0;;;13363:21:1;13420:2;13400:18;;;13393:30;-1:-1:-1;;;13439:18:1;;;13432:50;13499:18;;6538:68:0;13179:344:1;6538:68:0;6625:8;;;;;;;6624:9;:32;;;;-1:-1:-1;;;;;;6637:19:0;;;;;;:9;:19;;;;;;;;6624:32;:54;;;;;6660:18;6671:6;6660:10;:18::i;:::-;6619:76;;;6683:9;:7;:9::i;:::-;6728:11;;6712:12;:27;6707:447;;6776:8;;6761:12;:23;:44;;;;-1:-1:-1;;;;;;6788:17:0;;;;;;:9;:17;;;;;;;;6761:44;6757:130;;;-1:-1:-1;;;;;6835:21:0;;6847:9;6835:21;6827:43;;;;-1:-1:-1;;;6827:43:0;;13730:2:1;6827:43:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;6827:43:0;13528:332:1;6827:43:0;6920:8;;:14;;6931:3;6920:14;:::i;:::-;6905:12;:29;:52;;;;-1:-1:-1;;;;;;6938:19:0;;;;;;:9;:19;;;;;;;;6905:52;:79;;;;-1:-1:-1;;;;;;6961:23:0;;6979:4;6961:23;;6905:79;6901:242;;;7018:12;7006:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7006:35:0;;;;;;;;;:40;;7045:1;;7006:25;:40;;7045:1;;7006:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;7085:12;-1:-1:-1;7073:25:0;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7073:35:0;;;;;;;;;;7112:1;7073:35;;:40;;;-1:-1:-1;7065:62:0;;;;-1:-1:-1;;;7065:62:0;;13730:2:1;7065:62:0;;;13712:21:1;13769:1;13749:18;;;13742:29;-1:-1:-1;;;13787:18:1;;;13780:39;13836:18;;7065:62:0;13528:332:1;7065:62:0;-1:-1:-1;;;;;7171:23:0;;7189:4;7171:23;;;;:52;;-1:-1:-1;;;;;;7198:25:0;;7218:4;7198:25;;7171:52;:72;;;;-1:-1:-1;7237:6:0;;-1:-1:-1;;;;;7227:16:0;;;7237:6;;7227:16;;7171:72;7166:171;;;7270:35;7280:6;7288:8;7298:6;7270:9;:35::i;:::-;7262:62;;;;-1:-1:-1;;;7262:62:0;;14067:2:1;7262:62:0;;;14049:21:1;14106:2;14086:18;;;14079:30;-1:-1:-1;;;14125:18:1;;;14118:44;14179:18;;7262:62:0;13865:338:1;7262:62:0;7349:18;7370:38;7383:6;7391:8;7401:6;7370:12;:38::i;:::-;7349:59;-1:-1:-1;7419:23:0;7445:19;7349:59;7445:6;:19;:::i;:::-;-1:-1:-1;;;;;7475:17:0;;;;;;:9;:17;;;;;:27;;7419:45;;-1:-1:-1;7496:6:0;;7475:17;;;:27;;7496:6;;7475:27;:::i;:::-;;;;;;;;7528:10;7513:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7549:19:0;;;;;;:9;:19;;;;;:38;;7572:15;;7549:19;:38;;7572:15;;7549:38;:::i;:::-;;;;;;;;7620:8;-1:-1:-1;;;;;7603:34:0;7612:6;-1:-1:-1;;;;;7603:34:0;;7630:6;7603:34;;;;1231:25:1;;1219:2;1204:18;;1085:177;7603:34:0;;;;;;;;-1:-1:-1;7655:4:0;;6337:1330;-1:-1:-1;;;;;6337:1330:0:o;9877:415::-;9952:4;3012:17;2953:1;3012:2;:17;:::i;:::-;3001:29;;:7;:29;:::i;:::-;9932:17;;:2;:17;:::i;:::-;:24;;;;:::i;:::-;9923:6;:33;;;10002:4;;3012:17;;2953:1;;3012:17;:::i;:::-;3001:29;;:7;:29;:::i;:::-;9982:17;;:2;:17;:::i;:::-;:24;;;;:::i;:::-;9967:12;:39;10034:11;;10027:2;;-1:-1:-1;;;;;10027:2:0;10017:13;;;;:9;:13;;;;;:28;;:13;;;:28;;10034:11;;10017:28;:::i;:::-;;;;-1:-1:-1;;10075:2:0;;;10083:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10083:33:0;-1:-1:-1;;;;;;10083:33:0;;;10075:43;-1:-1:-1;;;;;10075:2:0;;;;:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10067:2:0;;;-1:-1:-1;;;;;10067:2:0;;;10057:13;;;;:9;:13;;;;;;10056:62;;-1:-1:-1;;10056:62:0;;;;;;;;;;;10147:2;;;10137:13;;;;10056:62;10137:13;10129:42;;;;-1:-1:-1;;;10129:42:0;;14716:2:1;10129:42:0;;;14698:21:1;14755:2;14735:18;;;14728:30;-1:-1:-1;;;14774:18:1;;;14767:46;14830:18;;10129:42:0;14514:340:1;10129:42:0;10196:12;10182:11;:26;;;10230:8;;:22;;10196:12;10230:22;:::i;:::-;10219:8;:33;10263:14;:21;;-1:-1:-1;;10263:21:0;10280:4;10263:21;;;9877:415::o;11939:251::-;12027:29;12043:12;12027:15;:29::i;:::-;12067:14;;;12157:6;;12067:115;;-1:-1:-1;;;12067:115:0;;12130:4;12067:115;;;15200:34:1;15250:18;;;15243:34;;;15293:18;;;15286:34;;;15336:18;;;15329:34;;;;-1:-1:-1;;;;;12157:6:0;;;15379:19:1;;;15372:44;12165:15:0;15432:19:1;;;15425:35;12067:14:0;;;;:30;;12105:13;;15134:19:1;;12067:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11497:434::-;11557:4;11574:11;11614:1;11600:11;;:15;11596:304;;;11659:2;;;-1:-1:-1;;;;;11659:2:0;;;11633:13;11649;;;:9;:13;;;;;;;;;11701:14;;:21;;-1:-1:-1;;;11701:21:0;;;;11649:13;;11633;;11701:14;;:19;;:21;;;;11649:13;;11701:21;;;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11734:2;;;11694:43;;-1:-1:-1;;;11694:43:0;;-1:-1:-1;;;;;11734:2:0;;;11694:43;;;1874:51:1;;;;11694:39:0;;;;;;;1847:18:1;;11694:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11677:60;-1:-1:-1;11753:16:0;11794:5;11773:17;11677:60;11773:8;:17;:::i;:::-;11772:27;;;;:::i;:::-;11753:46;;11830:11;;11818:8;:23;11814:47;;11854:4;11845:13;;11814:47;11617:259;;;11596:304;;;-1:-1:-1;11893:4:0;11917:6;11497:434;-1:-1:-1;;11497:434:0:o;8700:722::-;4279:8;:15;;-1:-1:-1;;4279:15:0;;;;;8778:11:::1;::::0;8827:8:::1;::::0;8805:30;::::1;::::0;::::1;::::0;:48:::1;;-1:-1:-1::0;8839:14:0::1;::::0;::::1;;8805:48;8800:615;;;8898:10;;8876:18;:32;8871:76;;-1:-1:-1::0;8934:10:0::1;::::0;8871:76:::1;9000:18:::0;9059:17:::1;2953:1;9059:2;:17;:::i;:::-;9055:21;::::0;:1:::1;:21;:::i;:::-;9038:14;:38;9034:223;;;9116:4;9098:24;::::0;;;:9:::1;:24;::::0;;;;:46;;9126:18;;9098:24;:46:::1;::::0;9126:18;;9098:46:::1;:::i;:::-;::::0;;;-1:-1:-1;9163:26:0::1;::::0;-1:-1:-1;9174:14:0;9163:10:::1;:26::i;:::-;9223:18;9208:11;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9034:223:0::1;9301:21;9340:23:::0;;9337:67:::1;;9367:34;9381:19;9367:13;:34::i;:::-;8856:559;;8800:615;-1:-1:-1::0;4319:8:0;:16;;-1:-1:-1;;4319:16:0;;;8700:722::o;13466:560::-;13631:14;;13570:4;;13611;;13631:14;;:40;;;;-1:-1:-1;;;;;;13650:21:0;;;;;;:9;:21;;;;;;;;13649:22;13631:40;:64;;;;-1:-1:-1;;;;;;13676:19:0;;;;;;:9;:19;;;;;;;;13675:20;13631:64;13626:359;;;13735:6;;13718:14;:23;13713:261;;;-1:-1:-1;13783:5:0;13713:261;;;-1:-1:-1;;;;;13848:19:0;;;;;;:9;:19;;;;;;;;13847:20;:77;;;;-1:-1:-1;13911:12:0;;-1:-1:-1;;;;;13872:19:0;;;;;;:9;:19;;;;;;:36;;13894:14;;13872:36;:::i;:::-;:51;13847:77;13824:150;;;-1:-1:-1;13966:5:0;14002:16;13466:560;-1:-1:-1;;;;13466:560:0:o;7823:487::-;7977:14;;7923:7;;;;7977:14;;7976:15;;:37;;-1:-1:-1;;;;;;7995:18:0;;;;;;:6;:18;;;;;;;;7976:37;:58;;;-1:-1:-1;;;;;;8017:17:0;;;;;;:6;:17;;;;;;;;7976:58;7971:305;;;-1:-1:-1;8065:1:0;7971:305;;;-1:-1:-1;;;;;8090:21:0;;;;;;:9;:21;;;;;;;;8085:191;;;8151:7;;8161:3;;8142:16;;8151:7;;;;;8142:6;:16;:::i;:::-;:22;;;;:::i;:::-;8130:34;;8085:191;;;-1:-1:-1;;;;;8189:20:0;;;;;;:9;:20;;;;;;;;8184:92;;;8249:8;;8260:3;;8240:17;;8249:8;;8240:6;:17;:::i;:::-;:23;;;;:::i;:::-;8228:35;7823:487;-1:-1:-1;;;;;7823:487:0:o;12198:301::-;12289:4;12270:25;;;;:10;:25;;;;;;;;3216:42;12270:40;;;;;;;;:55;-1:-1:-1;12265:227:0;;;12362:4;12343:25;;;;:10;:25;;;;;;;;3216:42;12343:40;;;;;;;;;;-1:-1:-1;;12343:60:0;;;;12423:57;;1231:25:1;;;3216:42:0;;12362:4;12423:57;;1204:18:1;12423:57:0;;;;;;;12265:227;12198:301;:::o;13107:351::-;13167:28;13183:11;13167:15;:28::i;:::-;13230:16;;;13244:1;13230:16;;;;;;;;13206:21;;13230:16;;;;;;;;;;-1:-1:-1;13230:16:0;13206:40;;13276:4;13257;13262:1;13257:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13257:25:0;;;:7;;;;;;;;;;:25;;;;13303:14;;:21;;;-1:-1:-1;;;13303:21:0;;;;:14;;;;;:19;;:21;;;;;13257:7;;13303:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13293:4;13298:1;13293:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13293:31:0;;;:7;;;;;;;;;:31;13335:14;;:115;;-1:-1:-1;;;13335:115:0;;:14;;;:65;;:115;;13401:11;;13335:14;;13415:4;;13428;;13434:15;;13335:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13156:302;13107:351;:::o;6236:93::-;6294:10;;:27;;:10;;;;-1:-1:-1;;;;;6294:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;6236: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;2125:159::-;2192:20;;2252:6;2241:18;;2231:29;;2221:57;;2274:1;2271;2264:12;2221:57;2125:159;;;:::o;2289:256::-;2355:6;2363;2416:2;2404:9;2395:7;2391:23;2387:32;2384:52;;;2432:1;2429;2422:12;2384:52;2455:28;2473:9;2455:28;:::i;:::-;2445:38;;2502:37;2535:2;2524:9;2520:18;2502:37;:::i;:::-;2492:47;;2289:256;;;;;:::o;2550:247::-;2609:6;2662:2;2650:9;2641:7;2637:23;2633:32;2630:52;;;2678:1;2675;2668:12;2630:52;2717:9;2704:23;2736:31;2761:5;2736:31;:::i;2802:156::-;2868:20;;2928:4;2917:16;;2907:27;;2897:55;;2948:1;2945;2938:12;2963:252;3027:6;3035;3088:2;3076:9;3067:7;3063:23;3059:32;3056:52;;;3104:1;3101;3094:12;3056:52;3127:27;3144:9;3127:27;:::i;:::-;3117:37;;3173:36;3205:2;3194:9;3190:18;3173:36;:::i;3220:160::-;3285:20;;3341:13;;3334:21;3324:32;;3314:60;;3370:1;3367;3360:12;3385:383;3456:6;3464;3472;3525:2;3513:9;3504:7;3500:23;3496:32;3493:52;;;3541:1;3538;3531:12;3493:52;3580:9;3567:23;3599:31;3624:5;3599:31;:::i;:::-;3649:5;-1:-1:-1;3673:35:1;3704:2;3689:18;;3673:35;:::i;:::-;3663:45;;3727:35;3758:2;3747:9;3743:18;3727:35;:::i;:::-;3717:45;;3385:383;;;;;:::o;4046:388::-;4114:6;4122;4175:2;4163:9;4154:7;4150:23;4146:32;4143:52;;;4191:1;4188;4181:12;4143:52;4230:9;4217:23;4249:31;4274:5;4249:31;:::i;:::-;4299:5;-1:-1:-1;4356:2:1;4341:18;;4328:32;4369:33;4328:32;4369:33;:::i;:::-;4421:7;4411:17;;;4046:388;;;;;:::o;4439:163::-;4506:20;;4566:10;4555:22;;4545:33;;4535:61;;4592:1;4589;4582:12;4607:474;4697:6;4705;4713;4721;4729;4782:3;4770:9;4761:7;4757:23;4753:33;4750:53;;;4799:1;4796;4789:12;4750:53;4822:28;4840:9;4822:28;:::i;:::-;4812:38;;4869:37;4902:2;4891:9;4887:18;4869:37;:::i;:::-;4859:47;;4925:37;4958:2;4947:9;4943:18;4925:37;:::i;:::-;4915:47;;4981:37;5014:2;5003:9;4999:18;4981:37;:::i;:::-;4971:47;;5037:38;5070:3;5059:9;5055:19;5037:38;:::i;:::-;5027:48;;4607:474;;;;;;;;:::o;5346:127::-;5407:10;5402:3;5398:20;5395:1;5388:31;5438:4;5435:1;5428:15;5462:4;5459:1;5452:15;5478:416;5567:1;5604:5;5567:1;5618:270;5639:7;5629:8;5626:21;5618:270;;;5698:4;5694:1;5690:6;5686:17;5680:4;5677:27;5674:53;;;5707:18;;:::i;:::-;5757:7;5747:8;5743:22;5740:55;;;5777:16;;;;5740:55;5856:22;;;;5816:15;;;;5618:270;;;5622:3;5478:416;;;;;:::o;5899:806::-;5948:5;5978:8;5968:80;;-1:-1:-1;6019:1:1;6033:5;;5968:80;6067:4;6057:76;;-1:-1:-1;6104:1:1;6118:5;;6057:76;6149:4;6167:1;6162:59;;;;6235:1;6230:130;;;;6142:218;;6162:59;6192:1;6183:10;;6206:5;;;6230:130;6267:3;6257:8;6254:17;6251:43;;;6274:18;;:::i;:::-;-1:-1:-1;;6330:1:1;6316:16;;6345:5;;6142:218;;6444:2;6434:8;6431:16;6425:3;6419:4;6416:13;6412:36;6406:2;6396:8;6393:16;6388:2;6382:4;6379:12;6375:35;6372:77;6369:159;;;-1:-1:-1;6481:19:1;;;6513:5;;6369:159;6560:34;6585:8;6579:4;6560:34;:::i;:::-;6630:6;6626:1;6622:6;6618:19;6609:7;6606:32;6603:58;;;6641:18;;:::i;:::-;6679:20;;5899:806;-1:-1:-1;;;5899:806:1:o;6710:140::-;6768:5;6797:47;6838:4;6828:8;6824:19;6818:4;6797:47;:::i;6855:168::-;6928:9;;;6959;;6976:15;;;6970:22;;6956:37;6946:71;;6997:18;;:::i;7373:128::-;7440:9;;;7461:11;;;7458:37;;;7475:18;;:::i;7506:348::-;7708:2;7690:21;;;7747:2;7727:18;;;7720:30;7786:26;7781:2;7766:18;;7759:54;7845:2;7830:18;;7506:348::o;7859:217::-;7899:1;7925;7915:132;;7969:10;7964:3;7960:20;7957:1;7950:31;8004:4;8001:1;7994:15;8032:4;8029:1;8022:15;7915:132;-1:-1:-1;8061:9:1;;7859:217::o;8081:125::-;8146:9;;;8167:10;;;8164:36;;;8180:18;;:::i;8893:148::-;8981:4;8960:12;;;8974;;;8956:31;;8999:13;;8996:39;;;9015: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://8056d6eee26769cc317b0197819eacff42eb18e0afe0d32fd992921b92018ee9

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.