ETH Price: $3,269.01 (+0.58%)

Contract

0xA032D42358cC3D0a38D4500EC5607c092fE9e84e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve208103312024-09-23 2:34:35109 days ago1727058875IN
0xA032D423...92fE9e84e
0 ETH0.000388798.27049288
Approve208102222024-09-23 2:12:47109 days ago1727057567IN
0xA032D423...92fE9e84e
0 ETH0.000394118.37718934
Approve187827712023-12-14 7:03:11393 days ago1702537391IN
0xA032D423...92fE9e84e
0 ETH0.0023439249.8220389
Approve184159852023-10-23 22:35:11444 days ago1698100511IN
0xA032D423...92fE9e84e
0 ETH0.0008934219.01476436
Approve184159642023-10-23 22:30:59444 days ago1698100259IN
0xA032D423...92fE9e84e
0 ETH0.000970820.77299759
Approve184159582023-10-23 22:29:47444 days ago1698100187IN
0xA032D423...92fE9e84e
0 ETH0.0008650318.50984168
Approve184159482023-10-23 22:27:47444 days ago1698100067IN
0xA032D423...92fE9e84e
0 ETH0.0008614118.43235519
Approve183938882023-10-20 20:22:11447 days ago1697833331IN
0xA032D423...92fE9e84e
0 ETH0.0008981719.09135915
Approve183315702023-10-12 3:11:23456 days ago1697080283IN
0xA032D423...92fE9e84e
0 ETH0.000376187.99612725
Approve183314912023-10-12 2:54:59456 days ago1697079299IN
0xA032D423...92fE9e84e
0 ETH0.000250455.32355133
Approve183310682023-10-12 1:29:35456 days ago1697074175IN
0xA032D423...92fE9e84e
0 ETH0.0005890212.5202959
Approve183304042023-10-11 23:15:47456 days ago1697066147IN
0xA032D423...92fE9e84e
0 ETH0.000289916.20361724
Approve183293222023-10-11 19:37:47456 days ago1697053067IN
0xA032D423...92fE9e84e
0 ETH0.0008251417.54360828
Approve183292912023-10-11 19:31:35456 days ago1697052695IN
0xA032D423...92fE9e84e
0 ETH0.0008475618.01563392
Approve183292902023-10-11 19:31:23456 days ago1697052683IN
0xA032D423...92fE9e84e
0 ETH0.0019619841.70359441
Renounce Ownersh...183292792023-10-11 19:29:11456 days ago1697052551IN
0xA032D423...92fE9e84e
0 ETH0.0002859812.20220914
Approve183292752023-10-11 19:28:11456 days ago1697052491IN
0xA032D423...92fE9e84e
0 ETH0.0006551613.92596838
Remove Limits183292732023-10-11 19:27:47456 days ago1697052467IN
0xA032D423...92fE9e84e
0 ETH0.000344859.64738398
Reduce Fee183292702023-10-11 19:27:11456 days ago1697052431IN
0xA032D423...92fE9e84e
0 ETH0.000269238.93434443
Approve183292702023-10-11 19:27:11456 days ago1697052431IN
0xA032D423...92fE9e84e
0 ETH0.0005567511.83434443
Approve183292692023-10-11 19:26:59456 days ago1697052419IN
0xA032D423...92fE9e84e
0 ETH0.0005671112.05456766
Approve183292672023-10-11 19:26:35456 days ago1697052395IN
0xA032D423...92fE9e84e
0 ETH0.0005324611.31800696
Approve183292662023-10-11 19:26:23456 days ago1697052383IN
0xA032D423...92fE9e84e
0 ETH0.0005480411.64908769
Set Structure183292642023-10-11 19:25:59456 days ago1697052359IN
0xA032D423...92fE9e84e
0 ETH0.00026728.45194456
Approve183292632023-10-11 19:25:47456 days ago1697052347IN
0xA032D423...92fE9e84e
0 ETH0.0005395711.46917509
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
208103352024-09-23 2:35:23109 days ago1727058923
0xA032D423...92fE9e84e
0.00300062 ETH
208103352024-09-23 2:35:23109 days ago1727058923
0xA032D423...92fE9e84e
0.00300062 ETH
208103352024-09-23 2:35:23109 days ago1727058923
0xA032D423...92fE9e84e
0.00301126 ETH
208103352024-09-23 2:35:23109 days ago1727058923
0xA032D423...92fE9e84e
0.00301126 ETH
208102412024-09-23 2:16:35109 days ago1727057795
0xA032D423...92fE9e84e
0.00326255 ETH
208102412024-09-23 2:16:35109 days ago1727057795
0xA032D423...92fE9e84e
0.00326255 ETH
184159502023-10-23 22:28:11444 days ago1698100091
0xA032D423...92fE9e84e
0.00280381 ETH
184159502023-10-23 22:28:11444 days ago1698100091
0xA032D423...92fE9e84e
0.00280381 ETH
183705022023-10-17 13:50:59451 days ago1697550659
0xA032D423...92fE9e84e
0.00306468 ETH
183705022023-10-17 13:50:59451 days ago1697550659
0xA032D423...92fE9e84e
0.00306468 ETH
183627352023-10-16 11:47:59452 days ago1697456879
0xA032D423...92fE9e84e
0.00314719 ETH
183627352023-10-16 11:47:59452 days ago1697456879
0xA032D423...92fE9e84e
0.00314719 ETH
183361562023-10-12 18:35:11455 days ago1697135711
0xA032D423...92fE9e84e
0.00326218 ETH
183361562023-10-12 18:35:11455 days ago1697135711
0xA032D423...92fE9e84e
0.00326218 ETH
183328932023-10-12 7:38:23456 days ago1697096303
0xA032D423...92fE9e84e
0.00310767 ETH
183328932023-10-12 7:38:23456 days ago1697096303
0xA032D423...92fE9e84e
0.00310767 ETH
183321172023-10-12 5:02:11456 days ago1697086931
0xA032D423...92fE9e84e
0.00330123 ETH
183321172023-10-12 5:02:11456 days ago1697086931
0xA032D423...92fE9e84e
0.00330123 ETH
183315722023-10-12 3:11:47456 days ago1697080307
0xA032D423...92fE9e84e
0.0037622 ETH
183315722023-10-12 3:11:47456 days ago1697080307
0xA032D423...92fE9e84e
0.0037622 ETH
183315722023-10-12 3:11:47456 days ago1697080307
0xA032D423...92fE9e84e
0.00381993 ETH
183315722023-10-12 3:11:47456 days ago1697080307
0xA032D423...92fE9e84e
0.00381993 ETH
183315402023-10-12 3:05:23456 days ago1697079923
0xA032D423...92fE9e84e
0.00392413 ETH
183315402023-10-12 3:05:23456 days ago1697079923
0xA032D423...92fE9e84e
0.00392413 ETH
183315352023-10-12 3:04:23456 days ago1697079863
0xA032D423...92fE9e84e
0.00413979 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
amphetaMEME

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-10-11
*/

// Website: https://amphetameme.xyz/
// Twitter: https://x.com/Amphetameme2023
// Telegram: https://t.me/amphetameme


// 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 amphetaMEME is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "amphetaMEME";
    string constant _symbol = "UPPER";
    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 =  1000000000 * 10**_decimals; 

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 990;
    uint256 private devFee          = 0;
    uint256 private buybackFee      = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = buybackFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 1000;

    uint256 sellpercent = 990;
    uint256 buypercent = 990;
    uint256 transferpercent = 990; 

    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 / 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;
        isexemptfromfees[marketingFeeReceiver] = true;
        isexemptfromfees[address(this)] = true;
        isexemptfromfees[DEAD] = true;     
        
        isexemptfrommaxTX[msg.sender] = true;
        isexemptfrommaxTX[pair] = true;
        isexemptfrommaxTX[marketingFeeReceiver] = true;
        isexemptfrommaxTX[address(this)] = true;
        isexemptfrommaxTX[DEAD] = true;
        
        autoLiquidityReceiver = 0xc92f27DE389D271E80E9F97ADc85a83e50f7878a;
        marketingFeeReceiver =  0xc92f27DE389D271E80E9F97ADc85a83e50f7878a;
        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");
        
          }
        
               
        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 * 1000);
        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 onlyOwner 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;   
    }

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

             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = 0;
        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 setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        emit set_SwapBack(swapThreshold, swapEnabled);
    }
}

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":"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":"_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":[],"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"}]

