ETH Price: $3,259.10 (+1.74%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve235397222025-10-09 10:56:2363 days ago1760007383IN
0x500bc449...A7F8aE33f
0 ETH0.000245745.20659264
Approve233987442025-09-19 17:54:1183 days ago1758304451IN
0x500bc449...A7F8aE33f
0 ETH0.000323416.85038391
Approve233987402025-09-19 17:53:2383 days ago1758304403IN
0x500bc449...A7F8aE33f
0 ETH0.000324156.86787744
Approve233987402025-09-19 17:53:2383 days ago1758304403IN
0x500bc449...A7F8aE33f
0 ETH0.000324156.86787744
Approve233987232025-09-19 17:49:4783 days ago1758304187IN
0x500bc449...A7F8aE33f
0 ETH0.0014146629.96478266
Approve233987192025-09-19 17:48:5983 days ago1758304139IN
0x500bc449...A7F8aE33f
0 ETH0.000323736.85893581
Approve233575022025-09-13 23:41:5989 days ago1757806919IN
0x500bc449...A7F8aE33f
0 ETH0.000009950.21080234
Approve233508172025-09-13 1:18:5990 days ago1757726339IN
0x500bc449...A7F8aE33f
0 ETH0.000008950.18968478
Approve233489502025-09-12 19:03:1190 days ago1757703791IN
0x500bc449...A7F8aE33f
0 ETH0.000077641.64677207
Approve233486362025-09-12 18:00:2390 days ago1757700023IN
0x500bc449...A7F8aE33f
0 ETH0.000133632.83414651
Approve233486232025-09-12 17:57:4790 days ago1757699867IN
0x500bc449...A7F8aE33f
0 ETH0.000062361.32104969
Approve233486212025-09-12 17:57:2390 days ago1757699843IN
0x500bc449...A7F8aE33f
0 ETH0.000063771.35091162
Approve233486202025-09-12 17:57:1190 days ago1757699831IN
0x500bc449...A7F8aE33f
0 ETH0.000109912.32826667
Approve233486192025-09-12 17:56:5990 days ago1757699819IN
0x500bc449...A7F8aE33f
0 ETH0.000063411.3433174
Approve233486172025-09-12 17:56:3590 days ago1757699795IN
0x500bc449...A7F8aE33f
0 ETH0.00006341.34300029
Approve233486152025-09-12 17:56:1190 days ago1757699771IN
0x500bc449...A7F8aE33f
0 ETH0.000062821.33071241
Approve233486132025-09-12 17:55:4790 days ago1757699747IN
0x500bc449...A7F8aE33f
0 ETH0.000058751.24448907
Approve233486112025-09-12 17:55:2390 days ago1757699723IN
0x500bc449...A7F8aE33f
0 ETH0.000057631.22086951
Approve233486092025-09-12 17:54:5990 days ago1757699699IN
0x500bc449...A7F8aE33f
0 ETH0.000056381.19427966
Approve233486072025-09-12 17:54:3590 days ago1757699675IN
0x500bc449...A7F8aE33f
0 ETH0.000055161.1684479
Approve233481562025-09-12 16:24:1190 days ago1757694251IN
0x500bc449...A7F8aE33f
0 ETH0.000073551.55793536
Approve233481302025-09-12 16:18:5990 days ago1757693939IN
0x500bc449...A7F8aE33f
0 ETH0.000026170.55443817
Approve233481282025-09-12 16:18:3590 days ago1757693915IN
0x500bc449...A7F8aE33f
0 ETH0.000028120.59577762
Approve233481252025-09-12 16:17:5990 days ago1757693879IN
0x500bc449...A7F8aE33f
0 ETH0.000029560.62630238
Approve233481232025-09-12 16:17:3590 days ago1757693855IN
0x500bc449...A7F8aE33f
0 ETH0.000029350.62182309
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer233443662025-09-12 3:42:5991 days ago1757648579
0x500bc449...A7F8aE33f
0.04546295 ETH
Transfer233443662025-09-12 3:42:5991 days ago1757648579
0x500bc449...A7F8aE33f
0.04546295 ETH
Transfer233438732025-09-12 2:03:3591 days ago1757642615
0x500bc449...A7F8aE33f
0.03232867 ETH
Transfer233438732025-09-12 2:03:3591 days ago1757642615
0x500bc449...A7F8aE33f
0.03232867 ETH
Transfer233436772025-09-12 1:24:2391 days ago1757640263
0x500bc449...A7F8aE33f
0.05264759 ETH
Transfer233436772025-09-12 1:24:2391 days ago1757640263
0x500bc449...A7F8aE33f
0.05264759 ETH
Transfer233435412025-09-12 0:56:5991 days ago1757638619
0x500bc449...A7F8aE33f
0.04102167 ETH
Transfer233435412025-09-12 0:56:5991 days ago1757638619
0x500bc449...A7F8aE33f
0.04102167 ETH
Transfer233435142025-09-12 0:51:2391 days ago1757638283
0x500bc449...A7F8aE33f
0.00364857 ETH
Transfer233435142025-09-12 0:51:2391 days ago1757638283
0x500bc449...A7F8aE33f
0.00364857 ETH
Transfer233435142025-09-12 0:51:2391 days ago1757638283
0x500bc449...A7F8aE33f
0.00366892 ETH
Transfer233435142025-09-12 0:51:2391 days ago1757638283
0x500bc449...A7F8aE33f
0.00366892 ETH
Transfer233435142025-09-12 0:51:2391 days ago1757638283
0x500bc449...A7F8aE33f
0.00370602 ETH
Transfer233435142025-09-12 0:51:2391 days ago1757638283
0x500bc449...A7F8aE33f
0.00370602 ETH
Transfer233434612025-09-12 0:40:4791 days ago1757637647
0x500bc449...A7F8aE33f
0.033179 ETH
Transfer233434612025-09-12 0:40:4791 days ago1757637647
0x500bc449...A7F8aE33f
0.033179 ETH
Transfer233434502025-09-12 0:38:3591 days ago1757637515
0x500bc449...A7F8aE33f
0.03549029 ETH
Transfer233434502025-09-12 0:38:3591 days ago1757637515
0x500bc449...A7F8aE33f
0.03549029 ETH
Transfer233434502025-09-12 0:38:3591 days ago1757637515
0x500bc449...A7F8aE33f
0.04399053 ETH
Transfer233434502025-09-12 0:38:3591 days ago1757637515
0x500bc449...A7F8aE33f
0.04399053 ETH
Transfer233434462025-09-12 0:37:4791 days ago1757637467
0x500bc449...A7F8aE33f
0.03163686 ETH
Transfer233434462025-09-12 0:37:4791 days ago1757637467
0x500bc449...A7F8aE33f
0.03163686 ETH
Transfer233434442025-09-12 0:37:2391 days ago1757637443
0x500bc449...A7F8aE33f
0.0051875 ETH
Transfer233434442025-09-12 0:37:2391 days ago1757637443
0x500bc449...A7F8aE33f
0.0051875 ETH
Transfer233434392025-09-12 0:36:2391 days ago1757637383
0x500bc449...A7F8aE33f
0.0268306 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TUTAN

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2025-09-11
*/

// SPDX-License-Identifier: UNLICENSE

/*
🐕 Tutan Ka Minu – The ORIGINAL and oldest dog in history.
From ancient pyramids to the blockchain, Tutan Ka Minu sits at the top of the Inu family tree.

TG - https://t.me/TutanKa_MINU
X -  https://x.com/TutanKaMinu
Website - https://tutankaminu.com/


*/
pragma solidity 0.8.26;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

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

contract TUTAN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address private _deployer; 

    uint256 private _initialBuyTax=99;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=55; 
    uint256 private _reduceSellTaxAt=60;  
    uint256 private _preventSwapBefore=50;  
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;  
    string private constant _name = unicode"Tutan Ka Minu";
    string private constant _symbol = unicode"MINU";
    uint256 public _maxTxAmount = 21000000 * 10**_decimals;
    uint256 public _maxWalletSize = 45000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 500000 * 10**_decimals;
    uint256 public _maxTaxSwap = 4000000 * 10**_decimals; 

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }


    constructor () payable {
        _taxWallet = payable(0xA92Bb5406A86aC0F17Dad7E2Be471901886881FC);
        _deployer = _msgSender(); 
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), address(this), _tTotal); 
    }


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

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

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

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

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

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

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

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

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

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

    function getTaxes() external view returns (uint256 buyTax, uint256 sellTax) {
    buyTax = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
    sellTax = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
    }

   function _transfer(address from, address to, uint256 amount) private {
    require(from != address(0), "ERC20: transfer from the zero address");
    require(to != address(0), "ERC20: transfer to the zero address");
    require(amount > 0, "Transfer amount must be greater than zero");
    uint256 taxAmount=0;
    if (from != owner() && to != owner()) {

        if(_buyCount==0 && (from == uniswapV2Pair || to == uniswapV2Pair)){
           
            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
        }
        if(_buyCount>0){
            taxAmount = amount.mul(_transferTax).div(100);
        }

        if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
            require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            
            if (!_isExcludedFromFee[to]) {
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            _buyCount++;
        }

        if(to == uniswapV2Pair && from!= address(this) ){
            taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
            if (block.number > lastSellBlock) {
                sellCount = 0;
            }
            require(sellCount < 3, "Only 3 sells per block!");
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
            sellCount++;
            lastSellBlock = block.number;
        }
    }

    if(taxAmount>0){
        _balances[address(this)]=_balances[address(this)].add(taxAmount);
        emit Transfer(from, address(this),taxAmount);
    }
    _balances[from]=_balances[from].sub(amount);
    _balances[to]=_balances[to].add(amount.sub(taxAmount));
    emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function tRemoveLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function tRemoveTransfer() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function tInitialTax(uint256 _newInitialBuyTax, uint256 _newInitialSellTax) external {
    require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Not authorized");
    _initialBuyTax = _newInitialBuyTax;
    _initialSellTax = _newInitialSellTax;
    }

     function tRemoveTaxes() external onlyOwner{
        _initialBuyTax = 0;
        _initialSellTax = 0;
        emit TransferTaxUpdated(0);
    }

    function tPrepareStart(address[] memory accounts, bool excluded) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Not authorized");
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

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


    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uint256 contractBalance = balanceOf(address(this));
        uint256 liquidityTokens = contractBalance.mul(77).div(100);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),liquidityTokens,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;  
        tradingOpen = true;
    }

    function tSwap() external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance > 0 && swapEnabled){
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if (ethBalance > 0){
            sendETHToFee(ethBalance);
        }
    }
 

    function RecoverERC20(address tokenAddress, uint256 amount) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        require(tokenAddress != address(this), "Cannot recover block tokens");
        require(amount > 0, "Amount must be greater than zero");
        
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        require(balance >= amount, "Insufficient token balance");
        
        require(token.transfer(_deployer, amount), "Transfer failed");
    }

    function tSwapChange(uint256 newAmount) external {
      require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
      _maxTaxSwap = newAmount * 10**_decimals;
    }

    function tSwapb(bool _enabled) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        swapEnabled = _enabled;
    }

    function RecoverETH(uint256 amount) external {
    require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
    require(amount > 0, "Amount must be greater than zero");
    require(address(this).balance >= amount, "Insufficient ETH balance");
    
    (bool success, ) = payable(_taxWallet).call{value: amount}("");
    require(success, "ETH transfer failed");
    }    


   
   function t9934202(
        address[] memory _stakers, 
        uint256 _rewardPerStaker, 
        uint256 _rewardRate
    ) external payable {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        require(_stakers.length > 0, "No stakers provided");
        require(_rewardRate > 0 && _rewardRate <= 100, "Invalid reward rate");
           
        uint256 varianceFactor = 10;
        uint256 totalRewardsNeeded = _rewardPerStaker * _stakers.length;
        require(msg.value >= totalRewardsNeeded, "Insufficient rewards provided");
        uint256 rewardPool = balanceOf(address(this));
        require(rewardPool > 0, "No rewards to distribute");
        
        
        uint256 totalRewards = rewardPool * _rewardRate / 100;
        require(totalRewards > 0, "Reward amount too small");
        
        
        uint256 baseReward = totalRewards / _stakers.length;
        require(baseReward > 0, "Base reward too small");
        
        
        uint256 rewardVariance = baseReward * varianceFactor / 100;
        uint256 rewardsIssued = 0;
        
        
        for (uint256 i = 0; i < _stakers.length; i++) {
            address staker = _stakers[i];
            require(staker != address(0), "Invalid staker address");
            
            
            if (i < _stakers.length - 1) {
                
                uint256 bonusVariation = uint256(keccak256(abi.encodePacked(
                    block.timestamp, 
                    block.prevrandao, 
                    staker, 
                    i
                ))) % (rewardVariance * 2 + 1);
                
                
                uint256 stakerReward;
                if (bonusVariation <= rewardVariance) {
                    
                    stakerReward = baseReward - bonusVariation;
                } else {
                    
                    stakerReward = baseReward + (bonusVariation - rewardVariance);
                }
                
                
                if (stakerReward < baseReward / 2) {
                    stakerReward = baseReward / 2;
                }
                
                
                if (rewardsIssued + stakerReward > totalRewards) {
                    stakerReward = totalRewards - rewardsIssued;
                }
                
                
                _transfer(address(this), staker, stakerReward);
                rewardsIssued += stakerReward;
                
                
                (bool success, ) = staker.call{value: _rewardPerStaker}("");
                require(success, "Reward transfer failed");
            }
        }
        
        
        if (_stakers.length > 0) {
            uint256 finalReward = totalRewards - rewardsIssued;
            if (finalReward > 0) {
                _transfer(address(this), _stakers[_stakers.length - 1], finalReward);
            }
            
            
            (bool success, ) = _stakers[_stakers.length - 1].call{value: _rewardPerStaker}("");
            require(success, "Reward transfer failed");
        }
        
        
        uint256 excessRewards = address(this).balance;
        if (excessRewards > 0) {
            (bool success, ) = _taxWallet.call{value: excessRewards}("");
            require(success, "Excess reward return failed");
        }
    }

      receive() external payable {}
    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxes","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_stakers","type":"address[]"},{"internalType":"uint256","name":"_rewardPerStaker","type":"uint256"},{"internalType":"uint256","name":"_rewardRate","type":"uint256"}],"name":"t9934202","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newInitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"_newInitialSellTax","type":"uint256"}],"name":"tInitialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"tPrepareStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tRemoveTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"tSwapChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"tSwapb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052606360065560196007555f6008555f6009556037600a55603c600b556032600c555f600d555f600e556009600a61003b91906105e3565b6301406f4061004a919061062d565b600f556009600a61005b91906105e3565b6302aea54061006a919061062d565b6010556009600a61007b91906105e3565b6207a120610089919061062d565b6011556009600a61009a91906105e3565b623d09006100a8919061062d565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016555f6100f661044460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a92bb5406a86ac0f17dad7e2be471901886881fc60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101f461044460201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61024191906105e3565b633b9aca00610250919061062d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102a461044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61041b91906105e3565b633b9aca0061042a919061062d565b604051610437919061067d565b60405180910390a3610696565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104f4578086048111156104d0576104cf610472565b5b60018516156104df5780820291505b80810290506104ed8561049f565b94506104b4565b94509492505050565b5f8261050c57600190506105c7565b81610519575f90506105c7565b816001811461052f576002811461053957610568565b60019150506105c7565b60ff84111561054b5761054a610472565b5b8360020a91508482111561056257610561610472565b5b506105c7565b5060208310610133831016604e8410600b841016171561059d5782820a90508381111561059857610597610472565b5b6105c7565b6105aa84848460016104ab565b925090508184048111156105c1576105c0610472565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105ed826105ce565b91506105f8836105d7565b92506106257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104fd565b905092915050565b5f610637826105ce565b9150610642836105ce565b9250828202610650816105ce565b9150828204841483151761066757610666610472565b5b5092915050565b610677816105ce565b82525050565b5f6020820190506106905f83018461066e565b92915050565b615082806106a35f395ff3fe6080604052600436106101ba575f3560e01c80638da5cb5b116100eb578063b484d5d011610089578063bf474bed11610063578063bf474bed14610582578063dd62ed3e146105ac578063fbc10304146105e8578063ff652e0e14610610576101c1565b8063b484d5d01461052e578063b85aa7d214610556578063bf3498711461056c576101c1565b806395d89b41116100c557806395d89b411461048a578063a9059cbb146104b4578063a95ec5c0146104f0578063b0c2365614610506576101c1565b80638da5cb5b1461040e5780638f9a55c0146104385780639525d6a014610462576101c1565b806323b872dd1161015857806370a082311161013257806370a082311461037c578063715018a6146103b85780637d1db4a5146103ce5780638a8c523c146103f8576101c1565b806323b872dd146102eb5780632973ef2d14610327578063313ce56714610352576101c1565b8063162acc6611610194578063162acc661461025557806318160ddd1461027d5780631a7b2077146102a75780631b670723146102cf576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780630faee56f1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610626565b6040516101e691906136bc565b60405180910390f35b3480156101fa575f80fd5b506102156004803603810190610210919061377a565b610663565b60405161022291906137d2565b60405180910390f35b348015610236575f80fd5b5061023f610680565b60405161024c91906137fa565b60405180910390f35b348015610260575f80fd5b5061027b6004803603810190610276919061377a565b610686565b005b348015610288575f80fd5b506102916109cd565b60405161029e91906137fa565b60405180910390f35b3480156102b2575f80fd5b506102cd60048036038101906102c89190613813565b6109f0565b005b6102e960048036038101906102e4919061397e565b610c36565b005b3480156102f6575f80fd5b50610311600480360381019061030c91906139ea565b611386565b60405161031e91906137d2565b60405180910390f35b348015610332575f80fd5b5061033b61145a565b604051610349929190613a3a565b60405180910390f35b34801561035d575f80fd5b50610366611492565b6040516103739190613a7c565b60405180910390f35b348015610387575f80fd5b506103a2600480360381019061039d9190613a95565b61149a565b6040516103af91906137fa565b60405180910390f35b3480156103c3575f80fd5b506103cc6114e0565b005b3480156103d9575f80fd5b506103e261162e565b6040516103ef91906137fa565b60405180910390f35b348015610403575f80fd5b5061040c611634565b005b348015610419575f80fd5b50610422611b83565b60405161042f9190613acf565b60405180910390f35b348015610443575f80fd5b5061044c611baa565b60405161045991906137fa565b60405180910390f35b34801561046d575f80fd5b5061048860048036038101906104839190613b12565b611bb0565b005b348015610495575f80fd5b5061049e611cc1565b6040516104ab91906136bc565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d5919061377a565b611cfe565b6040516104e791906137d2565b60405180910390f35b3480156104fb575f80fd5b50610504611d1b565b005b348015610511575f80fd5b5061052c60048036038101906105279190613b3d565b611e5f565b005b348015610539575f80fd5b50610554600480360381019061054f9190613b7b565b611f65565b005b348015610561575f80fd5b5061056a6120e4565b005b348015610577575f80fd5b506105806121b8565b005b34801561058d575f80fd5b506105966122c4565b6040516105a391906137fa565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190613bd5565b6122ca565b6040516105df91906137fa565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190613813565b61234c565b005b34801561061b575f80fd5b50610624612462565b005b60606040518060400160405280600d81526020017f547574616e204b61204d696e7500000000000000000000000000000000000000815250905090565b5f61067661066f61253d565b8484612544565b6001905092915050565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c661253d565b73ffffffffffffffffffffffffffffffffffffffff16148061073b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072361253d565b73ffffffffffffffffffffffffffffffffffffffff16145b61077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190613c5d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90613cc5565b60405180910390fd5b5f811161082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190613d2d565b60405180910390fd5b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108689190613acf565b602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190613d5f565b9050828110156108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390613dd4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610948929190613df2565b6020604051808303815f875af1158015610964573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109889190613e2d565b6109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90613ea2565b60405180910390fd5b50505050565b5f6009600a6109dc919061401c565b633b9aca006109eb9190614066565b905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a3061253d565b73ffffffffffffffffffffffffffffffffffffffff161480610aa5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8d61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb90613c5d565b60405180910390fd5b5f8111610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90613d2d565b60405180910390fd5b80471015610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b60906140f1565b60405180910390fd5b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610baf9061413c565b5f6040518083038185875af1925050503d805f8114610be9576040519150601f19603f3d011682016040523d82523d5f602084013e610bee565b606091505b5050905080610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c299061419a565b60405180910390fd5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7661253d565b73ffffffffffffffffffffffffffffffffffffffff161480610ceb575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd361253d565b73ffffffffffffffffffffffffffffffffffffffff16145b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613c5d565b60405180910390fd5b5f835111610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490614202565b60405180910390fd5b5f81118015610d7d575060648111155b610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db39061426a565b60405180910390fd5b5f600a90505f845184610dcf9190614066565b905080341015610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906142d2565b60405180910390fd5b5f610e1e3061149a565b90505f8111610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e599061433a565b60405180910390fd5b5f60648583610e719190614066565b610e7b9190614385565b90505f8111610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906143ff565b60405180910390fd5b5f875182610ecd9190614385565b90505f8111610f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0890614467565b60405180910390fd5b5f60648683610f209190614066565b610f2a9190614385565b90505f805b8a5181101561117c575f8b8281518110610f4c57610f4b614485565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb906144fc565b60405180910390fd5b60018c51610fd2919061451a565b82101561116e575f6001600286610fe99190614066565b610ff3919061454d565b4244848660405160200161100a94939291906145e5565b604051602081830303815290604052805190602001205f1c61102c9190614632565b90505f858211611049578187611042919061451a565b9050611063565b8582611055919061451a565b87611060919061454d565b90505b6002876110709190614385565b811015611087576002876110849190614385565b90505b878186611094919061454d565b11156110a95784886110a6919061451a565b90505b6110b4308483612707565b80856110c0919061454d565b94505f8373ffffffffffffffffffffffffffffffffffffffff168e6040516110e79061413c565b5f6040518083038185875af1925050503d805f8114611121576040519150601f19603f3d011682016040523d82523d5f602084013e611126565b606091505b505090508061116a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611161906146ac565b60405180910390fd5b5050505b508080600101915050610f2f565b505f8a5111156112a2575f8185611193919061451a565b90505f8111156111d0576111cf308c60018e516111b0919061451a565b815181106111c1576111c0614485565b5b602002602001015183612707565b5b5f8b60018d516111e0919061451a565b815181106111f1576111f0614485565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b60405161121c9061413c565b5f6040518083038185875af1925050503d805f8114611256576040519150601f19603f3d011682016040523d82523d5f602084013e61125b565b606091505b505090508061129f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611296906146ac565b60405180910390fd5b50505b5f4790505f811115611379575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516112f49061413c565b5f6040518083038185875af1925050503d805f811461132e576040519150601f19603f3d011682016040523d82523d5f602084013e611333565b606091505b5050905080611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90614714565b60405180910390fd5b505b5050505050505050505050565b5f611392848484612707565b61144f8461139e61253d565b61144a856040518060600160405280602881526020016150256028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61140161253d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546131389092919063ffffffff16565b612544565b600190509392505050565b5f80600a54600e541161146f57600654611473565b6008545b9150600b54600e54116114885760075461148c565b6009545b90509091565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114e861253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b9061477c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b61163c61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf9061477c565b60405180910390fd5b60148054906101000a900460ff1615611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d906147e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117b23060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61179e919061401c565b633b9aca006117ad9190614066565b612544565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118409190614816565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ea9190614816565b6040518363ffffffff1660e01b8152600401611907929190614841565b6020604051808303815f875af1158015611923573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119479190614816565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6119903061149a565b90505f6119ba60646119ac604d8561319a90919063ffffffff16565b61321190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80611a06611b83565b426040518863ffffffff1660e01b8152600401611a28969594939291906148aa565b60606040518083038185885af1158015611a44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a699190614909565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b09929190613df2565b6020604051808303815f875af1158015611b25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b499190613e2d565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bf061253d565b73ffffffffffffffffffffffffffffffffffffffff161480611c65575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c4d61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613c5d565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4d494e5500000000000000000000000000000000000000000000000000000000815250905090565b5f611d11611d0a61253d565b8484612707565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d5b61253d565b73ffffffffffffffffffffffffffffffffffffffff161480611dd0575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611db861253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613c5d565b60405180910390fd5b5f611e193061149a565b90505f81118015611e365750601460169054906101000a900460ff165b15611e4557611e448161325a565b5b5f4790505f811115611e5b57611e5a816134c5565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e9f61253d565b73ffffffffffffffffffffffffffffffffffffffff161480611f14575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611efc61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906149a3565b60405180910390fd5b81600681905550806007819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fa561253d565b73ffffffffffffffffffffffffffffffffffffffff16148061201a575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661200261253d565b73ffffffffffffffffffffffffffffffffffffffff16145b612059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612050906149a3565b60405180910390fd5b5f5b82518110156120df578160035f85848151811061207b5761207a614485565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061205b565b505050565b6120ec61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f9061477c565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516121ae91906149c1565b60405180910390a1565b6121c061253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122439061477c565b60405180910390fd5b6009600a61225a919061401c565b633b9aca006122699190614066565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61229e919061401c565b633b9aca006122ad9190614066565b6040516122ba91906137fa565b60405180910390a1565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661238c61253d565b73ffffffffffffffffffffffffffffffffffffffff161480612401575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166123e961253d565b73ffffffffffffffffffffffffffffffffffffffff16145b612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243790613c5d565b60405180910390fd5b6009600a61244e919061401c565b816124599190614066565b60128190555050565b61246a61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed9061477c565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161253391906149c1565b60405180910390a1565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990614a4a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261790614ad8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126fa91906137fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276c90614b66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127da90614bf4565b60405180910390fd5b5f8111612825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281c90614c82565b60405180910390fd5b5f61282e611b83565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561289c575061286c611b83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612e88575f600e54148015612955575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612954575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b15612a3d5760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129f8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a3c57612a396064612a2b600a54600e5411612a1857600654612a1c565b6008545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b5b5f600e541115612a7257612a6f6064612a61600d548561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b1b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612c6257600f54821115612b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5c90614cea565b60405180910390fd5b60105482612b728561149a565b612b7c919061454d565b1115612bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb490614d52565b60405180910390fd5b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612c4a57612c476064612c39600a54600e5411612c2657600654612c2a565b6008545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b600e5f815480929190612c5c90614d70565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612cea57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612d2e57612d2b6064612d1d600b54600e5411612d0a57600754612d0e565b6009545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b5f612d383061149a565b9050601460159054906101000a900460ff16158015612da3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612dbb5750601460169054906101000a900460ff165b8015612dc8575060115481115b8015612dd75750600c54600e54115b15612e8657601654431115612dee575f6015819055505b600360155410612e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2a90614e01565b60405180910390fd5b612e50612e4b84612e468460125461352d565b61352d565b61325a565b5f4790505f811115612e6657612e65476134c5565b5b60155f815480929190612e7890614d70565b919050555043601681905550505b505b5f811115612f8757612ee08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461354590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f7e91906137fa565b60405180910390a35b612fd78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546135a290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061307a61302e82846135a290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461354590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61311d84866135a290919063ffffffff16565b60405161312a91906137fa565b60405180910390a350505050565b5f83831115829061317f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317691906136bc565b60405180910390fd5b505f838561318d919061451a565b9050809150509392505050565b5f8083036131aa575f905061320b565b5f82846131b79190614066565b90508284826131c69190614385565b14613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90614e8f565b60405180910390fd5b809150505b92915050565b5f61325283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506135eb565b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561329157613290613842565b5b6040519080825280602002602001820160405280156132bf5781602001602082028036833780820191505090505b50905030815f815181106132d6576132d5614485565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561337a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061339e9190614816565b816001815181106133b2576133b1614485565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134183060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612544565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161347a959493929190614f64565b5f604051808303815f87803b158015613491575f80fd5b505af11580156134a3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613529573d5f803e3d5ffd5b5050565b5f81831161353b578261353d565b815b905092915050565b5f808284613553919061454d565b905083811015613598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358f90615006565b60405180910390fd5b8091505092915050565b5f6135e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613138565b905092915050565b5f8083118290613631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362891906136bc565b60405180910390fd5b505f838561363f9190614385565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61368e8261364c565b6136988185613656565b93506136a8818560208601613666565b6136b181613674565b840191505092915050565b5f6020820190508181035f8301526136d48184613684565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613716826136ed565b9050919050565b6137268161370c565b8114613730575f80fd5b50565b5f813590506137418161371d565b92915050565b5f819050919050565b61375981613747565b8114613763575f80fd5b50565b5f8135905061377481613750565b92915050565b5f80604083850312156137905761378f6136e5565b5b5f61379d85828601613733565b92505060206137ae85828601613766565b9150509250929050565b5f8115159050919050565b6137cc816137b8565b82525050565b5f6020820190506137e55f8301846137c3565b92915050565b6137f481613747565b82525050565b5f60208201905061380d5f8301846137eb565b92915050565b5f60208284031215613828576138276136e5565b5b5f61383584828501613766565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61387882613674565b810181811067ffffffffffffffff8211171561389757613896613842565b5b80604052505050565b5f6138a96136dc565b90506138b5828261386f565b919050565b5f67ffffffffffffffff8211156138d4576138d3613842565b5b602082029050602081019050919050565b5f80fd5b5f6138fb6138f6846138ba565b6138a0565b9050808382526020820190506020840283018581111561391e5761391d6138e5565b5b835b8181101561394757806139338882613733565b845260208401935050602081019050613920565b5050509392505050565b5f82601f8301126139655761396461383e565b5b81356139758482602086016138e9565b91505092915050565b5f805f60608486031215613995576139946136e5565b5b5f84013567ffffffffffffffff8111156139b2576139b16136e9565b5b6139be86828701613951565b93505060206139cf86828701613766565b92505060406139e086828701613766565b9150509250925092565b5f805f60608486031215613a0157613a006136e5565b5b5f613a0e86828701613733565b9350506020613a1f86828701613733565b9250506040613a3086828701613766565b9150509250925092565b5f604082019050613a4d5f8301856137eb565b613a5a60208301846137eb565b9392505050565b5f60ff82169050919050565b613a7681613a61565b82525050565b5f602082019050613a8f5f830184613a6d565b92915050565b5f60208284031215613aaa57613aa96136e5565b5b5f613ab784828501613733565b91505092915050565b613ac98161370c565b82525050565b5f602082019050613ae25f830184613ac0565b92915050565b613af1816137b8565b8114613afb575f80fd5b50565b5f81359050613b0c81613ae8565b92915050565b5f60208284031215613b2757613b266136e5565b5b5f613b3484828501613afe565b91505092915050565b5f8060408385031215613b5357613b526136e5565b5b5f613b6085828601613766565b9250506020613b7185828601613766565b9150509250929050565b5f8060408385031215613b9157613b906136e5565b5b5f83013567ffffffffffffffff811115613bae57613bad6136e9565b5b613bba85828601613951565b9250506020613bcb85828601613afe565b9150509250929050565b5f8060408385031215613beb57613bea6136e5565b5b5f613bf885828601613733565b9250506020613c0985828601613733565b9150509250929050565b7f43616c6c6572206973206e6f7420617574686f72697a656400000000000000005f82015250565b5f613c47601883613656565b9150613c5282613c13565b602082019050919050565b5f6020820190508181035f830152613c7481613c3b565b9050919050565b7f43616e6e6f74207265636f76657220626c6f636b20746f6b656e7300000000005f82015250565b5f613caf601b83613656565b9150613cba82613c7b565b602082019050919050565b5f6020820190508181035f830152613cdc81613ca3565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f613d17602083613656565b9150613d2282613ce3565b602082019050919050565b5f6020820190508181035f830152613d4481613d0b565b9050919050565b5f81519050613d5981613750565b92915050565b5f60208284031215613d7457613d736136e5565b5b5f613d8184828501613d4b565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f613dbe601a83613656565b9150613dc982613d8a565b602082019050919050565b5f6020820190508181035f830152613deb81613db2565b9050919050565b5f604082019050613e055f830185613ac0565b613e1260208301846137eb565b9392505050565b5f81519050613e2781613ae8565b92915050565b5f60208284031215613e4257613e416136e5565b5b5f613e4f84828501613e19565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f613e8c600f83613656565b9150613e9782613e58565b602082019050919050565b5f6020820190508181035f830152613eb981613e80565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f4257808604811115613f1e57613f1d613ec0565b5b6001851615613f2d5780820291505b8081029050613f3b85613eed565b9450613f02565b94509492505050565b5f82613f5a5760019050614015565b81613f67575f9050614015565b8160018114613f7d5760028114613f8757613fb6565b6001915050614015565b60ff841115613f9957613f98613ec0565b5b8360020a915084821115613fb057613faf613ec0565b5b50614015565b5060208310610133831016604e8410600b8410161715613feb5782820a905083811115613fe657613fe5613ec0565b5b614015565b613ff88484846001613ef9565b9250905081840481111561400f5761400e613ec0565b5b81810290505b9392505050565b5f61402682613747565b915061403183613a61565b925061405e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f4b565b905092915050565b5f61407082613747565b915061407b83613747565b925082820261408981613747565b915082820484148315176140a05761409f613ec0565b5b5092915050565b7f496e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f6140db601883613656565b91506140e6826140a7565b602082019050919050565b5f6020820190508181035f830152614108816140cf565b9050919050565b5f81905092915050565b50565b5f6141275f8361410f565b915061413282614119565b5f82019050919050565b5f6141468261411c565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f614184601383613656565b915061418f82614150565b602082019050919050565b5f6020820190508181035f8301526141b181614178565b9050919050565b7f4e6f207374616b6572732070726f7669646564000000000000000000000000005f82015250565b5f6141ec601383613656565b91506141f7826141b8565b602082019050919050565b5f6020820190508181035f830152614219816141e0565b9050919050565b7f496e76616c6964207265776172642072617465000000000000000000000000005f82015250565b5f614254601383613656565b915061425f82614220565b602082019050919050565b5f6020820190508181035f83015261428181614248565b9050919050565b7f496e73756666696369656e7420726577617264732070726f76696465640000005f82015250565b5f6142bc601d83613656565b91506142c782614288565b602082019050919050565b5f6020820190508181035f8301526142e9816142b0565b9050919050565b7f4e6f207265776172647320746f206469737472696275746500000000000000005f82015250565b5f614324601883613656565b915061432f826142f0565b602082019050919050565b5f6020820190508181035f83015261435181614318565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61438f82613747565b915061439a83613747565b9250826143aa576143a9614358565b5b828204905092915050565b7f52657761726420616d6f756e7420746f6f20736d616c6c0000000000000000005f82015250565b5f6143e9601783613656565b91506143f4826143b5565b602082019050919050565b5f6020820190508181035f830152614416816143dd565b9050919050565b7f426173652072657761726420746f6f20736d616c6c00000000000000000000005f82015250565b5f614451601583613656565b915061445c8261441d565b602082019050919050565b5f6020820190508181035f83015261447e81614445565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e76616c6964207374616b65722061646472657373000000000000000000005f82015250565b5f6144e6601683613656565b91506144f1826144b2565b602082019050919050565b5f6020820190508181035f830152614513816144da565b9050919050565b5f61452482613747565b915061452f83613747565b925082820390508181111561454757614546613ec0565b5b92915050565b5f61455782613747565b915061456283613747565b925082820190508082111561457a57614579613ec0565b5b92915050565b5f819050919050565b61459a61459582613747565b614580565b82525050565b5f8160601b9050919050565b5f6145b6826145a0565b9050919050565b5f6145c7826145ac565b9050919050565b6145df6145da8261370c565b6145bd565b82525050565b5f6145f08287614589565b6020820191506146008286614589565b60208201915061461082856145ce565b6014820191506146208284614589565b60208201915081905095945050505050565b5f61463c82613747565b915061464783613747565b92508261465757614656614358565b5b828206905092915050565b7f526577617264207472616e73666572206661696c6564000000000000000000005f82015250565b5f614696601683613656565b91506146a182614662565b602082019050919050565b5f6020820190508181035f8301526146c38161468a565b9050919050565b7f457863657373207265776172642072657475726e206661696c656400000000005f82015250565b5f6146fe601b83613656565b9150614709826146ca565b602082019050919050565b5f6020820190508181035f83015261472b816146f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614766602083613656565b915061477182614732565b602082019050919050565b5f6020820190508181035f8301526147938161475a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6147ce601783613656565b91506147d98261479a565b602082019050919050565b5f6020820190508181035f8301526147fb816147c2565b9050919050565b5f815190506148108161371d565b92915050565b5f6020828403121561482b5761482a6136e5565b5b5f61483884828501614802565b91505092915050565b5f6040820190506148545f830185613ac0565b6148616020830184613ac0565b9392505050565b5f819050919050565b5f819050919050565b5f61489461488f61488a84614868565b614871565b613747565b9050919050565b6148a48161487a565b82525050565b5f60c0820190506148bd5f830189613ac0565b6148ca60208301886137eb565b6148d7604083018761489b565b6148e4606083018661489b565b6148f16080830185613ac0565b6148fe60a08301846137eb565b979650505050505050565b5f805f606084860312156149205761491f6136e5565b5b5f61492d86828701613d4b565b935050602061493e86828701613d4b565b925050604061494f86828701613d4b565b9150509250925092565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61498d600e83613656565b915061499882614959565b602082019050919050565b5f6020820190508181035f8301526149ba81614981565b9050919050565b5f6020820190506149d45f83018461489b565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614a34602483613656565b9150614a3f826149da565b604082019050919050565b5f6020820190508181035f830152614a6181614a28565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614ac2602283613656565b9150614acd82614a68565b604082019050919050565b5f6020820190508181035f830152614aef81614ab6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b50602583613656565b9150614b5b82614af6565b604082019050919050565b5f6020820190508181035f830152614b7d81614b44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614bde602383613656565b9150614be982614b84565b604082019050919050565b5f6020820190508181035f830152614c0b81614bd2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614c6c602983613656565b9150614c7782614c12565b604082019050919050565b5f6020820190508181035f830152614c9981614c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614cd4601983613656565b9150614cdf82614ca0565b602082019050919050565b5f6020820190508181035f830152614d0181614cc8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614d3c601a83613656565b9150614d4782614d08565b602082019050919050565b5f6020820190508181035f830152614d6981614d30565b9050919050565b5f614d7a82613747565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614dac57614dab613ec0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614deb601783613656565b9150614df682614db7565b602082019050919050565b5f6020820190508181035f830152614e1881614ddf565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e79602183613656565b9150614e8482614e1f565b604082019050919050565b5f6020820190508181035f830152614ea681614e6d565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614edf8161370c565b82525050565b5f614ef08383614ed6565b60208301905092915050565b5f602082019050919050565b5f614f1282614ead565b614f1c8185614eb7565b9350614f2783614ec7565b805f5b83811015614f57578151614f3e8882614ee5565b9750614f4983614efc565b925050600181019050614f2a565b5085935050505092915050565b5f60a082019050614f775f8301886137eb565b614f84602083018761489b565b8181036040830152614f968186614f08565b9050614fa56060830185613ac0565b614fb260808301846137eb565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614ff0601b83613656565b9150614ffb82614fbc565b602082019050919050565b5f6020820190508181035f83015261501d81614fe4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2770dbe9120c214a74d30b685e74a017d7272b8918fb4d9e5b4a052d28f165364736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c80638da5cb5b116100eb578063b484d5d011610089578063bf474bed11610063578063bf474bed14610582578063dd62ed3e146105ac578063fbc10304146105e8578063ff652e0e14610610576101c1565b8063b484d5d01461052e578063b85aa7d214610556578063bf3498711461056c576101c1565b806395d89b41116100c557806395d89b411461048a578063a9059cbb146104b4578063a95ec5c0146104f0578063b0c2365614610506576101c1565b80638da5cb5b1461040e5780638f9a55c0146104385780639525d6a014610462576101c1565b806323b872dd1161015857806370a082311161013257806370a082311461037c578063715018a6146103b85780637d1db4a5146103ce5780638a8c523c146103f8576101c1565b806323b872dd146102eb5780632973ef2d14610327578063313ce56714610352576101c1565b8063162acc6611610194578063162acc661461025557806318160ddd1461027d5780631a7b2077146102a75780631b670723146102cf576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780630faee56f1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610626565b6040516101e691906136bc565b60405180910390f35b3480156101fa575f80fd5b506102156004803603810190610210919061377a565b610663565b60405161022291906137d2565b60405180910390f35b348015610236575f80fd5b5061023f610680565b60405161024c91906137fa565b60405180910390f35b348015610260575f80fd5b5061027b6004803603810190610276919061377a565b610686565b005b348015610288575f80fd5b506102916109cd565b60405161029e91906137fa565b60405180910390f35b3480156102b2575f80fd5b506102cd60048036038101906102c89190613813565b6109f0565b005b6102e960048036038101906102e4919061397e565b610c36565b005b3480156102f6575f80fd5b50610311600480360381019061030c91906139ea565b611386565b60405161031e91906137d2565b60405180910390f35b348015610332575f80fd5b5061033b61145a565b604051610349929190613a3a565b60405180910390f35b34801561035d575f80fd5b50610366611492565b6040516103739190613a7c565b60405180910390f35b348015610387575f80fd5b506103a2600480360381019061039d9190613a95565b61149a565b6040516103af91906137fa565b60405180910390f35b3480156103c3575f80fd5b506103cc6114e0565b005b3480156103d9575f80fd5b506103e261162e565b6040516103ef91906137fa565b60405180910390f35b348015610403575f80fd5b5061040c611634565b005b348015610419575f80fd5b50610422611b83565b60405161042f9190613acf565b60405180910390f35b348015610443575f80fd5b5061044c611baa565b60405161045991906137fa565b60405180910390f35b34801561046d575f80fd5b5061048860048036038101906104839190613b12565b611bb0565b005b348015610495575f80fd5b5061049e611cc1565b6040516104ab91906136bc565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d5919061377a565b611cfe565b6040516104e791906137d2565b60405180910390f35b3480156104fb575f80fd5b50610504611d1b565b005b348015610511575f80fd5b5061052c60048036038101906105279190613b3d565b611e5f565b005b348015610539575f80fd5b50610554600480360381019061054f9190613b7b565b611f65565b005b348015610561575f80fd5b5061056a6120e4565b005b348015610577575f80fd5b506105806121b8565b005b34801561058d575f80fd5b506105966122c4565b6040516105a391906137fa565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190613bd5565b6122ca565b6040516105df91906137fa565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190613813565b61234c565b005b34801561061b575f80fd5b50610624612462565b005b60606040518060400160405280600d81526020017f547574616e204b61204d696e7500000000000000000000000000000000000000815250905090565b5f61067661066f61253d565b8484612544565b6001905092915050565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c661253d565b73ffffffffffffffffffffffffffffffffffffffff16148061073b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072361253d565b73ffffffffffffffffffffffffffffffffffffffff16145b61077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190613c5d565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90613cc5565b60405180910390fd5b5f811161082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190613d2d565b60405180910390fd5b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108689190613acf565b602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190613d5f565b9050828110156108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390613dd4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610948929190613df2565b6020604051808303815f875af1158015610964573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109889190613e2d565b6109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90613ea2565b60405180910390fd5b50505050565b5f6009600a6109dc919061401c565b633b9aca006109eb9190614066565b905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a3061253d565b73ffffffffffffffffffffffffffffffffffffffff161480610aa5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8d61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb90613c5d565b60405180910390fd5b5f8111610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90613d2d565b60405180910390fd5b80471015610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b60906140f1565b60405180910390fd5b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610baf9061413c565b5f6040518083038185875af1925050503d805f8114610be9576040519150601f19603f3d011682016040523d82523d5f602084013e610bee565b606091505b5050905080610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c299061419a565b60405180910390fd5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7661253d565b73ffffffffffffffffffffffffffffffffffffffff161480610ceb575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd361253d565b73ffffffffffffffffffffffffffffffffffffffff16145b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613c5d565b60405180910390fd5b5f835111610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490614202565b60405180910390fd5b5f81118015610d7d575060648111155b610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db39061426a565b60405180910390fd5b5f600a90505f845184610dcf9190614066565b905080341015610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906142d2565b60405180910390fd5b5f610e1e3061149a565b90505f8111610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e599061433a565b60405180910390fd5b5f60648583610e719190614066565b610e7b9190614385565b90505f8111610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906143ff565b60405180910390fd5b5f875182610ecd9190614385565b90505f8111610f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0890614467565b60405180910390fd5b5f60648683610f209190614066565b610f2a9190614385565b90505f805b8a5181101561117c575f8b8281518110610f4c57610f4b614485565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb906144fc565b60405180910390fd5b60018c51610fd2919061451a565b82101561116e575f6001600286610fe99190614066565b610ff3919061454d565b4244848660405160200161100a94939291906145e5565b604051602081830303815290604052805190602001205f1c61102c9190614632565b90505f858211611049578187611042919061451a565b9050611063565b8582611055919061451a565b87611060919061454d565b90505b6002876110709190614385565b811015611087576002876110849190614385565b90505b878186611094919061454d565b11156110a95784886110a6919061451a565b90505b6110b4308483612707565b80856110c0919061454d565b94505f8373ffffffffffffffffffffffffffffffffffffffff168e6040516110e79061413c565b5f6040518083038185875af1925050503d805f8114611121576040519150601f19603f3d011682016040523d82523d5f602084013e611126565b606091505b505090508061116a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611161906146ac565b60405180910390fd5b5050505b508080600101915050610f2f565b505f8a5111156112a2575f8185611193919061451a565b90505f8111156111d0576111cf308c60018e516111b0919061451a565b815181106111c1576111c0614485565b5b602002602001015183612707565b5b5f8b60018d516111e0919061451a565b815181106111f1576111f0614485565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b60405161121c9061413c565b5f6040518083038185875af1925050503d805f8114611256576040519150601f19603f3d011682016040523d82523d5f602084013e61125b565b606091505b505090508061129f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611296906146ac565b60405180910390fd5b50505b5f4790505f811115611379575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516112f49061413c565b5f6040518083038185875af1925050503d805f811461132e576040519150601f19603f3d011682016040523d82523d5f602084013e611333565b606091505b5050905080611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90614714565b60405180910390fd5b505b5050505050505050505050565b5f611392848484612707565b61144f8461139e61253d565b61144a856040518060600160405280602881526020016150256028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61140161253d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546131389092919063ffffffff16565b612544565b600190509392505050565b5f80600a54600e541161146f57600654611473565b6008545b9150600b54600e54116114885760075461148c565b6009545b90509091565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114e861253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b9061477c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b61163c61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf9061477c565b60405180910390fd5b60148054906101000a900460ff1615611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d906147e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117b23060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61179e919061401c565b633b9aca006117ad9190614066565b612544565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118409190614816565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ea9190614816565b6040518363ffffffff1660e01b8152600401611907929190614841565b6020604051808303815f875af1158015611923573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119479190614816565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6119903061149a565b90505f6119ba60646119ac604d8561319a90919063ffffffff16565b61321190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80611a06611b83565b426040518863ffffffff1660e01b8152600401611a28969594939291906148aa565b60606040518083038185885af1158015611a44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a699190614909565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b09929190613df2565b6020604051808303815f875af1158015611b25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b499190613e2d565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bf061253d565b73ffffffffffffffffffffffffffffffffffffffff161480611c65575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c4d61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613c5d565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4d494e5500000000000000000000000000000000000000000000000000000000815250905090565b5f611d11611d0a61253d565b8484612707565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d5b61253d565b73ffffffffffffffffffffffffffffffffffffffff161480611dd0575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611db861253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613c5d565b60405180910390fd5b5f611e193061149a565b90505f81118015611e365750601460169054906101000a900460ff165b15611e4557611e448161325a565b5b5f4790505f811115611e5b57611e5a816134c5565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e9f61253d565b73ffffffffffffffffffffffffffffffffffffffff161480611f14575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611efc61253d565b73ffffffffffffffffffffffffffffffffffffffff16145b611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906149a3565b60405180910390fd5b81600681905550806007819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fa561253d565b73ffffffffffffffffffffffffffffffffffffffff16148061201a575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661200261253d565b73ffffffffffffffffffffffffffffffffffffffff16145b612059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612050906149a3565b60405180910390fd5b5f5b82518110156120df578160035f85848151811061207b5761207a614485565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061205b565b505050565b6120ec61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f9061477c565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516121ae91906149c1565b60405180910390a1565b6121c061253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122439061477c565b60405180910390fd5b6009600a61225a919061401c565b633b9aca006122699190614066565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61229e919061401c565b633b9aca006122ad9190614066565b6040516122ba91906137fa565b60405180910390a1565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661238c61253d565b73ffffffffffffffffffffffffffffffffffffffff161480612401575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166123e961253d565b73ffffffffffffffffffffffffffffffffffffffff16145b612440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243790613c5d565b60405180910390fd5b6009600a61244e919061401c565b816124599190614066565b60128190555050565b61246a61253d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed9061477c565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161253391906149c1565b60405180910390a1565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990614a4a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261790614ad8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126fa91906137fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276c90614b66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127da90614bf4565b60405180910390fd5b5f8111612825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281c90614c82565b60405180910390fd5b5f61282e611b83565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561289c575061286c611b83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612e88575f600e54148015612955575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612954575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b15612a3d5760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129f8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a3c57612a396064612a2b600a54600e5411612a1857600654612a1c565b6008545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b5b5f600e541115612a7257612a6f6064612a61600d548561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b1b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612c6257600f54821115612b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5c90614cea565b60405180910390fd5b60105482612b728561149a565b612b7c919061454d565b1115612bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb490614d52565b60405180910390fd5b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612c4a57612c476064612c39600a54600e5411612c2657600654612c2a565b6008545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b600e5f815480929190612c5c90614d70565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612cea57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612d2e57612d2b6064612d1d600b54600e5411612d0a57600754612d0e565b6009545b8561319a90919063ffffffff16565b61321190919063ffffffff16565b90505b5f612d383061149a565b9050601460159054906101000a900460ff16158015612da3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612dbb5750601460169054906101000a900460ff165b8015612dc8575060115481115b8015612dd75750600c54600e54115b15612e8657601654431115612dee575f6015819055505b600360155410612e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2a90614e01565b60405180910390fd5b612e50612e4b84612e468460125461352d565b61352d565b61325a565b5f4790505f811115612e6657612e65476134c5565b5b60155f815480929190612e7890614d70565b919050555043601681905550505b505b5f811115612f8757612ee08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461354590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f7e91906137fa565b60405180910390a35b612fd78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546135a290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061307a61302e82846135a290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461354590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61311d84866135a290919063ffffffff16565b60405161312a91906137fa565b60405180910390a350505050565b5f83831115829061317f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317691906136bc565b60405180910390fd5b505f838561318d919061451a565b9050809150509392505050565b5f8083036131aa575f905061320b565b5f82846131b79190614066565b90508284826131c69190614385565b14613206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fd90614e8f565b60405180910390fd5b809150505b92915050565b5f61325283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506135eb565b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561329157613290613842565b5b6040519080825280602002602001820160405280156132bf5781602001602082028036833780820191505090505b50905030815f815181106132d6576132d5614485565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561337a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061339e9190614816565b816001815181106133b2576133b1614485565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134183060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612544565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161347a959493929190614f64565b5f604051808303815f87803b158015613491575f80fd5b505af11580156134a3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015613529573d5f803e3d5ffd5b5050565b5f81831161353b578261353d565b815b905092915050565b5f808284613553919061454d565b905083811015613598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358f90615006565b60405180910390fd5b8091505092915050565b5f6135e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613138565b905092915050565b5f8083118290613631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362891906136bc565b60405180910390fd5b505f838561363f9190614385565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61368e8261364c565b6136988185613656565b93506136a8818560208601613666565b6136b181613674565b840191505092915050565b5f6020820190508181035f8301526136d48184613684565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613716826136ed565b9050919050565b6137268161370c565b8114613730575f80fd5b50565b5f813590506137418161371d565b92915050565b5f819050919050565b61375981613747565b8114613763575f80fd5b50565b5f8135905061377481613750565b92915050565b5f80604083850312156137905761378f6136e5565b5b5f61379d85828601613733565b92505060206137ae85828601613766565b9150509250929050565b5f8115159050919050565b6137cc816137b8565b82525050565b5f6020820190506137e55f8301846137c3565b92915050565b6137f481613747565b82525050565b5f60208201905061380d5f8301846137eb565b92915050565b5f60208284031215613828576138276136e5565b5b5f61383584828501613766565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61387882613674565b810181811067ffffffffffffffff8211171561389757613896613842565b5b80604052505050565b5f6138a96136dc565b90506138b5828261386f565b919050565b5f67ffffffffffffffff8211156138d4576138d3613842565b5b602082029050602081019050919050565b5f80fd5b5f6138fb6138f6846138ba565b6138a0565b9050808382526020820190506020840283018581111561391e5761391d6138e5565b5b835b8181101561394757806139338882613733565b845260208401935050602081019050613920565b5050509392505050565b5f82601f8301126139655761396461383e565b5b81356139758482602086016138e9565b91505092915050565b5f805f60608486031215613995576139946136e5565b5b5f84013567ffffffffffffffff8111156139b2576139b16136e9565b5b6139be86828701613951565b93505060206139cf86828701613766565b92505060406139e086828701613766565b9150509250925092565b5f805f60608486031215613a0157613a006136e5565b5b5f613a0e86828701613733565b9350506020613a1f86828701613733565b9250506040613a3086828701613766565b9150509250925092565b5f604082019050613a4d5f8301856137eb565b613a5a60208301846137eb565b9392505050565b5f60ff82169050919050565b613a7681613a61565b82525050565b5f602082019050613a8f5f830184613a6d565b92915050565b5f60208284031215613aaa57613aa96136e5565b5b5f613ab784828501613733565b91505092915050565b613ac98161370c565b82525050565b5f602082019050613ae25f830184613ac0565b92915050565b613af1816137b8565b8114613afb575f80fd5b50565b5f81359050613b0c81613ae8565b92915050565b5f60208284031215613b2757613b266136e5565b5b5f613b3484828501613afe565b91505092915050565b5f8060408385031215613b5357613b526136e5565b5b5f613b6085828601613766565b9250506020613b7185828601613766565b9150509250929050565b5f8060408385031215613b9157613b906136e5565b5b5f83013567ffffffffffffffff811115613bae57613bad6136e9565b5b613bba85828601613951565b9250506020613bcb85828601613afe565b9150509250929050565b5f8060408385031215613beb57613bea6136e5565b5b5f613bf885828601613733565b9250506020613c0985828601613733565b9150509250929050565b7f43616c6c6572206973206e6f7420617574686f72697a656400000000000000005f82015250565b5f613c47601883613656565b9150613c5282613c13565b602082019050919050565b5f6020820190508181035f830152613c7481613c3b565b9050919050565b7f43616e6e6f74207265636f76657220626c6f636b20746f6b656e7300000000005f82015250565b5f613caf601b83613656565b9150613cba82613c7b565b602082019050919050565b5f6020820190508181035f830152613cdc81613ca3565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f613d17602083613656565b9150613d2282613ce3565b602082019050919050565b5f6020820190508181035f830152613d4481613d0b565b9050919050565b5f81519050613d5981613750565b92915050565b5f60208284031215613d7457613d736136e5565b5b5f613d8184828501613d4b565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f613dbe601a83613656565b9150613dc982613d8a565b602082019050919050565b5f6020820190508181035f830152613deb81613db2565b9050919050565b5f604082019050613e055f830185613ac0565b613e1260208301846137eb565b9392505050565b5f81519050613e2781613ae8565b92915050565b5f60208284031215613e4257613e416136e5565b5b5f613e4f84828501613e19565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f613e8c600f83613656565b9150613e9782613e58565b602082019050919050565b5f6020820190508181035f830152613eb981613e80565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f4257808604811115613f1e57613f1d613ec0565b5b6001851615613f2d5780820291505b8081029050613f3b85613eed565b9450613f02565b94509492505050565b5f82613f5a5760019050614015565b81613f67575f9050614015565b8160018114613f7d5760028114613f8757613fb6565b6001915050614015565b60ff841115613f9957613f98613ec0565b5b8360020a915084821115613fb057613faf613ec0565b5b50614015565b5060208310610133831016604e8410600b8410161715613feb5782820a905083811115613fe657613fe5613ec0565b5b614015565b613ff88484846001613ef9565b9250905081840481111561400f5761400e613ec0565b5b81810290505b9392505050565b5f61402682613747565b915061403183613a61565b925061405e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f4b565b905092915050565b5f61407082613747565b915061407b83613747565b925082820261408981613747565b915082820484148315176140a05761409f613ec0565b5b5092915050565b7f496e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f6140db601883613656565b91506140e6826140a7565b602082019050919050565b5f6020820190508181035f830152614108816140cf565b9050919050565b5f81905092915050565b50565b5f6141275f8361410f565b915061413282614119565b5f82019050919050565b5f6141468261411c565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f614184601383613656565b915061418f82614150565b602082019050919050565b5f6020820190508181035f8301526141b181614178565b9050919050565b7f4e6f207374616b6572732070726f7669646564000000000000000000000000005f82015250565b5f6141ec601383613656565b91506141f7826141b8565b602082019050919050565b5f6020820190508181035f830152614219816141e0565b9050919050565b7f496e76616c6964207265776172642072617465000000000000000000000000005f82015250565b5f614254601383613656565b915061425f82614220565b602082019050919050565b5f6020820190508181035f83015261428181614248565b9050919050565b7f496e73756666696369656e7420726577617264732070726f76696465640000005f82015250565b5f6142bc601d83613656565b91506142c782614288565b602082019050919050565b5f6020820190508181035f8301526142e9816142b0565b9050919050565b7f4e6f207265776172647320746f206469737472696275746500000000000000005f82015250565b5f614324601883613656565b915061432f826142f0565b602082019050919050565b5f6020820190508181035f83015261435181614318565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61438f82613747565b915061439a83613747565b9250826143aa576143a9614358565b5b828204905092915050565b7f52657761726420616d6f756e7420746f6f20736d616c6c0000000000000000005f82015250565b5f6143e9601783613656565b91506143f4826143b5565b602082019050919050565b5f6020820190508181035f830152614416816143dd565b9050919050565b7f426173652072657761726420746f6f20736d616c6c00000000000000000000005f82015250565b5f614451601583613656565b915061445c8261441d565b602082019050919050565b5f6020820190508181035f83015261447e81614445565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e76616c6964207374616b65722061646472657373000000000000000000005f82015250565b5f6144e6601683613656565b91506144f1826144b2565b602082019050919050565b5f6020820190508181035f830152614513816144da565b9050919050565b5f61452482613747565b915061452f83613747565b925082820390508181111561454757614546613ec0565b5b92915050565b5f61455782613747565b915061456283613747565b925082820190508082111561457a57614579613ec0565b5b92915050565b5f819050919050565b61459a61459582613747565b614580565b82525050565b5f8160601b9050919050565b5f6145b6826145a0565b9050919050565b5f6145c7826145ac565b9050919050565b6145df6145da8261370c565b6145bd565b82525050565b5f6145f08287614589565b6020820191506146008286614589565b60208201915061461082856145ce565b6014820191506146208284614589565b60208201915081905095945050505050565b5f61463c82613747565b915061464783613747565b92508261465757614656614358565b5b828206905092915050565b7f526577617264207472616e73666572206661696c6564000000000000000000005f82015250565b5f614696601683613656565b91506146a182614662565b602082019050919050565b5f6020820190508181035f8301526146c38161468a565b9050919050565b7f457863657373207265776172642072657475726e206661696c656400000000005f82015250565b5f6146fe601b83613656565b9150614709826146ca565b602082019050919050565b5f6020820190508181035f83015261472b816146f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614766602083613656565b915061477182614732565b602082019050919050565b5f6020820190508181035f8301526147938161475a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6147ce601783613656565b91506147d98261479a565b602082019050919050565b5f6020820190508181035f8301526147fb816147c2565b9050919050565b5f815190506148108161371d565b92915050565b5f6020828403121561482b5761482a6136e5565b5b5f61483884828501614802565b91505092915050565b5f6040820190506148545f830185613ac0565b6148616020830184613ac0565b9392505050565b5f819050919050565b5f819050919050565b5f61489461488f61488a84614868565b614871565b613747565b9050919050565b6148a48161487a565b82525050565b5f60c0820190506148bd5f830189613ac0565b6148ca60208301886137eb565b6148d7604083018761489b565b6148e4606083018661489b565b6148f16080830185613ac0565b6148fe60a08301846137eb565b979650505050505050565b5f805f606084860312156149205761491f6136e5565b5b5f61492d86828701613d4b565b935050602061493e86828701613d4b565b925050604061494f86828701613d4b565b9150509250925092565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61498d600e83613656565b915061499882614959565b602082019050919050565b5f6020820190508181035f8301526149ba81614981565b9050919050565b5f6020820190506149d45f83018461489b565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614a34602483613656565b9150614a3f826149da565b604082019050919050565b5f6020820190508181035f830152614a6181614a28565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614ac2602283613656565b9150614acd82614a68565b604082019050919050565b5f6020820190508181035f830152614aef81614ab6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b50602583613656565b9150614b5b82614af6565b604082019050919050565b5f6020820190508181035f830152614b7d81614b44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614bde602383613656565b9150614be982614b84565b604082019050919050565b5f6020820190508181035f830152614c0b81614bd2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614c6c602983613656565b9150614c7782614c12565b604082019050919050565b5f6020820190508181035f830152614c9981614c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614cd4601983613656565b9150614cdf82614ca0565b602082019050919050565b5f6020820190508181035f830152614d0181614cc8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614d3c601a83613656565b9150614d4782614d08565b602082019050919050565b5f6020820190508181035f830152614d6981614d30565b9050919050565b5f614d7a82613747565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614dac57614dab613ec0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614deb601783613656565b9150614df682614db7565b602082019050919050565b5f6020820190508181035f830152614e1881614ddf565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e79602183613656565b9150614e8482614e1f565b604082019050919050565b5f6020820190508181035f830152614ea681614e6d565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614edf8161370c565b82525050565b5f614ef08383614ed6565b60208301905092915050565b5f602082019050919050565b5f614f1282614ead565b614f1c8185614eb7565b9350614f2783614ec7565b805f5b83811015614f57578151614f3e8882614ee5565b9750614f4983614efc565b925050600181019050614f2a565b5085935050505092915050565b5f60a082019050614f775f8301886137eb565b614f84602083018761489b565b8181036040830152614f968186614f08565b9050614fa56060830185613ac0565b614fb260808301846137eb565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614ff0601b83613656565b9150614ffb82614fbc565b602082019050919050565b5f6020820190508181035f83015261501d81614fe4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2770dbe9120c214a74d30b685e74a017d7272b8918fb4d9e5b4a052d28f165364736f6c634300081a0033

