ETH Price: $2,309.73 (-0.04%)

Contract

0x2D15675f0cc6Bd97a65e031f02A31FeaAE86abeF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve147157292022-05-05 6:37:49866 days ago1651732669IN
0x2D15675f...aAE86abeF
0 ETH0.0015573732.96800064
Approve147102532022-05-04 9:59:49866 days ago1651658389IN
0x2D15675f...aAE86abeF
0 ETH0.0018982640.18430627
Approve147101222022-05-04 9:29:44866 days ago1651656584IN
0x2D15675f...aAE86abeF
0 ETH0.0016234434.3667305
Approve147034232022-05-03 7:49:25868 days ago1651564165IN
0x2D15675f...aAE86abeF
0 ETH0.0023775650.33046261
Approve147029042022-05-03 5:55:15868 days ago1651557315IN
0x2D15675f...aAE86abeF
0 ETH0.00307465.07344972
Approve147022752022-05-03 3:29:57868 days ago1651548597IN
0x2D15675f...aAE86abeF
0 ETH0.00866912183.5163309
Approve147021482022-05-03 2:58:52868 days ago1651546732IN
0x2D15675f...aAE86abeF
0 ETH0.0036949678.21844771
Approve147013402022-05-02 23:53:02868 days ago1651535582IN
0x2D15675f...aAE86abeF
0 ETH0.003201167.76403599
Approve147013402022-05-02 23:53:02868 days ago1651535582IN
0x2D15675f...aAE86abeF
0 ETH0.0032247268.26403599
Approve147011572022-05-02 23:18:09868 days ago1651533489IN
0x2D15675f...aAE86abeF
0 ETH0.0020458881.98285364
Approve147010882022-05-02 23:04:23868 days ago1651532663IN
0x2D15675f...aAE86abeF
0 ETH0.0030102963.72477205
Approve147010782022-05-02 23:02:24868 days ago1651532544IN
0x2D15675f...aAE86abeF
0 ETH0.0037360879.0889672
Approve147010342022-05-02 22:52:51868 days ago1651531971IN
0x2D15675f...aAE86abeF
0 ETH0.002331986.51104929
Approve147010182022-05-02 22:48:41868 days ago1651531721IN
0x2D15675f...aAE86abeF
0 ETH0.002019880.9378806
Approve147009112022-05-02 22:24:30868 days ago1651530270IN
0x2D15675f...aAE86abeF
0 ETH0.0036690277.6694879
Approve147007742022-05-02 21:55:25868 days ago1651528525IN
0x2D15675f...aAE86abeF
0 ETH0.0047019499.53525148
Approve147004702022-05-02 20:42:36868 days ago1651524156IN
0x2D15675f...aAE86abeF
0 ETH0.0039771484.19207366
Approve147004012022-05-02 20:27:14868 days ago1651523234IN
0x2D15675f...aAE86abeF
0 ETH0.0050751107.43460514
Approve147002602022-05-02 19:57:55868 days ago1651521475IN
0x2D15675f...aAE86abeF
0 ETH0.00485727102.82349269
Approve147002502022-05-02 19:55:15868 days ago1651521315IN
0x2D15675f...aAE86abeF
0 ETH0.00512658108.52435833
Approve147002342022-05-02 19:51:07868 days ago1651521067IN
0x2D15675f...aAE86abeF
0 ETH0.0045436696.18451923
Approve147002232022-05-02 19:48:22868 days ago1651520902IN
0x2D15675f...aAE86abeF
0 ETH0.0042720790.43543009
Transfer147002062022-05-02 19:44:46868 days ago1651520686IN
0x2D15675f...aAE86abeF
0 ETH0.0225858393.88857889
Approve147002052022-05-02 19:43:50868 days ago1651520630IN
0x2D15675f...aAE86abeF
0 ETH0.0039555583.73489455
Approve147002032022-05-02 19:43:44868 days ago1651520624IN
0x2D15675f...aAE86abeF
0 ETH0.0042088889.09771022
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
147362062022-05-08 12:55:00862 days ago1652014500
0x2D15675f...aAE86abeF
0.00177638 ETH
147362062022-05-08 12:55:00862 days ago1652014500
0x2D15675f...aAE86abeF
0.00177638 ETH
147156002022-05-05 6:09:14866 days ago1651730954
0x2D15675f...aAE86abeF
0.00177378 ETH
147156002022-05-05 6:09:14866 days ago1651730954
0x2D15675f...aAE86abeF
0.00177378 ETH
147155962022-05-05 6:07:47866 days ago1651730867
0x2D15675f...aAE86abeF
0.00082874 ETH
147155962022-05-05 6:07:47866 days ago1651730867
0x2D15675f...aAE86abeF
0.00082874 ETH
147155562022-05-05 5:59:05866 days ago1651730345
0x2D15675f...aAE86abeF
0.00174995 ETH
147155562022-05-05 5:59:05866 days ago1651730345
0x2D15675f...aAE86abeF
0.00174995 ETH
147077452022-05-04 0:08:02867 days ago1651622882
0x2D15675f...aAE86abeF
0.00150235 ETH
147077452022-05-04 0:08:02867 days ago1651622882
0x2D15675f...aAE86abeF
0.00150235 ETH
147042842022-05-03 11:07:33867 days ago1651576053
0x2D15675f...aAE86abeF
0.00235311 ETH
147042842022-05-03 11:07:33867 days ago1651576053
0x2D15675f...aAE86abeF
0.00235311 ETH
147035752022-05-03 8:24:59867 days ago1651566299
0x2D15675f...aAE86abeF
0.00235524 ETH
147035752022-05-03 8:24:59867 days ago1651566299
0x2D15675f...aAE86abeF
0.00235524 ETH
147035732022-05-03 8:23:28867 days ago1651566208
0x2D15675f...aAE86abeF
0.0017421 ETH
147035732022-05-03 8:23:28867 days ago1651566208
0x2D15675f...aAE86abeF
0.0017421 ETH
147034272022-05-03 7:50:16868 days ago1651564216
0x2D15675f...aAE86abeF
0.00282376 ETH
147034272022-05-03 7:50:16868 days ago1651564216
0x2D15675f...aAE86abeF
0.00282376 ETH
147029572022-05-03 6:05:16868 days ago1651557916
0x2D15675f...aAE86abeF
0.00171436 ETH
147029572022-05-03 6:05:16868 days ago1651557916
0x2D15675f...aAE86abeF
0.00171436 ETH
147027742022-05-03 5:25:05868 days ago1651555505
0x2D15675f...aAE86abeF
0.00277862 ETH
147027742022-05-03 5:25:05868 days ago1651555505
0x2D15675f...aAE86abeF
0.00277862 ETH
147021492022-05-03 2:59:05868 days ago1651546745
0x2D15675f...aAE86abeF
0.00279967 ETH
147021492022-05-03 2:59:05868 days ago1651546745
0x2D15675f...aAE86abeF
0.00279967 ETH
147021482022-05-03 2:58:52868 days ago1651546732
0x2D15675f...aAE86abeF
0.00342304 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ElonsNightmare

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-02
*/