60806040526012600a62000014919062000e7e565b633b9aca0062000025919062000ece565b60035562000055606462000046600560035462000bae60201b90919060201c565b62000c2e60201b90919060201c565b60045562000085606462000076600560035462000bae60201b90919060201c565b62000c2e60201b90919060201c565b6005555f600a556103de600b555f600c555f600d555f600e55600e54600c54600a54600b54600d54620000b9919062000f18565b620000c5919062000f18565b620000d1919062000f18565b620000dd919062000f18565b600f556103e86010556103de6011556103de6012556103de601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e860035462000149919062000f7f565b601e5534801562000158575f80fd5b505f6200016a62000c7f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035f91906200101b565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042f91906200101b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048c9291906200105c565b6020604051808303815f875af1158015620004a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cf91906200101b565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073c92f27de389d271e80e9f97adc85a83e50f7878a60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c92f27de389d271e80e9f97adc85a83e50f7878a60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000ba0919062001098565b60405180910390a3620011fd565b5f80830362000bc0575f905062000c28565b5f828462000bcf919062000ece565b905082848262000be0919062000f7f565b1462000c23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c1a9062001137565b60405180910390fd5b809150505b92915050565b5f62000c7783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c8660201b60201c565b905092915050565b5f33905090565b5f808311829062000ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cc69190620011db565b60405180910390fd5b505f838562000cdf919062000f7f565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000d765780860481111562000d4e5762000d4d62000cec565b5b600185161562000d5e5780820291505b808102905062000d6e8562000d19565b945062000d2e565b94509492505050565b5f8262000d90576001905062000e62565b8162000d9f575f905062000e62565b816001811462000db8576002811462000dc35762000df9565b600191505062000e62565b60ff84111562000dd85762000dd762000cec565b5b8360020a91508482111562000df25762000df162000cec565b5b5062000e62565b5060208310610133831016604e8410600b841016171562000e335782820a90508381111562000e2d5762000e2c62000cec565b5b62000e62565b62000e42848484600162000d25565b9250905081840481111562000e5c5762000e5b62000cec565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000e8a8262000e69565b915062000e978362000e72565b925062000ec67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d7f565b905092915050565b5f62000eda8262000e69565b915062000ee78362000e69565b925082820262000ef78162000e69565b9150828204841483151762000f115762000f1062000cec565b5b5092915050565b5f62000f248262000e69565b915062000f318362000e69565b925082820190508082111562000f4c5762000f4b62000cec565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f8b8262000e69565b915062000f988362000e69565b92508262000fab5762000faa62000f52565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000fe58262000fba565b9050919050565b62000ff78162000fd9565b811462001002575f80fd5b50565b5f81519050620010158162000fec565b92915050565b5f6020828403121562001033576200103262000fb6565b5b5f620010428482850162001005565b91505092915050565b620010568162000fd9565b82525050565b5f604082019050620010715f8301856200104b565b6200108060208301846200104b565b9392505050565b620010928162000e69565b82525050565b5f602082019050620010ad5f83018462001087565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200111f602183620010b3565b91506200112c82620010c3565b604082019050919050565b5f6020820190508181035f830152620011508162001111565b9050919050565b5f81519050919050565b5f5b838110156200118057808201518184015260208101905062001163565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620011a78262001157565b620011b38185620010b3565b9350620011c581856020860162001161565b620011d0816200118b565b840191505092915050565b5f6020820190508181035f830152620011f581846200119b565b905092915050565b61382f806200120b5f395ff3fe6080604052600436106101db575f3560e01c806377b54bad11610101578063a9059cbb11610094578063df20fd4911610063578063df20fd491461067e578063f2fde38b146106a6578063f4293890146106ce578063f887ea40146106e4576101e2565b8063a9059cbb146105b4578063b2bdfa7b146105f0578063c0cbdea41461061a578063dd62ed3e14610642576101e2565b80638da5cb5b116100d05780638da5cb5b1461052057806395d89b411461054a578063a70419d214610574578063a8aa1b311461058a576101e2565b806377b54bad1461046657806378109e54146104a25780637d1db4a5146104cc578063893d20e8146104f6576101e2565b8063293230b8116101795780636ddd1713116101485780636ddd1713146103d457806370a08231146103fe578063715018a61461043a578063751039fc14610450576101e2565b8063293230b814610330578063313ce56714610346578063571ac8b0146103705780635d83e1d5146103ac576101e2565b8063095ea7b3116101b5578063095ea7b31461026457806318160ddd146102a05780631df4ccfc146102ca57806323b872dd146102f4576101e2565b80630445b667146101e657806306fdde031461021057806308fd3d051461023a576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61070e565b6040516102079190612bd1565b60405180910390f35b34801561021b575f80fd5b50610224610714565b6040516102319190612c74565b60405180910390f35b348015610245575f80fd5b5061024e610751565b60405161025b9190612cae565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190612d4f565b610764565b6040516102979190612cae565b60405180910390f35b3480156102ab575f80fd5b506102b4610851565b6040516102c19190612bd1565b60405180910390f35b3480156102d5575f80fd5b506102de61085a565b6040516102eb9190612bd1565b60405180910390f35b3480156102ff575f80fd5b5061031a60048036038101906103159190612d8d565b610860565b6040516103279190612cae565b60405180910390f35b34801561033b575f80fd5b50610344610a53565b005b348015610351575f80fd5b5061035a610b04565b6040516103679190612df8565b60405180910390f35b34801561037b575f80fd5b5061039660048036038101906103919190612e11565b610b0c565b6040516103a39190612cae565b60405180910390f35b3480156103b7575f80fd5b506103d260048036038101906103cd9190612e3c565b610b3e565b005b3480156103df575f80fd5b506103e8610c3c565b6040516103f59190612cae565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612e11565b610c4f565b6040516104319190612bd1565b60405180910390f35b348015610445575f80fd5b5061044e610c95565b005b34801561045b575f80fd5b50610464610de3565b005b348015610471575f80fd5b5061048c60048036038101906104879190612d4f565b610e8b565b6040516104999190612cae565b60405180910390f35b3480156104ad575f80fd5b506104b661107f565b6040516104c39190612bd1565b60405180910390f35b3480156104d7575f80fd5b506104e0611085565b6040516104ed9190612bd1565b60405180910390f35b348015610501575f80fd5b5061050a61108b565b6040516105179190612e76565b60405180910390f35b34801561052b575f80fd5b50610534611099565b6040516105419190612e76565b60405180910390f35b348015610555575f80fd5b5061055e6110c0565b60405161056b9190612c74565b60405180910390f35b34801561057f575f80fd5b506105886110fd565b005b348015610595575f80fd5b5061059e6111a8565b6040516105ab9190612e76565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190612d4f565b6111cd565b6040516105e79190612cae565b60405180910390f35b3480156105fb575f80fd5b506106046111e1565b6040516106119190612e76565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b9190612e8f565b611204565b005b34801561064d575f80fd5b5061066860048036038101906106639190612edf565b6112b2565b6040516106759190612bd1565b60405180910390f35b348015610689575f80fd5b506106a4600480360381019061069f9190612f47565b611334565b005b3480156106b1575f80fd5b506106cc60048036038101906106c79190612e11565b611437565b005b3480156106d9575f80fd5b506106e26115f4565b005b3480156106ef575f80fd5b506106f861165b565b6040516107059190612fe0565b60405180910390f35b601e5481565b60606040518060400160405280600b81526020017f616d70686574614d454d45000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161083f9190612bd1565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610a3f576109c2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610a4a8484846116e2565b90509392505050565b610a5b611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90613043565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f6012905090565b5f610b37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610764565b9050919050565b610b46611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990613043565b60405180910390fd5b6001811015610bdf575f80fd5b6103e881600354610bf0919061308e565b610bfa91906130fc565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610c319190612bd1565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c9d611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2090613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610deb611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613043565b60405180910390fd5b600354600481905550600354600581905550565b5f610e94611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613043565b60405180910390fd5b5f8203610fa2578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f609190612e76565b602060405180830381865afa158015610f7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613140565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610fd392919061316b565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161103792919061316b565b6020604051808303815f875af1158015611053573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107791906131a6565b905092915050565b60055481565b60045481565b5f611094611099565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5550504552000000000000000000000000000000000000000000000000000000815250905090565b611105611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118890613043565b60405180910390fd5b5f6012819055505f6011819055505f601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111d93384846116e2565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61120c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613043565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61133c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613043565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff1660405161142b9291906131d1565b60405180910390a15050565b61143f611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613268565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611658573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8383111582906116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9190612c74565b60405180910390fd5b505f83856116d59190613286565b9050809150509392505050565b5f601f5f9054906101000a900460ff161561170957611702848484611d20565b9050611d12565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117a7575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117fc57601d60149054906101000a900460ff166117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290613303565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561187f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b9575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119125750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561196b575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a17575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a7a575f611a2684610c4f565b90506005548382611a379190613321565b1115611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f906133c4565b60405180910390fd5b505b611a848483611eea565b611a8c611f84565b15611a9a57611a99612056565b5b611b21826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bfe575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611c1257611c0d858486612633565b611c14565b825b9050611c668160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d049190612bd1565b60405180910390a360019150505b9392505050565b5f33905090565b5f611da8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e398260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed79190612bd1565b60405180910390a3600190509392505050565b60045481111580611f41575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f779061342c565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611fee5750601f5f9054906101000a900460ff16155b80156120065750601d60159054906101000a900460ff165b80156120515750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f806120ae60026120a0600f5461209286601e54612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f6120c682601e54612b0f90919063ffffffff16565b90505f600267ffffffffffffffff8111156120e4576120e361344a565b5b6040519080825280602002602001820160405280156121125781602001602082028036833780820191505090505b50905030815f8151811061212957612128613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061219957612198613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612239959493929190613594565b5f604051808303815f87803b158015612250575f80fd5b505af1158015612262573d5f803e3d5ffd5b505050505f61227a8247612b0f90919063ffffffff16565b90505f6122a5612294600289612ac690919063ffffffff16565b600f54612b0f90919063ffffffff16565b90505f6122e060026122d2846122c48c88612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f61230a836122fc600b5487612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61233484612326600d5488612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61235e85612350600c5489612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516123a690613619565b5f6040518083038185875af1925050503d805f81146123e0576040519150601f19603f3d011682016040523d82523d5f602084013e6123e5565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161242e90613619565b5f6040518083038185875af1925050503d805f8114612468576040519150601f19603f3d011682016040523d82523d5f602084013e61246d565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516124b890613619565b5f6040518083038185875af1925050503d805f81146124f2576040519150601f19603f3d011682016040523d82523d5f602084013e6124f7565b606091505b5050809150505f90505f8b111561260c57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161258e9695949392919061362d565b60606040518083038185885af11580156125aa573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906125cf919061368c565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516126039291906136dc565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126985760115490506126f3565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036126f25760125490505b5b5f61273c6103e8601054612707919061308e565b61272e84612720600f548a612a4f90919063ffffffff16565b612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f612768600f5461275a600e5485612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61277e8284612b0f90919063ffffffff16565b90506127d08160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128828260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129419190612bd1565b60405180910390a35f8211156129d25761296682600354612b0f90919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129c99190612bd1565b60405180910390a35b6129e58388612b0f90919063ffffffff16565b9450505050509392505050565b5f808284612a009190613321565b905083811015612a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3c9061374d565b60405180910390fd5b8091505092915050565b5f808303612a5f575f9050612ac0565b5f8284612a6c919061308e565b9050828482612a7b91906130fc565b14612abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab2906137db565b60405180910390fd5b809150505b92915050565b5f612b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b58565b905092915050565b5f612b5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611680565b905092915050565b5f8083118290612b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b959190612c74565b60405180910390fd5b505f8385612bac91906130fc565b9050809150509392505050565b5f819050919050565b612bcb81612bb9565b82525050565b5f602082019050612be45f830184612bc2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c21578082015181840152602081019050612c06565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c4682612bea565b612c508185612bf4565b9350612c60818560208601612c04565b612c6981612c2c565b840191505092915050565b5f6020820190508181035f830152612c8c8184612c3c565b905092915050565b5f8115159050919050565b612ca881612c94565b82525050565b5f602082019050612cc15f830184612c9f565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cf482612ccb565b9050919050565b612d0481612cea565b8114612d0e575f80fd5b50565b5f81359050612d1f81612cfb565b92915050565b612d2e81612bb9565b8114612d38575f80fd5b50565b5f81359050612d4981612d25565b92915050565b5f8060408385031215612d6557612d64612cc7565b5b5f612d7285828601612d11565b9250506020612d8385828601612d3b565b9150509250929050565b5f805f60608486031215612da457612da3612cc7565b5b5f612db186828701612d11565b9350506020612dc286828701612d11565b9250506040612dd386828701612d3b565b9150509250925092565b5f60ff82169050919050565b612df281612ddd565b82525050565b5f602082019050612e0b5f830184612de9565b92915050565b5f60208284031215612e2657612e25612cc7565b5b5f612e3384828501612d11565b91505092915050565b5f60208284031215612e5157612e50612cc7565b5b5f612e5e84828501612d3b565b91505092915050565b612e7081612cea565b82525050565b5f602082019050612e895f830184612e67565b92915050565b5f805f60608486031215612ea657612ea5612cc7565b5b5f612eb386828701612d3b565b9350506020612ec486828701612d3b565b9250506040612ed586828701612d3b565b9150509250925092565b5f8060408385031215612ef557612ef4612cc7565b5b5f612f0285828601612d11565b9250506020612f1385828601612d11565b9150509250929050565b612f2681612c94565b8114612f30575f80fd5b50565b5f81359050612f4181612f1d565b92915050565b5f8060408385031215612f5d57612f5c612cc7565b5b5f612f6a85828601612f33565b9250506020612f7b85828601612d3b565b9150509250929050565b5f819050919050565b5f612fa8612fa3612f9e84612ccb565b612f85565b612ccb565b9050919050565b5f612fb982612f8e565b9050919050565b5f612fca82612faf565b9050919050565b612fda81612fc0565b82525050565b5f602082019050612ff35f830184612fd1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61302d602083612bf4565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61309882612bb9565b91506130a383612bb9565b92508282026130b181612bb9565b915082820484148315176130c8576130c7613061565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61310682612bb9565b915061311183612bb9565b925082613121576131206130cf565b5b828204905092915050565b5f8151905061313a81612d25565b92915050565b5f6020828403121561315557613154612cc7565b5b5f6131628482850161312c565b91505092915050565b5f60408201905061317e5f830185612e67565b61318b6020830184612bc2565b9392505050565b5f815190506131a081612f1d565b92915050565b5f602082840312156131bb576131ba612cc7565b5b5f6131c884828501613192565b91505092915050565b5f6040820190506131e45f830185612bc2565b6131f16020830184612c9f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613252602683612bf4565b915061325d826131f8565b604082019050919050565b5f6020820190508181035f83015261327f81613246565b9050919050565b5f61329082612bb9565b915061329b83612bb9565b92508282039050818111156132b3576132b2613061565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6132ed601483612bf4565b91506132f8826132b9565b602082019050919050565b5f6020820190508181035f83015261331a816132e1565b9050919050565b5f61332b82612bb9565b915061333683612bb9565b925082820190508082111561334e5761334d613061565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6133ae603e83612bf4565b91506133b982613354565b604082019050919050565b5f6020820190508181035f8301526133db816133a2565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613416601183612bf4565b9150613421826133e2565b602082019050919050565b5f6020820190508181035f8301526134438161340a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6134c76134c26134bd846134a4565b612f85565b612bb9565b9050919050565b6134d7816134ad565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61350f81612cea565b82525050565b5f6135208383613506565b60208301905092915050565b5f602082019050919050565b5f613542826134dd565b61354c81856134e7565b9350613557836134f7565b805f5b8381101561358757815161356e8882613515565b97506135798361352c565b92505060018101905061355a565b5085935050505092915050565b5f60a0820190506135a75f830188612bc2565b6135b460208301876134ce565b81810360408301526135c68186613538565b90506135d56060830185612e67565b6135e26080830184612bc2565b9695505050505050565b5f81905092915050565b50565b5f6136045f836135ec565b915061360f826135f6565b5f82019050919050565b5f613623826135f9565b9150819050919050565b5f60c0820190506136405f830189612e67565b61364d6020830188612bc2565b61365a60408301876134ce565b61366760608301866134ce565b6136746080830185612e67565b61368160a0830184612bc2565b979650505050505050565b5f805f606084860312156136a3576136a2612cc7565b5b5f6136b08682870161312c565b93505060206136c18682870161312c565b92505060406136d28682870161312c565b9150509250925092565b5f6040820190506136ef5f830185612bc2565b6136fc6020830184612bc2565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613737601b83612bf4565b915061374282613703565b602082019050919050565b5f6020820190508181035f8301526137648161372b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137c5602183612bf4565b91506137d08261376b565b604082019050919050565b5f6020820190508181035f8301526137f2816137b9565b905091905056fea2646970667358221220d79729560aa1fe6e0293d9216e84f3d68434bc9d4e60c971e50fef0d28e72ddf64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101db575f3560e01c806377b54bad11610101578063a9059cbb11610094578063df20fd4911610063578063df20fd491461067e578063f2fde38b146106a6578063f4293890146106ce578063f887ea40146106e4576101e2565b8063a9059cbb146105b4578063b2bdfa7b146105f0578063c0cbdea41461061a578063dd62ed3e14610642576101e2565b80638da5cb5b116100d05780638da5cb5b1461052057806395d89b411461054a578063a70419d214610574578063a8aa1b311461058a576101e2565b806377b54bad1461046657806378109e54146104a25780637d1db4a5146104cc578063893d20e8146104f6576101e2565b8063293230b8116101795780636ddd1713116101485780636ddd1713146103d457806370a08231146103fe578063715018a61461043a578063751039fc14610450576101e2565b8063293230b814610330578063313ce56714610346578063571ac8b0146103705780635d83e1d5146103ac576101e2565b8063095ea7b3116101b5578063095ea7b31461026457806318160ddd146102a05780631df4ccfc146102ca57806323b872dd146102f4576101e2565b80630445b667146101e657806306fdde031461021057806308fd3d051461023a576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61070e565b6040516102079190612bd1565b60405180910390f35b34801561021b575f80fd5b50610224610714565b6040516102319190612c74565b60405180910390f35b348015610245575f80fd5b5061024e610751565b60405161025b9190612cae565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190612d4f565b610764565b6040516102979190612cae565b60405180910390f35b3480156102ab575f80fd5b506102b4610851565b6040516102c19190612bd1565b60405180910390f35b3480156102d5575f80fd5b506102de61085a565b6040516102eb9190612bd1565b60405180910390f35b3480156102ff575f80fd5b5061031a60048036038101906103159190612d8d565b610860565b6040516103279190612cae565b60405180910390f35b34801561033b575f80fd5b50610344610a53565b005b348015610351575f80fd5b5061035a610b04565b6040516103679190612df8565b60405180910390f35b34801561037b575f80fd5b5061039660048036038101906103919190612e11565b610b0c565b6040516103a39190612cae565b60405180910390f35b3480156103b7575f80fd5b506103d260048036038101906103cd9190612e3c565b610b3e565b005b3480156103df575f80fd5b506103e8610c3c565b6040516103f59190612cae565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612e11565b610c4f565b6040516104319190612bd1565b60405180910390f35b348015610445575f80fd5b5061044e610c95565b005b34801561045b575f80fd5b50610464610de3565b005b348015610471575f80fd5b5061048c60048036038101906104879190612d4f565b610e8b565b6040516104999190612cae565b60405180910390f35b3480156104ad575f80fd5b506104b661107f565b6040516104c39190612bd1565b60405180910390f35b3480156104d7575f80fd5b506104e0611085565b6040516104ed9190612bd1565b60405180910390f35b348015610501575f80fd5b5061050a61108b565b6040516105179190612e76565b60405180910390f35b34801561052b575f80fd5b50610534611099565b6040516105419190612e76565b60405180910390f35b348015610555575f80fd5b5061055e6110c0565b60405161056b9190612c74565b60405180910390f35b34801561057f575f80fd5b506105886110fd565b005b348015610595575f80fd5b5061059e6111a8565b6040516105ab9190612e76565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190612d4f565b6111cd565b6040516105e79190612cae565b60405180910390f35b3480156105fb575f80fd5b506106046111e1565b6040516106119190612e76565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b9190612e8f565b611204565b005b34801561064d575f80fd5b5061066860048036038101906106639190612edf565b6112b2565b6040516106759190612bd1565b60405180910390f35b348015610689575f80fd5b506106a4600480360381019061069f9190612f47565b611334565b005b3480156106b1575f80fd5b506106cc60048036038101906106c79190612e11565b611437565b005b3480156106d9575f80fd5b506106e26115f4565b005b3480156106ef575f80fd5b506106f861165b565b6040516107059190612fe0565b60405180910390f35b601e5481565b60606040518060400160405280600b81526020017f616d70686574614d454d45000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161083f9190612bd1565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610a3f576109c2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610a4a8484846116e2565b90509392505050565b610a5b611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90613043565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550565b5f6012905090565b5f610b37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610764565b9050919050565b610b46611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990613043565b60405180910390fd5b6001811015610bdf575f80fd5b6103e881600354610bf0919061308e565b610bfa91906130fc565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610c319190612bd1565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c9d611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2090613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610deb611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613043565b60405180910390fd5b600354600481905550600354600581905550565b5f610e94611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613043565b60405180910390fd5b5f8203610fa2578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f609190612e76565b602060405180830381865afa158015610f7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613140565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610fd392919061316b565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161103792919061316b565b6020604051808303815f875af1158015611053573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107791906131a6565b905092915050565b60055481565b60045481565b5f611094611099565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5550504552000000000000000000000000000000000000000000000000000000815250905090565b611105611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118890613043565b60405180910390fd5b5f6012819055505f6011819055505f601381905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111d93384846116e2565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61120c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613043565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61133c611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613043565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff1660405161142b9291906131d1565b60405180910390a15050565b61143f611d19565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c290613043565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613268565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611658573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8383111582906116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be9190612c74565b60405180910390fd5b505f83856116d59190613286565b9050809150509392505050565b5f601f5f9054906101000a900460ff161561170957611702848484611d20565b9050611d12565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117a7575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117fc57601d60149054906101000a900460ff166117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290613303565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561187f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b9575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119125750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561196b575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a17575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a7a575f611a2684610c4f565b90506005548382611a379190613321565b1115611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f906133c4565b60405180910390fd5b505b611a848483611eea565b611a8c611f84565b15611a9a57611a99612056565b5b611b21826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bfe575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611c1257611c0d858486612633565b611c14565b825b9050611c668160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d049190612bd1565b60405180910390a360019150505b9392505050565b5f33905090565b5f611da8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116809092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e398260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed79190612bd1565b60405180910390a3600190509392505050565b60045481111580611f41575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f779061342c565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611fee5750601f5f9054906101000a900460ff16155b80156120065750601d60159054906101000a900460ff165b80156120515750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f806120ae60026120a0600f5461209286601e54612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f6120c682601e54612b0f90919063ffffffff16565b90505f600267ffffffffffffffff8111156120e4576120e361344a565b5b6040519080825280602002602001820160405280156121125781602001602082028036833780820191505090505b50905030815f8151811061212957612128613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061219957612198613477565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612239959493929190613594565b5f604051808303815f87803b158015612250575f80fd5b505af1158015612262573d5f803e3d5ffd5b505050505f61227a8247612b0f90919063ffffffff16565b90505f6122a5612294600289612ac690919063ffffffff16565b600f54612b0f90919063ffffffff16565b90505f6122e060026122d2846122c48c88612a4f90919063ffffffff16565b612ac690919063ffffffff16565b612ac690919063ffffffff16565b90505f61230a836122fc600b5487612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61233484612326600d5488612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61235e85612350600c5489612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516123a690613619565b5f6040518083038185875af1925050503d805f81146123e0576040519150601f19603f3d011682016040523d82523d5f602084013e6123e5565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161242e90613619565b5f6040518083038185875af1925050503d805f8114612468576040519150601f19603f3d011682016040523d82523d5f602084013e61246d565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516124b890613619565b5f6040518083038185875af1925050503d805f81146124f2576040519150601f19603f3d011682016040523d82523d5f602084013e6124f7565b606091505b5050809150505f90505f8b111561260c57601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161258e9695949392919061362d565b60606040518083038185885af11580156125aa573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906125cf919061368c565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516126039291906136dc565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126985760115490506126f3565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036126f25760125490505b5b5f61273c6103e8601054612707919061308e565b61272e84612720600f548a612a4f90919063ffffffff16565b612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f612768600f5461275a600e5485612a4f90919063ffffffff16565b612ac690919063ffffffff16565b90505f61277e8284612b0f90919063ffffffff16565b90506127d08160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128828260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129f290919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129419190612bd1565b60405180910390a35f8211156129d25761296682600354612b0f90919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129c99190612bd1565b60405180910390a35b6129e58388612b0f90919063ffffffff16565b9450505050509392505050565b5f808284612a009190613321565b905083811015612a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3c9061374d565b60405180910390fd5b8091505092915050565b5f808303612a5f575f9050612ac0565b5f8284612a6c919061308e565b9050828482612a7b91906130fc565b14612abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab2906137db565b60405180910390fd5b809150505b92915050565b5f612b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b58565b905092915050565b5f612b5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611680565b905092915050565b5f8083118290612b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b959190612c74565b60405180910390fd5b505f8385612bac91906130fc565b9050809150509392505050565b5f819050919050565b612bcb81612bb9565b82525050565b5f602082019050612be45f830184612bc2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c21578082015181840152602081019050612c06565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c4682612bea565b612c508185612bf4565b9350612c60818560208601612c04565b612c6981612c2c565b840191505092915050565b5f6020820190508181035f830152612c8c8184612c3c565b905092915050565b5f8115159050919050565b612ca881612c94565b82525050565b5f602082019050612cc15f830184612c9f565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cf482612ccb565b9050919050565b612d0481612cea565b8114612d0e575f80fd5b50565b5f81359050612d1f81612cfb565b92915050565b612d2e81612bb9565b8114612d38575f80fd5b50565b5f81359050612d4981612d25565b92915050565b5f8060408385031215612d6557612d64612cc7565b5b5f612d7285828601612d11565b9250506020612d8385828601612d3b565b9150509250929050565b5f805f60608486031215612da457612da3612cc7565b5b5f612db186828701612d11565b9350506020612dc286828701612d11565b9250506040612dd386828701612d3b565b9150509250925092565b5f60ff82169050919050565b612df281612ddd565b82525050565b5f602082019050612e0b5f830184612de9565b92915050565b5f60208284031215612e2657612e25612cc7565b5b5f612e3384828501612d11565b91505092915050565b5f60208284031215612e5157612e50612cc7565b5b5f612e5e84828501612d3b565b91505092915050565b612e7081612cea565b82525050565b5f602082019050612e895f830184612e67565b92915050565b5f805f60608486031215612ea657612ea5612cc7565b5b5f612eb386828701612d3b565b9350506020612ec486828701612d3b565b9250506040612ed586828701612d3b565b9150509250925092565b5f8060408385031215612ef557612ef4612cc7565b5b5f612f0285828601612d11565b9250506020612f1385828601612d11565b9150509250929050565b612f2681612c94565b8114612f30575f80fd5b50565b5f81359050612f4181612f1d565b92915050565b5f8060408385031215612f5d57612f5c612cc7565b5b5f612f6a85828601612f33565b9250506020612f7b85828601612d3b565b9150509250929050565b5f819050919050565b5f612fa8612fa3612f9e84612ccb565b612f85565b612ccb565b9050919050565b5f612fb982612f8e565b9050919050565b5f612fca82612faf565b9050919050565b612fda81612fc0565b82525050565b5f602082019050612ff35f830184612fd1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61302d602083612bf4565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61309882612bb9565b91506130a383612bb9565b92508282026130b181612bb9565b915082820484148315176130c8576130c7613061565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61310682612bb9565b915061311183612bb9565b925082613121576131206130cf565b5b828204905092915050565b5f8151905061313a81612d25565b92915050565b5f6020828403121561315557613154612cc7565b5b5f6131628482850161312c565b91505092915050565b5f60408201905061317e5f830185612e67565b61318b6020830184612bc2565b9392505050565b5f815190506131a081612f1d565b92915050565b5f602082840312156131bb576131ba612cc7565b5b5f6131c884828501613192565b91505092915050565b5f6040820190506131e45f830185612bc2565b6131f16020830184612c9f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613252602683612bf4565b915061325d826131f8565b604082019050919050565b5f6020820190508181035f83015261327f81613246565b9050919050565b5f61329082612bb9565b915061329b83612bb9565b92508282039050818111156132b3576132b2613061565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6132ed601483612bf4565b91506132f8826132b9565b602082019050919050565b5f6020820190508181035f83015261331a816132e1565b9050919050565b5f61332b82612bb9565b915061333683612bb9565b925082820190508082111561334e5761334d613061565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6133ae603e83612bf4565b91506133b982613354565b604082019050919050565b5f6020820190508181035f8301526133db816133a2565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613416601183612bf4565b9150613421826133e2565b602082019050919050565b5f6020820190508181035f8301526134438161340a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6134c76134c26134bd846134a4565b612f85565b612bb9565b9050919050565b6134d7816134ad565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61350f81612cea565b82525050565b5f6135208383613506565b60208301905092915050565b5f602082019050919050565b5f613542826134dd565b61354c81856134e7565b9350613557836134f7565b805f5b8381101561358757815161356e8882613515565b97506135798361352c565b92505060018101905061355a565b5085935050505092915050565b5f60a0820190506135a75f830188612bc2565b6135b460208301876134ce565b81810360408301526135c68186613538565b90506135d56060830185612e67565b6135e26080830184612bc2565b9695505050505050565b5f81905092915050565b50565b5f6136045f836135ec565b915061360f826135f6565b5f82019050919050565b5f613623826135f9565b9150819050919050565b5f60c0820190506136405f830189612e67565b61364d6020830188612bc2565b61365a60408301876134ce565b61366760608301866134ce565b6136746080830185612e67565b61368160a0830184612bc2565b979650505050505050565b5f805f606084860312156136a3576136a2612cc7565b5b5f6136b08682870161312c565b93505060206136c18682870161312c565b92505060406136d28682870161312c565b9150509250925092565b5f6040820190506136ef5f830185612bc2565b6136fc6020830184612bc2565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613737601b83612bf4565b915061374282613703565b602082019050919050565b5f6020820190508181035f8301526137648161372b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137c5602183612bf4565b91506137d08261376b565b604082019050919050565b5f6020820190508181035f8301526137f2816137b9565b905091905056fea2646970667358221220d79729560aa1fe6e0293d9216e84f3d68434bc9d4e60c971e50fef0d28e72ddf64736f6c63430008140033

