ETH Price: $2,389.09 (+2.02%)
Gas: 5.85 Gwei

Token

Just Business (JB)
 

Overview

Max Total Supply

1,000,000,000,000 JB

Holders

376

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000002307 JB

Value
$0.00
0x5be3b2b2b29f0d95646260fc7980e07444007e2c
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:
JB

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.7;

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

     /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

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 JB is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Just Business";
    string private constant _symbol = "JB";
    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private minContractTokensToSwap = 13e8 * 10**9;
    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 _isExcludedFromMaxWallet;
    mapping (address => bool) private _bots;
    uint256 private _taxFee = 0;
    uint256 private _teamFee = 8;
    uint256 private _maxWalletSize = 1e10 * 10**9;
    uint256 private _buyFee = 8;
    uint256 private _sellFee = 22;
    uint256 private _sellStreak = 0;
    uint256 private _x = 2;
    uint256 private _y = 100;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _treasury;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _swapAll = false;
    bool private inSwap = false;
    bool private _turnOffStreak = false;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event Response(bool treasury, bool marketing);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor () {

        _treasury = payable(0x68a93EBE15fd30C51edBF492E06325718764B668);
        _marketingWallet = payable(0xdEf5b8920b526624DD7492074EaBfB0E8E3D3B87);
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[_treasury] = true;
        _isExcludedFromFee[_marketingWallet] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[_treasury] = true;
        _isExcludedFromMaxWallet[_marketingWallet] = true;

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

    function name() public pure returns (string memory) {
        return _name;
    }
    
    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(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to]) {
                require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _teamFee = _buyFee;

                if (amount >= balanceOf(uniswapV2Pair).mul(_x).div(_y)) {
                    _sellStreak = 0;
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

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

                if (_turnOffStreak) {
                    _teamFee = _sellFee;
                } else {
                    _teamFee = _sellFee + _sellStreak;
                    
                    if (_teamFee > 30) {
                        _teamFee = 30;
                    }
                }

                if (automatedMarketMakerPairs[to]) {
                    if(contractTokenBalance > minContractTokensToSwap) {
                        if(!_swapAll) {
                            contractTokenBalance = minContractTokensToSwap;
                        }
                        swapAndDist(contractTokenBalance);
                    }
                    _sellStreak++;
                }

            }
        }
        bool takeFee = true;

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

        if(!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 swapAndDist(uint256 contractTokenBalance) private {
        
        swapTokensForEth(contractTokenBalance);

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        (bool treasury, ) = _treasury.call{value: amount.div(2)}("");
        (bool marketing, ) = _marketingWallet.call{value: amount.div(2)}("");

        emit Response(treasury, marketing);
    }
    
    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 launch() 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;
        automatedMarketMakerPairs[uniswapV2Pair] = true;
    }
    
    function setMarketingWallet (address payable marketing) external onlyOwner {
        _isExcludedFromFee[_marketingWallet] = false;
        _marketingWallet = marketing;
        _isExcludedFromFee[marketing] = true;
    }

    function setTreasury (address payable treasury) external onlyOwner() {
        _isExcludedFromFee[_treasury] = false;
        _treasury = treasury;
        _isExcludedFromFee[treasury] = true;
    }

    function excludeFromFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = false;
    }

    function isExcludedToFee(address ad) public view returns (bool) {
        return _isExcludedFromFee[ad];
    }

    function excludeFromMaxWallet(address[] calldata ads, bool onoff) public onlyOwner {
        for (uint i = 0; i < ads.length; i++) {
            _isExcludedFromMaxWallet[ads[i]] = onoff;
        }
    }
    
    function isExcludedMaxWallet(address ad) public view returns (bool) {
        return _isExcludedFromMaxWallet[ad];
    }

    function setBuyFee(uint256 buy) external onlyOwner {
        require(buy <= 20);
        _buyFee = buy;
    }

    function setSellFee(uint256 sell) external onlyOwner {
        require(sell <= 20);
        _sellFee = sell;
    }

    function setTaxFee(uint256 tax) external onlyOwner {
        require(tax <= 8);
        _taxFee = tax;
    }
    
    function setX(uint256 x) external onlyOwner {
        _x = x;
    }

    function setY(uint256 y) external onlyOwner {
        _y = y;
    }

    function getSellStreak() public view returns (uint256) {
        return _sellStreak;
    }

    function setMinContractTokensToSwap(uint256 numToken) external onlyOwner {
        minContractTokensToSwap = numToken * 10**9;
    }

    function setMaxWallet(uint256 amt) external onlyOwner {
        _maxWalletSize = amt * 10**9;
    }

    function setSwapAll(bool onoff) external onlyOwner {
        _swapAll = onoff;
    }

    function setTurnOffStreak(bool onoff) external onlyOwner {
        _turnOffStreak = 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(uint256 amt) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        if (amt == 0) {
            swapTokensForEth(contractBalance);
        } else {
            amt = amt * 10**9;
            require(contractBalance >= amt, "Insufficient Balance");
            swapTokensForEth(amt);
        }
    }
    
    function manualsend() external onlyOwner {
        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 onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"bool","name":"treasury","type":"bool"},{"indexed":false,"internalType":"bool","name":"marketing","type":"bool"}],"name":"Response","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[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellStreak","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedToFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"address payable","name":"marketing","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","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":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTurnOffStreak","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"setX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"y","type":"uint256"}],"name":"setY","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d9190620006f5565b6000196200002c91906200075c565b60035567120a871cc00200006005556000600c556008600d55678ac7230489e80000600e556008600f556016601055600060115560026012556064601355600c54601455600d546015556000601960146101000a81548160ff0219169083151502179055506000601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506000601960176101000a81548160ff021916908315150217905550348015620000ef57600080fd5b506000620001026200068b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507368a93ebe15fd30c51edbf492e06325718764b668601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073def5b8920b526624dd7492074eabfb0e8e3d3b87601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460066000620002616200068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160096000620002b56200069360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620004686200069360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006156200068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200067d9190620007a8565b60405180910390a3620007c5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200070282620006bc565b91506200070f83620006bc565b925082620007225762000721620006c6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200076982620006bc565b91506200077683620006bc565b92508282039050818111156200079157620007906200072d565b5b92915050565b620007a281620006bc565b82525050565b6000602082019050620007bf600083018462000797565b92915050565b6155e480620007d56000396000f3fe60806040526004361061024a5760003560e01c8063844f30fb11610139578063b6c52324116100b6578063dd4670641161007a578063dd46706414610833578063dd62ed3e1461085c578063de30aad114610899578063e1ab04c9146108c2578063f0f44260146108ff578063f2fde38b1461092857610251565b8063b6c5232414610762578063c4081a4c1461078d578063cf0848f7146107b6578063db8aeab1146107df578063db92dbb61461080857610251565b80639a07170c116100fd5780639a07170c146106915780639a7a23d6146106bc578063a69df4b5146106e5578063a9059cbb146106fc578063b515566a1461073957610251565b8063844f30fb146105ac578063881dce60146105e95780638b4cee08146106125780638da5cb5b1461063b57806395d89b411461066657610251565b8063313ce567116101c75780635d098b381161018b5780635d098b38146104ef57806368d466b8146105185780636fc3eaec1461054157806370a0823114610558578063715018a61461059557610251565b8063313ce5671461040c5780633bbac579146104375780634018d9aa14610474578063437823ec1461049d5780635d0044ca146104c657610251565b806312dfbd331161020e57806312dfbd331461032757806318160ddd1461035057806323b872dd1461037b578063273123b7146103b857806327f3a72a146103e157610251565b806301339c211461025657806306fdde031461026d578063095ea7b3146102985780630cc835a3146102d557806311766f49146102fe57610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610951565b005b34801561027957600080fd5b50610282610e97565b60405161028f91906142aa565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba919061436a565b610ed4565b6040516102cc91906143c5565b60405180910390f35b3480156102e157600080fd5b506102fc60048036038101906102f791906143e0565b610ef2565b005b34801561030a57600080fd5b5061032560048036038101906103209190614439565b610f9f565b005b34801561033357600080fd5b5061034e600480360381019061034991906143e0565b611051565b005b34801561035c57600080fd5b506103656110ff565b6040516103729190614475565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190614490565b611110565b6040516103af91906143c5565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da91906144e3565b6111e9565b005b3480156103ed57600080fd5b506103f66112d9565b6040516104039190614475565b60405180910390f35b34801561041857600080fd5b506104216112e9565b60405161042e919061452c565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906144e3565b6112f2565b60405161046b91906143c5565b60405180910390f35b34801561048057600080fd5b5061049b600480360381019061049691906143e0565b611348565b005b3480156104a957600080fd5b506104c460048036038101906104bf9190614585565b6113e7565b005b3480156104d257600080fd5b506104ed60048036038101906104e891906143e0565b6114d7565b005b3480156104fb57600080fd5b5061051660048036038101906105119190614585565b611585565b005b34801561052457600080fd5b5061053f600480360381019061053a91906143e0565b611730565b005b34801561054d57600080fd5b506105566117cf565b005b34801561056457600080fd5b5061057f600480360381019061057a91906144e3565b611875565b60405161058c9190614475565b60405180910390f35b3480156105a157600080fd5b506105aa6118c6565b005b3480156105b857600080fd5b506105d360048036038101906105ce91906144e3565b611a19565b6040516105e091906143c5565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b91906143e0565b611a6f565b005b34801561061e57600080fd5b50610639600480360381019061063491906143e0565b611b8a565b005b34801561064757600080fd5b50610650611c37565b60405161065d91906145c1565b60405180910390f35b34801561067257600080fd5b5061067b611c60565b60405161068891906142aa565b60405180910390f35b34801561069d57600080fd5b506106a6611c9d565b6040516106b39190614475565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de91906145dc565b611ca7565b005b3480156106f157600080fd5b506106fa611dda565b005b34801561070857600080fd5b50610723600480360381019061071e919061436a565b611fae565b60405161073091906143c5565b60405180910390f35b34801561074557600080fd5b50610760600480360381019061075b9190614681565b611fcc565b005b34801561076e57600080fd5b50610777612206565b6040516107849190614475565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af91906143e0565b612210565b005b3480156107c257600080fd5b506107dd60048036038101906107d89190614585565b6122bd565b005b3480156107eb57600080fd5b50610806600480360381019061080191906146ce565b6123ad565b005b34801561081457600080fd5b5061081d6124e7565b60405161082a9190614475565b60405180910390f35b34801561083f57600080fd5b5061085a600480360381019061085591906143e0565b612519565b005b34801561086857600080fd5b50610883600480360381019061087e919061472e565b6126e0565b6040516108909190614475565b60405180910390f35b3480156108a557600080fd5b506108c060048036038101906108bb9190614439565b612767565b005b3480156108ce57600080fd5b506108e960048036038101906108e491906144e3565b612819565b6040516108f691906143c5565b60405180910390f35b34801561090b57600080fd5b5061092660048036038101906109219190614585565b61286f565b005b34801561093457600080fd5b5061094f600480360381019061094a91906144e3565b612a1a565b005b610959612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd906147ba565b60405180910390fd5b601960149054906101000a900460ff1615610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90614826565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ac630601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612be3565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b35919061485b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc0919061485b565b6040518363ffffffff1660e01b8152600401610bdd929190614888565b6020604051808303816000875af1158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c20919061485b565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ca930611875565b600080610cb4611c37565b426040518863ffffffff1660e01b8152600401610cd6969594939291906148f6565b60606040518083038185885af1158015610cf4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d19919061496c565b505050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbb9291906149bf565b6020604051808303816000875af1158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906149fd565b506001601960146101000a81548160ff0219169083151502179055506001601a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600d81526020017f4a75737420427573696e65737300000000000000000000000000000000000000815250905090565b6000610ee8610ee1612bdb565b8484612be3565b6001905092915050565b610efa612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e906147ba565b60405180910390fd5b6014811115610f9557600080fd5b80600f8190555050565b610fa7612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b906147ba565b60405180910390fd5b80601960176101000a81548160ff02191690831515021790555050565b611059612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd906147ba565b60405180910390fd5b633b9aca00816110f69190614a59565b60058190555050565b6000683635c9adc5dea00000905090565b600061111d848484612dac565b6111de84611129612bdb565b6111d98560405180606001604052806028815260200161558760289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061118f612bdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135ac9092919063ffffffff16565b612be3565b600190509392505050565b6111f1612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906147ba565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006112e430611875565b905090565b60006009905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611350612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906147ba565b60405180910390fd5b8060128190555050565b6113ef612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611473906147ba565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114df612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906147ba565b60405180910390fd5b633b9aca008161157c9190614a59565b600e8190555050565b61158d612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611611906147ba565b60405180910390fd5b600060096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611738612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc906147ba565b60405180910390fd5b8060138190555050565b6117d7612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b906147ba565b60405180910390fd5b600047905061187281613610565b50565b60006118bf600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613790565b9050919050565b6118ce612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611952906147ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a77612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afb906147ba565b60405180910390fd5b6000611b0f30611875565b905060008203611b2757611b22816137fe565b611b86565b633b9aca0082611b379190614a59565b915081811015611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390614ae7565b60405180910390fd5b611b85826137fe565b5b5050565b611b92612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c16906147ba565b60405180910390fd5b6014811115611c2d57600080fd5b8060108190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4a42000000000000000000000000000000000000000000000000000000000000815250905090565b6000601154905090565b611caf612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d33906147ba565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390614b79565b60405180910390fd5b611dd68282613a77565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6190614c0b565b60405180910390fd5b6002544211611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea590614c77565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611fc2611fbb612bdb565b8484612dac565b6001905092915050565b611fd4612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612061576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612058906147ba565b60405180910390fd5b60005b8282905081101561220157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106120bb576120ba614c97565b5b90506020020160208101906120d091906144e3565b73ffffffffffffffffffffffffffffffffffffffff16141580156121695750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061213b5761213a614c97565b5b905060200201602081019061215091906144e3565b73ffffffffffffffffffffffffffffffffffffffff1614155b156121ee576001600b600085858581811061218757612186614c97565b5b905060200201602081019061219c91906144e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806121f990614cc6565b915050612064565b505050565b6000600254905090565b612218612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c906147ba565b60405180910390fd5b60088111156122b357600080fd5b80600c8190555050565b6122c5612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612352576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612349906147ba565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123b5612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612439906147ba565b60405180910390fd5b60005b838390508110156124e15781600a600086868581811061246857612467614c97565b5b905060200201602081019061247d91906144e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806124d990614cc6565b915050612445565b50505050565b6000612514601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611875565b905090565b612521612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a5906147ba565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261265c9190614d0e565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61276f612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f3906147ba565b60405180910390fd5b80601960156101000a81548160ff02191690831515021790555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b612877612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb906147ba565b60405180910390fd5b600060096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612a22612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa6906147ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1590614db4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614e46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb890614ed8565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d9f9190614475565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1290614f6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8190614ffc565b60405180910390fd5b60008111612ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec49061508e565b60405180910390fd5b612ed5611c37565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f435750612f13611c37565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561343b57600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612fec5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ff557600080fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561309d5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156130fb57600e54816130af84611875565b6130b99190614d0e565b11156130fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f190615120565b60405180910390fd5b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156131a65750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156131fc5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156132bc57601960149054906101000a900460ff16613250576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132479061518c565b60405180910390fd5b600f54600d819055506132ac60135461329e601254613290601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611875565b613ad290919063ffffffff16565b613b4c90919063ffffffff16565b81106132bb5760006011819055505b5b60006132c730611875565b9050601960169054906101000a900460ff161580156133345750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561334c5750601960149054906101000a900460ff165b1561343957601960179054906101000a900460ff161561337457601054600d8190555061339f565b6011546010546133849190614d0e565b600d81905550601e600d54111561339e57601e600d819055505b5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134385760055481111561341f57601960159054906101000a900460ff166134155760055490505b61341e81613b96565b5b6011600081548092919061343290614cc6565b91905055505b5b505b600060019050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806134e25750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156134ec57600090505b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135905750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359a57600090505b6135a684848484613bbb565b50505050565b60008383111582906135f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135eb91906142aa565b60405180910390fd5b506000838561360391906151ac565b9050809150509392505050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661365f600284613b4c90919063ffffffff16565b60405161366b90615211565b60006040518083038185875af1925050503d80600081146136a8576040519150601f19603f3d011682016040523d82523d6000602084013e6136ad565b606091505b505090506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613700600285613b4c90919063ffffffff16565b60405161370c90615211565b60006040518083038185875af1925050503d8060008114613749576040519150601f19603f3d011682016040523d82523d6000602084013e61374e565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b98282604051613783929190615226565b60405180910390a1505050565b60006003548211156137d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137ce906152c1565b60405180910390fd5b60006137e1613be8565b90506137f68184613b4c90919063ffffffff16565b915050919050565b6001601960166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613836576138356152e1565b5b6040519080825280602002602001820160405280156138645781602001602082028036833780820191505090505b509050308160008151811061387c5761387b614c97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613923573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613947919061485b565b8160018151811061395b5761395a614c97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139c230601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612be3565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a269594939291906153ce565b600060405180830381600087803b158015613a4057600080fd5b505af1158015613a54573d6000803e3d6000fd5b50505050506000601960166101000a81548160ff02191690831515021790555050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808303613ae45760009050613b46565b60008284613af29190614a59565b9050828482613b019190615457565b14613b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b38906154fa565b60405180910390fd5b809150505b92915050565b6000613b8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c13565b905092915050565b613b9f816137fe565b60004790506000811115613bb757613bb647613610565b5b5050565b80613bc957613bc8613c76565b5b613bd4848484613cb3565b80613be257613be1613e7e565b5b50505050565b6000806000613bf5613e92565b91509150613c0c8183613b4c90919063ffffffff16565b9250505090565b60008083118290613c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5191906142aa565b60405180910390fd5b5060008385613c699190615457565b9050809150509392505050565b6000600c54148015613c8a57506000600d54145b613cb157600c54601481905550600d546015819055506000600c819055506000600d819055505b565b600080600080600080613cc587613ef4565b955095509550955095509550613d2386600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f5c90919063ffffffff16565b600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613db885600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fa690919063ffffffff16565b600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e0481614004565b613e0e84836140c1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613e6b9190614475565b60405180910390a3505050505050505050565b601454600c81905550601554600d81905550565b600080600060035490506000683635c9adc5dea000009050613ec8683635c9adc5dea00000600354613b4c90919063ffffffff16565b821015613ee757600354683635c9adc5dea00000935093505050613ef0565b81819350935050505b9091565b6000806000806000806000806000613f118a600c54600d546140fb565b9250925092506000613f21613be8565b90506000806000613f348e878787614191565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613f9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135ac565b905092915050565b6000808284613fb59190614d0e565b905083811015613ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ff190615566565b60405180910390fd5b8091505092915050565b600061400e613be8565b905060006140258284613ad290919063ffffffff16565b905061407981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fa690919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6140d682600354613f5c90919063ffffffff16565b6003819055506140f181600454613fa690919063ffffffff16565b6004819055505050565b6000806000806141276064614119888a613ad290919063ffffffff16565b613b4c90919063ffffffff16565b905060006141516064614143888b613ad290919063ffffffff16565b613b4c90919063ffffffff16565b9050600061417a8261416c858c613f5c90919063ffffffff16565b613f5c90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806141aa8589613ad290919063ffffffff16565b905060006141c18689613ad290919063ffffffff16565b905060006141d88789613ad290919063ffffffff16565b90506000614201826141f38587613f5c90919063ffffffff16565b613f5c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614254578082015181840152602081019050614239565b60008484015250505050565b6000601f19601f8301169050919050565b600061427c8261421a565b6142868185614225565b9350614296818560208601614236565b61429f81614260565b840191505092915050565b600060208201905081810360008301526142c48184614271565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614301826142d6565b9050919050565b614311816142f6565b811461431c57600080fd5b50565b60008135905061432e81614308565b92915050565b6000819050919050565b61434781614334565b811461435257600080fd5b50565b6000813590506143648161433e565b92915050565b60008060408385031215614381576143806142cc565b5b600061438f8582860161431f565b92505060206143a085828601614355565b9150509250929050565b60008115159050919050565b6143bf816143aa565b82525050565b60006020820190506143da60008301846143b6565b92915050565b6000602082840312156143f6576143f56142cc565b5b600061440484828501614355565b91505092915050565b614416816143aa565b811461442157600080fd5b50565b6000813590506144338161440d565b92915050565b60006020828403121561444f5761444e6142cc565b5b600061445d84828501614424565b91505092915050565b61446f81614334565b82525050565b600060208201905061448a6000830184614466565b92915050565b6000806000606084860312156144a9576144a86142cc565b5b60006144b78682870161431f565b93505060206144c88682870161431f565b92505060406144d986828701614355565b9150509250925092565b6000602082840312156144f9576144f86142cc565b5b60006145078482850161431f565b91505092915050565b600060ff82169050919050565b61452681614510565b82525050565b6000602082019050614541600083018461451d565b92915050565b6000614552826142d6565b9050919050565b61456281614547565b811461456d57600080fd5b50565b60008135905061457f81614559565b92915050565b60006020828403121561459b5761459a6142cc565b5b60006145a984828501614570565b91505092915050565b6145bb816142f6565b82525050565b60006020820190506145d660008301846145b2565b92915050565b600080604083850312156145f3576145f26142cc565b5b60006146018582860161431f565b925050602061461285828601614424565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126146415761464061461c565b5b8235905067ffffffffffffffff81111561465e5761465d614621565b5b60208301915083602082028301111561467a57614679614626565b5b9250929050565b60008060208385031215614698576146976142cc565b5b600083013567ffffffffffffffff8111156146b6576146b56142d1565b5b6146c28582860161462b565b92509250509250929050565b6000806000604084860312156146e7576146e66142cc565b5b600084013567ffffffffffffffff811115614705576147046142d1565b5b6147118682870161462b565b9350935050602061472486828701614424565b9150509250925092565b60008060408385031215614745576147446142cc565b5b60006147538582860161431f565b92505060206147648582860161431f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006147a4602083614225565b91506147af8261476e565b602082019050919050565b600060208201905081810360008301526147d381614797565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000614810601783614225565b915061481b826147da565b602082019050919050565b6000602082019050818103600083015261483f81614803565b9050919050565b60008151905061485581614308565b92915050565b600060208284031215614871576148706142cc565b5b600061487f84828501614846565b91505092915050565b600060408201905061489d60008301856145b2565b6148aa60208301846145b2565b9392505050565b6000819050919050565b6000819050919050565b60006148e06148db6148d6846148b1565b6148bb565b614334565b9050919050565b6148f0816148c5565b82525050565b600060c08201905061490b60008301896145b2565b6149186020830188614466565b61492560408301876148e7565b61493260608301866148e7565b61493f60808301856145b2565b61494c60a0830184614466565b979650505050505050565b6000815190506149668161433e565b92915050565b600080600060608486031215614985576149846142cc565b5b600061499386828701614957565b93505060206149a486828701614957565b92505060406149b586828701614957565b9150509250925092565b60006040820190506149d460008301856145b2565b6149e16020830184614466565b9392505050565b6000815190506149f78161440d565b92915050565b600060208284031215614a1357614a126142cc565b5b6000614a21848285016149e8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614a6482614334565b9150614a6f83614334565b9250828202614a7d81614334565b91508282048414831517614a9457614a93614a2a565b5b5092915050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b6000614ad1601483614225565b9150614adc82614a9b565b602082019050919050565b60006020820190508181036000830152614b0081614ac4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614b63603983614225565b9150614b6e82614b07565b604082019050919050565b60006020820190508181036000830152614b9281614b56565b9050919050565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b6000614bf5602383614225565b9150614c0082614b99565b604082019050919050565b60006020820190508181036000830152614c2481614be8565b9050919050565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b6000614c61601f83614225565b9150614c6c82614c2b565b602082019050919050565b60006020820190508181036000830152614c9081614c54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614cd182614334565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d0357614d02614a2a565b5b600182019050919050565b6000614d1982614334565b9150614d2483614334565b9250828201905080821115614d3c57614d3b614a2a565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d9e602683614225565b9150614da982614d42565b604082019050919050565b60006020820190508181036000830152614dcd81614d91565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614e30602483614225565b9150614e3b82614dd4565b604082019050919050565b60006020820190508181036000830152614e5f81614e23565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ec2602283614225565b9150614ecd82614e66565b604082019050919050565b60006020820190508181036000830152614ef181614eb5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f54602583614225565b9150614f5f82614ef8565b604082019050919050565b60006020820190508181036000830152614f8381614f47565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614fe6602383614225565b9150614ff182614f8a565b604082019050919050565b6000602082019050818103600083015261501581614fd9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000615078602983614225565b91506150838261501c565b604082019050919050565b600060208201905081810360008301526150a78161506b565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061510a602383614225565b9150615115826150ae565b604082019050919050565b60006020820190508181036000830152615139816150fd565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000615176601883614225565b915061518182615140565b602082019050919050565b600060208201905081810360008301526151a581615169565b9050919050565b60006151b782614334565b91506151c283614334565b92508282039050818111156151da576151d9614a2a565b5b92915050565b600081905092915050565b50565b60006151fb6000836151e0565b9150615206826151eb565b600082019050919050565b600061521c826151ee565b9150819050919050565b600060408201905061523b60008301856143b6565b61524860208301846143b6565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006152ab602a83614225565b91506152b68261524f565b604082019050919050565b600060208201905081810360008301526152da8161529e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615345816142f6565b82525050565b6000615357838361533c565b60208301905092915050565b6000602082019050919050565b600061537b82615310565b615385818561531b565b93506153908361532c565b8060005b838110156153c15781516153a8888261534b565b97506153b383615363565b925050600181019050615394565b5085935050505092915050565b600060a0820190506153e36000830188614466565b6153f060208301876148e7565b81810360408301526154028186615370565b905061541160608301856145b2565b61541e6080830184614466565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061546282614334565b915061546d83614334565b92508261547d5761547c615428565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006154e4602183614225565b91506154ef82615488565b604082019050919050565b60006020820190508181036000830152615513816154d7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615550601b83614225565b915061555b8261551a565b602082019050919050565b6000602082019050818103600083015261557f81615543565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd4555624eb8dfa70a9dc0a40e851cad547ff909cc0600b001cbee394e7f2d3564736f6c63430008120033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063844f30fb11610139578063b6c52324116100b6578063dd4670641161007a578063dd46706414610833578063dd62ed3e1461085c578063de30aad114610899578063e1ab04c9146108c2578063f0f44260146108ff578063f2fde38b1461092857610251565b8063b6c5232414610762578063c4081a4c1461078d578063cf0848f7146107b6578063db8aeab1146107df578063db92dbb61461080857610251565b80639a07170c116100fd5780639a07170c146106915780639a7a23d6146106bc578063a69df4b5146106e5578063a9059cbb146106fc578063b515566a1461073957610251565b8063844f30fb146105ac578063881dce60146105e95780638b4cee08146106125780638da5cb5b1461063b57806395d89b411461066657610251565b8063313ce567116101c75780635d098b381161018b5780635d098b38146104ef57806368d466b8146105185780636fc3eaec1461054157806370a0823114610558578063715018a61461059557610251565b8063313ce5671461040c5780633bbac579146104375780634018d9aa14610474578063437823ec1461049d5780635d0044ca146104c657610251565b806312dfbd331161020e57806312dfbd331461032757806318160ddd1461035057806323b872dd1461037b578063273123b7146103b857806327f3a72a146103e157610251565b806301339c211461025657806306fdde031461026d578063095ea7b3146102985780630cc835a3146102d557806311766f49146102fe57610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610951565b005b34801561027957600080fd5b50610282610e97565b60405161028f91906142aa565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba919061436a565b610ed4565b6040516102cc91906143c5565b60405180910390f35b3480156102e157600080fd5b506102fc60048036038101906102f791906143e0565b610ef2565b005b34801561030a57600080fd5b5061032560048036038101906103209190614439565b610f9f565b005b34801561033357600080fd5b5061034e600480360381019061034991906143e0565b611051565b005b34801561035c57600080fd5b506103656110ff565b6040516103729190614475565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190614490565b611110565b6040516103af91906143c5565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da91906144e3565b6111e9565b005b3480156103ed57600080fd5b506103f66112d9565b6040516104039190614475565b60405180910390f35b34801561041857600080fd5b506104216112e9565b60405161042e919061452c565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906144e3565b6112f2565b60405161046b91906143c5565b60405180910390f35b34801561048057600080fd5b5061049b600480360381019061049691906143e0565b611348565b005b3480156104a957600080fd5b506104c460048036038101906104bf9190614585565b6113e7565b005b3480156104d257600080fd5b506104ed60048036038101906104e891906143e0565b6114d7565b005b3480156104fb57600080fd5b5061051660048036038101906105119190614585565b611585565b005b34801561052457600080fd5b5061053f600480360381019061053a91906143e0565b611730565b005b34801561054d57600080fd5b506105566117cf565b005b34801561056457600080fd5b5061057f600480360381019061057a91906144e3565b611875565b60405161058c9190614475565b60405180910390f35b3480156105a157600080fd5b506105aa6118c6565b005b3480156105b857600080fd5b506105d360048036038101906105ce91906144e3565b611a19565b6040516105e091906143c5565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b91906143e0565b611a6f565b005b34801561061e57600080fd5b50610639600480360381019061063491906143e0565b611b8a565b005b34801561064757600080fd5b50610650611c37565b60405161065d91906145c1565b60405180910390f35b34801561067257600080fd5b5061067b611c60565b60405161068891906142aa565b60405180910390f35b34801561069d57600080fd5b506106a6611c9d565b6040516106b39190614475565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de91906145dc565b611ca7565b005b3480156106f157600080fd5b506106fa611dda565b005b34801561070857600080fd5b50610723600480360381019061071e919061436a565b611fae565b60405161073091906143c5565b60405180910390f35b34801561074557600080fd5b50610760600480360381019061075b9190614681565b611fcc565b005b34801561076e57600080fd5b50610777612206565b6040516107849190614475565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af91906143e0565b612210565b005b3480156107c257600080fd5b506107dd60048036038101906107d89190614585565b6122bd565b005b3480156107eb57600080fd5b50610806600480360381019061080191906146ce565b6123ad565b005b34801561081457600080fd5b5061081d6124e7565b60405161082a9190614475565b60405180910390f35b34801561083f57600080fd5b5061085a600480360381019061085591906143e0565b612519565b005b34801561086857600080fd5b50610883600480360381019061087e919061472e565b6126e0565b6040516108909190614475565b60405180910390f35b3480156108a557600080fd5b506108c060048036038101906108bb9190614439565b612767565b005b3480156108ce57600080fd5b506108e960048036038101906108e491906144e3565b612819565b6040516108f691906143c5565b60405180910390f35b34801561090b57600080fd5b5061092660048036038101906109219190614585565b61286f565b005b34801561093457600080fd5b5061094f600480360381019061094a91906144e3565b612a1a565b005b610959612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd906147ba565b60405180910390fd5b601960149054906101000a900460ff1615610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90614826565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ac630601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612be3565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b35919061485b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc0919061485b565b6040518363ffffffff1660e01b8152600401610bdd929190614888565b6020604051808303816000875af1158015610bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c20919061485b565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ca930611875565b600080610cb4611c37565b426040518863ffffffff1660e01b8152600401610cd6969594939291906148f6565b60606040518083038185885af1158015610cf4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d19919061496c565b505050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbb9291906149bf565b6020604051808303816000875af1158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe91906149fd565b506001601960146101000a81548160ff0219169083151502179055506001601a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600d81526020017f4a75737420427573696e65737300000000000000000000000000000000000000815250905090565b6000610ee8610ee1612bdb565b8484612be3565b6001905092915050565b610efa612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e906147ba565b60405180910390fd5b6014811115610f9557600080fd5b80600f8190555050565b610fa7612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b906147ba565b60405180910390fd5b80601960176101000a81548160ff02191690831515021790555050565b611059612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd906147ba565b60405180910390fd5b633b9aca00816110f69190614a59565b60058190555050565b6000683635c9adc5dea00000905090565b600061111d848484612dac565b6111de84611129612bdb565b6111d98560405180606001604052806028815260200161558760289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061118f612bdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135ac9092919063ffffffff16565b612be3565b600190509392505050565b6111f1612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906147ba565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006112e430611875565b905090565b60006009905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611350612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d4906147ba565b60405180910390fd5b8060128190555050565b6113ef612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611473906147ba565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114df612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906147ba565b60405180910390fd5b633b9aca008161157c9190614a59565b600e8190555050565b61158d612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611611906147ba565b60405180910390fd5b600060096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611738612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc906147ba565b60405180910390fd5b8060138190555050565b6117d7612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b906147ba565b60405180910390fd5b600047905061187281613610565b50565b60006118bf600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613790565b9050919050565b6118ce612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611952906147ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a77612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afb906147ba565b60405180910390fd5b6000611b0f30611875565b905060008203611b2757611b22816137fe565b611b86565b633b9aca0082611b379190614a59565b915081811015611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390614ae7565b60405180910390fd5b611b85826137fe565b5b5050565b611b92612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c16906147ba565b60405180910390fd5b6014811115611c2d57600080fd5b8060108190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4a42000000000000000000000000000000000000000000000000000000000000815250905090565b6000601154905090565b611caf612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d33906147ba565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390614b79565b60405180910390fd5b611dd68282613a77565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6190614c0b565b60405180910390fd5b6002544211611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea590614c77565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611fc2611fbb612bdb565b8484612dac565b6001905092915050565b611fd4612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612061576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612058906147ba565b60405180910390fd5b60005b8282905081101561220157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106120bb576120ba614c97565b5b90506020020160208101906120d091906144e3565b73ffffffffffffffffffffffffffffffffffffffff16141580156121695750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061213b5761213a614c97565b5b905060200201602081019061215091906144e3565b73ffffffffffffffffffffffffffffffffffffffff1614155b156121ee576001600b600085858581811061218757612186614c97565b5b905060200201602081019061219c91906144e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806121f990614cc6565b915050612064565b505050565b6000600254905090565b612218612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c906147ba565b60405180910390fd5b60088111156122b357600080fd5b80600c8190555050565b6122c5612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612352576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612349906147ba565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123b5612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612439906147ba565b60405180910390fd5b60005b838390508110156124e15781600a600086868581811061246857612467614c97565b5b905060200201602081019061247d91906144e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806124d990614cc6565b915050612445565b50505050565b6000612514601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611875565b905090565b612521612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a5906147ba565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261265c9190614d0e565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61276f612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f3906147ba565b60405180910390fd5b80601960156101000a81548160ff02191690831515021790555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b612877612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb906147ba565b60405180910390fd5b600060096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612a22612bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa6906147ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1590614db4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614e46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb890614ed8565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d9f9190614475565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1290614f6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8190614ffc565b60405180910390fd5b60008111612ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec49061508e565b60405180910390fd5b612ed5611c37565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612f435750612f13611c37565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561343b57600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612fec5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ff557600080fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561309d5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156130fb57600e54816130af84611875565b6130b99190614d0e565b11156130fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f190615120565b60405180910390fd5b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156131a65750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156131fc5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156132bc57601960149054906101000a900460ff16613250576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132479061518c565b60405180910390fd5b600f54600d819055506132ac60135461329e601254613290601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611875565b613ad290919063ffffffff16565b613b4c90919063ffffffff16565b81106132bb5760006011819055505b5b60006132c730611875565b9050601960169054906101000a900460ff161580156133345750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561334c5750601960149054906101000a900460ff165b1561343957601960179054906101000a900460ff161561337457601054600d8190555061339f565b6011546010546133849190614d0e565b600d81905550601e600d54111561339e57601e600d819055505b5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134385760055481111561341f57601960159054906101000a900460ff166134155760055490505b61341e81613b96565b5b6011600081548092919061343290614cc6565b91905055505b5b505b600060019050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806134e25750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156134ec57600090505b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135905750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561359a57600090505b6135a684848484613bbb565b50505050565b60008383111582906135f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135eb91906142aa565b60405180910390fd5b506000838561360391906151ac565b9050809150509392505050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661365f600284613b4c90919063ffffffff16565b60405161366b90615211565b60006040518083038185875af1925050503d80600081146136a8576040519150601f19603f3d011682016040523d82523d6000602084013e6136ad565b606091505b505090506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613700600285613b4c90919063ffffffff16565b60405161370c90615211565b60006040518083038185875af1925050503d8060008114613749576040519150601f19603f3d011682016040523d82523d6000602084013e61374e565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b98282604051613783929190615226565b60405180910390a1505050565b60006003548211156137d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137ce906152c1565b60405180910390fd5b60006137e1613be8565b90506137f68184613b4c90919063ffffffff16565b915050919050565b6001601960166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613836576138356152e1565b5b6040519080825280602002602001820160405280156138645781602001602082028036833780820191505090505b509050308160008151811061387c5761387b614c97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613923573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613947919061485b565b8160018151811061395b5761395a614c97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139c230601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612be3565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a269594939291906153ce565b600060405180830381600087803b158015613a4057600080fd5b505af1158015613a54573d6000803e3d6000fd5b50505050506000601960166101000a81548160ff02191690831515021790555050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808303613ae45760009050613b46565b60008284613af29190614a59565b9050828482613b019190615457565b14613b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b38906154fa565b60405180910390fd5b809150505b92915050565b6000613b8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c13565b905092915050565b613b9f816137fe565b60004790506000811115613bb757613bb647613610565b5b5050565b80613bc957613bc8613c76565b5b613bd4848484613cb3565b80613be257613be1613e7e565b5b50505050565b6000806000613bf5613e92565b91509150613c0c8183613b4c90919063ffffffff16565b9250505090565b60008083118290613c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5191906142aa565b60405180910390fd5b5060008385613c699190615457565b9050809150509392505050565b6000600c54148015613c8a57506000600d54145b613cb157600c54601481905550600d546015819055506000600c819055506000600d819055505b565b600080600080600080613cc587613ef4565b955095509550955095509550613d2386600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f5c90919063ffffffff16565b600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613db885600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fa690919063ffffffff16565b600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e0481614004565b613e0e84836140c1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613e6b9190614475565b60405180910390a3505050505050505050565b601454600c81905550601554600d81905550565b600080600060035490506000683635c9adc5dea000009050613ec8683635c9adc5dea00000600354613b4c90919063ffffffff16565b821015613ee757600354683635c9adc5dea00000935093505050613ef0565b81819350935050505b9091565b6000806000806000806000806000613f118a600c54600d546140fb565b9250925092506000613f21613be8565b90506000806000613f348e878787614191565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613f9e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135ac565b905092915050565b6000808284613fb59190614d0e565b905083811015613ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ff190615566565b60405180910390fd5b8091505092915050565b600061400e613be8565b905060006140258284613ad290919063ffffffff16565b905061407981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fa690919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6140d682600354613f5c90919063ffffffff16565b6003819055506140f181600454613fa690919063ffffffff16565b6004819055505050565b6000806000806141276064614119888a613ad290919063ffffffff16565b613b4c90919063ffffffff16565b905060006141516064614143888b613ad290919063ffffffff16565b613b4c90919063ffffffff16565b9050600061417a8261416c858c613f5c90919063ffffffff16565b613f5c90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806141aa8589613ad290919063ffffffff16565b905060006141c18689613ad290919063ffffffff16565b905060006141d88789613ad290919063ffffffff16565b90506000614201826141f38587613f5c90919063ffffffff16565b613f5c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614254578082015181840152602081019050614239565b60008484015250505050565b6000601f19601f8301169050919050565b600061427c8261421a565b6142868185614225565b9350614296818560208601614236565b61429f81614260565b840191505092915050565b600060208201905081810360008301526142c48184614271565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614301826142d6565b9050919050565b614311816142f6565b811461431c57600080fd5b50565b60008135905061432e81614308565b92915050565b6000819050919050565b61434781614334565b811461435257600080fd5b50565b6000813590506143648161433e565b92915050565b60008060408385031215614381576143806142cc565b5b600061438f8582860161431f565b92505060206143a085828601614355565b9150509250929050565b60008115159050919050565b6143bf816143aa565b82525050565b60006020820190506143da60008301846143b6565b92915050565b6000602082840312156143f6576143f56142cc565b5b600061440484828501614355565b91505092915050565b614416816143aa565b811461442157600080fd5b50565b6000813590506144338161440d565b92915050565b60006020828403121561444f5761444e6142cc565b5b600061445d84828501614424565b91505092915050565b61446f81614334565b82525050565b600060208201905061448a6000830184614466565b92915050565b6000806000606084860312156144a9576144a86142cc565b5b60006144b78682870161431f565b93505060206144c88682870161431f565b92505060406144d986828701614355565b9150509250925092565b6000602082840312156144f9576144f86142cc565b5b60006145078482850161431f565b91505092915050565b600060ff82169050919050565b61452681614510565b82525050565b6000602082019050614541600083018461451d565b92915050565b6000614552826142d6565b9050919050565b61456281614547565b811461456d57600080fd5b50565b60008135905061457f81614559565b92915050565b60006020828403121561459b5761459a6142cc565b5b60006145a984828501614570565b91505092915050565b6145bb816142f6565b82525050565b60006020820190506145d660008301846145b2565b92915050565b600080604083850312156145f3576145f26142cc565b5b60006146018582860161431f565b925050602061461285828601614424565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126146415761464061461c565b5b8235905067ffffffffffffffff81111561465e5761465d614621565b5b60208301915083602082028301111561467a57614679614626565b5b9250929050565b60008060208385031215614698576146976142cc565b5b600083013567ffffffffffffffff8111156146b6576146b56142d1565b5b6146c28582860161462b565b92509250509250929050565b6000806000604084860312156146e7576146e66142cc565b5b600084013567ffffffffffffffff811115614705576147046142d1565b5b6147118682870161462b565b9350935050602061472486828701614424565b9150509250925092565b60008060408385031215614745576147446142cc565b5b60006147538582860161431f565b92505060206147648582860161431f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006147a4602083614225565b91506147af8261476e565b602082019050919050565b600060208201905081810360008301526147d381614797565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000614810601783614225565b915061481b826147da565b602082019050919050565b6000602082019050818103600083015261483f81614803565b9050919050565b60008151905061485581614308565b92915050565b600060208284031215614871576148706142cc565b5b600061487f84828501614846565b91505092915050565b600060408201905061489d60008301856145b2565b6148aa60208301846145b2565b9392505050565b6000819050919050565b6000819050919050565b60006148e06148db6148d6846148b1565b6148bb565b614334565b9050919050565b6148f0816148c5565b82525050565b600060c08201905061490b60008301896145b2565b6149186020830188614466565b61492560408301876148e7565b61493260608301866148e7565b61493f60808301856145b2565b61494c60a0830184614466565b979650505050505050565b6000815190506149668161433e565b92915050565b600080600060608486031215614985576149846142cc565b5b600061499386828701614957565b93505060206149a486828701614957565b92505060406149b586828701614957565b9150509250925092565b60006040820190506149d460008301856145b2565b6149e16020830184614466565b9392505050565b6000815190506149f78161440d565b92915050565b600060208284031215614a1357614a126142cc565b5b6000614a21848285016149e8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614a6482614334565b9150614a6f83614334565b9250828202614a7d81614334565b91508282048414831517614a9457614a93614a2a565b5b5092915050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b6000614ad1601483614225565b9150614adc82614a9b565b602082019050919050565b60006020820190508181036000830152614b0081614ac4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614b63603983614225565b9150614b6e82614b07565b604082019050919050565b60006020820190508181036000830152614b9281614b56565b9050919050565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b6000614bf5602383614225565b9150614c0082614b99565b604082019050919050565b60006020820190508181036000830152614c2481614be8565b9050919050565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b6000614c61601f83614225565b9150614c6c82614c2b565b602082019050919050565b60006020820190508181036000830152614c9081614c54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614cd182614334565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d0357614d02614a2a565b5b600182019050919050565b6000614d1982614334565b9150614d2483614334565b9250828201905080821115614d3c57614d3b614a2a565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d9e602683614225565b9150614da982614d42565b604082019050919050565b60006020820190508181036000830152614dcd81614d91565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614e30602483614225565b9150614e3b82614dd4565b604082019050919050565b60006020820190508181036000830152614e5f81614e23565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ec2602283614225565b9150614ecd82614e66565b604082019050919050565b60006020820190508181036000830152614ef181614eb5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f54602583614225565b9150614f5f82614ef8565b604082019050919050565b60006020820190508181036000830152614f8381614f47565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614fe6602383614225565b9150614ff182614f8a565b604082019050919050565b6000602082019050818103600083015261501581614fd9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000615078602983614225565b91506150838261501c565b604082019050919050565b600060208201905081810360008301526150a78161506b565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061510a602383614225565b9150615115826150ae565b604082019050919050565b60006020820190508181036000830152615139816150fd565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000615176601883614225565b915061518182615140565b602082019050919050565b600060208201905081810360008301526151a581615169565b9050919050565b60006151b782614334565b91506151c283614334565b92508282039050818111156151da576151d9614a2a565b5b92915050565b600081905092915050565b50565b60006151fb6000836151e0565b9150615206826151eb565b600082019050919050565b600061521c826151ee565b9150819050919050565b600060408201905061523b60008301856143b6565b61524860208301846143b6565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006152ab602a83614225565b91506152b68261524f565b604082019050919050565b600060208201905081810360008301526152da8161529e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615345816142f6565b82525050565b6000615357838361533c565b60208301905092915050565b6000602082019050919050565b600061537b82615310565b615385818561531b565b93506153908361532c565b8060005b838110156153c15781516153a8888261534b565b97506153b383615363565b925050600181019050615394565b5085935050505092915050565b600060a0820190506153e36000830188614466565b6153f060208301876148e7565b81810360408301526154028186615370565b905061541160608301856145b2565b61541e6080830184614466565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061546282614334565b915061546d83614334565b92508261547d5761547c615428565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006154e4602183614225565b91506154ef82615488565b604082019050919050565b60006020820190508181036000830152615513816154d7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615550601b83614225565b915061555b8261551a565b602082019050919050565b6000602082019050818103600083015261557f81615543565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd4555624eb8dfa70a9dc0a40e851cad547ff909cc0600b001cbee394e7f2d3564736f6c63430008120033

