ETH Price: $2,407.63 (-3.00%)
 

Overview

ETH Balance

0.001991366572473931 ETH

Eth Value

$4.79 (@ $2,407.63/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer205734422024-08-21 0:34:2376 days ago1724200463IN
0xf65B1DAa...E31828C95
0 ETH0.000874562.69992666
Approve202774092024-07-10 16:51:35117 days ago1720630295IN
0xf65B1DAa...E31828C95
0 ETH0.000454959.66888499
Approve201623692024-06-24 15:14:47133 days ago1719242087IN
0xf65B1DAa...E31828C95
0 ETH0.000430929.14669016
Transfer200937992024-06-15 1:02:47143 days ago1718413367IN
0xf65B1DAa...E31828C95
0 ETH0.000349323.38142625
Transfer199802692024-05-30 4:26:59158 days ago1717043219IN
0xf65B1DAa...E31828C95
0 ETH0.000314076.1080927
Clear Stuck Toke...199802672024-05-30 4:26:35158 days ago1717043195IN
0xf65B1DAa...E31828C95
0 ETH0.000561696.38509469
Approve199802332024-05-30 4:19:47158 days ago1717042787IN
0xf65B1DAa...E31828C95
0 ETH0.000439039.33073012
Approve199802272024-05-30 4:18:23158 days ago1717042703IN
0xf65B1DAa...E31828C95
0 ETH0.000403448.57427328
Approve199802272024-05-30 4:18:23158 days ago1717042703IN
0xf65B1DAa...E31828C95
0 ETH0.000403448.57427328
Approve199802192024-05-30 4:16:47158 days ago1717042607IN
0xf65B1DAa...E31828C95
0 ETH0.000403398.57318246
Approve199802092024-05-30 4:14:47158 days ago1717042487IN
0xf65B1DAa...E31828C95
0 ETH0.000437159.29067925
Approve199802002024-05-30 4:12:59158 days ago1717042379IN
0xf65B1DAa...E31828C95
0 ETH0.000440039.35199391
Approve199479852024-05-25 16:08:35163 days ago1716653315IN
0xf65B1DAa...E31828C95
0 ETH0.00038798.24404189
Approve199279742024-05-22 21:02:11166 days ago1716411731IN
0xf65B1DAa...E31828C95
0 ETH0.0007585416.12097067
Approve199166842024-05-21 7:06:23167 days ago1716275183IN
0xf65B1DAa...E31828C95
0 ETH0.0006322713.42030779
Transfer199166772024-05-21 7:04:59167 days ago1716275099IN
0xf65B1DAa...E31828C95
0 ETH0.0011023512.78739494
Approve199069742024-05-19 22:30:23169 days ago1716157823IN
0xf65B1DAa...E31828C95
0 ETH0.0001453.08172478
Approve199060682024-05-19 19:28:11169 days ago1716146891IN
0xf65B1DAa...E31828C95
0 ETH0.000159333.38199458
Approve198932562024-05-18 0:27:11171 days ago1715992031IN
0xf65B1DAa...E31828C95
0 ETH0.000159173.39927637
Transfer198919372024-05-17 20:01:35171 days ago1715976095IN
0xf65B1DAa...E31828C95
0 ETH0.000308874.50783975
Clear Stuck Toke...198919312024-05-17 20:00:23171 days ago1715976023IN
0xf65B1DAa...E31828C95
0 ETH0.000317943.61431876
Transfer198915442024-05-17 18:42:11171 days ago1715971331IN
0xf65B1DAa...E31828C95
0 ETH0.000504446.18775071
Approve198911982024-05-17 17:31:59171 days ago1715967119IN
0xf65B1DAa...E31828C95
0 ETH0.000137335.10524958
Approve198911792024-05-17 17:28:11171 days ago1715966891IN
0xf65B1DAa...E31828C95
0 ETH0.000153535.69472872
Approve198911722024-05-17 17:26:47171 days ago1715966807IN
0xf65B1DAa...E31828C95
0 ETH0.000151065.60300337
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205734422024-08-21 0:34:2376 days ago1724200463
0xf65B1DAa...E31828C95
0.00094068 ETH
205734422024-08-21 0:34:2376 days ago1724200463
0xf65B1DAa...E31828C95
0.00105067 ETH
205734422024-08-21 0:34:2376 days ago1724200463
0xf65B1DAa...E31828C95
0.00210135 ETH
205734422024-08-21 0:34:2376 days ago1724200463
0xf65B1DAa...E31828C95
0.00630406 ETH
205734422024-08-21 0:34:2376 days ago1724200463
0xf65B1DAa...E31828C95
0.01050678 ETH
198626342024-05-13 17:37:23175 days ago1715621843
0xf65B1DAa...E31828C95
0.04065909 ETH
198509372024-05-12 2:22:47177 days ago1715480567
0xf65B1DAa...E31828C95
0.04065909 ETH
198509372024-05-12 2:22:47177 days ago1715480567
0xf65B1DAa...E31828C95
0.12197728 ETH
198509372024-05-12 2:22:47177 days ago1715480567
0xf65B1DAa...E31828C95
0.20329547 ETH
176675652023-07-11 3:00:47482 days ago1689044447
0xf65B1DAa...E31828C95
0.04683815 ETH
176646572023-07-10 17:11:23483 days ago1689009083
0xf65B1DAa...E31828C95
0.04683815 ETH
176646572023-07-10 17:11:23483 days ago1689009083
0xf65B1DAa...E31828C95
0.14051445 ETH
176646572023-07-10 17:11:23483 days ago1689009083
0xf65B1DAa...E31828C95
0.23419075 ETH
176642552023-07-10 15:49:47483 days ago1689004187
0xf65B1DAa...E31828C95
0.35263278 ETH
176527972023-07-09 1:08:35485 days ago1688864915
0xf65B1DAa...E31828C95
0.05271111 ETH
176527972023-07-09 1:08:35485 days ago1688864915
0xf65B1DAa...E31828C95
0.15813333 ETH
176527972023-07-09 1:08:35485 days ago1688864915
0xf65B1DAa...E31828C95
0.26355556 ETH
176527822023-07-09 1:05:35485 days ago1688864735
0xf65B1DAa...E31828C95
0.06439043 ETH
176527822023-07-09 1:05:35485 days ago1688864735
0xf65B1DAa...E31828C95
0.19317131 ETH
176527822023-07-09 1:05:35485 days ago1688864735
0xf65B1DAa...E31828C95
0.32195219 ETH
176527562023-07-09 0:59:59485 days ago1688864399
0xf65B1DAa...E31828C95
0.09384869 ETH
176527562023-07-09 0:59:59485 days ago1688864399
0xf65B1DAa...E31828C95
0.28154608 ETH
176527562023-07-09 0:59:59485 days ago1688864399
0xf65B1DAa...E31828C95
0.46924347 ETH
176527492023-07-09 0:58:35485 days ago1688864315
0xf65B1DAa...E31828C95
0.14168253 ETH
176527492023-07-09 0:58:35485 days ago1688864315
0xf65B1DAa...E31828C95
0.4250476 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UGLYMUCK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-09
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.20;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}



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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}


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

