ETH Price: $2,852.43 (-10.93%)
Gas: 15 Gwei

Token

Binance PEPE (bPEPE)
 

Overview

Max Total Supply

1,000,000 bPEPE

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 bPEPE

Value
$0.00
0xfebd96f46362bb1d846b5433b4b3b4f6a133023e
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:
Token

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-31
*/

/*
                                                                                                                               
Telegram Portal : https://t.me/binancepepe_eth
Twitter : https://twitter.com/Binancepepe_eth
Website : https://binance-pepe.vip/

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

}

contract Ownable is Context {

    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

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

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

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Token is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "Binance PEPE";
    string private _symbol = unicode"bPEPE";
    uint8 private _decimals = 8;

    address public marketingWallet = 0x55eb1Db547b932093215DAd74e1E71758683BBe6;
    address public BuyBackWallet = 0x55eb1Db547b932093215DAd74e1E71758683BBe6;
    address public liquidityReciever;

    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public constant zeroAddress = 0x0000000000000000000000000000000000000000;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 _buyLiquidityFee = 0;
    uint256 _buyMarketingFee = 300;
    uint256 _buybuybackFee = 0;
    
    uint256 _sellLiquidityFee = 0;
    uint256 _sellMarketingFee = 400;
    uint256 _sellbuybackFee = 0;

    uint256 totalBuy;
    uint256 totalSell;

    uint256 constant denominator = 1000;

    uint256 private _totalSupply = 1_000_000 * 10 ** _decimals;   

    uint256 public minimumTokensBeforeSwap = 6000 * 10 ** _decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(20).div(denominator);     //2%
    uint256 public _walletMax = _totalSupply.mul(20).div(denominator);    //2%

    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;
    bool public ActiveTrade = false;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier onlyDev {
        require(msg.sender == liquidityReciever, "Ownable: caller is not the Dev");
        _; 
    }

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
            
        address developerWallet = 0x8369DB06236a958bcbd34DF4e19988345ADa6c3B;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        liquidityReciever = developerWallet;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[developerWallet] = true;

        isWalletLimitExempt[developerWallet] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[developerWallet] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buybuybackFee);
        totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellbuybackFee);

        transferOwnership(developerWallet);

        _balances[developerWallet] = _totalSupply;
        emit Transfer(address(0), developerWallet, _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20:from zero");
        require(recipient != address(0), "ERC20:to zero");
        require(amount > 0, "Invalid Amount");

        if(!ActiveTrade){
            require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is Paused!");
        }

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {  
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount,"Max Tx");
            } 

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                swapAndLiquify();
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify() private lockTheSwap {
        
        uint256 contractBalance = balanceOf(address(this));

        if(contractBalance == 0) return;

        uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 _BuyBackShare = _buybuybackFee.add(_sellbuybackFee);

        uint totalShares = totalBuy.add(totalSell);
        if(totalShares == 0) return;

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));

        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountReceived.mul(_MarketingShare).div(totalETHFee);
        uint256 amountETHBuyBack = amountReceived.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) 
            transferToAddressETH(marketingWallet,amountETHMarketing);

        if(amountETHBuyBack > 0) 
            transferToAddressETH(BuyBackWallet,amountETHBuyBack);

        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);

    }

    function transferToAddressETH(address recipient, uint256 amount) private {
        payable(recipient).transfer(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

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

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;
        
        unchecked {

            if(isMarketPair[sender]) {

                feeAmount = amount.mul(totalBuy).div(denominator);
            
            }
            else if(isMarketPair[recipient]) {
                
                feeAmount = amount.mul(totalSell).div(denominator);
                
            }     

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    //To Rescue Stucked Balance
    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner {
        adr.transfer(recipient,amount);
    }

    function enableTrading(bool _status) external onlyOwner {
        ActiveTrade = _status;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function removeLimits() external onlyOwner {
        checkWalletLimit = false;
        EnableTxLimit = false;
    }

    function enableLimits() external onlyOwner {
        checkWalletLimit = true;
        EnableTxLimit = true;   
    }

    function setBuyFee(uint _newLP , uint _newMarket , uint _newBB) external onlyOwner {     
        _buyLiquidityFee = _newLP;
        _buyMarketingFee = _newMarket;
        _buybuybackFee = _newBB;
        totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buybuybackFee);
    }

    function setSellFee(uint _newLP , uint _newMarket , uint _newBB) external onlyOwner {        
        _sellLiquidityFee = _newLP;
        _sellMarketingFee = _newMarket;
        _sellbuybackFee = _newBB;
        totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellbuybackFee);
    }

    function setMarketingWallets(address _newWallet) external onlyOwner {
        marketingWallet = _newWallet;
    }

    function setLiquidityWallets(address _newWallet) external onlyOwner {
        liquidityReciever = _newWallet;
    }   

    function setBuyBackWallets(address _newWallet) external onlyOwner {
        BuyBackWallet = _newWallet;
    }    

    function setExcludeFromFee(address _adr,bool _status) external onlyOwner {
        require(isExcludedFromFee[_adr] != _status,"Not Changed!!");
        isExcludedFromFee[_adr] = _status;
    }

    function ExcludeWalletLimit(address _adr,bool _status) external onlyOwner {
        require(isWalletLimitExempt[_adr] != _status,"Not Changed!!");
        isWalletLimitExempt[_adr] = _status;
    }

    function ExcludeTxLimit(address _adr,bool _status) external onlyOwner {
        require(isTxLimitExempt[_adr] != _status,"Not Changed!!");
        isTxLimitExempt[_adr] = _status;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) external onlyDev {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[address(_pair)] = true;
        }
    }

    function changeRouterVersion(address newRouterAddress) external onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ActiveTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyBackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setBuyBackWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newBB","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLiquidityWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newBB","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600c81526020017f42696e616e636520504550450000000000000000000000000000000000000000815250600190816200004a9190620010b1565b506040518060400160405280600581526020017f625045504500000000000000000000000000000000000000000000000000000081525060029081620000919190620010b1565b506008600360006101000a81548160ff021916908360ff1602179055507355eb1db547b932093215dad74e1e71758683bbe6600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507355eb1db547b932093215dad74e1e71758683bbe6600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c5561012c600d556000600e556000600f556101906010556000601155600360009054906101000a900460ff16600a62000196919062001328565b620f4240620001a6919062001379565b601455600360009054906101000a900460ff16600a620001c7919062001328565b611770620001d6919062001379565b601555620002106103e8620001fc6014805462000ac060201b62002f1c1790919060201c565b62000b4360201b62002f961790919060201c565b6016556200024a6103e8620002366014805462000ac060201b62002f1c1790919060201c565b62000b4360201b62002f961790919060201c565b6017556001601860006101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506000601860026101000a81548160ff0219169083151502179055506001601960156101000a81548160ff021916908315150217905550348015620002c657600080fd5b506000620002d962000b9560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000738369db06236a958bcbd34df4e19988345ada6c3b90506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041b91906200142e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000483573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a991906200142e565b6040518363ffffffff1660e01b8152600401620004c892919062001471565b6020604051808303816000875af1158015620004e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050e91906200142e565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009b2600e546200099e600d54600c5462000b9d60201b62002fe01790919060201c565b62000b9d60201b62002fe01790919060201c565b601281905550620009f1601154620009dd601054600f5462000b9d60201b62002fe01790919060201c565b62000b9d60201b62002fe01790919060201c565b60138190555062000a088262000c0060201b60201c565b601454600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000ab09190620014af565b60405180910390a3505062001835565b600080830362000ad4576000905062000b3d565b6000828462000ae4919062001379565b905082848262000af59190620014fb565b1462000b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2f90620015ba565b60405180910390fd5b809150505b92915050565b600062000b8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000dcf60201b60201c565b905092915050565b600033905090565b600080828462000bae9190620015dc565b90508381101562000bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bed9062001667565b60405180910390fd5b8091505092915050565b62000c1062000b9560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000ca0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9790620016d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000d12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d099062001771565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829062000e19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e10919062001811565b60405180910390fd5b506000838562000e2a9190620014fb565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000eb957607f821691505b60208210810362000ecf5762000ece62000e71565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000efa565b62000f45868362000efa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f9262000f8c62000f868462000f5d565b62000f67565b62000f5d565b9050919050565b6000819050919050565b62000fae8362000f71565b62000fc662000fbd8262000f99565b84845462000f07565b825550505050565b600090565b62000fdd62000fce565b62000fea81848462000fa3565b505050565b5b8181101562001012576200100660008262000fd3565b60018101905062000ff0565b5050565b601f82111562001061576200102b8162000ed5565b620010368462000eea565b8101602085101562001046578190505b6200105e620010558562000eea565b83018262000fef565b50505b505050565b600082821c905092915050565b6000620010866000198460080262001066565b1980831691505092915050565b6000620010a1838362001073565b9150826002028217905092915050565b620010bc8262000e37565b67ffffffffffffffff811115620010d857620010d762000e42565b5b620010e4825462000ea0565b620010f182828562001016565b600060209050601f83116001811462001129576000841562001114578287015190505b62001120858262001093565b86555062001190565b601f198416620011398662000ed5565b60005b8281101562001163578489015182556001820191506020850194506020810190506200113c565b868310156200118357848901516200117f601f89168262001073565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200122657808604811115620011fe57620011fd62001198565b5b60018516156200120e5780820291505b80810290506200121e85620011c7565b9450620011de565b94509492505050565b60008262001241576001905062001314565b8162001251576000905062001314565b81600181146200126a57600281146200127557620012ab565b600191505062001314565b60ff8411156200128a576200128962001198565b5b8360020a915084821115620012a457620012a362001198565b5b5062001314565b5060208310610133831016604e8410600b8410161715620012e55782820a905083811115620012df57620012de62001198565b5b62001314565b620012f48484846001620011d4565b925090508184048111156200130e576200130d62001198565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013358262000f5d565b915062001342836200131b565b9250620013717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200122f565b905092915050565b6000620013868262000f5d565b9150620013938362000f5d565b9250828202620013a38162000f5d565b91508282048414831517620013bd57620013bc62001198565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013f682620013c9565b9050919050565b6200140881620013e9565b81146200141457600080fd5b50565b6000815190506200142881620013fd565b92915050565b600060208284031215620014475762001446620013c4565b5b6000620014578482850162001417565b91505092915050565b6200146b81620013e9565b82525050565b600060408201905062001488600083018562001460565b62001497602083018462001460565b9392505050565b620014a98162000f5d565b82525050565b6000602082019050620014c660008301846200149e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015088262000f5d565b9150620015158362000f5d565b925082620015285762001527620014cc565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620015a260218362001533565b9150620015af8262001544565b604082019050919050565b60006020820190508181036000830152620015d58162001593565b9050919050565b6000620015e98262000f5d565b9150620015f68362000f5d565b925082820190508082111562001611576200161062001198565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200164f601b8362001533565b91506200165c8262001617565b602082019050919050565b60006020820190508181036000830152620016828162001640565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620016c160208362001533565b9150620016ce8262001689565b602082019050919050565b60006020820190508181036000830152620016f481620016b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200175960268362001533565b91506200176682620016fb565b604082019050919050565b600060208201905081810360008301526200178c816200174a565b9050919050565b60005b83811015620017b357808201518184015260208101905062001796565b60008484015250505050565b6000601f19601f8301169050919050565b6000620017dd8262000e37565b620017e9818562001533565b9350620017fb81856020860162001793565b6200180681620017bf565b840191505092915050565b600060208201905081810360008301526200182d8184620017d0565b905092915050565b61577c80620018456000396000f3fe6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e2ef58195a2f1d3b3c73865f42aaffd94efa2be336645bd2c6e43387446f2bb164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e2ef58195a2f1d3b3c73865f42aaffd94efa2be336645bd2c6e43387446f2bb164736f6c63430008120033

Deployed Bytecode Sourcemap

4684:16287:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8412:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5195:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9582:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19209:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6383:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8689:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18119:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3187:231;;;;;;;;;;;;;:::i;:::-;;10533:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17825:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5108:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10100:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8598:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6343:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19001:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9079:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19405:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5472:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17459:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6498:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5415:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20157:809;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19651:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6262:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17698:119;;;;;;;;;;;;;:::i;:::-;;4987:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8797:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19537:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17572:118;;;;;;;;;;;;;:::i;:::-;;4905:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6180:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5583:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2862:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3087:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8503:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5067:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9305:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10358:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18798:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18424:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19939:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19760:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6431:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5524:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18675:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17109:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6024:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8928:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16891:178;;;;;;;;;;;;;:::i;:::-;;17353:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17249:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3426:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6301:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18547:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8412:83;8449:13;8482:5;8475:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8412:83;:::o;5195:80::-;5233:42;5195:80;:::o;9582:161::-;9657:4;9674:39;9683:12;:10;:12::i;:::-;9697:7;9706:6;9674:8;:39::i;:::-;9731:4;9724:11;;9582:161;;;;:::o;19209:188::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19323:7:::1;19298:32;;:15;:21;19314:4;19298:21;;;;;;;;;;;;;;;;;;;;;;;;;:32;;::::0;19290:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19382:7;19358:15;:21;19374:4;19358:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19209:188:::0;;:::o;6383:41::-;;;;;;;;;;;;;:::o;8689:100::-;8742:7;8769:12;;8762:19;;8689:100;:::o;18119:297::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18242:6:::1;18222:17;:26;;;;18279:10;18259:17;:30;;;;18318:6;18300:15;:24;;;;18347:61;18392:15;;18347:40;18369:17;;18347;;:21;;:40;;;;:::i;:::-;:44;;:61;;;;:::i;:::-;18335:9;:73;;;;18119:297:::0;;;:::o;3187:231::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3295:42:::1;3258:81;;3279:6;::::0;::::1;;;;;;;;3258:81;;;;;;;;;;;;3367:42;3350:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3187:231::o:0;10533:313::-;10631:4;10648:36;10658:6;10666:9;10677:6;10648:9;:36::i;:::-;;10695:121;10704:6;10712:12;:10;:12::i;:::-;10726:89;10764:6;10726:89;;;;;;;;;;;;;;;;;:11;:19;10738:6;10726:19;;;;;;;;;;;;;;;:33;10746:12;:10;:12::i;:::-;10726:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10695:8;:121::i;:::-;10834:4;10827:11;;10533:313;;;;;:::o;17825:286::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17943:6:::1;17924:16;:25;;;;17979:10;17960:16;:29;;;;18017:6;18000:14;:23;;;;18045:58;18088:14;;18045:38;18066:16;;18045;;:20;;:38;;;;:::i;:::-;:42;;:58;;;;:::i;:::-;18034:8;:69;;;;17825:286:::0;;;:::o;5108:80::-;5146:42;5108:80;:::o;10100:156::-;10153:7;10180:68;10225:22;5233:42;10225:9;:22::i;:::-;10180:40;10197:22;5146:42;10197:9;:22::i;:::-;10180:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;10173:75;;10100:156;:::o;8598:83::-;8639:5;8664:9;;;;;;;;;;;8657:16;;8598:83;:::o;6343:31::-;;;;;;;;;;;;;:::o;19001:200::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19123:7:::1;19094:36;;:19;:25;19114:4;19094:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;19086:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19186:7;19158:19;:25;19178:4;19158:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19001:200:::0;;:::o;9079:218::-;9167:4;9184:83;9193:12;:10;:12::i;:::-;9207:7;9216:50;9255:10;9216:11;:25;9228:12;:10;:12::i;:::-;9216:25;;;;;;;;;;;;;;;:34;9242:7;9216:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9184:8;:83::i;:::-;9285:4;9278:11;;9079:218;;;;:::o;19405:124::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19513:8:::1;19487:23;:34;;;;19405:124:::0;:::o;5472:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17459:105::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17549:7:::1;17530:16;;:26;;;;;;;;;;;;;;;;;;17459:105:::0;:::o;6498:40::-;;;;;;;;;;;;;:::o;5415:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20157:809::-;20239:22;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20276:35:::1;20333:16;20276:74;;20399:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20381:53;;;20443:4;20450:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20381:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20364:110;;20516:1;20490:28;;:14;:28;;::::0;20487:225:::1;;20604:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20586:74;;;20669:4;20676:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20586:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20569:131;;20487:225;20738:14;20724:11;;:28;;;;;;;;;;;;;;;;;;20804:16;20786:15;;:34;;;;;;;;;;;;;;;;;;20895:4;20858:12;:34;20879:11;;;;;;;;;;;20858:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20954:4;20910:19;:41;20938:11;;;;;;;;;;;20910:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;20263:703;20157:809:::0;;;:::o;19651:101::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19736:8:::1;19721:12;:23;;;;19651:101:::0;:::o;6262:32::-;;;;;;;;;;;;;:::o;17698:119::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17771:4:::1;17752:16;;:23;;;;;;;;;;;;;;;;;;17802:4;17786:13;;:20;;;;;;;;;;;;;;;;;;17698:119::o:0;4987:73::-;;;;;;;;;;;;;:::o;8797:123::-;8863:7;8889:9;:18;8899:7;8889:18;;;;;;;;;;;;;;;;8882:25;;8797:123;;;:::o;19537:106::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19627:8:::1;19614:10;:21;;;;19537:106:::0;:::o;17572:118::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17645:5:::1;17626:16;;:24;;;;;;;;;;;;;;;;;;17677:5;17661:13;;:21;;;;;;;;;;;;;;;;;;17572:118::o:0;4905:75::-;;;;;;;;;;;;;:::o;6096:68::-;;;;:::o;6180:65::-;;;;:::o;5583:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2862:79::-;2900:7;2927:6;;;;;;;;;;;2920:13;;2862:79;:::o;3087:92::-;3127:4;3165:6;;;;;;;;;;;3151:20;;:10;:20;;;3144:27;;3087:92;:::o;8503:87::-;8542:13;8575:7;8568:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8503:87;:::o;5067:32::-;;;;;;;;;;;;;:::o;9305:269::-;9398:4;9415:129;9424:12;:10;:12::i;:::-;9438:7;9447:96;9486:15;9447:96;;;;;;;;;;;;;;;;;:11;:25;9459:12;:10;:12::i;:::-;9447:25;;;;;;;;;;;;;;;:34;9473:7;9447:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9415:8;:129::i;:::-;9562:4;9555:11;;9305:269;;;;:::o;10358:167::-;10436:4;10453:42;10463:12;:10;:12::i;:::-;10477:9;10488:6;10453:9;:42::i;:::-;;10513:4;10506:11;;10358:167;;;;:::o;18798:195::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18917:7:::1;18890:34;;:17;:23;18908:4;18890:23;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;18882:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18978:7;18952:17;:23;18970:4;18952:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18798:195:::0;;:::o;18424:115::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18521:10:::1;18503:15;;:28;;;;;;;;;;;;;;;;;;18424:115:::0;:::o;19939:210::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20043:7:::1;20021:12;:19;20034:5;20021:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20064:7;20061:81;;;20126:4;20088:19;:35;20116:5;20088:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;20061:81;19939:210:::0;;:::o;19760:171::-;6793:17;;;;;;;;;;;6779:31;;:10;:31;;;6771:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19861:8:::1;19837:21;;:32;;;;;;;;;;;;;;;;;;19885:38;19914:8;19885:38;;;;;;:::i;:::-;;;;;;;;19760:171:::0;:::o;6431:26::-;;;;;;;;;;;;;:::o;5524:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18675:111::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18768:10:::1;18752:13;;:26;;;;;;;;;;;;;;;;;;18675:111:::0;:::o;17109:132::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17203:3:::1;:12;;;17216:9;17226:6;17203:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17109:132:::0;;;:::o;6024:63::-;;;;:::o;8928:143::-;9009:7;9036:11;:18;9048:5;9036:18;;;;;;;;;;;;;;;:27;9055:7;9036:27;;;;;;;;;;;;;;;;9029:34;;8928:143;;;;:::o;16891:178::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16946:7:::1;16966:10;16958:24;;16990:21;16958:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16945:71;;;17035:2;17027:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16933:136;16891:178::o:0;17353:98::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17436:7:::1;17420:13;;:23;;;;;;;;;;;;;;;;;;17353:98:::0;:::o;17249:96::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17330:7:::1;17316:11;;:21;;;;;;;;;;;;;;;;;;17249:96:::0;:::o;3426:244::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3535:1:::1;3515:22;;:8;:22;;::::0;3507:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3625:8;3596:38;;3617:6;::::0;::::1;;;;;;;;3596:38;;;;;;;;;;;;3654:8;3645:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3426:244:::0;:::o;6301:35::-;;;;;;;;;;;;;:::o;18547:117::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18646:10:::1;18626:17;;:30;;;;;;;;;;;;;;;;;;18547:117:::0;:::o;1855:250::-;1913:7;1942:1;1937;:6;1933:47;;1967:1;1960:8;;;;1933:47;1992:9;2008:1;2004;:5;;;;:::i;:::-;1992:17;;2037:1;2032;2028;:5;;;;:::i;:::-;:10;2020:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2096:1;2089:8;;;1855:250;;;;;:::o;2113:132::-;2171:7;2198:39;2202:1;2205;2198:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2191:46;;2113:132;;;;:::o;1322:181::-;1380:7;1400:9;1416:1;1412;:5;;;;:::i;:::-;1400:17;;1441:1;1436;:6;;1428:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1494:1;1487:8;;;1322:181;;;;:::o;370:115::-;423:15;466:10;451:26;;370:115;:::o;9751:337::-;9861:1;9844:19;;:5;:19;;;9836:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9942:1;9923:21;;:7;:21;;;9915:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10026:6;9996:11;:18;10008:5;9996:18;;;;;;;;;;;;;;;:27;10015:7;9996:27;;;;;;;;;;;;;;;:36;;;;10064:7;10048:32;;10057:5;10048:32;;;10073:6;10048:32;;;;;;:::i;:::-;;;;;;;;9751:337;;;:::o;10854:1645::-;10941:4;10986:1;10968:20;;:6;:20;;;10960:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11048:1;11027:23;;:9;:23;;;11019:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11096:1;11087:6;:10;11079:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;11133:11;;;;;;;;;;;11129:130;;11168:17;:25;11186:6;11168:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;11197:17;:28;11215:9;11197:28;;;;;;;;;;;;;;;;;;;;;;;;;11168:57;11160:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11129:130;11274:16;;;;;;;;;;;11271:1221;;;11324:41;11339:6;11347:9;11358:6;11324:14;:41::i;:::-;11317:48;;;;11271:1221;11423:15;:23;11439:6;11423:23;;;;;;;;;;;;;;;;;;;;;;;;;11422:24;:55;;;;;11451:15;:26;11467:9;11451:26;;;;;;;;;;;;;;;;;;;;;;;;;11450:27;11422:55;:72;;;;;11481:13;;;;;;;;;;;11422:72;11419:152;;;11533:12;;11523:6;:22;;11515:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11419:152;11588:28;11619:24;11637:4;11619:9;:24::i;:::-;11588:55;;11658:28;11713:23;;11689:20;:47;;11658:78;;11769:23;:44;;;;;11797:16;;;;;;;;;;;11796:17;11769:44;:69;;;;;11818:12;:20;11831:6;11818:20;;;;;;;;;;;;;;;;;;;;;;;;;11817:21;11769:69;:94;;;;;11842:21;;;;;;;;;;;11769:94;11765:165;;;11898:16;:14;:16::i;:::-;11765:165;11966:53;11988:6;11966:53;;;;;;;;;;;;;;;;;:9;:17;11976:6;11966:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11946:9;:17;11956:6;11946:17;;;;;;;;;;;;;;;:73;;;;12036:19;12058:31;12072:6;12079:9;12058:13;:31::i;:::-;:77;;12101:34;12109:6;12117:9;12128:6;12101:7;:34::i;:::-;12058:77;;;12092:6;12058:77;12036:99;;12155:16;;;;;;;;;;;:51;;;;;12176:19;:30;12196:9;12176:30;;;;;;;;;;;;;;;;;;;;;;;;;12175:31;12155:51;12152:164;;;12276:10;;12235:37;12260:11;12235:20;12245:9;12235;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;12227:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12152:164;12355:37;12380:11;12355:9;:20;12365:9;12355:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;12332:9;:20;12342:9;12332:20;;;;;;;;;;;;;;;:60;;;;12431:9;12414:40;;12423:6;12414:40;;;12442:11;12414:40;;;;;;:::i;:::-;;;;;;;;12476:4;12469:11;;;;;10854:1645;;;;;;:::o;1655:192::-;1741:7;1774:1;1769;:6;;1777:12;1761:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1801:9;1817:1;1813;:5;;;;:::i;:::-;1801:17;;1838:1;1831:8;;;1655:192;;;;;:::o;1511:136::-;1569:7;1596:43;1600:1;1603;1596:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1589:50;;1511:136;;;;:::o;2253:278::-;2339:7;2371:1;2367;:5;2374:12;2359:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2398:9;2414:1;2410;:5;;;;:::i;:::-;2398:17;;2522:1;2515:8;;;2253:278;;;;;:::o;12507:330::-;12600:4;12637:53;12659:6;12637:53;;;;;;;;;;;;;;;;;:9;:17;12647:6;12637:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12617:9;:17;12627:6;12617:17;;;;;;;;;;;;;;;:73;;;;12724:32;12749:6;12724:9;:20;12734:9;12724:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12701:9;:20;12711:9;12701:20;;;;;;;;;;;;;;;:55;;;;12789:9;12772:35;;12781:6;12772:35;;;12800:6;12772:35;;;;;;:::i;:::-;;;;;;;;12825:4;12818:11;;12507:330;;;;;:::o;12845:1529::-;7019:4;7000:16;;:23;;;;;;;;;;;;;;;;;;12912::::1;12938:24;12956:4;12938:9;:24::i;:::-;12912:50;;12997:1;12978:15;:20:::0;12975:32:::1;;13000:7;;;12975:32;13019:23;13045:39;13066:17;;13045:16;;:20;;:39;;;;:::i;:::-;13019:65;;13095:23;13121:39;13142:17;;13121:16;;:20;;:39;;;;:::i;:::-;13095:65;;13246:16;13265:23;13278:9;;13265:8;;:12;;:23;;;;:::i;:::-;13246:42;;13317:1;13302:11;:16:::0;13299:28:::1;;13320:7;;;;;;13299:28;13339:19;13361:60;13419:1;13361:53;13402:11;13361:36;13381:15;13361;:19;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;13339:82;;13432:21;13456:32;13476:11;13456:15;:19;;:32;;;;:::i;:::-;13432:56;;13501:22;13526:21;13501:46;;13558:31;13575:13;13558:16;:31::i;:::-;13600:22;13625:41;13651:14;13625:21;:25;;:41;;;;:::i;:::-;13600:66;;13679:19;13701:39;13717:22;13737:1;13717:15;:19;;:22;;;;:::i;:::-;13701:11;:15;;:39;;;;:::i;:::-;13679:61;;13753:26;13782:59;13839:1;13782:52;13822:11;13782:35;13801:15;13782:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13753:88;;13852:26;13881:52;13921:11;13881:35;13900:15;13881:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;13852:81;;13944:24;13971:62;14014:18;13971:38;13990:18;13971:14;:18;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;13944:89;;14070:1;14049:18;:22;14046:97;;;14087:56;14108:15;;;;;;;;;;;14124:18;14087:20;:56::i;:::-;14046:97;14178:1;14159:16;:20;14156:91;;;14195:52;14216:13;;;;;;;;;;;14230:16;14195:20;:52::i;:::-;14156:91;14284:1;14263:18;:22;:41;;;;;14303:1;14289:11;:15;14263:41;14260:104;;;14319:45;14332:11;14345:18;14319:12;:45::i;:::-;14260:104;12891:1483;;;;;;;;;;;;7034:1;7065:5:::0;7046:16;;:24;;;;;;;;;;;;;;;;;;12845:1529::o;15726:366::-;15807:4;15827:17;:25;15845:6;15827:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15856:17;:28;15874:9;15856:28;;;;;;;;;;;;;;;;;;;;;;;;;15827:57;15824:261;;;15908:4;15901:11;;;;15824:261;15943:12;:20;15956:6;15943:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15967:12;:23;15980:9;15967:23;;;;;;;;;;;;;;;;;;;;;;;;;15943:47;15939:146;;;16014:5;16007:12;;;;15939:146;16068:5;16061:12;;15726:366;;;;;:::o;16100:750::-;16186:7;16216:14;16281:12;:20;16294:6;16281:20;;;;;;;;;;;;;;;;;;;;;;;;;16278:293;;;16336:37;5941:4;16336:20;16347:8;;16336:6;:10;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;16324:49;;16278:293;;;16425:12;:23;16438:9;16425:23;;;;;;;;;;;;;;;;;;;;;;;;;16422:149;;;16499:38;5941:4;16499:21;16510:9;;16499:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16487:50;;16422:149;16278:293;16607:1;16595:9;:13;16592:185;;;16656:39;16685:9;16656;:24;16674:4;16656:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16629:9;:24;16647:4;16629:24;;;;;;;;;;;;;;;:66;;;;16744:4;16719:42;;16728:6;16719:42;;;16751:9;16719:42;;;;;;:::i;:::-;;;;;;;;16592:185;16800:21;16811:9;16800:6;:10;;:21;;;;:::i;:::-;16793:28;;;16100:750;;;;;:::o;14521:666::-;14647:21;14685:1;14671:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14647:40;;14716:4;14698;14703:1;14698:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14742:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14732:4;14737:1;14732:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14777:62;14794:4;14809:15;;;;;;;;;;;14827:11;14777:8;:62::i;:::-;14878:15;;;;;;;;;;;:66;;;14959:11;14985:1;15029:4;15056;15092:15;14878:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15144:35;15161:11;15174:4;15144:35;;;;;;;:::i;:::-;;;;;;;;14576:611;14521:666;:::o;14382:127::-;14474:9;14466:27;;:35;14494:6;14466:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14382:127;;:::o;15195:523::-;15343:62;15360:4;15375:15;;;;;;;;;;;15393:11;15343:8;:62::i;:::-;15448:15;;;;;;;;;;;:31;;;15487:9;15520:4;15540:11;15566:1;15609;15652:17;;;;;;;;;;;15684:15;15448:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15195:523;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4278:117;4434:2;4460:50;4502:7;4493:6;4482:9;4478:22;4460:50;:::i;:::-;4450:60;;4405:115;4059:468;;;;;:::o;4533:60::-;4561:3;4582:5;4575:12;;4533:60;;;:::o;4599:142::-;4649:9;4682:53;4700:34;4709:24;4727:5;4709:24;:::i;:::-;4700:34;:::i;:::-;4682:53;:::i;:::-;4669:66;;4599:142;;;:::o;4747:126::-;4797:9;4830:37;4861:5;4830:37;:::i;:::-;4817:50;;4747:126;;;:::o;4879:152::-;4955:9;4988:37;5019:5;4988:37;:::i;:::-;4975:50;;4879:152;;;:::o;5037:183::-;5150:63;5207:5;5150:63;:::i;:::-;5145:3;5138:76;5037:183;;:::o;5226:274::-;5345:4;5383:2;5372:9;5368:18;5360:26;;5396:97;5490:1;5479:9;5475:17;5466:6;5396:97;:::i;:::-;5226:274;;;;:::o;5506:118::-;5593:24;5611:5;5593:24;:::i;:::-;5588:3;5581:37;5506:118;;:::o;5630:222::-;5723:4;5761:2;5750:9;5746:18;5738:26;;5774:71;5842:1;5831:9;5827:17;5818:6;5774:71;:::i;:::-;5630:222;;;;:::o;5858:619::-;5935:6;5943;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;6381:2;6407:53;6452:7;6443:6;6432:9;6428:22;6407:53;:::i;:::-;6397:63;;6352:118;5858:619;;;;;:::o;6483:::-;6560:6;6568;6576;6625:2;6613:9;6604:7;6600:23;6596:32;6593:119;;;6631:79;;:::i;:::-;6593:119;6751:1;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6722:117;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;7006:2;7032:53;7077:7;7068:6;7057:9;7053:22;7032:53;:::i;:::-;7022:63;;6977:118;6483:619;;;;;:::o;7108:86::-;7143:7;7183:4;7176:5;7172:16;7161:27;;7108:86;;;:::o;7200:112::-;7283:22;7299:5;7283:22;:::i;:::-;7278:3;7271:35;7200:112;;:::o;7318:214::-;7407:4;7445:2;7434:9;7430:18;7422:26;;7458:67;7522:1;7511:9;7507:17;7498:6;7458:67;:::i;:::-;7318:214;;;;:::o;7538:329::-;7597:6;7646:2;7634:9;7625:7;7621:23;7617:32;7614:119;;;7652:79;;:::i;:::-;7614:119;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7538:329;;;;:::o;7873:::-;7932:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:119;;;7987:79;;:::i;:::-;7949:119;8107:1;8132:53;8177:7;8168:6;8157:9;8153:22;8132:53;:::i;:::-;8122:63;;8078:117;7873:329;;;;:::o;8208:323::-;8264:6;8313:2;8301:9;8292:7;8288:23;8284:32;8281:119;;;8319:79;;:::i;:::-;8281:119;8439:1;8464:50;8506:7;8497:6;8486:9;8482:22;8464:50;:::i;:::-;8454:60;;8410:114;8208:323;;;;:::o;8537:109::-;8587:7;8616:24;8634:5;8616:24;:::i;:::-;8605:35;;8537:109;;;:::o;8652:148::-;8738:37;8769:5;8738:37;:::i;:::-;8731:5;8728:48;8718:76;;8790:1;8787;8780:12;8718:76;8652:148;:::o;8806:165::-;8865:5;8903:6;8890:20;8881:29;;8919:46;8959:5;8919:46;:::i;:::-;8806:165;;;;:::o;8977:645::-;9067:6;9075;9083;9132:2;9120:9;9111:7;9107:23;9103:32;9100:119;;;9138:79;;:::i;:::-;9100:119;9258:1;9283:66;9341:7;9332:6;9321:9;9317:22;9283:66;:::i;:::-;9273:76;;9229:130;9398:2;9424:53;9469:7;9460:6;9449:9;9445:22;9424:53;:::i;:::-;9414:63;;9369:118;9526:2;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9497:118;8977:645;;;;;:::o;9628:474::-;9696:6;9704;9753:2;9741:9;9732:7;9728:23;9724:32;9721:119;;;9759:79;;:::i;:::-;9721:119;9879:1;9904:53;9949:7;9940:6;9929:9;9925:22;9904:53;:::i;:::-;9894:63;;9850:117;10006:2;10032:53;10077:7;10068:6;10057:9;10053:22;10032:53;:::i;:::-;10022:63;;9977:118;9628:474;;;;;:::o;10108:180::-;10156:77;10153:1;10146:88;10253:4;10250:1;10243:15;10277:4;10274:1;10267:15;10294:320;10338:6;10375:1;10369:4;10365:12;10355:22;;10422:1;10416:4;10412:12;10443:18;10433:81;;10499:4;10491:6;10487:17;10477:27;;10433:81;10561:2;10553:6;10550:14;10530:18;10527:38;10524:84;;10580:18;;:::i;:::-;10524:84;10345:269;10294:320;;;:::o;10620:182::-;10760:34;10756:1;10748:6;10744:14;10737:58;10620:182;:::o;10808:366::-;10950:3;10971:67;11035:2;11030:3;10971:67;:::i;:::-;10964:74;;11047:93;11136:3;11047:93;:::i;:::-;11165:2;11160:3;11156:12;11149:19;;10808:366;;;:::o;11180:419::-;11346:4;11384:2;11373:9;11369:18;11361:26;;11433:9;11427:4;11423:20;11419:1;11408:9;11404:17;11397:47;11461:131;11587:4;11461:131;:::i;:::-;11453:139;;11180:419;;;:::o;11605:163::-;11745:15;11741:1;11733:6;11729:14;11722:39;11605:163;:::o;11774:366::-;11916:3;11937:67;12001:2;11996:3;11937:67;:::i;:::-;11930:74;;12013:93;12102:3;12013:93;:::i;:::-;12131:2;12126:3;12122:12;12115:19;;11774:366;;;:::o;12146:419::-;12312:4;12350:2;12339:9;12335:18;12327:26;;12399:9;12393:4;12389:20;12385:1;12374:9;12370:17;12363:47;12427:131;12553:4;12427:131;:::i;:::-;12419:139;;12146:419;;;:::o;12571:143::-;12628:5;12659:6;12653:13;12644:22;;12675:33;12702:5;12675:33;:::i;:::-;12571:143;;;;:::o;12720:351::-;12790:6;12839:2;12827:9;12818:7;12814:23;12810:32;12807:119;;;12845:79;;:::i;:::-;12807:119;12965:1;12990:64;13046:7;13037:6;13026:9;13022:22;12990:64;:::i;:::-;12980:74;;12936:128;12720:351;;;;:::o;13077:332::-;13198:4;13236:2;13225:9;13221:18;13213:26;;13249:71;13317:1;13306:9;13302:17;13293:6;13249:71;:::i;:::-;13330:72;13398:2;13387:9;13383:18;13374:6;13330:72;:::i;:::-;13077:332;;;;;:::o;13415:180::-;13555:32;13551:1;13543:6;13539:14;13532:56;13415:180;:::o;13601:366::-;13743:3;13764:67;13828:2;13823:3;13764:67;:::i;:::-;13757:74;;13840:93;13929:3;13840:93;:::i;:::-;13958:2;13953:3;13949:12;13942:19;;13601:366;;;:::o;13973:419::-;14139:4;14177:2;14166:9;14162:18;14154:26;;14226:9;14220:4;14216:20;14212:1;14201:9;14197:17;14190:47;14254:131;14380:4;14254:131;:::i;:::-;14246:139;;13973:419;;;:::o;14398:332::-;14519:4;14557:2;14546:9;14542:18;14534:26;;14570:71;14638:1;14627:9;14623:17;14614:6;14570:71;:::i;:::-;14651:72;14719:2;14708:9;14704:18;14695:6;14651:72;:::i;:::-;14398:332;;;;;:::o;14736:137::-;14790:5;14821:6;14815:13;14806:22;;14837:30;14861:5;14837:30;:::i;:::-;14736:137;;;;:::o;14879:345::-;14946:6;14995:2;14983:9;14974:7;14970:23;14966:32;14963:119;;;15001:79;;:::i;:::-;14963:119;15121:1;15146:61;15199:7;15190:6;15179:9;15175:22;15146:61;:::i;:::-;15136:71;;15092:125;14879:345;;;;:::o;15230:147::-;15331:11;15368:3;15353:18;;15230:147;;;;:::o;15383:114::-;;:::o;15503:398::-;15662:3;15683:83;15764:1;15759:3;15683:83;:::i;:::-;15676:90;;15775:93;15864:3;15775:93;:::i;:::-;15893:1;15888:3;15884:11;15877:18;;15503:398;;;:::o;15907:379::-;16091:3;16113:147;16256:3;16113:147;:::i;:::-;16106:154;;16277:3;16270:10;;15907:379;;;:::o;16292:170::-;16432:22;16428:1;16420:6;16416:14;16409:46;16292:170;:::o;16468:366::-;16610:3;16631:67;16695:2;16690:3;16631:67;:::i;:::-;16624:74;;16707:93;16796:3;16707:93;:::i;:::-;16825:2;16820:3;16816:12;16809:19;;16468:366;;;:::o;16840:419::-;17006:4;17044:2;17033:9;17029:18;17021:26;;17093:9;17087:4;17083:20;17079:1;17068:9;17064:17;17057:47;17121:131;17247:4;17121:131;:::i;:::-;17113:139;;16840:419;;;:::o;17265:225::-;17405:34;17401:1;17393:6;17389:14;17382:58;17474:8;17469:2;17461:6;17457:15;17450:33;17265:225;:::o;17496:366::-;17638:3;17659:67;17723:2;17718:3;17659:67;:::i;:::-;17652:74;;17735:93;17824:3;17735:93;:::i;:::-;17853:2;17848:3;17844:12;17837:19;;17496:366;;;:::o;17868:419::-;18034:4;18072:2;18061:9;18057:18;18049:26;;18121:9;18115:4;18111:20;18107:1;18096:9;18092:17;18085:47;18149:131;18275:4;18149:131;:::i;:::-;18141:139;;17868:419;;;:::o;18293:180::-;18341:77;18338:1;18331:88;18438:4;18435:1;18428:15;18462:4;18459:1;18452:15;18479:410;18519:7;18542:20;18560:1;18542:20;:::i;:::-;18537:25;;18576:20;18594:1;18576:20;:::i;:::-;18571:25;;18631:1;18628;18624:9;18653:30;18671:11;18653:30;:::i;:::-;18642:41;;18832:1;18823:7;18819:15;18816:1;18813:22;18793:1;18786:9;18766:83;18743:139;;18862:18;;:::i;:::-;18743:139;18527:362;18479:410;;;;:::o;18895:180::-;18943:77;18940:1;18933:88;19040:4;19037:1;19030:15;19064:4;19061:1;19054:15;19081:185;19121:1;19138:20;19156:1;19138:20;:::i;:::-;19133:25;;19172:20;19190:1;19172:20;:::i;:::-;19167:25;;19211:1;19201:35;;19216:18;;:::i;:::-;19201:35;19258:1;19255;19251:9;19246:14;;19081:185;;;;:::o;19272:220::-;19412:34;19408:1;19400:6;19396:14;19389:58;19481:3;19476:2;19468:6;19464:15;19457:28;19272:220;:::o;19498:366::-;19640:3;19661:67;19725:2;19720:3;19661:67;:::i;:::-;19654:74;;19737:93;19826:3;19737:93;:::i;:::-;19855:2;19850:3;19846:12;19839:19;;19498:366;;;:::o;19870:419::-;20036:4;20074:2;20063:9;20059:18;20051:26;;20123:9;20117:4;20113:20;20109:1;20098:9;20094:17;20087:47;20151:131;20277:4;20151:131;:::i;:::-;20143:139;;19870:419;;;:::o;20295:191::-;20335:3;20354:20;20372:1;20354:20;:::i;:::-;20349:25;;20388:20;20406:1;20388:20;:::i;:::-;20383:25;;20431:1;20428;20424:9;20417:16;;20452:3;20449:1;20446:10;20443:36;;;20459:18;;:::i;:::-;20443:36;20295:191;;;;:::o;20492:177::-;20632:29;20628:1;20620:6;20616:14;20609:53;20492:177;:::o;20675:366::-;20817:3;20838:67;20902:2;20897:3;20838:67;:::i;:::-;20831:74;;20914:93;21003:3;20914:93;:::i;:::-;21032:2;21027:3;21023:12;21016:19;;20675:366;;;:::o;21047:419::-;21213:4;21251:2;21240:9;21236:18;21228:26;;21300:9;21294:4;21290:20;21286:1;21275:9;21271:17;21264:47;21328:131;21454:4;21328:131;:::i;:::-;21320:139;;21047:419;;;:::o;21472:223::-;21612:34;21608:1;21600:6;21596:14;21589:58;21681:6;21676:2;21668:6;21664:15;21657:31;21472:223;:::o;21701:366::-;21843:3;21864:67;21928:2;21923:3;21864:67;:::i;:::-;21857:74;;21940:93;22029:3;21940:93;:::i;:::-;22058:2;22053:3;22049:12;22042:19;;21701:366;;;:::o;22073:419::-;22239:4;22277:2;22266:9;22262:18;22254:26;;22326:9;22320:4;22316:20;22312:1;22301:9;22297:17;22290:47;22354:131;22480:4;22354:131;:::i;:::-;22346:139;;22073:419;;;:::o;22498:221::-;22638:34;22634:1;22626:6;22622:14;22615:58;22707:4;22702:2;22694:6;22690:15;22683:29;22498:221;:::o;22725:366::-;22867:3;22888:67;22952:2;22947:3;22888:67;:::i;:::-;22881:74;;22964:93;23053:3;22964:93;:::i;:::-;23082:2;23077:3;23073:12;23066:19;;22725:366;;;:::o;23097:419::-;23263:4;23301:2;23290:9;23286:18;23278:26;;23350:9;23344:4;23340:20;23336:1;23325:9;23321:17;23314:47;23378:131;23504:4;23378:131;:::i;:::-;23370:139;;23097:419;;;:::o;23522:165::-;23662:17;23658:1;23650:6;23646:14;23639:41;23522:165;:::o;23693:366::-;23835:3;23856:67;23920:2;23915:3;23856:67;:::i;:::-;23849:74;;23932:93;24021:3;23932:93;:::i;:::-;24050:2;24045:3;24041:12;24034:19;;23693:366;;;:::o;24065:419::-;24231:4;24269:2;24258:9;24254:18;24246:26;;24318:9;24312:4;24308:20;24304:1;24293:9;24289:17;24282:47;24346:131;24472:4;24346:131;:::i;:::-;24338:139;;24065:419;;;:::o;24490:163::-;24630:15;24626:1;24618:6;24614:14;24607:39;24490:163;:::o;24659:366::-;24801:3;24822:67;24886:2;24881:3;24822:67;:::i;:::-;24815:74;;24898:93;24987:3;24898:93;:::i;:::-;25016:2;25011:3;25007:12;25000:19;;24659:366;;;:::o;25031:419::-;25197:4;25235:2;25224:9;25220:18;25212:26;;25284:9;25278:4;25274:20;25270:1;25259:9;25255:17;25248:47;25312:131;25438:4;25312:131;:::i;:::-;25304:139;;25031:419;;;:::o;25456:164::-;25596:16;25592:1;25584:6;25580:14;25573:40;25456:164;:::o;25626:366::-;25768:3;25789:67;25853:2;25848:3;25789:67;:::i;:::-;25782:74;;25865:93;25954:3;25865:93;:::i;:::-;25983:2;25978:3;25974:12;25967:19;;25626:366;;;:::o;25998:419::-;26164:4;26202:2;26191:9;26187:18;26179:26;;26251:9;26245:4;26241:20;26237:1;26226:9;26222:17;26215:47;26279:131;26405:4;26279:131;:::i;:::-;26271:139;;25998:419;;;:::o;26423:168::-;26563:20;26559:1;26551:6;26547:14;26540:44;26423:168;:::o;26597:366::-;26739:3;26760:67;26824:2;26819:3;26760:67;:::i;:::-;26753:74;;26836:93;26925:3;26836:93;:::i;:::-;26954:2;26949:3;26945:12;26938:19;;26597:366;;;:::o;26969:419::-;27135:4;27173:2;27162:9;27158:18;27150:26;;27222:9;27216:4;27212:20;27208:1;27197:9;27193:17;27186:47;27250:131;27376:4;27250:131;:::i;:::-;27242:139;;26969:419;;;:::o;27394:156::-;27534:8;27530:1;27522:6;27518:14;27511:32;27394:156;:::o;27556:365::-;27698:3;27719:66;27783:1;27778:3;27719:66;:::i;:::-;27712:73;;27794:93;27883:3;27794:93;:::i;:::-;27912:2;27907:3;27903:12;27896:19;;27556:365;;;:::o;27927:419::-;28093:4;28131:2;28120:9;28116:18;28108:26;;28180:9;28174:4;28170:20;28166:1;28155:9;28151:17;28144:47;28208:131;28334:4;28208:131;:::i;:::-;28200:139;;27927:419;;;:::o;28352:160::-;28492:12;28488:1;28480:6;28476:14;28469:36;28352:160;:::o;28518:366::-;28660:3;28681:67;28745:2;28740:3;28681:67;:::i;:::-;28674:74;;28757:93;28846:3;28757:93;:::i;:::-;28875:2;28870:3;28866:12;28859:19;;28518:366;;;:::o;28890:419::-;29056:4;29094:2;29083:9;29079:18;29071:26;;29143:9;29137:4;29133:20;29129:1;29118:9;29114:17;29107:47;29171:131;29297:4;29171:131;:::i;:::-;29163:139;;28890:419;;;:::o;29315:194::-;29355:4;29375:20;29393:1;29375:20;:::i;:::-;29370:25;;29409:20;29427:1;29409:20;:::i;:::-;29404:25;;29453:1;29450;29446:9;29438:17;;29477:1;29471:4;29468:11;29465:37;;;29482:18;;:::i;:::-;29465:37;29315:194;;;;:::o;29515:180::-;29563:77;29560:1;29553:88;29660:4;29657:1;29650:15;29684:4;29681:1;29674:15;29701:180;29749:77;29746:1;29739:88;29846:4;29843:1;29836:15;29870:4;29867:1;29860:15;29887:85;29932:7;29961:5;29950:16;;29887:85;;;:::o;29978:158::-;30036:9;30069:61;30087:42;30096:32;30122:5;30096:32;:::i;:::-;30087:42;:::i;:::-;30069:61;:::i;:::-;30056:74;;29978:158;;;:::o;30142:147::-;30237:45;30276:5;30237:45;:::i;:::-;30232:3;30225:58;30142:147;;:::o;30295:114::-;30362:6;30396:5;30390:12;30380:22;;30295:114;;;:::o;30415:184::-;30514:11;30548:6;30543:3;30536:19;30588:4;30583:3;30579:14;30564:29;;30415:184;;;;:::o;30605:132::-;30672:4;30695:3;30687:11;;30725:4;30720:3;30716:14;30708:22;;30605:132;;;:::o;30743:108::-;30820:24;30838:5;30820:24;:::i;:::-;30815:3;30808:37;30743:108;;:::o;30857:179::-;30926:10;30947:46;30989:3;30981:6;30947:46;:::i;:::-;31025:4;31020:3;31016:14;31002:28;;30857:179;;;;:::o;31042:113::-;31112:4;31144;31139:3;31135:14;31127:22;;31042:113;;;:::o;31191:732::-;31310:3;31339:54;31387:5;31339:54;:::i;:::-;31409:86;31488:6;31483:3;31409:86;:::i;:::-;31402:93;;31519:56;31569:5;31519:56;:::i;:::-;31598:7;31629:1;31614:284;31639:6;31636:1;31633:13;31614:284;;;31715:6;31709:13;31742:63;31801:3;31786:13;31742:63;:::i;:::-;31735:70;;31828:60;31881:6;31828:60;:::i;:::-;31818:70;;31674:224;31661:1;31658;31654:9;31649:14;;31614:284;;;31618:14;31914:3;31907:10;;31315:608;;;31191:732;;;;:::o;31929:831::-;32192:4;32230:3;32219:9;32215:19;32207:27;;32244:71;32312:1;32301:9;32297:17;32288:6;32244:71;:::i;:::-;32325:80;32401:2;32390:9;32386:18;32377:6;32325:80;:::i;:::-;32452:9;32446:4;32442:20;32437:2;32426:9;32422:18;32415:48;32480:108;32583:4;32574:6;32480:108;:::i;:::-;32472:116;;32598:72;32666:2;32655:9;32651:18;32642:6;32598:72;:::i;:::-;32680:73;32748:3;32737:9;32733:19;32724:6;32680:73;:::i;:::-;31929:831;;;;;;;;:::o;32766:483::-;32937:4;32975:2;32964:9;32960:18;32952:26;;32988:71;33056:1;33045:9;33041:17;33032:6;32988:71;:::i;:::-;33106:9;33100:4;33096:20;33091:2;33080:9;33076:18;33069:48;33134:108;33237:4;33228:6;33134:108;:::i;:::-;33126:116;;32766:483;;;;;:::o;33255:807::-;33504:4;33542:3;33531:9;33527:19;33519:27;;33556:71;33624:1;33613:9;33609:17;33600:6;33556:71;:::i;:::-;33637:72;33705:2;33694:9;33690:18;33681:6;33637:72;:::i;:::-;33719:80;33795:2;33784:9;33780:18;33771:6;33719:80;:::i;:::-;33809;33885:2;33874:9;33870:18;33861:6;33809:80;:::i;:::-;33899:73;33967:3;33956:9;33952:19;33943:6;33899:73;:::i;:::-;33982;34050:3;34039:9;34035:19;34026:6;33982:73;:::i;:::-;33255:807;;;;;;;;;:::o;34068:143::-;34125:5;34156:6;34150:13;34141:22;;34172:33;34199:5;34172:33;:::i;:::-;34068:143;;;;:::o;34217:663::-;34305:6;34313;34321;34370:2;34358:9;34349:7;34345:23;34341:32;34338:119;;;34376:79;;:::i;:::-;34338:119;34496:1;34521:64;34577:7;34568:6;34557:9;34553:22;34521:64;:::i;:::-;34511:74;;34467:128;34634:2;34660:64;34716:7;34707:6;34696:9;34692:22;34660:64;:::i;:::-;34650:74;;34605:129;34773:2;34799:64;34855:7;34846:6;34835:9;34831:22;34799:64;:::i;:::-;34789:74;;34744:129;34217:663;;;;;:::o

Swarm Source

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