ETH Price: $3,367.86 (-3.40%)

Token

KONGZILLA (KILLA)
 

Overview

Max Total Supply

10,000,000,000 KILLA

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*牛牛牛.eth
Balance
1 KILLA

Value
$0.00
0xD7fac8D8b08bc47F0abb04c247a3F5168c63eCeB
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
KONGZILLAETH

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-13
*/

/**
 *Submitted for verification at Etherscan.io on 2022-03-13

/**
                                                                                                      
▀████▀ ▀███▀    ▄▄█▀▀██▄ ▀███▄   ▀███▀ ▄▄█▀▀▀█▄█         ███▀▀▀███████▀████▀   ▀████▀         ██      
  ██   ▄█▀    ▄██▀    ▀██▄ ███▄    █ ▄██▀     ▀█         █▀   ███  ██   ██       ██          ▄██▄     
  ██ ▄█▀      ██▀      ▀██ █ ███   █ ██▀       ▀         ▀   ███   ██   ██       ██         ▄█▀██▓    
  █████▄      ██        ██ █  ▀██▄ █ █▓                     ███    ██   ██       ██        ▄█  ▀██    
  ▓█  ██▓     ██        ██ █   ▀██▄▓ █▓▄    ▀████          ███   ▄ █▓   █▓     ▄ █▓     ▄  ███▓█▓██   
  ▓█   ▀▓▓▄   ▀██      ██▀ ▓     ▓█▓ ▀▓█▄     ██          ▓██   ▄█ █▓   █▓    ▒█ █▓    ▒█ ▓▀      ██  
  ▓▓    ▓▒▓   ▓██      ▓█▓ ▓   ▀▓▓▓▓ ▓▓▓    ▀▓█▓▓         ▓▓█   ▓█ ▓▓   ▓▓     ▓ ▓▓     ▓  ▓▓▓▓█▓▓█   
  ▓▓     ▒▓▓▓ ▀█▓▓▓    ▓▓▓ ▓     ▓▓▓ ▀▒▓▓     ▓▓         ▓▓▓   ▓▓█ ▒▓   ▓▒    ▓▓ ▓▒    ▓▓ ▓▀      ▓▓  
▒ ▒ ▒      ▒ ▒  ▒ ▒ ▒ ▒  ▒ ▒ ▒    ▒▓▓  ▒▒▒ ▒ ▒▒         ▒ ▒ ▒ ▒ ▒▓▓▒ ▒▒ ▒▒ ▓▒ ▒▒ ▒▒ ▓▒ ▒▒ ▒ ▒   ▒ ▒▒▒                                                                                                                                                                                                           

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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

contract KONGZILLAETH is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e10 * 10**9;
    
    uint256 private _buyProjectFee = 5;
    uint256 private _previousBuyProjectFee = _buyProjectFee;
    uint256 private _buyLiquidityFee = 2;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyRewardFee = 5;
    uint256 private _previousBuyRewardFee = _buyRewardFee;
    
    uint256 private _sellProjectFee = 5;
    uint256 private _previousSellProjectFee = _sellProjectFee;
    uint256 private _sellLiquidityFee = 2;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellRewardFee = 5;
    uint256 private _previousSellRewardFee = _sellRewardFee;

    uint256 private tokensForReward;
    uint256 private tokensForProject;
    uint256 private tokensForLiquidity;

    address payable private _rewardWallet;
    address payable private _projectWallet;
    address payable private _liquidityWallet;
    
    string private constant _name = "KONGZILLA";
    string private constant _symbol = "KILLA";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private tradingActiveBlock = 0; // 0 means trading is not active
    uint256 private blocksToBlacklist = 3;
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private swapTokensAtAmount = 0;
    
    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event MaxSellAmountUpdated(uint _maxSellAmount);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _projectWallet = payable(0x6436Fe18277b09fa9074f383CF4dFA128044F72c);
        _liquidityWallet = payable(address(0xdead));
        _rewardWallet = payable(0x6436Fe18277b09fa9074f383CF4dFA128044F72c);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_projectWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        _isExcludedFromFee[_rewardWallet] = true;
        emit Transfer(address(0x0167E1c57E0fb29dC738D81e03C1BC66EEF52843), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from] && cooldownEnabled) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForReward + tokensForProject;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForReward = ethBalance.mul(tokensForReward).div(totalTokensToSwap);
        uint256 ethForProject = ethBalance.mul(tokensForProject).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForReward - ethForProject;
        
        
        tokensForLiquidity = 0;
        tokensForReward = 0;
        tokensForProject = 0;
        
        (success,) = address(_rewardWallet).call{value: ethForReward}("");
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_projectWallet).call{value: address(this).balance}("");
    }

    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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _liquidityWallet,
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _projectWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e7 * 10**9;
        _maxSellAmount = 5e7 * 10**9;
        _maxWalletAmount = 1e8 * 10**9;
        swapTokensAtAmount = 5e6 * 10**9;
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e3 * 10**9, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= 5e6 * 10**9, "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setProjectWallet(address projectWallet) public onlyOwner() {
        require(projectWallet != address(0), "projectWallet address cannot be 0");
        _isExcludedFromFee[_projectWallet] = false;
        _projectWallet = payable(projectWallet);
        _isExcludedFromFee[_projectWallet] = true;
    }

    function setRewardWallet(address rewardWallet) public onlyOwner() {
        require(rewardWallet != address(0), "rewardWallet address cannot be 0");
        _isExcludedFromFee[_rewardWallet] = false;
        _rewardWallet = payable(rewardWallet);
        _isExcludedFromFee[_rewardWallet] = true;
    }

    function setLiquidityWallet(address liquidityWallet) public onlyOwner() {
        require(liquidityWallet != address(0), "liquidityWallet address cannot be 0");
        _isExcludedFromFee[_liquidityWallet] = false;
        _liquidityWallet = payable(liquidityWallet);
        _isExcludedFromFee[_liquidityWallet] = true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setBuyFee(uint256 buyProjectFee, uint256 buyLiquidityFee, uint256 buyRewardFee) external onlyOwner {
        require(buyProjectFee + buyLiquidityFee + buyRewardFee <= 30, "Must keep buy taxes below 30%");
        _buyProjectFee = buyProjectFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyRewardFee = buyRewardFee;
    }

    function setSellFee(uint256 sellProjectFee, uint256 sellLiquidityFee, uint256 sellRewardFee) external onlyOwner {
        require(sellProjectFee + sellLiquidityFee + sellRewardFee <= 60, "Must keep sell taxes below 60%");
        _sellProjectFee = sellProjectFee;
        _sellLiquidityFee = sellLiquidityFee;
        _sellRewardFee = sellRewardFee;
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyProjectFee == 0 && _buyLiquidityFee == 0 && _buyRewardFee == 0 && _sellProjectFee == 0 && _sellLiquidityFee == 0 && _sellRewardFee == 0) return;
        
        _previousBuyProjectFee = _buyProjectFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyRewardFee = _buyRewardFee;
        _previousSellProjectFee = _sellProjectFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellRewardFee = _sellRewardFee;
        
        _buyProjectFee = 0;
        _buyLiquidityFee = 0;
        _buyRewardFee = 0;
        _sellProjectFee = 0;
        _sellLiquidityFee = 0;
        _sellRewardFee = 0;
    }
    
    function restoreAllFee() private {
        _buyProjectFee = _previousBuyProjectFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyRewardFee = _previousBuyRewardFee;
        _sellProjectFee = _previousSellProjectFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
        _sellRewardFee = _previousSellRewardFee;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 pjctFee;
        uint256 liqFee;
        uint256 rwrdFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            liqFee = 92;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                pjctFee = _sellProjectFee;
                liqFee = _sellLiquidityFee;
                rwrdFee = _sellRewardFee;
            } else {
                pjctFee = _buyProjectFee;
                liqFee = _buyLiquidityFee;
                rwrdFee = _buyRewardFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForReward += fees * rwrdFee / _totalFees;
        tokensForProject += fees * pjctFee / _totalFees;
        tokensForLiquidity += fees * liqFee / _totalFees;
            
        if(fees > 0) {
            _transferStandard(sender, address(this), fees);
        }
            
        return amount -= fees;
    }

    receive() external payable {}
    
    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() public onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        require(!tradingOpen, "Can only withdraw if trading hasn't started");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellProjectFee + _sellLiquidityFee + _sellRewardFee;
        }
        return _buyProjectFee + _buyLiquidityFee + _buyRewardFee;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyProjectFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"buyRewardFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"projectWallet","type":"address"}],"name":"setProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardWallet","type":"address"}],"name":"setRewardWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellProjectFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"sellRewardFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260056007556007546008556002600955600954600a556005600b55600b54600c556005600d55600d54600e556002600f55600f5460105560056011556011546012556000601a60166101000a81548160ff0219169083151502179055506000601a60176101000a81548160ff0219169083151502179055506000601a60186101000a81548160ff0219169083151502179055506000601b556003601c55678ac7230489e80000601d55678ac7230489e80000601e55678ac7230489e80000601f556000602055348015620000d757600080fd5b506000620000ea6200059560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350736436fe18277b09fa9074f383cf4dfa128044f72c601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736436fe18277b09fa9074f383cf4dfa128044f72c601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550678ac7230489e8000060026000620002926200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002e66200059d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200050d6200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16730167e1c57e0fb29dc738d81e03c1bc66eef5284373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620005879190620005d7565b60405180910390a3620005fe565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005d181620005f4565b82525050565b6000602082019050620005ee6000830184620005c6565b92915050565b6000819050919050565b615345806200060e6000396000f3fe6080604052600436106101dc5760003560e01c8063715018a611610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063a9059cbb116100d1578063a9059cbb14610515578063afa4f3b214610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b8063715018a61461047f5780638a780447146104965780638da5cb5b146104bf57806395d89b41146104ea576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780636fc3eaec1461042b57806370a0823114610442576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a91906145fd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613ef1565b610730565b60405161024791906145e2565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b604051610272919061489f565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614001565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613e9e565b610867565b6040516102d891906145e2565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614001565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e04565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190613fd4565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e04565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a7919061494b565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e04565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613f7a565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e04565b610fc0565b005b34801561043757600080fd5b506104406111fd565b005b34801561044e57600080fd5b5061046960048036038101906104649190613e04565b6112a3565b604051610476919061489f565b60405180910390f35b34801561048b57600080fd5b506104946112ec565b005b3480156104a257600080fd5b506104bd60048036038101906104b89190613e04565b61143f565b005b3480156104cb57600080fd5b506104d461167c565b6040516104e191906144b3565b60405180910390f35b3480156104f657600080fd5b506104ff6116a5565b60405161050c91906145fd565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613ef1565b6116e2565b60405161054991906145e2565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613fd4565b611700565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613f31565b611831565b005b3480156105b057600080fd5b506105b961195b565b005b3480156105c757600080fd5b506105d0611a09565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613e5e565b611f95565b604051610606919061489f565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613f7a565b61201c565b005b34801561064457600080fd5b5061065f600480360381019061065a9190613fd4565b6120ce565b005b34801561066d57600080fd5b5061068860048036038101906106839190613fd4565b61216d565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e04565b61220c565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190613fd4565b6122fc565b005b3480156106e857600080fd5b506106f161239b565b005b60606040518060400160405280600981526020017f4b4f4e475a494c4c410000000000000000000000000000000000000000000000815250905090565b600061074461073d6124f1565b84846124f9565b6001905092915050565b6000678ac7230489e80000905090565b6107666124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061475f565b60405180910390fd5b603c8183856108029190614a17565b61080c9190614a17565b111561084d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108449061477f565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126c4565b610935846108806124f1565b610930856040518060600160405280602881526020016152e860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66124f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f649092919063ffffffff16565b6124f9565b600190509392505050565b6109486124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061475f565b60405180910390fd5b601e8183856109e49190614a17565b6109ee9190614a17565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061473f565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a516124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad59061475f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b416124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061475f565b60405180910390fd5b80601f8190555050565b610be06124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c649061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd4906147bf565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e266124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061475f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f166124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a9061475f565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc86124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c9061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061483f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112056124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061475f565b60405180910390fd5b60004790506112a081612fc8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f46124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113789061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6114476124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb9061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b9061467f565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4b494c4c41000000000000000000000000000000000000000000000000000000815250905090565b60006116f66116ef6124f1565b84846126c4565b6001905092915050565b6117086124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c9061475f565b60405180910390fd5b64e8d4a510008110156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061469f565b60405180910390fd5b6611c37937e08000811115611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906146bf565b60405180910390fd5b8060208190555050565b6118396124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd9061475f565b60405180910390fd5b60005b8151811015611957576001600560008484815181106118eb576118ea614cd4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061194f90614c2d565b9150506118c9565b5050565b6119636124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e79061475f565b60405180910390fd5b60006119fb306112a3565b9050611a0681613034565b50565b611a116124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959061475f565b60405180910390fd5b601a60149054906101000a900460ff1615611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061481f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b7d30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e800006124f9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611bc357600080fd5b505afa158015611bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfb9190613e31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190613e31565b6040518363ffffffff1660e01b8152600401611cb29291906144ce565b602060405180830381600087803b158015611ccc57600080fd5b505af1158015611ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d049190613e31565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d8d306112a3565b600080611d9861167c565b426040518863ffffffff1660e01b8152600401611dba96959493929190614581565b6060604051808303818588803b158015611dd357600080fd5b505af1158015611de7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0c9190614054565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066b1a2bc2ec50000601d8190555066b1a2bc2ec50000601e8190555067016345785d8a0000601f819055506611c37937e080006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f3f9291906144f7565b602060405180830381600087803b158015611f5957600080fd5b505af1158015611f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f919190613fa7565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120246124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061475f565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120d66124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a9061475f565b60405180910390fd5b80601c8190555050565b6121756124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99061475f565b60405180910390fd5b80601e8190555050565b6122146124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122989061475f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123046124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123889061475f565b60405180910390fd5b80601d8190555050565b6123a36124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124279061475f565b60405180910390fd5b601a60149054906101000a900460ff1615612480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124779061487f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124a69061449e565b60006040518083038185875af1925050503d80600081146124e3576040519150601f19603f3d011682016040523d82523d6000602084013e6124e8565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612560906147ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d09061463f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126b7919061489f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b906147df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b9061461f565b60405180910390fd5b600081116127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de9061479f565b60405180910390fd5b6000806127f261167c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612860575061283061167c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128995750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128d3575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128ec5750601a60159054906101000a900460ff16155b15612d6257600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129955750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61299e57600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a4d5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa35750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612abb5750601a60189054906101000a900460ff165b15612bf957601d54831115612b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afc906146ff565b60405180910390fd5b601f5483612b12866112a3565b612b1c9190614a17565b1115612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b54906146df565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612ba857600080fd5b601e42612bb59190614a17565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ca45750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612cfa5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d125750601a60189054906101000a900460ff165b15612d6157601e54831115612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061485f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e035750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e0d57600091505b6000612e18306112a3565b9050600060205482118015612e2a5750825b9050808015612e455750601a60179054906101000a900460ff165b8015612e5e5750601a60159054906101000a900460ff16155b8015612eb45750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f0a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f4e576001601a60156101000a81548160ff021916908315150217905550612f326132bc565b6000601a60156101000a81548160ff0219169083151502179055505b612f5b87878787876135a3565b50505050505050565b6000838311158290612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa391906145fd565b60405180910390fd5b5060008385612fbb9190614af8565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613030573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561306c5761306b614d03565b5b60405190808252806020026020018201604052801561309a5781602001602082028036833780820191505090505b50905030816000815181106130b2576130b1614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561315457600080fd5b505afa158015613168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318c9190613e31565b816001815181106131a05761319f614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061320730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161326b9594939291906148ba565b600060405180830381600087803b15801561328557600080fd5b505af1158015613299573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b60006132c7306112a3565b905060006014546013546015546132de9190614a17565b6132e89190614a17565b90506000808314806132fa5750600082145b15613307575050506135a1565b600a6020546133169190614a9e565b83111561332f57600a60205461332c9190614a9e565b92505b6000600283601554866133429190614a9e565b61334c9190614a6d565b6133569190614a6d565b9050600061336d82866135e390919063ffffffff16565b9050600047905061337d82613034565b600061339282476135e390919063ffffffff16565b905060006133bd876133af6013548561362d90919063ffffffff16565b6136a890919063ffffffff16565b905060006133e8886133da6014548661362d90919063ffffffff16565b6136a890919063ffffffff16565b905060008183856133f99190614af8565b6134039190614af8565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134639061449e565b60006040518083038185875af1925050503d80600081146134a0576040519150601f19603f3d011682016040523d82523d6000602084013e6134a5565b606091505b5050809850506000871180156134bb5750600081115b15613508576134ca87826136f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186826015546040516134ff93929190614914565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161354e9061449e565b60006040518083038185875af1925050503d806000811461358b576040519150601f19603f3d011682016040523d82523d6000602084013e613590565b606091505b505080985050505050505050505050505b565b816135b5576135b0613801565b6135c3565b6135c08584836138c0565b92505b6135ce858585613a0a565b816135dc576135db613b9e565b5b5050505050565b600061362583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f64565b905092915050565b60008083141561364057600090506136a2565b6000828461364e9190614a9e565b905082848261365d9190614a6d565b1461369d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136949061471f565b60405180910390fd5b809150505b92915050565b60006136ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd6565b905092915050565b61371f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137a896959493929190614520565b6060604051808303818588803b1580156137c157600080fd5b505af11580156137d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137fa9190614054565b5050505050565b600060075414801561381557506000600954145b801561382357506000600b54145b801561383157506000600d54145b801561383f57506000600f54145b801561384d57506000601154145b15613857576138be565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546138d99190614a17565b106138eb5760639350605c9150613921565b6138f486613c39565b9350851561391057600d549250600f5491506011549050613920565b60075492506009549150600b5490505b5b6000613949606461393b878b61362d90919063ffffffff16565b6136a890919063ffffffff16565b90508482826139589190614a9e565b6139629190614a6d565b601360008282546139739190614a17565b925050819055508484826139879190614a9e565b6139919190614a6d565b601460008282546139a29190614a17565b925050819055508483826139b69190614a9e565b6139c09190614a6d565b601560008282546139d19190614a17565b9250508190555060008111156139ed576139ec893083613a0a565b5b80886139f99190614af8565b975087955050505050509392505050565b613a5c81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135e390919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c8a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b91919061489f565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1491906145fd565b60405180910390fd5b5060008385613c2c9190614a6d565b9050809150509392505050565b60008115613c6557601154600f54600d54613c549190614a17565b613c5e9190614a17565b9050613c85565b600b54600954600754613c789190614a17565b613c829190614a17565b90505b919050565b6000808284613c999190614a17565b905083811015613cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd59061465f565b60405180910390fd5b8091505092915050565b6000613cfb613cf68461498b565b614966565b90508083825260208201905082856020860282011115613d1e57613d1d614d37565b5b60005b85811015613d4e5781613d348882613d58565b845260208401935060208301925050600181019050613d21565b5050509392505050565b600081359050613d67816152a2565b92915050565b600081519050613d7c816152a2565b92915050565b600082601f830112613d9757613d96614d32565b5b8135613da7848260208601613ce8565b91505092915050565b600081359050613dbf816152b9565b92915050565b600081519050613dd4816152b9565b92915050565b600081359050613de9816152d0565b92915050565b600081519050613dfe816152d0565b92915050565b600060208284031215613e1a57613e19614d41565b5b6000613e2884828501613d58565b91505092915050565b600060208284031215613e4757613e46614d41565b5b6000613e5584828501613d6d565b91505092915050565b60008060408385031215613e7557613e74614d41565b5b6000613e8385828601613d58565b9250506020613e9485828601613d58565b9150509250929050565b600080600060608486031215613eb757613eb6614d41565b5b6000613ec586828701613d58565b9350506020613ed686828701613d58565b9250506040613ee786828701613dda565b9150509250925092565b60008060408385031215613f0857613f07614d41565b5b6000613f1685828601613d58565b9250506020613f2785828601613dda565b9150509250929050565b600060208284031215613f4757613f46614d41565b5b600082013567ffffffffffffffff811115613f6557613f64614d3c565b5b613f7184828501613d82565b91505092915050565b600060208284031215613f9057613f8f614d41565b5b6000613f9e84828501613db0565b91505092915050565b600060208284031215613fbd57613fbc614d41565b5b6000613fcb84828501613dc5565b91505092915050565b600060208284031215613fea57613fe9614d41565b5b6000613ff884828501613dda565b91505092915050565b60008060006060848603121561401a57614019614d41565b5b600061402886828701613dda565b935050602061403986828701613dda565b925050604061404a86828701613dda565b9150509250925092565b60008060006060848603121561406d5761406c614d41565b5b600061407b86828701613def565b935050602061408c86828701613def565b925050604061409d86828701613def565b9150509250925092565b60006140b383836140ce565b60208301905092915050565b6140c881614b81565b82525050565b6140d781614b2c565b82525050565b6140e681614b2c565b82525050565b60006140f7826149c7565b61410181856149ea565b935061410c836149b7565b8060005b8381101561413d57815161412488826140a7565b975061412f836149dd565b925050600181019050614110565b5085935050505092915050565b61415381614b3e565b82525050565b61416281614b93565b82525050565b6000614173826149d2565b61417d8185614a06565b935061418d818560208601614bc9565b61419681614d46565b840191505092915050565b60006141ae602383614a06565b91506141b982614d57565b604082019050919050565b60006141d1602283614a06565b91506141dc82614da6565b604082019050919050565b60006141f4601b83614a06565b91506141ff82614df5565b602082019050919050565b6000614217602183614a06565b915061422282614e1e565b604082019050919050565b600061423a603583614a06565b915061424582614e6d565b604082019050919050565b600061425d603483614a06565b915061426882614ebc565b604082019050919050565b6000614280602483614a06565b915061428b82614f0b565b604082019050919050565b60006142a3602983614a06565b91506142ae82614f5a565b604082019050919050565b60006142c6602183614a06565b91506142d182614fa9565b604082019050919050565b60006142e9601d83614a06565b91506142f482614ff8565b602082019050919050565b600061430c602083614a06565b915061431782615021565b602082019050919050565b600061432f601e83614a06565b915061433a8261504a565b602082019050919050565b6000614352602983614a06565b915061435d82615073565b604082019050919050565b6000614375602383614a06565b9150614380826150c2565b604082019050919050565b6000614398602583614a06565b91506143a382615111565b604082019050919050565b60006143bb6000836149fb565b91506143c682615160565b600082019050919050565b60006143de602483614a06565b91506143e982615163565b604082019050919050565b6000614401601783614a06565b915061440c826151b2565b602082019050919050565b6000614424602083614a06565b915061442f826151db565b602082019050919050565b6000614447602a83614a06565b915061445282615204565b604082019050919050565b600061446a602b83614a06565b915061447582615253565b604082019050919050565b61448981614b6a565b82525050565b61449881614b74565b82525050565b60006144a9826143ae565b9150819050919050565b60006020820190506144c860008301846140dd565b92915050565b60006040820190506144e360008301856140dd565b6144f060208301846140dd565b9392505050565b600060408201905061450c60008301856140dd565b6145196020830184614480565b9392505050565b600060c08201905061453560008301896140dd565b6145426020830188614480565b61454f6040830187614159565b61455c6060830186614159565b61456960808301856140bf565b61457660a0830184614480565b979650505050505050565b600060c08201905061459660008301896140dd565b6145a36020830188614480565b6145b06040830187614159565b6145bd6060830186614159565b6145ca60808301856140dd565b6145d760a0830184614480565b979650505050505050565b60006020820190506145f7600083018461414a565b92915050565b600060208201905081810360008301526146178184614168565b905092915050565b60006020820190508181036000830152614638816141a1565b9050919050565b60006020820190508181036000830152614658816141c4565b9050919050565b60006020820190508181036000830152614678816141e7565b9050919050565b600060208201905081810360008301526146988161420a565b9050919050565b600060208201905081810360008301526146b88161422d565b9050919050565b600060208201905081810360008301526146d881614250565b9050919050565b600060208201905081810360008301526146f881614273565b9050919050565b6000602082019050818103600083015261471881614296565b9050919050565b60006020820190508181036000830152614738816142b9565b9050919050565b60006020820190508181036000830152614758816142dc565b9050919050565b60006020820190508181036000830152614778816142ff565b9050919050565b6000602082019050818103600083015261479881614322565b9050919050565b600060208201905081810360008301526147b881614345565b9050919050565b600060208201905081810360008301526147d881614368565b9050919050565b600060208201905081810360008301526147f88161438b565b9050919050565b60006020820190508181036000830152614818816143d1565b9050919050565b60006020820190508181036000830152614838816143f4565b9050919050565b6000602082019050818103600083015261485881614417565b9050919050565b600060208201905081810360008301526148788161443a565b9050919050565b600060208201905081810360008301526148988161445d565b9050919050565b60006020820190506148b46000830184614480565b92915050565b600060a0820190506148cf6000830188614480565b6148dc6020830187614159565b81810360408301526148ee81866140ec565b90506148fd60608301856140dd565b61490a6080830184614480565b9695505050505050565b60006060820190506149296000830186614480565b6149366020830185614480565b6149436040830184614480565b949350505050565b6000602082019050614960600083018461448f565b92915050565b6000614970614981565b905061497c8282614bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156149a6576149a5614d03565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a2282614b6a565b9150614a2d83614b6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6257614a61614c76565b5b828201905092915050565b6000614a7882614b6a565b9150614a8383614b6a565b925082614a9357614a92614ca5565b5b828204905092915050565b6000614aa982614b6a565b9150614ab483614b6a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aed57614aec614c76565b5b828202905092915050565b6000614b0382614b6a565b9150614b0e83614b6a565b925082821015614b2157614b20614c76565b5b828203905092915050565b6000614b3782614b4a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b8c82614ba5565b9050919050565b6000614b9e82614b6a565b9050919050565b6000614bb082614bb7565b9050919050565b6000614bc282614b4a565b9050919050565b60005b83811015614be7578082015181840152602081019050614bcc565b83811115614bf6576000848401525b50505050565b614c0582614d46565b810181811067ffffffffffffffff82111715614c2457614c23614d03565b5b80604052505050565b6000614c3882614b6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c6b57614c6a614c76565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f70726f6a65637457616c6c657420616464726573732063616e6e6f742062652060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152ab81614b2c565b81146152b657600080fd5b50565b6152c281614b3e565b81146152cd57600080fd5b50565b6152d981614b6a565b81146152e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200060d18d65f5c0ed1f20482cbfe7604602208a3ec7efddc9199edfc8a5a699b564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a611610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063a9059cbb116100d1578063a9059cbb14610515578063afa4f3b214610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b8063715018a61461047f5780638a780447146104965780638da5cb5b146104bf57806395d89b41146104ea576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780636fc3eaec1461042b57806370a0823114610442576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a91906145fd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613ef1565b610730565b60405161024791906145e2565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b604051610272919061489f565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614001565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613e9e565b610867565b6040516102d891906145e2565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614001565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e04565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190613fd4565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e04565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a7919061494b565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e04565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613f7a565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e04565b610fc0565b005b34801561043757600080fd5b506104406111fd565b005b34801561044e57600080fd5b5061046960048036038101906104649190613e04565b6112a3565b604051610476919061489f565b60405180910390f35b34801561048b57600080fd5b506104946112ec565b005b3480156104a257600080fd5b506104bd60048036038101906104b89190613e04565b61143f565b005b3480156104cb57600080fd5b506104d461167c565b6040516104e191906144b3565b60405180910390f35b3480156104f657600080fd5b506104ff6116a5565b60405161050c91906145fd565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613ef1565b6116e2565b60405161054991906145e2565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613fd4565b611700565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613f31565b611831565b005b3480156105b057600080fd5b506105b961195b565b005b3480156105c757600080fd5b506105d0611a09565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613e5e565b611f95565b604051610606919061489f565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613f7a565b61201c565b005b34801561064457600080fd5b5061065f600480360381019061065a9190613fd4565b6120ce565b005b34801561066d57600080fd5b5061068860048036038101906106839190613fd4565b61216d565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e04565b61220c565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190613fd4565b6122fc565b005b3480156106e857600080fd5b506106f161239b565b005b60606040518060400160405280600981526020017f4b4f4e475a494c4c410000000000000000000000000000000000000000000000815250905090565b600061074461073d6124f1565b84846124f9565b6001905092915050565b6000678ac7230489e80000905090565b6107666124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061475f565b60405180910390fd5b603c8183856108029190614a17565b61080c9190614a17565b111561084d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108449061477f565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126c4565b610935846108806124f1565b610930856040518060600160405280602881526020016152e860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66124f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f649092919063ffffffff16565b6124f9565b600190509392505050565b6109486124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061475f565b60405180910390fd5b601e8183856109e49190614a17565b6109ee9190614a17565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061473f565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a516124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad59061475f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b416124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061475f565b60405180910390fd5b80601f8190555050565b610be06124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c649061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd4906147bf565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e266124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061475f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f166124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a9061475f565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc86124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c9061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061483f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112056124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061475f565b60405180910390fd5b60004790506112a081612fc8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f46124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113789061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6114476124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb9061475f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b9061467f565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4b494c4c41000000000000000000000000000000000000000000000000000000815250905090565b60006116f66116ef6124f1565b84846126c4565b6001905092915050565b6117086124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c9061475f565b60405180910390fd5b64e8d4a510008110156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061469f565b60405180910390fd5b6611c37937e08000811115611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906146bf565b60405180910390fd5b8060208190555050565b6118396124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd9061475f565b60405180910390fd5b60005b8151811015611957576001600560008484815181106118eb576118ea614cd4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061194f90614c2d565b9150506118c9565b5050565b6119636124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e79061475f565b60405180910390fd5b60006119fb306112a3565b9050611a0681613034565b50565b611a116124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959061475f565b60405180910390fd5b601a60149054906101000a900460ff1615611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061481f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b7d30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e800006124f9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611bc357600080fd5b505afa158015611bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfb9190613e31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190613e31565b6040518363ffffffff1660e01b8152600401611cb29291906144ce565b602060405180830381600087803b158015611ccc57600080fd5b505af1158015611ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d049190613e31565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d8d306112a3565b600080611d9861167c565b426040518863ffffffff1660e01b8152600401611dba96959493929190614581565b6060604051808303818588803b158015611dd357600080fd5b505af1158015611de7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0c9190614054565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066b1a2bc2ec50000601d8190555066b1a2bc2ec50000601e8190555067016345785d8a0000601f819055506611c37937e080006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f3f9291906144f7565b602060405180830381600087803b158015611f5957600080fd5b505af1158015611f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f919190613fa7565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120246124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a89061475f565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120d66124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a9061475f565b60405180910390fd5b80601c8190555050565b6121756124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99061475f565b60405180910390fd5b80601e8190555050565b6122146124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122989061475f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123046124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123889061475f565b60405180910390fd5b80601d8190555050565b6123a36124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124279061475f565b60405180910390fd5b601a60149054906101000a900460ff1615612480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124779061487f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124a69061449e565b60006040518083038185875af1925050503d80600081146124e3576040519150601f19603f3d011682016040523d82523d6000602084013e6124e8565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612560906147ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d09061463f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126b7919061489f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b906147df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b9061461f565b60405180910390fd5b600081116127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de9061479f565b60405180910390fd5b6000806127f261167c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612860575061283061167c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128995750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128d3575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128ec5750601a60159054906101000a900460ff16155b15612d6257600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129955750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61299e57600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a4d5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa35750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612abb5750601a60189054906101000a900460ff165b15612bf957601d54831115612b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afc906146ff565b60405180910390fd5b601f5483612b12866112a3565b612b1c9190614a17565b1115612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b54906146df565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612ba857600080fd5b601e42612bb59190614a17565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ca45750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612cfa5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d125750601a60189054906101000a900460ff165b15612d6157601e54831115612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061485f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e035750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e0d57600091505b6000612e18306112a3565b9050600060205482118015612e2a5750825b9050808015612e455750601a60179054906101000a900460ff165b8015612e5e5750601a60159054906101000a900460ff16155b8015612eb45750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f0a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f4e576001601a60156101000a81548160ff021916908315150217905550612f326132bc565b6000601a60156101000a81548160ff0219169083151502179055505b612f5b87878787876135a3565b50505050505050565b6000838311158290612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa391906145fd565b60405180910390fd5b5060008385612fbb9190614af8565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613030573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561306c5761306b614d03565b5b60405190808252806020026020018201604052801561309a5781602001602082028036833780820191505090505b50905030816000815181106130b2576130b1614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561315457600080fd5b505afa158015613168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318c9190613e31565b816001815181106131a05761319f614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061320730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161326b9594939291906148ba565b600060405180830381600087803b15801561328557600080fd5b505af1158015613299573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b60006132c7306112a3565b905060006014546013546015546132de9190614a17565b6132e89190614a17565b90506000808314806132fa5750600082145b15613307575050506135a1565b600a6020546133169190614a9e565b83111561332f57600a60205461332c9190614a9e565b92505b6000600283601554866133429190614a9e565b61334c9190614a6d565b6133569190614a6d565b9050600061336d82866135e390919063ffffffff16565b9050600047905061337d82613034565b600061339282476135e390919063ffffffff16565b905060006133bd876133af6013548561362d90919063ffffffff16565b6136a890919063ffffffff16565b905060006133e8886133da6014548661362d90919063ffffffff16565b6136a890919063ffffffff16565b905060008183856133f99190614af8565b6134039190614af8565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134639061449e565b60006040518083038185875af1925050503d80600081146134a0576040519150601f19603f3d011682016040523d82523d6000602084013e6134a5565b606091505b5050809850506000871180156134bb5750600081115b15613508576134ca87826136f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186826015546040516134ff93929190614914565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161354e9061449e565b60006040518083038185875af1925050503d806000811461358b576040519150601f19603f3d011682016040523d82523d6000602084013e613590565b606091505b505080985050505050505050505050505b565b816135b5576135b0613801565b6135c3565b6135c08584836138c0565b92505b6135ce858585613a0a565b816135dc576135db613b9e565b5b5050505050565b600061362583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f64565b905092915050565b60008083141561364057600090506136a2565b6000828461364e9190614a9e565b905082848261365d9190614a6d565b1461369d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136949061471f565b60405180910390fd5b809150505b92915050565b60006136ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd6565b905092915050565b61371f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137a896959493929190614520565b6060604051808303818588803b1580156137c157600080fd5b505af11580156137d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137fa9190614054565b5050505050565b600060075414801561381557506000600954145b801561382357506000600b54145b801561383157506000600d54145b801561383f57506000600f54145b801561384d57506000601154145b15613857576138be565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546138d99190614a17565b106138eb5760639350605c9150613921565b6138f486613c39565b9350851561391057600d549250600f5491506011549050613920565b60075492506009549150600b5490505b5b6000613949606461393b878b61362d90919063ffffffff16565b6136a890919063ffffffff16565b90508482826139589190614a9e565b6139629190614a6d565b601360008282546139739190614a17565b925050819055508484826139879190614a9e565b6139919190614a6d565b601460008282546139a29190614a17565b925050819055508483826139b69190614a9e565b6139c09190614a6d565b601560008282546139d19190614a17565b9250508190555060008111156139ed576139ec893083613a0a565b5b80886139f99190614af8565b975087955050505050509392505050565b613a5c81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135e390919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c8a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b91919061489f565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1491906145fd565b60405180910390fd5b5060008385613c2c9190614a6d565b9050809150509392505050565b60008115613c6557601154600f54600d54613c549190614a17565b613c5e9190614a17565b9050613c85565b600b54600954600754613c789190614a17565b613c829190614a17565b90505b919050565b6000808284613c999190614a17565b905083811015613cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd59061465f565b60405180910390fd5b8091505092915050565b6000613cfb613cf68461498b565b614966565b90508083825260208201905082856020860282011115613d1e57613d1d614d37565b5b60005b85811015613d4e5781613d348882613d58565b845260208401935060208301925050600181019050613d21565b5050509392505050565b600081359050613d67816152a2565b92915050565b600081519050613d7c816152a2565b92915050565b600082601f830112613d9757613d96614d32565b5b8135613da7848260208601613ce8565b91505092915050565b600081359050613dbf816152b9565b92915050565b600081519050613dd4816152b9565b92915050565b600081359050613de9816152d0565b92915050565b600081519050613dfe816152d0565b92915050565b600060208284031215613e1a57613e19614d41565b5b6000613e2884828501613d58565b91505092915050565b600060208284031215613e4757613e46614d41565b5b6000613e5584828501613d6d565b91505092915050565b60008060408385031215613e7557613e74614d41565b5b6000613e8385828601613d58565b9250506020613e9485828601613d58565b9150509250929050565b600080600060608486031215613eb757613eb6614d41565b5b6000613ec586828701613d58565b9350506020613ed686828701613d58565b9250506040613ee786828701613dda565b9150509250925092565b60008060408385031215613f0857613f07614d41565b5b6000613f1685828601613d58565b9250506020613f2785828601613dda565b9150509250929050565b600060208284031215613f4757613f46614d41565b5b600082013567ffffffffffffffff811115613f6557613f64614d3c565b5b613f7184828501613d82565b91505092915050565b600060208284031215613f9057613f8f614d41565b5b6000613f9e84828501613db0565b91505092915050565b600060208284031215613fbd57613fbc614d41565b5b6000613fcb84828501613dc5565b91505092915050565b600060208284031215613fea57613fe9614d41565b5b6000613ff884828501613dda565b91505092915050565b60008060006060848603121561401a57614019614d41565b5b600061402886828701613dda565b935050602061403986828701613dda565b925050604061404a86828701613dda565b9150509250925092565b60008060006060848603121561406d5761406c614d41565b5b600061407b86828701613def565b935050602061408c86828701613def565b925050604061409d86828701613def565b9150509250925092565b60006140b383836140ce565b60208301905092915050565b6140c881614b81565b82525050565b6140d781614b2c565b82525050565b6140e681614b2c565b82525050565b60006140f7826149c7565b61410181856149ea565b935061410c836149b7565b8060005b8381101561413d57815161412488826140a7565b975061412f836149dd565b925050600181019050614110565b5085935050505092915050565b61415381614b3e565b82525050565b61416281614b93565b82525050565b6000614173826149d2565b61417d8185614a06565b935061418d818560208601614bc9565b61419681614d46565b840191505092915050565b60006141ae602383614a06565b91506141b982614d57565b604082019050919050565b60006141d1602283614a06565b91506141dc82614da6565b604082019050919050565b60006141f4601b83614a06565b91506141ff82614df5565b602082019050919050565b6000614217602183614a06565b915061422282614e1e565b604082019050919050565b600061423a603583614a06565b915061424582614e6d565b604082019050919050565b600061425d603483614a06565b915061426882614ebc565b604082019050919050565b6000614280602483614a06565b915061428b82614f0b565b604082019050919050565b60006142a3602983614a06565b91506142ae82614f5a565b604082019050919050565b60006142c6602183614a06565b91506142d182614fa9565b604082019050919050565b60006142e9601d83614a06565b91506142f482614ff8565b602082019050919050565b600061430c602083614a06565b915061431782615021565b602082019050919050565b600061432f601e83614a06565b915061433a8261504a565b602082019050919050565b6000614352602983614a06565b915061435d82615073565b604082019050919050565b6000614375602383614a06565b9150614380826150c2565b604082019050919050565b6000614398602583614a06565b91506143a382615111565b604082019050919050565b60006143bb6000836149fb565b91506143c682615160565b600082019050919050565b60006143de602483614a06565b91506143e982615163565b604082019050919050565b6000614401601783614a06565b915061440c826151b2565b602082019050919050565b6000614424602083614a06565b915061442f826151db565b602082019050919050565b6000614447602a83614a06565b915061445282615204565b604082019050919050565b600061446a602b83614a06565b915061447582615253565b604082019050919050565b61448981614b6a565b82525050565b61449881614b74565b82525050565b60006144a9826143ae565b9150819050919050565b60006020820190506144c860008301846140dd565b92915050565b60006040820190506144e360008301856140dd565b6144f060208301846140dd565b9392505050565b600060408201905061450c60008301856140dd565b6145196020830184614480565b9392505050565b600060c08201905061453560008301896140dd565b6145426020830188614480565b61454f6040830187614159565b61455c6060830186614159565b61456960808301856140bf565b61457660a0830184614480565b979650505050505050565b600060c08201905061459660008301896140dd565b6145a36020830188614480565b6145b06040830187614159565b6145bd6060830186614159565b6145ca60808301856140dd565b6145d760a0830184614480565b979650505050505050565b60006020820190506145f7600083018461414a565b92915050565b600060208201905081810360008301526146178184614168565b905092915050565b60006020820190508181036000830152614638816141a1565b9050919050565b60006020820190508181036000830152614658816141c4565b9050919050565b60006020820190508181036000830152614678816141e7565b9050919050565b600060208201905081810360008301526146988161420a565b9050919050565b600060208201905081810360008301526146b88161422d565b9050919050565b600060208201905081810360008301526146d881614250565b9050919050565b600060208201905081810360008301526146f881614273565b9050919050565b6000602082019050818103600083015261471881614296565b9050919050565b60006020820190508181036000830152614738816142b9565b9050919050565b60006020820190508181036000830152614758816142dc565b9050919050565b60006020820190508181036000830152614778816142ff565b9050919050565b6000602082019050818103600083015261479881614322565b9050919050565b600060208201905081810360008301526147b881614345565b9050919050565b600060208201905081810360008301526147d881614368565b9050919050565b600060208201905081810360008301526147f88161438b565b9050919050565b60006020820190508181036000830152614818816143d1565b9050919050565b60006020820190508181036000830152614838816143f4565b9050919050565b6000602082019050818103600083015261485881614417565b9050919050565b600060208201905081810360008301526148788161443a565b9050919050565b600060208201905081810360008301526148988161445d565b9050919050565b60006020820190506148b46000830184614480565b92915050565b600060a0820190506148cf6000830188614480565b6148dc6020830187614159565b81810360408301526148ee81866140ec565b90506148fd60608301856140dd565b61490a6080830184614480565b9695505050505050565b60006060820190506149296000830186614480565b6149366020830185614480565b6149436040830184614480565b949350505050565b6000602082019050614960600083018461448f565b92915050565b6000614970614981565b905061497c8282614bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156149a6576149a5614d03565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a2282614b6a565b9150614a2d83614b6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6257614a61614c76565b5b828201905092915050565b6000614a7882614b6a565b9150614a8383614b6a565b925082614a9357614a92614ca5565b5b828204905092915050565b6000614aa982614b6a565b9150614ab483614b6a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aed57614aec614c76565b5b828202905092915050565b6000614b0382614b6a565b9150614b0e83614b6a565b925082821015614b2157614b20614c76565b5b828203905092915050565b6000614b3782614b4a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b8c82614ba5565b9050919050565b6000614b9e82614b6a565b9050919050565b6000614bb082614bb7565b9050919050565b6000614bc282614b4a565b9050919050565b60005b83811015614be7578082015181840152602081019050614bcc565b83811115614bf6576000848401525b50505050565b614c0582614d46565b810181811067ffffffffffffffff82111715614c2457614c23614d03565b5b80604052505050565b6000614c3882614b6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c6b57614c6a614c76565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f70726f6a65637457616c6c657420616464726573732063616e6e6f742062652060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152ab81614b2c565b81146152b657600080fd5b50565b6152c281614b3e565b81146152cd57600080fd5b50565b6152d981614b6a565b81146152e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200060d18d65f5c0ed1f20482cbfe7604602208a3ec7efddc9199edfc8a5a699b564736f6c63430008070033

Deployed Bytecode Sourcemap

5631:17230:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8659:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9490:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8936:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18520:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9659:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18166:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20089:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16502:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17586:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8845:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17925:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9980:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17271:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22201:153;;;;;;;;;;;;;:::i;:::-;;9039:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4710:148;;;;;;;;;;;;;:::i;:::-;;16948:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4496:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8750:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9164:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16623:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16108:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22035:154;;;;;;;;;;;;;:::i;:::-;;15120:976;;;;;;;;;;;;;:::i;:::-;;9339:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10091:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18888:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16387:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18048:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16280:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22362:239;;;;;;;;;;;;;:::i;:::-;;8659:83;8696:13;8729:5;;;;;;;;;;;;;;;;;8722:12;;8659:83;:::o;9490:161::-;9565:4;9582:39;9591:12;:10;:12::i;:::-;9605:7;9614:6;9582:8;:39::i;:::-;9639:4;9632:11;;9490:161;;;;:::o;8936:95::-;8989:7;6036:12;9009:14;;8936:95;:::o;18520:360::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18704:2:::1;18687:13;18668:16;18651:14;:33;;;;:::i;:::-;:49;;;;:::i;:::-;:55;;18643:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;18770:14;18752:15;:32;;;;18815:16;18795:17;:36;;;;18859:13;18842:14;:30;;;;18520:360:::0;;;:::o;9659:313::-;9757:4;9774:36;9784:6;9792:9;9803:6;9774:9;:36::i;:::-;9821:121;9830:6;9838:12;:10;:12::i;:::-;9852:89;9890:6;9852:89;;;;;;;;;;;;;;;;;:11;:19;9864:6;9852:19;;;;;;;;;;;;;;;:33;9872:12;:10;:12::i;:::-;9852:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9821:8;:121::i;:::-;9960:4;9953:11;;9659:313;;;;;:::o;18166:346::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18343:2:::1;18327:12;18309:15;18293:13;:31;;;;:::i;:::-;:46;;;;:::i;:::-;:52;;18285:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;18407:13;18390:14;:30;;;;18450:15;18431:16;:34;;;;18492:12;18476:13;:28;;;;18166:346:::0;;;:::o;20089:88::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20164:5:::1;20149:4;:12;20154:6;20149:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;20089:88:::0;:::o;16502:109::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16595:8:::1;16576:16;:27;;;;16502:109:::0;:::o;17586:331::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17704:1:::1;17677:29;;:15;:29;;;;17669:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;17796:5;17757:18;:36;17776:16;;;;;;;;;;;17757:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;17839:15;17812:16;;:43;;;;;;;;;;;;;;;;;;17905:4;17866:18;:36;17885:16;;;;;;;;;;;17866:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;17586:331:::0;:::o;8845:83::-;8886:5;7097:1;8904:16;;8845:83;:::o;17925:111::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18024:4:::1;17994:18;:27;18013:7;17994:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;17925:111:::0;:::o;9980:103::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10070:5:::1;10052:15;;:23;;;;;;;;;;;;;;;;;;9980:103:::0;:::o;17271:307::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17380:1:::1;17356:26;;:12;:26;;;;17348:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17466:5;17430:18;:33;17449:13;;;;;;;;;;;17430:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;17506:12;17482:13;;:37;;;;;;;;;;;;;;;;;;17566:4;17530:18;:33;17549:13;;;;;;;;;;;17530:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;17271:307:::0;:::o;22201:153::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22253:26:::1;22282:21;22253:50;;22314:32;22327:18;22314:12;:32::i;:::-;22242:112;22201:153::o:0;9039:117::-;9105:7;9132;:16;9140:7;9132:16;;;;;;;;;;;;;;;;9125:23;;9039:117;;;:::o;4710:148::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4817:1:::1;4780:40;;4801:6;::::0;::::1;;;;;;;;4780:40;;;;;;;;;;;;4848:1;4831:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4710:148::o:0;16948:315::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17060:1:::1;17035:27;;:13;:27;;;;17027:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17148:5;17111:18;:34;17130:14;;;;;;;;;;;17111:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17189:13;17164:14;;:39;;;;;;;;;;;;;;;;;;17251:4;17214:18;:34;17233:14;;;;;;;;;;;17214:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;16948:315:::0;:::o;4496:79::-;4534:7;4561:6;;;;;;;;;;;4554:13;;4496:79;:::o;8750:87::-;8789:13;8822:7;;;;;;;;;;;;;;;;;8815:14;;8750:87;:::o;9164:167::-;9242:4;9259:42;9269:12;:10;:12::i;:::-;9283:9;9294:6;9259:9;:42::i;:::-;9319:4;9312:11;;9164:167;;;;:::o;16623:317::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16722:11:::1;16709:9;:24;;16701:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16823:11;16810:9;:24;;16802:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;16923:9;16902:18;:30;;;;16623:317:::0;:::o;16108:164::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16182:6:::1;16177:88;16198:5;:12;16194:1;:16;16177:88;;;16249:4;16232;:14;16237:5;16243:1;16237:8;;;;;;;;:::i;:::-;;;;;;;;16232:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16212:3;;;;;:::i;:::-;;;;16177:88;;;;16108:164:::0;:::o;22035:154::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22087:23:::1;22113:24;22131:4;22113:9;:24::i;:::-;22087:50;;22148:33;22165:15;22148:16;:33::i;:::-;22076:113;22035:154::o:0;15120:976::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15184:11:::1;;;;;;;;;;;15183:12;15175:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15233:35;15290:42;15233:100;;15362:16;15344:15;;:34;;;;;;;;;;;;;;;;;;15389:58;15406:4;15421:15;;;;;;;;;;;6036:12;15389:8;:58::i;:::-;15492:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15474:56;;;15539:4;15546:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15474:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15458:13;;:112;;;;;;;;;;;;;;;;;;15581:15;;;;;;;;;;;:31;;;15620:21;15651:4;15657:24;15675:4;15657:9;:24::i;:::-;15682:1;15684::::0;15686:7:::1;:5;:7::i;:::-;15694:15;15581:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15735:4;15721:11;;:18;;;;;;;;;;;;;;;;;;15768:4;15750:15;;:22;;;;;;;;;;;;;;;;;;15799:11;15783:13;:27;;;;15838:11;15821:14;:28;;;;15879:11;15860:16;:30;;;;15922:11;15901:18;:32;;;;15958:4;15944:11;;:18;;;;;;;;;;;;;;;;;;15994:12;15973:18;:33;;;;16024:13;;;;;;;;;;;16017:29;;;16055:15;;;;;;;;;;;16073:14;16017:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15164:932;15120:976::o:0;9339:143::-;9420:7;9447:11;:18;9459:5;9447:18;;;;;;;;;;;;;;;:27;9466:7;9447:27;;;;;;;;;;;;;;;;9440:34;;9339:143;;;;:::o;10091:94::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10172:5:::1;10158:11;;:19;;;;;;;;;;;;;;;;;;10091:94:::0;:::o;18888:108::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18982:6:::1;18962:17;:26;;;;18888:108:::0;:::o;16387:103::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16475:7:::1;16458:14;:24;;;;16387:103:::0;:::o;18048:110::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18145:5:::1;18115:18;:27;18134:7;18115:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18048:110:::0;:::o;16280:99::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16365:6:::1;16349:13;:22;;;;16280:99:::0;:::o;22362:239::-;4633:12;:10;:12::i;:::-;4623:22;;:6;;;;;;;;;;:22;;;4615:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22429:11:::1;;;;;;;;;;;22428:12;22420:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22499:12;22543:10;22535:24;;22567:21;22535:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22522:71;;;;;22409:192;22362:239::o:0;2214:98::-;2267:7;2294:10;2287:17;;2214:98;:::o;10193:335::-;10303:1;10286:19;;:5;:19;;;;10278:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10384:1;10365:21;;:7;:21;;;;10357:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10466:6;10436:11;:18;10448:5;10436:18;;;;;;;;;;;;;;;:27;10455:7;10436:27;;;;;;;;;;;;;;;:36;;;;10504:7;10488:32;;10497:5;10488:32;;;10513:6;10488:32;;;;;;:::i;:::-;;;;;;;;10193:335;;;:::o;10536:1850::-;10640:1;10624:18;;:4;:18;;;;10616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10717:1;10703:16;;:2;:16;;;;10695:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10787:1;10778:6;:10;10770:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10845:12;10876:15;10922:7;:5;:7::i;:::-;10914:15;;:4;:15;;;;:32;;;;;10939:7;:5;:7::i;:::-;10933:13;;:2;:13;;;;10914:32;:52;;;;;10964:1;10950:16;;:2;:16;;;;10914:52;:77;;;;;10984:6;10970:21;;:2;:21;;;;10914:77;:90;;;;;10996:8;;;;;;;;;;;10995:9;10914:90;10910:939;;;11030:4;:10;11035:4;11030:10;;;;;;;;;;;;;;;;;;;;;;;;;11029:11;:24;;;;;11045:4;:8;11050:2;11045:8;;;;;;;;;;;;;;;;;;;;;;;;;11044:9;11029:24;11021:33;;;;;;11081:4;11071:14;;11112:13;;;;;;;;;;;11104:21;;:4;:21;;;:55;;;;;11143:15;;;;;;;;;;;11129:30;;:2;:30;;;;11104:55;:82;;;;;11164:18;:22;11183:2;11164:22;;;;;;;;;;;;;;;;;;;;;;;;;11163:23;11104:82;:101;;;;;11190:15;;;;;;;;;;;11104:101;11100:451;;;11244:13;;11234:6;:23;;11226:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;11356:16;;11346:6;11330:13;11340:2;11330:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;11322:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11455:15;11440:8;:12;11449:2;11440:12;;;;;;;;;;;;;;;;:30;11432:39;;;;;;11524:10;11505:15;:30;;;;:::i;:::-;11490:8;:12;11499:2;11490:12;;;;;;;;;;;;;;;:45;;;;11100:451;11589:13;;;;;;;;;;;11583:19;;:2;:19;;;:55;;;;;11622:15;;;;;;;;;;;11606:32;;:4;:32;;;;11583:55;:84;;;;;11643:18;:24;11662:4;11643:24;;;;;;;;;;;;;;;;;;;;;;;;;11642:25;11583:84;:103;;;;;11671:15;;;;;;;;;;;11583:103;11579:259;;;11725:14;;11715:6;:24;;11707:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11818:4;11805:17;;11579:259;10910:939;11864:18;:24;11883:4;11864:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11892:18;:22;11911:2;11892:22;;;;;;;;;;;;;;;;;;;;;;;;;11864:50;11861:97;;;11941:5;11931:15;;11861:97;11970:28;12001:24;12019:4;12001:9;:24::i;:::-;11970:55;;12036:12;12075:18;;12052:20;:41;12051:57;;;;;12098:10;12051:57;12036:72;;12125:7;:22;;;;;12136:11;;;;;;;;;;;12125:22;:35;;;;;12152:8;;;;;;;;;;;12151:9;12125:35;:64;;;;;12165:18;:24;12184:4;12165:24;;;;;;;;;;;;;;;;;;;;;;;;;12164:25;12125:64;:91;;;;;12194:18;:22;12213:2;12194:22;;;;;;;;;;;;;;;;;;;;;;;;;12193:23;12125:91;12121:195;;;12244:4;12233:8;;:15;;;;;;;;;;;;;;;;;;12263:10;:8;:10::i;:::-;12299:5;12288:8;;:16;;;;;;;;;;;;;;;;;;12121:195;12328:50;12343:4;12348:2;12351:6;12358:7;12367:10;12328:14;:50::i;:::-;10605:1781;;;;10536:1850;;;:::o;3351:190::-;3437:7;3470:1;3465;:6;;3473:12;3457:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3497:9;3513:1;3509;:5;;;;:::i;:::-;3497:17;;3532:1;3525:8;;;3351:190;;;;;:::o;15012:96::-;15069:14;;;;;;;;;;;:23;;:31;15093:6;15069:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:96;:::o;14082:483::-;7967:4;7958:6;;:13;;;;;;;;;;;;;;;;;;14160:21:::1;14198:1;14184:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14160:40;;14229:4;14211;14216:1;14211:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14255:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14245:4;14250:1;14245:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14288:62;14305:4;14320:15;;;;;;;;;;;14338:11;14288:8;:62::i;:::-;14361:15;;;;;;;;;;;:66;;;14442:11;14468:1;14484:4;14511;14531:15;14361:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14149:416;8003:5:::0;7994:6;;:14;;;;;;;;;;;;;;;;;;14082:483;:::o;12394:1680::-;12433:23;12459:24;12477:4;12459:9;:24::i;:::-;12433:50;;12494:25;12561:16;;12543:15;;12522:18;;:36;;;;:::i;:::-;:55;;;;:::i;:::-;12494:83;;12588:12;12643:1;12624:15;:20;:46;;;;12669:1;12648:17;:22;12624:46;12621:60;;;12673:7;;;;;12621:60;12735:2;12714:18;;:23;;;;:::i;:::-;12696:15;:41;12693:114;;;12793:2;12772:18;;:23;;;;:::i;:::-;12754:41;;12693:114;12876:23;12961:1;12941:17;12920:18;;12902:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;12876:86;;12973:26;13002:36;13022:15;13002;:19;;:36;;;;:::i;:::-;12973:65;;13059:25;13087:21;13059:49;;13121:36;13138:18;13121:16;:36::i;:::-;13179:18;13200:44;13226:17;13200:21;:25;;:44;;;;:::i;:::-;13179:65;;13265:20;13288:54;13324:17;13288:31;13303:15;;13288:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;13265:77;;13353:21;13377:55;13414:17;13377:32;13392:16;;13377:10;:14;;:32;;;;:::i;:::-;:36;;:55;;;;:::i;:::-;13353:79;;13463:23;13517:13;13502:12;13489:10;:25;;;;:::i;:::-;:41;;;;:::i;:::-;13463:67;;13582:1;13561:18;:22;;;;13612:1;13594:15;:19;;;;13643:1;13624:16;:20;;;;13686:13;;;;;;;;;;;13678:27;;13713:12;13678:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13665:65;;;;;13772:1;13754:15;:19;:42;;;;;13795:1;13777:15;:19;13754:42;13751:210;;;13812:46;13825:15;13842;13812:12;:46::i;:::-;13878:71;13893:18;13913:15;13930:18;;13878:71;;;;;;;;:::i;:::-;;;;;;;;13751:210;14012:14;;;;;;;;;;;14004:28;;14040:21;14004:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13991:75;;;;;12422:1652;;;;;;;;;;12394:1680;:::o;20193:389::-;20318:7;20314:129;;20342:14;:12;:14::i;:::-;20314:129;;;20398:33;20408:6;20416;20424;20398:9;:33::i;:::-;20389:42;;20314:129;20455:44;20473:6;20481:9;20492:6;20455:17;:44::i;:::-;20524:7;20520:55;;20548:15;:13;:15::i;:::-;20520:55;20193:389;;;;;:::o;3207:136::-;3265:7;3292:43;3296:1;3299;3292:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3285:50;;3207:136;;;;:::o;3549:246::-;3607:7;3636:1;3631;:6;3627:47;;;3661:1;3654:8;;;;3627:47;3684:9;3700:1;3696;:5;;;;:::i;:::-;3684:17;;3729:1;3724;3720;:5;;;;:::i;:::-;:10;3712:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3786:1;3779:8;;;3549:246;;;;;:::o;3803:132::-;3861:7;3888:39;3892:1;3895;3888:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3881:46;;3803:132;;;;:::o;14573:423::-;14654:62;14671:4;14686:15;;;;;;;;;;;14704:11;14654:8;:62::i;:::-;14727:15;;;;;;;;;;;:31;;;14766:9;14799:4;14819:11;14845:1;14888;14931:16;;;;;;;;;;;14962:15;14727:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14573:423;;:::o;19004:710::-;19068:1;19050:14;;:19;:44;;;;;19093:1;19073:16;;:21;19050:44;:66;;;;;19115:1;19098:13;;:18;19050:66;:90;;;;;19139:1;19120:15;;:20;19050:90;:116;;;;;19165:1;19144:17;;:22;19050:116;:139;;;;;19188:1;19170:14;;:19;19050:139;19047:151;;;19191:7;;19047:151;19243:14;;19218:22;:39;;;;19295:16;;19268:24;:43;;;;19346:13;;19322:21;:37;;;;19396:15;;19370:23;:41;;;;19450:17;;19422:25;:45;;;;19503:14;;19478:22;:39;;;;19555:1;19538:14;:18;;;;19586:1;19567:16;:20;;;;19614:1;19598:13;:17;;;;19644:1;19626:15;:19;;;;19676:1;19656:17;:21;;;;19705:1;19688:14;:18;;;;19004:710;:::o;20865:1121::-;20946:7;20966:18;20995:15;21021:14;21046:15;21117:12;21096:17;;21075:18;;:38;;;;:::i;:::-;:54;21072:518;;21158:2;21145:15;;21184:2;21175:11;;21072:518;;;21232:21;21246:6;21232:13;:21::i;:::-;21219:34;;21272:6;21268:311;;;21309:15;;21299:25;;21352:17;;21343:26;;21398:14;;21388:24;;21268:311;;;21463:14;;21453:24;;21505:16;;21496:25;;21550:13;;21540:23;;21268:311;21072:518;21602:12;21617:31;21644:3;21617:22;21628:10;21617:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;21602:46;;21695:10;21685:7;21678:4;:14;;;;:::i;:::-;:27;;;;:::i;:::-;21659:15;;:46;;;;;;;:::i;:::-;;;;;;;;21753:10;21743:7;21736:4;:14;;;;:::i;:::-;:27;;;;:::i;:::-;21716:16;;:47;;;;;;;:::i;:::-;;;;;;;;21812:10;21803:6;21796:4;:13;;;;:::i;:::-;:26;;;;:::i;:::-;21774:18;;:48;;;;;;;:::i;:::-;;;;;;;;21857:1;21850:4;:8;21847:86;;;21875:46;21893:6;21909:4;21916;21875:17;:46::i;:::-;21847:86;21974:4;21964:14;;;;;:::i;:::-;;;;21957:21;;;;;;;20865:1121;;;;;:::o;20590:267::-;20706:28;20726:7;20706;:15;20714:6;20706:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20688:7;:15;20696:6;20688:15;;;;;;;;;;;;;;;:46;;;;20766:31;20789:7;20766;:18;20774:9;20766:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;20745:7;:18;20753:9;20745:18;;;;;;;;;;;;;;;:52;;;;20830:9;20813:36;;20822:6;20813:36;;;20841:7;20813:36;;;;;;:::i;:::-;;;;;;;;20590:267;;;:::o;19726:351::-;19787:22;;19770:14;:39;;;;19839:24;;19820:16;:43;;;;19890:21;;19874:13;:37;;;;19940:23;;19922:15;:41;;;;19994:25;;19974:17;:45;;;;20047:22;;20030:14;:39;;;;19726:351::o;3943:189::-;4029:7;4061:1;4057;:5;4064:12;4049:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4088:9;4104:1;4100;:5;;;;:::i;:::-;4088:17;;4123:1;4116:8;;;3943:189;;;;;:::o;22609:249::-;22666:7;22690:6;22686:98;;;22758:14;;22738:17;;22720:15;;:35;;;;:::i;:::-;:52;;;;:::i;:::-;22713:59;;;;22686:98;22837:13;;22818:16;;22801:14;;:33;;;;:::i;:::-;:49;;;;:::i;:::-;22794:56;;22609:249;;;;:::o;3020:179::-;3078:7;3098:9;3114:1;3110;:5;;;;:::i;:::-;3098:17;;3139:1;3134;:6;;3126:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3190:1;3183:8;;;3020:179;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1578:137;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1721:139;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1866:143;;;;:::o;2015:329::-;2074:6;2123:2;2111:9;2102:7;2098:23;2094:32;2091:119;;;2129:79;;:::i;:::-;2091:119;2249:1;2274:53;2319:7;2310:6;2299:9;2295:22;2274:53;:::i;:::-;2264:63;;2220:117;2015:329;;;;:::o;2350:351::-;2420:6;2469:2;2457:9;2448:7;2444:23;2440:32;2437:119;;;2475:79;;:::i;:::-;2437:119;2595:1;2620:64;2676:7;2667:6;2656:9;2652:22;2620:64;:::i;:::-;2610:74;;2566:128;2350:351;;;;:::o;2707:474::-;2775:6;2783;2832:2;2820:9;2811:7;2807:23;2803:32;2800:119;;;2838:79;;:::i;:::-;2800:119;2958:1;2983:53;3028:7;3019:6;3008:9;3004:22;2983:53;:::i;:::-;2973:63;;2929:117;3085:2;3111:53;3156:7;3147:6;3136:9;3132:22;3111:53;:::i;:::-;3101:63;;3056:118;2707:474;;;;;:::o;3187:619::-;3264:6;3272;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3710:2;3736:53;3781:7;3772:6;3761:9;3757:22;3736:53;:::i;:::-;3726:63;;3681:118;3187:619;;;;;:::o;3812:474::-;3880:6;3888;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;4190:2;4216:53;4261:7;4252:6;4241:9;4237:22;4216:53;:::i;:::-;4206:63;;4161:118;3812:474;;;;;:::o;4292:539::-;4376:6;4425:2;4413:9;4404:7;4400:23;4396:32;4393:119;;;4431:79;;:::i;:::-;4393:119;4579:1;4568:9;4564:17;4551:31;4609:18;4601:6;4598:30;4595:117;;;4631:79;;:::i;:::-;4595:117;4736:78;4806:7;4797:6;4786:9;4782:22;4736:78;:::i;:::-;4726:88;;4522:302;4292:539;;;;:::o;4837:323::-;4893:6;4942:2;4930:9;4921:7;4917:23;4913:32;4910:119;;;4948:79;;:::i;:::-;4910:119;5068:1;5093:50;5135:7;5126:6;5115:9;5111:22;5093:50;:::i;:::-;5083:60;;5039:114;4837:323;;;;:::o;5166:345::-;5233:6;5282:2;5270:9;5261:7;5257:23;5253:32;5250:119;;;5288:79;;:::i;:::-;5250:119;5408:1;5433:61;5486:7;5477:6;5466:9;5462:22;5433:61;:::i;:::-;5423:71;;5379:125;5166:345;;;;:::o;5517:329::-;5576:6;5625:2;5613:9;5604:7;5600:23;5596:32;5593:119;;;5631:79;;:::i;:::-;5593:119;5751:1;5776:53;5821:7;5812:6;5801:9;5797:22;5776:53;:::i;:::-;5766:63;;5722:117;5517:329;;;;:::o;5852:619::-;5929:6;5937;5945;5994:2;5982:9;5973:7;5969:23;5965:32;5962:119;;;6000:79;;:::i;:::-;5962:119;6120:1;6145:53;6190:7;6181:6;6170:9;6166:22;6145:53;:::i;:::-;6135:63;;6091:117;6247:2;6273:53;6318:7;6309:6;6298:9;6294:22;6273:53;:::i;:::-;6263:63;;6218:118;6375:2;6401:53;6446:7;6437:6;6426:9;6422:22;6401:53;:::i;:::-;6391:63;;6346:118;5852:619;;;;;:::o;6477:663::-;6565:6;6573;6581;6630:2;6618:9;6609:7;6605:23;6601:32;6598:119;;;6636:79;;:::i;:::-;6598:119;6756:1;6781:64;6837:7;6828:6;6817:9;6813:22;6781:64;:::i;:::-;6771:74;;6727:128;6894:2;6920:64;6976:7;6967:6;6956:9;6952:22;6920:64;:::i;:::-;6910:74;;6865:129;7033:2;7059:64;7115:7;7106:6;7095:9;7091:22;7059:64;:::i;:::-;7049:74;;7004:129;6477:663;;;;;:::o;7146:179::-;7215:10;7236:46;7278:3;7270:6;7236:46;:::i;:::-;7314:4;7309:3;7305:14;7291:28;;7146:179;;;;:::o;7331:147::-;7426:45;7465:5;7426:45;:::i;:::-;7421:3;7414:58;7331:147;;:::o;7484:108::-;7561:24;7579:5;7561:24;:::i;:::-;7556:3;7549:37;7484:108;;:::o;7598:118::-;7685:24;7703:5;7685:24;:::i;:::-;7680:3;7673:37;7598:118;;:::o;7752:732::-;7871:3;7900:54;7948:5;7900:54;:::i;:::-;7970:86;8049:6;8044:3;7970:86;:::i;:::-;7963:93;;8080:56;8130:5;8080:56;:::i;:::-;8159:7;8190:1;8175:284;8200:6;8197:1;8194:13;8175:284;;;8276:6;8270:13;8303:63;8362:3;8347:13;8303:63;:::i;:::-;8296:70;;8389:60;8442:6;8389:60;:::i;:::-;8379:70;;8235:224;8222:1;8219;8215:9;8210:14;;8175:284;;;8179:14;8475:3;8468:10;;7876:608;;;7752:732;;;;:::o;8490:109::-;8571:21;8586:5;8571:21;:::i;:::-;8566:3;8559:34;8490:109;;:::o;8605:147::-;8700:45;8739:5;8700:45;:::i;:::-;8695:3;8688:58;8605:147;;:::o;8758:364::-;8846:3;8874:39;8907:5;8874:39;:::i;:::-;8929:71;8993:6;8988:3;8929:71;:::i;:::-;8922:78;;9009:52;9054:6;9049:3;9042:4;9035:5;9031:16;9009:52;:::i;:::-;9086:29;9108:6;9086:29;:::i;:::-;9081:3;9077:39;9070:46;;8850:272;8758:364;;;;:::o;9128:366::-;9270:3;9291:67;9355:2;9350:3;9291:67;:::i;:::-;9284:74;;9367:93;9456:3;9367:93;:::i;:::-;9485:2;9480:3;9476:12;9469:19;;9128:366;;;:::o;9500:::-;9642:3;9663:67;9727:2;9722:3;9663:67;:::i;:::-;9656:74;;9739:93;9828:3;9739:93;:::i;:::-;9857:2;9852:3;9848:12;9841:19;;9500:366;;;:::o;9872:::-;10014:3;10035:67;10099:2;10094:3;10035:67;:::i;:::-;10028:74;;10111:93;10200:3;10111:93;:::i;:::-;10229:2;10224:3;10220:12;10213:19;;9872:366;;;:::o;10244:::-;10386:3;10407:67;10471:2;10466:3;10407:67;:::i;:::-;10400:74;;10483:93;10572:3;10483:93;:::i;:::-;10601:2;10596:3;10592:12;10585:19;;10244:366;;;:::o;10616:::-;10758:3;10779:67;10843:2;10838:3;10779:67;:::i;:::-;10772:74;;10855:93;10944:3;10855:93;:::i;:::-;10973:2;10968:3;10964:12;10957:19;;10616:366;;;:::o;10988:::-;11130:3;11151:67;11215:2;11210:3;11151:67;:::i;:::-;11144:74;;11227:93;11316:3;11227:93;:::i;:::-;11345:2;11340:3;11336:12;11329:19;;10988:366;;;:::o;11360:::-;11502:3;11523:67;11587:2;11582:3;11523:67;:::i;:::-;11516:74;;11599:93;11688:3;11599:93;:::i;:::-;11717:2;11712:3;11708:12;11701:19;;11360:366;;;:::o;11732:::-;11874:3;11895:67;11959:2;11954:3;11895:67;:::i;:::-;11888:74;;11971:93;12060:3;11971:93;:::i;:::-;12089:2;12084:3;12080:12;12073:19;;11732:366;;;:::o;12104:::-;12246:3;12267:67;12331:2;12326:3;12267:67;:::i;:::-;12260:74;;12343:93;12432:3;12343:93;:::i;:::-;12461:2;12456:3;12452:12;12445:19;;12104:366;;;:::o;12476:::-;12618:3;12639:67;12703:2;12698:3;12639:67;:::i;:::-;12632:74;;12715:93;12804:3;12715:93;:::i;:::-;12833:2;12828:3;12824:12;12817:19;;12476:366;;;:::o;12848:::-;12990:3;13011:67;13075:2;13070:3;13011:67;:::i;:::-;13004:74;;13087:93;13176:3;13087:93;:::i;:::-;13205:2;13200:3;13196:12;13189:19;;12848:366;;;:::o;13220:::-;13362:3;13383:67;13447:2;13442:3;13383:67;:::i;:::-;13376:74;;13459:93;13548:3;13459:93;:::i;:::-;13577:2;13572:3;13568:12;13561:19;;13220:366;;;:::o;13592:::-;13734:3;13755:67;13819:2;13814:3;13755:67;:::i;:::-;13748:74;;13831:93;13920:3;13831:93;:::i;:::-;13949:2;13944:3;13940:12;13933:19;;13592:366;;;:::o;13964:::-;14106:3;14127:67;14191:2;14186:3;14127:67;:::i;:::-;14120:74;;14203:93;14292:3;14203:93;:::i;:::-;14321:2;14316:3;14312:12;14305:19;;13964:366;;;:::o;14336:::-;14478:3;14499:67;14563:2;14558:3;14499:67;:::i;:::-;14492:74;;14575:93;14664:3;14575:93;:::i;:::-;14693:2;14688:3;14684:12;14677:19;;14336:366;;;:::o;14708:398::-;14867:3;14888:83;14969:1;14964:3;14888:83;:::i;:::-;14881:90;;14980:93;15069:3;14980:93;:::i;:::-;15098:1;15093:3;15089:11;15082:18;;14708:398;;;:::o;15112:366::-;15254:3;15275:67;15339:2;15334:3;15275:67;:::i;:::-;15268:74;;15351:93;15440:3;15351:93;:::i;:::-;15469:2;15464:3;15460:12;15453:19;;15112:366;;;:::o;15484:::-;15626:3;15647:67;15711:2;15706:3;15647:67;:::i;:::-;15640:74;;15723:93;15812:3;15723:93;:::i;:::-;15841:2;15836:3;15832:12;15825:19;;15484:366;;;:::o;15856:::-;15998:3;16019:67;16083:2;16078:3;16019:67;:::i;:::-;16012:74;;16095:93;16184:3;16095:93;:::i;:::-;16213:2;16208:3;16204:12;16197:19;;15856:366;;;:::o;16228:::-;16370:3;16391:67;16455:2;16450:3;16391:67;:::i;:::-;16384:74;;16467:93;16556:3;16467:93;:::i;:::-;16585:2;16580:3;16576:12;16569:19;;16228:366;;;:::o;16600:::-;16742:3;16763:67;16827:2;16822:3;16763:67;:::i;:::-;16756:74;;16839:93;16928:3;16839:93;:::i;:::-;16957:2;16952:3;16948:12;16941:19;;16600:366;;;:::o;16972:118::-;17059:24;17077:5;17059:24;:::i;:::-;17054:3;17047:37;16972:118;;:::o;17096:112::-;17179:22;17195:5;17179:22;:::i;:::-;17174:3;17167:35;17096:112;;:::o;17214:379::-;17398:3;17420:147;17563:3;17420:147;:::i;:::-;17413:154;;17584:3;17577:10;;17214:379;;;:::o;17599:222::-;17692:4;17730:2;17719:9;17715:18;17707:26;;17743:71;17811:1;17800:9;17796:17;17787:6;17743:71;:::i;:::-;17599:222;;;;:::o;17827:332::-;17948:4;17986:2;17975:9;17971:18;17963:26;;17999:71;18067:1;18056:9;18052:17;18043:6;17999:71;:::i;:::-;18080:72;18148:2;18137:9;18133:18;18124:6;18080:72;:::i;:::-;17827:332;;;;;:::o;18165:::-;18286:4;18324:2;18313:9;18309:18;18301:26;;18337:71;18405:1;18394:9;18390:17;18381:6;18337:71;:::i;:::-;18418:72;18486:2;18475:9;18471:18;18462:6;18418:72;:::i;:::-;18165:332;;;;;:::o;18503:823::-;18760:4;18798:3;18787:9;18783:19;18775:27;;18812:71;18880:1;18869:9;18865:17;18856:6;18812:71;:::i;:::-;18893:72;18961:2;18950:9;18946:18;18937:6;18893:72;:::i;:::-;18975:80;19051:2;19040:9;19036:18;19027:6;18975:80;:::i;:::-;19065;19141:2;19130:9;19126:18;19117:6;19065:80;:::i;:::-;19155:81;19231:3;19220:9;19216:19;19207:6;19155:81;:::i;:::-;19246:73;19314:3;19303:9;19299:19;19290:6;19246:73;:::i;:::-;18503:823;;;;;;;;;:::o;19332:807::-;19581:4;19619:3;19608:9;19604:19;19596:27;;19633:71;19701:1;19690:9;19686:17;19677:6;19633:71;:::i;:::-;19714:72;19782:2;19771:9;19767:18;19758:6;19714:72;:::i;:::-;19796:80;19872:2;19861:9;19857:18;19848:6;19796:80;:::i;:::-;19886;19962:2;19951:9;19947:18;19938:6;19886:80;:::i;:::-;19976:73;20044:3;20033:9;20029:19;20020:6;19976:73;:::i;:::-;20059;20127:3;20116:9;20112:19;20103:6;20059:73;:::i;:::-;19332:807;;;;;;;;;:::o;20145:210::-;20232:4;20270:2;20259:9;20255:18;20247:26;;20283:65;20345:1;20334:9;20330:17;20321:6;20283:65;:::i;:::-;20145:210;;;;:::o;20361:313::-;20474:4;20512:2;20501:9;20497:18;20489:26;;20561:9;20555:4;20551:20;20547:1;20536:9;20532:17;20525:47;20589:78;20662:4;20653:6;20589:78;:::i;:::-;20581:86;;20361:313;;;;:::o;20680:419::-;20846:4;20884:2;20873:9;20869:18;20861:26;;20933:9;20927:4;20923:20;20919:1;20908:9;20904:17;20897:47;20961:131;21087:4;20961:131;:::i;:::-;20953:139;;20680:419;;;:::o;21105:::-;21271:4;21309:2;21298:9;21294:18;21286:26;;21358:9;21352:4;21348:20;21344:1;21333:9;21329:17;21322:47;21386:131;21512:4;21386:131;:::i;:::-;21378:139;;21105:419;;;:::o;21530:::-;21696:4;21734:2;21723:9;21719:18;21711:26;;21783:9;21777:4;21773:20;21769:1;21758:9;21754:17;21747:47;21811:131;21937:4;21811:131;:::i;:::-;21803:139;;21530:419;;;:::o;21955:::-;22121:4;22159:2;22148:9;22144:18;22136:26;;22208:9;22202:4;22198:20;22194:1;22183:9;22179:17;22172:47;22236:131;22362:4;22236:131;:::i;:::-;22228:139;;21955:419;;;:::o;22380:::-;22546:4;22584:2;22573:9;22569:18;22561:26;;22633:9;22627:4;22623:20;22619:1;22608:9;22604:17;22597:47;22661:131;22787:4;22661:131;:::i;:::-;22653:139;;22380:419;;;:::o;22805:::-;22971:4;23009:2;22998:9;22994:18;22986:26;;23058:9;23052:4;23048:20;23044:1;23033:9;23029:17;23022:47;23086:131;23212:4;23086:131;:::i;:::-;23078:139;;22805:419;;;:::o;23230:::-;23396:4;23434:2;23423:9;23419:18;23411:26;;23483:9;23477:4;23473:20;23469:1;23458:9;23454:17;23447:47;23511:131;23637:4;23511:131;:::i;:::-;23503:139;;23230:419;;;:::o;23655:::-;23821:4;23859:2;23848:9;23844:18;23836:26;;23908:9;23902:4;23898:20;23894:1;23883:9;23879:17;23872:47;23936:131;24062:4;23936:131;:::i;:::-;23928:139;;23655:419;;;:::o;24080:::-;24246:4;24284:2;24273:9;24269:18;24261:26;;24333:9;24327:4;24323:20;24319:1;24308:9;24304:17;24297:47;24361:131;24487:4;24361:131;:::i;:::-;24353:139;;24080:419;;;:::o;24505:::-;24671:4;24709:2;24698:9;24694:18;24686:26;;24758:9;24752:4;24748:20;24744:1;24733:9;24729:17;24722:47;24786:131;24912:4;24786:131;:::i;:::-;24778:139;;24505:419;;;:::o;24930:::-;25096:4;25134:2;25123:9;25119:18;25111:26;;25183:9;25177:4;25173:20;25169:1;25158:9;25154:17;25147:47;25211:131;25337:4;25211:131;:::i;:::-;25203:139;;24930:419;;;:::o;25355:::-;25521:4;25559:2;25548:9;25544:18;25536:26;;25608:9;25602:4;25598:20;25594:1;25583:9;25579:17;25572:47;25636:131;25762:4;25636:131;:::i;:::-;25628:139;;25355:419;;;:::o;25780:::-;25946:4;25984:2;25973:9;25969:18;25961:26;;26033:9;26027:4;26023:20;26019:1;26008:9;26004:17;25997:47;26061:131;26187:4;26061:131;:::i;:::-;26053:139;;25780:419;;;:::o;26205:::-;26371:4;26409:2;26398:9;26394:18;26386:26;;26458:9;26452:4;26448:20;26444:1;26433:9;26429:17;26422:47;26486:131;26612:4;26486:131;:::i;:::-;26478:139;;26205:419;;;:::o;26630:::-;26796:4;26834:2;26823:9;26819:18;26811:26;;26883:9;26877:4;26873:20;26869:1;26858:9;26854:17;26847:47;26911:131;27037:4;26911:131;:::i;:::-;26903:139;;26630:419;;;:::o;27055:::-;27221:4;27259:2;27248:9;27244:18;27236:26;;27308:9;27302:4;27298:20;27294:1;27283:9;27279:17;27272:47;27336:131;27462:4;27336:131;:::i;:::-;27328:139;;27055:419;;;:::o;27480:::-;27646:4;27684:2;27673:9;27669:18;27661:26;;27733:9;27727:4;27723:20;27719:1;27708:9;27704:17;27697:47;27761:131;27887:4;27761:131;:::i;:::-;27753:139;;27480:419;;;:::o;27905:::-;28071:4;28109:2;28098:9;28094:18;28086:26;;28158:9;28152:4;28148:20;28144:1;28133:9;28129:17;28122:47;28186:131;28312:4;28186:131;:::i;:::-;28178:139;;27905:419;;;:::o;28330:::-;28496:4;28534:2;28523:9;28519:18;28511:26;;28583:9;28577:4;28573:20;28569:1;28558:9;28554:17;28547:47;28611:131;28737:4;28611:131;:::i;:::-;28603:139;;28330:419;;;:::o;28755:::-;28921:4;28959:2;28948:9;28944:18;28936:26;;29008:9;29002:4;28998:20;28994:1;28983:9;28979:17;28972:47;29036:131;29162:4;29036:131;:::i;:::-;29028:139;;28755:419;;;:::o;29180:222::-;29273:4;29311:2;29300:9;29296:18;29288:26;;29324:71;29392:1;29381:9;29377:17;29368:6;29324:71;:::i;:::-;29180:222;;;;:::o;29408:831::-;29671:4;29709:3;29698:9;29694:19;29686:27;;29723:71;29791:1;29780:9;29776:17;29767:6;29723:71;:::i;:::-;29804:80;29880:2;29869:9;29865:18;29856:6;29804:80;:::i;:::-;29931:9;29925:4;29921:20;29916:2;29905:9;29901:18;29894:48;29959:108;30062:4;30053:6;29959:108;:::i;:::-;29951:116;;30077:72;30145:2;30134:9;30130:18;30121:6;30077:72;:::i;:::-;30159:73;30227:3;30216:9;30212:19;30203:6;30159:73;:::i;:::-;29408:831;;;;;;;;:::o;30245:442::-;30394:4;30432:2;30421:9;30417:18;30409:26;;30445:71;30513:1;30502:9;30498:17;30489:6;30445:71;:::i;:::-;30526:72;30594:2;30583:9;30579:18;30570:6;30526:72;:::i;:::-;30608;30676:2;30665:9;30661:18;30652:6;30608:72;:::i;:::-;30245:442;;;;;;:::o;30693:214::-;30782:4;30820:2;30809:9;30805:18;30797:26;;30833:67;30897:1;30886:9;30882:17;30873:6;30833:67;:::i;:::-;30693:214;;;;:::o;30913:129::-;30947:6;30974:20;;:::i;:::-;30964:30;;31003:33;31031:4;31023:6;31003:33;:::i;:::-;30913:129;;;:::o;31048:75::-;31081:6;31114:2;31108:9;31098:19;;31048:75;:::o;31129:311::-;31206:4;31296:18;31288:6;31285:30;31282:56;;;31318:18;;:::i;:::-;31282:56;31368:4;31360:6;31356:17;31348:25;;31428:4;31422;31418:15;31410:23;;31129:311;;;:::o;31446:132::-;31513:4;31536:3;31528:11;;31566:4;31561:3;31557:14;31549:22;;31446:132;;;:::o;31584:114::-;31651:6;31685:5;31679:12;31669:22;;31584:114;;;:::o;31704:99::-;31756:6;31790:5;31784:12;31774:22;;31704:99;;;:::o;31809:113::-;31879:4;31911;31906:3;31902:14;31894:22;;31809:113;;;:::o;31928:184::-;32027:11;32061:6;32056:3;32049:19;32101:4;32096:3;32092:14;32077:29;;31928:184;;;;:::o;32118:147::-;32219:11;32256:3;32241:18;;32118:147;;;;:::o;32271:169::-;32355:11;32389:6;32384:3;32377:19;32429:4;32424:3;32420:14;32405:29;;32271:169;;;;:::o;32446:305::-;32486:3;32505:20;32523:1;32505:20;:::i;:::-;32500:25;;32539:20;32557:1;32539:20;:::i;:::-;32534:25;;32693:1;32625:66;32621:74;32618:1;32615:81;32612:107;;;32699:18;;:::i;:::-;32612:107;32743:1;32740;32736:9;32729:16;;32446:305;;;;:::o;32757:185::-;32797:1;32814:20;32832:1;32814:20;:::i;:::-;32809:25;;32848:20;32866:1;32848:20;:::i;:::-;32843:25;;32887:1;32877:35;;32892:18;;:::i;:::-;32877:35;32934:1;32931;32927:9;32922:14;;32757:185;;;;:::o;32948:348::-;32988:7;33011:20;33029:1;33011:20;:::i;:::-;33006:25;;33045:20;33063:1;33045:20;:::i;:::-;33040:25;;33233:1;33165:66;33161:74;33158:1;33155:81;33150:1;33143:9;33136:17;33132:105;33129:131;;;33240:18;;:::i;:::-;33129:131;33288:1;33285;33281:9;33270:20;;32948:348;;;;:::o;33302:191::-;33342:4;33362:20;33380:1;33362:20;:::i;:::-;33357:25;;33396:20;33414:1;33396:20;:::i;:::-;33391:25;;33435:1;33432;33429:8;33426:34;;;33440:18;;:::i;:::-;33426:34;33485:1;33482;33478:9;33470:17;;33302:191;;;;:::o;33499:96::-;33536:7;33565:24;33583:5;33565:24;:::i;:::-;33554:35;;33499:96;;;:::o;33601:90::-;33635:7;33678:5;33671:13;33664:21;33653:32;;33601:90;;;:::o;33697:126::-;33734:7;33774:42;33767:5;33763:54;33752:65;;33697:126;;;:::o;33829:77::-;33866:7;33895:5;33884:16;;33829:77;;;:::o;33912:86::-;33947:7;33987:4;33980:5;33976:16;33965:27;;33912:86;;;:::o;34004:134::-;34062:9;34095:37;34126:5;34095:37;:::i;:::-;34082:50;;34004:134;;;:::o;34144:121::-;34202:9;34235:24;34253:5;34235:24;:::i;:::-;34222:37;;34144:121;;;:::o;34271:126::-;34321:9;34354:37;34385:5;34354:37;:::i;:::-;34341:50;;34271:126;;;:::o;34403:113::-;34453:9;34486:24;34504:5;34486:24;:::i;:::-;34473:37;;34403:113;;;:::o;34522:307::-;34590:1;34600:113;34614:6;34611:1;34608:13;34600:113;;;34699:1;34694:3;34690:11;34684:18;34680:1;34675:3;34671:11;34664:39;34636:2;34633:1;34629:10;34624:15;;34600:113;;;34731:6;34728:1;34725:13;34722:101;;;34811:1;34802:6;34797:3;34793:16;34786:27;34722:101;34571:258;34522:307;;;:::o;34835:281::-;34918:27;34940:4;34918:27;:::i;:::-;34910:6;34906:40;35048:6;35036:10;35033:22;35012:18;35000:10;34997:34;34994:62;34991:88;;;35059:18;;:::i;:::-;34991:88;35099:10;35095:2;35088:22;34878:238;34835:281;;:::o;35122:233::-;35161:3;35184:24;35202:5;35184:24;:::i;:::-;35175:33;;35230:66;35223:5;35220:77;35217:103;;;35300:18;;:::i;:::-;35217:103;35347:1;35340:5;35336:13;35329:20;;35122:233;;;:::o;35361:180::-;35409:77;35406:1;35399:88;35506:4;35503:1;35496:15;35530:4;35527:1;35520:15;35547:180;35595:77;35592:1;35585:88;35692:4;35689:1;35682:15;35716:4;35713:1;35706:15;35733:180;35781:77;35778:1;35771:88;35878:4;35875:1;35868:15;35902:4;35899:1;35892:15;35919:180;35967:77;35964:1;35957:88;36064:4;36061:1;36054:15;36088:4;36085:1;36078:15;36105:117;36214:1;36211;36204:12;36228:117;36337:1;36334;36327:12;36351:117;36460:1;36457;36450:12;36474:117;36583:1;36580;36573:12;36597:102;36638:6;36689:2;36685:7;36680:2;36673:5;36669:14;36665:28;36655:38;;36597:102;;;:::o;36705:222::-;36845:34;36841:1;36833:6;36829:14;36822:58;36914:5;36909:2;36901:6;36897:15;36890:30;36705:222;:::o;36933:221::-;37073:34;37069:1;37061:6;37057:14;37050:58;37142:4;37137:2;37129:6;37125:15;37118:29;36933:221;:::o;37160:177::-;37300:29;37296:1;37288:6;37284:14;37277:53;37160:177;:::o;37343:220::-;37483:34;37479:1;37471:6;37467:14;37460:58;37552:3;37547:2;37539:6;37535:15;37528:28;37343:220;:::o;37569:240::-;37709:34;37705:1;37697:6;37693:14;37686:58;37778:23;37773:2;37765:6;37761:15;37754:48;37569:240;:::o;37815:239::-;37955:34;37951:1;37943:6;37939:14;37932:58;38024:22;38019:2;38011:6;38007:15;38000:47;37815:239;:::o;38060:223::-;38200:34;38196:1;38188:6;38184:14;38177:58;38269:6;38264:2;38256:6;38252:15;38245:31;38060:223;:::o;38289:228::-;38429:34;38425:1;38417:6;38413:14;38406:58;38498:11;38493:2;38485:6;38481:15;38474:36;38289:228;:::o;38523:220::-;38663:34;38659:1;38651:6;38647:14;38640:58;38732:3;38727:2;38719:6;38715:15;38708:28;38523:220;:::o;38749:179::-;38889:31;38885:1;38877:6;38873:14;38866:55;38749:179;:::o;38934:182::-;39074:34;39070:1;39062:6;39058:14;39051:58;38934:182;:::o;39122:180::-;39262:32;39258:1;39250:6;39246:14;39239:56;39122:180;:::o;39308:228::-;39448:34;39444:1;39436:6;39432:14;39425:58;39517:11;39512:2;39504:6;39500:15;39493:36;39308:228;:::o;39542:222::-;39682:34;39678:1;39670:6;39666:14;39659:58;39751:5;39746:2;39738:6;39734:15;39727:30;39542:222;:::o;39770:224::-;39910:34;39906:1;39898:6;39894:14;39887:58;39979:7;39974:2;39966:6;39962:15;39955:32;39770:224;:::o;40000:114::-;;:::o;40120:223::-;40260:34;40256:1;40248:6;40244:14;40237:58;40329:6;40324:2;40316:6;40312:15;40305:31;40120:223;:::o;40349:173::-;40489:25;40485:1;40477:6;40473:14;40466:49;40349:173;:::o;40528:182::-;40668:34;40664:1;40656:6;40652:14;40645:58;40528:182;:::o;40716:229::-;40856:34;40852:1;40844:6;40840:14;40833:58;40925:12;40920:2;40912:6;40908:15;40901:37;40716:229;:::o;40951:230::-;41091:34;41087:1;41079:6;41075:14;41068:58;41160:13;41155:2;41147:6;41143:15;41136:38;40951:230;:::o;41187:122::-;41260:24;41278:5;41260:24;:::i;:::-;41253:5;41250:35;41240:63;;41299:1;41296;41289:12;41240:63;41187:122;:::o;41315:116::-;41385:21;41400:5;41385:21;:::i;:::-;41378:5;41375:32;41365:60;;41421:1;41418;41411:12;41365:60;41315:116;:::o;41437:122::-;41510:24;41528:5;41510:24;:::i;:::-;41503:5;41500:35;41490:63;;41549:1;41546;41539:12;41490:63;41437:122;:::o

Swarm Source

ipfs://0060d18d65f5c0ed1f20482cbfe7604602208a3ec7efddc9199edfc8a5a699b5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.