contract UGLYMUCK is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "UGLY MUCK COIN";
    string constant _symbol = "UGLY MUCK";
    uint8 constant _decimals = 18; 


    event AutoLiquify(uint256 amountETH, uint256 amountTokens);
    event EditTax(uint8 Buy, uint8 Sell, uint8 Transfer);
    event user_exemptfromfees(address Wallet, bool Exempt);
    event user_TxExempt(address Wallet, bool Exempt);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event set_Receivers(address marketingFeeReceiver, address buybackFeeReceiver,address burnFeeReceiver,address devFeeReceiver);
    event set_MaxWallet(uint256 maxWallet);
    event set_MaxTX(uint256 maxTX);
    event set_SwapBack(uint256 Amount, bool Enabled);
  
    uint256 _totalSupply =  420690000000000 * 10**_decimals; 

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isexemptfromfees;
    mapping (address => bool) isexemptfrommaxTX;
    mapping(address => bool) public blacklists;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private buybackFeeReceiver;
    address private burnFeeReceiver;

    uint256 setRatio = 30;
    uint256 setRatioDenominator = 100;
    

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

   
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 70 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isexemptfromfees[msg.sender] = true;            
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xcF1906568c87950A8323814d488d4B6d72eC5Dff;
        devFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

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

    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

        function maxWalletRule(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
        emit set_MaxWallet(_maxWalletToken);
                
    }

      function removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }

      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
          }
        require(!blacklists[sender] && !blacklists[recipient], "Blacklisted");
        
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isexemptfrommaxTX[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        checkTxLimit(sender, amount);  

        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isexemptfromfees[sender] || isexemptfromfees[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isexemptfrommaxTX[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isexemptfromfees[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;
        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

  
     function manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);
            
    }

   function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setStructure(uint256 _percentonbuy, uint256 _percentonsell, uint256 _wallettransfer) external onlyOwner {
        sellpercent = _percentonsell;
        buypercent = _percentonbuy;
        transferpercent = _wallettransfer;    
          
    }
       
    function startTrading() public onlyOwner {
        TradingOpen = true;
        buypercent = 2000;
        sellpercent = 2000;
        transferpercent = 1000;
                              
    }

      function reduceFee() public onlyOwner {
       
        buypercent = 200;
        sellpercent = 200;
        transferpercent = 500;
                              
    }

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHbuyback}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
  
    function set_fees() internal {
      
        emit EditTax( uint8(totalFee.mul(buypercent).div(100)),
            uint8(totalFee.mul(sellpercent).div(100)),
            uint8(totalFee.mul(transferpercent).div(100))
            );
    }
    
    function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
        set_fees();
    }

   
    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit set_Receivers(marketingFeeReceiver, buybackFeeReceiver, burnFeeReceiver, devFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit set_SwapBack(swapThreshold, swapEnabled);
    }

    function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) {
        return showBacking(accuracy) > ratio;
    }

    function showBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply());
    }
    
    function showSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }


}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"EditTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTX","type":"uint256"}],"name":"set_MaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"set_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"buybackFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"burnFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"devFeeReceiver","type":"address"}],"name":"set_Receivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"set_SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_TxExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Exempt","type":"bool"}],"name":"user_exemptfromfees","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"},{"internalType":"uint256","name":"_wallettransfer","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000cff565b66017e9d8602b40062000028919062000d4f565b60035562000058606462000049600160035462000a2f60201b90919060201c565b62000aaf60201b90919060201c565b60045562000088606462000079600160035462000a2f60201b90919060201c565b62000aaf60201b90919060201c565b6005556001600b556003600c555f600d556001600e555f600f55600f54600d54600b54600c54600e54620000bd919062000d99565b620000c9919062000d99565b620000d5919062000d99565b620000e1919062000d99565b6010556064601155606460125560646013556064601455601e601a556064601b555f601e60146101000a81548160ff0219169083151502179055506001601e60156101000a81548160ff0219169083151502179055506103e860466003546200014b919062000d4f565b62000157919062000e00565b601f5534801562000166575f80fd5b505f6200017862000b0060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036d919062000e9c565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000417573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043d919062000e9c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049a92919062000edd565b6020604051808303815f875af1158015620004b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004dd919062000e9c565b601e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cf1906568c87950a8323814d488d4b6d72ec5dff60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a21919062000f19565b60405180910390a36200107e565b5f80830362000a41575f905062000aa9565b5f828462000a50919062000d4f565b905082848262000a61919062000e00565b1462000aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a9b9062000fb8565b60405180910390fd5b809150505b92915050565b5f62000af883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b0760201b60201c565b905092915050565b5f33905090565b5f808311829062000b50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b4791906200105c565b60405180910390fd5b505f838562000b60919062000e00565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bf75780860481111562000bcf5762000bce62000b6d565b5b600185161562000bdf5780820291505b808102905062000bef8562000b9a565b945062000baf565b94509492505050565b5f8262000c11576001905062000ce3565b8162000c20575f905062000ce3565b816001811462000c39576002811462000c445762000c7a565b600191505062000ce3565b60ff84111562000c595762000c5862000b6d565b5b8360020a91508482111562000c735762000c7262000b6d565b5b5062000ce3565b5060208310610133831016604e8410600b841016171562000cb45782820a90508381111562000cae5762000cad62000b6d565b5b62000ce3565b62000cc3848484600162000ba6565b9250905081840481111562000cdd5762000cdc62000b6d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d0b8262000cea565b915062000d188362000cf3565b925062000d477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c00565b905092915050565b5f62000d5b8262000cea565b915062000d688362000cea565b925082820262000d788162000cea565b9150828204841483151762000d925762000d9162000b6d565b5b5092915050565b5f62000da58262000cea565b915062000db28362000cea565b925082820190508082111562000dcd5762000dcc62000b6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e0c8262000cea565b915062000e198362000cea565b92508262000e2c5762000e2b62000dd3565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e668262000e3b565b9050919050565b62000e788162000e5a565b811462000e83575f80fd5b50565b5f8151905062000e968162000e6d565b92915050565b5f6020828403121562000eb45762000eb362000e37565b5b5f62000ec38482850162000e86565b91505092915050565b62000ed78162000e5a565b82525050565b5f60408201905062000ef25f83018562000ecc565b62000f01602083018462000ecc565b9392505050565b62000f138162000cea565b82525050565b5f60208201905062000f2e5f83018462000f08565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000fa060218362000f34565b915062000fad8262000f44565b604082019050919050565b5f6020820190508181035f83015262000fd18162000f92565b9050919050565b5f81519050919050565b5f5b838110156200100157808201518184015260208101905062000fe4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010288262000fd8565b62001034818562000f34565b93506200104681856020860162000fe2565b62001051816200100c565b840191505092915050565b5f6020820190508181035f8301526200107681846200101c565b905092915050565b6143aa806200108c5f395ff3fe608060405260043610610228575f3560e01c8063751039fc11610122578063a8aa1b31116100aa578063ded1e4381161006e578063ded1e438146107e5578063df20fd4914610821578063f2fde38b14610849578063f429389014610871578063f887ea40146108875761022f565b8063a8aa1b31146106f1578063a9059cbb1461071b578063b2bdfa7b14610757578063c0cbdea414610781578063dd62ed3e146107a95761022f565b806382528791116100f15780638252879114610635578063893d20e81461065d5780638da5cb5b1461068757806395d89b41146106b1578063a70419d2146106db5761022f565b8063751039fc1461058f57806377b54bad146105a557806378109e54146105e15780637d1db4a51461060b5761022f565b8063293230b8116101b0578063571ac8b011610174578063571ac8b0146104af5780635d83e1d5146104eb5780636ddd17131461051357806370a082311461053d578063715018a6146105795761022f565b8063293230b8146103e157806330c9a6a0146103f7578063313ce56714610433578063404e51291461045d57806355265669146104855761022f565b806316c02129116101f757806316c02129146102ed57806318160ddd146103295780631df4ccfc1461035357806323b872dd1461037d578063282c8749146103b95761022f565b80630445b6671461023357806306fdde031461025d57806308fd3d0514610287578063095ea7b3146102b15761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b506102476108b1565b6040516102549190613488565b60405180910390f35b348015610268575f80fd5b506102716108b7565b60405161027e919061352b565b60405180910390f35b348015610292575f80fd5b5061029b6108f4565b6040516102a89190613565565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d29190613606565b610907565b6040516102e49190613565565b60405180910390f35b3480156102f8575f80fd5b50610313600480360381019061030e9190613644565b6109f4565b6040516103209190613565565b60405180910390f35b348015610334575f80fd5b5061033d610a11565b60405161034a9190613488565b60405180910390f35b34801561035e575f80fd5b50610367610a1a565b6040516103749190613488565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e919061366f565b610a20565b6040516103b09190613565565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da91906136bf565b610c13565b005b3480156103ec575f80fd5b506103f5610d82565b005b348015610402575f80fd5b5061041d60048036038101906104189190613748565b610e4e565b60405161042a9190613488565b60405180910390f35b34801561043e575f80fd5b50610447610ebe565b604051610454919061378e565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e91906137d1565b610ec6565b005b348015610490575f80fd5b50610499610fb2565b6040516104a69190613488565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190613644565b610ff1565b6040516104e29190613565565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c9190613748565b611023565b005b34801561051e575f80fd5b50610527611121565b6040516105349190613565565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190613644565b611134565b6040516105709190613488565b60405180910390f35b348015610584575f80fd5b5061058d61117a565b005b34801561059a575f80fd5b506105a36112c8565b005b3480156105b0575f80fd5b506105cb60048036038101906105c69190613606565b611370565b6040516105d89190613565565b60405180910390f35b3480156105ec575f80fd5b506105f56114d0565b6040516106029190613488565b60405180910390f35b348015610616575f80fd5b5061061f6114d6565b60405161062c9190613488565b60405180910390f35b348015610640575f80fd5b5061065b6004803603810190610656919061380f565b6114dc565b005b348015610668575f80fd5b50610671611778565b60405161067e9190613895565b60405180910390f35b348015610692575f80fd5b5061069b611786565b6040516106a89190613895565b60405180910390f35b3480156106bc575f80fd5b506106c56117ad565b6040516106d2919061352b565b60405180910390f35b3480156106e6575f80fd5b506106ef6117ea565b005b3480156106fc575f80fd5b50610705611899565b6040516107129190613895565b60405180910390f35b348015610726575f80fd5b50610741600480360381019061073c9190613606565b6118be565b60405161074e9190613565565b60405180910390f35b348015610762575f80fd5b5061076b6118d2565b6040516107789190613895565b60405180910390f35b34801561078c575f80fd5b506107a760048036038101906107a291906138ae565b6118f5565b005b3480156107b4575f80fd5b506107cf60048036038101906107ca91906138fe565b6119a3565b6040516107dc9190613488565b60405180910390f35b3480156107f0575f80fd5b5061080b6004803603810190610806919061393c565b611a25565b6040516108189190613565565b60405180910390f35b34801561082c575f80fd5b506108476004803603810190610842919061397a565b611a39565b005b348015610854575f80fd5b5061086f600480360381019061086a9190613644565b611b3c565b005b34801561087c575f80fd5b50610885611cf9565b005b348015610892575f80fd5b5061089b611d60565b6040516108a89190613a13565b60405180910390f35b601f5481565b60606040518060400160405280600e81526020017f55474c59204d55434b20434f494e000000000000000000000000000000000000815250905090565b601e60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e29190613488565b60405180910390a36001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60105481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610bff57610b82826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d859092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610c0a848484611de7565b90509392505050565b610c1b6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90613a76565b60405180910390fd5b85600b8190555084600e8190555083600c8190555082600d8190555081600f81905550610d1382610d0585610cf788610ce98b8d61250290919063ffffffff16565b61250290919063ffffffff16565b61250290919063ffffffff16565b61250290919063ffffffff16565b601081905550806011819055506002601154610d2f9190613aee565b60105410610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990613b68565b60405180910390fd5b610d7a61255f565b505050505050565b610d8a6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90613a76565b60405180910390fd5b6001601e60146101000a81548160ff0219169083151502179055506107d06013819055506107d06012819055506103e8601481905550565b5f610eb7610e5a610fb2565b610ea9610e9a6002610e8c601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611134565b61261790919063ffffffff16565b8561261790919063ffffffff16565b61268e90919063ffffffff16565b9050919050565b5f6012905090565b610ece6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a76565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610fec610fbf5f611134565b610fde610fcd61dead611134565b6003546126d790919063ffffffff16565b6126d790919063ffffffff16565b905090565b5f61101c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610907565b9050919050565b61102b6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613a76565b60405180910390fd5b60018110156110c4575f80fd5b6103e8816003546110d59190613b86565b6110df9190613aee565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be516005546040516111169190613488565b60405180910390a150565b601e60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111826124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590613a76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6112d06124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135390613a76565b60405180910390fd5b600354600481905550600354600581905550565b5f8082036113f3578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113b19190613895565b602060405180830381865afa1580156113cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f09190613bdb565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051611424929190613c06565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611488929190613c06565b6020604051808303815f875af11580156114a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c89190613c41565b905092915050565b60055481565b60045481565b6114e46124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790613a76565b60405180910390fd5b8460155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117699493929190613c6c565b60405180910390a15050505050565b5f611781611786565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f55474c59204d55434b0000000000000000000000000000000000000000000000815250905090565b6117f26124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613a76565b60405180910390fd5b60c860138190555060c86012819055506101f4601481905550565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118ca338484611de7565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118fd6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613a76565b60405180910390fd5b816012819055508260138190555080601481905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f82611a3083610e4e565b11905092915050565b611a416124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac490613a76565b60405180910390fd5b81601e60156101000a81548160ff02191690831515021790555080601f819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601f54601e60159054906101000a900460ff16604051611b30929190613caf565b60405180910390a15050565b611b446124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613a76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590613d46565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611d5d573d5f803e3d5ffd5b50565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc3919061352b565b60405180910390fd5b505f8385611dda9190613d64565b9050809150509392505050565b5f60205f9054906101000a900460ff1615611e0e57611e07848484612720565b90506124f4565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eac575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f0157601e60149054906101000a900460ff16611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef790613de1565b60405180910390fd5b5b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f9f5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd590613e49565b60405180910390fd5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561206157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561209b575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120f45750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561214d575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121a6575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121f9575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561225c575f61220884611134565b905060055483826122199190613e67565b111561225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225190613f0a565b60405180910390fd5b505b61226684836128ea565b61226e612984565b1561227c5761227b612a56565b5b612303826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d859092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123e0575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123f4576123ef858486613051565b6123f6565b825b90506124488160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e69190613488565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846125109190613e67565b905083811015612555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254c90613f72565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006125aa606461259c60135460105461261790919063ffffffff16565b61268e90919063ffffffff16565b6125d460646125c660125460105461261790919063ffffffff16565b61268e90919063ffffffff16565b6125fe60646125f060145460105461261790919063ffffffff16565b61268e90919063ffffffff16565b60405161260d93929190613f90565b60405180910390a1565b5f808303612627575f9050612688565b5f82846126349190613b86565b90508284826126439190613aee565b14612683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267a90614035565b60405180910390fd5b809150505b92915050565b5f6126cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061340f565b905092915050565b5f61271883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d85565b905092915050565b5f6127a8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d859092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128398260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128d79190613488565b60405180910390a3600190509392505050565b60045481111580612941575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129779061409d565b60405180910390fd5b5050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129ee575060205f9054906101000a900460ff16155b8015612a065750601e60159054906101000a900460ff165b8015612a515750601f5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160205f6101000a81548160ff0219169083151502179055505f612a7f601a54601b54611a25565b612a8b57600b54612a8d565b5f5b90505f612acc6002612abe601054612ab086601f5461261790919063ffffffff16565b61268e90919063ffffffff16565b61268e90919063ffffffff16565b90505f612ae482601f546126d790919063ffffffff16565b90505f600267ffffffffffffffff811115612b0257612b016140bb565b5b604051908082528060200260200182016040528015612b305781602001602082028036833780820191505090505b50905030815f81518110612b4757612b466140e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612bb757612bb66140e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612c57959493929190614205565b5f604051808303815f87803b158015612c6e575f80fd5b505af1158015612c80573d5f803e3d5ffd5b505050505f612c9882476126d790919063ffffffff16565b90505f612cc3612cb260028961268e90919063ffffffff16565b6010546126d790919063ffffffff16565b90505f612cfe6002612cf084612ce28c8861261790919063ffffffff16565b61268e90919063ffffffff16565b61268e90919063ffffffff16565b90505f612d2883612d1a600c548761261790919063ffffffff16565b61268e90919063ffffffff16565b90505f612d5284612d44600e548861261790919063ffffffff16565b61268e90919063ffffffff16565b90505f612d7c85612d6e600d548961261790919063ffffffff16565b61268e90919063ffffffff16565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612dc49061428a565b5f6040518083038185875af1925050503d805f8114612dfe576040519150601f19603f3d011682016040523d82523d5f602084013e612e03565b606091505b5050905060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612e4c9061428a565b5f6040518083038185875af1925050503d805f8114612e86576040519150601f19603f3d011682016040523d82523d5f602084013e612e8b565b606091505b50508091505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ed69061428a565b5f6040518083038185875af1925050503d805f8114612f10576040519150601f19603f3d011682016040523d82523d5f602084013e612f15565b606091505b5050809150505f90505f8b111561302a57601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fac9695949392919061429e565b60606040518083038185885af1158015612fc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612fed91906142fd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c60405161302192919061434d565b60405180910390a15b5050505050505050505050505f60205f6101000a81548160ff021916908315150217905550565b5f806014549050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b6576012549050613111565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131105760135490505b5b5f61315960646011546131249190613b86565b61314b8461313d6010548a61261790919063ffffffff16565b61261790919063ffffffff16565b61268e90919063ffffffff16565b90505f613185601054613177600f548561261790919063ffffffff16565b61268e90919063ffffffff16565b90505f61319b82846126d790919063ffffffff16565b90506131ed8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061329f8260065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161335e9190613488565b60405180910390a35f8211156133ef57613383826003546126d790919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133e69190613488565b60405180910390a35b61340283886126d790919063ffffffff16565b9450505050509392505050565b5f8083118290613455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161344c919061352b565b60405180910390fd5b505f83856134639190613aee565b9050809150509392505050565b5f819050919050565b61348281613470565b82525050565b5f60208201905061349b5f830184613479565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134d85780820151818401526020810190506134bd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134fd826134a1565b61350781856134ab565b93506135178185602086016134bb565b613520816134e3565b840191505092915050565b5f6020820190508181035f83015261354381846134f3565b905092915050565b5f8115159050919050565b61355f8161354b565b82525050565b5f6020820190506135785f830184613556565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135ab82613582565b9050919050565b6135bb816135a1565b81146135c5575f80fd5b50565b5f813590506135d6816135b2565b92915050565b6135e581613470565b81146135ef575f80fd5b50565b5f81359050613600816135dc565b92915050565b5f806040838503121561361c5761361b61357e565b5b5f613629858286016135c8565b925050602061363a858286016135f2565b9150509250929050565b5f602082840312156136595761365861357e565b5b5f613666848285016135c8565b91505092915050565b5f805f606084860312156136865761368561357e565b5b5f613693868287016135c8565b93505060206136a4868287016135c8565b92505060406136b5868287016135f2565b9150509250925092565b5f805f805f8060c087890312156136d9576136d861357e565b5b5f6136e689828a016135f2565b96505060206136f789828a016135f2565b955050604061370889828a016135f2565b945050606061371989828a016135f2565b935050608061372a89828a016135f2565b92505060a061373b89828a016135f2565b9150509295509295509295565b5f6020828403121561375d5761375c61357e565b5b5f61376a848285016135f2565b91505092915050565b5f60ff82169050919050565b61378881613773565b82525050565b5f6020820190506137a15f83018461377f565b92915050565b6137b08161354b565b81146137ba575f80fd5b50565b5f813590506137cb816137a7565b92915050565b5f80604083850312156137e7576137e661357e565b5b5f6137f4858286016135c8565b9250506020613805858286016137bd565b9150509250929050565b5f805f805f60a086880312156138285761382761357e565b5b5f613835888289016135c8565b9550506020613846888289016135c8565b9450506040613857888289016135c8565b9350506060613868888289016135c8565b9250506080613879888289016135c8565b9150509295509295909350565b61388f816135a1565b82525050565b5f6020820190506138a85f830184613886565b92915050565b5f805f606084860312156138c5576138c461357e565b5b5f6138d2868287016135f2565b93505060206138e3868287016135f2565b92505060406138f4868287016135f2565b9150509250925092565b5f80604083850312156139145761391361357e565b5b5f613921858286016135c8565b9250506020613932858286016135c8565b9150509250929050565b5f80604083850312156139525761395161357e565b5b5f61395f858286016135f2565b9250506020613970858286016135f2565b9150509250929050565b5f80604083850312156139905761398f61357e565b5b5f61399d858286016137bd565b92505060206139ae858286016135f2565b9150509250929050565b5f819050919050565b5f6139db6139d66139d184613582565b6139b8565b613582565b9050919050565b5f6139ec826139c1565b9050919050565b5f6139fd826139e2565b9050919050565b613a0d816139f3565b82525050565b5f602082019050613a265f830184613a04565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a606020836134ab565b9150613a6b82613a2c565b602082019050919050565b5f6020820190508181035f830152613a8d81613a54565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613af882613470565b9150613b0383613470565b925082613b1357613b12613a94565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f613b52601d836134ab565b9150613b5d82613b1e565b602082019050919050565b5f6020820190508181035f830152613b7f81613b46565b9050919050565b5f613b9082613470565b9150613b9b83613470565b9250828202613ba981613470565b91508282048414831517613bc057613bbf613ac1565b5b5092915050565b5f81519050613bd5816135dc565b92915050565b5f60208284031215613bf057613bef61357e565b5b5f613bfd84828501613bc7565b91505092915050565b5f604082019050613c195f830185613886565b613c266020830184613479565b9392505050565b5f81519050613c3b816137a7565b92915050565b5f60208284031215613c5657613c5561357e565b5b5f613c6384828501613c2d565b91505092915050565b5f608082019050613c7f5f830187613886565b613c8c6020830186613886565b613c996040830185613886565b613ca66060830184613886565b95945050505050565b5f604082019050613cc25f830185613479565b613ccf6020830184613556565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d306026836134ab565b9150613d3b82613cd6565b604082019050919050565b5f6020820190508181035f830152613d5d81613d24565b9050919050565b5f613d6e82613470565b9150613d7983613470565b9250828203905081811115613d9157613d90613ac1565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613dcb6014836134ab565b9150613dd682613d97565b602082019050919050565b5f6020820190508181035f830152613df881613dbf565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613e33600b836134ab565b9150613e3e82613dff565b602082019050919050565b5f6020820190508181035f830152613e6081613e27565b9050919050565b5f613e7182613470565b9150613e7c83613470565b9250828201905080821115613e9457613e93613ac1565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613ef4603e836134ab565b9150613eff82613e9a565b604082019050919050565b5f6020820190508181035f830152613f2181613ee8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f5c601b836134ab565b9150613f6782613f28565b602082019050919050565b5f6020820190508181035f830152613f8981613f50565b9050919050565b5f606082019050613fa35f83018661377f565b613fb0602083018561377f565b613fbd604083018461377f565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61401f6021836134ab565b915061402a82613fc5565b604082019050919050565b5f6020820190508181035f83015261404c81614013565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f6140876011836134ab565b915061409282614053565b602082019050919050565b5f6020820190508181035f8301526140b48161407b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61413861413361412e84614115565b6139b8565b613470565b9050919050565b6141488161411e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614180816135a1565b82525050565b5f6141918383614177565b60208301905092915050565b5f602082019050919050565b5f6141b38261414e565b6141bd8185614158565b93506141c883614168565b805f5b838110156141f85781516141df8882614186565b97506141ea8361419d565b9250506001810190506141cb565b5085935050505092915050565b5f60a0820190506142185f830188613479565b614225602083018761413f565b818103604083015261423781866141a9565b90506142466060830185613886565b6142536080830184613479565b9695505050505050565b5f81905092915050565b50565b5f6142755f8361425d565b915061428082614267565b5f82019050919050565b5f6142948261426a565b9150819050919050565b5f60c0820190506142b15f830189613886565b6142be6020830188613479565b6142cb604083018761413f565b6142d8606083018661413f565b6142e56080830185613886565b6142f260a0830184613479565b979650505050505050565b5f805f606084860312156143145761431361357e565b5b5f61432186828701613bc7565b935050602061433286828701613bc7565b925050604061434386828701613bc7565b9150509250925092565b5f6040820190506143605f830185613479565b61436d6020830184613479565b939250505056fea2646970667358221220646c32a36979de8887e2713d99e3e71c91941757e92969a372a63cd8d0c1090864736f6c63430008140033

