ETH Price: $3,219.78 (+5.43%)

Token

Zheton (ZHETON)
 

Overview

Max Total Supply

1,000,000,000,000 ZHETON

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
130,773.536528727 ZHETON

Value
$0.00
0x336050D163c2C6a48515259754D85de594fBc011
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:
ZHETON

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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 ZHETON is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"Zheton";
    string private constant _symbol = unicode"ZHETON";
    
    uint256 private minContractTokensToSwap = 1e9 * 10**9;
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 9;
    uint256 private _liquidityFeePercentage = 18;
    uint256 private _maxWalletPercentage = 2;

    uint256 private _buyFee = 8;
    uint256 private _sellFee = 22;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;

    uint256 private _launchTime;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noTaxMode = false;
    bool private _swapAll = false;
    bool private _takeFeeFromTransfer = false;
    bool private inSwap = false;

    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

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

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");

                if(block.timestamp > _launchTime + (7 minutes)) {
                    _teamFee = _buyFee;
                } else {
                    _teamFee = 90;
                }
                
                uint walletBalance = balanceOf(address(to));
                require(amount.add(walletBalance) <= _tTotal.mul(_maxWalletPercentage).div(100));
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                _teamFee = _sellFee;

                if(contractTokenBalance > minContractTokensToSwap) {
                    if(!_swapAll) {
                        contractTokenBalance = minContractTokensToSwap;
                    }

                    if (_liquidityFeePercentage > 0) {
                        swapAndLiquify(contractTokenBalance);
                    } else {
                        swapWithoutLiquify(contractTokenBalance);
                    }     
                    
                }
            }
        }
        bool takeFee = true;

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

        if(!_takeFeeFromTransfer && !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) {
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 teamFeePercentage = 100 - _liquidityFeePercentage;
        uint256 amtForLiquidity = contractTokenBalance.mul(_liquidityFeePercentage).div(100);
        uint256 halfLiq = amtForLiquidity.div(2);

        uint256 amountToSwapForETH = contractTokenBalance.sub(halfLiq);
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 feeBalance = ethBalance.mul(teamFeePercentage).div(100);
        sendETHToFee(feeBalance);

        uint256 ethForLiquidity = ethBalance - feeBalance;

        if (halfLiq > 0 && ethForLiquidity > 0) {
            // add liquidity
            addLiquidity(halfLiq, ethForLiquidity);

            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, amtForLiquidity);
        }
    }

    function swapWithoutLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 manualSwapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

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

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

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

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

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

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}
    
    function 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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        _launchTime = block.timestamp;
        automatedMarketMakerPairs[uniswapV2Pair] = true;
    }
    
    function setMarketingWallet (address payable marketingWalletAddress) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[_marketingWalletAddress] = false;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[marketingWalletAddress] = true;
    }

    function excludeFromFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = false;
    }
    
    function setNoTaxMode(bool onoff) external {
        require(_msgSender() == _FeeAddress);
        _noTaxMode = onoff;
    }

    function setTakeFeeFromTransfer(bool onoff) external {
        require(_msgSender() == _FeeAddress);
        _takeFeeFromTransfer = onoff;
    }
    
    function setBuyFee(uint256 buy) external {
        require(_msgSender() == _FeeAddress);
        require(buy <= 10, "Buy fee must be less than 10");
        _buyFee = buy;
    }

    function setSellFee(uint256 sell) external {
        require(_msgSender() == _FeeAddress);
        require(sell <= 20, "Sell fee must be less than 20");
        _sellFee = sell;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == _FeeAddress);
        require(tax <= 5, "tax must be less than 5");
        _taxFee = tax;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external {
	    require(_msgSender() == _FeeAddress);
		require(_liquidityFeePercentage >= 0 && _liquidityFeePercentage <= 100, "liquidity fee percentage must be between 0 to 100");
        _liquidityFeePercentage = liquidityFee;
    }

    function setMinContractTokensToSwap(uint256 numToken) external {
	    require(_msgSender() == _FeeAddress);
        minContractTokensToSwap = numToken;
    }

    function setMaxWalletPercentage(uint256 percentage) external {
	    require(_msgSender() == _FeeAddress);
        require(percentage >= 2 && percentage <= 100, "max wallet percentage must be between 2 to 100");
        _maxWalletPercentage = percentage;
    }

    function setSwapAll(bool onoff) external {
        require(_msgSender() == _FeeAddress);
        _swapAll = onoff;
    }
    
    function setBots(address[] calldata bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        manualSwapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external {
        require(_msgSender() == _FeeAddress);
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"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":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":"tokensIntoLiqudity","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":[],"name":"amountInPool","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 payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setMaxWalletPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTakeFeeFromTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d9190620005d2565b6000196200002c919062000559565b600755670de0b6b3a76400006009556002600a556009600b556012600c556002600d556008600e556016600f55600a54601055600b546011556000601660146101000a81548160ff0219169083151502179055506000601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055506000601660176101000a81548160ff0219169083151502179055506000601660186101000a81548160ff021916908315150217905550348015620000f857600080fd5b50604051620052273803806200522783398181016040528101906200011e9190620004e4565b6000620001306200049c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620002676200049c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002bb620004a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004246200049c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200048c91906200053c565b60405180910390a3505062000687565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004de816200066d565b92915050565b60008060408385031215620004fe57620004fd62000668565b5b60006200050e85828601620004cd565b92505060206200052185828601620004cd565b9150509250929050565b6200053681620005c8565b82525050565b60006020820190506200055360008301846200052b565b92915050565b60006200056682620005c8565b91506200057383620005c8565b9250828210156200058957620005886200060a565b5b828203905092915050565b6000620005a182620005a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620005df82620005c8565b9150620005ec83620005c8565b925082620005ff57620005fe62000639565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620006788162000594565b81146200068457600080fd5b50565b614b9080620006976000396000f3fe6080604052600436106101e75760003560e01c80637a845ece11610102578063c118756911610095578063cf0848f711610064578063cf0848f714610697578063db92dbb6146106c0578063dd62ed3e146106eb578063de30aad114610728576101ee565b8063c118756914610617578063c3c8cd8014610640578063c4081a4c14610657578063c9567bf914610680576101ee565b806395d89b41116100d157806395d89b411461055d5780639a7a23d614610588578063a9059cbb146105b1578063b515566a146105ee576101ee565b80637a845ece146104b75780638b4cee08146104e05780638da5cb5b146105095780638ee88c5314610534576101ee565b8063313ce5671161017a5780635d098b38116101495780635d098b38146104235780636fc3eaec1461044c57806370a0823114610463578063715018a6146104a0576101ee565b8063313ce567146103695780633bbac57914610394578063437823ec146103d15780634b740b16146103fa576101ee565b806318160ddd116101b657806318160ddd146102ad57806323b872dd146102d8578063273123b71461031557806327f3a72a1461033e576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630cc835a31461025b57806312dfbd3314610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610751565b6040516102159190614053565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613aa7565b61078e565b6040516102529190614038565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613b8e565b6107ac565b005b34801561029057600080fd5b506102ab60048036038101906102a69190613b8e565b61085b565b005b3480156102b957600080fd5b506102c26108c6565b6040516102cf9190614295565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613a14565b6108d7565b60405161030c9190614038565b60405180910390f35b34801561032157600080fd5b5061033c6004803603810190610337919061394d565b6109b0565b005b34801561034a57600080fd5b50610353610aa0565b6040516103609190614295565b60405180910390f35b34801561037557600080fd5b5061037e610ab0565b60405161038b9190614341565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061394d565b610ab9565b6040516103c89190614038565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906139a7565b610b0f565b005b34801561040657600080fd5b50610421600480360381019061041c9190613b34565b610bcb565b005b34801561042f57600080fd5b5061044a600480360381019061044591906139a7565b610c49565b005b34801561045857600080fd5b50610461610dc0565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061394d565b610e32565b6040516104979190614295565b60405180910390f35b3480156104ac57600080fd5b506104b5610e83565b005b3480156104c357600080fd5b506104de60048036038101906104d99190613b8e565b610fd6565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613b8e565b611092565b005b34801561051557600080fd5b5061051e611141565b60405161052b9190613f6a565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613b8e565b61116a565b005b34801561056957600080fd5b5061057261122a565b60405161057f9190614053565b60405180910390f35b34801561059457600080fd5b506105af60048036038101906105aa9190613a67565b611267565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190613aa7565b611367565b6040516105e59190614038565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190613ae7565b611385565b005b34801561062357600080fd5b5061063e60048036038101906106399190613b34565b6115bf565b005b34801561064c57600080fd5b5061065561163d565b005b34801561066357600080fd5b5061067e60048036038101906106799190613b8e565b6116b7565b005b34801561068c57600080fd5b50610695611766565b005b3480156106a357600080fd5b506106be60048036038101906106b991906139a7565b611cfe565b005b3480156106cc57600080fd5b506106d5611dba565b6040516106e29190614295565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d91906139d4565b611dec565b60405161071f9190614295565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613b34565b611e73565b005b60606040518060400160405280600681526020017f5a6865746f6e0000000000000000000000000000000000000000000000000000815250905090565b60006107a261079b611ef0565b8484611ef8565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600a811115610851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084890614275565b60405180910390fd5b80600e8190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089c611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146108bc57600080fd5b8060098190555050565b6000683635c9adc5dea00000905090565b60006108e48484846120c3565b6109a5846108f0611ef0565b6109a085604051806060016040528060288152602001614b3360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610956611ef0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127779092919063ffffffff16565b611ef8565b600190509392505050565b6109b8611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c906141b5565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610aab30610e32565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b50611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610b7057600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0c611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610c2c57600080fd5b80601660156101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c8a611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610caa57600080fd5b600060056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e01611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610e2157600080fd5b6000479050610e2f816127db565b50565b6000610e7c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d6565b9050919050565b610e8b611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906141b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611017611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461103757600080fd5b60028110158015611049575060648111155b611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90614135565b60405180910390fd5b80600d8190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d3611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146110f357600080fd5b6014811115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e90614175565b60405180910390fd5b80600f8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111ab611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146111cb57600080fd5b6000600c54101580156111e157506064600c5411155b611220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121790614155565b60405180910390fd5b80600c8190555050565b60606040518060400160405280600681526020017f5a4845544f4e0000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112a8611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146112c857600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611359576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611350906140f5565b60405180910390fd5b6113638282612944565b5050565b600061137b611374611ef0565b84846120c3565b6001905092915050565b61138d611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906141b5565b60405180910390fd5b60005b828290508110156115ba57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061147457611473614619565b5b9050602002016020810190611489919061394d565b73ffffffffffffffffffffffffffffffffffffffff16141580156115225750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106114f4576114f3614619565b5b9050602002016020810190611509919061394d565b73ffffffffffffffffffffffffffffffffffffffff1614155b156115a7576001600660008585858181106115405761153f614619565b5b9050602002016020810190611555919061394d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806115b290614572565b91505061141d565b505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611600611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461162057600080fd5b80601660176101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661167e611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461169e57600080fd5b60006116a930610e32565b90506116b48161299f565b50565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116f8611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461171857600080fd5b600581111561175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390614115565b60405180910390fd5b80600a8190555050565b61176e611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f2906141b5565b60405180910390fd5b601660149054906101000a900460ff161561184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290614235565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118db30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611ef8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561192157600080fd5b505afa158015611935573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611959919061397a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119bb57600080fd5b505afa1580156119cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f3919061397a565b6040518363ffffffff1660e01b8152600401611a10929190613f85565b602060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a62919061397a565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611aeb30610e32565b600080611af6611141565b426040518863ffffffff1660e01b8152600401611b1896959493929190613fd7565b6060604051808303818588803b158015611b3157600080fd5b505af1158015611b45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b6a9190613bbb565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611c0c929190613fae565b602060405180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190613b61565b506001601660146101000a81548160ff02191690831515021790555042601281905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d3f611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611de7601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e32565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eb4611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614611ed457600080fd5b806016806101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90614215565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf906140b5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120b69190614295565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a906141f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219a90614075565b60405180910390fd5b600081116121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dd906141d5565b60405180910390fd5b6121ee611141565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561225c575061222c611141565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125d657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123055750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61230e57600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123b95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561240f5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124ef57601660149054906101000a900460ff16612463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245a90614255565b60405180910390fd5b6101a460125461247391906143b1565b42111561248857600e54600b81905550612491565b605a600b819055505b600061249c83610e32565b90506124cf60646124c1600d54683635c9adc5dea00000612c2790919063ffffffff16565b612ca290919063ffffffff16565b6124e28284612cec90919063ffffffff16565b11156124ed57600080fd5b505b60006124fa30610e32565b9050601660189054906101000a900460ff161580156125675750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561257f5750601660149054906101000a900460ff165b156125d457600f54600b819055506009548111156125d35760168054906101000a900460ff166125af5760095490505b6000600c5411156125c8576125c381612d4a565b6125d2565b6125d181612ebc565b5b5b5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061267d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126945750601660159054906101000a900460ff165b1561269e57600090505b601660179054906101000a900460ff161580156127055750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561275b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561276557600090505b61277184848484612f17565b50505050565b60008383111582906127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69190614053565b60405180910390fd5b50600083856127ce9190614492565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61282b600284612ca290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612856573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128a7600284612ca290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128d2573d6000803e3d6000fd5b5050565b600060075482111561291d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291490614095565b60405180910390fd5b6000612927612f44565b905061293c8184612ca290919063ffffffff16565b915050919050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601660186101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156129d7576129d6614648565b5b604051908082528060200260200182016040528015612a055781602001602082028036833780820191505090505b5090503081600081518110612a1d57612a1c614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612abf57600080fd5b505afa158015612ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af7919061397a565b81600181518110612b0b57612b0a614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ef8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bd69594939291906142b0565b600060405180830381600087803b158015612bf057600080fd5b505af1158015612c04573d6000803e3d6000fd5b50505050506000601660186101000a81548160ff02191690831515021790555050565b600080831415612c3a5760009050612c9c565b60008284612c489190614438565b9050828482612c579190614407565b14612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e90614195565b60405180910390fd5b809150505b92915050565b6000612ce483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6f565b905092915050565b6000808284612cfb91906143b1565b905083811015612d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d37906140d5565b60405180910390fd5b8091505092915050565b6001601660186101000a81548160ff0219169083151502179055506000600c546064612d769190614492565b90506000612da26064612d94600c5486612c2790919063ffffffff16565b612ca290919063ffffffff16565b90506000612dba600283612ca290919063ffffffff16565b90506000612dd18286612fd290919063ffffffff16565b90506000479050612de18261301c565b6000612df68247612fd290919063ffffffff16565b90506000612e206064612e128985612c2790919063ffffffff16565b612ca290919063ffffffff16565b9050612e2b816127db565b60008183612e399190614492565b9050600086118015612e4b5750600081115b15612e9657612e5a868261326e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858289604051612e8d9392919061430a565b60405180910390a15b50505050505050506000601660186101000a81548160ff02191690831515021790555050565b6001601660186101000a81548160ff021916908315150217905550612ee08161301c565b60004790506000811115612ef857612ef7476127db565b5b506000601660186101000a81548160ff02191690831515021790555050565b80612f2557612f24613362565b5b612f308484846133a5565b80612f3e57612f3d613570565b5b50505050565b6000806000612f51613584565b91509150612f688183612ca290919063ffffffff16565b9250505090565b60008083118290612fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fad9190614053565b60405180910390fd5b5060008385612fc59190614407565b9050809150509392505050565b600061301483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612777565b905092915050565b6000600267ffffffffffffffff81111561303957613038614648565b5b6040519080825280602002602001820160405280156130675781602001602082028036833780820191505090505b509050308160008151811061307f5761307e614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561312157600080fd5b505afa158015613135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613159919061397a565b8160018151811061316d5761316c614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131d430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ef8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132389594939291906142b0565b600060405180830381600087803b15801561325257600080fd5b505af1158015613266573d6000803e3d6000fd5b505050505050565b61329b30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ef8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132e7611141565b426040518863ffffffff1660e01b815260040161330996959493929190613fd7565b6060604051808303818588803b15801561332257600080fd5b505af1158015613336573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061335b9190613bbb565b5050505050565b6000600a5414801561337657506000600b54145b15613380576133a3565b600a54601081905550600b546011819055506000600a819055506000600b819055505b565b6000806000806000806133b7876135e6565b95509550955095509550955061341586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134aa85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134f68161364e565b613500848361370b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161355d9190614295565b60405180910390a3505050505050505050565b601054600a81905550601154600b81905550565b600080600060075490506000683635c9adc5dea0000090506135ba683635c9adc5dea00000600754612ca290919063ffffffff16565b8210156135d957600754683635c9adc5dea000009350935050506135e2565b81819350935050505b9091565b60008060008060008060008060006136038a600a54600b54613745565b9250925092506000613613612f44565b905060008060006136268e8787876137db565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613658612f44565b9050600061366f8284612c2790919063ffffffff16565b90506136c381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61372082600754612fd290919063ffffffff16565b60078190555061373b81600854612cec90919063ffffffff16565b6008819055505050565b6000806000806137716064613763888a612c2790919063ffffffff16565b612ca290919063ffffffff16565b9050600061379b606461378d888b612c2790919063ffffffff16565b612ca290919063ffffffff16565b905060006137c4826137b6858c612fd290919063ffffffff16565b612fd290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806137f48589612c2790919063ffffffff16565b9050600061380b8689612c2790919063ffffffff16565b905060006138228789612c2790919063ffffffff16565b9050600061384b8261383d8587612fd290919063ffffffff16565b612fd290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061387381614ad6565b92915050565b60008151905061388881614ad6565b92915050565b60008135905061389d81614aed565b92915050565b60008083601f8401126138b9576138b861467c565b5b8235905067ffffffffffffffff8111156138d6576138d5614677565b5b6020830191508360208202830111156138f2576138f1614681565b5b9250929050565b60008135905061390881614b04565b92915050565b60008151905061391d81614b04565b92915050565b60008135905061393281614b1b565b92915050565b60008151905061394781614b1b565b92915050565b6000602082840312156139635761396261468b565b5b600061397184828501613864565b91505092915050565b6000602082840312156139905761398f61468b565b5b600061399e84828501613879565b91505092915050565b6000602082840312156139bd576139bc61468b565b5b60006139cb8482850161388e565b91505092915050565b600080604083850312156139eb576139ea61468b565b5b60006139f985828601613864565b9250506020613a0a85828601613864565b9150509250929050565b600080600060608486031215613a2d57613a2c61468b565b5b6000613a3b86828701613864565b9350506020613a4c86828701613864565b9250506040613a5d86828701613923565b9150509250925092565b60008060408385031215613a7e57613a7d61468b565b5b6000613a8c85828601613864565b9250506020613a9d858286016138f9565b9150509250929050565b60008060408385031215613abe57613abd61468b565b5b6000613acc85828601613864565b9250506020613add85828601613923565b9150509250929050565b60008060208385031215613afe57613afd61468b565b5b600083013567ffffffffffffffff811115613b1c57613b1b614686565b5b613b28858286016138a3565b92509250509250929050565b600060208284031215613b4a57613b4961468b565b5b6000613b58848285016138f9565b91505092915050565b600060208284031215613b7757613b7661468b565b5b6000613b858482850161390e565b91505092915050565b600060208284031215613ba457613ba361468b565b5b6000613bb284828501613923565b91505092915050565b600080600060608486031215613bd457613bd361468b565b5b6000613be286828701613938565b9350506020613bf386828701613938565b9250506040613c0486828701613938565b9150509250925092565b6000613c1a8383613c26565b60208301905092915050565b613c2f816144c6565b82525050565b613c3e816144c6565b82525050565b6000613c4f8261436c565b613c59818561438f565b9350613c648361435c565b8060005b83811015613c95578151613c7c8882613c0e565b9750613c8783614382565b925050600181019050613c68565b5085935050505092915050565b613cab816144ea565b82525050565b613cba8161452d565b82525050565b6000613ccb82614377565b613cd581856143a0565b9350613ce581856020860161453f565b613cee81614690565b840191505092915050565b6000613d066023836143a0565b9150613d11826146a1565b604082019050919050565b6000613d29602a836143a0565b9150613d34826146f0565b604082019050919050565b6000613d4c6022836143a0565b9150613d578261473f565b604082019050919050565b6000613d6f601b836143a0565b9150613d7a8261478e565b602082019050919050565b6000613d926039836143a0565b9150613d9d826147b7565b604082019050919050565b6000613db56017836143a0565b9150613dc082614806565b602082019050919050565b6000613dd8602e836143a0565b9150613de38261482f565b604082019050919050565b6000613dfb6031836143a0565b9150613e068261487e565b604082019050919050565b6000613e1e601d836143a0565b9150613e29826148cd565b602082019050919050565b6000613e416021836143a0565b9150613e4c826148f6565b604082019050919050565b6000613e646020836143a0565b9150613e6f82614945565b602082019050919050565b6000613e876029836143a0565b9150613e928261496e565b604082019050919050565b6000613eaa6025836143a0565b9150613eb5826149bd565b604082019050919050565b6000613ecd6024836143a0565b9150613ed882614a0c565b604082019050919050565b6000613ef06017836143a0565b9150613efb82614a5b565b602082019050919050565b6000613f136018836143a0565b9150613f1e82614a84565b602082019050919050565b6000613f36601c836143a0565b9150613f4182614aad565b602082019050919050565b613f5581614516565b82525050565b613f6481614520565b82525050565b6000602082019050613f7f6000830184613c35565b92915050565b6000604082019050613f9a6000830185613c35565b613fa76020830184613c35565b9392505050565b6000604082019050613fc36000830185613c35565b613fd06020830184613f4c565b9392505050565b600060c082019050613fec6000830189613c35565b613ff96020830188613f4c565b6140066040830187613cb1565b6140136060830186613cb1565b6140206080830185613c35565b61402d60a0830184613f4c565b979650505050505050565b600060208201905061404d6000830184613ca2565b92915050565b6000602082019050818103600083015261406d8184613cc0565b905092915050565b6000602082019050818103600083015261408e81613cf9565b9050919050565b600060208201905081810360008301526140ae81613d1c565b9050919050565b600060208201905081810360008301526140ce81613d3f565b9050919050565b600060208201905081810360008301526140ee81613d62565b9050919050565b6000602082019050818103600083015261410e81613d85565b9050919050565b6000602082019050818103600083015261412e81613da8565b9050919050565b6000602082019050818103600083015261414e81613dcb565b9050919050565b6000602082019050818103600083015261416e81613dee565b9050919050565b6000602082019050818103600083015261418e81613e11565b9050919050565b600060208201905081810360008301526141ae81613e34565b9050919050565b600060208201905081810360008301526141ce81613e57565b9050919050565b600060208201905081810360008301526141ee81613e7a565b9050919050565b6000602082019050818103600083015261420e81613e9d565b9050919050565b6000602082019050818103600083015261422e81613ec0565b9050919050565b6000602082019050818103600083015261424e81613ee3565b9050919050565b6000602082019050818103600083015261426e81613f06565b9050919050565b6000602082019050818103600083015261428e81613f29565b9050919050565b60006020820190506142aa6000830184613f4c565b92915050565b600060a0820190506142c56000830188613f4c565b6142d26020830187613cb1565b81810360408301526142e48186613c44565b90506142f36060830185613c35565b6143006080830184613f4c565b9695505050505050565b600060608201905061431f6000830186613f4c565b61432c6020830185613f4c565b6143396040830184613f4c565b949350505050565b60006020820190506143566000830184613f5b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006143bc82614516565b91506143c783614516565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143fc576143fb6145bb565b5b828201905092915050565b600061441282614516565b915061441d83614516565b92508261442d5761442c6145ea565b5b828204905092915050565b600061444382614516565b915061444e83614516565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614487576144866145bb565b5b828202905092915050565b600061449d82614516565b91506144a883614516565b9250828210156144bb576144ba6145bb565b5b828203905092915050565b60006144d1826144f6565b9050919050565b60006144e3826144f6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061453882614516565b9050919050565b60005b8381101561455d578082015181840152602081019050614542565b8381111561456c576000848401525b50505050565b600061457d82614516565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156145b0576145af6145bb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f6d61782077616c6c65742070657263656e74616765206d75737420626520626560008201527f747765656e203220746f20313030000000000000000000000000000000000000602082015250565b7f6c6971756964697479206665652070657263656e74616765206d75737420626560008201527f206265747765656e203020746f20313030000000000000000000000000000000602082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203230000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20313000000000600082015250565b614adf816144c6565b8114614aea57600080fd5b50565b614af6816144d8565b8114614b0157600080fd5b50565b614b0d816144ea565b8114614b1857600080fd5b50565b614b2481614516565b8114614b2f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200e7813345a5a507252fb0349c056e43ada3a9423587835f1104a13af79c69c3564736f6c63430008050033000000000000000000000000caf297cbbbdf84d8056279676795c194b7a590eb000000000000000000000000c7a9aa3f43d83a0846519846823fcbbc27dfca18

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80637a845ece11610102578063c118756911610095578063cf0848f711610064578063cf0848f714610697578063db92dbb6146106c0578063dd62ed3e146106eb578063de30aad114610728576101ee565b8063c118756914610617578063c3c8cd8014610640578063c4081a4c14610657578063c9567bf914610680576101ee565b806395d89b41116100d157806395d89b411461055d5780639a7a23d614610588578063a9059cbb146105b1578063b515566a146105ee576101ee565b80637a845ece146104b75780638b4cee08146104e05780638da5cb5b146105095780638ee88c5314610534576101ee565b8063313ce5671161017a5780635d098b38116101495780635d098b38146104235780636fc3eaec1461044c57806370a0823114610463578063715018a6146104a0576101ee565b8063313ce567146103695780633bbac57914610394578063437823ec146103d15780634b740b16146103fa576101ee565b806318160ddd116101b657806318160ddd146102ad57806323b872dd146102d8578063273123b71461031557806327f3a72a1461033e576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630cc835a31461025b57806312dfbd3314610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610751565b6040516102159190614053565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613aa7565b61078e565b6040516102529190614038565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613b8e565b6107ac565b005b34801561029057600080fd5b506102ab60048036038101906102a69190613b8e565b61085b565b005b3480156102b957600080fd5b506102c26108c6565b6040516102cf9190614295565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613a14565b6108d7565b60405161030c9190614038565b60405180910390f35b34801561032157600080fd5b5061033c6004803603810190610337919061394d565b6109b0565b005b34801561034a57600080fd5b50610353610aa0565b6040516103609190614295565b60405180910390f35b34801561037557600080fd5b5061037e610ab0565b60405161038b9190614341565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061394d565b610ab9565b6040516103c89190614038565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906139a7565b610b0f565b005b34801561040657600080fd5b50610421600480360381019061041c9190613b34565b610bcb565b005b34801561042f57600080fd5b5061044a600480360381019061044591906139a7565b610c49565b005b34801561045857600080fd5b50610461610dc0565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061394d565b610e32565b6040516104979190614295565b60405180910390f35b3480156104ac57600080fd5b506104b5610e83565b005b3480156104c357600080fd5b506104de60048036038101906104d99190613b8e565b610fd6565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613b8e565b611092565b005b34801561051557600080fd5b5061051e611141565b60405161052b9190613f6a565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613b8e565b61116a565b005b34801561056957600080fd5b5061057261122a565b60405161057f9190614053565b60405180910390f35b34801561059457600080fd5b506105af60048036038101906105aa9190613a67565b611267565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190613aa7565b611367565b6040516105e59190614038565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190613ae7565b611385565b005b34801561062357600080fd5b5061063e60048036038101906106399190613b34565b6115bf565b005b34801561064c57600080fd5b5061065561163d565b005b34801561066357600080fd5b5061067e60048036038101906106799190613b8e565b6116b7565b005b34801561068c57600080fd5b50610695611766565b005b3480156106a357600080fd5b506106be60048036038101906106b991906139a7565b611cfe565b005b3480156106cc57600080fd5b506106d5611dba565b6040516106e29190614295565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d91906139d4565b611dec565b60405161071f9190614295565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613b34565b611e73565b005b60606040518060400160405280600681526020017f5a6865746f6e0000000000000000000000000000000000000000000000000000815250905090565b60006107a261079b611ef0565b8484611ef8565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600a811115610851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084890614275565b60405180910390fd5b80600e8190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089c611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146108bc57600080fd5b8060098190555050565b6000683635c9adc5dea00000905090565b60006108e48484846120c3565b6109a5846108f0611ef0565b6109a085604051806060016040528060288152602001614b3360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610956611ef0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127779092919063ffffffff16565b611ef8565b600190509392505050565b6109b8611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c906141b5565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610aab30610e32565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b50611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610b7057600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0c611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610c2c57600080fd5b80601660156101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c8a611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610caa57600080fd5b600060056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e01611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614610e2157600080fd5b6000479050610e2f816127db565b50565b6000610e7c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d6565b9050919050565b610e8b611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906141b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611017611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461103757600080fd5b60028110158015611049575060648111155b611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90614135565b60405180910390fd5b80600d8190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d3611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146110f357600080fd5b6014811115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e90614175565b60405180910390fd5b80600f8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111ab611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146111cb57600080fd5b6000600c54101580156111e157506064600c5411155b611220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121790614155565b60405180910390fd5b80600c8190555050565b60606040518060400160405280600681526020017f5a4845544f4e0000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112a8611ef0565b73ffffffffffffffffffffffffffffffffffffffff16146112c857600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611359576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611350906140f5565b60405180910390fd5b6113638282612944565b5050565b600061137b611374611ef0565b84846120c3565b6001905092915050565b61138d611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906141b5565b60405180910390fd5b60005b828290508110156115ba57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061147457611473614619565b5b9050602002016020810190611489919061394d565b73ffffffffffffffffffffffffffffffffffffffff16141580156115225750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106114f4576114f3614619565b5b9050602002016020810190611509919061394d565b73ffffffffffffffffffffffffffffffffffffffff1614155b156115a7576001600660008585858181106115405761153f614619565b5b9050602002016020810190611555919061394d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806115b290614572565b91505061141d565b505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611600611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461162057600080fd5b80601660176101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661167e611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461169e57600080fd5b60006116a930610e32565b90506116b48161299f565b50565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116f8611ef0565b73ffffffffffffffffffffffffffffffffffffffff161461171857600080fd5b600581111561175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390614115565b60405180910390fd5b80600a8190555050565b61176e611ef0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f2906141b5565b60405180910390fd5b601660149054906101000a900460ff161561184b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184290614235565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118db30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611ef8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561192157600080fd5b505afa158015611935573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611959919061397a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119bb57600080fd5b505afa1580156119cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f3919061397a565b6040518363ffffffff1660e01b8152600401611a10929190613f85565b602060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a62919061397a565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611aeb30610e32565b600080611af6611141565b426040518863ffffffff1660e01b8152600401611b1896959493929190613fd7565b6060604051808303818588803b158015611b3157600080fd5b505af1158015611b45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b6a9190613bbb565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611c0c929190613fae565b602060405180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190613b61565b506001601660146101000a81548160ff02191690831515021790555042601281905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d3f611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611de7601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e32565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eb4611ef0565b73ffffffffffffffffffffffffffffffffffffffff1614611ed457600080fd5b806016806101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90614215565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf906140b5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120b69190614295565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a906141f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219a90614075565b60405180910390fd5b600081116121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dd906141d5565b60405180910390fd5b6121ee611141565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561225c575061222c611141565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125d657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123055750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61230e57600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123b95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561240f5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124ef57601660149054906101000a900460ff16612463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245a90614255565b60405180910390fd5b6101a460125461247391906143b1565b42111561248857600e54600b81905550612491565b605a600b819055505b600061249c83610e32565b90506124cf60646124c1600d54683635c9adc5dea00000612c2790919063ffffffff16565b612ca290919063ffffffff16565b6124e28284612cec90919063ffffffff16565b11156124ed57600080fd5b505b60006124fa30610e32565b9050601660189054906101000a900460ff161580156125675750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561257f5750601660149054906101000a900460ff165b156125d457600f54600b819055506009548111156125d35760168054906101000a900460ff166125af5760095490505b6000600c5411156125c8576125c381612d4a565b6125d2565b6125d181612ebc565b5b5b5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061267d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126945750601660159054906101000a900460ff165b1561269e57600090505b601660179054906101000a900460ff161580156127055750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561275b5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561276557600090505b61277184848484612f17565b50505050565b60008383111582906127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69190614053565b60405180910390fd5b50600083856127ce9190614492565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61282b600284612ca290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612856573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128a7600284612ca290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128d2573d6000803e3d6000fd5b5050565b600060075482111561291d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291490614095565b60405180910390fd5b6000612927612f44565b905061293c8184612ca290919063ffffffff16565b915050919050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601660186101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156129d7576129d6614648565b5b604051908082528060200260200182016040528015612a055781602001602082028036833780820191505090505b5090503081600081518110612a1d57612a1c614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612abf57600080fd5b505afa158015612ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af7919061397a565b81600181518110612b0b57612b0a614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b7230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ef8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bd69594939291906142b0565b600060405180830381600087803b158015612bf057600080fd5b505af1158015612c04573d6000803e3d6000fd5b50505050506000601660186101000a81548160ff02191690831515021790555050565b600080831415612c3a5760009050612c9c565b60008284612c489190614438565b9050828482612c579190614407565b14612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e90614195565b60405180910390fd5b809150505b92915050565b6000612ce483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6f565b905092915050565b6000808284612cfb91906143b1565b905083811015612d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d37906140d5565b60405180910390fd5b8091505092915050565b6001601660186101000a81548160ff0219169083151502179055506000600c546064612d769190614492565b90506000612da26064612d94600c5486612c2790919063ffffffff16565b612ca290919063ffffffff16565b90506000612dba600283612ca290919063ffffffff16565b90506000612dd18286612fd290919063ffffffff16565b90506000479050612de18261301c565b6000612df68247612fd290919063ffffffff16565b90506000612e206064612e128985612c2790919063ffffffff16565b612ca290919063ffffffff16565b9050612e2b816127db565b60008183612e399190614492565b9050600086118015612e4b5750600081115b15612e9657612e5a868261326e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858289604051612e8d9392919061430a565b60405180910390a15b50505050505050506000601660186101000a81548160ff02191690831515021790555050565b6001601660186101000a81548160ff021916908315150217905550612ee08161301c565b60004790506000811115612ef857612ef7476127db565b5b506000601660186101000a81548160ff02191690831515021790555050565b80612f2557612f24613362565b5b612f308484846133a5565b80612f3e57612f3d613570565b5b50505050565b6000806000612f51613584565b91509150612f688183612ca290919063ffffffff16565b9250505090565b60008083118290612fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fad9190614053565b60405180910390fd5b5060008385612fc59190614407565b9050809150509392505050565b600061301483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612777565b905092915050565b6000600267ffffffffffffffff81111561303957613038614648565b5b6040519080825280602002602001820160405280156130675781602001602082028036833780820191505090505b509050308160008151811061307f5761307e614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561312157600080fd5b505afa158015613135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613159919061397a565b8160018151811061316d5761316c614619565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131d430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ef8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132389594939291906142b0565b600060405180830381600087803b15801561325257600080fd5b505af1158015613266573d6000803e3d6000fd5b505050505050565b61329b30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ef8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132e7611141565b426040518863ffffffff1660e01b815260040161330996959493929190613fd7565b6060604051808303818588803b15801561332257600080fd5b505af1158015613336573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061335b9190613bbb565b5050505050565b6000600a5414801561337657506000600b54145b15613380576133a3565b600a54601081905550600b546011819055506000600a819055506000600b819055505b565b6000806000806000806133b7876135e6565b95509550955095509550955061341586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134aa85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506134f68161364e565b613500848361370b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161355d9190614295565b60405180910390a3505050505050505050565b601054600a81905550601154600b81905550565b600080600060075490506000683635c9adc5dea0000090506135ba683635c9adc5dea00000600754612ca290919063ffffffff16565b8210156135d957600754683635c9adc5dea000009350935050506135e2565b81819350935050505b9091565b60008060008060008060008060006136038a600a54600b54613745565b9250925092506000613613612f44565b905060008060006136268e8787876137db565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613658612f44565b9050600061366f8284612c2790919063ffffffff16565b90506136c381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61372082600754612fd290919063ffffffff16565b60078190555061373b81600854612cec90919063ffffffff16565b6008819055505050565b6000806000806137716064613763888a612c2790919063ffffffff16565b612ca290919063ffffffff16565b9050600061379b606461378d888b612c2790919063ffffffff16565b612ca290919063ffffffff16565b905060006137c4826137b6858c612fd290919063ffffffff16565b612fd290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806137f48589612c2790919063ffffffff16565b9050600061380b8689612c2790919063ffffffff16565b905060006138228789612c2790919063ffffffff16565b9050600061384b8261383d8587612fd290919063ffffffff16565b612fd290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061387381614ad6565b92915050565b60008151905061388881614ad6565b92915050565b60008135905061389d81614aed565b92915050565b60008083601f8401126138b9576138b861467c565b5b8235905067ffffffffffffffff8111156138d6576138d5614677565b5b6020830191508360208202830111156138f2576138f1614681565b5b9250929050565b60008135905061390881614b04565b92915050565b60008151905061391d81614b04565b92915050565b60008135905061393281614b1b565b92915050565b60008151905061394781614b1b565b92915050565b6000602082840312156139635761396261468b565b5b600061397184828501613864565b91505092915050565b6000602082840312156139905761398f61468b565b5b600061399e84828501613879565b91505092915050565b6000602082840312156139bd576139bc61468b565b5b60006139cb8482850161388e565b91505092915050565b600080604083850312156139eb576139ea61468b565b5b60006139f985828601613864565b9250506020613a0a85828601613864565b9150509250929050565b600080600060608486031215613a2d57613a2c61468b565b5b6000613a3b86828701613864565b9350506020613a4c86828701613864565b9250506040613a5d86828701613923565b9150509250925092565b60008060408385031215613a7e57613a7d61468b565b5b6000613a8c85828601613864565b9250506020613a9d858286016138f9565b9150509250929050565b60008060408385031215613abe57613abd61468b565b5b6000613acc85828601613864565b9250506020613add85828601613923565b9150509250929050565b60008060208385031215613afe57613afd61468b565b5b600083013567ffffffffffffffff811115613b1c57613b1b614686565b5b613b28858286016138a3565b92509250509250929050565b600060208284031215613b4a57613b4961468b565b5b6000613b58848285016138f9565b91505092915050565b600060208284031215613b7757613b7661468b565b5b6000613b858482850161390e565b91505092915050565b600060208284031215613ba457613ba361468b565b5b6000613bb284828501613923565b91505092915050565b600080600060608486031215613bd457613bd361468b565b5b6000613be286828701613938565b9350506020613bf386828701613938565b9250506040613c0486828701613938565b9150509250925092565b6000613c1a8383613c26565b60208301905092915050565b613c2f816144c6565b82525050565b613c3e816144c6565b82525050565b6000613c4f8261436c565b613c59818561438f565b9350613c648361435c565b8060005b83811015613c95578151613c7c8882613c0e565b9750613c8783614382565b925050600181019050613c68565b5085935050505092915050565b613cab816144ea565b82525050565b613cba8161452d565b82525050565b6000613ccb82614377565b613cd581856143a0565b9350613ce581856020860161453f565b613cee81614690565b840191505092915050565b6000613d066023836143a0565b9150613d11826146a1565b604082019050919050565b6000613d29602a836143a0565b9150613d34826146f0565b604082019050919050565b6000613d4c6022836143a0565b9150613d578261473f565b604082019050919050565b6000613d6f601b836143a0565b9150613d7a8261478e565b602082019050919050565b6000613d926039836143a0565b9150613d9d826147b7565b604082019050919050565b6000613db56017836143a0565b9150613dc082614806565b602082019050919050565b6000613dd8602e836143a0565b9150613de38261482f565b604082019050919050565b6000613dfb6031836143a0565b9150613e068261487e565b604082019050919050565b6000613e1e601d836143a0565b9150613e29826148cd565b602082019050919050565b6000613e416021836143a0565b9150613e4c826148f6565b604082019050919050565b6000613e646020836143a0565b9150613e6f82614945565b602082019050919050565b6000613e876029836143a0565b9150613e928261496e565b604082019050919050565b6000613eaa6025836143a0565b9150613eb5826149bd565b604082019050919050565b6000613ecd6024836143a0565b9150613ed882614a0c565b604082019050919050565b6000613ef06017836143a0565b9150613efb82614a5b565b602082019050919050565b6000613f136018836143a0565b9150613f1e82614a84565b602082019050919050565b6000613f36601c836143a0565b9150613f4182614aad565b602082019050919050565b613f5581614516565b82525050565b613f6481614520565b82525050565b6000602082019050613f7f6000830184613c35565b92915050565b6000604082019050613f9a6000830185613c35565b613fa76020830184613c35565b9392505050565b6000604082019050613fc36000830185613c35565b613fd06020830184613f4c565b9392505050565b600060c082019050613fec6000830189613c35565b613ff96020830188613f4c565b6140066040830187613cb1565b6140136060830186613cb1565b6140206080830185613c35565b61402d60a0830184613f4c565b979650505050505050565b600060208201905061404d6000830184613ca2565b92915050565b6000602082019050818103600083015261406d8184613cc0565b905092915050565b6000602082019050818103600083015261408e81613cf9565b9050919050565b600060208201905081810360008301526140ae81613d1c565b9050919050565b600060208201905081810360008301526140ce81613d3f565b9050919050565b600060208201905081810360008301526140ee81613d62565b9050919050565b6000602082019050818103600083015261410e81613d85565b9050919050565b6000602082019050818103600083015261412e81613da8565b9050919050565b6000602082019050818103600083015261414e81613dcb565b9050919050565b6000602082019050818103600083015261416e81613dee565b9050919050565b6000602082019050818103600083015261418e81613e11565b9050919050565b600060208201905081810360008301526141ae81613e34565b9050919050565b600060208201905081810360008301526141ce81613e57565b9050919050565b600060208201905081810360008301526141ee81613e7a565b9050919050565b6000602082019050818103600083015261420e81613e9d565b9050919050565b6000602082019050818103600083015261422e81613ec0565b9050919050565b6000602082019050818103600083015261424e81613ee3565b9050919050565b6000602082019050818103600083015261426e81613f06565b9050919050565b6000602082019050818103600083015261428e81613f29565b9050919050565b60006020820190506142aa6000830184613f4c565b92915050565b600060a0820190506142c56000830188613f4c565b6142d26020830187613cb1565b81810360408301526142e48186613c44565b90506142f36060830185613c35565b6143006080830184613f4c565b9695505050505050565b600060608201905061431f6000830186613f4c565b61432c6020830185613f4c565b6143396040830184613f4c565b949350505050565b60006020820190506143566000830184613f5b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006143bc82614516565b91506143c783614516565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143fc576143fb6145bb565b5b828201905092915050565b600061441282614516565b915061441d83614516565b92508261442d5761442c6145ea565b5b828204905092915050565b600061444382614516565b915061444e83614516565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614487576144866145bb565b5b828202905092915050565b600061449d82614516565b91506144a883614516565b9250828210156144bb576144ba6145bb565b5b828203905092915050565b60006144d1826144f6565b9050919050565b60006144e3826144f6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061453882614516565b9050919050565b60005b8381101561455d578082015181840152602081019050614542565b8381111561456c576000848401525b50505050565b600061457d82614516565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156145b0576145af6145bb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f6d61782077616c6c65742070657263656e74616765206d75737420626520626560008201527f747765656e203220746f20313030000000000000000000000000000000000000602082015250565b7f6c6971756964697479206665652070657263656e74616765206d75737420626560008201527f206265747765656e203020746f20313030000000000000000000000000000000602082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203230000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20313000000000600082015250565b614adf816144c6565b8114614aea57600080fd5b50565b614af6816144d8565b8114614b0157600080fd5b50565b614b0d816144ea565b8114614b1857600080fd5b50565b614b2481614516565b8114614b2f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200e7813345a5a507252fb0349c056e43ada3a9423587835f1104a13af79c69c3564736f6c63430008050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000caf297cbbbdf84d8056279676795c194b7a590eb000000000000000000000000c7a9aa3f43d83a0846519846823fcbbc27dfca18

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0xcAF297cbBBDf84D8056279676795c194b7a590EB
Arg [1] : marketingWalletAddress (address): 0xC7A9Aa3f43d83a0846519846823FCbbC27dFCa18

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000caf297cbbbdf84d8056279676795c194b7a590eb
Arg [1] : 000000000000000000000000c7a9aa3f43d83a0846519846823fcbbc27dfca18


Deployed Bytecode Sourcemap

3858:17265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6195:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7047:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18141:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19017:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6472:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7216:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19875:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20484:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19976:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17526:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17847:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17204:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20286:190;;;;;;;;;;;;;:::i;:::-;;6575:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:148;;;;;;;;;;;;;:::i;:::-;;19185:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18330:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2723:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18716:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6286:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20701:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6721:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19591:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17982:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20077:197;;;;;;;;;;;;;:::i;:::-;;18533:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16385:807;;;;;;;;;;;;;:::i;:::-;;17687:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20592:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6896:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19456:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6195:83;6232:13;6265:5;;;;;;;;;;;;;;;;;6258:12;;6195:83;:::o;7047:161::-;7122:4;7139:39;7148:12;:10;:12::i;:::-;7162:7;7171:6;7139:8;:39::i;:::-;7196:4;7189:11;;7047:161;;;;:::o;18141:181::-;18217:11;;;;;;;;;;;18201:27;;:12;:10;:12::i;:::-;:27;;;18193:36;;;;;;18255:2;18248:3;:9;;18240:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18311:3;18301:7;:13;;;;18141:181;:::o;19017:160::-;19112:11;;;;;;;;;;;19096:27;;:12;:10;:12::i;:::-;:27;;;19088:36;;;;;;19161:8;19135:23;:34;;;;19017:160;:::o;6472:95::-;6525:7;4309:12;6545:14;;6472:95;:::o;7216:313::-;7314:4;7331:36;7341:6;7349:9;7360:6;7331:9;:36::i;:::-;7378:121;7387:6;7395:12;:10;:12::i;:::-;7409:89;7447:6;7409:89;;;;;;;;;;;;;;;;;:11;:19;7421:6;7409:19;;;;;;;;;;;;;;;:33;7429:12;:10;:12::i;:::-;7409:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7378:8;:121::i;:::-;7517:4;7510:11;;7216:313;;;;;:::o;19875:89::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19951:5:::1;19935;:13;19941:6;19935:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;19875:89:::0;:::o;20484:100::-;20528:4;20552:24;20570:4;20552:9;:24::i;:::-;20545:31;;20484:100;:::o;6381:83::-;6422:5;4634:1;6440:16;;6381:83;:::o;19976:89::-;20024:4;20048:5;:9;20054:2;20048:9;;;;;;;;;;;;;;;;;;;;;;;;;20041:16;;19976:89;;;:::o;17526:149::-;17615:11;;;;;;;;;;;17599:27;;:12;:10;:12::i;:::-;:27;;;17591:36;;;;;;17663:4;17638:18;:22;17657:2;17638:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;17526:149;:::o;17847:127::-;17925:11;;;;;;;;;;;17909:27;;:12;:10;:12::i;:::-;:27;;;17901:36;;;;;;17961:5;17948:10;;:18;;;;;;;;;;;;;;;;;;17847:127;:::o;17204:314::-;17317:11;;;;;;;;;;;17301:27;;:12;:10;:12::i;:::-;:27;;;17293:36;;;;;;17386:5;17340:18;:43;17359:23;;;;;;;;;;;17340:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;17428:22;17402:23;;:48;;;;;;;;;;;;;;;;;;17506:4;17461:18;:42;17480:22;17461:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;17204:314;:::o;20286:190::-;20352:11;;;;;;;;;;;20336:27;;:12;:10;:12::i;:::-;:27;;;20328:36;;;;;;20375:26;20404:21;20375:50;;20436:32;20449:18;20436:12;:32::i;:::-;20317:159;20286:190::o;6575:138::-;6641:7;6668:37;6688:7;:16;6696:7;6688:16;;;;;;;;;;;;;;;;6668:19;:37::i;:::-;6661:44;;6575:138;;;:::o;2937:148::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3044:1:::1;3007:40;;3028:6;::::0;::::1;;;;;;;;3007:40;;;;;;;;;;;;3075:1;3058:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2937:148::o:0;19185:263::-;19278:11;;;;;;;;;;;19262:27;;:12;:10;:12::i;:::-;:27;;;19254:36;;;;;;19323:1;19309:10;:15;;:36;;;;;19342:3;19328:10;:17;;19309:36;19301:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;19430:10;19407:20;:33;;;;19185:263;:::o;18330:187::-;18408:11;;;;;;;;;;;18392:27;;:12;:10;:12::i;:::-;:27;;;18384:36;;;;;;18447:2;18439:4;:10;;18431:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;18505:4;18494:8;:15;;;;18330:187;:::o;2723:79::-;2761:7;2788:6;;;;;;;;;;;2781:13;;2723:79;:::o;18716:293::-;18811:11;;;;;;;;;;;18795:27;;:12;:10;:12::i;:::-;:27;;;18787:36;;;;;;18863:1;18836:23;;:28;;:62;;;;;18895:3;18868:23;;:30;;18836:62;18828:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;18989:12;18963:23;:38;;;;18716:293;:::o;6286:87::-;6325:13;6358:7;;;;;;;;;;;;;;;;;6351:14;;6286:87;:::o;20701:281::-;20808:11;;;;;;;;;;;20792:27;;:12;:10;:12::i;:::-;:27;;;20784:36;;;;;;20847:13;;;;;;;;;;;20839:21;;:4;:21;;;;20831:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;20933:41;20962:4;20968:5;20933:28;:41::i;:::-;20701:281;;:::o;6721:167::-;6799:4;6816:42;6826:12;:10;:12::i;:::-;6840:9;6851:6;6816:9;:42::i;:::-;6876:4;6869:11;;6721:167;;;;:::o;19591:272::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19667:6:::1;19662:194;19683:5;;:12;;19679:1;:16;19662:194;;;19733:13;;;;;;;;;;;19721:25;;:5;;19727:1;19721:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:25;;;;:65;;;;;19770:15;;;;;;;;;;;19750:36;;:5;;19756:1;19750:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:36;;;;19721:65;19717:128;;;19825:4;19807:5;:15;19813:5;;19819:1;19813:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19807:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;19717:128;19697:3;;;;;:::i;:::-;;;;19662:194;;;;19591:272:::0;;:::o;17982:147::-;18070:11;;;;;;;;;;;18054:27;;:12;:10;:12::i;:::-;:27;;;18046:36;;;;;;18116:5;18093:20;;:28;;;;;;;;;;;;;;;;;;17982:147;:::o;20077:197::-;20143:11;;;;;;;;;;;20127:27;;:12;:10;:12::i;:::-;:27;;;20119:36;;;;;;20166:23;20192:24;20210:4;20192:9;:24::i;:::-;20166:50;;20227:39;20250:15;20227:22;:39::i;:::-;20108:166;20077:197::o;18533:175::-;18609:11;;;;;;;;;;;18593:27;;:12;:10;:12::i;:::-;:27;;;18585:36;;;;;;18647:1;18640:3;:8;;18632:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18697:3;18687:7;:13;;;;18533:175;:::o;16385:807::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16449:11:::1;;;;;;;;;;;16448:12;16440:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16498:35;16555:42;16498:100;;16627:16;16609:15;;:34;;;;;;;;;;;;;;;;;;16654:58;16671:4;16686:15;;;;;;;;;;;4309:12;16654:8;:58::i;:::-;16757:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16739:56;;;16804:4;16811:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16739:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16723:13;;:112;;;;;;;;;;;;;;;;;;16846:15;;;;;;;;;;;:31;;;16885:21;16916:4;16922:24;16940:4;16922:9;:24::i;:::-;16947:1;16949::::0;16951:7:::1;:5;:7::i;:::-;16959:15;16846:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16993:13;;;;;;;;;;;16986:29;;;17024:15;;;;;;;;;;;17042:14;16986:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17082:4;17068:11;;:18;;;;;;;;;;;;;;;;;;17111:15;17097:11;:29;;;;17180:4;17137:25;:40;17163:13;;;;;;;;;;;17137:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;16429:763;16385:807::o:0;17687:148::-;17774:11;;;;;;;;;;;17758:27;;:12;:10;:12::i;:::-;:27;;;17750:36;;;;;;17822:5;17797:18;:22;17816:2;17797:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;17687:148;:::o;20592:101::-;20637:4;20661:24;20671:13;;;;;;;;;;;20661:9;:24::i;:::-;20654:31;;20592:101;:::o;6896:143::-;6977:7;7004:11;:18;7016:5;7004:18;;;;;;;;;;;;;;;:27;7023:7;7004:27;;;;;;;;;;;;;;;;6997:34;;6896:143;;;;:::o;19456:123::-;19532:11;;;;;;;;;;;19516:27;;:12;:10;:12::i;:::-;:27;;;19508:36;;;;;;19566:5;19555:8;;:16;;;;;;;;;;;;;;;;;;19456:123;:::o;132:98::-;185:7;212:10;205:17;;132:98;:::o;8144:335::-;8254:1;8237:19;;:5;:19;;;;8229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8335:1;8316:21;;:7;:21;;;;8308:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8417:6;8387:11;:18;8399:5;8387:18;;;;;;;;;;;;;;;:27;8406:7;8387:27;;;;;;;;;;;;;;;:36;;;;8455:7;8439:32;;8448:5;8439:32;;;8464:6;8439:32;;;;;;:::i;:::-;;;;;;;;8144:335;;;:::o;8491:2047::-;8595:1;8579:18;;:4;:18;;;;8571:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8672:1;8658:16;;:2;:16;;;;8650:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8742:1;8733:6;:10;8725:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8813:7;:5;:7::i;:::-;8805:15;;:4;:15;;;;:32;;;;;8830:7;:5;:7::i;:::-;8824:13;;:2;:13;;;;8805:32;8802:1367;;;8877:5;:11;8883:4;8877:11;;;;;;;;;;;;;;;;;;;;;;;;;8876:12;:26;;;;;8893:5;:9;8899:2;8893:9;;;;;;;;;;;;;;;;;;;;;;;;;8892:10;8876:26;8868:35;;;;;;8943:13;;;;;;;;;;;8935:21;;:4;:21;;;:55;;;;;8974:15;;;;;;;;;;;8960:30;;:2;:30;;;;8935:55;:82;;;;;8995:18;:22;9014:2;8995:22;;;;;;;;;;;;;;;;;;;;;;;;;8994:23;8935:82;8932:540;;;9046:11;;;;;;;;;;;9038:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9143:9;9128:11;;:25;;;;:::i;:::-;9110:15;:43;9107:171;;;9189:7;;9178:8;:18;;;;9107:171;;;9256:2;9245:8;:13;;;;9107:171;9314:18;9335:22;9353:2;9335:9;:22::i;:::-;9314:43;;9413:42;9451:3;9413:33;9425:20;;4309:12;9413:11;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;9384:25;9395:13;9384:6;:10;;:25;;;;:::i;:::-;:71;;9376:80;;;;;;9019:453;8932:540;9486:28;9517:24;9535:4;9517:9;:24::i;:::-;9486:55;;9562:6;;;;;;;;;;;9561:7;:32;;;;;9580:13;;;;;;;;;;;9572:21;;:4;:21;;;;9561:32;:47;;;;;9597:11;;;;;;;;;;;9561:47;9558:600;;;9642:8;;9631;:19;;;;9697:23;;9674:20;:46;9671:472;;;9749:8;;;;;;;;;;9745:111;;9809:23;;9786:46;;9745:111;9910:1;9884:23;;:27;9880:217;;;9940:36;9955:20;9940:14;:36::i;:::-;9880:217;;;10033:40;10052:20;10033:18;:40::i;:::-;9880:217;9671:472;9558:600;8839:1330;8802:1367;10179:12;10194:4;10179:19;;10214:18;:24;10233:4;10214:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10242:18;:22;10261:2;10242:22;;;;;;;;;;;;;;;;;;;;;;;;;10214:50;:64;;;;10268:10;;;;;;;;;;;10214:64;10211:111;;;10305:5;10295:15;;10211:111;10338:20;;;;;;;;;;;10337:21;:57;;;;;10363:25;:31;10389:4;10363:31;;;;;;;;;;;;;;;;;;;;;;;;;10362:32;10337:57;:91;;;;;10399:25;:29;10425:2;10399:29;;;;;;;;;;;;;;;;;;;;;;;;;10398:30;10337:91;10334:138;;;10455:5;10445:15;;10334:138;10492:38;10507:4;10512:2;10515:6;10522:7;10492:14;:38::i;:::-;8560:1978;8491:2047;;;:::o;1269:190::-;1355:7;1388:1;1383;:6;;1391:12;1375:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1415:9;1431:1;1427;:5;;;;:::i;:::-;1415:17;;1450:1;1443:8;;;1269:190;;;;;:::o;13342:158::-;13399:11;;;;;;;;;;;:20;;:35;13420:13;13431:1;13420:6;:10;;:13;;;;:::i;:::-;13399:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13445:23;;;;;;;;;;;:32;;:47;13478:13;13489:1;13478:6;:10;;:13;;;;:::i;:::-;13445:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13342:158;:::o;7537:254::-;7604:7;7643;;7632;:18;;7624:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7708:19;7731:10;:8;:10::i;:::-;7708:33;;7759:24;7771:11;7759:7;:11;;:24;;;;:::i;:::-;7752:31;;;7537:254;;;:::o;20990:130::-;21107:5;21073:25;:31;21099:4;21073:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20990:130;;:::o;12837:489::-;5638:4;5629:6;;:13;;;;;;;;;;;;;;;;;;12921:21:::1;12959:1;12945:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12921:40;;12990:4;12972;12977:1;12972:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13016:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13006:4;13011:1;13006:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13049:62;13066:4;13081:15;;;;;;;;;;;13099:11;13049:8;:62::i;:::-;13122:15;;;;;;;;;;;:66;;;13203:11;13229:1;13245:4;13272;13292:15;13122:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12910:416;5674:5:::0;5665:6;;:14;;;;;;;;;;;;;;;;;;12837:489;:::o;1467:245::-;1525:7;1553:1;1548;:6;1545:46;;;1578:1;1571:8;;;;1545:46;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1467:245;;;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;938:179::-;996:7;1016:9;1032:1;1028;:5;;;;:::i;:::-;1016:17;;1057:1;1052;:6;;1044:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;938:179;;;;:::o;11067:968::-;5638:4;5629:6;;:13;;;;;;;;;;;;;;;;;;11152:25:::1;11186:23;;11180:3;:29;;;;:::i;:::-;11152:57;;11220:23;11246:58;11300:3;11246:49;11271:23;;11246:20;:24;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;11220:84;;11315:15;11333:22;11353:1;11333:15;:19;;:22;;;;:::i;:::-;11315:40;;11368:26;11397:33;11422:7;11397:20;:24;;:33;;;;:::i;:::-;11368:62;;11441:25;11469:21;11441:49;;11503:36;11520:18;11503:16;:36::i;:::-;11552:18;11573:44;11599:17;11573:21;:25;;:44;;;;:::i;:::-;11552:65;;11630:18;11651:42;11689:3;11651:33;11666:17;11651:10;:14;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;11630:63;;11704:24;11717:10;11704:12;:24::i;:::-;11741:23;11780:10;11767;:23;;;;:::i;:::-;11741:49;;11817:1;11807:7;:11;:34;;;;;11840:1;11822:15;:19;11807:34;11803:225;;;11888:38;11901:7;11910:15;11888:12;:38::i;:::-;11948:68;11963:18;11983:15;12000;11948:68;;;;;;;;:::i;:::-;;;;;;;;11803:225;11141:894;;;;;;;;5674:5:::0;5665:6;;:14;;;;;;;;;;;;;;;;;;11067:968;:::o;12043:307::-;5638:4;5629:6;;:13;;;;;;;;;;;;;;;;;;12142:38:::1;12159:20;12142:16;:38::i;:::-;12193:26;12222:21;12193:50;;12278:1;12257:18;:22;12254:89;;;12296:35;12309:21;12296:12;:35::i;:::-;12254:89;12121:229;5674:5:::0;5665:6;;:14;;;;;;;;;;;;;;;;;;12043:307;:::o;13512:263::-;13624:7;13620:40;;13646:14;:12;:14::i;:::-;13620:40;13671:44;13689:6;13697:9;13708:6;13671:17;:44::i;:::-;13730:7;13726:41;;13752:15;:13;:15::i;:::-;13726:41;13512:263;;;;:::o;15116:163::-;15157:7;15178:15;15195;15214:19;:17;:19::i;:::-;15177:56;;;;15251:20;15263:7;15251;:11;;:20;;;;:::i;:::-;15244:27;;;;15116:163;:::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;1125:136::-;1183:7;1210:43;1214:1;1217;1210:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1203:50;;1125:136;;;;:::o;12358:471::-;12424:21;12462:1;12448:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12424:40;;12493:4;12475;12480:1;12475:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12519:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12509:4;12514:1;12509:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;12552:62;12569:4;12584:15;;;;;;;;;;;12602:11;12552:8;:62::i;:::-;12625:15;;;;;;;;;;;:66;;;12706:11;12732:1;12748:4;12775;12795:15;12625:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12413:416;12358:471;:::o;10546:513::-;10694:62;10711:4;10726:15;;;;;;;;;;;10744:11;10694:8;:62::i;:::-;10799:15;;;;;;;;;;;:31;;;10838:9;10871:4;10891:11;10917:1;10960;11003:7;:5;:7::i;:::-;11025:15;10799:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10546:513;;:::o;7799:210::-;7856:1;7845:7;;:12;:29;;;;;7873:1;7861:8;;:13;7845:29;7842:41;;;7876:7;;7842:41;7911:7;;7893:15;:25;;;;7948:8;;7929:16;:27;;;;7977:1;7967:7;:11;;;;8000:1;7989:8;:12;;;;7799:210;:::o;13783:490::-;13882:15;13899:23;13924:12;13938:23;13963:12;13977:13;13994:19;14005:7;13994:10;:19::i;:::-;13881:132;;;;;;;;;;;;14042:28;14062:7;14042;:15;14050:6;14042:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14024:7;:15;14032:6;14024:15;;;;;;;;;;;;;;;:46;;;;14102:39;14125:15;14102:7;:18;14110:9;14102:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14081:7;:18;14089:9;14081:18;;;;;;;;;;;;;;;:60;;;;14155:16;14165:5;14155:9;:16::i;:::-;14182:23;14194:4;14200;14182:11;:23::i;:::-;14238:9;14221:44;;14230:6;14221:44;;;14249:15;14221:44;;;;;;:::i;:::-;;;;;;;;13870:403;;;;;;13783:490;;;:::o;8021:115::-;8075:15;;8065:7;:25;;;;8112:16;;8101:8;:27;;;;8021:115::o;15287:255::-;15337:7;15346;15366:15;15384:7;;15366:25;;15402:15;4309:12;15402:25;;15451:20;4309:12;15451:7;;:11;;:20;;;;:::i;:::-;15441:7;:30;15438:60;;;15481:7;;4309:12;15473:25;;;;;;;;15438:60;15517:7;15526;15509:25;;;;;;15287:255;;;:::o;14281:468::-;14340:7;14349;14358;14367;14376;14385;14406:23;14431:12;14445:13;14462:39;14474:7;14483;;14492:8;;14462:11;:39::i;:::-;14405:96;;;;;;14512:19;14535:10;:8;:10::i;:::-;14512:33;;14557:15;14574:23;14599:12;14615:46;14627:7;14636:4;14642:5;14649:11;14615;:46::i;:::-;14556:105;;;;;;14680:7;14689:15;14706:4;14712:15;14729:4;14735:5;14672:69;;;;;;;;;;;;;;;;;;;14281:468;;;;;;;:::o;15967:214::-;16020:19;16043:10;:8;:10::i;:::-;16020:33;;16064:13;16080:22;16090:11;16080:5;:9;;:22;;;;:::i;:::-;16064:38;;16140:33;16167:5;16140:7;:22;16156:4;16140:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16115:7;:22;16131:4;16115:22;;;;;;;;;;;;;;;:58;;;;16009:172;;15967:214;:::o;16189:147::-;16267:17;16279:4;16267:7;;:11;;:17;;;;:::i;:::-;16257:7;:27;;;;16308:20;16323:4;16308:10;;:14;;:20;;;;:::i;:::-;16295:10;:33;;;;16189:147;;:::o;14757:351::-;14850:7;14859;14868;14888:12;14903:28;14927:3;14903:19;14915:6;14903:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14888:43;;14942:13;14958:29;14983:3;14958:20;14970:7;14958;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14942:45;;14998:23;15024:28;15046:5;15024:17;15036:4;15024:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14998:54;;15071:15;15088:4;15094:5;15063:37;;;;;;;;;14757:351;;;;;;;:::o;15550:409::-;15660:7;15669;15678;15698:15;15716:24;15728:11;15716:7;:11;;:24;;;;:::i;:::-;15698:42;;15751:12;15766:21;15775:11;15766:4;:8;;:21;;;;:::i;:::-;15751:36;;15798:13;15814:22;15824:11;15814:5;:9;;:22;;;;:::i;:::-;15798:38;;15847:23;15873:28;15895:5;15873:17;15885:4;15873:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15847:54;;15920:7;15929:15;15946:4;15912:39;;;;;;;;;;15550:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;479:568::-;552:8;562:6;612:3;605:4;597:6;593:17;589:27;579:2;;620:79;;:::i;:::-;579:2;733:6;720:20;710:30;;763:18;755:6;752:30;749:2;;;785:79;;:::i;:::-;749:2;899:4;891:6;887:17;875:29;;953:3;945:4;937:6;933:17;923:8;919:32;916:41;913:2;;;960:79;;:::i;:::-;913:2;569:478;;;;;:::o;1053:133::-;1096:5;1134:6;1121:20;1112:29;;1150:30;1174:5;1150:30;:::i;:::-;1102:84;;;;:::o;1192:137::-;1246:5;1277:6;1271:13;1262:22;;1293:30;1317:5;1293:30;:::i;:::-;1252:77;;;;:::o;1335:139::-;1381:5;1419:6;1406:20;1397:29;;1435:33;1462:5;1435:33;:::i;:::-;1387:87;;;;:::o;1480:143::-;1537:5;1568:6;1562:13;1553:22;;1584:33;1611:5;1584:33;:::i;:::-;1543:80;;;;:::o;1629:329::-;1688:6;1737:2;1725:9;1716:7;1712:23;1708:32;1705:2;;;1743:79;;:::i;:::-;1705:2;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1695:263;;;;:::o;1964:351::-;2034:6;2083:2;2071:9;2062:7;2058:23;2054:32;2051:2;;;2089:79;;:::i;:::-;2051:2;2209:1;2234:64;2290:7;2281:6;2270:9;2266:22;2234:64;:::i;:::-;2224:74;;2180:128;2041:274;;;;:::o;2321:345::-;2388:6;2437:2;2425:9;2416:7;2412:23;2408:32;2405:2;;;2443:79;;:::i;:::-;2405:2;2563:1;2588:61;2641:7;2632:6;2621:9;2617:22;2588:61;:::i;:::-;2578:71;;2534:125;2395:271;;;;:::o;2672:474::-;2740:6;2748;2797:2;2785:9;2776:7;2772:23;2768:32;2765:2;;;2803:79;;:::i;:::-;2765:2;2923:1;2948:53;2993:7;2984:6;2973:9;2969:22;2948:53;:::i;:::-;2938:63;;2894:117;3050:2;3076:53;3121:7;3112:6;3101:9;3097:22;3076:53;:::i;:::-;3066:63;;3021:118;2755:391;;;;;:::o;3152:619::-;3229:6;3237;3245;3294:2;3282:9;3273:7;3269:23;3265:32;3262:2;;;3300:79;;:::i;:::-;3262:2;3420:1;3445:53;3490:7;3481:6;3470:9;3466:22;3445:53;:::i;:::-;3435:63;;3391:117;3547:2;3573:53;3618:7;3609:6;3598:9;3594:22;3573:53;:::i;:::-;3563:63;;3518:118;3675:2;3701:53;3746:7;3737:6;3726:9;3722:22;3701:53;:::i;:::-;3691:63;;3646:118;3252:519;;;;;:::o;3777:468::-;3842:6;3850;3899:2;3887:9;3878:7;3874:23;3870:32;3867:2;;;3905:79;;:::i;:::-;3867:2;4025:1;4050:53;4095:7;4086:6;4075:9;4071:22;4050:53;:::i;:::-;4040:63;;3996:117;4152:2;4178:50;4220:7;4211:6;4200:9;4196:22;4178:50;:::i;:::-;4168:60;;4123:115;3857:388;;;;;:::o;4251:474::-;4319:6;4327;4376:2;4364:9;4355:7;4351:23;4347:32;4344:2;;;4382:79;;:::i;:::-;4344:2;4502:1;4527:53;4572:7;4563:6;4552:9;4548:22;4527:53;:::i;:::-;4517:63;;4473:117;4629:2;4655:53;4700:7;4691:6;4680:9;4676:22;4655:53;:::i;:::-;4645:63;;4600:118;4334:391;;;;;:::o;4731:559::-;4817:6;4825;4874:2;4862:9;4853:7;4849:23;4845:32;4842:2;;;4880:79;;:::i;:::-;4842:2;5028:1;5017:9;5013:17;5000:31;5058:18;5050:6;5047:30;5044:2;;;5080:79;;:::i;:::-;5044:2;5193:80;5265:7;5256:6;5245:9;5241:22;5193:80;:::i;:::-;5175:98;;;;4971:312;4832:458;;;;;:::o;5296:323::-;5352:6;5401:2;5389:9;5380:7;5376:23;5372:32;5369:2;;;5407:79;;:::i;:::-;5369:2;5527:1;5552:50;5594:7;5585:6;5574:9;5570:22;5552:50;:::i;:::-;5542:60;;5498:114;5359:260;;;;:::o;5625:345::-;5692:6;5741:2;5729:9;5720:7;5716:23;5712:32;5709:2;;;5747:79;;:::i;:::-;5709:2;5867:1;5892:61;5945:7;5936:6;5925:9;5921:22;5892:61;:::i;:::-;5882:71;;5838:125;5699:271;;;;:::o;5976:329::-;6035:6;6084:2;6072:9;6063:7;6059:23;6055:32;6052:2;;;6090:79;;:::i;:::-;6052:2;6210:1;6235:53;6280:7;6271:6;6260:9;6256:22;6235:53;:::i;:::-;6225:63;;6181:117;6042:263;;;;:::o;6311:663::-;6399:6;6407;6415;6464:2;6452:9;6443:7;6439:23;6435:32;6432:2;;;6470:79;;:::i;:::-;6432:2;6590:1;6615:64;6671:7;6662:6;6651:9;6647:22;6615:64;:::i;:::-;6605:74;;6561:128;6728:2;6754:64;6810:7;6801:6;6790:9;6786:22;6754:64;:::i;:::-;6744:74;;6699:129;6867:2;6893:64;6949:7;6940:6;6929:9;6925:22;6893:64;:::i;:::-;6883:74;;6838:129;6422:552;;;;;:::o;6980:179::-;7049:10;7070:46;7112:3;7104:6;7070:46;:::i;:::-;7148:4;7143:3;7139:14;7125:28;;7060:99;;;;:::o;7165:108::-;7242:24;7260:5;7242:24;:::i;:::-;7237:3;7230:37;7220:53;;:::o;7279:118::-;7366:24;7384:5;7366:24;:::i;:::-;7361:3;7354:37;7344:53;;:::o;7433:732::-;7552:3;7581:54;7629:5;7581:54;:::i;:::-;7651:86;7730:6;7725:3;7651:86;:::i;:::-;7644:93;;7761:56;7811:5;7761:56;:::i;:::-;7840:7;7871:1;7856:284;7881:6;7878:1;7875:13;7856:284;;;7957:6;7951:13;7984:63;8043:3;8028:13;7984:63;:::i;:::-;7977:70;;8070:60;8123:6;8070:60;:::i;:::-;8060:70;;7916:224;7903:1;7900;7896:9;7891:14;;7856:284;;;7860:14;8156:3;8149:10;;7557:608;;;;;;;:::o;8171:109::-;8252:21;8267:5;8252:21;:::i;:::-;8247:3;8240:34;8230:50;;:::o;8286:147::-;8381:45;8420:5;8381:45;:::i;:::-;8376:3;8369:58;8359:74;;:::o;8439:364::-;8527:3;8555:39;8588:5;8555:39;:::i;:::-;8610:71;8674:6;8669:3;8610:71;:::i;:::-;8603:78;;8690:52;8735:6;8730:3;8723:4;8716:5;8712:16;8690:52;:::i;:::-;8767:29;8789:6;8767:29;:::i;:::-;8762:3;8758:39;8751:46;;8531:272;;;;;:::o;8809:366::-;8951:3;8972:67;9036:2;9031:3;8972:67;:::i;:::-;8965:74;;9048:93;9137:3;9048:93;:::i;:::-;9166:2;9161:3;9157:12;9150:19;;8955:220;;;:::o;9181:366::-;9323:3;9344:67;9408:2;9403:3;9344:67;:::i;:::-;9337:74;;9420:93;9509:3;9420:93;:::i;:::-;9538:2;9533:3;9529:12;9522:19;;9327:220;;;:::o;9553:366::-;9695:3;9716:67;9780:2;9775:3;9716:67;:::i;:::-;9709:74;;9792:93;9881:3;9792:93;:::i;:::-;9910:2;9905:3;9901:12;9894:19;;9699:220;;;:::o;9925:366::-;10067:3;10088:67;10152:2;10147:3;10088:67;:::i;:::-;10081:74;;10164:93;10253:3;10164:93;:::i;:::-;10282:2;10277:3;10273:12;10266:19;;10071:220;;;:::o;10297:366::-;10439:3;10460:67;10524:2;10519:3;10460:67;:::i;:::-;10453:74;;10536:93;10625:3;10536:93;:::i;:::-;10654:2;10649:3;10645:12;10638:19;;10443:220;;;:::o;10669:366::-;10811:3;10832:67;10896:2;10891:3;10832:67;:::i;:::-;10825:74;;10908:93;10997:3;10908:93;:::i;:::-;11026:2;11021:3;11017:12;11010:19;;10815:220;;;:::o;11041:366::-;11183:3;11204:67;11268:2;11263:3;11204:67;:::i;:::-;11197:74;;11280:93;11369:3;11280:93;:::i;:::-;11398:2;11393:3;11389:12;11382:19;;11187:220;;;:::o;11413:366::-;11555:3;11576:67;11640:2;11635:3;11576:67;:::i;:::-;11569:74;;11652:93;11741:3;11652:93;:::i;:::-;11770:2;11765:3;11761:12;11754:19;;11559:220;;;:::o;11785:366::-;11927:3;11948:67;12012:2;12007:3;11948:67;:::i;:::-;11941:74;;12024:93;12113:3;12024:93;:::i;:::-;12142:2;12137:3;12133:12;12126:19;;11931:220;;;:::o;12157:366::-;12299:3;12320:67;12384:2;12379:3;12320:67;:::i;:::-;12313:74;;12396:93;12485:3;12396:93;:::i;:::-;12514:2;12509:3;12505:12;12498:19;;12303:220;;;:::o;12529:366::-;12671:3;12692:67;12756:2;12751:3;12692:67;:::i;:::-;12685:74;;12768:93;12857:3;12768:93;:::i;:::-;12886:2;12881:3;12877:12;12870:19;;12675:220;;;:::o;12901:366::-;13043:3;13064:67;13128:2;13123:3;13064:67;:::i;:::-;13057:74;;13140:93;13229:3;13140:93;:::i;:::-;13258:2;13253:3;13249:12;13242:19;;13047:220;;;:::o;13273:366::-;13415:3;13436:67;13500:2;13495:3;13436:67;:::i;:::-;13429:74;;13512:93;13601:3;13512:93;:::i;:::-;13630:2;13625:3;13621:12;13614:19;;13419:220;;;:::o;13645:366::-;13787:3;13808:67;13872:2;13867:3;13808:67;:::i;:::-;13801:74;;13884:93;13973:3;13884:93;:::i;:::-;14002:2;13997:3;13993:12;13986:19;;13791:220;;;:::o;14017:366::-;14159:3;14180:67;14244:2;14239:3;14180:67;:::i;:::-;14173:74;;14256:93;14345:3;14256:93;:::i;:::-;14374:2;14369:3;14365:12;14358:19;;14163:220;;;:::o;14389:366::-;14531:3;14552:67;14616:2;14611:3;14552:67;:::i;:::-;14545:74;;14628:93;14717:3;14628:93;:::i;:::-;14746:2;14741:3;14737:12;14730:19;;14535:220;;;:::o;14761:366::-;14903:3;14924:67;14988:2;14983:3;14924:67;:::i;:::-;14917:74;;15000:93;15089:3;15000:93;:::i;:::-;15118:2;15113:3;15109:12;15102:19;;14907:220;;;:::o;15133:118::-;15220:24;15238:5;15220:24;:::i;:::-;15215:3;15208:37;15198:53;;:::o;15257:112::-;15340:22;15356:5;15340:22;:::i;:::-;15335:3;15328:35;15318:51;;:::o;15375:222::-;15468:4;15506:2;15495:9;15491:18;15483:26;;15519:71;15587:1;15576:9;15572:17;15563:6;15519:71;:::i;:::-;15473:124;;;;:::o;15603:332::-;15724:4;15762:2;15751:9;15747:18;15739:26;;15775:71;15843:1;15832:9;15828:17;15819:6;15775:71;:::i;:::-;15856:72;15924:2;15913:9;15909:18;15900:6;15856:72;:::i;:::-;15729:206;;;;;:::o;15941:332::-;16062:4;16100:2;16089:9;16085:18;16077:26;;16113:71;16181:1;16170:9;16166:17;16157:6;16113:71;:::i;:::-;16194:72;16262:2;16251:9;16247:18;16238:6;16194:72;:::i;:::-;16067:206;;;;;:::o;16279:807::-;16528:4;16566:3;16555:9;16551:19;16543:27;;16580:71;16648:1;16637:9;16633:17;16624:6;16580:71;:::i;:::-;16661:72;16729:2;16718:9;16714:18;16705:6;16661:72;:::i;:::-;16743:80;16819:2;16808:9;16804:18;16795:6;16743:80;:::i;:::-;16833;16909:2;16898:9;16894:18;16885:6;16833:80;:::i;:::-;16923:73;16991:3;16980:9;16976:19;16967:6;16923:73;:::i;:::-;17006;17074:3;17063:9;17059:19;17050:6;17006:73;:::i;:::-;16533:553;;;;;;;;;:::o;17092:210::-;17179:4;17217:2;17206:9;17202:18;17194:26;;17230:65;17292:1;17281:9;17277:17;17268:6;17230:65;:::i;:::-;17184:118;;;;:::o;17308:313::-;17421:4;17459:2;17448:9;17444:18;17436:26;;17508:9;17502:4;17498:20;17494:1;17483:9;17479:17;17472:47;17536:78;17609:4;17600:6;17536:78;:::i;:::-;17528:86;;17426:195;;;;:::o;17627:419::-;17793:4;17831:2;17820:9;17816:18;17808:26;;17880:9;17874:4;17870:20;17866:1;17855:9;17851:17;17844:47;17908:131;18034:4;17908:131;:::i;:::-;17900:139;;17798:248;;;:::o;18052:419::-;18218:4;18256:2;18245:9;18241:18;18233:26;;18305:9;18299:4;18295:20;18291:1;18280:9;18276:17;18269:47;18333:131;18459:4;18333:131;:::i;:::-;18325:139;;18223:248;;;:::o;18477:419::-;18643:4;18681:2;18670:9;18666:18;18658:26;;18730:9;18724:4;18720:20;18716:1;18705:9;18701:17;18694:47;18758:131;18884:4;18758:131;:::i;:::-;18750:139;;18648:248;;;:::o;18902:419::-;19068:4;19106:2;19095:9;19091:18;19083:26;;19155:9;19149:4;19145:20;19141:1;19130:9;19126:17;19119:47;19183:131;19309:4;19183:131;:::i;:::-;19175:139;;19073:248;;;:::o;19327:419::-;19493:4;19531:2;19520:9;19516:18;19508:26;;19580:9;19574:4;19570:20;19566:1;19555:9;19551:17;19544:47;19608:131;19734:4;19608:131;:::i;:::-;19600:139;;19498:248;;;:::o;19752:419::-;19918:4;19956:2;19945:9;19941:18;19933:26;;20005:9;19999:4;19995:20;19991:1;19980:9;19976:17;19969:47;20033:131;20159:4;20033:131;:::i;:::-;20025:139;;19923:248;;;:::o;20177:419::-;20343:4;20381:2;20370:9;20366:18;20358:26;;20430:9;20424:4;20420:20;20416:1;20405:9;20401:17;20394:47;20458:131;20584:4;20458:131;:::i;:::-;20450:139;;20348:248;;;:::o;20602:419::-;20768:4;20806:2;20795:9;20791:18;20783:26;;20855:9;20849:4;20845:20;20841:1;20830:9;20826:17;20819:47;20883:131;21009:4;20883:131;:::i;:::-;20875:139;;20773:248;;;:::o;21027:419::-;21193:4;21231:2;21220:9;21216:18;21208:26;;21280:9;21274:4;21270:20;21266:1;21255:9;21251:17;21244:47;21308:131;21434:4;21308:131;:::i;:::-;21300:139;;21198:248;;;:::o;21452:419::-;21618:4;21656:2;21645:9;21641:18;21633:26;;21705:9;21699:4;21695:20;21691:1;21680:9;21676:17;21669:47;21733:131;21859:4;21733:131;:::i;:::-;21725:139;;21623:248;;;:::o;21877:419::-;22043:4;22081:2;22070:9;22066:18;22058:26;;22130:9;22124:4;22120:20;22116:1;22105:9;22101:17;22094:47;22158:131;22284:4;22158:131;:::i;:::-;22150:139;;22048:248;;;:::o;22302:419::-;22468:4;22506:2;22495:9;22491:18;22483:26;;22555:9;22549:4;22545:20;22541:1;22530:9;22526:17;22519:47;22583:131;22709:4;22583:131;:::i;:::-;22575:139;;22473:248;;;:::o;22727:419::-;22893:4;22931:2;22920:9;22916:18;22908:26;;22980:9;22974:4;22970:20;22966:1;22955:9;22951:17;22944:47;23008:131;23134:4;23008:131;:::i;:::-;23000:139;;22898:248;;;:::o;23152:419::-;23318:4;23356:2;23345:9;23341:18;23333:26;;23405:9;23399:4;23395:20;23391:1;23380:9;23376:17;23369:47;23433:131;23559:4;23433:131;:::i;:::-;23425:139;;23323:248;;;:::o;23577:419::-;23743:4;23781:2;23770:9;23766:18;23758:26;;23830:9;23824:4;23820:20;23816:1;23805:9;23801:17;23794:47;23858:131;23984:4;23858:131;:::i;:::-;23850:139;;23748:248;;;:::o;24002:419::-;24168:4;24206:2;24195:9;24191:18;24183:26;;24255:9;24249:4;24245:20;24241:1;24230:9;24226:17;24219:47;24283:131;24409:4;24283:131;:::i;:::-;24275:139;;24173:248;;;:::o;24427:419::-;24593:4;24631:2;24620:9;24616:18;24608:26;;24680:9;24674:4;24670:20;24666:1;24655:9;24651:17;24644:47;24708:131;24834:4;24708:131;:::i;:::-;24700:139;;24598:248;;;:::o;24852:222::-;24945:4;24983:2;24972:9;24968:18;24960:26;;24996:71;25064:1;25053:9;25049:17;25040:6;24996:71;:::i;:::-;24950:124;;;;:::o;25080:831::-;25343:4;25381:3;25370:9;25366:19;25358:27;;25395:71;25463:1;25452:9;25448:17;25439:6;25395:71;:::i;:::-;25476:80;25552:2;25541:9;25537:18;25528:6;25476:80;:::i;:::-;25603:9;25597:4;25593:20;25588:2;25577:9;25573:18;25566:48;25631:108;25734:4;25725:6;25631:108;:::i;:::-;25623:116;;25749:72;25817:2;25806:9;25802:18;25793:6;25749:72;:::i;:::-;25831:73;25899:3;25888:9;25884:19;25875:6;25831:73;:::i;:::-;25348:563;;;;;;;;:::o;25917:442::-;26066:4;26104:2;26093:9;26089:18;26081:26;;26117:71;26185:1;26174:9;26170:17;26161:6;26117:71;:::i;:::-;26198:72;26266:2;26255:9;26251:18;26242:6;26198:72;:::i;:::-;26280;26348:2;26337:9;26333:18;26324:6;26280:72;:::i;:::-;26071:288;;;;;;:::o;26365:214::-;26454:4;26492:2;26481:9;26477:18;26469:26;;26505:67;26569:1;26558:9;26554:17;26545:6;26505:67;:::i;:::-;26459:120;;;;:::o;26666:132::-;26733:4;26756:3;26748:11;;26786:4;26781:3;26777:14;26769:22;;26738:60;;;:::o;26804:114::-;26871:6;26905:5;26899:12;26889:22;;26878:40;;;:::o;26924:99::-;26976:6;27010:5;27004:12;26994:22;;26983:40;;;:::o;27029:113::-;27099:4;27131;27126:3;27122:14;27114:22;;27104:38;;;:::o;27148:184::-;27247:11;27281:6;27276:3;27269:19;27321:4;27316:3;27312:14;27297:29;;27259:73;;;;:::o;27338:169::-;27422:11;27456:6;27451:3;27444:19;27496:4;27491:3;27487:14;27472:29;;27434:73;;;;:::o;27513:305::-;27553:3;27572:20;27590:1;27572:20;:::i;:::-;27567:25;;27606:20;27624:1;27606:20;:::i;:::-;27601:25;;27760:1;27692:66;27688:74;27685:1;27682:81;27679:2;;;27766:18;;:::i;:::-;27679:2;27810:1;27807;27803:9;27796:16;;27557:261;;;;:::o;27824:185::-;27864:1;27881:20;27899:1;27881:20;:::i;:::-;27876:25;;27915:20;27933:1;27915:20;:::i;:::-;27910:25;;27954:1;27944:2;;27959:18;;:::i;:::-;27944:2;28001:1;27998;27994:9;27989:14;;27866:143;;;;:::o;28015:348::-;28055:7;28078:20;28096:1;28078:20;:::i;:::-;28073:25;;28112:20;28130:1;28112:20;:::i;:::-;28107:25;;28300:1;28232:66;28228:74;28225:1;28222:81;28217:1;28210:9;28203:17;28199:105;28196:2;;;28307:18;;:::i;:::-;28196:2;28355:1;28352;28348:9;28337:20;;28063:300;;;;:::o;28369:191::-;28409:4;28429:20;28447:1;28429:20;:::i;:::-;28424:25;;28463:20;28481:1;28463:20;:::i;:::-;28458:25;;28502:1;28499;28496:8;28493:2;;;28507:18;;:::i;:::-;28493:2;28552:1;28549;28545:9;28537:17;;28414:146;;;;:::o;28566:96::-;28603:7;28632:24;28650:5;28632:24;:::i;:::-;28621:35;;28611:51;;;:::o;28668:104::-;28713:7;28742:24;28760:5;28742:24;:::i;:::-;28731:35;;28721:51;;;:::o;28778:90::-;28812:7;28855:5;28848:13;28841:21;28830:32;;28820:48;;;:::o;28874:126::-;28911:7;28951:42;28944:5;28940:54;28929:65;;28919:81;;;:::o;29006:77::-;29043:7;29072:5;29061:16;;29051:32;;;:::o;29089:86::-;29124:7;29164:4;29157:5;29153:16;29142:27;;29132:43;;;:::o;29181:121::-;29239:9;29272:24;29290:5;29272:24;:::i;:::-;29259:37;;29249:53;;;:::o;29308:307::-;29376:1;29386:113;29400:6;29397:1;29394:13;29386:113;;;29485:1;29480:3;29476:11;29470:18;29466:1;29461:3;29457:11;29450:39;29422:2;29419:1;29415:10;29410:15;;29386:113;;;29517:6;29514:1;29511:13;29508:2;;;29597:1;29588:6;29583:3;29579:16;29572:27;29508:2;29357:258;;;;:::o;29621:233::-;29660:3;29683:24;29701:5;29683:24;:::i;:::-;29674:33;;29729:66;29722:5;29719:77;29716:2;;;29799:18;;:::i;:::-;29716:2;29846:1;29839:5;29835:13;29828:20;;29664:190;;;:::o;29860:180::-;29908:77;29905:1;29898:88;30005:4;30002:1;29995:15;30029:4;30026:1;30019:15;30046:180;30094:77;30091:1;30084:88;30191:4;30188:1;30181:15;30215:4;30212:1;30205:15;30232:180;30280:77;30277:1;30270:88;30377:4;30374:1;30367:15;30401:4;30398:1;30391:15;30418:180;30466:77;30463:1;30456:88;30563:4;30560:1;30553:15;30587:4;30584:1;30577:15;30604:117;30713:1;30710;30703:12;30727:117;30836:1;30833;30826:12;30850:117;30959:1;30956;30949:12;30973:117;31082:1;31079;31072:12;31096:117;31205:1;31202;31195:12;31219:102;31260:6;31311:2;31307:7;31302:2;31295:5;31291:14;31287:28;31277:38;;31267:54;;;:::o;31327:222::-;31467:34;31463:1;31455:6;31451:14;31444:58;31536:5;31531:2;31523:6;31519:15;31512:30;31433:116;:::o;31555:229::-;31695:34;31691:1;31683:6;31679:14;31672:58;31764:12;31759:2;31751:6;31747:15;31740:37;31661:123;:::o;31790:221::-;31930:34;31926:1;31918:6;31914:14;31907:58;31999:4;31994:2;31986:6;31982:15;31975:29;31896:115;:::o;32017:177::-;32157:29;32153:1;32145:6;32141:14;32134:53;32123:71;:::o;32200:244::-;32340:34;32336:1;32328:6;32324:14;32317:58;32409:27;32404:2;32396:6;32392:15;32385:52;32306:138;:::o;32450:173::-;32590:25;32586:1;32578:6;32574:14;32567:49;32556:67;:::o;32629:233::-;32769:34;32765:1;32757:6;32753:14;32746:58;32838:16;32833:2;32825:6;32821:15;32814:41;32735:127;:::o;32868:236::-;33008:34;33004:1;32996:6;32992:14;32985:58;33077:19;33072:2;33064:6;33060:15;33053:44;32974:130;:::o;33110:179::-;33250:31;33246:1;33238:6;33234:14;33227:55;33216:73;:::o;33295:220::-;33435:34;33431:1;33423:6;33419:14;33412:58;33504:3;33499:2;33491:6;33487:15;33480:28;33401:114;:::o;33521:182::-;33661:34;33657:1;33649:6;33645:14;33638:58;33627:76;:::o;33709:228::-;33849:34;33845:1;33837:6;33833:14;33826:58;33918:11;33913:2;33905:6;33901:15;33894:36;33815:122;:::o;33943:224::-;34083:34;34079:1;34071:6;34067:14;34060:58;34152:7;34147:2;34139:6;34135:15;34128:32;34049:118;:::o;34173:223::-;34313:34;34309:1;34301:6;34297:14;34290:58;34382:6;34377:2;34369:6;34365:15;34358:31;34279:117;:::o;34402:173::-;34542:25;34538:1;34530:6;34526:14;34519:49;34508:67;:::o;34581:174::-;34721:26;34717:1;34709:6;34705:14;34698:50;34687:68;:::o;34761:178::-;34901:30;34897:1;34889:6;34885:14;34878:54;34867:72;:::o;34945:122::-;35018:24;35036:5;35018:24;:::i;:::-;35011:5;35008:35;34998:2;;35057:1;35054;35047:12;34998:2;34988:79;:::o;35073:138::-;35154:32;35180:5;35154:32;:::i;:::-;35147:5;35144:43;35134:2;;35201:1;35198;35191:12;35134:2;35124:87;:::o;35217:116::-;35287:21;35302:5;35287:21;:::i;:::-;35280:5;35277:32;35267:2;;35323:1;35320;35313:12;35267:2;35257:76;:::o;35339:122::-;35412:24;35430:5;35412:24;:::i;:::-;35405:5;35402:35;35392:2;;35451:1;35448;35441:12;35392:2;35382:79;:::o

Swarm Source

ipfs://0e7813345a5a507252fb0349c056e43ada3a9423587835f1104a13af79c69c35
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.