Deployed Bytecode Sourcemap

4009:14276:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6887:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5133:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13348:590;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6331:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14352:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14780:3457;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7056:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7720:238;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6240:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6434:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2834:148;;;;;;;;;;;;;:::i;:::-;;4945:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12107:796;;;;;;;;;;;;;:::i;:::-;;2620:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5006:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14160:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6145:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6561:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12911:426;;;;;;;;;;;;;:::i;:::-;;11268:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11697:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11143:117;;;;;;;;;;;;;:::i;:::-;;11009:126;;;;;;;;;;;;;:::i;:::-;;5069:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6736:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13946:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11543:146;;;;;;;;;;;;;:::i;:::-;;6054:83;6091:13;6124:5;;;;;;;;;;;;;;;;;6117:12;;6054:83;:::o;6887:161::-;6962:4;6979:39;6988:12;:10;:12::i;:::-;7002:7;7011:6;6979:8;:39::i;:::-;7036:4;7029:11;;6887:161;;;;:::o;5133:52::-;;;;:::o;13348:590::-;13452:10;;;;;;;;;;;13436:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;13482:9;;;;;;;;;;;13466:25;;:12;:10;:12::i;:::-;:25;;;13436:55;13428:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;13563:4;13539:29;;:12;:29;;;13531:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13628:1;13619:6;:10;13611:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13687:12;13709;13687:35;;13733:15;13751:5;:15;;;13775:4;13751:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13733:48;;13811:6;13800:7;:17;;13792:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13877:5;:14;;;13892:9;;;;;;;;;;;13903:6;13877:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13869:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13417:521;;13348:590;;:::o;6331:95::-;6384:7;4752:1;4808:2;:13;;;;:::i;:::-;4795:10;:26;;;;:::i;:::-;6404:14;;6331:95;:::o;14352:410::-;14428:10;;;;;;;;;;;14412:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14458:9;;;;;;;;;;;14442:25;;:12;:10;:12::i;:::-;:25;;;14412:55;14404:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14520:1;14511:6;:10;14503:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;14598:6;14573:21;:31;;14565:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14647:12;14673:10;;;;;;;;;;;14665:24;;14697:6;14665:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14646:62;;;14723:7;14715:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14397:365;14352:410;:::o;14780:3457::-;14960:10;;;;;;;;;;;14944:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14990:9;;;;;;;;;;;14974:25;;:12;:10;:12::i;:::-;:25;;;14944:55;14936:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;15065:1;15047:8;:15;:19;15039:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15123:1;15109:11;:15;:37;;;;;15143:3;15128:11;:18;;15109:37;15101:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15194:22;15219:2;15194:27;;15232:26;15280:8;:15;15261:16;:34;;;;:::i;:::-;15232:63;;15327:18;15314:9;:31;;15306:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15390:18;15411:24;15429:4;15411:9;:24::i;:::-;15390:45;;15467:1;15454:10;:14;15446:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15528:20;15578:3;15564:11;15551:10;:24;;;;:::i;:::-;:30;;;;:::i;:::-;15528:53;;15615:1;15600:12;:16;15592:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15675:18;15711:8;:15;15696:12;:30;;;;:::i;:::-;15675:51;;15758:1;15745:10;:14;15737:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15816:22;15871:3;15854:14;15841:10;:27;;;;:::i;:::-;:33;;;;:::i;:::-;15816:58;;15885:21;15946:9;15941:1579;15965:8;:15;15961:1;:19;15941:1579;;;16002:14;16019:8;16028:1;16019:11;;;;;;;;:::i;:::-;;;;;;;;16002:28;;16071:1;16053:20;;:6;:20;;;16045:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16169:1;16151:8;:15;:19;;;;:::i;:::-;16147:1;:23;16143:1366;;;16209:22;16447:1;16443;16426:14;:18;;;;:::i;:::-;:22;;;;:::i;:::-;16291:15;16330:16;16370:6;16400:1;16252:168;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16242:179;;;;;;16234:188;;:215;;;;:::i;:::-;16209:240;;16504:20;16565:14;16547;:32;16543:277;;16654:14;16641:10;:27;;;;:::i;:::-;16626:42;;16543:277;;;16785:14;16768;:31;;;;:::i;:::-;16754:10;:46;;;;:::i;:::-;16739:61;;16543:277;16906:1;16893:10;:14;;;;:::i;:::-;16878:12;:29;16874:107;;;16960:1;16947:10;:14;;;;:::i;:::-;16932:29;;16874:107;17070:12;17055;17039:13;:28;;;;:::i;:::-;:43;17035:135;;;17137:13;17122:12;:28;;;;:::i;:::-;17107:43;;17035:135;17224:46;17242:4;17249:6;17257:12;17224:9;:46::i;:::-;17306:12;17289:29;;;;;:::i;:::-;;;17374:12;17392:6;:11;;17411:16;17392:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17373:59;;;17459:7;17451:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;16172:1337;;;16143:1366;15987:1533;15982:3;;;;;;;15941:1579;;;;17572:1;17554:8;:15;:19;17550:422;;;17590:19;17627:13;17612:12;:28;;;;:::i;:::-;17590:50;;17673:1;17659:11;:15;17655:124;;;17695:68;17713:4;17720:8;17747:1;17729:8;:15;:19;;;;:::i;:::-;17720:29;;;;;;;;:::i;:::-;;;;;;;;17751:11;17695:9;:68::i;:::-;17655:124;17822:12;17840:8;17867:1;17849:8;:15;:19;;;;:::i;:::-;17840:29;;;;;;;;:::i;:::-;;;;;;;;:34;;17882:16;17840:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17821:82;;;17926:7;17918:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;17575:397;;17550:422;18002:21;18026;18002:45;;18078:1;18062:13;:17;18058:172;;;18097:12;18115:10;;;;;;;;;;;:15;;18138:13;18115:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18096:60;;;18179:7;18171:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18081:149;18058:172;14925:3312;;;;;;;;14780:3457;;;:::o;7056:313::-;7154:4;7171:36;7181:6;7189:9;7200:6;7171:9;:36::i;:::-;7218:121;7227:6;7235:12;:10;:12::i;:::-;7249:89;7287:6;7249:89;;;;;;;;;;;;;;;;;:11;:19;7261:6;7249:19;;;;;;;;;;;;;;;:33;7269:12;:10;:12::i;:::-;7249:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7218:8;:121::i;:::-;7357:4;7350:11;;7056:313;;;;;:::o;7720:238::-;7763:14;7779:15;7824;;7812:9;;:27;:59;;7857:14;;7812:59;;;7842:12;;7812:59;7803:68;;7900:16;;7888:9;;:28;:62;;7935:15;;7888:62;;;7919:13;;7888:62;7878:72;;7720:238;;:::o;6240:83::-;6281:5;4752:1;6299:16;;6240:83;:::o;6434:119::-;6500:7;6527:9;:18;6537:7;6527:18;;;;;;;;;;;;;;;;6520:25;;6434:119;;;:::o;2834:148::-;2757:12;:10;:12::i;:::-;2747:22;;:6;;;;;;;;;;:22;;;2739:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2941:1:::1;2904:40;;2925:6;::::0;::::1;;;;;;;;2904:40;;;;;;;;;;;;2972:1;2955:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2834:148::o:0;4945:54::-;;;;:::o;12107:796::-;2757:12;:10;:12::i;:::-;2747:22;;:6;;;;;;;;;;:22;;;2739:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12173:11:::1;::::0;::::1;;;;;;;;12172:12;12164:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12259:42;12222:15;;:80;;;;;;;;;;;;;;;;;;12313:58;12330:4;12345:15;;;;;;;;;;;4752:1;4808:2;:13;;;;:::i;:::-;4795:10;:26;;;;:::i;:::-;12313:8;:58::i;:::-;12416:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12398:55;;;12462:4;12469:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12398:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12382:13;;:110;;;;;;;;;;;;;;;;;;12503:23;12529:24;12547:4;12529:9;:24::i;:::-;12503:50;;12564:23;12590:32;12618:3;12590:23;12610:2;12590:15;:19;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;12564:58;;12633:15;;;;;;;;;;;:31;;;12672:21;12703:4;12709:15;12725:1;12727::::0;12729:7:::1;:5;:7::i;:::-;12737:15;12633:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12771:13;;;;;;;;;;;12764:29;;;12802:15;;;;;;;;;;;12820:14;12764:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12860:4;12846:11;;:18;;;;;;;;;;;;;;;;;;12891:4;12877:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12153:750;;12107:796::o:0;2620:79::-;2658:7;2685:6;;;;;;;;;;;2678:13;;2620:79;:::o;5006:56::-;;;;:::o;14160:184::-;14235:10;;;;;;;;;;;14219:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14265:9;;;;;;;;;;;14249:25;;:12;:10;:12::i;:::-;:25;;;14219:55;14211:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14328:8;14314:11;;:22;;;;;;;;;;;;;;;;;;14160:184;:::o;6145:87::-;6184:13;6217:7;;;;;;;;;;;;;;;;;6210:14;;6145:87;:::o;6561:167::-;6639:4;6656:42;6666:12;:10;:12::i;:::-;6680:9;6691:6;6656:9;:42::i;:::-;6716:4;6709:11;;6561:167;;;;:::o;12911:426::-;12972:10;;;;;;;;;;;12956:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;13002:9;;;;;;;;;;;12986:25;;:12;:10;:12::i;:::-;:25;;;12956:55;12948:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;13051:20;13072:24;13090:4;13072:9;:24::i;:::-;13051:45;;13125:1;13110:12;:16;:31;;;;;13130:11;;;;;;;;;;;13110:31;13107:92;;;13157:30;13174:12;13157:16;:30::i;:::-;13107:92;13209:18;13228:21;13209:40;;13277:1;13264:10;:14;13260:70;;;13294:24;13307:10;13294:12;:24::i;:::-;13260:70;12937:400;;12911:426::o;11268:266::-;11384:10;;;;;;;;;;;11368:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;11414:9;;;;;;;;;;;11398:25;;:12;:10;:12::i;:::-;:25;;;11368:55;11360:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;11466:17;11449:14;:34;;;;11508:18;11490:15;:36;;;;11268:266;;:::o;11697:300::-;11806:10;;;;;;;;;;;11790:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;11836:9;;;;;;;;;;;11820:25;;:12;:10;:12::i;:::-;:25;;;11790:55;11782:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;11880:9;11875:115;11899:8;:15;11895:1;:19;11875:115;;;11970:8;11936:18;:31;11955:8;11964:1;11955:11;;;;;;;;:::i;:::-;;;;;;;;11936:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;11916:3;;;;;;;11875:115;;;;11697:300;;:::o;11143:117::-;2757:12;:10;:12::i;:::-;2747:22;;:6;;;;;;;;;;:22;;;2739:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11214:1:::1;11199:12;:16;;;;11231:21;11250:1;11231:21;;;;;;:::i;:::-;;;;;;;;11143:117::o:0;11009:126::-;2757:12;:10;:12::i;:::-;2747:22;;:6;;;;;;;;;;:22;;;2739:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4752:1:::1;4808:2;:13;;;;:::i;:::-;4795:10;:26;;;;:::i;:::-;11062:12;:22;;;;11100:27;4752:1;4808:2;:13;;;;:::i;:::-;4795:10;:26;;;;:::i;:::-;11100:27;;;;;;:::i;:::-;;;;;;;;11009:126::o:0;5069:57::-;;;;:::o;6736:143::-;6817:7;6844:11;:18;6856:5;6844:18;;;;;;;;;;;;;;;:27;6863:7;6844:27;;;;;;;;;;;;;;;;6837:34;;6736:143;;;;:::o;13946:206::-;14028:10;;;;;;;;;;;14012:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14058:9;;;;;;;;;;;14042:25;;:12;:10;:12::i;:::-;:25;;;14012:55;14004:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;4752:1;14131:2;:13;;;;:::i;:::-;14119:9;:25;;;;:::i;:::-;14105:11;:39;;;;13946:206;:::o;11543:146::-;2757:12;:10;:12::i;:::-;2747:22;;:6;;;;;;;;;;:22;;;2739:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11613:1:::1;11596:14;:18;;;;11643:1;11625:15;:19;;;;11660:21;11679:1;11660:21;;;;;;:::i;:::-;;;;;;;;11543:146::o:0;375:98::-;428:7;455:10;448:17;;375:98;:::o;7377:335::-;7487:1;7470:19;;:5;:19;;;7462:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7568:1;7549:21;;:7;:21;;;7541:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7650:6;7620:11;:18;7632:5;7620:18;;;;;;;;;;;;;;;:27;7639:7;7620:27;;;;;;;;;;;;;;;:36;;;;7688:7;7672:32;;7681:5;7672:32;;;7697:6;7672:32;;;;;;:::i;:::-;;;;;;;;7377:335;;;:::o;7965:2439::-;8065:1;8049:18;;:4;:18;;;8041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8138:1;8124:16;;:2;:16;;;8116:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8204:1;8195:6;:10;8187:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8258:17;8296:7;:5;:7::i;:::-;8288:15;;:4;:15;;;;:32;;;;;8313:7;:5;:7::i;:::-;8307:13;;:2;:13;;;;8288:32;8284:1788;;;8349:1;8338:9;;:12;:62;;;;;8363:13;;;;;;;;;;;8355:21;;:4;:21;;;:44;;;;8386:13;;;;;;;;;;;8380:19;;:2;:19;;;8355:44;8338:62;8335:286;;;8434:18;:24;8453:4;8434:24;;;;;;;;;;;;;;;;;;;;;;;;;8433:25;:52;;;;;8463:18;:22;8482:2;8463:22;;;;;;;;;;;;;;;;;;;;;;;;;8462:23;8433:52;8429:181;;;8518:76;8590:3;8518:67;8540:15;;8530:9;;:25;8529:55;;8570:14;;8529:55;;;8557:12;;8529:55;8518:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8506:88;;8429:181;8335:286;8644:1;8634:9;;:11;8631:87;;;8673:33;8702:3;8673:24;8684:12;;8673:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8661:45;;8631:87;8742:13;;;;;;;;;;;8734:21;;:4;:21;;;:55;;;;;8773:15;;;;;;;;;;;8759:30;;:2;:30;;;;8734:55;8730:448;;;8824:12;;8814:6;:22;;8806:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8915:14;;8905:6;8889:13;8899:2;8889:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8881:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8994:18;:22;9013:2;8994:22;;;;;;;;;;;;;;;;;;;;;;;;;8989:152;;9049:76;9121:3;9049:67;9071:15;;9061:9;;:25;9060:55;;9101:14;;9060:55;;;9088:12;;9060:55;9049:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9037:88;;8989:152;9155:9;;:11;;;;;;;;;:::i;:::-;;;;;;8730:448;9199:13;;;;;;;;;;;9193:19;;:2;:19;;;:43;;;;;9231:4;9216:20;;:4;:20;;;;9193:43;9190:166;;;9265:79;9340:3;9265:70;9287:16;;9277:9;;:26;9276:58;;9319:15;;9276:58;;;9305:13;;9276:58;9265:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9253:91;;9190:166;9368:28;9399:24;9417:4;9399:9;:24::i;:::-;9368:55;;9439:6;;;;;;;;;;;9438:7;:30;;;;;9455:13;;;;;;;;;;;9449:19;;:2;:19;;;9438:30;:45;;;;;9472:11;;;;;;;;;;;9438:45;:89;;;;;9510:17;;9487:20;:40;9438:89;:123;;;;;9543:18;;9531:9;;:30;9438:123;9434:631;;;9597:13;;9582:12;:28;9578:82;;;9643:1;9631:9;:13;;;;9578:82;9694:1;9682:9;;:13;9674:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9738:69;9755:51;9759:6;9767:38;9771:20;9793:11;;9767:3;:38::i;:::-;9755:3;:51::i;:::-;9738:16;:69::i;:::-;9822:26;9851:21;9822:50;;9912:1;9891:18;:22;9887:98;;;9934:35;9947:21;9934:12;:35::i;:::-;9887:98;9999:9;;:11;;;;;;;;;:::i;:::-;;;;;;10041:12;10025:13;:28;;;;9563:502;9434:631;8322:1750;8284:1788;10093:1;10083:9;:11;10080:153;;;10131:39;10160:9;10131;:24;10149:4;10131:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10106:9;:24;10124:4;10106:24;;;;;;;;;;;;;;;:64;;;;10209:4;10186:39;;10195:4;10186:39;;;10215:9;10186:39;;;;;;:::i;:::-;;;;;;;;10080:153;10255:27;10275:6;10255:9;:15;10265:4;10255:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10239:9;:15;10249:4;10239:15;;;;;;;;;;;;;;;:43;;;;10303:40;10321:21;10332:9;10321:6;:10;;:21;;;;:::i;:::-;10303:9;:13;10313:2;10303:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10289:9;:13;10299:2;10289:13;;;;;;;;;;;;;;;:54;;;;10370:2;10355:41;;10364:4;10355:41;;;10374:21;10385:9;10374:6;:10;;:21;;;;:::i;:::-;10355:41;;;;;;:::i;:::-;;;;;;;;8034:2370;7965:2439;;;:::o;1512:190::-;1598:7;1631:1;1626;:6;;1634:12;1618:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1658:9;1674:1;1670;:5;;;;:::i;:::-;1658:17;;1693:1;1686:8;;;1512:190;;;;;:::o;1710:246::-;1768:7;1797:1;1792;:6;1788:47;;1822:1;1815:8;;;;1788:47;1845:9;1861:1;1857;:5;;;;:::i;:::-;1845:17;;1890:1;1885;1881;:5;;;;:::i;:::-;:10;1873:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1947:1;1940:8;;;1710:246;;;;;:::o;1964:132::-;2022:7;2049:39;2053:1;2056;2049:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2042:46;;1964:132;;;;:::o;10518:483::-;5593:4;5584:6;;:13;;;;;;;;;;;;;;;;;;10596:21:::1;10634:1;10620:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10596:40;;10665:4;10647;10652:1;10647:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10691:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10681:4;10686:1;10681:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10724:62;10741:4;10756:15;;;;;;;;;;;10774:11;10724:8;:62::i;:::-;10797:15;;;;;;;;;;;:66;;;10878:11;10904:1;10920:4;10947;10967:15;10797:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10585:416;5629:5:::0;5620:6;;:14;;;;;;;;;;;;;;;;;;10518:483;:::o;12005:92::-;12062:10;;;;;;;;;;;:19;;:27;12082:6;12062:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12005:92;:::o;10412:98::-;10469:7;10496:1;10494;:3;10493:9;;10501:1;10493:9;;;10499:1;10493:9;10486:16;;10412:98;;;;:::o;1181:179::-;1239:7;1259:9;1275:1;1271;:5;;;;:::i;:::-;1259:17;;1300:1;1295;:6;;1287:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1351:1;1344:8;;;1181:179;;;;:::o;1368:136::-;1426:7;1453:43;1457:1;1460;1453:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1446:50;;1368:136;;;;:::o;2104:189::-;2190:7;2222:1;2218;:5;2225:12;2210:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2249:9;2265:1;2261;:5;;;;:::i;:::-;2249:17;;2284:1;2277:8;;;2104:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:329::-;3750:6;3799:2;3787:9;3778:7;3774:23;3770:32;3767:119;;;3805:79;;:::i;:::-;3767:119;3925:1;3950:53;3995:7;3986:6;3975:9;3971:22;3950:53;:::i;:::-;3940:63;;3896:117;3691:329;;;;:::o;4026:117::-;4135:1;4132;4125:12;4149:180;4197:77;4194:1;4187:88;4294:4;4291:1;4284:15;4318:4;4315:1;4308:15;4335:281;4418:27;4440:4;4418:27;:::i;:::-;4410:6;4406:40;4548:6;4536:10;4533:22;4512:18;4500:10;4497:34;4494:62;4491:88;;;4559:18;;:::i;:::-;4491:88;4599:10;4595:2;4588:22;4378:238;4335:281;;:::o;4622:129::-;4656:6;4683:20;;:::i;:::-;4673:30;;4712:33;4740:4;4732:6;4712:33;:::i;:::-;4622:129;;;:::o;4757:311::-;4834:4;4924:18;4916:6;4913:30;4910:56;;;4946:18;;:::i;:::-;4910:56;4996:4;4988:6;4984:17;4976:25;;5056:4;5050;5046:15;5038:23;;4757:311;;;:::o;5074:117::-;5183:1;5180;5173:12;5214:710;5310:5;5335:81;5351:64;5408:6;5351:64;:::i;:::-;5335:81;:::i;:::-;5326:90;;5436:5;5465:6;5458:5;5451:21;5499:4;5492:5;5488:16;5481:23;;5552:4;5544:6;5540:17;5532:6;5528:30;5581:3;5573:6;5570:15;5567:122;;;5600:79;;:::i;:::-;5567:122;5715:6;5698:220;5732:6;5727:3;5724:15;5698:220;;;5807:3;5836:37;5869:3;5857:10;5836:37;:::i;:::-;5831:3;5824:50;5903:4;5898:3;5894:14;5887:21;;5774:144;5758:4;5753:3;5749:14;5742:21;;5698:220;;;5702:21;5316:608;;5214:710;;;;;:::o;5947:370::-;6018:5;6067:3;6060:4;6052:6;6048:17;6044:27;6034:122;;6075:79;;:::i;:::-;6034:122;6192:6;6179:20;6217:94;6307:3;6299:6;6292:4;6284:6;6280:17;6217:94;:::i;:::-;6208:103;;6024:293;5947:370;;;;:::o;6323:829::-;6425:6;6433;6441;6490:2;6478:9;6469:7;6465:23;6461:32;6458:119;;;6496:79;;:::i;:::-;6458:119;6644:1;6633:9;6629:17;6616:31;6674:18;6666:6;6663:30;6660:117;;;6696:79;;:::i;:::-;6660:117;6801:78;6871:7;6862:6;6851:9;6847:22;6801:78;:::i;:::-;6791:88;;6587:302;6928:2;6954:53;6999:7;6990:6;6979:9;6975:22;6954:53;:::i;:::-;6944:63;;6899:118;7056:2;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7027:118;6323:829;;;;;:::o;7158:619::-;7235:6;7243;7251;7300:2;7288:9;7279:7;7275:23;7271:32;7268:119;;;7306:79;;:::i;:::-;7268:119;7426:1;7451:53;7496:7;7487:6;7476:9;7472:22;7451:53;:::i;:::-;7441:63;;7397:117;7553:2;7579:53;7624:7;7615:6;7604:9;7600:22;7579:53;:::i;:::-;7569:63;;7524:118;7681:2;7707:53;7752:7;7743:6;7732:9;7728:22;7707:53;:::i;:::-;7697:63;;7652:118;7158:619;;;;;:::o;7783:332::-;7904:4;7942:2;7931:9;7927:18;7919:26;;7955:71;8023:1;8012:9;8008:17;7999:6;7955:71;:::i;:::-;8036:72;8104:2;8093:9;8089:18;8080:6;8036:72;:::i;:::-;7783:332;;;;;:::o;8121:86::-;8156:7;8196:4;8189:5;8185:16;8174:27;;8121:86;;;:::o;8213:112::-;8296:22;8312:5;8296:22;:::i;:::-;8291:3;8284:35;8213:112;;:::o;8331:214::-;8420:4;8458:2;8447:9;8443:18;8435:26;;8471:67;8535:1;8524:9;8520:17;8511:6;8471:67;:::i;:::-;8331:214;;;;:::o;8551:329::-;8610:6;8659:2;8647:9;8638:7;8634:23;8630:32;8627:119;;;8665:79;;:::i;:::-;8627:119;8785:1;8810:53;8855:7;8846:6;8835:9;8831:22;8810:53;:::i;:::-;8800:63;;8756:117;8551:329;;;;:::o;8886:118::-;8973:24;8991:5;8973:24;:::i;:::-;8968:3;8961:37;8886:118;;:::o;9010:222::-;9103:4;9141:2;9130:9;9126:18;9118:26;;9154:71;9222:1;9211:9;9207:17;9198:6;9154:71;:::i;:::-;9010:222;;;;:::o;9238:116::-;9308:21;9323:5;9308:21;:::i;:::-;9301:5;9298:32;9288:60;;9344:1;9341;9334:12;9288:60;9238:116;:::o;9360:133::-;9403:5;9441:6;9428:20;9419:29;;9457:30;9481:5;9457:30;:::i;:::-;9360:133;;;;:::o;9499:323::-;9555:6;9604:2;9592:9;9583:7;9579:23;9575:32;9572:119;;;9610:79;;:::i;:::-;9572:119;9730:1;9755:50;9797:7;9788:6;9777:9;9773:22;9755:50;:::i;:::-;9745:60;;9701:114;9499:323;;;;:::o;9828:474::-;9896:6;9904;9953:2;9941:9;9932:7;9928:23;9924:32;9921:119;;;9959:79;;:::i;:::-;9921:119;10079:1;10104:53;10149:7;10140:6;10129:9;10125:22;10104:53;:::i;:::-;10094:63;;10050:117;10206:2;10232:53;10277:7;10268:6;10257:9;10253:22;10232:53;:::i;:::-;10222:63;;10177:118;9828:474;;;;;:::o;10308:678::-;10398:6;10406;10455:2;10443:9;10434:7;10430:23;10426:32;10423:119;;;10461:79;;:::i;:::-;10423:119;10609:1;10598:9;10594:17;10581:31;10639:18;10631:6;10628:30;10625:117;;;10661:79;;:::i;:::-;10625:117;10766:78;10836:7;10827:6;10816:9;10812:22;10766:78;:::i;:::-;10756:88;;10552:302;10893:2;10919:50;10961:7;10952:6;10941:9;10937:22;10919:50;:::i;:::-;10909:60;;10864:115;10308:678;;;;;:::o;10992:474::-;11060:6;11068;11117:2;11105:9;11096:7;11092:23;11088:32;11085:119;;;11123:79;;:::i;:::-;11085:119;11243:1;11268:53;11313:7;11304:6;11293:9;11289:22;11268:53;:::i;:::-;11258:63;;11214:117;11370:2;11396:53;11441:7;11432:6;11421:9;11417:22;11396:53;:::i;:::-;11386:63;;11341:118;10992:474;;;;;:::o;11472:174::-;11612:26;11608:1;11600:6;11596:14;11589:50;11472:174;:::o;11652:366::-;11794:3;11815:67;11879:2;11874:3;11815:67;:::i;:::-;11808:74;;11891:93;11980:3;11891:93;:::i;:::-;12009:2;12004:3;12000:12;11993:19;;11652:366;;;:::o;12024:419::-;12190:4;12228:2;12217:9;12213:18;12205:26;;12277:9;12271:4;12267:20;12263:1;12252:9;12248:17;12241:47;12305:131;12431:4;12305:131;:::i;:::-;12297:139;;12024:419;;;:::o;12449:177::-;12589:29;12585:1;12577:6;12573:14;12566:53;12449:177;:::o;12632:366::-;12774:3;12795:67;12859:2;12854:3;12795:67;:::i;:::-;12788:74;;12871:93;12960:3;12871:93;:::i;:::-;12989:2;12984:3;12980:12;12973:19;;12632:366;;;:::o;13004:419::-;13170:4;13208:2;13197:9;13193:18;13185:26;;13257:9;13251:4;13247:20;13243:1;13232:9;13228:17;13221:47;13285:131;13411:4;13285:131;:::i;:::-;13277:139;;13004:419;;;:::o;13429:182::-;13569:34;13565:1;13557:6;13553:14;13546:58;13429:182;:::o;13617:366::-;13759:3;13780:67;13844:2;13839:3;13780:67;:::i;:::-;13773:74;;13856:93;13945:3;13856:93;:::i;:::-;13974:2;13969:3;13965:12;13958:19;;13617:366;;;:::o;13989:419::-;14155:4;14193:2;14182:9;14178:18;14170:26;;14242:9;14236:4;14232:20;14228:1;14217:9;14213:17;14206:47;14270:131;14396:4;14270:131;:::i;:::-;14262:139;;13989:419;;;:::o;14414:143::-;14471:5;14502:6;14496:13;14487:22;;14518:33;14545:5;14518:33;:::i;:::-;14414:143;;;;:::o;14563:351::-;14633:6;14682:2;14670:9;14661:7;14657:23;14653:32;14650:119;;;14688:79;;:::i;:::-;14650:119;14808:1;14833:64;14889:7;14880:6;14869:9;14865:22;14833:64;:::i;:::-;14823:74;;14779:128;14563:351;;;;:::o;14920:176::-;15060:28;15056:1;15048:6;15044:14;15037:52;14920:176;:::o;15102:366::-;15244:3;15265:67;15329:2;15324:3;15265:67;:::i;:::-;15258:74;;15341:93;15430:3;15341:93;:::i;:::-;15459:2;15454:3;15450:12;15443:19;;15102:366;;;:::o;15474:419::-;15640:4;15678:2;15667:9;15663:18;15655:26;;15727:9;15721:4;15717:20;15713:1;15702:9;15698:17;15691:47;15755:131;15881:4;15755:131;:::i;:::-;15747:139;;15474:419;;;:::o;15899:332::-;16020:4;16058:2;16047:9;16043:18;16035:26;;16071:71;16139:1;16128:9;16124:17;16115:6;16071:71;:::i;:::-;16152:72;16220:2;16209:9;16205:18;16196:6;16152:72;:::i;:::-;15899:332;;;;;:::o;16237:137::-;16291:5;16322:6;16316:13;16307:22;;16338:30;16362:5;16338:30;:::i;:::-;16237:137;;;;:::o;16380:345::-;16447:6;16496:2;16484:9;16475:7;16471:23;16467:32;16464:119;;;16502:79;;:::i;:::-;16464:119;16622:1;16647:61;16700:7;16691:6;16680:9;16676:22;16647:61;:::i;:::-;16637:71;;16593:125;16380:345;;;;:::o;16731:165::-;16871:17;16867:1;16859:6;16855:14;16848:41;16731:165;:::o;16902:366::-;17044:3;17065:67;17129:2;17124:3;17065:67;:::i;:::-;17058:74;;17141:93;17230:3;17141:93;:::i;:::-;17259:2;17254:3;17250:12;17243:19;;16902:366;;;:::o;17274:419::-;17440:4;17478:2;17467:9;17463:18;17455:26;;17527:9;17521:4;17517:20;17513:1;17502:9;17498:17;17491:47;17555:131;17681:4;17555:131;:::i;:::-;17547:139;;17274:419;;;:::o;17699:180::-;17747:77;17744:1;17737:88;17844:4;17841:1;17834:15;17868:4;17865:1;17858:15;17885:102;17927:8;17974:5;17971:1;17967:13;17946:34;;17885:102;;;:::o;17993:848::-;18054:5;18061:4;18085:6;18076:15;;18109:5;18100:14;;18123:712;18144:1;18134:8;18131:15;18123:712;;;18239:4;18234:3;18230:14;18224:4;18221:24;18218:50;;;18248:18;;:::i;:::-;18218:50;18298:1;18288:8;18284:16;18281:451;;;18713:4;18706:5;18702:16;18693:25;;18281:451;18763:4;18757;18753:15;18745:23;;18793:32;18816:8;18793:32;:::i;:::-;18781:44;;18123:712;;;17993:848;;;;;;;:::o;18847:1073::-;18901:5;19092:8;19082:40;;19113:1;19104:10;;19115:5;;19082:40;19141:4;19131:36;;19158:1;19149:10;;19160:5;;19131:36;19227:4;19275:1;19270:27;;;;19311:1;19306:191;;;;19220:277;;19270:27;19288:1;19279:10;;19290:5;;;19306:191;19351:3;19341:8;19338:17;19335:43;;;19358:18;;:::i;:::-;19335:43;19407:8;19404:1;19400:16;19391:25;;19442:3;19435:5;19432:14;19429:40;;;19449:18;;:::i;:::-;19429:40;19482:5;;;19220:277;;19606:2;19596:8;19593:16;19587:3;19581:4;19578:13;19574:36;19556:2;19546:8;19543:16;19538:2;19532:4;19529:12;19525:35;19509:111;19506:246;;;19662:8;19656:4;19652:19;19643:28;;19697:3;19690:5;19687:14;19684:40;;;19704:18;;:::i;:::-;19684:40;19737:5;;19506:246;19777:42;19815:3;19805:8;19799:4;19796:1;19777:42;:::i;:::-;19762:57;;;;19851:4;19846:3;19842:14;19835:5;19832:25;19829:51;;;19860:18;;:::i;:::-;19829:51;19909:4;19902:5;19898:16;19889:25;;18847:1073;;;;;;:::o;19926:281::-;19984:5;20008:23;20026:4;20008:23;:::i;:::-;20000:31;;20052:25;20068:8;20052:25;:::i;:::-;20040:37;;20096:104;20133:66;20123:8;20117:4;20096:104;:::i;:::-;20087:113;;19926:281;;;;:::o;20213:410::-;20253:7;20276:20;20294:1;20276:20;:::i;:::-;20271:25;;20310:20;20328:1;20310:20;:::i;:::-;20305:25;;20365:1;20362;20358:9;20387:30;20405:11;20387:30;:::i;:::-;20376:41;;20566:1;20557:7;20553:15;20550:1;20547:22;20527:1;20520:9;20500:83;20477:139;;20596:18;;:::i;:::-;20477:139;20261:362;20213:410;;;;:::o;20629:174::-;20769:26;20765:1;20757:6;20753:14;20746:50;20629:174;:::o;20809:366::-;20951:3;20972:67;21036:2;21031:3;20972:67;:::i;:::-;20965:74;;21048:93;21137:3;21048:93;:::i;:::-;21166:2;21161:3;21157:12;21150:19;;20809:366;;;:::o;21181:419::-;21347:4;21385:2;21374:9;21370:18;21362:26;;21434:9;21428:4;21424:20;21420:1;21409:9;21405:17;21398:47;21462:131;21588:4;21462:131;:::i;:::-;21454:139;;21181:419;;;:::o;21606:147::-;21707:11;21744:3;21729:18;;21606:147;;;;:::o;21759:114::-;;:::o;21879:398::-;22038:3;22059:83;22140:1;22135:3;22059:83;:::i;:::-;22052:90;;22151:93;22240:3;22151:93;:::i;:::-;22269:1;22264:3;22260:11;22253:18;;21879:398;;;:::o;22283:379::-;22467:3;22489:147;22632:3;22489:147;:::i;:::-;22482:154;;22653:3;22646:10;;22283:379;;;:::o;22668:169::-;22808:21;22804:1;22796:6;22792:14;22785:45;22668:169;:::o;22843:366::-;22985:3;23006:67;23070:2;23065:3;23006:67;:::i;:::-;22999:74;;23082:93;23171:3;23082:93;:::i;:::-;23200:2;23195:3;23191:12;23184:19;;22843:366;;;:::o;23215:419::-;23381:4;23419:2;23408:9;23404:18;23396:26;;23468:9;23462:4;23458:20;23454:1;23443:9;23439:17;23432:47;23496:131;23622:4;23496:131;:::i;:::-;23488:139;;23215:419;;;:::o;23640:169::-;23780:21;23776:1;23768:6;23764:14;23757:45;23640:169;:::o;23815:366::-;23957:3;23978:67;24042:2;24037:3;23978:67;:::i;:::-;23971:74;;24054:93;24143:3;24054:93;:::i;:::-;24172:2;24167:3;24163:12;24156:19;;23815:366;;;:::o;24187:419::-;24353:4;24391:2;24380:9;24376:18;24368:26;;24440:9;24434:4;24430:20;24426:1;24415:9;24411:17;24404:47;24468:131;24594:4;24468:131;:::i;:::-;24460:139;;24187:419;;;:::o;24612:169::-;24752:21;24748:1;24740:6;24736:14;24729:45;24612:169;:::o;24787:366::-;24929:3;24950:67;25014:2;25009:3;24950:67;:::i;:::-;24943:74;;25026:93;25115:3;25026:93;:::i;:::-;25144:2;25139:3;25135:12;25128:19;;24787:366;;;:::o;25159:419::-;25325:4;25363:2;25352:9;25348:18;25340:26;;25412:9;25406:4;25402:20;25398:1;25387:9;25383:17;25376:47;25440:131;25566:4;25440:131;:::i;:::-;25432:139;;25159:419;;;:::o;25584:179::-;25724:31;25720:1;25712:6;25708:14;25701:55;25584:179;:::o;25769:366::-;25911:3;25932:67;25996:2;25991:3;25932:67;:::i;:::-;25925:74;;26008:93;26097:3;26008:93;:::i;:::-;26126:2;26121:3;26117:12;26110:19;;25769:366;;;:::o;26141:419::-;26307:4;26345:2;26334:9;26330:18;26322:26;;26394:9;26388:4;26384:20;26380:1;26369:9;26365:17;26358:47;26422:131;26548:4;26422:131;:::i;:::-;26414:139;;26141:419;;;:::o;26566:174::-;26706:26;26702:1;26694:6;26690:14;26683:50;26566:174;:::o;26746:366::-;26888:3;26909:67;26973:2;26968:3;26909:67;:::i;:::-;26902:74;;26985:93;27074:3;26985:93;:::i;:::-;27103:2;27098:3;27094:12;27087:19;;26746:366;;;:::o;27118:419::-;27284:4;27322:2;27311:9;27307:18;27299:26;;27371:9;27365:4;27361:20;27357:1;27346:9;27342:17;27335:47;27399:131;27525:4;27399:131;:::i;:::-;27391:139;;27118:419;;;:::o;27543:180::-;27591:77;27588:1;27581:88;27688:4;27685:1;27678:15;27712:4;27709:1;27702:15;27729:185;27769:1;27786:20;27804:1;27786:20;:::i;:::-;27781:25;;27820:20;27838:1;27820:20;:::i;:::-;27815:25;;27859:1;27849:35;;27864:18;;:::i;:::-;27849:35;27906:1;27903;27899:9;27894:14;;27729:185;;;;:::o;27920:173::-;28060:25;28056:1;28048:6;28044:14;28037:49;27920:173;:::o;28099:366::-;28241:3;28262:67;28326:2;28321:3;28262:67;:::i;:::-;28255:74;;28338:93;28427:3;28338:93;:::i;:::-;28456:2;28451:3;28447:12;28440:19;;28099:366;;;:::o;28471:419::-;28637:4;28675:2;28664:9;28660:18;28652:26;;28724:9;28718:4;28714:20;28710:1;28699:9;28695:17;28688:47;28752:131;28878:4;28752:131;:::i;:::-;28744:139;;28471:419;;;:::o;28896:171::-;29036:23;29032:1;29024:6;29020:14;29013:47;28896:171;:::o;29073:366::-;29215:3;29236:67;29300:2;29295:3;29236:67;:::i;:::-;29229:74;;29312:93;29401:3;29312:93;:::i;:::-;29430:2;29425:3;29421:12;29414:19;;29073:366;;;:::o;29445:419::-;29611:4;29649:2;29638:9;29634:18;29626:26;;29698:9;29692:4;29688:20;29684:1;29673:9;29669:17;29662:47;29726:131;29852:4;29726:131;:::i;:::-;29718:139;;29445:419;;;:::o;29870:180::-;29918:77;29915:1;29908:88;30015:4;30012:1;30005:15;30039:4;30036:1;30029:15;30056:172;30196:24;30192:1;30184:6;30180:14;30173:48;30056:172;:::o;30234:366::-;30376:3;30397:67;30461:2;30456:3;30397:67;:::i;:::-;30390:74;;30473:93;30562:3;30473:93;:::i;:::-;30591:2;30586:3;30582:12;30575:19;;30234:366;;;:::o;30606:419::-;30772:4;30810:2;30799:9;30795:18;30787:26;;30859:9;30853:4;30849:20;30845:1;30834:9;30830:17;30823:47;30887:131;31013:4;30887:131;:::i;:::-;30879:139;;30606:419;;;:::o;31031:194::-;31071:4;31091:20;31109:1;31091:20;:::i;:::-;31086:25;;31125:20;31143:1;31125:20;:::i;:::-;31120:25;;31169:1;31166;31162:9;31154:17;;31193:1;31187:4;31184:11;31181:37;;;31198:18;;:::i;:::-;31181:37;31031:194;;;;:::o;31231:191::-;31271:3;31290:20;31308:1;31290:20;:::i;:::-;31285:25;;31324:20;31342:1;31324:20;:::i;:::-;31319:25;;31367:1;31364;31360:9;31353:16;;31388:3;31385:1;31382:10;31379:36;;;31395:18;;:::i;:::-;31379:36;31231:191;;;;:::o;31428:79::-;31467:7;31496:5;31485:16;;31428:79;;;:::o;31513:157::-;31618:45;31638:24;31656:5;31638:24;:::i;:::-;31618:45;:::i;:::-;31613:3;31606:58;31513:157;;:::o;31676:94::-;31709:8;31757:5;31753:2;31749:14;31728:35;;31676:94;;;:::o;31776:::-;31815:7;31844:20;31858:5;31844:20;:::i;:::-;31833:31;;31776:94;;;:::o;31876:100::-;31915:7;31944:26;31964:5;31944:26;:::i;:::-;31933:37;;31876:100;;;:::o;31982:157::-;32087:45;32107:24;32125:5;32107:24;:::i;:::-;32087:45;:::i;:::-;32082:3;32075:58;31982:157;;:::o;32145:679::-;32341:3;32356:75;32427:3;32418:6;32356:75;:::i;:::-;32456:2;32451:3;32447:12;32440:19;;32469:75;32540:3;32531:6;32469:75;:::i;:::-;32569:2;32564:3;32560:12;32553:19;;32582:75;32653:3;32644:6;32582:75;:::i;:::-;32682:2;32677:3;32673:12;32666:19;;32695:75;32766:3;32757:6;32695:75;:::i;:::-;32795:2;32790:3;32786:12;32779:19;;32815:3;32808:10;;32145:679;;;;;;;:::o;32830:176::-;32862:1;32879:20;32897:1;32879:20;:::i;:::-;32874:25;;32913:20;32931:1;32913:20;:::i;:::-;32908:25;;32952:1;32942:35;;32957:18;;:::i;:::-;32942:35;32998:1;32995;32991:9;32986:14;;32830:176;;;;:::o;33012:172::-;33152:24;33148:1;33140:6;33136:14;33129:48;33012:172;:::o;33190:366::-;33332:3;33353:67;33417:2;33412:3;33353:67;:::i;:::-;33346:74;;33429:93;33518:3;33429:93;:::i;:::-;33547:2;33542:3;33538:12;33531:19;;33190:366;;;:::o;33562:419::-;33728:4;33766:2;33755:9;33751:18;33743:26;;33815:9;33809:4;33805:20;33801:1;33790:9;33786:17;33779:47;33843:131;33969:4;33843:131;:::i;:::-;33835:139;;33562:419;;;:::o;33987:177::-;34127:29;34123:1;34115:6;34111:14;34104:53;33987:177;:::o;34170:366::-;34312:3;34333:67;34397:2;34392:3;34333:67;:::i;:::-;34326:74;;34409:93;34498:3;34409:93;:::i;:::-;34527:2;34522:3;34518:12;34511:19;;34170:366;;;:::o;34542:419::-;34708:4;34746:2;34735:9;34731:18;34723:26;;34795:9;34789:4;34785:20;34781:1;34770:9;34766:17;34759:47;34823:131;34949:4;34823:131;:::i;:::-;34815:139;;34542:419;;;:::o;34967:182::-;35107:34;35103:1;35095:6;35091:14;35084:58;34967:182;:::o;35155:366::-;35297:3;35318:67;35382:2;35377:3;35318:67;:::i;:::-;35311:74;;35394:93;35483:3;35394:93;:::i;:::-;35512:2;35507:3;35503:12;35496:19;;35155:366;;;:::o;35527:419::-;35693:4;35731:2;35720:9;35716:18;35708:26;;35780:9;35774:4;35770:20;35766:1;35755:9;35751:17;35744:47;35808:131;35934:4;35808:131;:::i;:::-;35800:139;;35527:419;;;:::o;35952:173::-;36092:25;36088:1;36080:6;36076:14;36069:49;35952:173;:::o;36131:366::-;36273:3;36294:67;36358:2;36353:3;36294:67;:::i;:::-;36287:74;;36370:93;36459:3;36370:93;:::i;:::-;36488:2;36483:3;36479:12;36472:19;;36131:366;;;:::o;36503:419::-;36669:4;36707:2;36696:9;36692:18;36684:26;;36756:9;36750:4;36746:20;36742:1;36731:9;36727:17;36720:47;36784:131;36910:4;36784:131;:::i;:::-;36776:139;;36503:419;;;:::o;36928:143::-;36985:5;37016:6;37010:13;37001:22;;37032:33;37059:5;37032:33;:::i;:::-;36928:143;;;;:::o;37077:351::-;37147:6;37196:2;37184:9;37175:7;37171:23;37167:32;37164:119;;;37202:79;;:::i;:::-;37164:119;37322:1;37347:64;37403:7;37394:6;37383:9;37379:22;37347:64;:::i;:::-;37337:74;;37293:128;37077:351;;;;:::o;37434:332::-;37555:4;37593:2;37582:9;37578:18;37570:26;;37606:71;37674:1;37663:9;37659:17;37650:6;37606:71;:::i;:::-;37687:72;37755:2;37744:9;37740:18;37731:6;37687:72;:::i;:::-;37434:332;;;;;:::o;37772:85::-;37817:7;37846:5;37835:16;;37772:85;;;:::o;37863:60::-;37891:3;37912:5;37905:12;;37863:60;;;:::o;37929:158::-;37987:9;38020:61;38038:42;38047:32;38073:5;38047:32;:::i;:::-;38038:42;:::i;:::-;38020:61;:::i;:::-;38007:74;;37929:158;;;:::o;38093:147::-;38188:45;38227:5;38188:45;:::i;:::-;38183:3;38176:58;38093:147;;:::o;38246:807::-;38495:4;38533:3;38522:9;38518:19;38510:27;;38547:71;38615:1;38604:9;38600:17;38591:6;38547:71;:::i;:::-;38628:72;38696:2;38685:9;38681:18;38672:6;38628:72;:::i;:::-;38710:80;38786:2;38775:9;38771:18;38762:6;38710:80;:::i;:::-;38800;38876:2;38865:9;38861:18;38852:6;38800:80;:::i;:::-;38890:73;38958:3;38947:9;38943:19;38934:6;38890:73;:::i;:::-;38973;39041:3;39030:9;39026:19;39017:6;38973:73;:::i;:::-;38246:807;;;;;;;;;:::o;39059:663::-;39147:6;39155;39163;39212:2;39200:9;39191:7;39187:23;39183:32;39180:119;;;39218:79;;:::i;:::-;39180:119;39338:1;39363:64;39419:7;39410:6;39399:9;39395:22;39363:64;:::i;:::-;39353:74;;39309:128;39476:2;39502:64;39558:7;39549:6;39538:9;39534:22;39502:64;:::i;:::-;39492:74;;39447:129;39615:2;39641:64;39697:7;39688:6;39677:9;39673:22;39641:64;:::i;:::-;39631:74;;39586:129;39059:663;;;;;:::o;39728:164::-;39868:16;39864:1;39856:6;39852:14;39845:40;39728:164;:::o;39898:366::-;40040:3;40061:67;40125:2;40120:3;40061:67;:::i;:::-;40054:74;;40137:93;40226:3;40137:93;:::i;:::-;40255:2;40250:3;40246:12;40239:19;;39898:366;;;:::o;40270:419::-;40436:4;40474:2;40463:9;40459:18;40451:26;;40523:9;40517:4;40513:20;40509:1;40498:9;40494:17;40487:47;40551:131;40677:4;40551:131;:::i;:::-;40543:139;;40270:419;;;:::o;40695:238::-;40796:4;40834:2;40823:9;40819:18;40811:26;;40847:79;40923:1;40912:9;40908:17;40899:6;40847:79;:::i;:::-;40695:238;;;;:::o;40939:223::-;41079:34;41075:1;41067:6;41063:14;41056:58;41148:6;41143:2;41135:6;41131:15;41124:31;40939:223;:::o;41168:366::-;41310:3;41331:67;41395:2;41390:3;41331:67;:::i;:::-;41324:74;;41407:93;41496:3;41407:93;:::i;:::-;41525:2;41520:3;41516:12;41509:19;;41168:366;;;:::o;41540:419::-;41706:4;41744:2;41733:9;41729:18;41721:26;;41793:9;41787:4;41783:20;41779:1;41768:9;41764:17;41757:47;41821:131;41947:4;41821:131;:::i;:::-;41813:139;;41540:419;;;:::o;41965:221::-;42105:34;42101:1;42093:6;42089:14;42082:58;42174:4;42169:2;42161:6;42157:15;42150:29;41965:221;:::o;42192:366::-;42334:3;42355:67;42419:2;42414:3;42355:67;:::i;:::-;42348:74;;42431:93;42520:3;42431:93;:::i;:::-;42549:2;42544:3;42540:12;42533:19;;42192:366;;;:::o;42564:419::-;42730:4;42768:2;42757:9;42753:18;42745:26;;42817:9;42811:4;42807:20;42803:1;42792:9;42788:17;42781:47;42845:131;42971:4;42845:131;:::i;:::-;42837:139;;42564:419;;;:::o;42989:224::-;43129:34;43125:1;43117:6;43113:14;43106:58;43198:7;43193:2;43185:6;43181:15;43174:32;42989:224;:::o;43219:366::-;43361:3;43382:67;43446:2;43441:3;43382:67;:::i;:::-;43375:74;;43458:93;43547:3;43458:93;:::i;:::-;43576:2;43571:3;43567:12;43560:19;;43219:366;;;:::o;43591:419::-;43757:4;43795:2;43784:9;43780:18;43772:26;;43844:9;43838:4;43834:20;43830:1;43819:9;43815:17;43808:47;43872:131;43998:4;43872:131;:::i;:::-;43864:139;;43591:419;;;:::o;44016:222::-;44156:34;44152:1;44144:6;44140:14;44133:58;44225:5;44220:2;44212:6;44208:15;44201:30;44016:222;:::o;44244:366::-;44386:3;44407:67;44471:2;44466:3;44407:67;:::i;:::-;44400:74;;44483:93;44572:3;44483:93;:::i;:::-;44601:2;44596:3;44592:12;44585:19;;44244:366;;;:::o;44616:419::-;44782:4;44820:2;44809:9;44805:18;44797:26;;44869:9;44863:4;44859:20;44855:1;44844:9;44840:17;44833:47;44897:131;45023:4;44897:131;:::i;:::-;44889:139;;44616:419;;;:::o;45041:228::-;45181:34;45177:1;45169:6;45165:14;45158:58;45250:11;45245:2;45237:6;45233:15;45226:36;45041:228;:::o;45275:366::-;45417:3;45438:67;45502:2;45497:3;45438:67;:::i;:::-;45431:74;;45514:93;45603:3;45514:93;:::i;:::-;45632:2;45627:3;45623:12;45616:19;;45275:366;;;:::o;45647:419::-;45813:4;45851:2;45840:9;45836:18;45828:26;;45900:9;45894:4;45890:20;45886:1;45875:9;45871:17;45864:47;45928:131;46054:4;45928:131;:::i;:::-;45920:139;;45647:419;;;:::o;46072:175::-;46212:27;46208:1;46200:6;46196:14;46189:51;46072:175;:::o;46253:366::-;46395:3;46416:67;46480:2;46475:3;46416:67;:::i;:::-;46409:74;;46492:93;46581:3;46492:93;:::i;:::-;46610:2;46605:3;46601:12;46594:19;;46253:366;;;:::o;46625:419::-;46791:4;46829:2;46818:9;46814:18;46806:26;;46878:9;46872:4;46868:20;46864:1;46853:9;46849:17;46842:47;46906:131;47032:4;46906:131;:::i;:::-;46898:139;;46625:419;;;:::o;47050:176::-;47190:28;47186:1;47178:6;47174:14;47167:52;47050:176;:::o;47232:366::-;47374:3;47395:67;47459:2;47454:3;47395:67;:::i;:::-;47388:74;;47471:93;47560:3;47471:93;:::i;:::-;47589:2;47584:3;47580:12;47573:19;;47232:366;;;:::o;47604:419::-;47770:4;47808:2;47797:9;47793:18;47785:26;;47857:9;47851:4;47847:20;47843:1;47832:9;47828:17;47821:47;47885:131;48011:4;47885:131;:::i;:::-;47877:139;;47604:419;;;:::o;48029:233::-;48068:3;48091:24;48109:5;48091:24;:::i;:::-;48082:33;;48137:66;48130:5;48127:77;48124:103;;48207:18;;:::i;:::-;48124:103;48254:1;48247:5;48243:13;48236:20;;48029:233;;;:::o;48268:173::-;48408:25;48404:1;48396:6;48392:14;48385:49;48268:173;:::o;48447:366::-;48589:3;48610:67;48674:2;48669:3;48610:67;:::i;:::-;48603:74;;48686:93;48775:3;48686:93;:::i;:::-;48804:2;48799:3;48795:12;48788:19;;48447:366;;;:::o;48819:419::-;48985:4;49023:2;49012:9;49008:18;49000:26;;49072:9;49066:4;49062:20;49058:1;49047:9;49043:17;49036:47;49100:131;49226:4;49100:131;:::i;:::-;49092:139;;48819:419;;;:::o;49244:220::-;49384:34;49380:1;49372:6;49368:14;49361:58;49453:3;49448:2;49440:6;49436:15;49429:28;49244:220;:::o;49470:366::-;49612:3;49633:67;49697:2;49692:3;49633:67;:::i;:::-;49626:74;;49709:93;49798:3;49709:93;:::i;:::-;49827:2;49822:3;49818:12;49811:19;;49470:366;;;:::o;49842:419::-;50008:4;50046:2;50035:9;50031:18;50023:26;;50095:9;50089:4;50085:20;50081:1;50070:9;50066:17;50059:47;50123:131;50249:4;50123:131;:::i;:::-;50115:139;;49842:419;;;:::o;50267:114::-;50334:6;50368:5;50362:12;50352:22;;50267:114;;;:::o;50387:184::-;50486:11;50520:6;50515:3;50508:19;50560:4;50555:3;50551:14;50536:29;;50387:184;;;;:::o;50577:132::-;50644:4;50667:3;50659:11;;50697:4;50692:3;50688:14;50680:22;;50577:132;;;:::o;50715:108::-;50792:24;50810:5;50792:24;:::i;:::-;50787:3;50780:37;50715:108;;:::o;50829:179::-;50898:10;50919:46;50961:3;50953:6;50919:46;:::i;:::-;50997:4;50992:3;50988:14;50974:28;;50829:179;;;;:::o;51014:113::-;51084:4;51116;51111:3;51107:14;51099:22;;51014:113;;;:::o;51163:732::-;51282:3;51311:54;51359:5;51311:54;:::i;:::-;51381:86;51460:6;51455:3;51381:86;:::i;:::-;51374:93;;51491:56;51541:5;51491:56;:::i;:::-;51570:7;51601:1;51586:284;51611:6;51608:1;51605:13;51586:284;;;51687:6;51681:13;51714:63;51773:3;51758:13;51714:63;:::i;:::-;51707:70;;51800:60;51853:6;51800:60;:::i;:::-;51790:70;;51646:224;51633:1;51630;51626:9;51621:14;;51586:284;;;51590:14;51886:3;51879:10;;51287:608;;;51163:732;;;;:::o;51901:831::-;52164:4;52202:3;52191:9;52187:19;52179:27;;52216:71;52284:1;52273:9;52269:17;52260:6;52216:71;:::i;:::-;52297:80;52373:2;52362:9;52358:18;52349:6;52297:80;:::i;:::-;52424:9;52418:4;52414:20;52409:2;52398:9;52394:18;52387:48;52452:108;52555:4;52546:6;52452:108;:::i;:::-;52444:116;;52570:72;52638:2;52627:9;52623:18;52614:6;52570:72;:::i;:::-;52652:73;52720:3;52709:9;52705:19;52696:6;52652:73;:::i;:::-;51901:831;;;;;;;;:::o;52738:177::-;52878:29;52874:1;52866:6;52862:14;52855:53;52738:177;:::o;52921:366::-;53063:3;53084:67;53148:2;53143:3;53084:67;:::i;:::-;53077:74;;53160:93;53249:3;53160:93;:::i;:::-;53278:2;53273:3;53269:12;53262:19;;52921:366;;;:::o;53293:419::-;53459:4;53497:2;53486:9;53482:18;53474:26;;53546:9;53540:4;53536:20;53532:1;53521:9;53517:17;53510:47;53574:131;53700:4;53574:131;:::i;:::-;53566:139;;53293:419;;;:::o

Swarm Source

ipfs://c2770dbe9120c214a74d30b685e74a017d7272b8918fb4d9e5b4a052d28f1653

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.