ETH Price: $3,201.80 (+5.05%)

Token

Non Fungible Capital (NFC)
 

Overview

Max Total Supply

1,000,000,000,000 NFC

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,479,534,172.536422573 NFC

Value
$0.00
0x635540C2BBf977d940bFb2C392BEf54b5449a313
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:
NonFungibleCapital

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-06
*/

/**

Non Fungible Capital: $NFC
-You buy on Ethereum, we invest in NFTs that have true utility & farm on multiple chains to return the profits to $NFC holders + NFT giveaways.
    
1) 10% tax is collected and distributed to holders for HODLing.
2) 10-15% farming and operations tax.
    
Website:
https://nfc.farm

Telegram:
https://t.me/nonfungiblecapital

Twitter:
https://twitter.com/NFC_FARM
                                                                    
*/

/** 
 * There is not a pause contract button.
 * Deployer cannot disable sells.
 * Sell taxes cannot be raised higher than a designated percent written into the contract and noted as such.
 * Sells cannot exceed 25%.
 * Built-in whale protection: Max wallet size, max Tx amount and max amount to swap for ETH.
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract NonFungibleCapital is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Non Fungible Capital";
    string private constant _symbol = "NFC";
    uint8 private constant _decimals = 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) public _isExcludedMaxTxAmount;
    mapping(address => bool) private _isExcludedFromReflection;
    address[] private _excludedFromReflection;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e9 * 1e9; //1,000,000,000,000
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    mapping(address => bool) public bots;
    
   
    uint256 private _reflectionFeeOnBuy = 10;
    uint256 private _taxFeeOnBuy = 15;
    
    
    uint256 private _reflectionFeeOnSell = 10;
    uint256 private _taxFeeOnSell = 15;
    
    uint256 private _reflectionFee = _reflectionFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousReflectionFee = _reflectionFee;
    uint256 private _previousTaxFee = _taxFee;
    
    address payable public _nfcAddress = payable(0xCbB1d245613DC6c3C05c1f18dfc9Ae763154D9aa); //Investment wallet
    address payable public _mktgAddress = payable(0x48F92371a12573FEE2aB79F085f13Cb168a2E24D); //Marketing wallet
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public tradingActive = false;
    
    uint256 public _maxTxAmount = 2500 * 1e7 * 1e9; //max transaction set to 2.5%
    uint256 public _maxWalletSize = 2500 * 1e7 * 1e9; //max wallet set to 2.5%
    uint256 public _swapTokensAtAmount = 5000 * 1e6 * 1e9; //amount of tokens to swap for eth 0.5%

    event ExcludeFromReflection(address excludedAddress);
    event IncludeInReflection(address includedAddress);

    event ExcludeFromFee(address excludedAddress);
    event IncludeInFee(address includedAddress);

    event UpdatedMktgAddress(address mktg); //Marketing wallet
    event UpdatedNfcAddress(address nfc); //Investment wallet

    event SetBuyFee(uint256 buyMktgFee, uint256 buyReflectionFee);
    event SetSellFee(uint256 sellMktgFee, uint256 sellReflectionFee);
    
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
               
        _rOwned[_msgSender()] = _rTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_nfcAddress] = true;
        _isExcludedFromFee[_mktgAddress] = true;

        excludeFromMaxTxAmount(owner(), true);
        excludeFromMaxTxAmount(address(this), true);
        excludeFromMaxTxAmount(address(_nfcAddress), true);
        excludeFromMaxTxAmount(address(_mktgAddress), true);
        
        emit Transfer(address(0), _msgSender(), _tTotal);

    }

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

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

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

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

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

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

    function excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
        emit ExcludeFromFee(account);
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
        emit IncludeInFee(account);
    }

    function excludeFromReflection(address account) public onlyOwner {
        require(!_isExcludedFromReflection[account], "Account is already excluded");
        require(_excludedFromReflection.length + 1 <= 50, "Cannot exclude more than 50 accounts.  Include a previously excluded address.");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcludedFromReflection[account] = true;
        _excludedFromReflection.push(account);
    }

    function includeInReflection(address account) public onlyOwner {
        require(_isExcludedFromReflection[account], "Account is not excluded from reflection");
        for (uint256 i = 0; i < _excludedFromReflection.length; i++) {
            if (_excludedFromReflection[i] == account) {
                _excludedFromReflection[i] = _excludedFromReflection[_excludedFromReflection.length - 1];
                _tOwned[account] = 0;
                _isExcludedFromReflection[account] = false;
                _excludedFromReflection.pop();
                break;
            }
        }
    }

    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 (_reflectionFee == 0 && _taxFee == 0) return;
    
        _previousReflectionFee = _reflectionFee;
        _previousTaxFee = _taxFee;
        
        _reflectionFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _reflectionFee = _previousReflectionFee;
        _taxFee = _previousTaxFee;
    }

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

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

        if (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingActive) 
              
            if(to != uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (!_isExcludedFromFee[from]) {
                        require(amount <= _maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

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

    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 {
        _nfcAddress.transfer(amount.div(2));
        _mktgAddress.transfer(amount.div(2));
    }

    function manualSwap() external {
        require(_msgSender() == _nfcAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualSend() external {
        require(_msgSender() == _nfcAddress || _msgSender() == _mktgAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    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 _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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _reflectionFee, _taxFee);
        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 reflectionFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(reflectionFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    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 _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 setFee(uint256 reflectionFeeOnBuy, uint256 reflectionFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _reflectionFeeOnBuy = reflectionFeeOnBuy;
        _taxFeeOnBuy = taxFeeOnBuy;
        
        _reflectionFeeOnSell = reflectionFeeOnSell;
        _taxFeeOnSell = taxFeeOnSell;
        
        require(_reflectionFeeOnBuy + _taxFeeOnBuy <= 25, "Must keep buy taxes below 25%"); 
        require(_reflectionFeeOnSell + _taxFeeOnSell <= 25, "Must keep buy taxes below 25%"); 
    }

      // once enabled, can never be turned off
    function enableTrading() internal onlyOwner {
        tradingActive = true;        
    }
    
    function airdrop(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner returns (bool){
        require(!tradingActive, "Trading is already active, cannot relaunch.");
        require(airdropWallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = amounts[i];
            _transfer(msg.sender, wallet, amount);
        }
        enableTrading();
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTxAmount(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTxAmount(address(uniswapV2Pair), true);
        return true;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set max transaction
    function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function excludeFromMaxTxAmount(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTxAmount[updAds] = isEx;
    }
    
    //set max wallet
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

     //set wallet address
    function _setNFCAddress(address nfcAddress) external onlyOwner {
        require(_nfcAddress != address(0), "_nfcAddress cannot be 0");
        _isExcludedFromFee[nfcAddress] = false;
        nfcAddress = payable(_nfcAddress);
        _isExcludedFromFee[nfcAddress] = true;
        emit UpdatedNfcAddress(_nfcAddress);
    }

     //set wallet address
    function _setMktgAddress(address mktgAddress) external onlyOwner {
        require(_mktgAddress != address(0), "_mktgAddress cannot be 0");
        _isExcludedFromFee[mktgAddress] = false;
        mktgAddress = payable(_mktgAddress);
        _isExcludedFromFee[mktgAddress] = true;
        emit UpdatedMktgAddress(_mktgAddress);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyReflectionFee","type":"uint256"}],"name":"SetBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellReflectionFee","type":"uint256"}],"name":"SetSellFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mktg","type":"address"}],"name":"UpdatedMktgAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"nfc","type":"address"}],"name":"UpdatedNfcAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mktgAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nfcAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mktgAddress","type":"address"}],"name":"_setMktgAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nfcAddress","type":"address"}],"name":"_setNFCAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"reflectionFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200075f565b6000196200002c91906200071a565b600955600a600c55600f600d55600a600e55600f8055600e54601055600f5460115560105460125560115460135573cbb1d245613dc6c3c05c1f18dfc9ae763154d9aa601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507348f92371a12573fee2ab79f085f13cb168a2e24d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760146101000a81548160ff0219169083151502179055506001601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff02191690831515021790555068015af1d78b58c4000060185568015af1d78b58c40000601955674563918244f40000601a553480156200018857600080fd5b5060006200019b6200056660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060095460026000620002506200056660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002a46200056e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000463620004556200056e60201b60201c565b60016200059760201b60201c565b620004763060016200059760201b60201c565b620004ab601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200059760201b60201c565b620004e0601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200059760201b60201c565b620004f06200056660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620005589190620006ec565b60405180910390a36200081e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005a76200056660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000637576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200062e90620006ca565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000620006a160208362000709565b9150620006ae82620007f5565b602082019050919050565b620006c48162000755565b82525050565b60006020820190508181036000830152620006e58162000692565b9050919050565b6000602082019050620007036000830184620006b9565b92915050565b600082825260208201905092915050565b6000620007278262000755565b9150620007348362000755565b9250828210156200074a576200074962000797565b5b828203905092915050565b6000819050919050565b60006200076c8262000755565b9150620007798362000755565b9250826200078c576200078b620007c6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b615656806200082e6000396000f3fe60806040526004361061021c5760003560e01c806370a0823111610123578063bbc0c742116100ab578063ea1644d51161006f578063ea1644d5146107f0578063ea2f0b3714610819578063ec28438a14610842578063f2fde38b1461086b578063f42938901461089457610223565b8063bbc0c742146106f7578063bfd7928414610722578063cd7c1b721461075f578063dd62ed3e1461078a578063e755d0cf146107c757610223565b80638f9a55c0116100f25780638f9a55c01461061257806395d89b411461063d57806398a5c31514610668578063a2a957bb14610691578063a9059cbb146106ba57610223565b806370a082311461055657806378b4aa45146105935780637d1db4a5146105bc5780638da5cb5b146105e757610223565b80632fd689e3116101a657806351bc3c851161017557806351bc3c8514610473578063563912bd1461048a578063595cc84f146104c757806367243482146104f05780636b9990531461052d57610223565b80632fd689e3146103c9578063313ce567146103f4578063437823ec1461041f57806349bd5a5e1461044857610223565b8063095ea7b3116101ed578063095ea7b3146102d05780631694505e1461030d57806318160ddd1461033857806323b872dd1461036357806327334a08146103a057610223565b806286803414610228578062b8cf2a1461025357806305f82a451461027c57806306fdde03146102a557610223565b3661022357005b600080fd5b34801561023457600080fd5b5061023d6108ab565b60405161024a91906147dc565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190614235565b6108d1565b005b34801561028857600080fd5b506102a3600480360381019061029e91906140e0565b610a21565b005b3480156102b157600080fd5b506102ba610e08565b6040516102c79190614856565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f291906141f9565b610e45565b6040516103049190614820565b60405180910390f35b34801561031957600080fd5b50610322610e63565b60405161032f919061483b565b60405180910390f35b34801561034457600080fd5b5061034d610e89565b60405161035a9190614b38565b60405180910390f35b34801561036f57600080fd5b5061038a6004803603810190610385919061416e565b610e9a565b6040516103979190614820565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906140e0565b610f73565b005b3480156103d557600080fd5b506103de61127c565b6040516103eb9190614b38565b60405180910390f35b34801561040057600080fd5b50610409611282565b6040516104169190614bad565b60405180910390f35b34801561042b57600080fd5b50610446600480360381019061044191906140e0565b61128b565b005b34801561045457600080fd5b5061045d6113b2565b60405161046a91906147a6565b60405180910390f35b34801561047f57600080fd5b506104886113d8565b005b34801561049657600080fd5b506104b160048036038101906104ac91906140e0565b611452565b6040516104be9190614820565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e991906141bd565b611472565b005b3480156104fc57600080fd5b5061051760048036038101906105129190614276565b611562565b6040516105249190614820565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f91906140e0565b6119e6565b005b34801561056257600080fd5b5061057d600480360381019061057891906140e0565b611ad6565b60405161058a9190614b38565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b591906140e0565b611b27565b005b3480156105c857600080fd5b506105d1611d7f565b6040516105de9190614b38565b60405180910390f35b3480156105f357600080fd5b506105fc611d85565b60405161060991906147a6565b60405180910390f35b34801561061e57600080fd5b50610627611dae565b6040516106349190614b38565b60405180910390f35b34801561064957600080fd5b50610652611db4565b60405161065f9190614856565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a91906142e2565b611df1565b005b34801561069d57600080fd5b506106b860048036038101906106b3919061430b565b611e90565b005b3480156106c657600080fd5b506106e160048036038101906106dc91906141f9565b611fed565b6040516106ee9190614820565b60405180910390f35b34801561070357600080fd5b5061070c61200b565b6040516107199190614820565b60405180910390f35b34801561072e57600080fd5b50610749600480360381019061074491906140e0565b61201e565b6040516107569190614820565b60405180910390f35b34801561076b57600080fd5b5061077461203e565b60405161078191906147dc565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190614132565b612064565b6040516107be9190614b38565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e991906140e0565b6120eb565b005b3480156107fc57600080fd5b50610817600480360381019061081291906142e2565b612343565b005b34801561082557600080fd5b50610840600480360381019061083b91906140e0565b6123e2565b005b34801561084e57600080fd5b50610869600480360381019061086491906142e2565b612509565b005b34801561087757600080fd5b50610892600480360381019061088d91906140e0565b6125a8565b005b3480156108a057600080fd5b506108a961276a565b005b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108d961283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095d906149f8565b60405180910390fd5b60005b8151811015610a1d576001600b60008484815181106109b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a1590614ee6565b915050610969565b5050565b610a2961283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906149f8565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990614ad8565b60405180910390fd5b60005b600880549050811015610e04578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610df15760086001600880549050610bfe9190614d7b565b81548110610c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610db7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610e04565b8080610dfc90614ee6565b915050610b45565b5050565b60606040518060400160405280601481526020017f4e6f6e2046756e6769626c65204361706974616c000000000000000000000000815250905090565b6000610e59610e5261283b565b8484612843565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610ea7848484612a0e565b610f6884610eb361283b565b610f63856040518060600160405280602881526020016155f960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1961283b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132bd9092919063ffffffff16565b612843565b600190509392505050565b610f7b61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906149f8565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90614998565b60405180910390fd5b603260016008805490506110a99190614c9a565b11156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e190614af8565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111be5761117a600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613321565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b60006009905090565b61129361283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611317906149f8565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b62816040516113a791906147a6565b60405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661141961283b565b73ffffffffffffffffffffffffffffffffffffffff161461143957600080fd5b600061144430611ad6565b905061144f8161338f565b50565b60066020528060005260406000206000915054906101000a900460ff1681565b61147a61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe906149f8565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061156c61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f0906149f8565b60405180910390fd5b601760169054906101000a900460ff1615611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090614ab8565b60405180910390fd5b60c883511061168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490614898565b60405180910390fd5b60005b83518110156117435760008482815181106116d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190506000848381518110611719577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905061172e338383612a0e565b5050808061173b90614ee6565b915050611690565b5061174c613689565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050611770816001611472565b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e730601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612843565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561182d57600080fd5b505afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118659190614109565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118c757600080fd5b505afa1580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190614109565b6040518363ffffffff1660e01b815260040161191c9291906147f7565b602060405180830381600087803b15801561193657600080fd5b505af115801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e9190614109565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119db601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611472565b600191505092915050565b6119ee61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a72906149f8565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611b20600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613321565b9050919050565b611b2f61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb3906149f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4590614a78565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fff253f8161a8bf4e705ff57ab65f6d0e47d025c620869a6316edc40a74b5c719601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611d7491906147c1565b60405180910390a150565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600381526020017f4e46430000000000000000000000000000000000000000000000000000000000815250905090565b611df961283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d906149f8565b60405180910390fd5b80601a8190555050565b611e9861283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c906149f8565b60405180910390fd5b83600c8190555081600d8190555082600e8190555080600f819055506019600d54600c54611f539190614c9a565b1115611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8b90614b18565b60405180910390fd5b6019600f54600e54611fa69190614c9a565b1115611fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fde90614b18565b60405180910390fd5b50505050565b6000612001611ffa61283b565b8484612a0e565b6001905092915050565b601760169054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120f361283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612177906149f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906148b8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161233891906147c1565b60405180910390a150565b61234b61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf906149f8565b60405180910390fd5b8060198190555050565b6123ea61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e906149f8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e816040516124fe91906147a6565b60405180910390a150565b61251161283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461259e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612595906149f8565b60405180910390fd5b8060188190555050565b6125b061283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906149f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490614918565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ab61283b565b73ffffffffffffffffffffffffffffffffffffffff1614806128215750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280961283b565b73ffffffffffffffffffffffffffffffffffffffff16145b61282a57600080fd5b60004790506128388161373b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128aa90614a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a90614938565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a019190614b38565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7590614a38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae590614878565b60405180910390fd5b60008111612b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2890614a18565b60405180910390fd5b612b39611d85565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ba75750612b77611d85565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f2557601760169054906101000a900460ff16612e4857601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612c6c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612cc25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e475760195481612cd484611ad6565b612cde9190614c9a565b10612d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1590614a58565b60405180910390fd5b601854811115612d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5a906148f8565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e075750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3d90614958565b60405180910390fd5b5b5b6000612e5330611ad6565b90506000601a5482101590506018548210612e6e5760185491505b808015612e885750601760149054906101000a900460ff16155b8015612ee25750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612efa5750601760159054906101000a900460ff165b15612f2257612f088261338f565b60004790506000811115612f2057612f1f4761373b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612fcc5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061307f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561307e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561308d57600090506132ab565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156131385750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561315057600c54601081905550600d546011819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166131e7576018548211156131e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dd906149b8565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156132925750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156132aa57600e54601081905550600f546011819055505b5b6132b784848484613836565b50505050565b6000838311158290613305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fc9190614856565b60405180910390fd5b50600083856133149190614d7b565b9050809150509392505050565b6000600954821115613368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335f906148d8565b60405180910390fd5b6000613372613863565b9050613387818461388e90919063ffffffff16565b915050919050565b6001601760146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156133ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561341b5781602001602082028036833780820191505090505b5090503081600081518110613459577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156134fb57600080fd5b505afa15801561350f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135339190614109565b8160018151811061356d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506135d430601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612843565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613638959493929190614b53565b600060405180830381600087803b15801561365257600080fd5b505af1158015613666573d6000803e3d6000fd5b50505050506000601760146101000a81548160ff02191690831515021790555050565b61369161283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461371e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613715906149f8565b60405180910390fd5b6001601760166101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61378b60028461388e90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156137b6573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61380760028461388e90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613832573d6000803e3d6000fd5b5050565b80613844576138436138d8565b5b61384f84848461391b565b8061385d5761385c613ae6565b5b50505050565b6000806000613870613afa565b91509150613887818361388e90919063ffffffff16565b9250505090565b60006138d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b5c565b905092915050565b60006010541480156138ec57506000601154145b156138f657613919565b601054601281905550601154601381905550600060108190555060006011819055505b565b60008060008060008061392d87613bbf565b95509550955095509550955061398b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c2790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a2085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c7190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a6c81613ccf565b613a768483613d8c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613ad39190614b38565b60405180910390a3505050505050505050565b601254601081905550601354601181905550565b600080600060095490506000683635c9adc5dea000009050613b30683635c9adc5dea0000060095461388e90919063ffffffff16565b821015613b4f57600954683635c9adc5dea00000935093505050613b58565b81819350935050505b9091565b60008083118290613ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b9a9190614856565b60405180910390fd5b5060008385613bb29190614cf0565b9050809150509392505050565b6000806000806000806000806000613bdc8a601054601154613dc6565b9250925092506000613bec613863565b90506000806000613bff8e878787613e5c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613c6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132bd565b905092915050565b6000808284613c809190614c9a565b905083811015613cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cbc90614978565b60405180910390fd5b8091505092915050565b6000613cd9613863565b90506000613cf08284613ee590919063ffffffff16565b9050613d4481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c7190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613da182600954613c2790919063ffffffff16565b600981905550613dbc81600a54613c7190919063ffffffff16565b600a819055505050565b600080600080613df26064613de4888a613ee590919063ffffffff16565b61388e90919063ffffffff16565b90506000613e1c6064613e0e888b613ee590919063ffffffff16565b61388e90919063ffffffff16565b90506000613e4582613e37858c613c2790919063ffffffff16565b613c2790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613e758589613ee590919063ffffffff16565b90506000613e8c8689613ee590919063ffffffff16565b90506000613ea38789613ee590919063ffffffff16565b90506000613ecc82613ebe8587613c2790919063ffffffff16565b613c2790919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613ef85760009050613f5a565b60008284613f069190614d21565b9050828482613f159190614cf0565b14613f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f4c906149d8565b60405180910390fd5b809150505b92915050565b6000613f73613f6e84614bed565b614bc8565b90508083825260208201905082856020860282011115613f9257600080fd5b60005b85811015613fc25781613fa88882614038565b845260208401935060208301925050600181019050613f95565b5050509392505050565b6000613fdf613fda84614c19565b614bc8565b90508083825260208201905082856020860282011115613ffe57600080fd5b60005b8581101561402e578161401488826140cb565b845260208401935060208301925050600181019050614001565b5050509392505050565b600081359050614047816155b3565b92915050565b60008151905061405c816155b3565b92915050565b600082601f83011261407357600080fd5b8135614083848260208601613f60565b91505092915050565b600082601f83011261409d57600080fd5b81356140ad848260208601613fcc565b91505092915050565b6000813590506140c5816155ca565b92915050565b6000813590506140da816155e1565b92915050565b6000602082840312156140f257600080fd5b600061410084828501614038565b91505092915050565b60006020828403121561411b57600080fd5b60006141298482850161404d565b91505092915050565b6000806040838503121561414557600080fd5b600061415385828601614038565b925050602061416485828601614038565b9150509250929050565b60008060006060848603121561418357600080fd5b600061419186828701614038565b93505060206141a286828701614038565b92505060406141b3868287016140cb565b9150509250925092565b600080604083850312156141d057600080fd5b60006141de85828601614038565b92505060206141ef858286016140b6565b9150509250929050565b6000806040838503121561420c57600080fd5b600061421a85828601614038565b925050602061422b858286016140cb565b9150509250929050565b60006020828403121561424757600080fd5b600082013567ffffffffffffffff81111561426157600080fd5b61426d84828501614062565b91505092915050565b6000806040838503121561428957600080fd5b600083013567ffffffffffffffff8111156142a357600080fd5b6142af85828601614062565b925050602083013567ffffffffffffffff8111156142cc57600080fd5b6142d88582860161408c565b9150509250929050565b6000602082840312156142f457600080fd5b6000614302848285016140cb565b91505092915050565b6000806000806080858703121561432157600080fd5b600061432f878288016140cb565b9450506020614340878288016140cb565b9350506040614351878288016140cb565b9250506060614362878288016140cb565b91505092959194509250565b600061437a83836143a4565b60208301905092915050565b61438f81614e16565b82525050565b61439e81614dc1565b82525050565b6143ad81614daf565b82525050565b6143bc81614daf565b82525050565b60006143cd82614c55565b6143d78185614c78565b93506143e283614c45565b8060005b838110156144135781516143fa888261436e565b975061440583614c6b565b9250506001810190506143e6565b5085935050505092915050565b61442981614dd3565b82525050565b61443881614e28565b82525050565b61444781614e4c565b82525050565b600061445882614c60565b6144628185614c89565b9350614472818560208601614e82565b61447b81614fbc565b840191505092915050565b6000614493602383614c89565b915061449e82614fcd565b604082019050919050565b60006144b6603683614c89565b91506144c18261501c565b604082019050919050565b60006144d9601883614c89565b91506144e48261506b565b602082019050919050565b60006144fc602a83614c89565b915061450782615094565b604082019050919050565b600061451f601c83614c89565b915061452a826150e3565b602082019050919050565b6000614542602683614c89565b915061454d8261510c565b604082019050919050565b6000614565602283614c89565b91506145708261515b565b604082019050919050565b6000614588602383614c89565b9150614593826151aa565b604082019050919050565b60006145ab601b83614c89565b91506145b6826151f9565b602082019050919050565b60006145ce601b83614c89565b91506145d982615222565b602082019050919050565b60006145f1603683614c89565b91506145fc8261524b565b604082019050919050565b6000614614602183614c89565b915061461f8261529a565b604082019050919050565b6000614637602083614c89565b9150614642826152e9565b602082019050919050565b600061465a602983614c89565b915061466582615312565b604082019050919050565b600061467d602583614c89565b915061468882615361565b604082019050919050565b60006146a0602383614c89565b91506146ab826153b0565b604082019050919050565b60006146c3601783614c89565b91506146ce826153ff565b602082019050919050565b60006146e6602483614c89565b91506146f182615428565b604082019050919050565b6000614709602b83614c89565b915061471482615477565b604082019050919050565b600061472c602783614c89565b9150614737826154c6565b604082019050919050565b600061474f604d83614c89565b915061475a82615515565b606082019050919050565b6000614772601d83614c89565b915061477d8261558a565b602082019050919050565b61479181614dff565b82525050565b6147a081614e09565b82525050565b60006020820190506147bb60008301846143b3565b92915050565b60006020820190506147d66000830184614386565b92915050565b60006020820190506147f16000830184614395565b92915050565b600060408201905061480c60008301856143b3565b61481960208301846143b3565b9392505050565b60006020820190506148356000830184614420565b92915050565b6000602082019050614850600083018461442f565b92915050565b60006020820190508181036000830152614870818461444d565b905092915050565b6000602082019050818103600083015261489181614486565b9050919050565b600060208201905081810360008301526148b1816144a9565b9050919050565b600060208201905081810360008301526148d1816144cc565b9050919050565b600060208201905081810360008301526148f1816144ef565b9050919050565b6000602082019050818103600083015261491181614512565b9050919050565b6000602082019050818103600083015261493181614535565b9050919050565b6000602082019050818103600083015261495181614558565b9050919050565b600060208201905081810360008301526149718161457b565b9050919050565b600060208201905081810360008301526149918161459e565b9050919050565b600060208201905081810360008301526149b1816145c1565b9050919050565b600060208201905081810360008301526149d1816145e4565b9050919050565b600060208201905081810360008301526149f181614607565b9050919050565b60006020820190508181036000830152614a118161462a565b9050919050565b60006020820190508181036000830152614a318161464d565b9050919050565b60006020820190508181036000830152614a5181614670565b9050919050565b60006020820190508181036000830152614a7181614693565b9050919050565b60006020820190508181036000830152614a91816146b6565b9050919050565b60006020820190508181036000830152614ab1816146d9565b9050919050565b60006020820190508181036000830152614ad1816146fc565b9050919050565b60006020820190508181036000830152614af18161471f565b9050919050565b60006020820190508181036000830152614b1181614742565b9050919050565b60006020820190508181036000830152614b3181614765565b9050919050565b6000602082019050614b4d6000830184614788565b92915050565b600060a082019050614b686000830188614788565b614b75602083018761443e565b8181036040830152614b8781866143c2565b9050614b9660608301856143b3565b614ba36080830184614788565b9695505050505050565b6000602082019050614bc26000830184614797565b92915050565b6000614bd2614be3565b9050614bde8282614eb5565b919050565b6000604051905090565b600067ffffffffffffffff821115614c0857614c07614f8d565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614c3457614c33614f8d565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614ca582614dff565b9150614cb083614dff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ce557614ce4614f2f565b5b828201905092915050565b6000614cfb82614dff565b9150614d0683614dff565b925082614d1657614d15614f5e565b5b828204905092915050565b6000614d2c82614dff565b9150614d3783614dff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d7057614d6f614f2f565b5b828202905092915050565b6000614d8682614dff565b9150614d9183614dff565b925082821015614da457614da3614f2f565b5b828203905092915050565b6000614dba82614ddf565b9050919050565b6000614dcc82614ddf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614e2182614e5e565b9050919050565b6000614e3382614e3a565b9050919050565b6000614e4582614ddf565b9050919050565b6000614e5782614dff565b9050919050565b6000614e6982614e70565b9050919050565b6000614e7b82614ddf565b9050919050565b60005b83811015614ea0578082015181840152602081019050614e85565b83811115614eaf576000848401525b50505050565b614ebe82614fbc565b810181811067ffffffffffffffff82111715614edd57614edc614f8d565b5b80604052505050565b6000614ef182614dff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614f2457614f23614f2f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206f6e6c792061697264726f70203230302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b7f5f6d6b7467416464726573732063616e6e6f7420626520300000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f5f6e6663416464726573732063616e6e6f742062652030000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60008201527f742072656c61756e63682e000000000000000000000000000000000000000000602082015250565b7f4163636f756e74206973206e6f74206578636c756465642066726f6d2072656660008201527f6c656374696f6e00000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60008201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60208201527f7564656420616464726573732e00000000000000000000000000000000000000604082015250565b7f4d757374206b656570206275792074617865732062656c6f7720323525000000600082015250565b6155bc81614daf565b81146155c757600080fd5b50565b6155d381614dd3565b81146155de57600080fd5b50565b6155ea81614dff565b81146155f557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220669edb4860e24ed61d78e4d1997268b1e524114f7b206f73fe14a5327a00a07a64736f6c63430008040033

Deployed Bytecode

0x60806040526004361061021c5760003560e01c806370a0823111610123578063bbc0c742116100ab578063ea1644d51161006f578063ea1644d5146107f0578063ea2f0b3714610819578063ec28438a14610842578063f2fde38b1461086b578063f42938901461089457610223565b8063bbc0c742146106f7578063bfd7928414610722578063cd7c1b721461075f578063dd62ed3e1461078a578063e755d0cf146107c757610223565b80638f9a55c0116100f25780638f9a55c01461061257806395d89b411461063d57806398a5c31514610668578063a2a957bb14610691578063a9059cbb146106ba57610223565b806370a082311461055657806378b4aa45146105935780637d1db4a5146105bc5780638da5cb5b146105e757610223565b80632fd689e3116101a657806351bc3c851161017557806351bc3c8514610473578063563912bd1461048a578063595cc84f146104c757806367243482146104f05780636b9990531461052d57610223565b80632fd689e3146103c9578063313ce567146103f4578063437823ec1461041f57806349bd5a5e1461044857610223565b8063095ea7b3116101ed578063095ea7b3146102d05780631694505e1461030d57806318160ddd1461033857806323b872dd1461036357806327334a08146103a057610223565b806286803414610228578062b8cf2a1461025357806305f82a451461027c57806306fdde03146102a557610223565b3661022357005b600080fd5b34801561023457600080fd5b5061023d6108ab565b60405161024a91906147dc565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190614235565b6108d1565b005b34801561028857600080fd5b506102a3600480360381019061029e91906140e0565b610a21565b005b3480156102b157600080fd5b506102ba610e08565b6040516102c79190614856565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f291906141f9565b610e45565b6040516103049190614820565b60405180910390f35b34801561031957600080fd5b50610322610e63565b60405161032f919061483b565b60405180910390f35b34801561034457600080fd5b5061034d610e89565b60405161035a9190614b38565b60405180910390f35b34801561036f57600080fd5b5061038a6004803603810190610385919061416e565b610e9a565b6040516103979190614820565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906140e0565b610f73565b005b3480156103d557600080fd5b506103de61127c565b6040516103eb9190614b38565b60405180910390f35b34801561040057600080fd5b50610409611282565b6040516104169190614bad565b60405180910390f35b34801561042b57600080fd5b50610446600480360381019061044191906140e0565b61128b565b005b34801561045457600080fd5b5061045d6113b2565b60405161046a91906147a6565b60405180910390f35b34801561047f57600080fd5b506104886113d8565b005b34801561049657600080fd5b506104b160048036038101906104ac91906140e0565b611452565b6040516104be9190614820565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e991906141bd565b611472565b005b3480156104fc57600080fd5b5061051760048036038101906105129190614276565b611562565b6040516105249190614820565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f91906140e0565b6119e6565b005b34801561056257600080fd5b5061057d600480360381019061057891906140e0565b611ad6565b60405161058a9190614b38565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b591906140e0565b611b27565b005b3480156105c857600080fd5b506105d1611d7f565b6040516105de9190614b38565b60405180910390f35b3480156105f357600080fd5b506105fc611d85565b60405161060991906147a6565b60405180910390f35b34801561061e57600080fd5b50610627611dae565b6040516106349190614b38565b60405180910390f35b34801561064957600080fd5b50610652611db4565b60405161065f9190614856565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a91906142e2565b611df1565b005b34801561069d57600080fd5b506106b860048036038101906106b3919061430b565b611e90565b005b3480156106c657600080fd5b506106e160048036038101906106dc91906141f9565b611fed565b6040516106ee9190614820565b60405180910390f35b34801561070357600080fd5b5061070c61200b565b6040516107199190614820565b60405180910390f35b34801561072e57600080fd5b50610749600480360381019061074491906140e0565b61201e565b6040516107569190614820565b60405180910390f35b34801561076b57600080fd5b5061077461203e565b60405161078191906147dc565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190614132565b612064565b6040516107be9190614b38565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e991906140e0565b6120eb565b005b3480156107fc57600080fd5b50610817600480360381019061081291906142e2565b612343565b005b34801561082557600080fd5b50610840600480360381019061083b91906140e0565b6123e2565b005b34801561084e57600080fd5b50610869600480360381019061086491906142e2565b612509565b005b34801561087757600080fd5b50610892600480360381019061088d91906140e0565b6125a8565b005b3480156108a057600080fd5b506108a961276a565b005b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108d961283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095d906149f8565b60405180910390fd5b60005b8151811015610a1d576001600b60008484815181106109b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a1590614ee6565b915050610969565b5050565b610a2961283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906149f8565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990614ad8565b60405180910390fd5b60005b600880549050811015610e04578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610ba3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610df15760086001600880549050610bfe9190614d7b565b81548110610c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610db7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610e04565b8080610dfc90614ee6565b915050610b45565b5050565b60606040518060400160405280601481526020017f4e6f6e2046756e6769626c65204361706974616c000000000000000000000000815250905090565b6000610e59610e5261283b565b8484612843565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610ea7848484612a0e565b610f6884610eb361283b565b610f63856040518060600160405280602881526020016155f960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1961283b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132bd9092919063ffffffff16565b612843565b600190509392505050565b610f7b61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906149f8565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90614998565b60405180910390fd5b603260016008805490506110a99190614c9a565b11156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e190614af8565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111be5761117a600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613321565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b60006009905090565b61129361283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611317906149f8565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b62816040516113a791906147a6565b60405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661141961283b565b73ffffffffffffffffffffffffffffffffffffffff161461143957600080fd5b600061144430611ad6565b905061144f8161338f565b50565b60066020528060005260406000206000915054906101000a900460ff1681565b61147a61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe906149f8565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061156c61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f0906149f8565b60405180910390fd5b601760169054906101000a900460ff1615611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090614ab8565b60405180910390fd5b60c883511061168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490614898565b60405180910390fd5b60005b83518110156117435760008482815181106116d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190506000848381518110611719577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905061172e338383612a0e565b5050808061173b90614ee6565b915050611690565b5061174c613689565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050611770816001611472565b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117e730601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612843565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561182d57600080fd5b505afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118659190614109565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118c757600080fd5b505afa1580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190614109565b6040518363ffffffff1660e01b815260040161191c9291906147f7565b602060405180830381600087803b15801561193657600080fd5b505af115801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e9190614109565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119db601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611472565b600191505092915050565b6119ee61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a72906149f8565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611b20600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613321565b9050919050565b611b2f61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb3906149f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4590614a78565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fff253f8161a8bf4e705ff57ab65f6d0e47d025c620869a6316edc40a74b5c719601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611d7491906147c1565b60405180910390a150565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600381526020017f4e46430000000000000000000000000000000000000000000000000000000000815250905090565b611df961283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d906149f8565b60405180910390fd5b80601a8190555050565b611e9861283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c906149f8565b60405180910390fd5b83600c8190555081600d8190555082600e8190555080600f819055506019600d54600c54611f539190614c9a565b1115611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8b90614b18565b60405180910390fd5b6019600f54600e54611fa69190614c9a565b1115611fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fde90614b18565b60405180910390fd5b50505050565b6000612001611ffa61283b565b8484612a0e565b6001905092915050565b601760169054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120f361283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612177906149f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612209906148b8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161233891906147c1565b60405180910390a150565b61234b61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf906149f8565b60405180910390fd5b8060198190555050565b6123ea61283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246e906149f8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e816040516124fe91906147a6565b60405180910390a150565b61251161283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461259e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612595906149f8565b60405180910390fd5b8060188190555050565b6125b061283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906149f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490614918565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127ab61283b565b73ffffffffffffffffffffffffffffffffffffffff1614806128215750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280961283b565b73ffffffffffffffffffffffffffffffffffffffff16145b61282a57600080fd5b60004790506128388161373b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128aa90614a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a90614938565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a019190614b38565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7590614a38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae590614878565b60405180910390fd5b60008111612b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2890614a18565b60405180910390fd5b612b39611d85565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ba75750612b77611d85565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f2557601760169054906101000a900460ff16612e4857601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612c6c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612cc25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e475760195481612cd484611ad6565b612cde9190614c9a565b10612d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1590614a58565b60405180910390fd5b601854811115612d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5a906148f8565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e075750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3d90614958565b60405180910390fd5b5b5b6000612e5330611ad6565b90506000601a5482101590506018548210612e6e5760185491505b808015612e885750601760149054906101000a900460ff16155b8015612ee25750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612efa5750601760159054906101000a900460ff165b15612f2257612f088261338f565b60004790506000811115612f2057612f1f4761373b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612fcc5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061307f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561307e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561308d57600090506132ab565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156131385750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561315057600c54601081905550600d546011819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166131e7576018548211156131e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131dd906149b8565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156132925750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156132aa57600e54601081905550600f546011819055505b5b6132b784848484613836565b50505050565b6000838311158290613305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fc9190614856565b60405180910390fd5b50600083856133149190614d7b565b9050809150509392505050565b6000600954821115613368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335f906148d8565b60405180910390fd5b6000613372613863565b9050613387818461388e90919063ffffffff16565b915050919050565b6001601760146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156133ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561341b5781602001602082028036833780820191505090505b5090503081600081518110613459577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156134fb57600080fd5b505afa15801561350f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135339190614109565b8160018151811061356d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506135d430601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612843565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613638959493929190614b53565b600060405180830381600087803b15801561365257600080fd5b505af1158015613666573d6000803e3d6000fd5b50505050506000601760146101000a81548160ff02191690831515021790555050565b61369161283b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461371e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613715906149f8565b60405180910390fd5b6001601760166101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61378b60028461388e90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156137b6573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61380760028461388e90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613832573d6000803e3d6000fd5b5050565b80613844576138436138d8565b5b61384f84848461391b565b8061385d5761385c613ae6565b5b50505050565b6000806000613870613afa565b91509150613887818361388e90919063ffffffff16565b9250505090565b60006138d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b5c565b905092915050565b60006010541480156138ec57506000601154145b156138f657613919565b601054601281905550601154601381905550600060108190555060006011819055505b565b60008060008060008061392d87613bbf565b95509550955095509550955061398b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c2790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a2085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c7190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a6c81613ccf565b613a768483613d8c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613ad39190614b38565b60405180910390a3505050505050505050565b601254601081905550601354601181905550565b600080600060095490506000683635c9adc5dea000009050613b30683635c9adc5dea0000060095461388e90919063ffffffff16565b821015613b4f57600954683635c9adc5dea00000935093505050613b58565b81819350935050505b9091565b60008083118290613ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b9a9190614856565b60405180910390fd5b5060008385613bb29190614cf0565b9050809150509392505050565b6000806000806000806000806000613bdc8a601054601154613dc6565b9250925092506000613bec613863565b90506000806000613bff8e878787613e5c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613c6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132bd565b905092915050565b6000808284613c809190614c9a565b905083811015613cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cbc90614978565b60405180910390fd5b8091505092915050565b6000613cd9613863565b90506000613cf08284613ee590919063ffffffff16565b9050613d4481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c7190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613da182600954613c2790919063ffffffff16565b600981905550613dbc81600a54613c7190919063ffffffff16565b600a819055505050565b600080600080613df26064613de4888a613ee590919063ffffffff16565b61388e90919063ffffffff16565b90506000613e1c6064613e0e888b613ee590919063ffffffff16565b61388e90919063ffffffff16565b90506000613e4582613e37858c613c2790919063ffffffff16565b613c2790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613e758589613ee590919063ffffffff16565b90506000613e8c8689613ee590919063ffffffff16565b90506000613ea38789613ee590919063ffffffff16565b90506000613ecc82613ebe8587613c2790919063ffffffff16565b613c2790919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613ef85760009050613f5a565b60008284613f069190614d21565b9050828482613f159190614cf0565b14613f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f4c906149d8565b60405180910390fd5b809150505b92915050565b6000613f73613f6e84614bed565b614bc8565b90508083825260208201905082856020860282011115613f9257600080fd5b60005b85811015613fc25781613fa88882614038565b845260208401935060208301925050600181019050613f95565b5050509392505050565b6000613fdf613fda84614c19565b614bc8565b90508083825260208201905082856020860282011115613ffe57600080fd5b60005b8581101561402e578161401488826140cb565b845260208401935060208301925050600181019050614001565b5050509392505050565b600081359050614047816155b3565b92915050565b60008151905061405c816155b3565b92915050565b600082601f83011261407357600080fd5b8135614083848260208601613f60565b91505092915050565b600082601f83011261409d57600080fd5b81356140ad848260208601613fcc565b91505092915050565b6000813590506140c5816155ca565b92915050565b6000813590506140da816155e1565b92915050565b6000602082840312156140f257600080fd5b600061410084828501614038565b91505092915050565b60006020828403121561411b57600080fd5b60006141298482850161404d565b91505092915050565b6000806040838503121561414557600080fd5b600061415385828601614038565b925050602061416485828601614038565b9150509250929050565b60008060006060848603121561418357600080fd5b600061419186828701614038565b93505060206141a286828701614038565b92505060406141b3868287016140cb565b9150509250925092565b600080604083850312156141d057600080fd5b60006141de85828601614038565b92505060206141ef858286016140b6565b9150509250929050565b6000806040838503121561420c57600080fd5b600061421a85828601614038565b925050602061422b858286016140cb565b9150509250929050565b60006020828403121561424757600080fd5b600082013567ffffffffffffffff81111561426157600080fd5b61426d84828501614062565b91505092915050565b6000806040838503121561428957600080fd5b600083013567ffffffffffffffff8111156142a357600080fd5b6142af85828601614062565b925050602083013567ffffffffffffffff8111156142cc57600080fd5b6142d88582860161408c565b9150509250929050565b6000602082840312156142f457600080fd5b6000614302848285016140cb565b91505092915050565b6000806000806080858703121561432157600080fd5b600061432f878288016140cb565b9450506020614340878288016140cb565b9350506040614351878288016140cb565b9250506060614362878288016140cb565b91505092959194509250565b600061437a83836143a4565b60208301905092915050565b61438f81614e16565b82525050565b61439e81614dc1565b82525050565b6143ad81614daf565b82525050565b6143bc81614daf565b82525050565b60006143cd82614c55565b6143d78185614c78565b93506143e283614c45565b8060005b838110156144135781516143fa888261436e565b975061440583614c6b565b9250506001810190506143e6565b5085935050505092915050565b61442981614dd3565b82525050565b61443881614e28565b82525050565b61444781614e4c565b82525050565b600061445882614c60565b6144628185614c89565b9350614472818560208601614e82565b61447b81614fbc565b840191505092915050565b6000614493602383614c89565b915061449e82614fcd565b604082019050919050565b60006144b6603683614c89565b91506144c18261501c565b604082019050919050565b60006144d9601883614c89565b91506144e48261506b565b602082019050919050565b60006144fc602a83614c89565b915061450782615094565b604082019050919050565b600061451f601c83614c89565b915061452a826150e3565b602082019050919050565b6000614542602683614c89565b915061454d8261510c565b604082019050919050565b6000614565602283614c89565b91506145708261515b565b604082019050919050565b6000614588602383614c89565b9150614593826151aa565b604082019050919050565b60006145ab601b83614c89565b91506145b6826151f9565b602082019050919050565b60006145ce601b83614c89565b91506145d982615222565b602082019050919050565b60006145f1603683614c89565b91506145fc8261524b565b604082019050919050565b6000614614602183614c89565b915061461f8261529a565b604082019050919050565b6000614637602083614c89565b9150614642826152e9565b602082019050919050565b600061465a602983614c89565b915061466582615312565b604082019050919050565b600061467d602583614c89565b915061468882615361565b604082019050919050565b60006146a0602383614c89565b91506146ab826153b0565b604082019050919050565b60006146c3601783614c89565b91506146ce826153ff565b602082019050919050565b60006146e6602483614c89565b91506146f182615428565b604082019050919050565b6000614709602b83614c89565b915061471482615477565b604082019050919050565b600061472c602783614c89565b9150614737826154c6565b604082019050919050565b600061474f604d83614c89565b915061475a82615515565b606082019050919050565b6000614772601d83614c89565b915061477d8261558a565b602082019050919050565b61479181614dff565b82525050565b6147a081614e09565b82525050565b60006020820190506147bb60008301846143b3565b92915050565b60006020820190506147d66000830184614386565b92915050565b60006020820190506147f16000830184614395565b92915050565b600060408201905061480c60008301856143b3565b61481960208301846143b3565b9392505050565b60006020820190506148356000830184614420565b92915050565b6000602082019050614850600083018461442f565b92915050565b60006020820190508181036000830152614870818461444d565b905092915050565b6000602082019050818103600083015261489181614486565b9050919050565b600060208201905081810360008301526148b1816144a9565b9050919050565b600060208201905081810360008301526148d1816144cc565b9050919050565b600060208201905081810360008301526148f1816144ef565b9050919050565b6000602082019050818103600083015261491181614512565b9050919050565b6000602082019050818103600083015261493181614535565b9050919050565b6000602082019050818103600083015261495181614558565b9050919050565b600060208201905081810360008301526149718161457b565b9050919050565b600060208201905081810360008301526149918161459e565b9050919050565b600060208201905081810360008301526149b1816145c1565b9050919050565b600060208201905081810360008301526149d1816145e4565b9050919050565b600060208201905081810360008301526149f181614607565b9050919050565b60006020820190508181036000830152614a118161462a565b9050919050565b60006020820190508181036000830152614a318161464d565b9050919050565b60006020820190508181036000830152614a5181614670565b9050919050565b60006020820190508181036000830152614a7181614693565b9050919050565b60006020820190508181036000830152614a91816146b6565b9050919050565b60006020820190508181036000830152614ab1816146d9565b9050919050565b60006020820190508181036000830152614ad1816146fc565b9050919050565b60006020820190508181036000830152614af18161471f565b9050919050565b60006020820190508181036000830152614b1181614742565b9050919050565b60006020820190508181036000830152614b3181614765565b9050919050565b6000602082019050614b4d6000830184614788565b92915050565b600060a082019050614b686000830188614788565b614b75602083018761443e565b8181036040830152614b8781866143c2565b9050614b9660608301856143b3565b614ba36080830184614788565b9695505050505050565b6000602082019050614bc26000830184614797565b92915050565b6000614bd2614be3565b9050614bde8282614eb5565b919050565b6000604051905090565b600067ffffffffffffffff821115614c0857614c07614f8d565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614c3457614c33614f8d565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614ca582614dff565b9150614cb083614dff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ce557614ce4614f2f565b5b828201905092915050565b6000614cfb82614dff565b9150614d0683614dff565b925082614d1657614d15614f5e565b5b828204905092915050565b6000614d2c82614dff565b9150614d3783614dff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d7057614d6f614f2f565b5b828202905092915050565b6000614d8682614dff565b9150614d9183614dff565b925082821015614da457614da3614f2f565b5b828203905092915050565b6000614dba82614ddf565b9050919050565b6000614dcc82614ddf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614e2182614e5e565b9050919050565b6000614e3382614e3a565b9050919050565b6000614e4582614ddf565b9050919050565b6000614e5782614dff565b9050919050565b6000614e6982614e70565b9050919050565b6000614e7b82614ddf565b9050919050565b60005b83811015614ea0578082015181840152602081019050614e85565b83811115614eaf576000848401525b50505050565b614ebe82614fbc565b810181811067ffffffffffffffff82111715614edd57614edc614f8d565b5b80604052505050565b6000614ef182614dff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614f2457614f23614f2f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206f6e6c792061697264726f70203230302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b7f5f6d6b7467416464726573732063616e6e6f7420626520300000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f5f6e6663416464726573732063616e6e6f742062652030000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60008201527f742072656c61756e63682e000000000000000000000000000000000000000000602082015250565b7f4163636f756e74206973206e6f74206578636c756465642066726f6d2072656660008201527f6c656374696f6e00000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60008201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60208201527f7564656420616464726573732e00000000000000000000000000000000000000604082015250565b7f4d757374206b656570206275792074617865732062656c6f7720323525000000600082015250565b6155bc81614daf565b81146155c757600080fd5b50565b6155d381614dd3565b81146155de57600080fd5b50565b6155ea81614dff565b81146155f557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220669edb4860e24ed61d78e4d1997268b1e524114f7b206f73fe14a5327a00a07a64736f6c63430008040033

Deployed Bytecode Sourcemap

4732:17904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6210:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15796:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9624:603;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8047:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10427:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6331:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8324:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10628:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9097:519;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6701:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8233:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8780:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6379:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15363:191;;;;;;;;;;;;;:::i;:::-;;5220:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21612:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20202:1065;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15973:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8427:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21928:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6538:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2153:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6621:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8138:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21319:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19512:531;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8573:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6492:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5619:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6095:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10235:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22293:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21778:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8940:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21497:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2371:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15562:222;;;;;;;;;;;;;:::i;:::-;;6210:89;;;;;;;;;;;;;:::o;15796:169::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15872:9:::1;15867:91;15891:5;:12;15887:1;:16;15867:91;;;15942:4;15925;:14;15930:5;15936:1;15930:8;;;;;;;;;;;;;;;;;;;;;;15925:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15905:3;;;;;:::i;:::-;;;;15867:91;;;;15796:169:::0;:::o;9624:603::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9706:25:::1;:34;9732:7;9706:34;;;;;;;;;;;;;;;;;;;;;;;;;9698:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9800:9;9795:425;9819:23;:30;;;;9815:1;:34;9795:425;;;9905:7;9875:37;;:23;9899:1;9875:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;9871:338;;;9962:23;10019:1;9986:23;:30;;;;:34;;;;:::i;:::-;9962:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9933:23;9957:1;9933:26;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;;;;;;;;;;;;;;10059:1;10040:7;:16;10048:7;10040:16;;;;;;;;;;;;;;;:20;;;;10116:5;10079:25;:34;10105:7;10079:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;10140:23;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10188:5;;9871:338;9851:3;;;;;:::i;:::-;;;;9795:425;;;;9624:603:::0;:::o;8047:83::-;8084:13;8117:5;;;;;;;;;;;;;;;;;8110:12;;8047:83;:::o;10427:193::-;10529:4;10551:39;10560:12;:10;:12::i;:::-;10574:7;10583:6;10551:8;:39::i;:::-;10608:4;10601:11;;10427:193;;;;:::o;6331:41::-;;;;;;;;;;;;;:::o;8324:95::-;8377:7;5481:16;8397:14;;8324:95;:::o;10628:446::-;10760:4;10777:36;10787:6;10795:9;10806:6;10777:9;:36::i;:::-;10824:220;10847:6;10868:12;:10;:12::i;:::-;10895:138;10951:6;10895:138;;;;;;;;;;;;;;;;;:11;:19;10907:6;10895:19;;;;;;;;;;;;;;;:33;10915:12;:10;:12::i;:::-;10895:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10824:8;:220::i;:::-;11062:4;11055:11;;10628:446;;;;;:::o;9097:519::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9182:25:::1;:34;9208:7;9182:34;;;;;;;;;;;;;;;;;;;;;;;;;9181:35;9173:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9305:2;9300:1;9267:23;:30;;;;:34;;;;:::i;:::-;:40;;9259:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;9423:1;9404:7;:16;9412:7;9404:16;;;;;;;;;;;;;;;;:20;9400:109;;;9460:37;9480:7;:16;9488:7;9480:16;;;;;;;;;;;;;;;;9460:19;:37::i;:::-;9441:7;:16;9449:7;9441:16;;;;;;;;;;;;;;;:56;;;;9400:109;9556:4;9519:25;:34;9545:7;9519:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9571:23;9600:7;9571:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9097:519:::0;:::o;6701:53::-;;;;:::o;8233:83::-;8274:5;4978:1;8292:16;;8233:83;:::o;8780:152::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8881:4:::1;8851:18;:27;8870:7;8851:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8901:23;8916:7;8901:23;;;;;;:::i;:::-;;;;;;;;8780:152:::0;:::o;6379:28::-;;;;;;;;;;;;;:::o;15363:191::-;15429:11;;;;;;;;;;;15413:27;;:12;:10;:12::i;:::-;:27;;;15405:36;;;;;;15452:23;15478:24;15496:4;15478:9;:24::i;:::-;15452:50;;15513:33;15530:15;15513:16;:33::i;:::-;15363:191;:::o;5220:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;21612:132::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21732:4:::1;21699:22;:30;21722:6;21699:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21612:132:::0;;:::o;20202:1065::-;20306:4;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20331:13:::1;;;;;;;;;;;20330:14;20322:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20435:3;20411:14;:21;:27;20403:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;20534:9;20530:205;20553:14;:21;20549:1;:25;20530:205;;;20595:14;20612;20627:1;20612:17;;;;;;;;;;;;;;;;;;;;;;20595:34;;20644:14;20661:7;20669:1;20661:10;;;;;;;;;;;;;;;;;;;;;;20644:27;;20686:37;20696:10;20708:6;20716;20686:9;:37::i;:::-;20530:205;;20576:3;;;;;:::i;:::-;;;;20530:205;;;;20745:15;:13;:15::i;:::-;20771:35;20828:42;20771:100;;20882:55;20913:16;20932:4;20882:22;:55::i;:::-;20966:16;20948:15;;:34;;;;;;;;;;;;;;;;;;20993:58;21010:4;21025:15;;;;;;;;;;;5481:16;20993:8;:58::i;:::-;21096:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21078:56;;;21143:4;21150:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21078:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21062:13;;:112;;;;;;;;;;;;;;;;;;21185:52;21216:13;;;;;;;;;;;21232:4;21185:22;:52::i;:::-;21255:4;21248:11;;;20202:1065:::0;;;;:::o;15973:92::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16052:5:::1;16037:4;:12;16042:6;16037:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15973:92:::0;:::o;8427:138::-;8493:7;8520:37;8540:7;:16;8548:7;8540:16;;;;;;;;;;;;;;;;8520:19;:37::i;:::-;8513:44;;8427:138;;;:::o;21928:330::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22033:1:::1;22010:25;;:11;;;;;;;;;;;:25;;;;22002:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;22107:5;22074:18;:30;22093:10;22074:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;22144:11;;;;;;;;;;;22123:33;;22200:4;22167:18;:30;22186:10;22167:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;22220:30;22238:11;;;;;;;;;;;22220:30;;;;;;:::i;:::-;;;;;;;;21928:330:::0;:::o;6538:46::-;;;;:::o;2153:79::-;2191:7;2218:6;;;;;;;;;;;2211:13;;2153:79;:::o;6621:48::-;;;;:::o;8138:87::-;8177:13;8210:7;;;;;;;;;;;;;;;;;8203:14;;8138:87;:::o;21319:139::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21432:18:::1;21410:19;:40;;;;21319:139:::0;:::o;19512:531::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19678:18:::1;19656:19;:40;;;;19722:11;19707:12;:26;;;;19777:19;19754:20;:42;;;;19823:12;19807:13;:28;;;;19902:2;19886:12;;19864:19;;:34;;;;:::i;:::-;:40;;19856:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;19998:2;19981:13;;19958:20;;:36;;;;:::i;:::-;:42;;19950:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19512:531:::0;;;;:::o;8573:199::-;8678:4;8700:42;8710:12;:10;:12::i;:::-;8724:9;8735:6;8700:9;:42::i;:::-;8760:4;8753:11;;8573:199;;;;:::o;6492:33::-;;;;;;;;;;;;;:::o;5619:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;6095:88::-;;;;;;;;;;;;;:::o;10235:184::-;10352:7;10384:11;:18;10396:5;10384:18;;;;;;;;;;;;;;;:27;10403:7;10384:27;;;;;;;;;;;;;;;;10377:34;;10235:184;;;;:::o;22293:340::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22401:1:::1;22377:26;;:12;;;;;;;;;;;:26;;;;22369:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22477:5;22443:18;:31;22462:11;22443:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22515:12;;;;;;;;;;;22493:35;;22573:4;22539:18;:31;22558:11;22539:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;22593:32;22612:12;;;;;;;;;;;22593:32;;;;;;:::i;:::-;;;;;;;;22293:340:::0;:::o;21778:115::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21872:13:::1;21855:14;:30;;;;21778:115:::0;:::o;8940:149::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9039:5:::1;9009:18;:27;9028:7;9009:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;9060:21;9073:7;9060:21;;;;;;:::i;:::-;;;;;;;;8940:149:::0;:::o;21497:107::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21585:11:::1;21570:12;:26;;;;21497:107:::0;:::o;2371:244::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2480:1:::1;2460:22;;:8;:22;;;;2452:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2570:8;2541:38;;2562:6;::::0;::::1;;;;;;;;2541:38;;;;;;;;;;;;2599:8;2590:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2371:244:::0;:::o;15562:222::-;15628:11;;;;;;;;;;;15612:27;;:12;:10;:12::i;:::-;:27;;;:59;;;;15659:12;;;;;;;;;;;15643:28;;:12;:10;:12::i;:::-;:28;;;15612:59;15604:68;;;;;;15683:26;15712:21;15683:50;;15744:32;15757:18;15744:12;:32::i;:::-;15562:222;:::o;912:98::-;965:7;992:10;985:17;;912:98;:::o;11807:369::-;11951:1;11934:19;;:5;:19;;;;11926:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12032:1;12013:21;;:7;:21;;;;12005:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12114:6;12084:11;:18;12096:5;12084:18;;;;;;;;;;;;;;;:27;12103:7;12084:27;;;;;;;;;;;;;;;:36;;;;12152:7;12136:32;;12145:5;12136:32;;;12161:6;12136:32;;;;;;:::i;:::-;;;;;;;;11807:369;;;:::o;12184:2523::-;12322:1;12306:18;;:4;:18;;;;12298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12399:1;12385:16;;:2;:16;;;;12377:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12469:1;12460:6;:10;12452:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12541:7;:5;:7::i;:::-;12533:15;;:4;:15;;;;:32;;;;;12558:7;:5;:7::i;:::-;12552:13;;:2;:13;;;;12533:32;12529:1197;;;12634:13;;;;;;;;;;;12629:431;;12688:13;;;;;;;;;;;12682:19;;:2;:19;;;;:53;;;;;12719:15;;;;;;;;;;;12705:30;;:2;:30;;;;12682:53;:81;;;;;12741:18;:22;12760:2;12741:22;;;;;;;;;;;;;;;;;;;;;;;;;12739:24;12682:81;12679:381;;;12817:14;;12808:6;12792:13;12802:2;12792:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12784:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12908:12;;12898:6;:22;;12890:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12981:4;:10;12986:4;12981:10;;;;;;;;;;;;;;;;;;;;;;;;;12980:11;:24;;;;;12996:4;:8;13001:2;12996:8;;;;;;;;;;;;;;;;;;;;;;;;;12995:9;12980:24;12972:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12679:381;12629:431;13088:28;13119:24;13137:4;13119:9;:24::i;:::-;13088:55;;13158:12;13197:19;;13173:20;:43;;13158:58;;13260:12;;13236:20;:36;13233:124;;13329:12;;13306:35;;13233:124;13389:7;:18;;;;;13401:6;;;;;;;;;;;13400:7;13389:18;:43;;;;;13419:13;;;;;;;;;;;13411:21;;:4;:21;;;;13389:43;:58;;;;;13436:11;;;;;;;;;;;13389:58;13385:330;;;13468:38;13485:20;13468:16;:38::i;:::-;13525:26;13554:21;13525:50;;13619:1;13598:18;:22;13594:106;;;13645:35;13658:21;13645:12;:35::i;:::-;13594:106;13385:330;;12529:1197;;;13746:12;13761:4;13746:19;;13810:18;:24;13829:4;13810:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13838:18;:22;13857:2;13838:22;;;;;;;;;;;;;;;;;;;;;;;;;13810:50;13809:102;;;;13874:13;;;;;;;;;;;13866:21;;:4;:21;;;;:44;;;;;13897:13;;;;;;;;;;;13891:19;;:2;:19;;;;13866:44;13809:102;13805:841;;;13938:5;13928:15;;13805:841;;;14033:13;;;;;;;;;;;14025:21;;:4;:21;;;:55;;;;;14064:15;;;;;;;;;;;14050:30;;:2;:30;;;;14025:55;14022:172;;;14118:19;;14101:14;:36;;;;14166:12;;14156:7;:22;;;;14022:172;14252:18;:24;14271:4;14252:24;;;;;;;;;;;;;;;;;;;;;;;;;14247:167;;14323:12;;14313:6;:22;;14305:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;14247:167;14456:13;;;;;;;;;;;14450:19;;:2;:19;;;:55;;;;;14489:15;;;;;;;;;;;14473:32;;:4;:32;;;;14450:55;14446:175;;;14543:20;;14526:14;:37;;;;14592:13;;14582:7;:23;;;;14446:175;13805:841;14658:41;14673:4;14679:2;14683:6;14691:7;14658:14;:41::i;:::-;12184:2523;;;;:::o;2983:224::-;3103:7;3136:1;3131;:6;;3139:12;3123:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3163:9;3179:1;3175;:5;;;;:::i;:::-;3163:17;;3198:1;3191:8;;;2983:224;;;;;:::o;11082:323::-;11177:7;11235;;11224;:18;;11202:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11323:19;11345:10;:8;:10::i;:::-;11323:32;;11373:24;11385:11;11373:7;:11;;:24;;;;:::i;:::-;11366:31;;;11082:323;;;:::o;14717:483::-;7393:4;7384:6;;:13;;;;;;;;;;;;;;;;;;14795:21:::1;14833:1;14819:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14795:40;;14864:4;14846;14851:1;14846:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;14890:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14880:4;14885:1;14880:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;14923:62;14940:4;14955:15;;;;;;;;;;;14973:11;14923:8;:62::i;:::-;14996:15;;;;;;;;;;;:66;;;15077:11;15103:1;15119:4;15146;15166:15;14996:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7408:1;7429:5:::0;7420:6;;:14;;;;;;;;;;;;;;;;;;14717:483;:::o;20099:91::-;2290:12;:10;:12::i;:::-;2280:22;;:6;;;;;;;;;;:22;;;2272:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20170:4:::1;20154:13;;:20;;;;;;;;;;;;;;;;;;20099:91::o:0;15208:147::-;15265:11;;;;;;;;;;;:20;;:35;15286:13;15297:1;15286:6;:10;;:13;;;;:::i;:::-;15265:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15311:12;;;;;;;;;;;:21;;:36;15333:13;15344:1;15333:6;:10;;:13;;;;:::i;:::-;15311:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15208:147;:::o;16073:282::-;16229:7;16224:28;;16238:14;:12;:14::i;:::-;16224:28;16263:44;16281:6;16289:9;16300:6;16263:17;:44::i;:::-;16323:7;16318:29;;16332:15;:13;:15::i;:::-;16318:29;16073:282;;;;:::o;19063:166::-;19105:7;19126:15;19143;19162:19;:17;:19::i;:::-;19125:56;;;;19201:20;19213:7;19201;:11;;:20;;;;:::i;:::-;19194:27;;;;19063:166;:::o;3469:132::-;3527:7;3554:39;3558:1;3561;3554:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3547:46;;3469:132;;;;:::o;11413:251::-;11478:1;11460:14;;:19;:35;;;;;11494:1;11483:7;;:12;11460:35;11456:48;;;11497:7;;11456:48;11545:14;;11520:22;:39;;;;11588:7;;11570:15;:25;;;;11633:1;11616:14;:18;;;;11655:1;11645:7;:11;;;;11413:251;:::o;16363:610::-;16510:15;16540:23;16578:12;16605:23;16643:12;16670:13;16697:19;16708:7;16697:10;:19::i;:::-;16495:221;;;;;;;;;;;;16745:28;16765:7;16745;:15;16753:6;16745:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16727:7;:15;16735:6;16727:15;;;;;;;;;;;;;;;:46;;;;16805:39;16828:15;16805:7;:18;16813:9;16805:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16784:7;:18;16792:9;16784:18;;;;;;;;;;;;;;;:60;;;;16855:16;16865:5;16855:9;:16::i;:::-;16882:23;16894:4;16900;16882:11;:23::i;:::-;16938:9;16921:44;;16930:6;16921:44;;;16949:15;16921:44;;;;;;:::i;:::-;;;;;;;;16363:610;;;;;;;;;:::o;11672:127::-;11733:22;;11716:14;:39;;;;11776:15;;11766:7;:25;;;;11672:127::o;19237:263::-;19288:7;19297;19317:15;19335:7;;19317:25;;19353:15;5481:16;19353:25;;19403:20;5481:16;19403:7;;:11;;:20;;;;:::i;:::-;19393:7;:30;19389:61;;;19433:7;;5481:16;19425:25;;;;;;;;19389:61;19475:7;19484;19467:25;;;;;;19237:263;;;:::o;3609:223::-;3729:7;3761:1;3757;:5;3764:12;3749:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3788:9;3804:1;3800;:5;;;;:::i;:::-;3788:17;;3823:1;3816:8;;;3609:223;;;;;:::o;17392:630::-;17492:7;17514;17536;17558;17580;17602;17638:23;17663:12;17677:13;17707:45;17719:7;17728:14;;17744:7;;17707:11;:45::i;:::-;17637:115;;;;;;17763:19;17785:10;:8;:10::i;:::-;17763:32;;17807:15;17824:23;17849:12;17878:46;17890:7;17899:4;17905:5;17912:11;17878;:46::i;:::-;17806:118;;;;;;17953:7;17962:15;17979:4;17985:15;18002:4;18008:5;17945:69;;;;;;;;;;;;;;;;;;;17392:630;;;;;;;:::o;2839:136::-;2897:7;2924:43;2928:1;2931;2924:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2917:50;;2839:136;;;;:::o;2652:179::-;2710:7;2730:9;2746:1;2742;:5;;;;:::i;:::-;2730:17;;2771:1;2766;:6;;2758:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2822:1;2815:8;;;2652:179;;;;:::o;16981:211::-;17034:19;17056:10;:8;:10::i;:::-;17034:32;;17077:13;17093:22;17103:11;17093:5;:9;;:22;;;;:::i;:::-;17077:38;;17151:33;17178:5;17151:7;:22;17167:4;17151:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17126:7;:22;17142:4;17126:22;;;;;;;;;;;;;;;:58;;;;16981:211;;;:::o;17200:147::-;17278:17;17290:4;17278:7;;:11;;:17;;;;:::i;:::-;17268:7;:27;;;;17319:20;17334:4;17319:10;;:14;;:20;;;;:::i;:::-;17306:10;:33;;;;17200:147;;:::o;18030:481::-;18204:7;18226;18248;18283:12;18298:35;18329:3;18298:26;18310:13;18298:7;:11;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;18283:50;;18344:13;18360:28;18384:3;18360:19;18372:6;18360:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18344:44;;18399:23;18425:28;18447:5;18425:17;18437:4;18425:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18399:54;;18474:15;18491:4;18497:5;18466:37;;;;;;;;;18030:481;;;;;;;:::o;18519:536::-;18713:7;18735;18757;18792:15;18810:24;18822:11;18810:7;:11;;:24;;;;:::i;:::-;18792:42;;18845:12;18860:21;18869:11;18860:4;:8;;:21;;;;:::i;:::-;18845:36;;18892:13;18908:22;18918:11;18908:5;:9;;:22;;;;:::i;:::-;18892:38;;18941:23;18967:28;18989:5;18967:17;18979:4;18967:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18941:54;;19016:7;19025:15;19042:4;19008:39;;;;;;;;;;18519:536;;;;;;;;:::o;3215:246::-;3273:7;3302:1;3297;:6;3293:47;;;3327:1;3320:8;;;;3293:47;3350:9;3366:1;3362;:5;;;;:::i;:::-;3350:17;;3395:1;3390;3386;:5;;;;:::i;:::-;:10;3378:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3452:1;3445:8;;;3215:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;702:655::-;798:5;823:81;839:64;896:6;839:64;:::i;:::-;823:81;:::i;:::-;814:90;;924:5;953:6;946:5;939:21;987:4;980:5;976:16;969:23;;1013:6;1063:3;1055:4;1047:6;1043:17;1038:3;1034:27;1031:36;1028:2;;;1092:1;1089;1082:12;1028:2;1128:1;1113:238;1138:6;1135:1;1132:13;1113:238;;;1206:3;1235:37;1268:3;1256:10;1235:37;:::i;:::-;1230:3;1223:50;1302:4;1297:3;1293:14;1286:21;;1336:4;1331:3;1327:14;1320:21;;1173:178;1160:1;1157;1153:9;1148:14;;1113:238;;;1117:14;804:553;;;;;;;:::o;1363:139::-;1409:5;1447:6;1434:20;1425:29;;1463:33;1490:5;1463:33;:::i;:::-;1415:87;;;;:::o;1508:143::-;1565:5;1596:6;1590:13;1581:22;;1612:33;1639:5;1612:33;:::i;:::-;1571:80;;;;:::o;1674:303::-;1745:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:2;;1812:1;1809;1802:12;1761:2;1852:6;1839:20;1877:94;1967:3;1959:6;1952:4;1944:6;1940:17;1877:94;:::i;:::-;1868:103;;1751:226;;;;;:::o;2000:303::-;2071:5;2120:3;2113:4;2105:6;2101:17;2097:27;2087:2;;2138:1;2135;2128:12;2087:2;2178:6;2165:20;2203:94;2293:3;2285:6;2278:4;2270:6;2266:17;2203:94;:::i;:::-;2194:103;;2077:226;;;;;:::o;2309:133::-;2352:5;2390:6;2377:20;2368:29;;2406:30;2430:5;2406:30;:::i;:::-;2358:84;;;;:::o;2448:139::-;2494:5;2532:6;2519:20;2510:29;;2548:33;2575:5;2548:33;:::i;:::-;2500:87;;;;:::o;2593:262::-;2652:6;2701:2;2689:9;2680:7;2676:23;2672:32;2669:2;;;2717:1;2714;2707:12;2669:2;2760:1;2785:53;2830:7;2821:6;2810:9;2806:22;2785:53;:::i;:::-;2775:63;;2731:117;2659:196;;;;:::o;2861:284::-;2931:6;2980:2;2968:9;2959:7;2955:23;2951:32;2948:2;;;2996:1;2993;2986:12;2948:2;3039:1;3064:64;3120:7;3111:6;3100:9;3096:22;3064:64;:::i;:::-;3054:74;;3010:128;2938:207;;;;:::o;3151:407::-;3219:6;3227;3276:2;3264:9;3255:7;3251:23;3247:32;3244:2;;;3292:1;3289;3282:12;3244:2;3335:1;3360:53;3405:7;3396:6;3385:9;3381:22;3360:53;:::i;:::-;3350:63;;3306:117;3462:2;3488:53;3533:7;3524:6;3513:9;3509:22;3488:53;:::i;:::-;3478:63;;3433:118;3234:324;;;;;:::o;3564:552::-;3641:6;3649;3657;3706:2;3694:9;3685:7;3681:23;3677:32;3674:2;;;3722:1;3719;3712:12;3674:2;3765:1;3790:53;3835:7;3826:6;3815:9;3811:22;3790:53;:::i;:::-;3780:63;;3736:117;3892:2;3918:53;3963:7;3954:6;3943:9;3939:22;3918:53;:::i;:::-;3908:63;;3863:118;4020:2;4046:53;4091:7;4082:6;4071:9;4067:22;4046:53;:::i;:::-;4036:63;;3991:118;3664:452;;;;;:::o;4122:401::-;4187:6;4195;4244:2;4232:9;4223:7;4219:23;4215:32;4212:2;;;4260:1;4257;4250:12;4212:2;4303:1;4328:53;4373:7;4364:6;4353:9;4349:22;4328:53;:::i;:::-;4318:63;;4274:117;4430:2;4456:50;4498:7;4489:6;4478:9;4474:22;4456:50;:::i;:::-;4446:60;;4401:115;4202:321;;;;;:::o;4529:407::-;4597:6;4605;4654:2;4642:9;4633:7;4629:23;4625:32;4622:2;;;4670:1;4667;4660:12;4622:2;4713:1;4738:53;4783:7;4774:6;4763:9;4759:22;4738:53;:::i;:::-;4728:63;;4684:117;4840:2;4866:53;4911:7;4902:6;4891:9;4887:22;4866:53;:::i;:::-;4856:63;;4811:118;4612:324;;;;;:::o;4942:405::-;5026:6;5075:2;5063:9;5054:7;5050:23;5046:32;5043:2;;;5091:1;5088;5081:12;5043:2;5162:1;5151:9;5147:17;5134:31;5192:18;5184:6;5181:30;5178:2;;;5224:1;5221;5214:12;5178:2;5252:78;5322:7;5313:6;5302:9;5298:22;5252:78;:::i;:::-;5242:88;;5105:235;5033:314;;;;:::o;5353:693::-;5471:6;5479;5528:2;5516:9;5507:7;5503:23;5499:32;5496:2;;;5544:1;5541;5534:12;5496:2;5615:1;5604:9;5600:17;5587:31;5645:18;5637:6;5634:30;5631:2;;;5677:1;5674;5667:12;5631:2;5705:78;5775:7;5766:6;5755:9;5751:22;5705:78;:::i;:::-;5695:88;;5558:235;5860:2;5849:9;5845:18;5832:32;5891:18;5883:6;5880:30;5877:2;;;5923:1;5920;5913:12;5877:2;5951:78;6021:7;6012:6;6001:9;5997:22;5951:78;:::i;:::-;5941:88;;5803:236;5486:560;;;;;:::o;6052:262::-;6111:6;6160:2;6148:9;6139:7;6135:23;6131:32;6128:2;;;6176:1;6173;6166:12;6128:2;6219:1;6244:53;6289:7;6280:6;6269:9;6265:22;6244:53;:::i;:::-;6234:63;;6190:117;6118:196;;;;:::o;6320:698::-;6406:6;6414;6422;6430;6479:3;6467:9;6458:7;6454:23;6450:33;6447:2;;;6496:1;6493;6486:12;6447:2;6539:1;6564:53;6609:7;6600:6;6589:9;6585:22;6564:53;:::i;:::-;6554:63;;6510:117;6666:2;6692:53;6737:7;6728:6;6717:9;6713:22;6692:53;:::i;:::-;6682:63;;6637:118;6794:2;6820:53;6865:7;6856:6;6845:9;6841:22;6820:53;:::i;:::-;6810:63;;6765:118;6922:2;6948:53;6993:7;6984:6;6973:9;6969:22;6948:53;:::i;:::-;6938:63;;6893:118;6437:581;;;;;;;:::o;7024:179::-;7093:10;7114:46;7156:3;7148:6;7114:46;:::i;:::-;7192:4;7187:3;7183:14;7169:28;;7104:99;;;;:::o;7209:147::-;7304:45;7343:5;7304:45;:::i;:::-;7299:3;7292:58;7282:74;;:::o;7362:142::-;7465:32;7491:5;7465:32;:::i;:::-;7460:3;7453:45;7443:61;;:::o;7510:108::-;7587:24;7605:5;7587:24;:::i;:::-;7582:3;7575:37;7565:53;;:::o;7624:118::-;7711:24;7729:5;7711:24;:::i;:::-;7706:3;7699:37;7689:53;;:::o;7778:732::-;7897:3;7926:54;7974:5;7926:54;:::i;:::-;7996:86;8075:6;8070:3;7996:86;:::i;:::-;7989:93;;8106:56;8156:5;8106:56;:::i;:::-;8185:7;8216:1;8201:284;8226:6;8223:1;8220:13;8201:284;;;8302:6;8296:13;8329:63;8388:3;8373:13;8329:63;:::i;:::-;8322:70;;8415:60;8468:6;8415:60;:::i;:::-;8405:70;;8261:224;8248:1;8245;8241:9;8236:14;;8201:284;;;8205:14;8501:3;8494:10;;7902:608;;;;;;;:::o;8516:109::-;8597:21;8612:5;8597:21;:::i;:::-;8592:3;8585:34;8575:50;;:::o;8631:183::-;8744:63;8801:5;8744:63;:::i;:::-;8739:3;8732:76;8722:92;;:::o;8820:147::-;8915:45;8954:5;8915:45;:::i;:::-;8910:3;8903:58;8893:74;;:::o;8973:364::-;9061:3;9089:39;9122:5;9089:39;:::i;:::-;9144:71;9208:6;9203:3;9144:71;:::i;:::-;9137:78;;9224:52;9269:6;9264:3;9257:4;9250:5;9246:16;9224:52;:::i;:::-;9301:29;9323:6;9301:29;:::i;:::-;9296:3;9292:39;9285:46;;9065:272;;;;;:::o;9343:366::-;9485:3;9506:67;9570:2;9565:3;9506:67;:::i;:::-;9499:74;;9582:93;9671:3;9582:93;:::i;:::-;9700:2;9695:3;9691:12;9684:19;;9489:220;;;:::o;9715:366::-;9857:3;9878:67;9942:2;9937:3;9878:67;:::i;:::-;9871:74;;9954:93;10043:3;9954:93;:::i;:::-;10072:2;10067:3;10063:12;10056:19;;9861:220;;;:::o;10087:366::-;10229:3;10250:67;10314:2;10309:3;10250:67;:::i;:::-;10243:74;;10326:93;10415:3;10326:93;:::i;:::-;10444:2;10439:3;10435:12;10428:19;;10233:220;;;:::o;10459:366::-;10601:3;10622:67;10686:2;10681:3;10622:67;:::i;:::-;10615:74;;10698:93;10787:3;10698:93;:::i;:::-;10816:2;10811:3;10807:12;10800:19;;10605:220;;;:::o;10831:366::-;10973:3;10994:67;11058:2;11053:3;10994:67;:::i;:::-;10987:74;;11070:93;11159:3;11070:93;:::i;:::-;11188:2;11183:3;11179:12;11172:19;;10977:220;;;:::o;11203:366::-;11345:3;11366:67;11430:2;11425:3;11366:67;:::i;:::-;11359:74;;11442:93;11531:3;11442:93;:::i;:::-;11560:2;11555:3;11551:12;11544:19;;11349:220;;;:::o;11575:366::-;11717:3;11738:67;11802:2;11797:3;11738:67;:::i;:::-;11731:74;;11814:93;11903:3;11814:93;:::i;:::-;11932:2;11927:3;11923:12;11916:19;;11721:220;;;:::o;11947:366::-;12089:3;12110:67;12174:2;12169:3;12110:67;:::i;:::-;12103:74;;12186:93;12275:3;12186:93;:::i;:::-;12304:2;12299:3;12295:12;12288:19;;12093:220;;;:::o;12319:366::-;12461:3;12482:67;12546:2;12541:3;12482:67;:::i;:::-;12475:74;;12558:93;12647:3;12558:93;:::i;:::-;12676:2;12671:3;12667:12;12660:19;;12465:220;;;:::o;12691:366::-;12833:3;12854:67;12918:2;12913:3;12854:67;:::i;:::-;12847:74;;12930:93;13019:3;12930:93;:::i;:::-;13048:2;13043:3;13039:12;13032:19;;12837:220;;;:::o;13063:366::-;13205:3;13226:67;13290:2;13285:3;13226:67;:::i;:::-;13219:74;;13302:93;13391:3;13302:93;:::i;:::-;13420:2;13415:3;13411:12;13404:19;;13209:220;;;:::o;13435:366::-;13577:3;13598:67;13662:2;13657:3;13598:67;:::i;:::-;13591:74;;13674:93;13763:3;13674:93;:::i;:::-;13792:2;13787:3;13783:12;13776:19;;13581:220;;;:::o;13807:366::-;13949:3;13970:67;14034:2;14029:3;13970:67;:::i;:::-;13963:74;;14046:93;14135:3;14046:93;:::i;:::-;14164:2;14159:3;14155:12;14148:19;;13953:220;;;:::o;14179:366::-;14321:3;14342:67;14406:2;14401:3;14342:67;:::i;:::-;14335:74;;14418:93;14507:3;14418:93;:::i;:::-;14536:2;14531:3;14527:12;14520:19;;14325:220;;;:::o;14551:366::-;14693:3;14714:67;14778:2;14773:3;14714:67;:::i;:::-;14707:74;;14790:93;14879:3;14790:93;:::i;:::-;14908:2;14903:3;14899:12;14892:19;;14697:220;;;:::o;14923:366::-;15065:3;15086:67;15150:2;15145:3;15086:67;:::i;:::-;15079:74;;15162:93;15251:3;15162:93;:::i;:::-;15280:2;15275:3;15271:12;15264:19;;15069:220;;;:::o;15295:366::-;15437:3;15458:67;15522:2;15517:3;15458:67;:::i;:::-;15451:74;;15534:93;15623:3;15534:93;:::i;:::-;15652:2;15647:3;15643:12;15636:19;;15441:220;;;:::o;15667:366::-;15809:3;15830:67;15894:2;15889:3;15830:67;:::i;:::-;15823:74;;15906:93;15995:3;15906:93;:::i;:::-;16024:2;16019:3;16015:12;16008:19;;15813:220;;;:::o;16039:366::-;16181:3;16202:67;16266:2;16261:3;16202:67;:::i;:::-;16195:74;;16278:93;16367:3;16278:93;:::i;:::-;16396:2;16391:3;16387:12;16380:19;;16185:220;;;:::o;16411:366::-;16553:3;16574:67;16638:2;16633:3;16574:67;:::i;:::-;16567:74;;16650:93;16739:3;16650:93;:::i;:::-;16768:2;16763:3;16759:12;16752:19;;16557:220;;;:::o;16783:366::-;16925:3;16946:67;17010:2;17005:3;16946:67;:::i;:::-;16939:74;;17022:93;17111:3;17022:93;:::i;:::-;17140:2;17135:3;17131:12;17124:19;;16929:220;;;:::o;17155:366::-;17297:3;17318:67;17382:2;17377:3;17318:67;:::i;:::-;17311:74;;17394:93;17483:3;17394:93;:::i;:::-;17512:2;17507:3;17503:12;17496:19;;17301:220;;;:::o;17527:118::-;17614:24;17632:5;17614:24;:::i;:::-;17609:3;17602:37;17592:53;;:::o;17651:112::-;17734:22;17750:5;17734:22;:::i;:::-;17729:3;17722:35;17712:51;;:::o;17769:222::-;17862:4;17900:2;17889:9;17885:18;17877:26;;17913:71;17981:1;17970:9;17966:17;17957:6;17913:71;:::i;:::-;17867:124;;;;:::o;17997:238::-;18098:4;18136:2;18125:9;18121:18;18113:26;;18149:79;18225:1;18214:9;18210:17;18201:6;18149:79;:::i;:::-;18103:132;;;;:::o;18241:254::-;18350:4;18388:2;18377:9;18373:18;18365:26;;18401:87;18485:1;18474:9;18470:17;18461:6;18401:87;:::i;:::-;18355:140;;;;:::o;18501:332::-;18622:4;18660:2;18649:9;18645:18;18637:26;;18673:71;18741:1;18730:9;18726:17;18717:6;18673:71;:::i;:::-;18754:72;18822:2;18811:9;18807:18;18798:6;18754:72;:::i;:::-;18627:206;;;;;:::o;18839:210::-;18926:4;18964:2;18953:9;18949:18;18941:26;;18977:65;19039:1;19028:9;19024:17;19015:6;18977:65;:::i;:::-;18931:118;;;;:::o;19055:274::-;19174:4;19212:2;19201:9;19197:18;19189:26;;19225:97;19319:1;19308:9;19304:17;19295:6;19225:97;:::i;:::-;19179:150;;;;:::o;19335:313::-;19448:4;19486:2;19475:9;19471:18;19463:26;;19535:9;19529:4;19525:20;19521:1;19510:9;19506:17;19499:47;19563:78;19636:4;19627:6;19563:78;:::i;:::-;19555:86;;19453:195;;;;:::o;19654:419::-;19820:4;19858:2;19847:9;19843:18;19835:26;;19907:9;19901:4;19897:20;19893:1;19882:9;19878:17;19871:47;19935:131;20061:4;19935:131;:::i;:::-;19927:139;;19825:248;;;:::o;20079:419::-;20245:4;20283:2;20272:9;20268:18;20260:26;;20332:9;20326:4;20322:20;20318:1;20307:9;20303:17;20296:47;20360:131;20486:4;20360:131;:::i;:::-;20352:139;;20250:248;;;:::o;20504:419::-;20670:4;20708:2;20697:9;20693:18;20685:26;;20757:9;20751:4;20747:20;20743:1;20732:9;20728:17;20721:47;20785:131;20911:4;20785:131;:::i;:::-;20777:139;;20675:248;;;:::o;20929:419::-;21095:4;21133:2;21122:9;21118:18;21110:26;;21182:9;21176:4;21172:20;21168:1;21157:9;21153:17;21146:47;21210:131;21336:4;21210:131;:::i;:::-;21202:139;;21100:248;;;:::o;21354:419::-;21520:4;21558:2;21547:9;21543:18;21535:26;;21607:9;21601:4;21597:20;21593:1;21582:9;21578:17;21571:47;21635:131;21761:4;21635:131;:::i;:::-;21627:139;;21525:248;;;:::o;21779:419::-;21945:4;21983:2;21972:9;21968:18;21960:26;;22032:9;22026:4;22022:20;22018:1;22007:9;22003:17;21996:47;22060:131;22186:4;22060:131;:::i;:::-;22052:139;;21950:248;;;:::o;22204:419::-;22370:4;22408:2;22397:9;22393:18;22385:26;;22457:9;22451:4;22447:20;22443:1;22432:9;22428:17;22421:47;22485:131;22611:4;22485:131;:::i;:::-;22477:139;;22375:248;;;:::o;22629:419::-;22795:4;22833:2;22822:9;22818:18;22810:26;;22882:9;22876:4;22872:20;22868:1;22857:9;22853:17;22846:47;22910:131;23036:4;22910:131;:::i;:::-;22902:139;;22800:248;;;:::o;23054:419::-;23220:4;23258:2;23247:9;23243:18;23235:26;;23307:9;23301:4;23297:20;23293:1;23282:9;23278:17;23271:47;23335:131;23461:4;23335:131;:::i;:::-;23327:139;;23225:248;;;:::o;23479:419::-;23645:4;23683:2;23672:9;23668:18;23660:26;;23732:9;23726:4;23722:20;23718:1;23707:9;23703:17;23696:47;23760:131;23886:4;23760:131;:::i;:::-;23752:139;;23650:248;;;:::o;23904:419::-;24070:4;24108:2;24097:9;24093:18;24085:26;;24157:9;24151:4;24147:20;24143:1;24132:9;24128:17;24121:47;24185:131;24311:4;24185:131;:::i;:::-;24177:139;;24075:248;;;:::o;24329:419::-;24495:4;24533:2;24522:9;24518:18;24510:26;;24582:9;24576:4;24572:20;24568:1;24557:9;24553:17;24546:47;24610:131;24736:4;24610:131;:::i;:::-;24602:139;;24500:248;;;:::o;24754:419::-;24920:4;24958:2;24947:9;24943:18;24935:26;;25007:9;25001:4;24997:20;24993:1;24982:9;24978:17;24971:47;25035:131;25161:4;25035:131;:::i;:::-;25027:139;;24925:248;;;:::o;25179:419::-;25345:4;25383:2;25372:9;25368:18;25360:26;;25432:9;25426:4;25422:20;25418:1;25407:9;25403:17;25396:47;25460:131;25586:4;25460:131;:::i;:::-;25452:139;;25350:248;;;:::o;25604:419::-;25770:4;25808:2;25797:9;25793:18;25785:26;;25857:9;25851:4;25847:20;25843:1;25832:9;25828:17;25821:47;25885:131;26011:4;25885:131;:::i;:::-;25877:139;;25775:248;;;:::o;26029:419::-;26195:4;26233:2;26222:9;26218:18;26210:26;;26282:9;26276:4;26272:20;26268:1;26257:9;26253:17;26246:47;26310:131;26436:4;26310:131;:::i;:::-;26302:139;;26200:248;;;:::o;26454:419::-;26620:4;26658:2;26647:9;26643:18;26635:26;;26707:9;26701:4;26697:20;26693:1;26682:9;26678:17;26671:47;26735:131;26861:4;26735:131;:::i;:::-;26727:139;;26625:248;;;:::o;26879:419::-;27045:4;27083:2;27072:9;27068:18;27060:26;;27132:9;27126:4;27122:20;27118:1;27107:9;27103:17;27096:47;27160:131;27286:4;27160:131;:::i;:::-;27152:139;;27050:248;;;:::o;27304:419::-;27470:4;27508:2;27497:9;27493:18;27485:26;;27557:9;27551:4;27547:20;27543:1;27532:9;27528:17;27521:47;27585:131;27711:4;27585:131;:::i;:::-;27577:139;;27475:248;;;:::o;27729:419::-;27895:4;27933:2;27922:9;27918:18;27910:26;;27982:9;27976:4;27972:20;27968:1;27957:9;27953:17;27946:47;28010:131;28136:4;28010:131;:::i;:::-;28002:139;;27900:248;;;:::o;28154:419::-;28320:4;28358:2;28347:9;28343:18;28335:26;;28407:9;28401:4;28397:20;28393:1;28382:9;28378:17;28371:47;28435:131;28561:4;28435:131;:::i;:::-;28427:139;;28325:248;;;:::o;28579:419::-;28745:4;28783:2;28772:9;28768:18;28760:26;;28832:9;28826:4;28822:20;28818:1;28807:9;28803:17;28796:47;28860:131;28986:4;28860:131;:::i;:::-;28852:139;;28750:248;;;:::o;29004:222::-;29097:4;29135:2;29124:9;29120:18;29112:26;;29148:71;29216:1;29205:9;29201:17;29192:6;29148:71;:::i;:::-;29102:124;;;;:::o;29232:831::-;29495:4;29533:3;29522:9;29518:19;29510:27;;29547:71;29615:1;29604:9;29600:17;29591:6;29547:71;:::i;:::-;29628:80;29704:2;29693:9;29689:18;29680:6;29628:80;:::i;:::-;29755:9;29749:4;29745:20;29740:2;29729:9;29725:18;29718:48;29783:108;29886:4;29877:6;29783:108;:::i;:::-;29775:116;;29901:72;29969:2;29958:9;29954:18;29945:6;29901:72;:::i;:::-;29983:73;30051:3;30040:9;30036:19;30027:6;29983:73;:::i;:::-;29500:563;;;;;;;;:::o;30069:214::-;30158:4;30196:2;30185:9;30181:18;30173:26;;30209:67;30273:1;30262:9;30258:17;30249:6;30209:67;:::i;:::-;30163:120;;;;:::o;30289:129::-;30323:6;30350:20;;:::i;:::-;30340:30;;30379:33;30407:4;30399:6;30379:33;:::i;:::-;30330:88;;;:::o;30424:75::-;30457:6;30490:2;30484:9;30474:19;;30464:35;:::o;30505:311::-;30582:4;30672:18;30664:6;30661:30;30658:2;;;30694:18;;:::i;:::-;30658:2;30744:4;30736:6;30732:17;30724:25;;30804:4;30798;30794:15;30786:23;;30587:229;;;:::o;30822:311::-;30899:4;30989:18;30981:6;30978:30;30975:2;;;31011:18;;:::i;:::-;30975:2;31061:4;31053:6;31049:17;31041:25;;31121:4;31115;31111:15;31103:23;;30904:229;;;:::o;31139:132::-;31206:4;31229:3;31221:11;;31259:4;31254:3;31250:14;31242:22;;31211:60;;;:::o;31277:114::-;31344:6;31378:5;31372:12;31362:22;;31351:40;;;:::o;31397:99::-;31449:6;31483:5;31477:12;31467:22;;31456:40;;;:::o;31502:113::-;31572:4;31604;31599:3;31595:14;31587:22;;31577:38;;;:::o;31621:184::-;31720:11;31754:6;31749:3;31742:19;31794:4;31789:3;31785:14;31770:29;;31732:73;;;;:::o;31811:169::-;31895:11;31929:6;31924:3;31917:19;31969:4;31964:3;31960:14;31945:29;;31907:73;;;;:::o;31986:305::-;32026:3;32045:20;32063:1;32045:20;:::i;:::-;32040:25;;32079:20;32097:1;32079:20;:::i;:::-;32074:25;;32233:1;32165:66;32161:74;32158:1;32155:81;32152:2;;;32239:18;;:::i;:::-;32152:2;32283:1;32280;32276:9;32269:16;;32030:261;;;;:::o;32297:185::-;32337:1;32354:20;32372:1;32354:20;:::i;:::-;32349:25;;32388:20;32406:1;32388:20;:::i;:::-;32383:25;;32427:1;32417:2;;32432:18;;:::i;:::-;32417:2;32474:1;32471;32467:9;32462:14;;32339:143;;;;:::o;32488:348::-;32528:7;32551:20;32569:1;32551:20;:::i;:::-;32546:25;;32585:20;32603:1;32585:20;:::i;:::-;32580:25;;32773:1;32705:66;32701:74;32698:1;32695:81;32690:1;32683:9;32676:17;32672:105;32669:2;;;32780:18;;:::i;:::-;32669:2;32828:1;32825;32821:9;32810:20;;32536:300;;;;:::o;32842:191::-;32882:4;32902:20;32920:1;32902:20;:::i;:::-;32897:25;;32936:20;32954:1;32936:20;:::i;:::-;32931:25;;32975:1;32972;32969:8;32966:2;;;32980:18;;:::i;:::-;32966:2;33025:1;33022;33018:9;33010:17;;32887:146;;;;:::o;33039:96::-;33076:7;33105:24;33123:5;33105:24;:::i;:::-;33094:35;;33084:51;;;:::o;33141:104::-;33186:7;33215:24;33233:5;33215:24;:::i;:::-;33204:35;;33194:51;;;:::o;33251:90::-;33285:7;33328:5;33321:13;33314:21;33303:32;;33293:48;;;:::o;33347:126::-;33384:7;33424:42;33417:5;33413:54;33402:65;;33392:81;;;:::o;33479:77::-;33516:7;33545:5;33534:16;;33524:32;;;:::o;33562:86::-;33597:7;33637:4;33630:5;33626:16;33615:27;;33605:43;;;:::o;33654:134::-;33712:9;33745:37;33776:5;33745:37;:::i;:::-;33732:50;;33722:66;;;:::o;33794:178::-;33870:9;33903:63;33960:5;33903:63;:::i;:::-;33890:76;;33880:92;;;:::o;33978:139::-;34054:9;34087:24;34105:5;34087:24;:::i;:::-;34074:37;;34064:53;;;:::o;34123:121::-;34181:9;34214:24;34232:5;34214:24;:::i;:::-;34201:37;;34191:53;;;:::o;34250:126::-;34300:9;34333:37;34364:5;34333:37;:::i;:::-;34320:50;;34310:66;;;:::o;34382:113::-;34432:9;34465:24;34483:5;34465:24;:::i;:::-;34452:37;;34442:53;;;:::o;34501:307::-;34569:1;34579:113;34593:6;34590:1;34587:13;34579:113;;;34678:1;34673:3;34669:11;34663:18;34659:1;34654:3;34650:11;34643:39;34615:2;34612:1;34608:10;34603:15;;34579:113;;;34710:6;34707:1;34704:13;34701:2;;;34790:1;34781:6;34776:3;34772:16;34765:27;34701:2;34550:258;;;;:::o;34814:281::-;34897:27;34919:4;34897:27;:::i;:::-;34889:6;34885:40;35027:6;35015:10;35012:22;34991:18;34979:10;34976:34;34973:62;34970:2;;;35038:18;;:::i;:::-;34970:2;35078:10;35074:2;35067:22;34857:238;;;:::o;35101:233::-;35140:3;35163:24;35181:5;35163:24;:::i;:::-;35154:33;;35209:66;35202:5;35199:77;35196:2;;;35279:18;;:::i;:::-;35196:2;35326:1;35319:5;35315:13;35308:20;;35144:190;;;:::o;35340:180::-;35388:77;35385:1;35378:88;35485:4;35482:1;35475:15;35509:4;35506:1;35499:15;35526:180;35574:77;35571:1;35564:88;35671:4;35668:1;35661:15;35695:4;35692:1;35685:15;35712:180;35760:77;35757:1;35750:88;35857:4;35854:1;35847:15;35881:4;35878:1;35871:15;35898:102;35939:6;35990:2;35986:7;35981:2;35974:5;35970:14;35966:28;35956:38;;35946:54;;;:::o;36006:222::-;36146:34;36142:1;36134:6;36130:14;36123:58;36215:5;36210:2;36202:6;36198:15;36191:30;36112:116;:::o;36234:241::-;36374:34;36370:1;36362:6;36358:14;36351:58;36443:24;36438:2;36430:6;36426:15;36419:49;36340:135;:::o;36481:174::-;36621:26;36617:1;36609:6;36605:14;36598:50;36587:68;:::o;36661:229::-;36801:34;36797:1;36789:6;36785:14;36778:58;36870:12;36865:2;36857:6;36853:15;36846:37;36767:123;:::o;36896:178::-;37036:30;37032:1;37024:6;37020:14;37013:54;37002:72;:::o;37080:225::-;37220:34;37216:1;37208:6;37204:14;37197:58;37289:8;37284:2;37276:6;37272:15;37265:33;37186:119;:::o;37311:221::-;37451:34;37447:1;37439:6;37435:14;37428:58;37520:4;37515:2;37507:6;37503:15;37496:29;37417:115;:::o;37538:222::-;37678:34;37674:1;37666:6;37662:14;37655:58;37747:5;37742:2;37734:6;37730:15;37723:30;37644:116;:::o;37766:177::-;37906:29;37902:1;37894:6;37890:14;37883:53;37872:71;:::o;37949:177::-;38089:29;38085:1;38077:6;38073:14;38066:53;38055:71;:::o;38132:241::-;38272:34;38268:1;38260:6;38256:14;38249:58;38341:24;38336:2;38328:6;38324:15;38317:49;38238:135;:::o;38379:220::-;38519:34;38515:1;38507:6;38503:14;38496:58;38588:3;38583:2;38575:6;38571:15;38564:28;38485:114;:::o;38605:182::-;38745:34;38741:1;38733:6;38729:14;38722:58;38711:76;:::o;38793:228::-;38933:34;38929:1;38921:6;38917:14;38910:58;39002:11;38997:2;38989:6;38985:15;38978:36;38899:122;:::o;39027:224::-;39167:34;39163:1;39155:6;39151:14;39144:58;39236:7;39231:2;39223:6;39219:15;39212:32;39133:118;:::o;39257:222::-;39397:34;39393:1;39385:6;39381:14;39374:58;39466:5;39461:2;39453:6;39449:15;39442:30;39363:116;:::o;39485:173::-;39625:25;39621:1;39613:6;39609:14;39602:49;39591:67;:::o;39664:223::-;39804:34;39800:1;39792:6;39788:14;39781:58;39873:6;39868:2;39860:6;39856:15;39849:31;39770:117;:::o;39893:230::-;40033:34;40029:1;40021:6;40017:14;40010:58;40102:13;40097:2;40089:6;40085:15;40078:38;39999:124;:::o;40129:226::-;40269:34;40265:1;40257:6;40253:14;40246:58;40338:9;40333:2;40325:6;40321:15;40314:34;40235:120;:::o;40361:301::-;40501:34;40497:1;40489:6;40485:14;40478:58;40570:34;40565:2;40557:6;40553:15;40546:59;40639:15;40634:2;40626:6;40622:15;40615:40;40467:195;:::o;40668:179::-;40808:31;40804:1;40796:6;40792:14;40785:55;40774:73;:::o;40853:122::-;40926:24;40944:5;40926:24;:::i;:::-;40919:5;40916:35;40906:2;;40965:1;40962;40955:12;40906:2;40896:79;:::o;40981:116::-;41051:21;41066:5;41051:21;:::i;:::-;41044:5;41041:32;41031:2;;41087:1;41084;41077:12;41031:2;41021:76;:::o;41103:122::-;41176:24;41194:5;41176:24;:::i;:::-;41169:5;41166:35;41156:2;;41215:1;41212;41205:12;41156:2;41146:79;:::o

Swarm Source

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