Deployed Bytecode Sourcemap

5103:11812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7438:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9079:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7355:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9501:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8809:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6723:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10019:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14659:81;;;;;;;;;;;;;:::i;:::-;;8903:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9725:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10397:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7401:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9249:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2017:148;;;;;;;;;;;;;:::i;:::-;;10654:139;;;;;;;;;;;;;:::i;:::-;;14036:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6226:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6161:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9165:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1803:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8989:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14748:127;;;;;;;;;;;;;:::i;:::-;;7323:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9855:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1423:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14387:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9360:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16701:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2173:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13897:132;;;;;;;;;;;;;:::i;:::-;;7253:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7438:50;;;;:::o;9079:80::-;9127:13;9151:5;;;;;;;;;;;;;;;;;9144:12;;9079:80;:::o;7355:31::-;;;;;;;;;;;;;:::o;9501:216::-;9576:4;9628:6;9593:11;:23;9605:10;9593:23;;;;;;;;;;;;;;;:32;9617:7;9593:32;;;;;;;;;;;;;;;:41;;;;9671:7;9650:37;;9659:10;9650:37;;;9680:6;9650:37;;;;;;:::i;:::-;;;;;;;;9705:4;9698:11;;9501:216;;;;:::o;8809:88::-;8864:7;8882:12;;8875:19;;8809:88;:::o;6723:93::-;;;;:::o;10019:370::-;10119:4;10174:17;10139:11;:19;10151:6;10139:19;;;;;;;;;;;;;;;:31;10159:10;10139:31;;;;;;;;;;;;;;;;:52;10136:186;;10241:69;10277:6;10241:69;;;;;;;;;;;;;;;;;:11;:19;10253:6;10241:19;;;;;;;;;;;;;;;:31;10261:10;10241:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10207:11;:19;10219:6;10207:19;;;;;;;;;;;;;;;:31;10227:10;10207:31;;;;;;;;;;;;;;;:103;;;;10136:186;10341:40;10355:6;10363:9;10374:6;10341:13;:40::i;:::-;10334:47;;10019:370;;;;;:::o;14659:81::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14725:4:::1;14711:11;;:18;;;;;;;;;;;;;;;;;;14659:81::o:0;8903:80::-;8955:5;5468:2;8964:16;;8903:80;:::o;9725:122::-;9780:4;9804:35;9812:7;9821:17;9804:7;:35::i;:::-;9797:42;;9725:122;;;:::o;10397:247::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10501:1:::1;10483:14;:19;;10475:28;;;::::0;::::1;;10568:4;10549:14;10534:12;;:29;;;;:::i;:::-;10533:39;;;;:::i;:::-;10515:15;:57;;;;10588:30;10602:15;;10588:30;;;;;;:::i;:::-;;;;;;;;10397:247:::0;:::o;7401:30::-;;;;;;;;;;;;;:::o;9249:105::-;9315:7;9333:9;:18;9343:7;9333:18;;;;;;;;;;;;;;;;9326:25;;9249:105;;;:::o;2017:148::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2124:1:::1;2087:40;;2108:6;::::0;::::1;;;;;;;;2087:40;;;;;;;;;;;;2155:1;2138:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2017:148::o:0;10654:139::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10728:12:::1;;10713;:27;;;;10773:12;;10755:15;:30;;;;10654:139::o:0;14036:343::-;14127:12;1940;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14165:1:::1;14155:6;:11:::0;14152:95:::1;;14197:12;14191:29;;;14229:4;14191:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14182:53;;14152:95;14262:32;14273:12;14287:6;14262:32;;;;;;;:::i;:::-;;;;;;;;14318:12;14312:28;;;14341:21;;;;;;;;;;;14364:6;14312:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14305:66;;14036:343:::0;;;;:::o;6226:61::-;;;;:::o;6161:58::-;;;;:::o;9165:78::-;9217:7;9234;:5;:7::i;:::-;9227:14;;9165:78;:::o;1803:79::-;1841:7;1868:6;;;;;;;;;;;1861:13;;1803:79;:::o;8989:84::-;9039:13;9063:7;;;;;;;;;;;;;;;;;9056:14;;8989:84;:::o;14748:127::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14810:1:::1;14797:10;:14;;;;14836:1;14822:11;:15;;;;14866:1;14848:15;:19;;;;14748:127::o:0;7323:19::-;;;;;;;;;;;;;:::o;9855:156::-;9935:4;9959:44;9973:10;9985:9;9996:6;9959:13;:44::i;:::-;9952:51;;9855:156;;;;:::o;1423:21::-;;;;;;;;;;;;:::o;14387:257::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14525:14:::1;14511:11;:28;;;;14563:13;14550:10;:26;;;;14605:15;14587;:33;;;;14387:257:::0;;;:::o;9360:133::-;9444:7;9462:11;:19;9474:6;9462:19;;;;;;;;;;;;;;;:28;9482:7;9462:28;;;;;;;;;;;;;;;;9455:35;;9360:133;;;;:::o;16701:211::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16806:8:::1;16792:11;;:22;;;;;;;;;;;;;;;;;;16841:7;16825:13;:23;;;;16864:40;16877:13;;16892:11;;;;;;;;;;;16864:40;;;;;;;:::i;:::-;;;;;;;;16701:211:::0;;:::o;2173:244::-;1940:12;:10;:12::i;:::-;1930:22;;:6;;;;;;;;;;:22;;;1922:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2282:1:::1;2262:22;;:8;:22;;::::0;2254:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2372:8;2343:38;;2364:6;::::0;::::1;;;;;;;;2343:38;;;;;;;;;;;;2401:8;2392:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2173:244:::0;:::o;13897:132::-;13953:21;;;;;;;;;;;13945:39;;:62;13985:21;13945:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13897:132::o;7253:24::-;;;;;;;;;;;;;:::o;4315:192::-;4401:7;4434:1;4429;:6;;4437:12;4421:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4461:9;4477:1;4473;:5;;;;:::i;:::-;4461:17;;4498:1;4491:8;;;4315:192;;;;;:::o;10809:1238::-;10901:4;10921:6;;;;;;;;;;;10918:63;;;10937:41;10952:6;10960:9;10971:6;10937:14;:41::i;:::-;10930:48;;;;10918:63;10997:14;:22;11012:6;10997:22;;;;;;;;;;;;;;;;;;;;;;;;;10996:23;:53;;;;;11024:14;:25;11039:9;11024:25;;;;;;;;;;;;;;;;;;;;;;;;;11023:26;10996:53;10993:139;;;11073:11;;;;;;;;;;;11065:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10993:139;11174:14;:22;11189:6;11174:22;;;;;;;;;;;;;;;;;;;;;;;;;11173:23;:53;;;;;11221:4;11200:26;;:9;:26;;;;11173:53;:84;;;;;5227:42;11231:26;;:9;:26;;;;11173:84;:105;;;;;11274:4;;;;;;;;;;;11261:17;;:9;:17;;;;11173:105;:137;;;;;11295:15;;;;;;;;;;;11282:28;;:9;:28;;;;11173:137;:174;;;;;11327:20;;;;;;;;;;;11314:33;;:9;:33;;;;11173:174;:207;;;;;11352:17;:28;11370:9;11352:28;;;;;;;;;;;;;;;;;;;;;;;;;11351:29;11173:207;11169:399;;;11396:18;11417:20;11427:9;11417;:20::i;:::-;11396:41;;11485:15;;11474:6;11461:10;:19;;;;:::i;:::-;11460:40;;11452:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11381:187;11169:399;11580:28;11593:6;11601;11580:12;:28::i;:::-;11626:16;:14;:16::i;:::-;11623:35;;;11645:10;:8;:10::i;:::-;11623:35;11688:53;11710:6;11688:53;;;;;;;;;;;;;;;;;:9;:17;11698:6;11688:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11668:9;:17;11678:6;11668:17;;;;;;;;;;;;;;;:73;;;;11754:22;11780:16;:24;11797:6;11780:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;11808:16;:27;11825:9;11808:27;;;;;;;;;;;;;;;;;;;;;;;;;11780:55;11779:103;;11848:34;11856:6;11864;11872:9;11848:7;:34::i;:::-;11779:103;;;11839:6;11779:103;11754:128;;11916:40;11941:14;11916:9;:20;11926:9;11916:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11893:9;:20;11903:9;11893:20;;;;;;;;;;;;;;;:63;;;;11991:9;11974:43;;11983:6;11974:43;;;12002:14;11974:43;;;;;;:::i;:::-;;;;;;;;12035:4;12028:11;;;10809:1238;;;;;;:::o;1144:115::-;1197:15;1240:10;1225:26;;1144:115;:::o;12056:330::-;12149:4;12186:53;12208:6;12186:53;;;;;;;;;;;;;;;;;:9;:17;12196:6;12186:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12166:9;:17;12176:6;12166:17;;;;;;;;;;;;;;;:73;;;;12273:32;12298:6;12273:9;:20;12283:9;12273:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12250:9;:20;12260:9;12250:20;;;;;;;;;;;;;;;:55;;;;12338:9;12321:35;;12330:6;12321:35;;;12349:6;12321:35;;;;;;:::i;:::-;;;;;;;;12374:4;12367:11;;12056:330;;;;;:::o;12394:168::-;12491:12;;12481:6;:22;;:51;;;;12507:17;:25;12525:6;12507:25;;;;;;;;;;;;;;;;;;;;;;;;;12481:51;12473:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12394:168;;:::o;13688:197::-;13737:4;13775;;;;;;;;;;;13761:18;;:10;:18;;;;:38;;;;;13793:6;;;;;;;;;;;13792:7;13761:38;:62;;;;;13812:11;;;;;;;;;;;13761:62;:116;;;;;13864:13;;13836:9;:24;13854:4;13836:24;;;;;;;;;;;;;;;;:41;;13761:116;13754:123;;13688:197;:::o;14898:1795::-;7545:4;7536:6;;:13;;;;;;;;;;;;;;;;;;14947:27:::1;14989:23:::0;15015:59:::1;15072:1;15015:52;15058:8;;15015:38;15033:19;15015:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;14989:85;;15085:20;15108:34;15126:15;15108:13;;:17;;:34;;;;:::i;:::-;15085:57;;15155:21;15193:1;15179:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15155:40;;15224:4;15206;15211:1;15206:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15250:4;;;;;;;;;;;15240;15245:1;15240:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;15267:21;15291;15267:45;;15325:6;;;;;;;;;;;:57;;;15397:12;15424:1;15440:4;15467;15487:15;15325:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15526:17;15546:40;15572:13;15546:21;:25;;:40;;;;:::i;:::-;15526:60;;15599:19;15621:40;15634:26;15658:1;15634:19;:23;;:26;;;;:::i;:::-;15621:8;;:12;;:40;;;;:::i;:::-;15599:62;;15682:26;15711:58;15767:1;15711:51;15750:11;15711:34;15725:19;15711:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;15682:87;;15780:26;15809:44;15841:11;15809:27;15823:12;;15809:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;15780:73;;15864:24;15891:42;15921:11;15891:25;15905:10;;15891:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15864:69;;15944:20;15967:38;15993:11;15967:21;15981:6;;15967:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;15944:61;;16019:15;16047:20;;;;;;;;;;;16039:34;;16081:18;16039:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16018:86;;;16139:14;;;;;;;;;;;16131:28;;16167:12;16131:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16115:69;;;;;16219:18;;;;;;;;;;;16211:32;;16251:16;16211:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16195:77;;;;;16306:5;16293:18;;16345:1;16327:15;:19;16324:362;;;16362:6;;;;;;;;;;;:22;;;16392:18;16438:4;16462:15;16496:1;16516::::0;16536:21:::1;;;;;;;;;;;16576:15;16362:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16626:48;16638:18;16658:15;16626:48;;;;;;;:::i;:::-;;;;;;;;16324:362;14936:1757;;;;;;;;;;;;7563:5:::0;7554:6;;:14;;;;;;;;;;;;;;;;;;14898:1795::o;12697:983::-;12783:7;12813:15;12831;;12813:33;;12873:4;;;;;;;;;;;12860:17;;:9;:17;;;12857:142;;12904:11;;12894:21;;12857:142;;;12946:4;;;;;;;;;;;12936:14;;:6;:14;;;12933:66;;12977:10;;12967:20;;12933:66;12857:142;13011:17;13031:60;13086:4;13069:14;;:21;;;;:::i;:::-;13031:33;13056:7;13031:20;13042:8;;13031:6;:10;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;13011:80;;13102:18;13123:36;13150:8;;13123:22;13137:7;;13123:9;:13;;:22;;;;:::i;:::-;:26;;:36;;;;:::i;:::-;13102:57;;13170:22;13195:25;13209:10;13195:9;:13;;:25;;;;:::i;:::-;13170:50;;13258:44;13287:14;13258:9;:24;13276:4;13258:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13231:9;:24;13249:4;13231:24;;;;;;;;;;;;;;;:71;;;;13342:42;13373:10;13342:9;:26;13352:15;;;;;;;;;;;13342:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13313:9;:26;13323:15;;;;;;;;;;;13313:26;;;;;;;;;;;;;;;:71;;;;13425:4;13400:47;;13409:6;13400:47;;;13432:14;13400:47;;;;;;:::i;:::-;;;;;;;;13494:1;13481:10;:14;13478:154;;;13526:28;13543:10;13526:12;;:16;;:28;;;;:::i;:::-;13511:12;:43;;;;5300:42;13574:34;;13583:6;13574:34;;;13597:10;13574:34;;;;;;:::i;:::-;;;;;;;;13478:154;13651:21;13662:9;13651:6;:10;;:21;;;;:::i;:::-;13644:28;;;;;;12697:983;;;;;:::o;3986:181::-;4044:7;4064:9;4080:1;4076;:5;;;;:::i;:::-;4064:17;;4105:1;4100;:6;;4092:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4158:1;4151:8;;;3986:181;;;;:::o;4513:250::-;4571:7;4600:1;4595;:6;4591:47;;4625:1;4618:8;;;;4591:47;4650:9;4666:1;4662;:5;;;;:::i;:::-;4650:17;;4695:1;4690;4686;:5;;;;:::i;:::-;:10;4678:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4754:1;4747:8;;;4513:250;;;;;:::o;4769:132::-;4827:7;4854:39;4858:1;4861;4854:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4847:46;;4769:132;;;;:::o;4173:136::-;4231:7;4258:43;4262:1;4265;4258:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4251:50;;4173:136;;;;:::o;4907:189::-;4993:7;5025:1;5021;:5;5028:12;5013:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5052:9;5068:1;5064;:5;;;;:::i;:::-;5052:17;;5087:1;5080:8;;;4907: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:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:474::-;6568:6;6576;6625:2;6613:9;6604:7;6600:23;6596:32;6593:119;;;6631:79;;:::i;:::-;6593:119;6751:1;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6722:117;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;6500:474;;;;;:::o;6980:116::-;7050:21;7065:5;7050:21;:::i;:::-;7043:5;7040:32;7030:60;;7086:1;7083;7076:12;7030:60;6980:116;:::o;7102:133::-;7145:5;7183:6;7170:20;7161:29;;7199:30;7223:5;7199:30;:::i;:::-;7102:133;;;;:::o;7241:468::-;7306:6;7314;7363:2;7351:9;7342:7;7338:23;7334:32;7331:119;;;7369:79;;:::i;:::-;7331:119;7489:1;7514:50;7556:7;7547:6;7536:9;7532:22;7514:50;:::i;:::-;7504:60;;7460:114;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7241:468;;;;;:::o;7715:60::-;7743:3;7764:5;7757:12;;7715:60;;;:::o;7781:142::-;7831:9;7864:53;7882:34;7891:24;7909:5;7891:24;:::i;:::-;7882:34;:::i;:::-;7864:53;:::i;:::-;7851:66;;7781:142;;;:::o;7929:126::-;7979:9;8012:37;8043:5;8012:37;:::i;:::-;7999:50;;7929:126;;;:::o;8061:144::-;8129:9;8162:37;8193:5;8162:37;:::i;:::-;8149:50;;8061:144;;;:::o;8211:167::-;8316:55;8365:5;8316:55;:::i;:::-;8311:3;8304:68;8211:167;;:::o;8384:258::-;8495:4;8533:2;8522:9;8518:18;8510:26;;8546:89;8632:1;8621:9;8617:17;8608:6;8546:89;:::i;:::-;8384:258;;;;:::o;8648:182::-;8788:34;8784:1;8776:6;8772:14;8765:58;8648:182;:::o;8836:366::-;8978:3;8999:67;9063:2;9058:3;8999:67;:::i;:::-;8992:74;;9075:93;9164:3;9075:93;:::i;:::-;9193:2;9188:3;9184:12;9177:19;;8836:366;;;:::o;9208:419::-;9374:4;9412:2;9401:9;9397:18;9389:26;;9461:9;9455:4;9451:20;9447:1;9436:9;9432:17;9425:47;9489:131;9615:4;9489:131;:::i;:::-;9481:139;;9208:419;;;:::o;9633:180::-;9681:77;9678:1;9671:88;9778:4;9775:1;9768:15;9802:4;9799:1;9792:15;9819:410;9859:7;9882:20;9900:1;9882:20;:::i;:::-;9877:25;;9916:20;9934:1;9916:20;:::i;:::-;9911:25;;9971:1;9968;9964:9;9993:30;10011:11;9993:30;:::i;:::-;9982:41;;10172:1;10163:7;10159:15;10156:1;10153:22;10133:1;10126:9;10106:83;10083:139;;10202:18;;:::i;:::-;10083:139;9867:362;9819:410;;;;:::o;10235:180::-;10283:77;10280:1;10273:88;10380:4;10377:1;10370:15;10404:4;10401:1;10394:15;10421:185;10461:1;10478:20;10496:1;10478:20;:::i;:::-;10473:25;;10512:20;10530:1;10512:20;:::i;:::-;10507:25;;10551:1;10541:35;;10556:18;;:::i;:::-;10541:35;10598:1;10595;10591:9;10586:14;;10421:185;;;;:::o;10612:143::-;10669:5;10700:6;10694:13;10685:22;;10716:33;10743:5;10716:33;:::i;:::-;10612:143;;;;:::o;10761:351::-;10831:6;10880:2;10868:9;10859:7;10855:23;10851:32;10848:119;;;10886:79;;:::i;:::-;10848:119;11006:1;11031:64;11087:7;11078:6;11067:9;11063:22;11031:64;:::i;:::-;11021:74;;10977:128;10761:351;;;;:::o;11118:332::-;11239:4;11277:2;11266:9;11262:18;11254:26;;11290:71;11358:1;11347:9;11343:17;11334:6;11290:71;:::i;:::-;11371:72;11439:2;11428:9;11424:18;11415:6;11371:72;:::i;:::-;11118:332;;;;;:::o;11456:137::-;11510:5;11541:6;11535:13;11526:22;;11557:30;11581:5;11557:30;:::i;:::-;11456:137;;;;:::o;11599:345::-;11666:6;11715:2;11703:9;11694:7;11690:23;11686:32;11683:119;;;11721:79;;:::i;:::-;11683:119;11841:1;11866:61;11919:7;11910:6;11899:9;11895:22;11866:61;:::i;:::-;11856:71;;11812:125;11599:345;;;;:::o;11950:320::-;12065:4;12103:2;12092:9;12088:18;12080:26;;12116:71;12184:1;12173:9;12169:17;12160:6;12116:71;:::i;:::-;12197:66;12259:2;12248:9;12244:18;12235:6;12197:66;:::i;:::-;11950:320;;;;;:::o;12276:225::-;12416:34;12412:1;12404:6;12400:14;12393:58;12485:8;12480:2;12472:6;12468:15;12461:33;12276:225;:::o;12507:366::-;12649:3;12670:67;12734:2;12729:3;12670:67;:::i;:::-;12663:74;;12746:93;12835:3;12746:93;:::i;:::-;12864:2;12859:3;12855:12;12848:19;;12507:366;;;:::o;12879:419::-;13045:4;13083:2;13072:9;13068:18;13060:26;;13132:9;13126:4;13122:20;13118:1;13107:9;13103:17;13096:47;13160:131;13286:4;13160:131;:::i;:::-;13152:139;;12879:419;;;:::o;13304:194::-;13344:4;13364:20;13382:1;13364:20;:::i;:::-;13359:25;;13398:20;13416:1;13398:20;:::i;:::-;13393:25;;13442:1;13439;13435:9;13427:17;;13466:1;13460:4;13457:11;13454:37;;;13471:18;;:::i;:::-;13454:37;13304:194;;;;:::o;13504:170::-;13644:22;13640:1;13632:6;13628:14;13621:46;13504:170;:::o;13680:366::-;13822:3;13843:67;13907:2;13902:3;13843:67;:::i;:::-;13836:74;;13919:93;14008:3;13919:93;:::i;:::-;14037:2;14032:3;14028:12;14021:19;;13680:366;;;:::o;14052:419::-;14218:4;14256:2;14245:9;14241:18;14233:26;;14305:9;14299:4;14295:20;14291:1;14280:9;14276:17;14269:47;14333:131;14459:4;14333:131;:::i;:::-;14325:139;;14052:419;;;:::o;14477:191::-;14517:3;14536:20;14554:1;14536:20;:::i;:::-;14531:25;;14570:20;14588:1;14570:20;:::i;:::-;14565:25;;14613:1;14610;14606:9;14599:16;;14634:3;14631:1;14628:10;14625:36;;;14641:18;;:::i;:::-;14625:36;14477:191;;;;:::o;14674:249::-;14814:34;14810:1;14802:6;14798:14;14791:58;14883:32;14878:2;14870:6;14866:15;14859:57;14674:249;:::o;14929:366::-;15071:3;15092:67;15156:2;15151:3;15092:67;:::i;:::-;15085:74;;15168:93;15257:3;15168:93;:::i;:::-;15286:2;15281:3;15277:12;15270:19;;14929:366;;;:::o;15301:419::-;15467:4;15505:2;15494:9;15490:18;15482:26;;15554:9;15548:4;15544:20;15540:1;15529:9;15525:17;15518:47;15582:131;15708:4;15582:131;:::i;:::-;15574:139;;15301:419;;;:::o;15726:167::-;15866:19;15862:1;15854:6;15850:14;15843:43;15726:167;:::o;15899:366::-;16041:3;16062:67;16126:2;16121:3;16062:67;:::i;:::-;16055:74;;16138:93;16227:3;16138:93;:::i;:::-;16256:2;16251:3;16247:12;16240:19;;15899:366;;;:::o;16271:419::-;16437:4;16475:2;16464:9;16460:18;16452:26;;16524:9;16518:4;16514:20;16510:1;16499:9;16495:17;16488:47;16552:131;16678:4;16552:131;:::i;:::-;16544:139;;16271:419;;;:::o;16696:180::-;16744:77;16741:1;16734:88;16841:4;16838:1;16831:15;16865:4;16862:1;16855:15;16882:180;16930:77;16927:1;16920:88;17027:4;17024:1;17017:15;17051:4;17048:1;17041:15;17068:85;17113:7;17142:5;17131:16;;17068:85;;;:::o;17159:158::-;17217:9;17250:61;17268:42;17277:32;17303:5;17277:32;:::i;:::-;17268:42;:::i;:::-;17250:61;:::i;:::-;17237:74;;17159:158;;;:::o;17323:147::-;17418:45;17457:5;17418:45;:::i;:::-;17413:3;17406:58;17323:147;;:::o;17476:114::-;17543:6;17577:5;17571:12;17561:22;;17476:114;;;:::o;17596:184::-;17695:11;17729:6;17724:3;17717:19;17769:4;17764:3;17760:14;17745:29;;17596:184;;;;:::o;17786:132::-;17853:4;17876:3;17868:11;;17906:4;17901:3;17897:14;17889:22;;17786:132;;;:::o;17924:108::-;18001:24;18019:5;18001:24;:::i;:::-;17996:3;17989:37;17924:108;;:::o;18038:179::-;18107:10;18128:46;18170:3;18162:6;18128:46;:::i;:::-;18206:4;18201:3;18197:14;18183:28;;18038:179;;;;:::o;18223:113::-;18293:4;18325;18320:3;18316:14;18308:22;;18223:113;;;:::o;18372:732::-;18491:3;18520:54;18568:5;18520:54;:::i;:::-;18590:86;18669:6;18664:3;18590:86;:::i;:::-;18583:93;;18700:56;18750:5;18700:56;:::i;:::-;18779:7;18810:1;18795:284;18820:6;18817:1;18814:13;18795:284;;;18896:6;18890:13;18923:63;18982:3;18967:13;18923:63;:::i;:::-;18916:70;;19009:60;19062:6;19009:60;:::i;:::-;18999:70;;18855:224;18842:1;18839;18835:9;18830:14;;18795:284;;;18799:14;19095:3;19088:10;;18496:608;;;18372:732;;;;:::o;19110:831::-;19373:4;19411:3;19400:9;19396:19;19388:27;;19425:71;19493:1;19482:9;19478:17;19469:6;19425:71;:::i;:::-;19506:80;19582:2;19571:9;19567:18;19558:6;19506:80;:::i;:::-;19633:9;19627:4;19623:20;19618:2;19607:9;19603:18;19596:48;19661:108;19764:4;19755:6;19661:108;:::i;:::-;19653:116;;19779:72;19847:2;19836:9;19832:18;19823:6;19779:72;:::i;:::-;19861:73;19929:3;19918:9;19914:19;19905:6;19861:73;:::i;:::-;19110:831;;;;;;;;:::o;19947:147::-;20048:11;20085:3;20070:18;;19947:147;;;;:::o;20100:114::-;;:::o;20220:398::-;20379:3;20400:83;20481:1;20476:3;20400:83;:::i;:::-;20393:90;;20492:93;20581:3;20492:93;:::i;:::-;20610:1;20605:3;20601:11;20594:18;;20220:398;;;:::o;20624:379::-;20808:3;20830:147;20973:3;20830:147;:::i;:::-;20823:154;;20994:3;20987:10;;20624:379;;;:::o;21009:807::-;21258:4;21296:3;21285:9;21281:19;21273:27;;21310:71;21378:1;21367:9;21363:17;21354:6;21310:71;:::i;:::-;21391:72;21459:2;21448:9;21444:18;21435:6;21391:72;:::i;:::-;21473:80;21549:2;21538:9;21534:18;21525:6;21473:80;:::i;:::-;21563;21639:2;21628:9;21624:18;21615:6;21563:80;:::i;:::-;21653:73;21721:3;21710:9;21706:19;21697:6;21653:73;:::i;:::-;21736;21804:3;21793:9;21789:19;21780:6;21736:73;:::i;:::-;21009:807;;;;;;;;;:::o;21822:663::-;21910:6;21918;21926;21975:2;21963:9;21954:7;21950:23;21946:32;21943:119;;;21981:79;;:::i;:::-;21943:119;22101:1;22126:64;22182:7;22173:6;22162:9;22158:22;22126:64;:::i;:::-;22116:74;;22072:128;22239:2;22265:64;22321:7;22312:6;22301:9;22297:22;22265:64;:::i;:::-;22255:74;;22210:129;22378:2;22404:64;22460:7;22451:6;22440:9;22436:22;22404:64;:::i;:::-;22394:74;;22349:129;21822:663;;;;;:::o;22491:332::-;22612:4;22650:2;22639:9;22635:18;22627:26;;22663:71;22731:1;22720:9;22716:17;22707:6;22663:71;:::i;:::-;22744:72;22812:2;22801:9;22797:18;22788:6;22744:72;:::i;:::-;22491:332;;;;;:::o;22829:177::-;22969:29;22965:1;22957:6;22953:14;22946:53;22829:177;:::o;23012:366::-;23154:3;23175:67;23239:2;23234:3;23175:67;:::i;:::-;23168:74;;23251:93;23340:3;23251:93;:::i;:::-;23369:2;23364:3;23360:12;23353:19;;23012:366;;;:::o;23384:419::-;23550:4;23588:2;23577:9;23573:18;23565:26;;23637:9;23631:4;23627:20;23623:1;23612:9;23608:17;23601:47;23665:131;23791:4;23665:131;:::i;:::-;23657:139;;23384:419;;;:::o;23809:220::-;23949:34;23945:1;23937:6;23933:14;23926:58;24018:3;24013:2;24005:6;24001:15;23994:28;23809:220;:::o;24035:366::-;24177:3;24198:67;24262:2;24257:3;24198:67;:::i;:::-;24191:74;;24274:93;24363:3;24274:93;:::i;:::-;24392:2;24387:3;24383:12;24376:19;;24035:366;;;:::o;24407:419::-;24573:4;24611:2;24600:9;24596:18;24588:26;;24660:9;24654:4;24650:20;24646:1;24635:9;24631:17;24624:47;24688:131;24814:4;24688:131;:::i;:::-;24680:139;;24407:419;;;:::o

Swarm Source

ipfs://d79729560aa1fe6e0293d9216e84f3d68434bc9d4e60c971e50fef0d28e72ddf

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.