// http://elonsnightmare.com
// https://t.me/elonsnightmare
// https://twitter.com/ElonsNightmare
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, 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 Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract ElonsNightmare is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "ElonsNightmare";
    string private constant _symbol = "DARKBIRD";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    mapping(address => bool) private _isSniper;
    uint256 public launchTime;

    // Jeets out Fee
    uint256 private _redisFeeJeets = 0;
    uint256 private _taxFeeJeets = 6;

    // Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 6;
    
    // Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 6;
    
    // Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _burnFee = 0;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _previousburnFee = _burnFee;
    
    address payable private _marketingAddress = payable(0xa81e7f07143EFdE95868c4233765082B03da7FeF);
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public timeJeets = 2 hours;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private isMaxBuyActivated = true;
    
    uint256 public _maxTxAmount = 15e9 * 10**9; //1.5%
    uint256 public _maxWalletSize = 3e10 * 10**9; //3%
    uint256 public _swapTokensAtAmount = 1000 * 10**9;
    uint256 public _minimumBuyAmount = 15e9 * 10**9 ; // 1.5%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[deadAddress] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _previousburnFee = _burnFee;
        
        _redisFee = 0;
        _taxFee = 0;
        _burnFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
        _burnFee = _previousburnFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isSniper[to], 'Stop sniping!');
        require(!_isSniper[from], 'Stop sniping!');
        require(!_isSniper[_msgSender()], 'Stop sniping!');

        if (from != owner() && to != owner()) {
            
            // Trade start check
            if (!tradingOpen) {
                revert("Trading not yet enabled!");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                if (isMaxBuyActivated) {
                    if (block.timestamp <= launchTime + 20 minutes) {
                        require(amount <= _minimumBuyAmount, "Amount too much");
                    }
                }
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 burntAmount = 0;
                if (_burnFee > 0) {
                    burntAmount = contractTokenBalance.mul(_burnFee).div(10**2);
                    burnTokens(burntAmount);
                }
                swapTokensForEth(contractTokenBalance - burntAmount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        // Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            // Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                    // antibot
                    if (block.timestamp == launchTime) {
                        _isSniper[to] = true;
                    }
            }
    
            // Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) {
                    _redisFee = _redisFeeJeets;
                    _taxFee = _taxFeeJeets;
                } else {
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
                }
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function burnTokens(uint256 burntAmount) private {
        _transfer(address(this), deadAddress, burntAmount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchTime = block.timestamp;
    }

    function setMarketingWallet(address marketingAddress) external {
        require(_msgSender() == _marketingAddress);
        _marketingAddress = payable(marketingAddress);
        _isExcludedFromFee[_marketingAddress] = true;
    }

    function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner {
        isMaxBuyActivated = _isMaxBuyActivated;
    }

    function manualswap(uint256 amount) external {
        require(_msgSender() == _marketingAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function addSniper(address sniper) external onlyOwner {
        _isSniper[sniper] = true;
    }

    function removeSniper(address sniper) external onlyOwner {
        if (_isSniper[sniper]) {
            _isSniper[sniper] = false;
        }
    }

    function isSniper(address sniper) external view returns (bool){
        return _isSniper[sniper];
    }

    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        require(maxTxAmount >= 5e9 * 10**9, "Maximum transaction amount must be greater than 0.5%");
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        require(maxWalletSize >= _maxWalletSize);
        _maxWalletSize = maxWalletSize;
    }

    // USUAL TAXES CANNOT BE RAISED MORE THAN 15%
    function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner {
        require(amountBuy >= 0 && amountBuy <= 13);
        require(amountSell >= 0 && amountSell <= 13);
        _taxFeeOnBuy = amountBuy;
        _taxFeeOnSell = amountSell;
    }

    function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner {
        require(amountRefBuy >= 0 && amountRefBuy <= 1);
        require(amountRefSell >= 0 && amountRefSell <= 1);
        _redisFeeOnBuy = amountRefBuy;
        _redisFeeOnSell = amountRefSell;
    }

    function setBurnFee(uint256 amount) external onlyOwner {
        require(amount >= 0 && amount <= 1);
        _burnFee = amount;
    }

    // FAST SELL TAXES CANNOT BE RAISED MORE THAN 20% and 4 hours
    function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external onlyOwner {
        require(amountRedisJeets >= 0 && amountRedisJeets <= 1);
        require(amountTaxJeets >= 0 && amountTaxJeets <= 19);
        _redisFeeJeets = amountRedisJeets;
        _taxFeeJeets = amountTaxJeets;
    }

    function setTimeJeets(uint256 hoursTime) external onlyOwner {
        require(hoursTime >= 0 && hoursTime <= 4);
        timeJeets = hoursTime * 1 hours;
    }

}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000805565b6000196200002c91906200078c565b6007556000600b556006600c556000600d556006600e556000600f556006601055600f54601155601054601255600060135560115460145560125460155560135460165573a81e7f07143efde95868c4233765082b03da7fef601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c206018556000601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff02191690831515021790555067d02ab486cedc0000601b556801a055690d9db80000601c5564e8d4a51000601d5567d02ab486cedc0000601e553480156200015757600080fd5b5060006200016a620006a660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600260006200021f620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002fe57600080fd5b505afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003399190620006ee565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039c57600080fd5b505afa158015620003b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d79190620006ee565b6040518363ffffffff1660e01b8152600401620003f692919062000742565b602060405180830381600087803b1580156200041157600080fd5b505af115801562000426573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044c9190620006ee565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004a2620006ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062f620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200069791906200076f565b60405180910390a350620008ba565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006e881620008a0565b92915050565b6000602082840312156200070757620007066200089b565b5b60006200071784828501620006d7565b91505092915050565b6200072b81620007c7565b82525050565b6200073c81620007fb565b82525050565b600060408201905062000759600083018562000720565b62000768602083018462000720565b9392505050565b600060208201905062000786600083018462000731565b92915050565b60006200079982620007fb565b9150620007a683620007fb565b925082821015620007bc57620007bb6200083d565b5b828203905092915050565b6000620007d482620007db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200081282620007fb565b91506200081f83620007fb565b9250826200083257620008316200086c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008ab81620007c7565b8114620008b757600080fd5b50565b6146b580620008ca6000396000f3fe60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e146107a4578063e0f9f6a0146107e1578063ea1644d51461080a578063f2fde38b14610833578063fe72c3c11461085c57610225565b806395d89b41146106c15780639ec350ed146106ec5780639f13157114610715578063a9059cbb1461073e578063c55284901461077b57610225565b80637d1db4a5116100f25780637d1db4a5146105ee578063881dce60146106195780638da5cb5b146106425780638f70ccf71461066d5780638f9a55c01461069657610225565b806370a0823114610546578063715018a61461058357806374010ece1461059a578063790ca413146105c357610225565b806333251a0b116101a65780634bf2c7c9116101755780634bf2c7c9146104895780635d098b38146104b25780636b9cf534146104db5780636d8aa8f8146105065780636fc3eaec1461052f57610225565b806333251a0b146103e357806338eea22d1461040c5780633e3e95981461043557806349bd5a5e1461045e57610225565b806318160ddd116101ed57806318160ddd146102fa57806323b872dd1461032557806327c8f835146103625780632fd689e31461038d578063313ce567146103b857610225565b806306fdde031461022a578063095ea7b3146102555780630f3a325f146102925780631694505e146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610887565b60405161024c9190613bff565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613769565b6108c4565b6040516102899190613bc9565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061367c565b6108e2565b6040516102c69190613bc9565b60405180910390f35b3480156102db57600080fd5b506102e4610938565b6040516102f19190613be4565b60405180910390f35b34801561030657600080fd5b5061030f61095e565b60405161031c9190613e41565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190613716565b61096f565b6040516103599190613bc9565b60405180910390f35b34801561036e57600080fd5b50610377610a48565b6040516103849190613bae565b60405180910390f35b34801561039957600080fd5b506103a2610a4e565b6040516103af9190613e41565b60405180910390f35b3480156103c457600080fd5b506103cd610a54565b6040516103da9190613eb6565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061367c565b610a5d565b005b34801561041857600080fd5b50610433600480360381019061042e9190613803565b610ba0565b005b34801561044157600080fd5b5061045c6004803603810190610457919061367c565b610c7d565b005b34801561046a57600080fd5b50610473610d6d565b6040516104809190613bae565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906137d6565b610d93565b005b3480156104be57600080fd5b506104d960048036038101906104d4919061367c565b610e4d565b005b3480156104e757600080fd5b506104f0610f6c565b6040516104fd9190613e41565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906137a9565b610f72565b005b34801561053b57600080fd5b50610544611024565b005b34801561055257600080fd5b5061056d6004803603810190610568919061367c565b611096565b60405161057a9190613e41565b60405180910390f35b34801561058f57600080fd5b506105986110e7565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906137d6565b61123a565b005b3480156105cf57600080fd5b506105d8611324565b6040516105e59190613e41565b60405180910390f35b3480156105fa57600080fd5b5061060361132a565b6040516106109190613e41565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906137d6565b611330565b005b34801561064e57600080fd5b506106576113f4565b6040516106649190613bae565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f91906137a9565b61141d565b005b3480156106a257600080fd5b506106ab6114d6565b6040516106b89190613e41565b60405180910390f35b3480156106cd57600080fd5b506106d66114dc565b6040516106e39190613bff565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e9190613803565b611519565b005b34801561072157600080fd5b5061073c600480360381019061073791906137a9565b6115f6565b005b34801561074a57600080fd5b5061076560048036038101906107609190613769565b6116a8565b6040516107729190613bc9565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613803565b6116c6565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906136d6565b6117a3565b6040516107d89190613e41565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906137d6565b61182a565b005b34801561081657600080fd5b50610831600480360381019061082c91906137d6565b6118f1565b005b34801561083f57600080fd5b5061085a6004803603810190610855919061367c565b61199f565b005b34801561086857600080fd5b50610871611b61565b60405161087e9190613e41565b60405180910390f35b60606040518060400160405280600e81526020017f456c6f6e734e696768746d617265000000000000000000000000000000000000815250905090565b60006108d86108d1611b67565b8484611b6f565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600061097c848484611d3a565b610a3d84610988611b67565b610a388560405180606001604052806028815260200161465860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ee611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b009092919063ffffffff16565b611b6f565b600190509392505050565b61dead81565b601d5481565b60006009905090565b610a65611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990613d61565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9d576000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610ba8611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613d61565b60405180910390fd5b60008210158015610c47575060018211155b610c5057600080fd5b60008110158015610c62575060018111155b610c6b57600080fd5b81600d8190555080600f819055505050565b610c85611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613d61565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d9b611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90613d61565b60405180910390fd5b60008110158015610e3a575060018111155b610e4357600080fd5b8060138190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8e611b67565b73ffffffffffffffffffffffffffffffffffffffff1614610eae57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b610f7a611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613d61565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611065611b67565b73ffffffffffffffffffffffffffffffffffffffff161461108557600080fd5b600047905061109381612b64565b50565b60006110e0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd0565b9050919050565b6110ef611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611242611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613d61565b60405180910390fd5b674563918244f4000081101561131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613d21565b60405180910390fd5b80601b8190555050565b600a5481565b601b5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611371611b67565b73ffffffffffffffffffffffffffffffffffffffff161461139157600080fd5b61139a30611096565b81111580156113a95750600081115b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90613e21565b60405180910390fd5b6113f181612c3e565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611425611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613d61565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555042600a8190555050565b601c5481565b60606040518060400160405280600881526020017f4441524b42495244000000000000000000000000000000000000000000000000815250905090565b611521611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613d61565b60405180910390fd5b600082101580156115c0575060018211155b6115c957600080fd5b600081101580156115db575060138111155b6115e457600080fd5b81600b8190555080600c819055505050565b6115fe611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290613d61565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b60006116bc6116b5611b67565b8484611d3a565b6001905092915050565b6116ce611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613d61565b60405180910390fd5b6000821015801561176d5750600d8211155b61177657600080fd5b600081101580156117885750600d8111155b61179157600080fd5b81600e81905550806010819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611832611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690613d61565b60405180910390fd5b600081101580156118d1575060048111155b6118da57600080fd5b610e10816118e89190613fad565b60188190555050565b6118f9611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613d61565b60405180910390fd5b601c5481101561199557600080fd5b80601c8190555050565b6119a7611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90613ca1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd690613e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613cc1565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2d9190613e41565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da190613da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613c21565b60405180910390fd5b60008111611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613d81565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613de1565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e90613de1565b60405180910390fd5b60096000611f83611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561200b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200290613de1565b60405180910390fd5b6120136113f4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561208157506120516113f4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269f57601a60149054906101000a900460ff166120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cc90613c41565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156121805750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ed573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121ed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122475750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a15750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ec57601b548111156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e290613c81565b60405180910390fd5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123995750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123d157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561240b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124da57601c548161241d84611096565b6124279190613f26565b10612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90613dc1565b60405180910390fd5b601a60179054906101000a900460ff16156124d9576104b0600a5461248c9190613f26565b42116124d857601e548111156124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613ce1565b60405180910390fd5b5b5b5b60006124e530611096565b90506000601d548211905080801561250a5750601a60159054906101000a900460ff16155b80156125645750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561257c5750601a60169054906101000a900460ff165b80156125d25750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126285750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269c57600080601354111561266d57612661606461265360135486612ec690919063ffffffff16565b612f4190919063ffffffff16565b905061266c81612f8b565b5b612681818461267c9190614007565b612c3e565b600047905060008111156126995761269847612b64565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127465750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127f95750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127f85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156128075760009050612aee565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128b25750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156129715742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54601181905550600e54601281905550600a54421415612970576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a1c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612aed576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612abd575042601854600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba9190613f26565b10155b15612ad957600b54601181905550600c54601281905550612aec565b600f546011819055506010546012819055505b5b5b612afa84848484612f9b565b50505050565b6000838311158290612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f9190613bff565b60405180910390fd5b5060008385612b579190614007565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bcc573d6000803e3d6000fd5b5050565b6000600754821115612c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0e90613c61565b60405180910390fd5b6000612c21612fc8565b9050612c368184612f4190919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c7657612c75614198565b5b604051908082528060200260200182016040528015612ca45781602001602082028036833780820191505090505b5090503081600081518110612cbc57612cbb614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5e57600080fd5b505afa158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9691906136a9565b81600181518110612daa57612da9614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e1130601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b6f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e75959493929190613e5c565b600060405180830381600087803b158015612e8f57600080fd5b505af1158015612ea3573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b600080831415612ed95760009050612f3b565b60008284612ee79190613fad565b9050828482612ef69190613f7c565b14612f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2d90613d41565b60405180910390fd5b809150505b92915050565b6000612f8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff3565b905092915050565b612f983061dead83611d3a565b50565b80612fa957612fa8613056565b5b612fb48484846130b8565b80612fc257612fc1613283565b5b50505050565b6000806000612fd56132a0565b91509150612fec8183612f4190919063ffffffff16565b9250505090565b6000808311829061303a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130319190613bff565b60405180910390fd5b50600083856130499190613f7c565b9050809150509392505050565b600060115414801561306a57506000601254145b801561307857506000601354145b15613082576130b6565b6011546014819055506012546015819055506013546016819055506000601181905550600060128190555060006013819055505b565b6000806000806000806130ca87613302565b95509550955095509550955061312886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131bd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320981613412565b61321384836134cf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132709190613e41565b60405180910390a3505050505050505050565b601454601181905550601554601281905550601654601381905550565b600080600060075490506000683635c9adc5dea0000090506132d6683635c9adc5dea00000600754612f4190919063ffffffff16565b8210156132f557600754683635c9adc5dea000009350935050506132fe565b81819350935050505b9091565b600080600080600080600080600061331f8a601154601254613509565b925092509250600061332f612fc8565b905060008060006133428e87878761359f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006133ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b00565b905092915050565b60008082846133c39190613f26565b905083811015613408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ff90613d01565b60405180910390fd5b8091505092915050565b600061341c612fc8565b905060006134338284612ec690919063ffffffff16565b905061348781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6134e48260075461336a90919063ffffffff16565b6007819055506134ff816008546133b490919063ffffffff16565b6008819055505050565b6000806000806135356064613527888a612ec690919063ffffffff16565b612f4190919063ffffffff16565b9050600061355f6064613551888b612ec690919063ffffffff16565b612f4190919063ffffffff16565b905060006135888261357a858c61336a90919063ffffffff16565b61336a90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135b88589612ec690919063ffffffff16565b905060006135cf8689612ec690919063ffffffff16565b905060006135e68789612ec690919063ffffffff16565b9050600061360f82613601858761336a90919063ffffffff16565b61336a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061363781614612565b92915050565b60008151905061364c81614612565b92915050565b60008135905061366181614629565b92915050565b60008135905061367681614640565b92915050565b600060208284031215613692576136916141c7565b5b60006136a084828501613628565b91505092915050565b6000602082840312156136bf576136be6141c7565b5b60006136cd8482850161363d565b91505092915050565b600080604083850312156136ed576136ec6141c7565b5b60006136fb85828601613628565b925050602061370c85828601613628565b9150509250929050565b60008060006060848603121561372f5761372e6141c7565b5b600061373d86828701613628565b935050602061374e86828701613628565b925050604061375f86828701613667565b9150509250925092565b600080604083850312156137805761377f6141c7565b5b600061378e85828601613628565b925050602061379f85828601613667565b9150509250929050565b6000602082840312156137bf576137be6141c7565b5b60006137cd84828501613652565b91505092915050565b6000602082840312156137ec576137eb6141c7565b5b60006137fa84828501613667565b91505092915050565b6000806040838503121561381a576138196141c7565b5b600061382885828601613667565b925050602061383985828601613667565b9150509250929050565b600061384f838361385b565b60208301905092915050565b6138648161403b565b82525050565b6138738161403b565b82525050565b600061388482613ee1565b61388e8185613f04565b935061389983613ed1565b8060005b838110156138ca5781516138b18882613843565b97506138bc83613ef7565b92505060018101905061389d565b5085935050505092915050565b6138e08161404d565b82525050565b6138ef81614090565b82525050565b6138fe816140a2565b82525050565b600061390f82613eec565b6139198185613f15565b93506139298185602086016140d8565b613932816141cc565b840191505092915050565b600061394a602383613f15565b9150613955826141dd565b604082019050919050565b600061396d601883613f15565b91506139788261422c565b602082019050919050565b6000613990602a83613f15565b915061399b82614255565b604082019050919050565b60006139b3601c83613f15565b91506139be826142a4565b602082019050919050565b60006139d6602683613f15565b91506139e1826142cd565b604082019050919050565b60006139f9602283613f15565b9150613a048261431c565b604082019050919050565b6000613a1c600f83613f15565b9150613a278261436b565b602082019050919050565b6000613a3f601b83613f15565b9150613a4a82614394565b602082019050919050565b6000613a62603483613f15565b9150613a6d826143bd565b604082019050919050565b6000613a85602183613f15565b9150613a908261440c565b604082019050919050565b6000613aa8602083613f15565b9150613ab38261445b565b602082019050919050565b6000613acb602983613f15565b9150613ad682614484565b604082019050919050565b6000613aee602583613f15565b9150613af9826144d3565b604082019050919050565b6000613b11602383613f15565b9150613b1c82614522565b604082019050919050565b6000613b34600d83613f15565b9150613b3f82614571565b602082019050919050565b6000613b57602483613f15565b9150613b628261459a565b604082019050919050565b6000613b7a600c83613f15565b9150613b85826145e9565b602082019050919050565b613b9981614079565b82525050565b613ba881614083565b82525050565b6000602082019050613bc3600083018461386a565b92915050565b6000602082019050613bde60008301846138d7565b92915050565b6000602082019050613bf960008301846138e6565b92915050565b60006020820190508181036000830152613c198184613904565b905092915050565b60006020820190508181036000830152613c3a8161393d565b9050919050565b60006020820190508181036000830152613c5a81613960565b9050919050565b60006020820190508181036000830152613c7a81613983565b9050919050565b60006020820190508181036000830152613c9a816139a6565b9050919050565b60006020820190508181036000830152613cba816139c9565b9050919050565b60006020820190508181036000830152613cda816139ec565b9050919050565b60006020820190508181036000830152613cfa81613a0f565b9050919050565b60006020820190508181036000830152613d1a81613a32565b9050919050565b60006020820190508181036000830152613d3a81613a55565b9050919050565b60006020820190508181036000830152613d5a81613a78565b9050919050565b60006020820190508181036000830152613d7a81613a9b565b9050919050565b60006020820190508181036000830152613d9a81613abe565b9050919050565b60006020820190508181036000830152613dba81613ae1565b9050919050565b60006020820190508181036000830152613dda81613b04565b9050919050565b60006020820190508181036000830152613dfa81613b27565b9050919050565b60006020820190508181036000830152613e1a81613b4a565b9050919050565b60006020820190508181036000830152613e3a81613b6d565b9050919050565b6000602082019050613e566000830184613b90565b92915050565b600060a082019050613e716000830188613b90565b613e7e60208301876138f5565b8181036040830152613e908186613879565b9050613e9f606083018561386a565b613eac6080830184613b90565b9695505050505050565b6000602082019050613ecb6000830184613b9f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f3182614079565b9150613f3c83614079565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7157613f7061410b565b5b828201905092915050565b6000613f8782614079565b9150613f9283614079565b925082613fa257613fa161413a565b5b828204905092915050565b6000613fb882614079565b9150613fc383614079565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffc57613ffb61410b565b5b828202905092915050565b600061401282614079565b915061401d83614079565b9250828210156140305761402f61410b565b5b828203905092915050565b600061404682614059565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061409b826140b4565b9050919050565b60006140ad82614079565b9050919050565b60006140bf826140c6565b9050919050565b60006140d182614059565b9050919050565b60005b838110156140f65780820151818401526020810190506140db565b83811115614105576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e7420746f6f206d7563680000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3525000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61461b8161403b565b811461462657600080fd5b50565b6146328161404d565b811461463d57600080fd5b50565b61464981614079565b811461465457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2c15b1a8f2b85c1f818928fbf7d8c2b290fdc60dc263e7b6c5bbc8343337a6764736f6c63430008070033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e146107a4578063e0f9f6a0146107e1578063ea1644d51461080a578063f2fde38b14610833578063fe72c3c11461085c57610225565b806395d89b41146106c15780639ec350ed146106ec5780639f13157114610715578063a9059cbb1461073e578063c55284901461077b57610225565b80637d1db4a5116100f25780637d1db4a5146105ee578063881dce60146106195780638da5cb5b146106425780638f70ccf71461066d5780638f9a55c01461069657610225565b806370a0823114610546578063715018a61461058357806374010ece1461059a578063790ca413146105c357610225565b806333251a0b116101a65780634bf2c7c9116101755780634bf2c7c9146104895780635d098b38146104b25780636b9cf534146104db5780636d8aa8f8146105065780636fc3eaec1461052f57610225565b806333251a0b146103e357806338eea22d1461040c5780633e3e95981461043557806349bd5a5e1461045e57610225565b806318160ddd116101ed57806318160ddd146102fa57806323b872dd1461032557806327c8f835146103625780632fd689e31461038d578063313ce567146103b857610225565b806306fdde031461022a578063095ea7b3146102555780630f3a325f146102925780631694505e146102cf57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610887565b60405161024c9190613bff565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190613769565b6108c4565b6040516102899190613bc9565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061367c565b6108e2565b6040516102c69190613bc9565b60405180910390f35b3480156102db57600080fd5b506102e4610938565b6040516102f19190613be4565b60405180910390f35b34801561030657600080fd5b5061030f61095e565b60405161031c9190613e41565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190613716565b61096f565b6040516103599190613bc9565b60405180910390f35b34801561036e57600080fd5b50610377610a48565b6040516103849190613bae565b60405180910390f35b34801561039957600080fd5b506103a2610a4e565b6040516103af9190613e41565b60405180910390f35b3480156103c457600080fd5b506103cd610a54565b6040516103da9190613eb6565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061367c565b610a5d565b005b34801561041857600080fd5b50610433600480360381019061042e9190613803565b610ba0565b005b34801561044157600080fd5b5061045c6004803603810190610457919061367c565b610c7d565b005b34801561046a57600080fd5b50610473610d6d565b6040516104809190613bae565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906137d6565b610d93565b005b3480156104be57600080fd5b506104d960048036038101906104d4919061367c565b610e4d565b005b3480156104e757600080fd5b506104f0610f6c565b6040516104fd9190613e41565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906137a9565b610f72565b005b34801561053b57600080fd5b50610544611024565b005b34801561055257600080fd5b5061056d6004803603810190610568919061367c565b611096565b60405161057a9190613e41565b60405180910390f35b34801561058f57600080fd5b506105986110e7565b005b3480156105a657600080fd5b506105c160048036038101906105bc91906137d6565b61123a565b005b3480156105cf57600080fd5b506105d8611324565b6040516105e59190613e41565b60405180910390f35b3480156105fa57600080fd5b5061060361132a565b6040516106109190613e41565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906137d6565b611330565b005b34801561064e57600080fd5b506106576113f4565b6040516106649190613bae565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f91906137a9565b61141d565b005b3480156106a257600080fd5b506106ab6114d6565b6040516106b89190613e41565b60405180910390f35b3480156106cd57600080fd5b506106d66114dc565b6040516106e39190613bff565b60405180910390f35b3480156106f857600080fd5b50610713600480360381019061070e9190613803565b611519565b005b34801561072157600080fd5b5061073c600480360381019061073791906137a9565b6115f6565b005b34801561074a57600080fd5b5061076560048036038101906107609190613769565b6116a8565b6040516107729190613bc9565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613803565b6116c6565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906136d6565b6117a3565b6040516107d89190613e41565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906137d6565b61182a565b005b34801561081657600080fd5b50610831600480360381019061082c91906137d6565b6118f1565b005b34801561083f57600080fd5b5061085a6004803603810190610855919061367c565b61199f565b005b34801561086857600080fd5b50610871611b61565b60405161087e9190613e41565b60405180910390f35b60606040518060400160405280600e81526020017f456c6f6e734e696768746d617265000000000000000000000000000000000000815250905090565b60006108d86108d1611b67565b8484611b6f565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600061097c848484611d3a565b610a3d84610988611b67565b610a388560405180606001604052806028815260200161465860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ee611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b009092919063ffffffff16565b611b6f565b600190509392505050565b61dead81565b601d5481565b60006009905090565b610a65611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990613d61565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9d576000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610ba8611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613d61565b60405180910390fd5b60008210158015610c47575060018211155b610c5057600080fd5b60008110158015610c62575060018111155b610c6b57600080fd5b81600d8190555080600f819055505050565b610c85611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990613d61565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d9b611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90613d61565b60405180910390fd5b60008110158015610e3a575060018111155b610e4357600080fd5b8060138190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8e611b67565b73ffffffffffffffffffffffffffffffffffffffff1614610eae57600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601e5481565b610f7a611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613d61565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611065611b67565b73ffffffffffffffffffffffffffffffffffffffff161461108557600080fd5b600047905061109381612b64565b50565b60006110e0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bd0565b9050919050565b6110ef611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611242611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613d61565b60405180910390fd5b674563918244f4000081101561131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613d21565b60405180910390fd5b80601b8190555050565b600a5481565b601b5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611371611b67565b73ffffffffffffffffffffffffffffffffffffffff161461139157600080fd5b61139a30611096565b81111580156113a95750600081115b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90613e21565b60405180910390fd5b6113f181612c3e565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611425611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613d61565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555042600a8190555050565b601c5481565b60606040518060400160405280600881526020017f4441524b42495244000000000000000000000000000000000000000000000000815250905090565b611521611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613d61565b60405180910390fd5b600082101580156115c0575060018211155b6115c957600080fd5b600081101580156115db575060138111155b6115e457600080fd5b81600b8190555080600c819055505050565b6115fe611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290613d61565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b60006116bc6116b5611b67565b8484611d3a565b6001905092915050565b6116ce611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290613d61565b60405180910390fd5b6000821015801561176d5750600d8211155b61177657600080fd5b600081101580156117885750600d8111155b61179157600080fd5b81600e81905550806010819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611832611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690613d61565b60405180910390fd5b600081101580156118d1575060048111155b6118da57600080fd5b610e10816118e89190613fad565b60188190555050565b6118f9611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613d61565b60405180910390fd5b601c5481101561199557600080fd5b80601c8190555050565b6119a7611b67565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613d61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90613ca1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd690613e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613cc1565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2d9190613e41565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da190613da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613c21565b60405180910390fd5b60008111611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613d81565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613de1565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6e90613de1565b60405180910390fd5b60096000611f83611b67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561200b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200290613de1565b60405180910390fd5b6120136113f4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561208157506120516113f4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269f57601a60149054906101000a900460ff166120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cc90613c41565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156121805750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ed573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121ed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122475750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a15750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ec57601b548111156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e290613c81565b60405180910390fd5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123995750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123d157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561240b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156124da57601c548161241d84611096565b6124279190613f26565b10612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90613dc1565b60405180910390fd5b601a60179054906101000a900460ff16156124d9576104b0600a5461248c9190613f26565b42116124d857601e548111156124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613ce1565b60405180910390fd5b5b5b5b60006124e530611096565b90506000601d548211905080801561250a5750601a60159054906101000a900460ff16155b80156125645750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561257c5750601a60169054906101000a900460ff165b80156125d25750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126285750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269c57600080601354111561266d57612661606461265360135486612ec690919063ffffffff16565b612f4190919063ffffffff16565b905061266c81612f8b565b5b612681818461267c9190614007565b612c3e565b600047905060008111156126995761269847612b64565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127465750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127f95750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127f85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156128075760009050612aee565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128b25750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156129715742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54601181905550600e54601281905550600a54421415612970576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a1c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612aed576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612abd575042601854600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba9190613f26565b10155b15612ad957600b54601181905550600c54601281905550612aec565b600f546011819055506010546012819055505b5b5b612afa84848484612f9b565b50505050565b6000838311158290612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f9190613bff565b60405180910390fd5b5060008385612b579190614007565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bcc573d6000803e3d6000fd5b5050565b6000600754821115612c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0e90613c61565b60405180910390fd5b6000612c21612fc8565b9050612c368184612f4190919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c7657612c75614198565b5b604051908082528060200260200182016040528015612ca45781602001602082028036833780820191505090505b5090503081600081518110612cbc57612cbb614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5e57600080fd5b505afa158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9691906136a9565b81600181518110612daa57612da9614169565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e1130601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b6f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e75959493929190613e5c565b600060405180830381600087803b158015612e8f57600080fd5b505af1158015612ea3573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b600080831415612ed95760009050612f3b565b60008284612ee79190613fad565b9050828482612ef69190613f7c565b14612f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2d90613d41565b60405180910390fd5b809150505b92915050565b6000612f8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff3565b905092915050565b612f983061dead83611d3a565b50565b80612fa957612fa8613056565b5b612fb48484846130b8565b80612fc257612fc1613283565b5b50505050565b6000806000612fd56132a0565b91509150612fec8183612f4190919063ffffffff16565b9250505090565b6000808311829061303a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130319190613bff565b60405180910390fd5b50600083856130499190613f7c565b9050809150509392505050565b600060115414801561306a57506000601254145b801561307857506000601354145b15613082576130b6565b6011546014819055506012546015819055506013546016819055506000601181905550600060128190555060006013819055505b565b6000806000806000806130ca87613302565b95509550955095509550955061312886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461336a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131bd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320981613412565b61321384836134cf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132709190613e41565b60405180910390a3505050505050505050565b601454601181905550601554601281905550601654601381905550565b600080600060075490506000683635c9adc5dea0000090506132d6683635c9adc5dea00000600754612f4190919063ffffffff16565b8210156132f557600754683635c9adc5dea000009350935050506132fe565b81819350935050505b9091565b600080600080600080600080600061331f8a601154601254613509565b925092509250600061332f612fc8565b905060008060006133428e87878761359f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006133ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b00565b905092915050565b60008082846133c39190613f26565b905083811015613408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ff90613d01565b60405180910390fd5b8091505092915050565b600061341c612fc8565b905060006134338284612ec690919063ffffffff16565b905061348781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133b490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6134e48260075461336a90919063ffffffff16565b6007819055506134ff816008546133b490919063ffffffff16565b6008819055505050565b6000806000806135356064613527888a612ec690919063ffffffff16565b612f4190919063ffffffff16565b9050600061355f6064613551888b612ec690919063ffffffff16565b612f4190919063ffffffff16565b905060006135888261357a858c61336a90919063ffffffff16565b61336a90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135b88589612ec690919063ffffffff16565b905060006135cf8689612ec690919063ffffffff16565b905060006135e68789612ec690919063ffffffff16565b9050600061360f82613601858761336a90919063ffffffff16565b61336a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061363781614612565b92915050565b60008151905061364c81614612565b92915050565b60008135905061366181614629565b92915050565b60008135905061367681614640565b92915050565b600060208284031215613692576136916141c7565b5b60006136a084828501613628565b91505092915050565b6000602082840312156136bf576136be6141c7565b5b60006136cd8482850161363d565b91505092915050565b600080604083850312156136ed576136ec6141c7565b5b60006136fb85828601613628565b925050602061370c85828601613628565b9150509250929050565b60008060006060848603121561372f5761372e6141c7565b5b600061373d86828701613628565b935050602061374e86828701613628565b925050604061375f86828701613667565b9150509250925092565b600080604083850312156137805761377f6141c7565b5b600061378e85828601613628565b925050602061379f85828601613667565b9150509250929050565b6000602082840312156137bf576137be6141c7565b5b60006137cd84828501613652565b91505092915050565b6000602082840312156137ec576137eb6141c7565b5b60006137fa84828501613667565b91505092915050565b6000806040838503121561381a576138196141c7565b5b600061382885828601613667565b925050602061383985828601613667565b9150509250929050565b600061384f838361385b565b60208301905092915050565b6138648161403b565b82525050565b6138738161403b565b82525050565b600061388482613ee1565b61388e8185613f04565b935061389983613ed1565b8060005b838110156138ca5781516138b18882613843565b97506138bc83613ef7565b92505060018101905061389d565b5085935050505092915050565b6138e08161404d565b82525050565b6138ef81614090565b82525050565b6138fe816140a2565b82525050565b600061390f82613eec565b6139198185613f15565b93506139298185602086016140d8565b613932816141cc565b840191505092915050565b600061394a602383613f15565b9150613955826141dd565b604082019050919050565b600061396d601883613f15565b91506139788261422c565b602082019050919050565b6000613990602a83613f15565b915061399b82614255565b604082019050919050565b60006139b3601c83613f15565b91506139be826142a4565b602082019050919050565b60006139d6602683613f15565b91506139e1826142cd565b604082019050919050565b60006139f9602283613f15565b9150613a048261431c565b604082019050919050565b6000613a1c600f83613f15565b9150613a278261436b565b602082019050919050565b6000613a3f601b83613f15565b9150613a4a82614394565b602082019050919050565b6000613a62603483613f15565b9150613a6d826143bd565b604082019050919050565b6000613a85602183613f15565b9150613a908261440c565b604082019050919050565b6000613aa8602083613f15565b9150613ab38261445b565b602082019050919050565b6000613acb602983613f15565b9150613ad682614484565b604082019050919050565b6000613aee602583613f15565b9150613af9826144d3565b604082019050919050565b6000613b11602383613f15565b9150613b1c82614522565b604082019050919050565b6000613b34600d83613f15565b9150613b3f82614571565b602082019050919050565b6000613b57602483613f15565b9150613b628261459a565b604082019050919050565b6000613b7a600c83613f15565b9150613b85826145e9565b602082019050919050565b613b9981614079565b82525050565b613ba881614083565b82525050565b6000602082019050613bc3600083018461386a565b92915050565b6000602082019050613bde60008301846138d7565b92915050565b6000602082019050613bf960008301846138e6565b92915050565b60006020820190508181036000830152613c198184613904565b905092915050565b60006020820190508181036000830152613c3a8161393d565b9050919050565b60006020820190508181036000830152613c5a81613960565b9050919050565b60006020820190508181036000830152613c7a81613983565b9050919050565b60006020820190508181036000830152613c9a816139a6565b9050919050565b60006020820190508181036000830152613cba816139c9565b9050919050565b60006020820190508181036000830152613cda816139ec565b9050919050565b60006020820190508181036000830152613cfa81613a0f565b9050919050565b60006020820190508181036000830152613d1a81613a32565b9050919050565b60006020820190508181036000830152613d3a81613a55565b9050919050565b60006020820190508181036000830152613d5a81613a78565b9050919050565b60006020820190508181036000830152613d7a81613a9b565b9050919050565b60006020820190508181036000830152613d9a81613abe565b9050919050565b60006020820190508181036000830152613dba81613ae1565b9050919050565b60006020820190508181036000830152613dda81613b04565b9050919050565b60006020820190508181036000830152613dfa81613b27565b9050919050565b60006020820190508181036000830152613e1a81613b4a565b9050919050565b60006020820190508181036000830152613e3a81613b6d565b9050919050565b6000602082019050613e566000830184613b90565b92915050565b600060a082019050613e716000830188613b90565b613e7e60208301876138f5565b8181036040830152613e908186613879565b9050613e9f606083018561386a565b613eac6080830184613b90565b9695505050505050565b6000602082019050613ecb6000830184613b9f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f3182614079565b9150613f3c83614079565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7157613f7061410b565b5b828201905092915050565b6000613f8782614079565b9150613f9283614079565b925082613fa257613fa161413a565b5b828204905092915050565b6000613fb882614079565b9150613fc383614079565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffc57613ffb61410b565b5b828202905092915050565b600061401282614079565b915061401d83614079565b9250828210156140305761402f61410b565b5b828203905092915050565b600061404682614059565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061409b826140b4565b9050919050565b60006140ad82614079565b9050919050565b60006140bf826140c6565b9050919050565b60006140d182614059565b9050919050565b60005b838110156140f65780820151818401526020810190506140db565b83811115614105576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e7420746f6f206d7563680000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3525000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61461b8161403b565b811461462657600080fd5b50565b6146328161404d565b811461463d57600080fd5b50565b61464981614079565b811461465457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2c15b1a8f2b85c1f818928fbf7d8c2b290fdc60dc263e7b6c5bbc8343337a6764736f6c63430008070033

Deployed Bytecode Sourcemap

4179:16565:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7127:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8052:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15173:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5845:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7404:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8253:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5715:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6199:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7313:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15015:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19747:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14910:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5893:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20046:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14297:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6255:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18910:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15286:196;;;;;;;;;;;;;:::i;:::-;;7507:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1658:148;;;;;;;;;;;;;:::i;:::-;;19023:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4954:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6087:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14677:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1444:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14149:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6143:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7218:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20258:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14540:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7653:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19474:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7860:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20577:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19247:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1818:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5804:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7127:83;7164:13;7197:5;;;;;;;;;;;;;;;;;7190:12;;7127:83;:::o;8052:193::-;8154:4;8176:39;8185:12;:10;:12::i;:::-;8199:7;8208:6;8176:8;:39::i;:::-;8233:4;8226:11;;8052:193;;;;:::o;15173:105::-;15230:4;15253:9;:17;15263:6;15253:17;;;;;;;;;;;;;;;;;;;;;;;;;15246:24;;15173:105;;;:::o;5845:41::-;;;;;;;;;;;;;:::o;7404:95::-;7457:7;4797:12;7477:14;;7404:95;:::o;8253:446::-;8385:4;8402:36;8412:6;8420:9;8431:6;8402:9;:36::i;:::-;8449:220;8472:6;8493:12;:10;:12::i;:::-;8520:138;8576:6;8520:138;;;;;;;;;;;;;;;;;:11;:19;8532:6;8520:19;;;;;;;;;;;;;;;:33;8540:12;:10;:12::i;:::-;8520:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8449:8;:220::i;:::-;8687:4;8680:11;;8253:446;;;;;:::o;5715:80::-;5753:42;5715:80;:::o;6199:49::-;;;;:::o;7313:83::-;7354:5;4420:1;7372:16;;7313:83;:::o;15015:150::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15087:9:::1;:17;15097:6;15087:17;;;;;;;;;;;;;;;;;;;;;;;;;15083:75;;;15141:5;15121:9;:17;15131:6;15121:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;15083:75;15015:150:::0;:::o;19747:291::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19865:1:::1;19849:12;:17;;:38;;;;;19886:1;19870:12;:17;;19849:38;19841:47;;;::::0;::::1;;19924:1;19907:13;:18;;:40;;;;;19946:1;19929:13;:18;;19907:40;19899:49;;;::::0;::::1;;19976:12;19959:14;:29;;;;20017:13;19999:15;:31;;;;19747:291:::0;;:::o;14910:97::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14995:4:::1;14975:9;:17;14985:6;14975:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14910:97:::0;:::o;5893:28::-;;;;;;;;;;;;;:::o;20046:137::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20130:1:::1;20120:6;:11;;:26;;;;;20145:1;20135:6;:11;;20120:26;20112:35;;;::::0;::::1;;20169:6;20158:8;:17;;;;20046:137:::0;:::o;14297:235::-;14395:17;;;;;;;;;;;14379:33;;:12;:10;:12::i;:::-;:33;;;14371:42;;;;;;14452:16;14424:17;;:45;;;;;;;;;;;;;;;;;;14520:4;14480:18;:37;14499:17;;;;;;;;;;;14480:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14297:235;:::o;6255:47::-;;;;:::o;18910:101::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18991:12:::1;18977:11;;:26;;;;;;;;;;;;;;;;;;18910:101:::0;:::o;15286:196::-;15352:17;;;;;;;;;;;15336:33;;:12;:10;:12::i;:::-;:33;;;15328:42;;;;;;15381:26;15410:21;15381:50;;15442:32;15455:18;15442:12;:32::i;:::-;15317:165;15286:196::o;7507:138::-;7573:7;7600:37;7620:7;:16;7628:7;7620:16;;;;;;;;;;;;;;;;7600:19;:37::i;:::-;7593:44;;7507:138;;;:::o;1658:148::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1765:1:::1;1728:40;;1749:6;::::0;::::1;;;;;;;;1728:40;;;;;;;;;;;;1796:1;1779:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1658:148::o:0;19023:212::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19122:11:::1;19107;:26;;19099:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19216:11;19201:12;:26;;;;19023:212:::0;:::o;4954:25::-;;;;:::o;6087:42::-;;;;:::o;14677:225::-;14757:17;;;;;;;;;;;14741:33;;:12;:10;:12::i;:::-;:33;;;14733:42;;;;;;14804:24;14822:4;14804:9;:24::i;:::-;14794:6;:34;;:48;;;;;14841:1;14832:6;:10;14794:48;14786:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14870:24;14887:6;14870:16;:24::i;:::-;14677:225;:::o;1444:79::-;1482:7;1509:6;;;;;;;;;;;1502:13;;1444:79;:::o;14149:140::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14230:12:::1;14216:11;;:26;;;;;;;;;;;;;;;;;;14266:15;14253:10;:28;;;;14149:140:::0;:::o;6143:44::-;;;;:::o;7218:87::-;7257:13;7290:7;;;;;;;;;;;;;;;;;7283:14;;7218:87;:::o;20258:311::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20387:1:::1;20367:16;:21;;:46;;;;;20412:1;20392:16;:21;;20367:46;20359:55;;;::::0;::::1;;20451:1;20433:14;:19;;:43;;;;;20474:2;20456:14;:20;;20433:43;20425:52;;;::::0;::::1;;20505:16;20488:14;:33;;;;20547:14;20532:12;:29;;;;20258:311:::0;;:::o;14540:129::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14643:18:::1;14623:17;;:38;;;;;;;;;;;;;;;;;;14540:129:::0;:::o;7653:199::-;7758:4;7780:42;7790:12;:10;:12::i;:::-;7804:9;7815:6;7780:9;:42::i;:::-;7840:4;7833:11;;7653:199;;;;:::o;19474:265::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19583:1:::1;19570:9;:14;;:33;;;;;19601:2;19588:9;:15;;19570:33;19562:42;;;::::0;::::1;;19637:1;19623:10;:15;;:35;;;;;19656:2;19642:10;:16;;19623:35;19615:44;;;::::0;::::1;;19685:9;19670:12;:24;;;;19721:10;19705:13;:26;;;;19474:265:::0;;:::o;7860:184::-;7977:7;8009:11;:18;8021:5;8009:18;;;;;;;;;;;;;;;:27;8028:7;8009:27;;;;;;;;;;;;;;;;8002:34;;7860:184;;;;:::o;20577:162::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20669:1:::1;20656:9;:14;;:32;;;;;20687:1;20674:9;:14;;20656:32;20648:41;;;::::0;::::1;;20724:7;20712:9;:19;;;;:::i;:::-;20700:9;:31;;;;20577:162:::0;:::o;19247:168::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19351:14:::1;;19334:13;:31;;19326:40;;;::::0;::::1;;19394:13;19377:14;:30;;;;19247:168:::0;:::o;1818:244::-;1581:12;:10;:12::i;:::-;1571:22;;:6;;;;;;;;;;:22;;;1563:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:1:::1;1907:22;;:8;:22;;;;1899:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2017:8;1988:38;;2009:6;::::0;::::1;;;;;;;;1988:38;;;;;;;;;;;;2046:8;2037:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1818:244:::0;:::o;5804:34::-;;;;:::o;203:98::-;256:7;283:10;276:17;;203:98;:::o;9518:369::-;9662:1;9645:19;;:5;:19;;;;9637:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9743:1;9724:21;;:7;:21;;;;9716:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9825:6;9795:11;:18;9807:5;9795:18;;;;;;;;;;;;;;;:27;9814:7;9795:27;;;;;;;;;;;;;;;:36;;;;9863:7;9847:32;;9856:5;9847:32;;;9872:6;9847:32;;;;;;:::i;:::-;;;;;;;;9518:369;;;:::o;9895:3522::-;10033:1;10017:18;;:4;:18;;;;10009:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10110:1;10096:16;;:2;:16;;;;10088:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10180:1;10171:6;:10;10163:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10247:9;:13;10257:2;10247:13;;;;;;;;;;;;;;;;;;;;;;;;;10246:14;10238:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10298:9;:15;10308:4;10298:15;;;;;;;;;;;;;;;;;;;;;;;;;10297:16;10289:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10351:9;:23;10361:12;:10;:12::i;:::-;10351:23;;;;;;;;;;;;;;;;;;;;;;;;;10350:24;10342:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10417:7;:5;:7::i;:::-;10409:15;;:4;:15;;;;:32;;;;;10434:7;:5;:7::i;:::-;10428:13;;:2;:13;;;;10409:32;10405:1815;;;10511:11;;;;;;;;;;;10506:87;;10543:34;;;;;;;;;;:::i;:::-;;;;;;;;10506:87;10631:13;;;;;;;;;;;10625:19;;:2;:19;;;:55;;;;;10664:15;;;;;;;;;;;10648:32;;:4;:32;;;;10625:55;10621:307;;;10719:4;10705:19;;:2;:19;;;;:44;;;;;10744:4;10728:21;;:4;:21;;;;10705:44;:71;;;;;10759:17;;;;;;;;;;;10753:23;;:2;:23;;;;10705:71;:100;;;;;10788:17;;;;;;;;;;;10780:25;;:4;:25;;;;10705:100;10701:212;;;10848:12;;10838:6;:22;;10830:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10701:212;10621:307;10954:13;;;;;;;;;;;10948:19;;:2;:19;;;;:46;;;;;10977:17;;;;;;;;;;;10971:23;;:2;:23;;;;10948:46;:69;;;;;11012:4;10998:19;;:2;:19;;;;10948:69;:90;;;;;5753:42;11021:17;;:2;:17;;;;10948:90;10944:455;;;11092:14;;11083:6;11067:13;11077:2;11067:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11059:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11169:17;;;;;;;;;;;11165:219;;;11247:10;11234;;:23;;;;:::i;:::-;11215:15;:42;11211:154;;11304:17;;11294:6;:27;;11286:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11211:154;11165:219;10944:455;11427:28;11458:24;11476:4;11458:9;:24::i;:::-;11427:55;;11497:12;11535:19;;11512:20;:42;11497:57;;11587:7;:18;;;;;11599:6;;;;;;;;;;;11598:7;11587:18;:43;;;;;11617:13;;;;;;;;;;;11609:21;;:4;:21;;;;11587:43;:58;;;;;11634:11;;;;;;;;;;;11587:58;:87;;;;;11650:18;:24;11669:4;11650:24;;;;;;;;;;;;;;;;;;;;;;;;;11649:25;11587:87;:114;;;;;11679:18;:22;11698:2;11679:22;;;;;;;;;;;;;;;;;;;;;;;;;11678:23;11587:114;11583:626;;;11722:19;11779:1;11768:8;;:12;11764:166;;;11819:45;11858:5;11819:34;11844:8;;11819:20;:24;;:34;;;;:::i;:::-;:38;;:45;;;;:::i;:::-;11805:59;;11887:23;11898:11;11887:10;:23::i;:::-;11764:166;11948:52;11988:11;11965:20;:34;;;;:::i;:::-;11948:16;:52::i;:::-;12019:26;12048:21;12019:50;;12113:1;12092:18;:22;12088:106;;;12139:35;12152:21;12139:12;:35::i;:::-;12088:106;11703:506;;11583:626;10443:1777;;10405:1815;12240:12;12255:4;12240:19;;12305:18;:24;12324:4;12305:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12333:18;:22;12352:2;12333:22;;;;;;;;;;;;;;;;;;;;;;;;;12305:50;12304:102;;;;12369:13;;;;;;;;;;;12361:21;;:4;:21;;;;:44;;;;;12392:13;;;;;;;;;;;12386:19;;:2;:19;;;;12361:44;12304:102;12300:1056;;;12433:5;12423:15;;12300:1056;;;12515:13;;;;;;;;;;;12507:21;;:4;:21;;;:55;;;;;12546:15;;;;;;;;;;;12532:30;;:2;:30;;;;12507:55;12504:382;;;12601:15;12587:7;:11;12595:2;12587:11;;;;;;;;;;;;;;;:29;;;;12651:14;;12639:9;:26;;;;12698:12;;12688:7;:22;;;;12788:10;;12769:15;:29;12765:106;;;12843:4;12827:9;:13;12837:2;12827:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12765:106;12504:382;12950:13;;;;;;;;;;;12944:19;;:2;:19;;;:55;;;;;12983:15;;;;;;;;;;;12967:32;;:4;:32;;;;12944:55;12940:405;;;13041:1;13024:7;:13;13032:4;13024:13;;;;;;;;;;;;;;;;:18;;:68;;;;;13076:15;13063:9;;13047:7;:13;13055:4;13047:13;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;13024:68;13020:310;;;13129:14;;13117:9;:26;;;;13176:12;;13166:7;:22;;;;13020:310;;;13249:15;;13237:9;:27;;;;13297:13;;13287:7;:23;;;;13020:310;12940:405;12300:1056;13368:41;13383:4;13389:2;13393:6;13401:7;13368:14;:41::i;:::-;9998:3419;9895:3522;;;:::o;2430:224::-;2550:7;2583:1;2578;:6;;2586:12;2570:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2610:9;2626:1;2622;:5;;;;:::i;:::-;2610:17;;2645:1;2638:8;;;2430:224;;;;;:::o;14042:99::-;14099:17;;;;;;;;;;;:26;;:34;14126:6;14099:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14042:99;:::o;8707:323::-;8802:7;8860;;8849;:18;;8827:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8948:19;8970:10;:8;:10::i;:::-;8948:32;;8998:24;9010:11;8998:7;:11;;:24;;;;:::i;:::-;8991:31;;;8707:323;;;:::o;13551:483::-;6414:4;6405:6;;:13;;;;;;;;;;;;;;;;;;13629:21:::1;13667:1;13653:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13629:40;;13698:4;13680;13685:1;13680:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13724:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13714:4;13719:1;13714:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13757:62;13774:4;13789:15;;;;;;;;;;;13807:11;13757:8;:62::i;:::-;13830:15;;;;;;;;;;;:66;;;13911:11;13937:1;13953:4;13980;14000:15;13830:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13618:416;6450:5:::0;6441:6;;:14;;;;;;;;;;;;;;;;;;13551:483;:::o;2662:246::-;2720:7;2749:1;2744;:6;2740:47;;;2774:1;2767:8;;;;2740:47;2797:9;2813:1;2809;:5;;;;:::i;:::-;2797:17;;2842:1;2837;2833;:5;;;;:::i;:::-;:10;2825:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2899:1;2892:8;;;2662:246;;;;;:::o;2916:132::-;2974:7;3001:39;3005:1;3008;3001:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2994:46;;2916:132;;;;:::o;13425:118::-;13485:50;13503:4;5753:42;13523:11;13485:9;:50::i;:::-;13425:118;:::o;15490:282::-;15646:7;15641:28;;15655:14;:12;:14::i;:::-;15641:28;15680:44;15698:6;15706:9;15717:6;15680:17;:44::i;:::-;15740:7;15735:29;;15749:15;:13;:15::i;:::-;15735:29;15490:282;;;;:::o;18465:166::-;18507:7;18528:15;18545;18564:19;:17;:19::i;:::-;18527:56;;;;18603:20;18615:7;18603;:11;;:20;;;;:::i;:::-;18596:27;;;;18465:166;:::o;3056:223::-;3176:7;3208:1;3204;:5;3211:12;3196:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3235:9;3251:1;3247;:5;;;;:::i;:::-;3235:17;;3270:1;3263:8;;;3056:223;;;;;:::o;9038:309::-;9098:1;9085:9;;:14;:30;;;;;9114:1;9103:7;;:12;9085:30;:47;;;;;9131:1;9119:8;;:13;9085:47;9081:60;;;9134:7;;9081:60;9177:9;;9157:17;:29;;;;9215:7;;9197:15;:25;;;;9252:8;;9233:16;:27;;;;9293:1;9281:9;:13;;;;9315:1;9305:7;:11;;;;9338:1;9327:8;:12;;;;9038:309;:::o;15780:610::-;15927:15;15957:23;15995:12;16022:23;16060:12;16087:13;16114:19;16125:7;16114:10;:19::i;:::-;15912:221;;;;;;;;;;;;16162:28;16182:7;16162;:15;16170:6;16162:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16144:7;:15;16152:6;16144:15;;;;;;;;;;;;;;;:46;;;;16222:39;16245:15;16222:7;:18;16230:9;16222:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16201:7;:18;16209:9;16201:18;;;;;;;;;;;;;;;:60;;;;16272:16;16282:5;16272:9;:16::i;:::-;16299:23;16311:4;16317;16299:11;:23::i;:::-;16355:9;16338:44;;16347:6;16338:44;;;16366:15;16338:44;;;;;;:::i;:::-;;;;;;;;15901:489;;;;;;15780:610;;;:::o;9355:155::-;9411:17;;9399:9;:29;;;;9449:15;;9439:7;:25;;;;9486:16;;9475:8;:27;;;;9355:155::o;18639:263::-;18690:7;18699;18719:15;18737:7;;18719:25;;18755:15;4797:12;18755:25;;18805:20;4797:12;18805:7;;:11;;:20;;;;:::i;:::-;18795:7;:30;18791:61;;;18835:7;;4797:12;18827:25;;;;;;;;18791:61;18877:7;18886;18869:25;;;;;;18639:263;;;:::o;16809:625::-;16909:7;16931;16953;16975;16997;17019;17055:23;17080:12;17094:13;17124:40;17136:7;17145:9;;17156:7;;17124:11;:40::i;:::-;17054:110;;;;;;17175:19;17197:10;:8;:10::i;:::-;17175:32;;17219:15;17236:23;17261:12;17290:46;17302:7;17311:4;17317:5;17324:11;17290;:46::i;:::-;17218:118;;;;;;17365:7;17374:15;17391:4;17397:15;17414:4;17420:5;17357:69;;;;;;;;;;;;;;;;;;;16809:625;;;;;;;:::o;2286:136::-;2344:7;2371:43;2375:1;2378;2371:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2364:50;;2286:136;;;;:::o;2099:179::-;2157:7;2177:9;2193:1;2189;:5;;;;:::i;:::-;2177:17;;2218:1;2213;:6;;2205:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2269:1;2262:8;;;2099:179;;;;:::o;16398:211::-;16451:19;16473:10;:8;:10::i;:::-;16451:32;;16494:13;16510:22;16520:11;16510:5;:9;;:22;;;;:::i;:::-;16494:38;;16568:33;16595:5;16568:7;:22;16584:4;16568:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16543:7;:22;16559:4;16543:22;;;;;;;;;;;;;;;:58;;;;16440:169;;16398:211;:::o;16617:147::-;16695:17;16707:4;16695:7;;:11;;:17;;;;:::i;:::-;16685:7;:27;;;;16736:20;16751:4;16736:10;;:14;;:20;;;;:::i;:::-;16723:10;:33;;;;16617:147;;:::o;17442:471::-;17611:7;17633;17655;17690:12;17705:30;17731:3;17705:21;17717:8;17705:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17690:45;;17746:13;17762:28;17786:3;17762:19;17774:6;17762:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17746:44;;17801:23;17827:28;17849:5;17827:17;17839:4;17827:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17801:54;;17876:15;17893:4;17899:5;17868:37;;;;;;;;;17442:471;;;;;;;:::o;17921:536::-;18115:7;18137;18159;18194:15;18212:24;18224:11;18212:7;:11;;:24;;;;:::i;:::-;18194:42;;18247:12;18262:21;18271:11;18262:4;:8;;:21;;;;:::i;:::-;18247:36;;18294:13;18310:22;18320:11;18310:5;:9;;:22;;;;:::i;:::-;18294:38;;18343:23;18369:28;18391:5;18369:17;18381:4;18369:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18343:54;;18418:7;18427:15;18444:4;18410:39;;;;;;;;;;17921:536;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:474::-;3594:6;3602;3651:2;3639:9;3630:7;3626:23;3622:32;3619:119;;;3657:79;;:::i;:::-;3619:119;3777:1;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;:::-;3792:63;;3748:117;3904:2;3930:53;3975:7;3966:6;3955:9;3951:22;3930:53;:::i;:::-;3920:63;;3875:118;3526:474;;;;;:::o;4006:179::-;4075:10;4096:46;4138:3;4130:6;4096:46;:::i;:::-;4174:4;4169:3;4165:14;4151:28;;4006:179;;;;:::o;4191:108::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4191:108;;:::o;4305:118::-;4392:24;4410:5;4392:24;:::i;:::-;4387:3;4380:37;4305:118;;:::o;4459:732::-;4578:3;4607:54;4655:5;4607:54;:::i;:::-;4677:86;4756:6;4751:3;4677:86;:::i;:::-;4670:93;;4787:56;4837:5;4787:56;:::i;:::-;4866:7;4897:1;4882:284;4907:6;4904:1;4901:13;4882:284;;;4983:6;4977:13;5010:63;5069:3;5054:13;5010:63;:::i;:::-;5003:70;;5096:60;5149:6;5096:60;:::i;:::-;5086:70;;4942:224;4929:1;4926;4922:9;4917:14;;4882:284;;;4886:14;5182:3;5175:10;;4583:608;;;4459:732;;;;:::o;5197:109::-;5278:21;5293:5;5278:21;:::i;:::-;5273:3;5266:34;5197:109;;:::o;5312:183::-;5425:63;5482:5;5425:63;:::i;:::-;5420:3;5413:76;5312:183;;:::o;5501:147::-;5596:45;5635:5;5596:45;:::i;:::-;5591:3;5584:58;5501:147;;:::o;5654:364::-;5742:3;5770:39;5803:5;5770:39;:::i;:::-;5825:71;5889:6;5884:3;5825:71;:::i;:::-;5818:78;;5905:52;5950:6;5945:3;5938:4;5931:5;5927:16;5905:52;:::i;:::-;5982:29;6004:6;5982:29;:::i;:::-;5977:3;5973:39;5966:46;;5746:272;5654:364;;;;:::o;6024:366::-;6166:3;6187:67;6251:2;6246:3;6187:67;:::i;:::-;6180:74;;6263:93;6352:3;6263:93;:::i;:::-;6381:2;6376:3;6372:12;6365:19;;6024:366;;;:::o;6396:::-;6538:3;6559:67;6623:2;6618:3;6559:67;:::i;:::-;6552:74;;6635:93;6724:3;6635:93;:::i;:::-;6753:2;6748:3;6744:12;6737:19;;6396:366;;;:::o;6768:::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6768:366;;;:::o;7140:::-;7282:3;7303:67;7367:2;7362:3;7303:67;:::i;:::-;7296:74;;7379:93;7468:3;7379:93;:::i;:::-;7497:2;7492:3;7488:12;7481:19;;7140:366;;;:::o;7512:::-;7654:3;7675:67;7739:2;7734:3;7675:67;:::i;:::-;7668:74;;7751:93;7840:3;7751:93;:::i;:::-;7869:2;7864:3;7860:12;7853:19;;7512:366;;;:::o;7884:::-;8026:3;8047:67;8111:2;8106:3;8047:67;:::i;:::-;8040:74;;8123:93;8212:3;8123:93;:::i;:::-;8241:2;8236:3;8232:12;8225:19;;7884:366;;;:::o;8256:::-;8398:3;8419:67;8483:2;8478:3;8419:67;:::i;:::-;8412:74;;8495:93;8584:3;8495:93;:::i;:::-;8613:2;8608:3;8604:12;8597:19;;8256:366;;;:::o;8628:::-;8770:3;8791:67;8855:2;8850:3;8791:67;:::i;:::-;8784:74;;8867:93;8956:3;8867:93;:::i;:::-;8985:2;8980:3;8976:12;8969:19;;8628:366;;;:::o;9000:::-;9142:3;9163:67;9227:2;9222:3;9163:67;:::i;:::-;9156:74;;9239:93;9328:3;9239:93;:::i;:::-;9357:2;9352:3;9348:12;9341:19;;9000:366;;;:::o;9372:::-;9514:3;9535:67;9599:2;9594:3;9535:67;:::i;:::-;9528:74;;9611:93;9700:3;9611:93;:::i;:::-;9729:2;9724:3;9720:12;9713:19;;9372:366;;;:::o;9744:::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:::-;10258:3;10279:67;10343:2;10338:3;10279:67;:::i;:::-;10272:74;;10355:93;10444:3;10355:93;:::i;:::-;10473:2;10468:3;10464:12;10457:19;;10116:366;;;:::o;10488:::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:::-;11002:3;11023:67;11087:2;11082:3;11023:67;:::i;:::-;11016:74;;11099:93;11188:3;11099:93;:::i;:::-;11217:2;11212:3;11208:12;11201:19;;10860:366;;;:::o;11232:::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:::-;11746:3;11767:67;11831:2;11826:3;11767:67;:::i;:::-;11760:74;;11843:93;11932:3;11843:93;:::i;:::-;11961:2;11956:3;11952:12;11945:19;;11604:366;;;:::o;11976:::-;12118:3;12139:67;12203:2;12198:3;12139:67;:::i;:::-;12132:74;;12215:93;12304:3;12215:93;:::i;:::-;12333:2;12328:3;12324:12;12317:19;;11976:366;;;:::o;12348:118::-;12435:24;12453:5;12435:24;:::i;:::-;12430:3;12423:37;12348:118;;:::o;12472:112::-;12555:22;12571:5;12555:22;:::i;:::-;12550:3;12543:35;12472:112;;:::o;12590:222::-;12683:4;12721:2;12710:9;12706:18;12698:26;;12734:71;12802:1;12791:9;12787:17;12778:6;12734:71;:::i;:::-;12590:222;;;;:::o;12818:210::-;12905:4;12943:2;12932:9;12928:18;12920:26;;12956:65;13018:1;13007:9;13003:17;12994:6;12956:65;:::i;:::-;12818:210;;;;:::o;13034:274::-;13153:4;13191:2;13180:9;13176:18;13168:26;;13204:97;13298:1;13287:9;13283:17;13274:6;13204:97;:::i;:::-;13034:274;;;;:::o;13314:313::-;13427:4;13465:2;13454:9;13450:18;13442:26;;13514:9;13508:4;13504:20;13500:1;13489:9;13485:17;13478:47;13542:78;13615:4;13606:6;13542:78;:::i;:::-;13534:86;;13314:313;;;;:::o;13633:419::-;13799:4;13837:2;13826:9;13822:18;13814:26;;13886:9;13880:4;13876:20;13872:1;13861:9;13857:17;13850:47;13914:131;14040:4;13914:131;:::i;:::-;13906:139;;13633:419;;;:::o;14058:::-;14224:4;14262:2;14251:9;14247:18;14239:26;;14311:9;14305:4;14301:20;14297:1;14286:9;14282:17;14275:47;14339:131;14465:4;14339:131;:::i;:::-;14331:139;;14058:419;;;:::o;14483:::-;14649:4;14687:2;14676:9;14672:18;14664:26;;14736:9;14730:4;14726:20;14722:1;14711:9;14707:17;14700:47;14764:131;14890:4;14764:131;:::i;:::-;14756:139;;14483:419;;;:::o;14908:::-;15074:4;15112:2;15101:9;15097:18;15089:26;;15161:9;15155:4;15151:20;15147:1;15136:9;15132:17;15125:47;15189:131;15315:4;15189:131;:::i;:::-;15181:139;;14908:419;;;:::o;15333:::-;15499:4;15537:2;15526:9;15522:18;15514:26;;15586:9;15580:4;15576:20;15572:1;15561:9;15557:17;15550:47;15614:131;15740:4;15614:131;:::i;:::-;15606:139;;15333:419;;;:::o;15758:::-;15924:4;15962:2;15951:9;15947:18;15939:26;;16011:9;16005:4;16001:20;15997:1;15986:9;15982:17;15975:47;16039:131;16165:4;16039:131;:::i;:::-;16031:139;;15758:419;;;:::o;16183:::-;16349:4;16387:2;16376:9;16372:18;16364:26;;16436:9;16430:4;16426:20;16422:1;16411:9;16407:17;16400:47;16464:131;16590:4;16464:131;:::i;:::-;16456:139;;16183:419;;;:::o;16608:::-;16774:4;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16608:419;;;:::o;17033:::-;17199:4;17237:2;17226:9;17222:18;17214:26;;17286:9;17280:4;17276:20;17272:1;17261:9;17257:17;17250:47;17314:131;17440:4;17314:131;:::i;:::-;17306:139;;17033:419;;;:::o;17458:::-;17624:4;17662:2;17651:9;17647:18;17639:26;;17711:9;17705:4;17701:20;17697:1;17686:9;17682:17;17675:47;17739:131;17865:4;17739:131;:::i;:::-;17731:139;;17458:419;;;:::o;17883:::-;18049:4;18087:2;18076:9;18072:18;18064:26;;18136:9;18130:4;18126:20;18122:1;18111:9;18107:17;18100:47;18164:131;18290:4;18164:131;:::i;:::-;18156:139;;17883:419;;;:::o;18308:::-;18474:4;18512:2;18501:9;18497:18;18489:26;;18561:9;18555:4;18551:20;18547:1;18536:9;18532:17;18525:47;18589:131;18715:4;18589:131;:::i;:::-;18581:139;;18308:419;;;:::o;18733:::-;18899:4;18937:2;18926:9;18922:18;18914:26;;18986:9;18980:4;18976:20;18972:1;18961:9;18957:17;18950:47;19014:131;19140:4;19014:131;:::i;:::-;19006:139;;18733:419;;;:::o;19158:::-;19324:4;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19158:419;;;:::o;19583:::-;19749:4;19787:2;19776:9;19772:18;19764:26;;19836:9;19830:4;19826:20;19822:1;19811:9;19807:17;19800:47;19864:131;19990:4;19864:131;:::i;:::-;19856:139;;19583:419;;;:::o;20008:::-;20174:4;20212:2;20201:9;20197:18;20189:26;;20261:9;20255:4;20251:20;20247:1;20236:9;20232:17;20225:47;20289:131;20415:4;20289:131;:::i;:::-;20281:139;;20008:419;;;:::o;20433:::-;20599:4;20637:2;20626:9;20622:18;20614:26;;20686:9;20680:4;20676:20;20672:1;20661:9;20657:17;20650:47;20714:131;20840:4;20714:131;:::i;:::-;20706:139;;20433:419;;;:::o;20858:222::-;20951:4;20989:2;20978:9;20974:18;20966:26;;21002:71;21070:1;21059:9;21055:17;21046:6;21002:71;:::i;:::-;20858:222;;;;:::o;21086:831::-;21349:4;21387:3;21376:9;21372:19;21364:27;;21401:71;21469:1;21458:9;21454:17;21445:6;21401:71;:::i;:::-;21482:80;21558:2;21547:9;21543:18;21534:6;21482:80;:::i;:::-;21609:9;21603:4;21599:20;21594:2;21583:9;21579:18;21572:48;21637:108;21740:4;21731:6;21637:108;:::i;:::-;21629:116;;21755:72;21823:2;21812:9;21808:18;21799:6;21755:72;:::i;:::-;21837:73;21905:3;21894:9;21890:19;21881:6;21837:73;:::i;:::-;21086:831;;;;;;;;:::o;21923:214::-;22012:4;22050:2;22039:9;22035:18;22027:26;;22063:67;22127:1;22116:9;22112:17;22103:6;22063:67;:::i;:::-;21923:214;;;;:::o;22224:132::-;22291:4;22314:3;22306:11;;22344:4;22339:3;22335:14;22327:22;;22224:132;;;:::o;22362:114::-;22429:6;22463:5;22457:12;22447:22;;22362:114;;;:::o;22482:99::-;22534:6;22568:5;22562:12;22552:22;;22482:99;;;:::o;22587:113::-;22657:4;22689;22684:3;22680:14;22672:22;;22587:113;;;:::o;22706:184::-;22805:11;22839:6;22834:3;22827:19;22879:4;22874:3;22870:14;22855:29;;22706:184;;;;:::o;22896:169::-;22980:11;23014:6;23009:3;23002:19;23054:4;23049:3;23045:14;23030:29;;22896:169;;;;:::o;23071:305::-;23111:3;23130:20;23148:1;23130:20;:::i;:::-;23125:25;;23164:20;23182:1;23164:20;:::i;:::-;23159:25;;23318:1;23250:66;23246:74;23243:1;23240:81;23237:107;;;23324:18;;:::i;:::-;23237:107;23368:1;23365;23361:9;23354:16;;23071:305;;;;:::o;23382:185::-;23422:1;23439:20;23457:1;23439:20;:::i;:::-;23434:25;;23473:20;23491:1;23473:20;:::i;:::-;23468:25;;23512:1;23502:35;;23517:18;;:::i;:::-;23502:35;23559:1;23556;23552:9;23547:14;;23382:185;;;;:::o;23573:348::-;23613:7;23636:20;23654:1;23636:20;:::i;:::-;23631:25;;23670:20;23688:1;23670:20;:::i;:::-;23665:25;;23858:1;23790:66;23786:74;23783:1;23780:81;23775:1;23768:9;23761:17;23757:105;23754:131;;;23865:18;;:::i;:::-;23754:131;23913:1;23910;23906:9;23895:20;;23573:348;;;;:::o;23927:191::-;23967:4;23987:20;24005:1;23987:20;:::i;:::-;23982:25;;24021:20;24039:1;24021:20;:::i;:::-;24016:25;;24060:1;24057;24054:8;24051:34;;;24065:18;;:::i;:::-;24051:34;24110:1;24107;24103:9;24095:17;;23927:191;;;;:::o;24124:96::-;24161:7;24190:24;24208:5;24190:24;:::i;:::-;24179:35;;24124:96;;;:::o;24226:90::-;24260:7;24303:5;24296:13;24289:21;24278:32;;24226:90;;;:::o;24322:126::-;24359:7;24399:42;24392:5;24388:54;24377:65;;24322:126;;;:::o;24454:77::-;24491:7;24520:5;24509:16;;24454:77;;;:::o;24537:86::-;24572:7;24612:4;24605:5;24601:16;24590:27;;24537:86;;;:::o;24629:152::-;24705:9;24738:37;24769:5;24738:37;:::i;:::-;24725:50;;24629:152;;;:::o;24787:121::-;24845:9;24878:24;24896:5;24878:24;:::i;:::-;24865:37;;24787:121;;;:::o;24914:126::-;24964:9;24997:37;25028:5;24997:37;:::i;:::-;24984:50;;24914:126;;;:::o;25046:113::-;25096:9;25129:24;25147:5;25129:24;:::i;:::-;25116:37;;25046:113;;;:::o;25165:307::-;25233:1;25243:113;25257:6;25254:1;25251:13;25243:113;;;25342:1;25337:3;25333:11;25327:18;25323:1;25318:3;25314:11;25307:39;25279:2;25276:1;25272:10;25267:15;;25243:113;;;25374:6;25371:1;25368:13;25365:101;;;25454:1;25445:6;25440:3;25436:16;25429:27;25365:101;25214:258;25165:307;;;:::o;25478:180::-;25526:77;25523:1;25516:88;25623:4;25620:1;25613:15;25647:4;25644:1;25637:15;25664:180;25712:77;25709:1;25702:88;25809:4;25806:1;25799:15;25833:4;25830:1;25823:15;25850:180;25898:77;25895:1;25888:88;25995:4;25992:1;25985:15;26019:4;26016:1;26009:15;26036:180;26084:77;26081:1;26074:88;26181:4;26178:1;26171:15;26205:4;26202:1;26195:15;26345:117;26454:1;26451;26444:12;26468:102;26509:6;26560:2;26556:7;26551:2;26544:5;26540:14;26536:28;26526:38;;26468:102;;;:::o;26576:222::-;26716:34;26712:1;26704:6;26700:14;26693:58;26785:5;26780:2;26772:6;26768:15;26761:30;26576:222;:::o;26804:174::-;26944:26;26940:1;26932:6;26928:14;26921:50;26804:174;:::o;26984:229::-;27124:34;27120:1;27112:6;27108:14;27101:58;27193:12;27188:2;27180:6;27176:15;27169:37;26984:229;:::o;27219:178::-;27359:30;27355:1;27347:6;27343:14;27336:54;27219:178;:::o;27403:225::-;27543:34;27539:1;27531:6;27527:14;27520:58;27612:8;27607:2;27599:6;27595:15;27588:33;27403:225;:::o;27634:221::-;27774:34;27770:1;27762:6;27758:14;27751:58;27843:4;27838:2;27830:6;27826:15;27819:29;27634:221;:::o;27861:165::-;28001:17;27997:1;27989:6;27985:14;27978:41;27861:165;:::o;28032:177::-;28172:29;28168:1;28160:6;28156:14;28149:53;28032:177;:::o;28215:239::-;28355:34;28351:1;28343:6;28339:14;28332:58;28424:22;28419:2;28411:6;28407:15;28400:47;28215:239;:::o;28460:220::-;28600:34;28596:1;28588:6;28584:14;28577:58;28669:3;28664:2;28656:6;28652:15;28645:28;28460:220;:::o;28686:182::-;28826:34;28822:1;28814:6;28810:14;28803:58;28686:182;:::o;28874:228::-;29014:34;29010:1;29002:6;28998:14;28991:58;29083:11;29078:2;29070:6;29066:15;29059:36;28874:228;:::o;29108:224::-;29248:34;29244:1;29236:6;29232:14;29225:58;29317:7;29312:2;29304:6;29300:15;29293:32;29108:224;:::o;29338:222::-;29478:34;29474:1;29466:6;29462:14;29455:58;29547:5;29542:2;29534:6;29530:15;29523:30;29338:222;:::o;29566:163::-;29706:15;29702:1;29694:6;29690:14;29683:39;29566:163;:::o;29735:223::-;29875:34;29871:1;29863:6;29859:14;29852:58;29944:6;29939:2;29931:6;29927:15;29920:31;29735:223;:::o;29964:162::-;30104:14;30100:1;30092:6;30088:14;30081:38;29964:162;:::o;30132:122::-;30205:24;30223:5;30205:24;:::i;:::-;30198:5;30195:35;30185:63;;30244:1;30241;30234:12;30185:63;30132:122;:::o;30260:116::-;30330:21;30345:5;30330:21;:::i;:::-;30323:5;30320:32;30310:60;;30366:1;30363;30356:12;30310:60;30260:116;:::o;30382:122::-;30455:24;30473:5;30455:24;:::i;:::-;30448:5;30445:35;30435:63;;30494:1;30491;30484:12;30435:63;30382:122;:::o

Swarm Source

ipfs://f2c15b1a8f2b85c1f818928fbf7d8c2b290fdc60dc263e7b6c5bbc8343337a67

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.