Deployed Bytecode

0x608060405260043610610228575f3560e01c8063751039fc11610122578063a8aa1b31116100aa578063ded1e4381161006e578063ded1e438146107e5578063df20fd4914610821578063f2fde38b14610849578063f429389014610871578063f887ea40146108875761022f565b8063a8aa1b31146106f1578063a9059cbb1461071b578063b2bdfa7b14610757578063c0cbdea414610781578063dd62ed3e146107a95761022f565b806382528791116100f15780638252879114610635578063893d20e81461065d5780638da5cb5b1461068757806395d89b41146106b1578063a70419d2146106db5761022f565b8063751039fc1461058f57806377b54bad146105a557806378109e54146105e15780637d1db4a51461060b5761022f565b8063293230b8116101b0578063571ac8b011610174578063571ac8b0146104af5780635d83e1d5146104eb5780636ddd17131461051357806370a082311461053d578063715018a6146105795761022f565b8063293230b8146103e157806330c9a6a0146103f7578063313ce56714610433578063404e51291461045d57806355265669146104855761022f565b806316c02129116101f757806316c02129146102ed57806318160ddd146103295780631df4ccfc1461035357806323b872dd1461037d578063282c8749146103b95761022f565b80630445b6671461023357806306fdde031461025d57806308fd3d0514610287578063095ea7b3146102b15761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b506102476108b1565b6040516102549190613488565b60405180910390f35b348015610268575f80fd5b506102716108b7565b60405161027e919061352b565b60405180910390f35b348015610292575f80fd5b5061029b6108f4565b6040516102a89190613565565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d29190613606565b610907565b6040516102e49190613565565b60405180910390f35b3480156102f8575f80fd5b50610313600480360381019061030e9190613644565b6109f4565b6040516103209190613565565b60405180910390f35b348015610334575f80fd5b5061033d610a11565b60405161034a9190613488565b60405180910390f35b34801561035e575f80fd5b50610367610a1a565b6040516103749190613488565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e919061366f565b610a20565b6040516103b09190613565565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da91906136bf565b610c13565b005b3480156103ec575f80fd5b506103f5610d82565b005b348015610402575f80fd5b5061041d60048036038101906104189190613748565b610e4e565b60405161042a9190613488565b60405180910390f35b34801561043e575f80fd5b50610447610ebe565b604051610454919061378e565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e91906137d1565b610ec6565b005b348015610490575f80fd5b50610499610fb2565b6040516104a69190613488565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190613644565b610ff1565b6040516104e29190613565565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c9190613748565b611023565b005b34801561051e575f80fd5b50610527611121565b6040516105349190613565565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190613644565b611134565b6040516105709190613488565b60405180910390f35b348015610584575f80fd5b5061058d61117a565b005b34801561059a575f80fd5b506105a36112c8565b005b3480156105b0575f80fd5b506105cb60048036038101906105c69190613606565b611370565b6040516105d89190613565565b60405180910390f35b3480156105ec575f80fd5b506105f56114d0565b6040516106029190613488565b60405180910390f35b348015610616575f80fd5b5061061f6114d6565b60405161062c9190613488565b60405180910390f35b348015610640575f80fd5b5061065b6004803603810190610656919061380f565b6114dc565b005b348015610668575f80fd5b50610671611778565b60405161067e9190613895565b60405180910390f35b348015610692575f80fd5b5061069b611786565b6040516106a89190613895565b60405180910390f35b3480156106bc575f80fd5b506106c56117ad565b6040516106d2919061352b565b60405180910390f35b3480156106e6575f80fd5b506106ef6117ea565b005b3480156106fc575f80fd5b50610705611899565b6040516107129190613895565b60405180910390f35b348015610726575f80fd5b50610741600480360381019061073c9190613606565b6118be565b60405161074e9190613565565b60405180910390f35b348015610762575f80fd5b5061076b6118d2565b6040516107789190613895565b60405180910390f35b34801561078c575f80fd5b506107a760048036038101906107a291906138ae565b6118f5565b005b3480156107b4575f80fd5b506107cf60048036038101906107ca91906138fe565b6119a3565b6040516107dc9190613488565b60405180910390f35b3480156107f0575f80fd5b5061080b6004803603810190610806919061393c565b611a25565b6040516108189190613565565b60405180910390f35b34801561082c575f80fd5b506108476004803603810190610842919061397a565b611a39565b005b348015610854575f80fd5b5061086f600480360381019061086a9190613644565b611b3c565b005b34801561087c575f80fd5b50610885611cf9565b005b348015610892575f80fd5b5061089b611d60565b6040516108a89190613a13565b60405180910390f35b601f5481565b60606040518060400160405280600e81526020017f55474c59204d55434b20434f494e000000000000000000000000000000000000815250905090565b601e60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e29190613488565b60405180910390a36001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60105481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610bff57610b82826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d859092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610c0a848484611de7565b90509392505050565b610c1b6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90613a76565b60405180910390fd5b85600b8190555084600e8190555083600c8190555082600d8190555081600f81905550610d1382610d0585610cf788610ce98b8d61250290919063ffffffff16565b61250290919063ffffffff16565b61250290919063ffffffff16565b61250290919063ffffffff16565b601081905550806011819055506002601154610d2f9190613aee565b60105410610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990613b68565b60405180910390fd5b610d7a61255f565b505050505050565b610d8a6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0d90613a76565b60405180910390fd5b6001601e60146101000a81548160ff0219169083151502179055506107d06013819055506107d06012819055506103e8601481905550565b5f610eb7610e5a610fb2565b610ea9610e9a6002610e8c601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611134565b61261790919063ffffffff16565b8561261790919063ffffffff16565b61268e90919063ffffffff16565b9050919050565b5f6012905090565b610ece6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a76565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610fec610fbf5f611134565b610fde610fcd61dead611134565b6003546126d790919063ffffffff16565b6126d790919063ffffffff16565b905090565b5f61101c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610907565b9050919050565b61102b6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae90613a76565b60405180910390fd5b60018110156110c4575f80fd5b6103e8816003546110d59190613b86565b6110df9190613aee565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be516005546040516111169190613488565b60405180910390a150565b601e60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111826124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590613a76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6112d06124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135390613a76565b60405180910390fd5b600354600481905550600354600581905550565b5f8082036113f3578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113b19190613895565b602060405180830381865afa1580156113cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f09190613bdb565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051611424929190613c06565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611488929190613c06565b6020604051808303815f875af11580156114a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c89190613c41565b905092915050565b60055481565b60045481565b6114e46124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790613a76565b60405180910390fd5b8460155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117699493929190613c6c565b60405180910390a15050505050565b5f611781611786565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f55474c59204d55434b0000000000000000000000000000000000000000000000815250905090565b6117f26124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613a76565b60405180910390fd5b60c860138190555060c86012819055506101f4601481905550565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118ca338484611de7565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118fd6124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613a76565b60405180910390fd5b816012819055508260138190555080601481905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f82611a3083610e4e565b11905092915050565b611a416124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac490613a76565b60405180910390fd5b81601e60156101000a81548160ff02191690831515021790555080601f819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601f54601e60159054906101000a900460ff16604051611b30929190613caf565b60405180910390a15050565b611b446124fb565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613a76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590613d46565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611d5d573d5f803e3d5ffd5b50565b601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc3919061352b565b60405180910390fd5b505f8385611dda9190613d64565b9050809150509392505050565b5f60205f9054906101000a900460ff1615611e0e57611e07848484612720565b90506124f4565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eac575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f0157601e60149054906101000a900460ff16611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef790613de1565b60405180910390fd5b5b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f9f5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd590613e49565b60405180910390fd5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561206157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561209b575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120f45750601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561214d575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121a6575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121f9575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561225c575f61220884611134565b905060055483826122199190613e67565b111561225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225190613f0a565b60405180910390fd5b505b61226684836128ea565b61226e612984565b1561227c5761227b612a56565b5b612303826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d859092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806123e0575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123f4576123ef858486613051565b6123f6565b825b90506124488160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e69190613488565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846125109190613e67565b905083811015612555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254c90613f72565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006125aa606461259c60135460105461261790919063ffffffff16565b61268e90919063ffffffff16565b6125d460646125c660125460105461261790919063ffffffff16565b61268e90919063ffffffff16565b6125fe60646125f060145460105461261790919063ffffffff16565b61268e90919063ffffffff16565b60405161260d93929190613f90565b60405180910390a1565b5f808303612627575f9050612688565b5f82846126349190613b86565b90508284826126439190613aee565b14612683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267a90614035565b60405180910390fd5b809150505b92915050565b5f6126cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061340f565b905092915050565b5f61271883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d85565b905092915050565b5f6127a8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d859092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128398260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128d79190613488565b60405180910390a3600190509392505050565b60045481111580612941575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129779061409d565b60405180910390fd5b5050565b5f601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129ee575060205f9054906101000a900460ff16155b8015612a065750601e60159054906101000a900460ff165b8015612a515750601f5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160205f6101000a81548160ff0219169083151502179055505f612a7f601a54601b54611a25565b612a8b57600b54612a8d565b5f5b90505f612acc6002612abe601054612ab086601f5461261790919063ffffffff16565b61268e90919063ffffffff16565b61268e90919063ffffffff16565b90505f612ae482601f546126d790919063ffffffff16565b90505f600267ffffffffffffffff811115612b0257612b016140bb565b5b604051908082528060200260200182016040528015612b305781602001602082028036833780820191505090505b50905030815f81518110612b4757612b466140e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612bb757612bb66140e8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612c57959493929190614205565b5f604051808303815f87803b158015612c6e575f80fd5b505af1158015612c80573d5f803e3d5ffd5b505050505f612c9882476126d790919063ffffffff16565b90505f612cc3612cb260028961268e90919063ffffffff16565b6010546126d790919063ffffffff16565b90505f612cfe6002612cf084612ce28c8861261790919063ffffffff16565b61268e90919063ffffffff16565b61268e90919063ffffffff16565b90505f612d2883612d1a600c548761261790919063ffffffff16565b61268e90919063ffffffff16565b90505f612d5284612d44600e548861261790919063ffffffff16565b61268e90919063ffffffff16565b90505f612d7c85612d6e600d548961261790919063ffffffff16565b61268e90919063ffffffff16565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612dc49061428a565b5f6040518083038185875af1925050503d805f8114612dfe576040519150601f19603f3d011682016040523d82523d5f602084013e612e03565b606091505b5050905060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612e4c9061428a565b5f6040518083038185875af1925050503d805f8114612e86576040519150601f19603f3d011682016040523d82523d5f602084013e612e8b565b606091505b50508091505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ed69061428a565b5f6040518083038185875af1925050503d805f8114612f10576040519150601f19603f3d011682016040523d82523d5f602084013e612f15565b606091505b5050809150505f90505f8b111561302a57601c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fac9695949392919061429e565b60606040518083038185885af1158015612fc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612fed91906142fd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c60405161302192919061434d565b60405180910390a15b5050505050505050505050505f60205f6101000a81548160ff021916908315150217905550565b5f806014549050601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b6576012549050613111565b601e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036131105760135490505b5b5f61315960646011546131249190613b86565b61314b8461313d6010548a61261790919063ffffffff16565b61261790919063ffffffff16565b61268e90919063ffffffff16565b90505f613185601054613177600f548561261790919063ffffffff16565b61268e90919063ffffffff16565b90505f61319b82846126d790919063ffffffff16565b90506131ed8160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061329f8260065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250290919063ffffffff16565b60065f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161335e9190613488565b60405180910390a35f8211156133ef57613383826003546126d790919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133e69190613488565b60405180910390a35b61340283886126d790919063ffffffff16565b9450505050509392505050565b5f8083118290613455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161344c919061352b565b60405180910390fd5b505f83856134639190613aee565b9050809150509392505050565b5f819050919050565b61348281613470565b82525050565b5f60208201905061349b5f830184613479565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134d85780820151818401526020810190506134bd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134fd826134a1565b61350781856134ab565b93506135178185602086016134bb565b613520816134e3565b840191505092915050565b5f6020820190508181035f83015261354381846134f3565b905092915050565b5f8115159050919050565b61355f8161354b565b82525050565b5f6020820190506135785f830184613556565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6135ab82613582565b9050919050565b6135bb816135a1565b81146135c5575f80fd5b50565b5f813590506135d6816135b2565b92915050565b6135e581613470565b81146135ef575f80fd5b50565b5f81359050613600816135dc565b92915050565b5f806040838503121561361c5761361b61357e565b5b5f613629858286016135c8565b925050602061363a858286016135f2565b9150509250929050565b5f602082840312156136595761365861357e565b5b5f613666848285016135c8565b91505092915050565b5f805f606084860312156136865761368561357e565b5b5f613693868287016135c8565b93505060206136a4868287016135c8565b92505060406136b5868287016135f2565b9150509250925092565b5f805f805f8060c087890312156136d9576136d861357e565b5b5f6136e689828a016135f2565b96505060206136f789828a016135f2565b955050604061370889828a016135f2565b945050606061371989828a016135f2565b935050608061372a89828a016135f2565b92505060a061373b89828a016135f2565b9150509295509295509295565b5f6020828403121561375d5761375c61357e565b5b5f61376a848285016135f2565b91505092915050565b5f60ff82169050919050565b61378881613773565b82525050565b5f6020820190506137a15f83018461377f565b92915050565b6137b08161354b565b81146137ba575f80fd5b50565b5f813590506137cb816137a7565b92915050565b5f80604083850312156137e7576137e661357e565b5b5f6137f4858286016135c8565b9250506020613805858286016137bd565b9150509250929050565b5f805f805f60a086880312156138285761382761357e565b5b5f613835888289016135c8565b9550506020613846888289016135c8565b9450506040613857888289016135c8565b9350506060613868888289016135c8565b9250506080613879888289016135c8565b9150509295509295909350565b61388f816135a1565b82525050565b5f6020820190506138a85f830184613886565b92915050565b5f805f606084860312156138c5576138c461357e565b5b5f6138d2868287016135f2565b93505060206138e3868287016135f2565b92505060406138f4868287016135f2565b9150509250925092565b5f80604083850312156139145761391361357e565b5b5f613921858286016135c8565b9250506020613932858286016135c8565b9150509250929050565b5f80604083850312156139525761395161357e565b5b5f61395f858286016135f2565b9250506020613970858286016135f2565b9150509250929050565b5f80604083850312156139905761398f61357e565b5b5f61399d858286016137bd565b92505060206139ae858286016135f2565b9150509250929050565b5f819050919050565b5f6139db6139d66139d184613582565b6139b8565b613582565b9050919050565b5f6139ec826139c1565b9050919050565b5f6139fd826139e2565b9050919050565b613a0d816139f3565b82525050565b5f602082019050613a265f830184613a04565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a606020836134ab565b9150613a6b82613a2c565b602082019050919050565b5f6020820190508181035f830152613a8d81613a54565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613af882613470565b9150613b0383613470565b925082613b1357613b12613a94565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f613b52601d836134ab565b9150613b5d82613b1e565b602082019050919050565b5f6020820190508181035f830152613b7f81613b46565b9050919050565b5f613b9082613470565b9150613b9b83613470565b9250828202613ba981613470565b91508282048414831517613bc057613bbf613ac1565b5b5092915050565b5f81519050613bd5816135dc565b92915050565b5f60208284031215613bf057613bef61357e565b5b5f613bfd84828501613bc7565b91505092915050565b5f604082019050613c195f830185613886565b613c266020830184613479565b9392505050565b5f81519050613c3b816137a7565b92915050565b5f60208284031215613c5657613c5561357e565b5b5f613c6384828501613c2d565b91505092915050565b5f608082019050613c7f5f830187613886565b613c8c6020830186613886565b613c996040830185613886565b613ca66060830184613886565b95945050505050565b5f604082019050613cc25f830185613479565b613ccf6020830184613556565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d306026836134ab565b9150613d3b82613cd6565b604082019050919050565b5f6020820190508181035f830152613d5d81613d24565b9050919050565b5f613d6e82613470565b9150613d7983613470565b9250828203905081811115613d9157613d90613ac1565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613dcb6014836134ab565b9150613dd682613d97565b602082019050919050565b5f6020820190508181035f830152613df881613dbf565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f613e33600b836134ab565b9150613e3e82613dff565b602082019050919050565b5f6020820190508181035f830152613e6081613e27565b9050919050565b5f613e7182613470565b9150613e7c83613470565b9250828201905080821115613e9457613e93613ac1565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613ef4603e836134ab565b9150613eff82613e9a565b604082019050919050565b5f6020820190508181035f830152613f2181613ee8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f5c601b836134ab565b9150613f6782613f28565b602082019050919050565b5f6020820190508181035f830152613f8981613f50565b9050919050565b5f606082019050613fa35f83018661377f565b613fb0602083018561377f565b613fbd604083018461377f565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61401f6021836134ab565b915061402a82613fc5565b604082019050919050565b5f6020820190508181035f83015261404c81614013565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f6140876011836134ab565b915061409282614053565b602082019050919050565b5f6020820190508181035f8301526140b48161407b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61413861413361412e84614115565b6139b8565b613470565b9050919050565b6141488161411e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614180816135a1565b82525050565b5f6141918383614177565b60208301905092915050565b5f602082019050919050565b5f6141b38261414e565b6141bd8185614158565b93506141c883614168565b805f5b838110156141f85781516141df8882614186565b97506141ea8361419d565b9250506001810190506141cb565b5085935050505092915050565b5f60a0820190506142185f830188613479565b614225602083018761413f565b818103604083015261423781866141a9565b90506142466060830185613886565b6142536080830184613479565b9695505050505050565b5f81905092915050565b50565b5f6142755f8361425d565b915061428082614267565b5f82019050919050565b5f6142948261426a565b9150819050919050565b5f60c0820190506142b15f830189613886565b6142be6020830188613479565b6142cb604083018761413f565b6142d8606083018661413f565b6142e56080830185613886565b6142f260a0830184613479565b979650505050505050565b5f805f606084860312156143145761431361357e565b5b5f61432186828701613bc7565b935050602061433286828701613bc7565b925050604061434386828701613bc7565b9150509250925092565b5f6040820190506143605f830185613479565b61436d6020830184613479565b939250505056fea2646970667358221220646c32a36979de8887e2713d99e3e71c91941757e92969a372a63cd8d0c1090864736f6c63430008140033