Deployed Bytecode Sourcemap

5934:16203:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15309:762;;;;;;;;;;;;;:::i;:::-;;8546:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20702:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17236:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18203:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17858:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20127:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20871:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18597:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19333:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20036:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18698:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17604:69;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16525:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18000:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16083:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17681:69;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19172:153;;;;;;;;;;;;;:::i;:::-;;20230:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3838:148;;;;;;;;;;;;;:::i;:::-;;16768:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18799:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17356:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3195:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19941:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17758:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19550:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4860:305;;;;;;;;;;;;;:::i;:::-;;20376:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18313:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4393:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17481:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16649;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16888:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19441:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4558:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20551:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18109:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17106:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16315:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4141:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15309:762;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15368:11:::1;;;;;;;;;;;15367:12;15359:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15417:35;15474:42;15417:100;;15546:16;15528:15;;:34;;;;;;;;;;;;;;;;;;15573:58;15590:4;15605:15;;;;;;;;;;;6242:12;15573:8;:58::i;:::-;15676:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15658:56;;;15723:4;15730:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15658:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15642:13;;:112;;;;;;;;;;;;;;;;;;15765:15;;;;;;;;;;;:31;;;15804:21;15835:4;15841:24;15859:4;15841:9;:24::i;:::-;15866:1;15868::::0;15870:7:::1;:5;:7::i;:::-;15878:15;15765:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15912:13;;;;;;;;;;;15905:29;;;15943:15;;;;;;;;;;;15961:14;15905:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16001:4;15987:11;;:18;;;;;;;;;;;;;;;;;;16059:4;16016:25;:40;16042:13;;;;;;;;;;;16016:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;15348:723;15309:762::o:0;8546:83::-;8583:13;8616:5;;;;;;;;;;;;;;;;;8609:12;;8546:83;:::o;20702:161::-;20777:4;20794:39;20803:12;:10;:12::i;:::-;20817:7;20826:6;20794:8;:39::i;:::-;20851:4;20844:11;;20702:161;;;;:::o;17236:112::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17313:2:::1;17306:3;:9;;17298:18;;;::::0;::::1;;17337:3;17327:7;:13;;;;17236:112:::0;:::o;18203:98::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18288:5:::1;18271:14;;:22;;;;;;;;;;;;;;;;;;18203:98:::0;:::o;17858:134::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17979:5:::1;17968:8;:16;;;;:::i;:::-;17942:23;:42;;;;17858:134:::0;:::o;20127:95::-;20180:7;6242:12;20200:14;;20127:95;:::o;20871:313::-;20969:4;20986:36;20996:6;21004:9;21015:6;20986:9;:36::i;:::-;21033:121;21042:6;21050:12;:10;:12::i;:::-;21064:89;21102:6;21064:89;;;;;;;;;;;;;;;;;:11;:19;21076:6;21064:19;;;;;;;;;;;;;;;:33;21084:12;:10;:12::i;:::-;21064:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21033:8;:121::i;:::-;21172:4;21165:11;;20871:313;;;;;:::o;18597:89::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18673:5:::1;18657;:13;18663:6;18657:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18597:89:::0;:::o;19333:100::-;19377:4;19401:24;19419:4;19401:9;:24::i;:::-;19394:31;;19333:100;:::o;20036:83::-;20077:5;6150:1;20095:16;;20036:83;:::o;18698:89::-;18746:4;18770:5;:9;18776:2;18770:9;;;;;;;;;;;;;;;;;;;;;;;;;18763:16;;18698:89;;;:::o;17604:69::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17664:1:::1;17659:2;:6;;;;17604:69:::0;:::o;16525:112::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16625:4:::1;16600:18;:22;16619:2;16600:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16525:112:::0;:::o;18000:101::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18088:5:::1;18082:3;:11;;;;:::i;:::-;18065:14;:28;;;;18000:101:::0;:::o;16083:224::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16208:5:::1;16169:18;:36;16188:16;;;;;;;;;;;16169:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;16243:9;16224:16;;:28;;;;;;;;;;;;;;;;;;16295:4;16263:18;:29;16282:9;16263:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;16083:224:::0;:::o;17681:69::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17741:1:::1;17736:2;:6;;;;17681:69:::0;:::o;19172:153::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19224:26:::1;19253:21;19224:50;;19285:32;19298:18;19285:12;:32::i;:::-;19213:112;19172:153::o:0;20230:138::-;20296:7;20323:37;20343:7;:16;20351:7;20343:16;;;;;;;;;;;;;;;;20323:19;:37::i;:::-;20316:44;;20230:138;;;:::o;3838:148::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3945:1:::1;3908:40;;3929:6;::::0;::::1;;;;;;;;3908:40;;;;;;;;;;;;3976:1;3959:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3838:148::o:0;16768:112::-;16826:4;16850:18;:22;16869:2;16850:22;;;;;;;;;;;;;;;;;;;;;;;;;16843:29;;16768:112;;;:::o;18799:361::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18862:23:::1;18888:24;18906:4;18888:9;:24::i;:::-;18862:50;;18934:1;18927:3;:8:::0;18923:230:::1;;18952:33;18969:15;18952:16;:33::i;:::-;18923:230;;;19030:5;19024:3;:11;;;;:::i;:::-;19018:17;;19077:3;19058:15;:22;;19050:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19120:21;19137:3;19120:16;:21::i;:::-;18923:230;18851:309;18799:361:::0;:::o;17356:117::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17436:2:::1;17428:4;:10;;17420:19;;;::::0;::::1;;17461:4;17450:8;:15;;;;17356:117:::0;:::o;3195:79::-;3233:7;3260:6;;;;;;;;;;;3253:13;;3195:79;:::o;19941:87::-;19980:13;20013:7;;;;;;;;;;;;;;;;;20006:14;;19941:87;:::o;17758:92::-;17804:7;17831:11;;17824:18;;17758:92;:::o;19550:244::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19659:13:::1;;;;;;;;;;;19651:21;;:4;:21;;::::0;19643:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19745:41;19774:4;19780:5;19745:28;:41::i;:::-;19550:244:::0;;:::o;4860:305::-;4930:10;4912:28;;:14;;;;;;;;;;;:28;;;4904:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5017:9;;4999:15;:27;4991:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5108:14;;;;;;;;;;;5079:44;;5100:6;;;;;;;;;;5079:44;;;;;;;;;;;;5143:14;;;;;;;;;;;5134:6;;:23;;;;;;;;;;;;;;;;;;4860:305::o;20376:167::-;20454:4;20471:42;20481:12;:10;:12::i;:::-;20495:9;20506:6;20471:9;:42::i;:::-;20531:4;20524:11;;20376:167;;;;:::o;18313:272::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18389:6:::1;18384:194;18405:5;;:12;;18401:1;:16;18384:194;;;18455:13;;;;;;;;;;;18443:25;;:5;;18449:1;18443:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:25;;;;:65;;;;;18492:15;;;;;;;;;;;18472:36;;:5;;18478:1;18472:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:36;;;;18443:65;18439:128;;;18547:4;18529:5;:15;18535:5;;18541:1;18535:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18529:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18439:128;18419:3;;;;;:::i;:::-;;;;18384:194;;;;18313:272:::0;;:::o;4393:89::-;4438:7;4465:9;;4458:16;;4393:89;:::o;17481:111::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17558:1:::1;17551:3;:8;;17543:17;;;::::0;::::1;;17581:3;17571:7;:13;;;;17481:111:::0;:::o;16649:::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16747:5:::1;16722:18;:22;16741:2;16722:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;16649:111:::0;:::o;16888:206::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16987:6:::1;16982:105;17003:3;;:10;;16999:1;:14;16982:105;;;17070:5;17035:24;:32;17060:3;;17064:1;17060:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17035:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;17015:3;;;;;:::i;:::-;;;;16982:105;;;;16888:206:::0;;;:::o;19441:101::-;19486:4;19510:24;19520:13;;;;;;;;;;;19510:9;:24::i;:::-;19503:31;;19441:101;:::o;4558:226::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4639:6:::1;::::0;::::1;;;;;;;;4622:14;;:23;;;;;;;;;;;;;;;;;;4673:1;4656:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4716:4;4698:15;:22;;;;:::i;:::-;4686:9;:34;;;;4773:1;4736:40;;4757:6;::::0;::::1;;;;;;;;4736:40;;;;;;;;;;;;4558:226:::0;:::o;20551:143::-;20632:7;20659:11;:18;20671:5;20659:18;;;;;;;;;;;;;;;:27;20678:7;20659:27;;;;;;;;;;;;;;;;20652:34;;20551:143;;;;:::o;18109:86::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18182:5:::1;18171:8;;:16;;;;;;;;;;;;;;;;;;18109:86:::0;:::o;17106:122::-;17168:4;17192:24;:28;17217:2;17192:28;;;;;;;;;;;;;;;;;;;;;;;;;17185:35;;17106:122;;;:::o;16315:202::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16427:5:::1;16395:18;:29;16414:9;;;;;;;;;;;16395:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;16455:8;16443:9;;:20;;;;;;;;;;;;;;;;;;16505:4;16474:18;:28;16493:8;16474:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16315:202:::0;:::o;4141:244::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4250:1:::1;4230:22;;:8;:22;;::::0;4222:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4340:8;4311:38;;4332:6;::::0;::::1;;;;;;;;4311:38;;;;;;;;;;;;4369:8;4360:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4141:244:::0;:::o;2529:98::-;2582:7;2609:10;2602:17;;2529:98;:::o;21799:335::-;21909:1;21892:19;;:5;:19;;;21884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21990:1;21971:21;;:7;:21;;;21963:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22072:6;22042:11;:18;22054:5;22042:18;;;;;;;;;;;;;;;:27;22061:7;22042:27;;;;;;;;;;;;;;;:36;;;;22110:7;22094:32;;22103:5;22094:32;;;22119:6;22094:32;;;;;;:::i;:::-;;;;;;;;21799:335;;;:::o;8641:2208::-;8745:1;8729:18;;:4;:18;;;8721:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8822:1;8808:16;;:2;:16;;;8800:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8892:1;8883:6;:10;8875:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8963:7;:5;:7::i;:::-;8955:15;;:4;:15;;;;:32;;;;;8980:7;:5;:7::i;:::-;8974:13;;:2;:13;;;;8955:32;8952:1567;;;9027:5;:11;9033:4;9027:11;;;;;;;;;;;;;;;;;;;;;;;;;9026:12;:26;;;;;9043:5;:9;9049:2;9043:9;;;;;;;;;;;;;;;;;;;;;;;;;9042:10;9026:26;9018:35;;;;;;9079:13;;;;;;;;;;;9073:19;;:2;:19;;;;:52;;;;;9097:24;:28;9122:2;9097:28;;;;;;;;;;;;;;;;;;;;;;;;;9096:29;9073:52;9070:189;;;9189:14;;9179:6;9154:22;9172:2;9154:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;9146:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;9070:189;9298:13;;;;;;;;;;;9290:21;;:4;:21;;;:55;;;;;9329:15;;;;;;;;;;;9315:30;;:2;:30;;;;9290:55;:82;;;;;9350:18;:22;9369:2;9350:22;;;;;;;;;;;;;;;;;;;;;;;;;9349:23;9290:82;9287:341;;;9401:11;;;;;;;;;;;9393:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9471:7;;9460:8;:18;;;;9513:40;9550:2;;9513:32;9542:2;;9513:24;9523:13;;;;;;;;;;;9513:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;:36;;:40;;;;:::i;:::-;9503:6;:50;9499:114;;9592:1;9578:11;:15;;;;9499:114;9287:341;9642:28;9673:24;9691:4;9673:9;:24::i;:::-;9642:55;;9718:6;;;;;;;;;;;9717:7;:32;;;;;9736:13;;;;;;;;;;;9728:21;;:4;:21;;;;9717:32;:47;;;;;9753:11;;;;;;;;;;;9717:47;9714:794;;;9791:14;;;;;;;;;;;9787:291;;;9841:8;;9830;:19;;;;9787:291;;;9920:11;;9909:8;;:22;;;;:::i;:::-;9898:8;:33;;;;9991:2;9980:8;;:13;9976:83;;;10033:2;10022:8;:13;;;;9976:83;9787:291;10102:25;:29;10128:2;10102:29;;;;;;;;;;;;;;;;;;;;;;;;;10098:393;;;10182:23;;10159:20;:46;10156:280;;;10238:8;;;;;;;;;;;10234:119;;10302:23;;10279:46;;10234:119;10379:33;10391:20;10379:11;:33::i;:::-;10156:280;10458:11;;:13;;;;;;;;;:::i;:::-;;;;;;10098:393;9714:794;8989:1530;8952:1567;10529:12;10544:4;10529:19;;10564:18;:24;10583:4;10564:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10592:18;:22;10611:2;10592:22;;;;;;;;;;;;;;;;;;;;;;;;;10564:50;10561:97;;;10641:5;10631:15;;10561:97;10674:25;:31;10700:4;10674:31;;;;;;;;;;;;;;;;;;;;;;;;;10673:32;:66;;;;;10710:25;:29;10736:2;10710:29;;;;;;;;;;;;;;;;;;;;;;;;;10709:30;10673:66;10670:113;;;10766:5;10756:15;;10670:113;10803:38;10818:4;10823:2;10826:6;10833:7;10803:14;:38::i;:::-;8710:2139;8641:2208;;;:::o;1080:192::-;1166:7;1199:1;1194;:6;;1202:12;1186:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1226:9;1242:1;1238;:5;;;;:::i;:::-;1226:17;;1263:1;1256:8;;;1080:192;;;;;:::o;12173:251::-;12231:13;12250:9;;;;;;;;;;;:14;;12272:13;12283:1;12272:6;:10;;:13;;;;:::i;:::-;12250:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12230:60;;;12302:14;12322:16;;;;;;;;;;;:21;;12351:13;12362:1;12351:6;:10;;:13;;;;:::i;:::-;12322:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12301:68;;;12387:29;12396:8;12406:9;12387:29;;;;;;;:::i;:::-;;;;;;;;12219:205;;12173:251;:::o;21192:254::-;21259:7;21298;;21287;:18;;21279:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21363:19;21386:10;:8;:10::i;:::-;21363:33;;21414:24;21426:11;21414:7;:11;;:24;;;;:::i;:::-;21407:31;;;21192:254;;;:::o;11674:483::-;7764:4;7755:6;;:13;;;;;;;;;;;;;;;;;;11752:21:::1;11790:1;11776:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11752:40;;11821:4;11803;11808:1;11803:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11847:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11837:4;11842:1;11837:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11880:62;11897:4;11912:15;;;;;;;;;;;11930:11;11880:8;:62::i;:::-;11953:15;;;;;;;;;;;:66;;;12034:11;12060:1;12076:4;12103;12123:15;11953:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11741:416;7800:5:::0;7791:6;;:14;;;;;;;;;;;;;;;;;;11674:483;:::o;19802:130::-;19919:5;19885:25;:31;19911:4;19885:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19802:130;;:::o;1280:471::-;1338:7;1588:1;1583;:6;1579:47;;1613:1;1606:8;;;;1579:47;1638:9;1654:1;1650;:5;;;;:::i;:::-;1638:17;;1683:1;1678;1674;:5;;;;:::i;:::-;:10;1666:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1742:1;1735:8;;;1280:471;;;;;:::o;1759:132::-;1817:7;1844:39;1848:1;1851;1844:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1837:46;;1759:132;;;;:::o;11378:288::-;11458:38;11475:20;11458:16;:38::i;:::-;11509:26;11538:21;11509:50;;11594:1;11573:18;:22;11570:89;;;11612:35;11625:21;11612:12;:35::i;:::-;11570:89;11437:229;11378:288;:::o;12436:263::-;12548:7;12544:40;;12570:14;:12;:14::i;:::-;12544:40;12595:44;12613:6;12621:9;12632:6;12595:17;:44::i;:::-;12654:7;12650:41;;12676:15;:13;:15::i;:::-;12650:41;12436:263;;;;:::o;14040:163::-;14081:7;14102:15;14119;14138:19;:17;:19::i;:::-;14101:56;;;;14175:20;14187:7;14175;:11;;:20;;;;:::i;:::-;14168:27;;;;14040:163;:::o;1899:278::-;1985:7;2017:1;2013;:5;2020:12;2005:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2044:9;2060:1;2056;:5;;;;:::i;:::-;2044:17;;2168:1;2161:8;;;1899:278;;;;;:::o;21454:210::-;21511:1;21500:7;;:12;:29;;;;;21528:1;21516:8;;:13;21500:29;21531:7;21497:41;21566:7;;21548:15;:25;;;;21603:8;;21584:16;:27;;;;21632:1;21622:7;:11;;;;21655:1;21644:8;:12;;;;21454:210;:::o;12707:490::-;12806:15;12823:23;12848:12;12862:23;12887:12;12901:13;12918:19;12929:7;12918:10;:19::i;:::-;12805:132;;;;;;;;;;;;12966:28;12986:7;12966;:15;12974:6;12966:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12948:7;:15;12956:6;12948:15;;;;;;;;;;;;;;;:46;;;;13026:39;13049:15;13026:7;:18;13034:9;13026:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13005:7;:18;13013:9;13005:18;;;;;;;;;;;;;;;:60;;;;13079:16;13089:5;13079:9;:16::i;:::-;13106:23;13118:4;13124;13106:11;:23::i;:::-;13162:9;13145:44;;13154:6;13145:44;;;13173:15;13145:44;;;;;;:::i;:::-;;;;;;;;12794:403;;;;;;12707:490;;;:::o;21676:115::-;21730:15;;21720:7;:25;;;;21767:16;;21756:8;:27;;;;21676:115::o;14211:255::-;14261:7;14270;14290:15;14308:7;;14290:25;;14326:15;6242:12;14326:25;;14375:20;6242:12;14375:7;;:11;;:20;;;;:::i;:::-;14365:7;:30;14362:60;;;14405:7;;6242:12;14397:25;;;;;;;;14362:60;14441:7;14450;14433:25;;;;;;14211:255;;;:::o;13205:468::-;13264:7;13273;13282;13291;13300;13309;13330:23;13355:12;13369:13;13386:39;13398:7;13407;;13416:8;;13386:11;:39::i;:::-;13329:96;;;;;;13436:19;13459:10;:8;:10::i;:::-;13436:33;;13481:15;13498:23;13523:12;13539:46;13551:7;13560:4;13566:5;13573:11;13539;:46::i;:::-;13480:105;;;;;;13604:7;13613:15;13630:4;13636:15;13653:4;13659:5;13596:69;;;;;;;;;;;;;;;;;;;13205:468;;;;;;;:::o;936:136::-;994:7;1021:43;1025:1;1028;1021:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1014:50;;936:136;;;;:::o;747:181::-;805:7;825:9;841:1;837;:5;;;;:::i;:::-;825:17;;866:1;861;:6;;853:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;919:1;912:8;;;747:181;;;;:::o;14891:214::-;14944:19;14967:10;:8;:10::i;:::-;14944:33;;14988:13;15004:22;15014:11;15004:5;:9;;:22;;;;:::i;:::-;14988:38;;15064:33;15091:5;15064:7;:22;15080:4;15064:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15039:7;:22;15055:4;15039:22;;;;;;;;;;;;;;;:58;;;;14933:172;;14891:214;:::o;15113:147::-;15191:17;15203:4;15191:7;;:11;;:17;;;;:::i;:::-;15181:7;:27;;;;15232:20;15247:4;15232:10;;:14;;:20;;;;:::i;:::-;15219:10;:33;;;;15113:147;;:::o;13681:351::-;13774:7;13783;13792;13812:12;13827:28;13851:3;13827:19;13839:6;13827:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13812:43;;13866:13;13882:29;13907:3;13882:20;13894:7;13882;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13866:45;;13922:23;13948:28;13970:5;13948:17;13960:4;13948:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13922:54;;13995:15;14012:4;14018:5;13987:37;;;;;;;;;13681:351;;;;;;;:::o;14474:409::-;14584:7;14593;14602;14622:15;14640:24;14652:11;14640:7;:11;;:24;;;;:::i;:::-;14622:42;;14675:12;14690:21;14699:11;14690:4;:8;;:21;;;;:::i;:::-;14675:36;;14722:13;14738:22;14748:11;14738:5;:9;;:22;;;;:::i;:::-;14722:38;;14771:23;14797:28;14819:5;14797:17;14809:4;14797:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14771:54;;14844:7;14853:15;14870:4;14836:39;;;;;;;;;;14474:409;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:116::-;3851:21;3866:5;3851:21;:::i;:::-;3844:5;3841:32;3831:60;;3887:1;3884;3877:12;3831:60;3781:116;:::o;3903:133::-;3946:5;3984:6;3971:20;3962:29;;4000:30;4024:5;4000:30;:::i;:::-;3903:133;;;;:::o;4042:323::-;4098:6;4147:2;4135:9;4126:7;4122:23;4118:32;4115:119;;;4153:79;;:::i;:::-;4115:119;4273:1;4298:50;4340:7;4331:6;4320:9;4316:22;4298:50;:::i;:::-;4288:60;;4244:114;4042:323;;;;:::o;4371:118::-;4458:24;4476:5;4458:24;:::i;:::-;4453:3;4446:37;4371:118;;:::o;4495:222::-;4588:4;4626:2;4615:9;4611:18;4603:26;;4639:71;4707:1;4696:9;4692:17;4683:6;4639:71;:::i;:::-;4495:222;;;;:::o;4723:619::-;4800:6;4808;4816;4865:2;4853:9;4844:7;4840:23;4836:32;4833:119;;;4871:79;;:::i;:::-;4833:119;4991:1;5016:53;5061:7;5052:6;5041:9;5037:22;5016:53;:::i;:::-;5006:63;;4962:117;5118:2;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5089:118;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4723:619;;;;;:::o;5348:329::-;5407:6;5456:2;5444:9;5435:7;5431:23;5427:32;5424:119;;;5462:79;;:::i;:::-;5424:119;5582:1;5607:53;5652:7;5643:6;5632:9;5628:22;5607:53;:::i;:::-;5597:63;;5553:117;5348:329;;;;:::o;5683:86::-;5718:7;5758:4;5751:5;5747:16;5736:27;;5683:86;;;:::o;5775:112::-;5858:22;5874:5;5858:22;:::i;:::-;5853:3;5846:35;5775:112;;:::o;5893:214::-;5982:4;6020:2;6009:9;6005:18;5997:26;;6033:67;6097:1;6086:9;6082:17;6073:6;6033:67;:::i;:::-;5893:214;;;;:::o;6113:104::-;6158:7;6187:24;6205:5;6187:24;:::i;:::-;6176:35;;6113:104;;;:::o;6223:138::-;6304:32;6330:5;6304:32;:::i;:::-;6297:5;6294:43;6284:71;;6351:1;6348;6341:12;6284:71;6223:138;:::o;6367:155::-;6421:5;6459:6;6446:20;6437:29;;6475:41;6510:5;6475:41;:::i;:::-;6367:155;;;;:::o;6528:345::-;6595:6;6644:2;6632:9;6623:7;6619:23;6615:32;6612:119;;;6650:79;;:::i;:::-;6612:119;6770:1;6795:61;6848:7;6839:6;6828:9;6824:22;6795:61;:::i;:::-;6785:71;;6741:125;6528:345;;;;:::o;6879:118::-;6966:24;6984:5;6966:24;:::i;:::-;6961:3;6954:37;6879:118;;:::o;7003:222::-;7096:4;7134:2;7123:9;7119:18;7111:26;;7147:71;7215:1;7204:9;7200:17;7191:6;7147:71;:::i;:::-;7003:222;;;;:::o;7231:468::-;7296:6;7304;7353:2;7341:9;7332:7;7328:23;7324:32;7321:119;;;7359:79;;:::i;:::-;7321:119;7479:1;7504:53;7549:7;7540:6;7529:9;7525:22;7504:53;:::i;:::-;7494:63;;7450:117;7606:2;7632:50;7674:7;7665:6;7654:9;7650:22;7632:50;:::i;:::-;7622:60;;7577:115;7231:468;;;;;:::o;7705:117::-;7814:1;7811;7804:12;7828:117;7937:1;7934;7927:12;7951:117;8060:1;8057;8050:12;8091:568;8164:8;8174:6;8224:3;8217:4;8209:6;8205:17;8201:27;8191:122;;8232:79;;:::i;:::-;8191:122;8345:6;8332:20;8322:30;;8375:18;8367:6;8364:30;8361:117;;;8397:79;;:::i;:::-;8361:117;8511:4;8503:6;8499:17;8487:29;;8565:3;8557:4;8549:6;8545:17;8535:8;8531:32;8528:41;8525:128;;;8572:79;;:::i;:::-;8525:128;8091:568;;;;;:::o;8665:559::-;8751:6;8759;8808:2;8796:9;8787:7;8783:23;8779:32;8776:119;;;8814:79;;:::i;:::-;8776:119;8962:1;8951:9;8947:17;8934:31;8992:18;8984:6;8981:30;8978:117;;;9014:79;;:::i;:::-;8978:117;9127:80;9199:7;9190:6;9179:9;9175:22;9127:80;:::i;:::-;9109:98;;;;8905:312;8665:559;;;;;:::o;9230:698::-;9322:6;9330;9338;9387:2;9375:9;9366:7;9362:23;9358:32;9355:119;;;9393:79;;:::i;:::-;9355:119;9541:1;9530:9;9526:17;9513:31;9571:18;9563:6;9560:30;9557:117;;;9593:79;;:::i;:::-;9557:117;9706:80;9778:7;9769:6;9758:9;9754:22;9706:80;:::i;:::-;9688:98;;;;9484:312;9835:2;9861:50;9903:7;9894:6;9883:9;9879:22;9861:50;:::i;:::-;9851:60;;9806:115;9230:698;;;;;:::o;9934:474::-;10002:6;10010;10059:2;10047:9;10038:7;10034:23;10030:32;10027:119;;;10065:79;;:::i;:::-;10027:119;10185:1;10210:53;10255:7;10246:6;10235:9;10231:22;10210:53;:::i;:::-;10200:63;;10156:117;10312:2;10338:53;10383:7;10374:6;10363:9;10359:22;10338:53;:::i;:::-;10328:63;;10283:118;9934:474;;;;;:::o;10414:182::-;10554:34;10550:1;10542:6;10538:14;10531:58;10414:182;:::o;10602:366::-;10744:3;10765:67;10829:2;10824:3;10765:67;:::i;:::-;10758:74;;10841:93;10930:3;10841:93;:::i;:::-;10959:2;10954:3;10950:12;10943:19;;10602:366;;;:::o;10974:419::-;11140:4;11178:2;11167:9;11163:18;11155:26;;11227:9;11221:4;11217:20;11213:1;11202:9;11198:17;11191:47;11255:131;11381:4;11255:131;:::i;:::-;11247:139;;10974:419;;;:::o;11399:173::-;11539:25;11535:1;11527:6;11523:14;11516:49;11399:173;:::o;11578:366::-;11720:3;11741:67;11805:2;11800:3;11741:67;:::i;:::-;11734:74;;11817:93;11906:3;11817:93;:::i;:::-;11935:2;11930:3;11926:12;11919:19;;11578:366;;;:::o;11950:419::-;12116:4;12154:2;12143:9;12139:18;12131:26;;12203:9;12197:4;12193:20;12189:1;12178:9;12174:17;12167:47;12231:131;12357:4;12231:131;:::i;:::-;12223:139;;11950:419;;;:::o;12375:143::-;12432:5;12463:6;12457:13;12448:22;;12479:33;12506:5;12479:33;:::i;:::-;12375:143;;;;:::o;12524:351::-;12594:6;12643:2;12631:9;12622:7;12618:23;12614:32;12611:119;;;12649:79;;:::i;:::-;12611:119;12769:1;12794:64;12850:7;12841:6;12830:9;12826:22;12794:64;:::i;:::-;12784:74;;12740:128;12524:351;;;;:::o;12881:332::-;13002:4;13040:2;13029:9;13025:18;13017:26;;13053:71;13121:1;13110:9;13106:17;13097:6;13053:71;:::i;:::-;13134:72;13202:2;13191:9;13187:18;13178:6;13134:72;:::i;:::-;12881:332;;;;;:::o;13219:85::-;13264:7;13293:5;13282:16;;13219:85;;;:::o;13310:60::-;13338:3;13359:5;13352:12;;13310:60;;;:::o;13376:158::-;13434:9;13467:61;13485:42;13494:32;13520:5;13494:32;:::i;:::-;13485:42;:::i;:::-;13467:61;:::i;:::-;13454:74;;13376:158;;;:::o;13540:147::-;13635:45;13674:5;13635:45;:::i;:::-;13630:3;13623:58;13540:147;;:::o;13693:807::-;13942:4;13980:3;13969:9;13965:19;13957:27;;13994:71;14062:1;14051:9;14047:17;14038:6;13994:71;:::i;:::-;14075:72;14143:2;14132:9;14128:18;14119:6;14075:72;:::i;:::-;14157:80;14233:2;14222:9;14218:18;14209:6;14157:80;:::i;:::-;14247;14323:2;14312:9;14308:18;14299:6;14247:80;:::i;:::-;14337:73;14405:3;14394:9;14390:19;14381:6;14337:73;:::i;:::-;14420;14488:3;14477:9;14473:19;14464:6;14420:73;:::i;:::-;13693:807;;;;;;;;;:::o;14506:143::-;14563:5;14594:6;14588:13;14579:22;;14610:33;14637:5;14610:33;:::i;:::-;14506:143;;;;:::o;14655:663::-;14743:6;14751;14759;14808:2;14796:9;14787:7;14783:23;14779:32;14776:119;;;14814:79;;:::i;:::-;14776:119;14934:1;14959:64;15015:7;15006:6;14995:9;14991:22;14959:64;:::i;:::-;14949:74;;14905:128;15072:2;15098:64;15154:7;15145:6;15134:9;15130:22;15098:64;:::i;:::-;15088:74;;15043:129;15211:2;15237:64;15293:7;15284:6;15273:9;15269:22;15237:64;:::i;:::-;15227:74;;15182:129;14655:663;;;;;:::o;15324:332::-;15445:4;15483:2;15472:9;15468:18;15460:26;;15496:71;15564:1;15553:9;15549:17;15540:6;15496:71;:::i;:::-;15577:72;15645:2;15634:9;15630:18;15621:6;15577:72;:::i;:::-;15324:332;;;;;:::o;15662:137::-;15716:5;15747:6;15741:13;15732:22;;15763:30;15787:5;15763:30;:::i;:::-;15662:137;;;;:::o;15805:345::-;15872:6;15921:2;15909:9;15900:7;15896:23;15892:32;15889:119;;;15927:79;;:::i;:::-;15889:119;16047:1;16072:61;16125:7;16116:6;16105:9;16101:22;16072:61;:::i;:::-;16062:71;;16018:125;15805:345;;;;:::o;16156:180::-;16204:77;16201:1;16194:88;16301:4;16298:1;16291:15;16325:4;16322:1;16315:15;16342:410;16382:7;16405:20;16423:1;16405:20;:::i;:::-;16400:25;;16439:20;16457:1;16439:20;:::i;:::-;16434:25;;16494:1;16491;16487:9;16516:30;16534:11;16516:30;:::i;:::-;16505:41;;16695:1;16686:7;16682:15;16679:1;16676:22;16656:1;16649:9;16629:83;16606:139;;16725:18;;:::i;:::-;16606:139;16390:362;16342:410;;;;:::o;16758:170::-;16898:22;16894:1;16886:6;16882:14;16875:46;16758:170;:::o;16934:366::-;17076:3;17097:67;17161:2;17156:3;17097:67;:::i;:::-;17090:74;;17173:93;17262:3;17173:93;:::i;:::-;17291:2;17286:3;17282:12;17275:19;;16934:366;;;:::o;17306:419::-;17472:4;17510:2;17499:9;17495:18;17487:26;;17559:9;17553:4;17549:20;17545:1;17534:9;17530:17;17523:47;17587:131;17713:4;17587:131;:::i;:::-;17579:139;;17306:419;;;:::o;17731:244::-;17871:34;17867:1;17859:6;17855:14;17848:58;17940:27;17935:2;17927:6;17923:15;17916:52;17731:244;:::o;17981:366::-;18123:3;18144:67;18208:2;18203:3;18144:67;:::i;:::-;18137:74;;18220:93;18309:3;18220:93;:::i;:::-;18338:2;18333:3;18329:12;18322:19;;17981:366;;;:::o;18353:419::-;18519:4;18557:2;18546:9;18542:18;18534:26;;18606:9;18600:4;18596:20;18592:1;18581:9;18577:17;18570:47;18634:131;18760:4;18634:131;:::i;:::-;18626:139;;18353:419;;;:::o;18778:222::-;18918:34;18914:1;18906:6;18902:14;18895:58;18987:5;18982:2;18974:6;18970:15;18963:30;18778:222;:::o;19006:366::-;19148:3;19169:67;19233:2;19228:3;19169:67;:::i;:::-;19162:74;;19245:93;19334:3;19245:93;:::i;:::-;19363:2;19358:3;19354:12;19347:19;;19006:366;;;:::o;19378:419::-;19544:4;19582:2;19571:9;19567:18;19559:26;;19631:9;19625:4;19621:20;19617:1;19606:9;19602:17;19595:47;19659:131;19785:4;19659:131;:::i;:::-;19651:139;;19378:419;;;:::o;19803:181::-;19943:33;19939:1;19931:6;19927:14;19920:57;19803:181;:::o;19990:366::-;20132:3;20153:67;20217:2;20212:3;20153:67;:::i;:::-;20146:74;;20229:93;20318:3;20229:93;:::i;:::-;20347:2;20342:3;20338:12;20331:19;;19990:366;;;:::o;20362:419::-;20528:4;20566:2;20555:9;20551:18;20543:26;;20615:9;20609:4;20605:20;20601:1;20590:9;20586:17;20579:47;20643:131;20769:4;20643:131;:::i;:::-;20635:139;;20362:419;;;:::o;20787:180::-;20835:77;20832:1;20825:88;20932:4;20929:1;20922:15;20956:4;20953:1;20946:15;20973:233;21012:3;21035:24;21053:5;21035:24;:::i;:::-;21026:33;;21081:66;21074:5;21071:77;21068:103;;21151:18;;:::i;:::-;21068:103;21198:1;21191:5;21187:13;21180:20;;20973:233;;;:::o;21212:191::-;21252:3;21271:20;21289:1;21271:20;:::i;:::-;21266:25;;21305:20;21323:1;21305:20;:::i;:::-;21300:25;;21348:1;21345;21341:9;21334:16;;21369:3;21366:1;21363:10;21360:36;;;21376:18;;:::i;:::-;21360:36;21212:191;;;;:::o;21409:225::-;21549:34;21545:1;21537:6;21533:14;21526:58;21618:8;21613:2;21605:6;21601:15;21594:33;21409:225;:::o;21640:366::-;21782:3;21803:67;21867:2;21862:3;21803:67;:::i;:::-;21796:74;;21879:93;21968:3;21879:93;:::i;:::-;21997:2;21992:3;21988:12;21981:19;;21640:366;;;:::o;22012:419::-;22178:4;22216:2;22205:9;22201:18;22193:26;;22265:9;22259:4;22255:20;22251:1;22240:9;22236:17;22229:47;22293:131;22419:4;22293:131;:::i;:::-;22285:139;;22012:419;;;:::o;22437:223::-;22577:34;22573:1;22565:6;22561:14;22554:58;22646:6;22641:2;22633:6;22629:15;22622:31;22437:223;:::o;22666:366::-;22808:3;22829:67;22893:2;22888:3;22829:67;:::i;:::-;22822:74;;22905:93;22994:3;22905:93;:::i;:::-;23023:2;23018:3;23014:12;23007:19;;22666:366;;;:::o;23038:419::-;23204:4;23242:2;23231:9;23227:18;23219:26;;23291:9;23285:4;23281:20;23277:1;23266:9;23262:17;23255:47;23319:131;23445:4;23319:131;:::i;:::-;23311:139;;23038:419;;;:::o;23463:221::-;23603:34;23599:1;23591:6;23587:14;23580:58;23672:4;23667:2;23659:6;23655:15;23648:29;23463:221;:::o;23690:366::-;23832:3;23853:67;23917:2;23912:3;23853:67;:::i;:::-;23846:74;;23929:93;24018:3;23929:93;:::i;:::-;24047:2;24042:3;24038:12;24031:19;;23690:366;;;:::o;24062:419::-;24228:4;24266:2;24255:9;24251:18;24243:26;;24315:9;24309:4;24305:20;24301:1;24290:9;24286:17;24279:47;24343:131;24469:4;24343:131;:::i;:::-;24335:139;;24062:419;;;:::o;24487:224::-;24627:34;24623:1;24615:6;24611:14;24604:58;24696:7;24691:2;24683:6;24679:15;24672:32;24487:224;:::o;24717:366::-;24859:3;24880:67;24944:2;24939:3;24880:67;:::i;:::-;24873:74;;24956:93;25045:3;24956:93;:::i;:::-;25074:2;25069:3;25065:12;25058:19;;24717:366;;;:::o;25089:419::-;25255:4;25293:2;25282:9;25278:18;25270:26;;25342:9;25336:4;25332:20;25328:1;25317:9;25313:17;25306:47;25370:131;25496:4;25370:131;:::i;:::-;25362:139;;25089:419;;;:::o;25514:222::-;25654:34;25650:1;25642:6;25638:14;25631:58;25723:5;25718:2;25710:6;25706:15;25699:30;25514:222;:::o;25742:366::-;25884:3;25905:67;25969:2;25964:3;25905:67;:::i;:::-;25898:74;;25981:93;26070:3;25981:93;:::i;:::-;26099:2;26094:3;26090:12;26083:19;;25742:366;;;:::o;26114:419::-;26280:4;26318:2;26307:9;26303:18;26295:26;;26367:9;26361:4;26357:20;26353:1;26342:9;26338:17;26331:47;26395:131;26521:4;26395:131;:::i;:::-;26387:139;;26114:419;;;:::o;26539:228::-;26679:34;26675:1;26667:6;26663:14;26656:58;26748:11;26743:2;26735:6;26731:15;26724:36;26539:228;:::o;26773:366::-;26915:3;26936:67;27000:2;26995:3;26936:67;:::i;:::-;26929:74;;27012:93;27101:3;27012:93;:::i;:::-;27130:2;27125:3;27121:12;27114:19;;26773:366;;;:::o;27145:419::-;27311:4;27349:2;27338:9;27334:18;27326:26;;27398:9;27392:4;27388:20;27384:1;27373:9;27369:17;27362:47;27426:131;27552:4;27426:131;:::i;:::-;27418:139;;27145:419;;;:::o;27570:222::-;27710:34;27706:1;27698:6;27694:14;27687:58;27779:5;27774:2;27766:6;27762:15;27755:30;27570:222;:::o;27798:366::-;27940:3;27961:67;28025:2;28020:3;27961:67;:::i;:::-;27954:74;;28037:93;28126:3;28037:93;:::i;:::-;28155:2;28150:3;28146:12;28139:19;;27798:366;;;:::o;28170:419::-;28336:4;28374:2;28363:9;28359:18;28351:26;;28423:9;28417:4;28413:20;28409:1;28398:9;28394:17;28387:47;28451:131;28577:4;28451:131;:::i;:::-;28443:139;;28170:419;;;:::o;28595:174::-;28735:26;28731:1;28723:6;28719:14;28712:50;28595:174;:::o;28775:366::-;28917:3;28938:67;29002:2;28997:3;28938:67;:::i;:::-;28931:74;;29014:93;29103:3;29014:93;:::i;:::-;29132:2;29127:3;29123:12;29116:19;;28775:366;;;:::o;29147:419::-;29313:4;29351:2;29340:9;29336:18;29328:26;;29400:9;29394:4;29390:20;29386:1;29375:9;29371:17;29364:47;29428:131;29554:4;29428:131;:::i;:::-;29420:139;;29147:419;;;:::o;29572:194::-;29612:4;29632:20;29650:1;29632:20;:::i;:::-;29627:25;;29666:20;29684:1;29666:20;:::i;:::-;29661:25;;29710:1;29707;29703:9;29695:17;;29734:1;29728:4;29725:11;29722:37;;;29739:18;;:::i;:::-;29722:37;29572:194;;;;:::o;29772:147::-;29873:11;29910:3;29895:18;;29772:147;;;;:::o;29925:114::-;;:::o;30045:398::-;30204:3;30225:83;30306:1;30301:3;30225:83;:::i;:::-;30218:90;;30317:93;30406:3;30317:93;:::i;:::-;30435:1;30430:3;30426:11;30419:18;;30045:398;;;:::o;30449:379::-;30633:3;30655:147;30798:3;30655:147;:::i;:::-;30648:154;;30819:3;30812:10;;30449:379;;;:::o;30834:308::-;30943:4;30981:2;30970:9;30966:18;30958:26;;30994:65;31056:1;31045:9;31041:17;31032:6;30994:65;:::i;:::-;31069:66;31131:2;31120:9;31116:18;31107:6;31069:66;:::i;:::-;30834:308;;;;;:::o;31148:229::-;31288:34;31284:1;31276:6;31272:14;31265:58;31357:12;31352:2;31344:6;31340:15;31333:37;31148:229;:::o;31383:366::-;31525:3;31546:67;31610:2;31605:3;31546:67;:::i;:::-;31539:74;;31622:93;31711:3;31622:93;:::i;:::-;31740:2;31735:3;31731:12;31724:19;;31383:366;;;:::o;31755:419::-;31921:4;31959:2;31948:9;31944:18;31936:26;;32008:9;32002:4;31998:20;31994:1;31983:9;31979:17;31972:47;32036:131;32162:4;32036:131;:::i;:::-;32028:139;;31755:419;;;:::o;32180:180::-;32228:77;32225:1;32218:88;32325:4;32322:1;32315:15;32349:4;32346:1;32339:15;32366:114;32433:6;32467:5;32461:12;32451:22;;32366:114;;;:::o;32486:184::-;32585:11;32619:6;32614:3;32607:19;32659:4;32654:3;32650:14;32635:29;;32486:184;;;;:::o;32676:132::-;32743:4;32766:3;32758:11;;32796:4;32791:3;32787:14;32779:22;;32676:132;;;:::o;32814:108::-;32891:24;32909:5;32891:24;:::i;:::-;32886:3;32879:37;32814:108;;:::o;32928:179::-;32997:10;33018:46;33060:3;33052:6;33018:46;:::i;:::-;33096:4;33091:3;33087:14;33073:28;;32928:179;;;;:::o;33113:113::-;33183:4;33215;33210:3;33206:14;33198:22;;33113:113;;;:::o;33262:732::-;33381:3;33410:54;33458:5;33410:54;:::i;:::-;33480:86;33559:6;33554:3;33480:86;:::i;:::-;33473:93;;33590:56;33640:5;33590:56;:::i;:::-;33669:7;33700:1;33685:284;33710:6;33707:1;33704:13;33685:284;;;33786:6;33780:13;33813:63;33872:3;33857:13;33813:63;:::i;:::-;33806:70;;33899:60;33952:6;33899:60;:::i;:::-;33889:70;;33745:224;33732:1;33729;33725:9;33720:14;;33685:284;;;33689:14;33985:3;33978:10;;33386:608;;;33262:732;;;;:::o;34000:831::-;34263:4;34301:3;34290:9;34286:19;34278:27;;34315:71;34383:1;34372:9;34368:17;34359:6;34315:71;:::i;:::-;34396:80;34472:2;34461:9;34457:18;34448:6;34396:80;:::i;:::-;34523:9;34517:4;34513:20;34508:2;34497:9;34493:18;34486:48;34551:108;34654:4;34645:6;34551:108;:::i;:::-;34543:116;;34669:72;34737:2;34726:9;34722:18;34713:6;34669:72;:::i;:::-;34751:73;34819:3;34808:9;34804:19;34795:6;34751:73;:::i;:::-;34000:831;;;;;;;;:::o;34837:180::-;34885:77;34882:1;34875:88;34982:4;34979:1;34972:15;35006:4;35003:1;34996:15;35023:185;35063:1;35080:20;35098:1;35080:20;:::i;:::-;35075:25;;35114:20;35132:1;35114:20;:::i;:::-;35109:25;;35153:1;35143:35;;35158:18;;:::i;:::-;35143:35;35200:1;35197;35193:9;35188:14;;35023:185;;;;:::o;35214:220::-;35354:34;35350:1;35342:6;35338:14;35331:58;35423:3;35418:2;35410:6;35406:15;35399:28;35214:220;:::o;35440:366::-;35582:3;35603:67;35667:2;35662:3;35603:67;:::i;:::-;35596:74;;35679:93;35768:3;35679:93;:::i;:::-;35797:2;35792:3;35788:12;35781:19;;35440:366;;;:::o;35812:419::-;35978:4;36016:2;36005:9;36001:18;35993:26;;36065:9;36059:4;36055:20;36051:1;36040:9;36036:17;36029:47;36093:131;36219:4;36093:131;:::i;:::-;36085:139;;35812:419;;;:::o;36237:177::-;36377:29;36373:1;36365:6;36361:14;36354:53;36237:177;:::o;36420:366::-;36562:3;36583:67;36647:2;36642:3;36583:67;:::i;:::-;36576:74;;36659:93;36748:3;36659:93;:::i;:::-;36777:2;36772:3;36768:12;36761:19;;36420:366;;;:::o;36792:419::-;36958:4;36996:2;36985:9;36981:18;36973:26;;37045:9;37039:4;37035:20;37031:1;37020:9;37016:17;37009:47;37073:131;37199:4;37073:131;:::i;:::-;37065:139;;36792:419;;;:::o

Swarm Source

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