Deployed Bytecode Sourcemap

4979:13967:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7371:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8793:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7288:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9215:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8523:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6657:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9733:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16982:591;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14452:200;;;;;;;;;;;;;:::i;:::-;;18503:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8617:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18804:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18664:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9439:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10115:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7334:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8963:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1893:148;;;;;;;;;;;;;:::i;:::-;;10372:139;;;;;;;;;;;;;:::i;:::-;;13834:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6111:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6046:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17586:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8879:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1679:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8703:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14662:174;;;;;;;;;;;;;:::i;:::-;;7256:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9569:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14180:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9074:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18360:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18141:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2049:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13695:132;;;;;;;;;;;;;:::i;:::-;;7186:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7371:55;;;;:::o;8793:80::-;8841:13;8865:5;;;;;;;;;;;;;;;;;8858:12;;8793:80;:::o;7288:31::-;;;;;;;;;;;;;:::o;9215:216::-;9290:4;9342:6;9307:11;:23;9319:10;9307:23;;;;;;;;;;;;;;;:32;9331:7;9307:32;;;;;;;;;;;;;;;:41;;;;9385:7;9364:37;;9373:10;9364:37;;;9394:6;9364:37;;;;;;:::i;:::-;;;;;;;;9419:4;9412:11;;9215:216;;;;:::o;6395:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;8523:88::-;8578:7;8596:12;;8589:19;;8523:88;:::o;6657:93::-;;;;:::o;9733:370::-;9833:4;9888:17;9853:11;:19;9865:6;9853:19;;;;;;;;;;;;;;;:31;9873:10;9853:31;;;;;;;;;;;;;;;;:52;9850:186;;9955:69;9991:6;9955:69;;;;;;;;;;;;;;;;;:11;:19;9967:6;9955:19;;;;;;;;;;;;;;;:31;9975:10;9955:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9921:11;:19;9933:6;9921:19;;;;;;;;;;;;;;;:31;9941:10;9921:31;;;;;;;;;;;;;;;:103;;;;9850:186;10055:40;10069:6;10077:9;10088:6;10055:13;:40::i;:::-;10048:47;;9733:370;;;;;:::o;16982:591::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17177:13:::1;17162:12;:28;;;;17214:11;17201:10;:24;;;;17251:13;17236:12;:28;;;;17284:7;17275:6;:16;;;;17312:8;17302:7;:18;;;;17342:76;17409:8;17342:62;17396:7;17342:49;17377:13;17342:30;17360:11;17342:13;:17;;:30;;;;:::i;:::-;:34;;:49;;;;:::i;:::-;:53;;:62;;;;:::i;:::-;:66;;:76;;;;:::i;:::-;17331:8;:87;;;;17446:15;17429:14;:32;;;;17508:1;17491:14;;:18;;;;:::i;:::-;17480:8;;:29;17472:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17555:10;:8;:10::i;:::-;16982:591:::0;;;;;;:::o;14452:200::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14518:4:::1;14504:11;;:18;;;;;;;;;;;;;;;;;;14546:4;14533:10;:17;;;;14575:4;14561:11;:18;;;;14608:4;14590:15;:22;;;;14452:200::o:0;18503:149::-;18563:7;18590:54;18631:12;:10;:12::i;:::-;18590:36;18603:22;18623:1;18603:15;18613:4;;;;;;;;;;;18603:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18590:8;:12;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;18583:61;;18503:149;;;:::o;8617:80::-;8669:5;5348:2;8678:16;;8617:80;:::o;18804:135::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18916:15:::1;18893:10;:20;18904:8;18893:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18804:135:::0;;:::o;18664:132::-;18707:7;18734:54;18772:15;5173:42;18772:9;:15::i;:::-;18734:33;18751:15;5100:42;18751:9;:15::i;:::-;18734:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18727:61;;18664:132;:::o;9439:122::-;9494:4;9518:35;9526:7;9535:17;9518:7;:35::i;:::-;9511:42;;9439:122;;;:::o;10115:247::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10219:1:::1;10201:14;:19;;10193:28;;;::::0;::::1;;10286:4;10267:14;10252:12;;:29;;;;:::i;:::-;10251:39;;;;:::i;:::-;10233:15;:57;;;;10306:30;10320:15;;10306:30;;;;;;:::i;:::-;;;;;;;;10115:247:::0;:::o;7334:30::-;;;;;;;;;;;;;:::o;8963:105::-;9029:7;9047:9;:18;9057:7;9047:18;;;;;;;;;;;;;;;;9040:25;;8963:105;;;:::o;1893:148::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2000:1:::1;1963:40;;1984:6;::::0;::::1;;;;;;;;1963:40;;;;;;;;;;;;2031:1;2014:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1893:148::o:0;10372:139::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10446:12:::1;;10431;:27;;;;10491:12;;10473:15;:30;;;;10372:139::o:0;13834:338::-;13915:12;13958:1;13948:6;:11;13945:95;;13990:12;13984:29;;;14022:4;13984:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13975:53;;13945:95;14055:32;14066:12;14080:6;14055:32;;;;;;;:::i;:::-;;;;;;;;14111:12;14105:28;;;14134:21;;;;;;;;;;;14157:6;14105:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14098:66;;13834:338;;;;:::o;6111:61::-;;;;:::o;6046:58::-;;;;:::o;17586:547::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17803:22:::1;17779:21;;:46;;;;;;;;;;;;;;;;;;17859:21;17836:20;;:44;;;;;;;;;;;;;;;;;;17908:15;17891:14;;:32;;;;;;;;;;;;;;;;;;17952:16;17934:15;;:34;;;;;;;;;;;;;;;;;;18000:19;17979:18;;:40;;;;;;;;;;;;;;;;;;18037:88;18051:20;;;;;;;;;;;18073:18;;;;;;;;;;;18093:15;;;;;;;;;;;18110:14;;;;;;;;;;;18037:88;;;;;;;;;:::i;:::-;;;;;;;;17586:547:::0;;;;;:::o;8879:78::-;8931:7;8948;:5;:7::i;:::-;8941:14;;8879:78;:::o;1679:79::-;1717:7;1744:6;;;;;;;;;;;1737:13;;1679:79;:::o;8703:84::-;8753:13;8777:7;;;;;;;;;;;;;;;;;8770:14;;8703:84;:::o;14662:174::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14733:3:::1;14720:10;:16;;;;14761:3;14747:11;:17;;;;14793:3;14775:15;:21;;;;14662:174::o:0;7256:19::-;;;;;;;;;;;;;:::o;9569:156::-;9649:4;9673:44;9687:10;9699:9;9710:6;9673:13;:44::i;:::-;9666:51;;9569:156;;;;:::o;1299:21::-;;;;;;;;;;;;:::o;14180:257::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14318:14:::1;14304:11;:28;;;;14356:13;14343:10;:26;;;;14398:15;14380;:33;;;;14180:257:::0;;;:::o;9074:133::-;9158:7;9176:11;:19;9188:6;9176:19;;;;;;;;;;;;;;;:28;9196:7;9176:28;;;;;;;;;;;;;;;;9169:35;;9074:133;;;;:::o;18360:135::-;18434:4;18482:5;18458:21;18470:8;18458:11;:21::i;:::-;:29;18451:36;;18360:135;;;;:::o;18141:211::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18246:8:::1;18232:11;;:22;;;;;;;;;;;;;;;;;;18281:7;18265:13;:23;;;;18304:40;18317:13;;18332:11;;;;;;;;;;;18304:40;;;;;;;:::i;:::-;;;;;;;;18141:211:::0;;:::o;2049:244::-;1816:12;:10;:12::i;:::-;1806:22;;:6;;;;;;;;;;:22;;;1798:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2158:1:::1;2138:22;;:8;:22;;::::0;2130:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2248:8;2219:38;;2240:6;::::0;::::1;;;;;;;;2219:38;;;;;;;;;;;;2277:8;2268:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2049:244:::0;:::o;13695:132::-;13751:21;;;;;;;;;;;13743:39;;:62;13783:21;13743:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13695:132::o;7186:24::-;;;;;;;;;;;;;:::o;4191:192::-;4277:7;4310:1;4305;:6;;4313:12;4297:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4337:9;4353:1;4349;:5;;;;:::i;:::-;4337:17;;4374:1;4367:8;;;4191:192;;;;;:::o;10527:1318::-;10619:4;10639:6;;;;;;;;;;;10636:63;;;10655:41;10670:6;10678:9;10689:6;10655:14;:41::i;:::-;10648:48;;;;10636:63;10715:14;:22;10730:6;10715:22;;;;;;;;;;;;;;;;;;;;;;;;;10714:23;:53;;;;;10742:14;:25;10757:9;10742:25;;;;;;;;;;;;;;;;;;;;;;;;;10741:26;10714:53;10711:139;;;10791:11;;;;;;;;;;;10783:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10711:139;10869:10;:18;10880:6;10869:18;;;;;;;;;;;;;;;;;;;;;;;;;10868:19;:45;;;;;10892:10;:21;10903:9;10892:21;;;;;;;;;;;;;;;;;;;;;;;;;10891:22;10868:45;10860:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10972:14;:22;10987:6;10972:22;;;;;;;;;;;;;;;;;;;;;;;;;10971:23;:53;;;;;11019:4;10998:26;;:9;:26;;;;10971:53;:84;;;;;5100:42;11029:26;;:9;:26;;;;10971:84;:105;;;;;11072:4;;;;;;;;;;;11059:17;;:9;:17;;;;10971:105;:137;;;;;11093:15;;;;;;;;;;;11080:28;;:9;:28;;;;10971:137;:174;;;;;11125:20;;;;;;;;;;;11112:33;;:9;:33;;;;10971:174;:207;;;;;11150:17;:28;11168:9;11150:28;;;;;;;;;;;;;;;;;;;;;;;;;11149:29;10971:207;10967:399;;;11194:18;11215:20;11225:9;11215;:20::i;:::-;11194:41;;11283:15;;11272:6;11259:10;:19;;;;:::i;:::-;11258:40;;11250:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11179:187;10967:399;11378:28;11391:6;11399;11378:12;:28::i;:::-;11424:16;:14;:16::i;:::-;11421:35;;;11443:10;:8;:10::i;:::-;11421:35;11486:53;11508:6;11486:53;;;;;;;;;;;;;;;;;:9;:17;11496:6;11486:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11466:9;:17;11476:6;11466:17;;;;;;;;;;;;;;;:73;;;;11552:22;11578:16;:24;11595:6;11578:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11606:16;:27;11623:9;11606:27;;;;;;;;;;;;;;;;;;;;;;;;;11578:55;11577:103;;11646:34;11654:6;11662;11670:9;11646:7;:34::i;:::-;11577:103;;;11637:6;11577:103;11552:128;;11714:40;11739:14;11714:9;:20;11724:9;11714:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11691:9;:20;11701:9;11691:20;;;;;;;;;;;;;;;:63;;;;11789:9;11772:43;;11781:6;11772:43;;;11800:14;11772:43;;;;;;:::i;:::-;;;;;;;;11833:4;11826:11;;;10527:1318;;;;;;:::o;1020:115::-;1073:15;1116:10;1101:26;;1020:115;:::o;3862:181::-;3920:7;3940:9;3956:1;3952;:5;;;;:::i;:::-;3940:17;;3981:1;3976;:6;;3968:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4034:1;4027:8;;;3862:181;;;;:::o;16729:241::-;16782:180;16797:33;16826:3;16797:24;16810:10;;16797:8;;:12;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;16852:34;16882:3;16852:25;16865:11;;16852:8;;:12;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;16908:38;16942:3;16908:29;16921:15;;16908:8;;:12;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;16782:180;;;;;;;;:::i;:::-;;;;;;;;16729:241::o;4389:250::-;4447:7;4476:1;4471;:6;4467:47;;4501:1;4494:8;;;;4467:47;4526:9;4542:1;4538;:5;;;;:::i;:::-;4526:17;;4571:1;4566;4562;:5;;;;:::i;:::-;:10;4554:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4630:1;4623:8;;;4389:250;;;;;:::o;4645:132::-;4703:7;4730:39;4734:1;4737;4730:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4723:46;;4645:132;;;;:::o;4049:136::-;4107:7;4134:43;4138:1;4141;4134:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4127:50;;4049:136;;;;:::o;11854:330::-;11947:4;11984:53;12006:6;11984:53;;;;;;;;;;;;;;;;;:9;:17;11994:6;11984:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11964:9;:17;11974:6;11964:17;;;;;;;;;;;;;;;:73;;;;12071:32;12096:6;12071:9;:20;12081:9;12071:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12048:9;:20;12058:9;12048:20;;;;;;;;;;;;;;;:55;;;;12136:9;12119:35;;12128:6;12119:35;;;12147:6;12119:35;;;;;;:::i;:::-;;;;;;;;12172:4;12165:11;;11854:330;;;;;:::o;12192:168::-;12289:12;;12279:6;:22;;:51;;;;12305:17;:25;12323:6;12305:25;;;;;;;;;;;;;;;;;;;;;;;;;12279:51;12271:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12192:168;;:::o;13485:197::-;13534:4;13572;;;;;;;;;;;13558:18;;:10;:18;;;;:38;;;;;13590:6;;;;;;;;;;;13589:7;13558:38;:62;;;;;13609:11;;;;;;;;;;;13558:62;:116;;;;;13661:13;;13633:9;:24;13651:4;13633:24;;;;;;;;;;;;;;;;:41;;13558:116;13551:123;;13485:197;:::o;14859:1854::-;7483:4;7474:6;;:13;;;;;;;;;;;;;;;;;;14908:27:::1;14938:41;14949:8;;14959:19;;14938:10;:41::i;:::-;:60;;14986:12;;14938:60;;;14982:1;14938:60;14908:90;;15009:23;15035:59;15092:1;15035:52;15078:8;;15035:38;15053:19;15035:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;15009:85;;15105:20;15128:34;15146:15;15128:13;;:17;;:34;;;;:::i;:::-;15105:57;;15175:21;15213:1;15199:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15175:40;;15244:4;15226;15231:1;15226:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15270:4;;;;;;;;;;;15260;15265:1;15260:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15287:21;15311;15287:45;;15345:6;;;;;;;;;;;:57;;;15417:12;15444:1;15460:4;15487;15507:15;15345:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15546:17;15566:40;15592:13;15566:21;:25;;:40;;;;:::i;:::-;15546:60;;15619:19;15641:40;15654:26;15678:1;15654:19;:23;;:26;;;;:::i;:::-;15641:8;;:12;;:40;;;;:::i;:::-;15619:62;;15702:26;15731:58;15787:1;15731:51;15770:11;15731:34;15745:19;15731:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15702:87;;15800:26;15829:44;15861:11;15829:27;15843:12;;15829:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15800:73;;15884:24;15911:42;15941:11;15911:25;15925:10;;15911:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15884:69;;15964:20;15987:38;16013:11;15987:21;16001:6;;15987:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15964:61;;16039:15;16067:20;;;;;;;;;;;16059:34;;16101:18;16059:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16038:86;;;16159:14;;;;;;;;;;;16151:28;;16187:12;16151:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16135:69;;;;;16239:18;;;;;;;;;;;16231:32;;16271:16;16231:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16215:77;;;;;16326:5;16313:18;;16365:1;16347:15;:19;16344:362;;;16382:6;;;;;;;;;;;:22;;;16412:18;16458:4;16482:15;16516:1;16536::::0;16556:21:::1;;;;;;;;;;;16596:15;16382:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16646:48;16658:18;16678:15;16646:48;;;;;;;:::i;:::-;;;;;;;;16344:362;14897:1816;;;;;;;;;;;;7501:5:::0;7492:6;;:14;;;;;;;;;;;;;;;;;;14859:1854::o;12495:982::-;12581:7;12611:15;12629;;12611:33;;12671:4;;;;;;;;;;;12658:17;;:9;:17;;;12655:142;;12702:11;;12692:21;;12655:142;;;12744:4;;;;;;;;;;;12734:14;;:6;:14;;;12731:66;;12775:10;;12765:20;;12731:66;12655:142;12809:17;12829:59;12884:3;12867:14;;:20;;;;:::i;:::-;12829:33;12854:7;12829:20;12840:8;;12829:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:59;;;;:::i;:::-;12809:79;;12899:18;12920:36;12947:8;;12920:22;12934:7;;12920:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;12899:57;;12967:22;12992:25;13006:10;12992:9;:13;;:25;;;;:::i;:::-;12967:50;;13055:44;13084:14;13055:9;:24;13073:4;13055:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13028:9;:24;13046:4;13028:24;;;;;;;;;;;;;;;:71;;;;13139:42;13170:10;13139:9;:26;13149:15;;;;;;;;;;;13139:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13110:9;:26;13120:15;;;;;;;;;;;13110:26;;;;;;;;;;;;;;;:71;;;;13222:4;13197:47;;13206:6;13197:47;;;13229:14;13197:47;;;;;;:::i;:::-;;;;;;;;13291:1;13278:10;:14;13275:154;;;13323:28;13340:10;13323:12;;:16;;:28;;;;:::i;:::-;13308:12;:43;;;;5173:42;13371:34;;13380:6;13371:34;;;13394:10;13371:34;;;;;;:::i;:::-;;;;;;;;13275:154;13448:21;13459:9;13448:6;:10;;:21;;;;:::i;:::-;13441:28;;;;;;12495:982;;;;;:::o;4783:189::-;4869:7;4901:1;4897;:5;4904:12;4889:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4928:9;4944:1;4940;:5;;;;:::i;:::-;4928:17;;4963:1;4956:8;;;4783:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:1057::-;4862:6;4870;4878;4886;4894;4902;4951:3;4939:9;4930:7;4926:23;4922:33;4919:120;;;4958:79;;:::i;:::-;4919:120;5078:1;5103:53;5148:7;5139:6;5128:9;5124:22;5103:53;:::i;:::-;5093:63;;5049:117;5205:2;5231:53;5276:7;5267:6;5256:9;5252:22;5231:53;:::i;:::-;5221:63;;5176:118;5333:2;5359:53;5404:7;5395:6;5384:9;5380:22;5359:53;:::i;:::-;5349:63;;5304:118;5461:2;5487:53;5532:7;5523:6;5512:9;5508:22;5487:53;:::i;:::-;5477:63;;5432:118;5589:3;5616:53;5661:7;5652:6;5641:9;5637:22;5616:53;:::i;:::-;5606:63;;5560:119;5718:3;5745:53;5790:7;5781:6;5770:9;5766:22;5745:53;:::i;:::-;5735:63;;5689:119;4758:1057;;;;;;;;:::o;5821:329::-;5880:6;5929:2;5917:9;5908:7;5904:23;5900:32;5897:119;;;5935:79;;:::i;:::-;5897:119;6055:1;6080:53;6125:7;6116:6;6105:9;6101:22;6080:53;:::i;:::-;6070:63;;6026:117;5821:329;;;;:::o;6156:86::-;6191:7;6231:4;6224:5;6220:16;6209:27;;6156:86;;;:::o;6248:112::-;6331:22;6347:5;6331:22;:::i;:::-;6326:3;6319:35;6248:112;;:::o;6366:214::-;6455:4;6493:2;6482:9;6478:18;6470:26;;6506:67;6570:1;6559:9;6555:17;6546:6;6506:67;:::i;:::-;6366:214;;;;:::o;6586:116::-;6656:21;6671:5;6656:21;:::i;:::-;6649:5;6646:32;6636:60;;6692:1;6689;6682:12;6636:60;6586:116;:::o;6708:133::-;6751:5;6789:6;6776:20;6767:29;;6805:30;6829:5;6805:30;:::i;:::-;6708:133;;;;:::o;6847:468::-;6912:6;6920;6969:2;6957:9;6948:7;6944:23;6940:32;6937:119;;;6975:79;;:::i;:::-;6937:119;7095:1;7120:53;7165:7;7156:6;7145:9;7141:22;7120:53;:::i;:::-;7110:63;;7066:117;7222:2;7248:50;7290:7;7281:6;7270:9;7266:22;7248:50;:::i;:::-;7238:60;;7193:115;6847:468;;;;;:::o;7321:911::-;7416:6;7424;7432;7440;7448;7497:3;7485:9;7476:7;7472:23;7468:33;7465:120;;;7504:79;;:::i;:::-;7465:120;7624:1;7649:53;7694:7;7685:6;7674:9;7670:22;7649:53;:::i;:::-;7639:63;;7595:117;7751:2;7777:53;7822:7;7813:6;7802:9;7798:22;7777:53;:::i;:::-;7767:63;;7722:118;7879:2;7905:53;7950:7;7941:6;7930:9;7926:22;7905:53;:::i;:::-;7895:63;;7850:118;8007:2;8033:53;8078:7;8069:6;8058:9;8054:22;8033:53;:::i;:::-;8023:63;;7978:118;8135:3;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8106:119;7321:911;;;;;;;;:::o;8238:118::-;8325:24;8343:5;8325:24;:::i;:::-;8320:3;8313:37;8238:118;;:::o;8362:222::-;8455:4;8493:2;8482:9;8478:18;8470:26;;8506:71;8574:1;8563:9;8559:17;8550:6;8506:71;:::i;:::-;8362:222;;;;:::o;8590:619::-;8667:6;8675;8683;8732:2;8720:9;8711:7;8707:23;8703:32;8700:119;;;8738:79;;:::i;:::-;8700:119;8858:1;8883:53;8928:7;8919:6;8908:9;8904:22;8883:53;:::i;:::-;8873:63;;8829:117;8985:2;9011:53;9056:7;9047:6;9036:9;9032:22;9011:53;:::i;:::-;9001:63;;8956:118;9113:2;9139:53;9184:7;9175:6;9164:9;9160:22;9139:53;:::i;:::-;9129:63;;9084:118;8590:619;;;;;:::o;9215:474::-;9283:6;9291;9340:2;9328:9;9319:7;9315:23;9311:32;9308:119;;;9346:79;;:::i;:::-;9308:119;9466:1;9491:53;9536:7;9527:6;9516:9;9512:22;9491:53;:::i;:::-;9481:63;;9437:117;9593:2;9619:53;9664:7;9655:6;9644:9;9640:22;9619:53;:::i;:::-;9609:63;;9564:118;9215:474;;;;;:::o;9695:::-;9763:6;9771;9820:2;9808:9;9799:7;9795:23;9791:32;9788:119;;;9826:79;;:::i;:::-;9788:119;9946:1;9971:53;10016:7;10007:6;9996:9;9992:22;9971:53;:::i;:::-;9961:63;;9917:117;10073:2;10099:53;10144:7;10135:6;10124:9;10120:22;10099:53;:::i;:::-;10089:63;;10044:118;9695:474;;;;;:::o;10175:468::-;10240:6;10248;10297:2;10285:9;10276:7;10272:23;10268:32;10265:119;;;10303:79;;:::i;:::-;10265:119;10423:1;10448:50;10490:7;10481:6;10470:9;10466:22;10448:50;:::i;:::-;10438:60;;10394:114;10547:2;10573:53;10618:7;10609:6;10598:9;10594:22;10573:53;:::i;:::-;10563:63;;10518:118;10175:468;;;;;:::o;10649:60::-;10677:3;10698:5;10691:12;;10649:60;;;:::o;10715:142::-;10765:9;10798:53;10816:34;10825:24;10843:5;10825:24;:::i;:::-;10816:34;:::i;:::-;10798:53;:::i;:::-;10785:66;;10715:142;;;:::o;10863:126::-;10913:9;10946:37;10977:5;10946:37;:::i;:::-;10933:50;;10863:126;;;:::o;10995:144::-;11063:9;11096:37;11127:5;11096:37;:::i;:::-;11083:50;;10995:144;;;:::o;11145:167::-;11250:55;11299:5;11250:55;:::i;:::-;11245:3;11238:68;11145:167;;:::o;11318:258::-;11429:4;11467:2;11456:9;11452:18;11444:26;;11480:89;11566:1;11555:9;11551:17;11542:6;11480:89;:::i;:::-;11318:258;;;;:::o;11582:182::-;11722:34;11718:1;11710:6;11706:14;11699:58;11582:182;:::o;11770:366::-;11912:3;11933:67;11997:2;11992:3;11933:67;:::i;:::-;11926:74;;12009:93;12098:3;12009:93;:::i;:::-;12127:2;12122:3;12118:12;12111:19;;11770:366;;;:::o;12142:419::-;12308:4;12346:2;12335:9;12331:18;12323:26;;12395:9;12389:4;12385:20;12381:1;12370:9;12366:17;12359:47;12423:131;12549:4;12423:131;:::i;:::-;12415:139;;12142:419;;;:::o;12567:180::-;12615:77;12612:1;12605:88;12712:4;12709:1;12702:15;12736:4;12733:1;12726:15;12753:180;12801:77;12798:1;12791:88;12898:4;12895:1;12888:15;12922:4;12919:1;12912:15;12939:185;12979:1;12996:20;13014:1;12996:20;:::i;:::-;12991:25;;13030:20;13048:1;13030:20;:::i;:::-;13025:25;;13069:1;13059:35;;13074:18;;:::i;:::-;13059:35;13116:1;13113;13109:9;13104:14;;12939:185;;;;:::o;13130:179::-;13270:31;13266:1;13258:6;13254:14;13247:55;13130:179;:::o;13315:366::-;13457:3;13478:67;13542:2;13537:3;13478:67;:::i;:::-;13471:74;;13554:93;13643:3;13554:93;:::i;:::-;13672:2;13667:3;13663:12;13656:19;;13315:366;;;:::o;13687:419::-;13853:4;13891:2;13880:9;13876:18;13868:26;;13940:9;13934:4;13930:20;13926:1;13915:9;13911:17;13904:47;13968:131;14094:4;13968:131;:::i;:::-;13960:139;;13687:419;;;:::o;14112:410::-;14152:7;14175:20;14193:1;14175:20;:::i;:::-;14170:25;;14209:20;14227:1;14209:20;:::i;:::-;14204:25;;14264:1;14261;14257:9;14286:30;14304:11;14286:30;:::i;:::-;14275:41;;14465:1;14456:7;14452:15;14449:1;14446:22;14426:1;14419:9;14399:83;14376:139;;14495:18;;:::i;:::-;14376:139;14160:362;14112:410;;;;:::o;14528:143::-;14585:5;14616:6;14610:13;14601:22;;14632:33;14659:5;14632:33;:::i;:::-;14528:143;;;;:::o;14677:351::-;14747:6;14796:2;14784:9;14775:7;14771:23;14767:32;14764:119;;;14802:79;;:::i;:::-;14764:119;14922:1;14947:64;15003:7;14994:6;14983:9;14979:22;14947:64;:::i;:::-;14937:74;;14893:128;14677:351;;;;:::o;15034:332::-;15155:4;15193:2;15182:9;15178:18;15170:26;;15206:71;15274:1;15263:9;15259:17;15250:6;15206:71;:::i;:::-;15287:72;15355:2;15344:9;15340:18;15331:6;15287:72;:::i;:::-;15034:332;;;;;:::o;15372:137::-;15426:5;15457:6;15451:13;15442:22;;15473:30;15497:5;15473:30;:::i;:::-;15372:137;;;;:::o;15515:345::-;15582:6;15631:2;15619:9;15610:7;15606:23;15602:32;15599:119;;;15637:79;;:::i;:::-;15599:119;15757:1;15782:61;15835:7;15826:6;15815:9;15811:22;15782:61;:::i;:::-;15772:71;;15728:125;15515:345;;;;:::o;15866:553::-;16043:4;16081:3;16070:9;16066:19;16058:27;;16095:71;16163:1;16152:9;16148:17;16139:6;16095:71;:::i;:::-;16176:72;16244:2;16233:9;16229:18;16220:6;16176:72;:::i;:::-;16258;16326:2;16315:9;16311:18;16302:6;16258:72;:::i;:::-;16340;16408:2;16397:9;16393:18;16384:6;16340:72;:::i;:::-;15866:553;;;;;;;:::o;16425:320::-;16540:4;16578:2;16567:9;16563:18;16555:26;;16591:71;16659:1;16648:9;16644:17;16635:6;16591:71;:::i;:::-;16672:66;16734:2;16723:9;16719:18;16710:6;16672:66;:::i;:::-;16425:320;;;;;:::o;16751:225::-;16891:34;16887:1;16879:6;16875:14;16868:58;16960:8;16955:2;16947:6;16943:15;16936:33;16751:225;:::o;16982:366::-;17124:3;17145:67;17209:2;17204:3;17145:67;:::i;:::-;17138:74;;17221:93;17310:3;17221:93;:::i;:::-;17339:2;17334:3;17330:12;17323:19;;16982:366;;;:::o;17354:419::-;17520:4;17558:2;17547:9;17543:18;17535:26;;17607:9;17601:4;17597:20;17593:1;17582:9;17578:17;17571:47;17635:131;17761:4;17635:131;:::i;:::-;17627:139;;17354:419;;;:::o;17779:194::-;17819:4;17839:20;17857:1;17839:20;:::i;:::-;17834:25;;17873:20;17891:1;17873:20;:::i;:::-;17868:25;;17917:1;17914;17910:9;17902:17;;17941:1;17935:4;17932:11;17929:37;;;17946:18;;:::i;:::-;17929:37;17779:194;;;;:::o;17979:170::-;18119:22;18115:1;18107:6;18103:14;18096:46;17979:170;:::o;18155:366::-;18297:3;18318:67;18382:2;18377:3;18318:67;:::i;:::-;18311:74;;18394:93;18483:3;18394:93;:::i;:::-;18512:2;18507:3;18503:12;18496:19;;18155:366;;;:::o;18527:419::-;18693:4;18731:2;18720:9;18716:18;18708:26;;18780:9;18774:4;18770:20;18766:1;18755:9;18751:17;18744:47;18808:131;18934:4;18808:131;:::i;:::-;18800:139;;18527:419;;;:::o;18952:161::-;19092:13;19088:1;19080:6;19076:14;19069:37;18952:161;:::o;19119:366::-;19261:3;19282:67;19346:2;19341:3;19282:67;:::i;:::-;19275:74;;19358:93;19447:3;19358:93;:::i;:::-;19476:2;19471:3;19467:12;19460:19;;19119:366;;;:::o;19491:419::-;19657:4;19695:2;19684:9;19680:18;19672:26;;19744:9;19738:4;19734:20;19730:1;19719:9;19715:17;19708:47;19772:131;19898:4;19772:131;:::i;:::-;19764:139;;19491:419;;;:::o;19916:191::-;19956:3;19975:20;19993:1;19975:20;:::i;:::-;19970:25;;20009:20;20027:1;20009:20;:::i;:::-;20004:25;;20052:1;20049;20045:9;20038:16;;20073:3;20070:1;20067:10;20064:36;;;20080:18;;:::i;:::-;20064:36;19916:191;;;;:::o;20113:249::-;20253:34;20249:1;20241:6;20237:14;20230:58;20322:32;20317:2;20309:6;20305:15;20298:57;20113:249;:::o;20368:366::-;20510:3;20531:67;20595:2;20590:3;20531:67;:::i;:::-;20524:74;;20607:93;20696:3;20607:93;:::i;:::-;20725:2;20720:3;20716:12;20709:19;;20368:366;;;:::o;20740:419::-;20906:4;20944:2;20933:9;20929:18;20921:26;;20993:9;20987:4;20983:20;20979:1;20968:9;20964:17;20957:47;21021:131;21147:4;21021:131;:::i;:::-;21013:139;;20740:419;;;:::o;21165:177::-;21305:29;21301:1;21293:6;21289:14;21282:53;21165:177;:::o;21348:366::-;21490:3;21511:67;21575:2;21570:3;21511:67;:::i;:::-;21504:74;;21587:93;21676:3;21587:93;:::i;:::-;21705:2;21700:3;21696:12;21689:19;;21348:366;;;:::o;21720:419::-;21886:4;21924:2;21913:9;21909:18;21901:26;;21973:9;21967:4;21963:20;21959:1;21948:9;21944:17;21937:47;22001:131;22127:4;22001:131;:::i;:::-;21993:139;;21720:419;;;:::o;22145:418::-;22282:4;22320:2;22309:9;22305:18;22297:26;;22333:67;22397:1;22386:9;22382:17;22373:6;22333:67;:::i;:::-;22410:68;22474:2;22463:9;22459:18;22450:6;22410:68;:::i;:::-;22488;22552:2;22541:9;22537:18;22528:6;22488:68;:::i;:::-;22145:418;;;;;;:::o;22569:220::-;22709:34;22705:1;22697:6;22693:14;22686:58;22778:3;22773:2;22765:6;22761:15;22754:28;22569:220;:::o;22795:366::-;22937:3;22958:67;23022:2;23017:3;22958:67;:::i;:::-;22951:74;;23034:93;23123:3;23034:93;:::i;:::-;23152:2;23147:3;23143:12;23136:19;;22795:366;;;:::o;23167:419::-;23333:4;23371:2;23360:9;23356:18;23348:26;;23420:9;23414:4;23410:20;23406:1;23395:9;23391:17;23384:47;23448:131;23574:4;23448:131;:::i;:::-;23440:139;;23167:419;;;:::o;23592:167::-;23732:19;23728:1;23720:6;23716:14;23709:43;23592:167;:::o;23765:366::-;23907:3;23928:67;23992:2;23987:3;23928:67;:::i;:::-;23921:74;;24004:93;24093:3;24004:93;:::i;:::-;24122:2;24117:3;24113:12;24106:19;;23765:366;;;:::o;24137:419::-;24303:4;24341:2;24330:9;24326:18;24318:26;;24390:9;24384:4;24380:20;24376:1;24365:9;24361:17;24354:47;24418:131;24544:4;24418:131;:::i;:::-;24410:139;;24137:419;;;:::o;24562:180::-;24610:77;24607:1;24600:88;24707:4;24704:1;24697:15;24731:4;24728:1;24721:15;24748:180;24796:77;24793:1;24786:88;24893:4;24890:1;24883:15;24917:4;24914:1;24907:15;24934:85;24979:7;25008:5;24997:16;;24934:85;;;:::o;25025:158::-;25083:9;25116:61;25134:42;25143:32;25169:5;25143:32;:::i;:::-;25134:42;:::i;:::-;25116:61;:::i;:::-;25103:74;;25025:158;;;:::o;25189:147::-;25284:45;25323:5;25284:45;:::i;:::-;25279:3;25272:58;25189:147;;:::o;25342:114::-;25409:6;25443:5;25437:12;25427:22;;25342:114;;;:::o;25462:184::-;25561:11;25595:6;25590:3;25583:19;25635:4;25630:3;25626:14;25611:29;;25462:184;;;;:::o;25652:132::-;25719:4;25742:3;25734:11;;25772:4;25767:3;25763:14;25755:22;;25652:132;;;:::o;25790:108::-;25867:24;25885:5;25867:24;:::i;:::-;25862:3;25855:37;25790:108;;:::o;25904:179::-;25973:10;25994:46;26036:3;26028:6;25994:46;:::i;:::-;26072:4;26067:3;26063:14;26049:28;;25904:179;;;;:::o;26089:113::-;26159:4;26191;26186:3;26182:14;26174:22;;26089:113;;;:::o;26238:732::-;26357:3;26386:54;26434:5;26386:54;:::i;:::-;26456:86;26535:6;26530:3;26456:86;:::i;:::-;26449:93;;26566:56;26616:5;26566:56;:::i;:::-;26645:7;26676:1;26661:284;26686:6;26683:1;26680:13;26661:284;;;26762:6;26756:13;26789:63;26848:3;26833:13;26789:63;:::i;:::-;26782:70;;26875:60;26928:6;26875:60;:::i;:::-;26865:70;;26721:224;26708:1;26705;26701:9;26696:14;;26661:284;;;26665:14;26961:3;26954:10;;26362:608;;;26238:732;;;;:::o;26976:831::-;27239:4;27277:3;27266:9;27262:19;27254:27;;27291:71;27359:1;27348:9;27344:17;27335:6;27291:71;:::i;:::-;27372:80;27448:2;27437:9;27433:18;27424:6;27372:80;:::i;:::-;27499:9;27493:4;27489:20;27484:2;27473:9;27469:18;27462:48;27527:108;27630:4;27621:6;27527:108;:::i;:::-;27519:116;;27645:72;27713:2;27702:9;27698:18;27689:6;27645:72;:::i;:::-;27727:73;27795:3;27784:9;27780:19;27771:6;27727:73;:::i;:::-;26976:831;;;;;;;;:::o;27813:147::-;27914:11;27951:3;27936:18;;27813:147;;;;:::o;27966:114::-;;:::o;28086:398::-;28245:3;28266:83;28347:1;28342:3;28266:83;:::i;:::-;28259:90;;28358:93;28447:3;28358:93;:::i;:::-;28476:1;28471:3;28467:11;28460:18;;28086:398;;;:::o;28490:379::-;28674:3;28696:147;28839:3;28696:147;:::i;:::-;28689:154;;28860:3;28853:10;;28490:379;;;:::o;28875:807::-;29124:4;29162:3;29151:9;29147:19;29139:27;;29176:71;29244:1;29233:9;29229:17;29220:6;29176:71;:::i;:::-;29257:72;29325:2;29314:9;29310:18;29301:6;29257:72;:::i;:::-;29339:80;29415:2;29404:9;29400:18;29391:6;29339:80;:::i;:::-;29429;29505:2;29494:9;29490:18;29481:6;29429:80;:::i;:::-;29519:73;29587:3;29576:9;29572:19;29563:6;29519:73;:::i;:::-;29602;29670:3;29659:9;29655:19;29646:6;29602:73;:::i;:::-;28875:807;;;;;;;;;:::o;29688:663::-;29776:6;29784;29792;29841:2;29829:9;29820:7;29816:23;29812:32;29809:119;;;29847:79;;:::i;:::-;29809:119;29967:1;29992:64;30048:7;30039:6;30028:9;30024:22;29992:64;:::i;:::-;29982:74;;29938:128;30105:2;30131:64;30187:7;30178:6;30167:9;30163:22;30131:64;:::i;:::-;30121:74;;30076:129;30244:2;30270:64;30326:7;30317:6;30306:9;30302:22;30270:64;:::i;:::-;30260:74;;30215:129;29688:663;;;;;:::o;30357:332::-;30478:4;30516:2;30505:9;30501:18;30493:26;;30529:71;30597:1;30586:9;30582:17;30573:6;30529:71;:::i;:::-;30610:72;30678:2;30667:9;30663:18;30654:6;30610:72;:::i;:::-;30357:332;;;;;:::o

Swarm Source

ipfs://646c32a36979de8887e2713d99e3e71c91941757e92969a372a63cd8d0c10908

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.