ETH Price: $3,670.48 (+0.70%)
 

Overview

Max Total Supply

100,000,000 HYDE

Holders

207

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
206,873.833375513025192919 HYDE

Value
$0.00
0x3eb73ceecdc63d689a32736630670ecb2fe44dd4
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:
Hyder

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-30
*/

// SPDX-License-Identifier: MIT
/*
Hyder revolutionizes Web3 messaging through military-grade PGP encryption,
delivering secure wallet-to-wallet communication with complete privacy,
and a zero-knowledge architecture that puts users in full control of their data.

Website: https://hyder.io
Twitter: https://x.com/HyderProtocol
Telegram: https://t.me/HyderProtocol

*/pragma solidity 0.8.12;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    unchecked {
        _approve(sender, _msgSender(), currentAllowance - amount);
    }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    unchecked {
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
        _balances[sender] = senderBalance - amount;
    }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract 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 renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    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 IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

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

contract Hyder is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address public TreasuryAddress;

    uint256 public tradingActiveBlock = 0; 

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyTreasuryFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellTreasuryFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForTreasury;
    uint256 public tokensForLiquidity;


    
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    
    mapping (address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event EnabledTrading(bool tradingActive);
    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedTreasuryAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

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

    event TransferForeignToken(address token, uint256 amount);


    constructor() ERC20("Hyder", "HYDE") {

        address newOwner = msg.sender; 

        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 100000000 * 1e18;

        maxBuyAmount = totalSupply * 5 / 1000;
        maxSellAmount = totalSupply * 3 / 1000;
        maxWalletAmount = totalSupply * 10 / 1000;
        swapTokensAtAmount = totalSupply * 50 / 100000; 

        buyTreasuryFee = 3;
        buyLiquidityFee = 2;
        buyTotalFees = buyTreasuryFee + buyLiquidityFee;

        sellTreasuryFee = 3;
        sellLiquidityFee = 2;
        sellTotalFees = sellTreasuryFee + sellLiquidityFee;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        TreasuryAddress = address(0x911f6494D39B64384D7caFd895001531b2c5B27C);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%");
        maxBuyAmount = newNum * (10**18);
        emit UpdatedMaxBuyAmount(maxBuyAmount);
    }

    function updateMaxSellAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max sell amount lower than 0.1%");
        maxSellAmount = newNum * (10**18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }
    
    
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit RemovedLimits();
    }


    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner {
        if(!isEx){
            require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn");
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%");
        maxWalletAmount = newNum * (10**18);
        emit UpdatedMaxWalletAmount(maxWalletAmount);
    }

    function updateSwapThreshold(uint256 newAmount) public  {
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw");
        swapTokensAtAmount = newAmount* (10**18);
    }


    function transferForeignToken(address _token, address _to) public returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    
    function withdrawStuckETH() public {
        bool success;
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw");
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function updateBuyFees(uint256 _treasuryFee, uint256 _liquidityFee) external onlyOwner {
        buyTreasuryFee = _treasuryFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyTreasuryFee + buyLiquidityFee;
        require(buyTotalFees <= 30, "Fees must be 30% or less");
    }

    function updateSellFees(uint256 _treasuryFee, uint256 _liquidityFee) external onlyOwner {
        sellTreasuryFee = _treasuryFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellTreasuryFee + sellLiquidityFee;
        require(sellTotalFees <= 30, "Fees must be 30% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }


    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");


        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){
                if(!tradingActive){
                    require(_isExcludedMaxTransactionAmount[from] || _isExcludedMaxTransactionAmount[to], "Trading is not active.");
                    require(from == owner(), "Trading is not enabled");
                }
                
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] && block.number>tradingActiveBlock) {
                    require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy.");
                }
                
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell.");
                }
                if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]){
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = true;
        
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        uint256 penaltyAmount = 0;

        
        if(takeFee){       
            if(tradingActiveBlock>0 && (tradingActiveBlock + 1) > block.number){
                penaltyAmount = amount * 10 / 100;
                super._transfer(from, TreasuryAddress, penaltyAmount);
            }
            
            else if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount * sellTotalFees /100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForTreasury += fees * sellTreasuryFee / sellTotalFees;
            }
            
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount * buyTotalFees / 100;
                tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForTreasury += fees * buyTreasuryFee / buyTotalFees;
            }  
            if(fees > 0){
                super._transfer(from, address(this), fees);
            }
            amount -= fees + penaltyAmount;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

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

        
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            address(owner()),
            block.timestamp
        );
    }

     
    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot re enable trading");
        tradingActive = true;
        swapEnabled = true;
        emit EnabledTrading(tradingActive);

        if (tradingActive && tradingActiveBlock == 0) {
            tradingActiveBlock = block.number;
        }
    }

    function setTreasuryAddress(address _TreasuryAddress) external onlyOwner {
        require(_TreasuryAddress != address(0), "_TreasuryAddress address cannot be 0");
        TreasuryAddress = payable(_TreasuryAddress);
        emit UpdatedTreasuryAddress(_TreasuryAddress);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForTreasury;

        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 5){
            contractBalance = swapTokensAtAmount * 5;
        }

        bool success;

        
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;

        swapTokensForEth(contractBalance - liquidityTokens);

        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForTreasury = ethBalance * tokensForTreasury / (totalTokensToSwap - (tokensForLiquidity/2));
        ethForLiquidity -= ethForTreasury;

        tokensForLiquidity = 0;
        tokensForTreasury = 0;

        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success,) = address(TreasuryAddress).call{value: address(this).balance}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingActive","type":"bool"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedTreasuryAddress","type":"event"},{"inputs":[],"name":"TreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TreasuryAddress","type":"address"}],"name":"setTreasuryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600c556001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055503480156200006757600080fd5b506040518060400160405280600581526020017f48796465720000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f48594445000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000ec92919062000b77565b5080600490805190602001906200010592919062000b77565b50505060006200011a620005b360201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001ea816001620005bb60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000290919062000c91565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e919062000c91565b6040518363ffffffff1660e01b81526004016200033d92919062000cd4565b6020604051808303816000875af11580156200035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000383919062000c91565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003cb60a05160016200065160201b60201c565b60006a52b7d2dcc80cd2e400000090506103e8600582620003ed919062000d3a565b620003f9919062000dca565b6006819055506103e860038262000411919062000d3a565b6200041d919062000dca565b6007819055506103e8600a8262000435919062000d3a565b62000441919062000dca565b600881905550620186a06032826200045a919062000d3a565b62000466919062000dca565b600a819055506003600f819055506002601081905550601054600f546200048e919062000e02565b600e8190555060036012819055506002601381905550601354601254620004b6919062000e02565b601181905550620004cf836001620005bb60201b60201c565b620004e2306001620005bb60201b60201c565b620004f761dead6001620005bb60201b60201c565b73911f6494d39b64384d7cafd895001531b2c5b27c600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200055f8360016200070460201b60201c565b620005723060016200070460201b60201c565b6200058761dead60016200070460201b60201c565b6200059983826200085160201b60201c565b620005aa83620009a260201b60201c565b505050620010e6565b600033905090565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200064592919062000e7c565b60405180910390a15050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006ba8282620005bb60201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b62000714620005b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200079d9062000f0a565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000845919062000f2c565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008bb9062000f99565b60405180910390fd5b8060026000828254620008d8919062000e02565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200092f919062000e02565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000996919062000fcc565b60405180910390a35050565b620009b2620005b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a3b9062000f0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000ab7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aae906200105f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000b8590620010b0565b90600052602060002090601f01602090048101928262000ba9576000855562000bf5565b82601f1062000bc457805160ff191683800117855562000bf5565b8280016001018555821562000bf5579182015b8281111562000bf457825182559160200191906001019062000bd7565b5b50905062000c04919062000c08565b5090565b5b8082111562000c2357600081600090555060010162000c09565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c598262000c2c565b9050919050565b62000c6b8162000c4c565b811462000c7757600080fd5b50565b60008151905062000c8b8162000c60565b92915050565b60006020828403121562000caa5762000ca962000c27565b5b600062000cba8482850162000c7a565b91505092915050565b62000cce8162000c4c565b82525050565b600060408201905062000ceb600083018562000cc3565b62000cfa602083018462000cc3565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d478262000d01565b915062000d548362000d01565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d905762000d8f62000d0b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dd78262000d01565b915062000de48362000d01565b92508262000df75762000df662000d9b565b5b828204905092915050565b600062000e0f8262000d01565b915062000e1c8362000d01565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e545762000e5362000d0b565b5b828201905092915050565b60008115159050919050565b62000e768162000e5f565b82525050565b600060408201905062000e93600083018562000cc3565b62000ea2602083018462000e6b565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ef260208362000ea9565b915062000eff8262000eba565b602082019050919050565b6000602082019050818103600083015262000f258162000ee3565b9050919050565b600060208201905062000f43600083018462000e6b565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f81601f8362000ea9565b915062000f8e8262000f49565b602082019050919050565b6000602082019050818103600083015262000fb48162000f72565b9050919050565b62000fc68162000d01565b82525050565b600060208201905062000fe3600083018462000fbb565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200104760268362000ea9565b9150620010548262000fe9565b604082019050919050565b600060208201905081810360008301526200107a8162001038565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010c957607f821691505b60208210811415620010e057620010df62001081565b5b50919050565b60805160a0516153956200113d60003960008181611062015281816116990152611cac015260008181610d1e015281816139cf01528181613ab001528181613ad701528181613b730152613b9a01526153956000f3fe6080604052600436106102b25760003560e01c80637571336a11610175578063c0246668116100dc578063dd62ed3e11610095578063f11a24d31161006f578063f11a24d314610ab1578063f2fde38b14610adc578063f5648a4f14610b05578063f637434214610b1c576102b9565b8063dd62ed3e14610a1e578063e2f4560514610a5b578063ee40166e14610a86576102b9565b8063c024666814610924578063c18bc1951461094d578063cc274b2914610976578063cc2ffe7c1461099f578063d85ba063146109ca578063dc3f0d0f146109f5576102b9565b80639a7a23d61161012e5780639a7a23d6146107ee578063a457c2d714610817578063a9059cbb14610854578063aa4bde2814610891578063b62496f5146108bc578063bbc0c742146108f9576102b9565b80637571336a146106f05780638366e79a1461071957806388e765ff146107565780638a8c523c146107815780638da5cb5b1461079857806395d89b41146107c3576102b9565b80634a62bb65116102195780636a486a8e116101d25780636a486a8e146106045780636b2fb1241461062f5780636ddd17131461065a57806370a0823114610685578063715018a6146106c2578063751039fc146106d9576102b9565b80634a62bb65146105065780635b5c251f146105315780635c068a8c1461055c5780636605bfda1461058757806366ca9b83146105b057806366d602ae146105d9576102b9565b80631a8145bb1161026b5780631a8145bb146103e257806323b872dd1461040d5780632be32b611461044a578063313ce56714610473578063395093511461049e57806349bd5a5e146104db576102b9565b806302dbd8f8146102be57806306fdde03146102e7578063095ea7b31461031257806310d5de531461034f5780631694505e1461038c57806318160ddd146103b7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613c89565b610b47565b005b3480156102f357600080fd5b506102fc610c4c565b6040516103099190613d62565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613de2565b610cde565b6040516103469190613e3d565b60405180910390f35b34801561035b57600080fd5b5061037660048036038101906103719190613e58565b610cfc565b6040516103839190613e3d565b60405180910390f35b34801561039857600080fd5b506103a1610d1c565b6040516103ae9190613ee4565b60405180910390f35b3480156103c357600080fd5b506103cc610d40565b6040516103d99190613f0e565b60405180910390f35b3480156103ee57600080fd5b506103f7610d4a565b6040516104049190613f0e565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613f29565b610d50565b6040516104419190613e3d565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190613f7c565b610e48565b005b34801561047f57600080fd5b50610488610fab565b6040516104959190613fc5565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613de2565b610fb4565b6040516104d29190613e3d565b60405180910390f35b3480156104e757600080fd5b506104f0611060565b6040516104fd9190613fef565b60405180910390f35b34801561051257600080fd5b5061051b611084565b6040516105289190613e3d565b60405180910390f35b34801561053d57600080fd5b50610546611097565b6040516105539190613fef565b60405180910390f35b34801561056857600080fd5b506105716110bd565b60405161057e9190613f0e565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190613e58565b6110c3565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613c89565b611251565b005b3480156105e557600080fd5b506105ee611356565b6040516105fb9190613f0e565b60405180910390f35b34801561061057600080fd5b5061061961135c565b6040516106269190613f0e565b60405180910390f35b34801561063b57600080fd5b50610644611362565b6040516106519190613f0e565b60405180910390f35b34801561066657600080fd5b5061066f611368565b60405161067c9190613e3d565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613e58565b61137b565b6040516106b99190613f0e565b60405180910390f35b3480156106ce57600080fd5b506106d76113c3565b005b3480156106e557600080fd5b506106ee61151b565b005b3480156106fc57600080fd5b5061071760048036038101906107129190614036565b6115fb565b005b34801561072557600080fd5b50610740600480360381019061073b9190614076565b611782565b60405161074d9190613e3d565b60405180910390f35b34801561076257600080fd5b5061076b6119c1565b6040516107789190613f0e565b60405180910390f35b34801561078d57600080fd5b506107966119c7565b005b3480156107a457600080fd5b506107ad611b57565b6040516107ba9190613fef565b60405180910390f35b3480156107cf57600080fd5b506107d8611b81565b6040516107e59190613d62565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190614036565b611c13565b005b34801561082357600080fd5b5061083e60048036038101906108399190613de2565b611d47565b60405161084b9190613e3d565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190613de2565b611e32565b6040516108889190613e3d565b60405180910390f35b34801561089d57600080fd5b506108a6611e50565b6040516108b39190613f0e565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de9190613e58565b611e56565b6040516108f09190613e3d565b60405180910390f35b34801561090557600080fd5b5061090e611e76565b60405161091b9190613e3d565b60405180910390f35b34801561093057600080fd5b5061094b60048036038101906109469190614036565b611e89565b005b34801561095957600080fd5b50610974600480360381019061096f9190613f7c565b611fc9565b005b34801561098257600080fd5b5061099d60048036038101906109989190613f7c565b61212c565b005b3480156109ab57600080fd5b506109b46121d9565b6040516109c19190613f0e565b60405180910390f35b3480156109d657600080fd5b506109df6121df565b6040516109ec9190613f0e565b60405180910390f35b348015610a0157600080fd5b50610a1c6004803603810190610a179190613f7c565b6121e5565b005b348015610a2a57600080fd5b50610a456004803603810190610a409190614076565b612348565b604051610a529190613f0e565b60405180910390f35b348015610a6757600080fd5b50610a706123cf565b604051610a7d9190613f0e565b60405180910390f35b348015610a9257600080fd5b50610a9b6123d5565b604051610aa89190613f0e565b60405180910390f35b348015610abd57600080fd5b50610ac66123db565b604051610ad39190613f0e565b60405180910390f35b348015610ae857600080fd5b50610b036004803603810190610afe9190613e58565b6123e1565b005b348015610b1157600080fd5b50610b1a6125a8565b005b348015610b2857600080fd5b50610b316126a9565b604051610b3e9190613f0e565b60405180910390f35b610b4f6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590614102565b60405180910390fd5b8160128190555080601381905550601354601254610bfc9190614151565b601181905550601e6011541115610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f906141f3565b60405180910390fd5b5050565b606060038054610c5b90614242565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8790614242565b8015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b5050505050905090565b6000610cf2610ceb6126af565b84846126b7565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60155481565b6000610d5d848484612882565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610da86126af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f906142e6565b60405180910390fd5b610e3c85610e346126af565b8584036126b7565b60019150509392505050565b610e506126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690614102565b60405180910390fd5b670de0b6b3a76400006103e86001610ef5610d40565b610eff9190614306565b610f09919061438f565b610f13919061438f565b811015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90614432565b60405180910390fd5b670de0b6b3a764000081610f699190614306565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610fa09190613f0e565b60405180910390a150565b60006012905090565b6000611056610fc16126af565b848460016000610fcf6126af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110519190614151565b6126b7565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b6110cb6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c1906144c4565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b6112596126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90614102565b60405180910390fd5b81600f8190555080601081905550601054600f546113069190614151565b600e81905550601e600e541115611352576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611349906141f3565b60405180910390fd5b5050565b60075481565b60115481565b60125481565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113cb6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115236126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990614102565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6116036126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614102565b60405180910390fd5b80611727577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d90614556565b60405180910390fd5b5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea906145c2565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90614654565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118be9190613fef565b602060405180830381865afa1580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190614689565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161193c9291906146b6565b6020604051808303816000875af115801561195b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197f91906146f4565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e43884826040516119b29291906146b6565b60405180910390a15092915050565b60065481565b6119cf6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590614102565b60405180910390fd5b600d60019054906101000a900460ff1615611aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa59061476d565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055507fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe52089600d60019054906101000a900460ff16604051611b229190613e3d565b60405180910390a1600d60019054906101000a900460ff168015611b4857506000600c54145b15611b555743600c819055505b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611b9090614242565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbc90614242565b8015611c095780601f10611bde57610100808354040283529160200191611c09565b820191906000526020600020905b815481529060010190602001808311611bec57829003601f168201915b5050505050905090565b611c1b6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca190614102565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d30906147ff565b60405180910390fd5b611d4382826133ce565b5050565b60008060016000611d566126af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a90614891565b60405180910390fd5b611e27611e1e6126af565b858584036126b7565b600191505092915050565b6000611e46611e3f6126af565b8484612882565b6001905092915050565b60085481565b60186020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b611e916126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1790614102565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611fbd9190613e3d565b60405180910390a25050565b611fd16126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790614102565b60405180910390fd5b670de0b6b3a76400006103e86003612076610d40565b6120809190614306565b61208a919061438f565b612094919061438f565b8110156120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd90614923565b60405180910390fd5b670de0b6b3a7640000816120ea9190614306565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516121219190613f0e565b60405180910390a150565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b390614654565b60405180910390fd5b670de0b6b3a7640000816121d09190614306565b600a8190555050565b60145481565b600e5481565b6121ed6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461227c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227390614102565b60405180910390fd5b670de0b6b3a76400006103e86001612292610d40565b61229c9190614306565b6122a6919061438f565b6122b0919061438f565b8110156122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e9906149b5565b60405180910390fd5b670de0b6b3a7640000816123069190614306565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e60075460405161233d9190613f0e565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b60105481565b6123e96126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246f90614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124df90614a47565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461263a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263190614654565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff164760405161265e90614a98565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50508091505050565b60135481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e90614b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e90614bb1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128759190613f0e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e990614c43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295990614cd5565b60405180910390fd5b600081116129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c90614d41565b60405180910390fd5b600d60009054906101000a900460ff1615612f04576129c2611b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612a305750612a00611b57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a695750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa3575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f0357600d60019054906101000a900460ff16612c1257601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b5d5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9390614dad565b60405180910390fd5b612ba4611b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0890614e19565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cb55750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cc25750600c5443115b15612d1157600654811115612d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0390614eab565b60405180910390fd5b612e00565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612db45750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612dff57600754811115612dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df590614f3d565b60405180910390fd5b5b5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ea45750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f0257600854612eb58361137b565b82612ec09190614151565b1115612f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef890614fa9565b60405180910390fd5b5b5b5b6000612f0f3061137b565b90506000600a548210159050808015612f345750600d60029054906101000a900460ff165b8015612f4d5750600960009054906101000a900460ff16155b8015612fa35750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ff95750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561304f5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613093576001600960006101000a81548160ff021916908315150217905550613077613479565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061313a5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561314457600090505b60008082156133b9576000600c5411801561316c5750436001600c5461316a9190614151565b115b156131be576064600a876131809190614306565b61318a919061438f565b90506131b988600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613631565b61338a565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561321957506000601154115b156132a55760646011548761322e9190614306565b613238919061438f565b91506011546013548361324b9190614306565b613255919061438f565b601560008282546132669190614151565b925050819055506011546012548361327e9190614306565b613288919061438f565b601460008282546132999190614151565b92505081905550613389565b601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561330057506000600e54115b15613388576064600e54876133159190614306565b61331f919061438f565b9150600e54601054836133329190614306565b61333c919061438f565b6015600082825461334d9190614151565b92505081905550600e54600f54836133659190614306565b61336f919061438f565b601460008282546133809190614151565b925050819055505b5b5b600082111561339f5761339e883084613631565b5b80826133ab9190614151565b866133b69190614fc9565b95505b6133c4888888613631565b5050505050505050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061342f828261389c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006134843061137b565b905060006014546015546134989190614151565b905060008214806134a95750600081145b156134b557505061362f565b6005600a546134c49190614306565b8211156134dd576005600a546134da9190614306565b91505b600080600283601554866134f19190614306565b6134fb919061438f565b613505919061438f565b905061351b81856135169190614fc9565b613930565b6000479050600081905060006002601554613536919061438f565b866135419190614fc9565b6014548461354f9190614306565b613559919061438f565b905080826135679190614fc9565b9150600060158190555060006014819055506000841180156135895750600082115b15613599576135988483613b6d565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135df90614a98565b60006040518083038185875af1925050503d806000811461361c576040519150601f19603f3d011682016040523d82523d6000602084013e613621565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156136a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369890614c43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370890614cd5565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378e9061506f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461382a9190614151565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161388e9190613f0e565b60405180910390a350505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746828260405161392492919061508f565b60405180910390a15050565b6000600267ffffffffffffffff81111561394d5761394c6150b8565b5b60405190808252806020026020018201604052801561397b5781602001602082028036833780820191505090505b5090503081600081518110613993576139926150e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5c919061512b565b81600181518110613a7057613a6f6150e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad5307f0000000000000000000000000000000000000000000000000000000000000000846126b7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b37959493929190615251565b600060405180830381600087803b158015613b5157600080fd5b505af1158015613b65573d6000803e3d6000fd5b505050505050565b613b98307f0000000000000000000000000000000000000000000000000000000000000000846126b7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613be2611b57565b426040518863ffffffff1660e01b8152600401613c04969594939291906152ab565b60606040518083038185885af1158015613c22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c47919061530c565b5050505050565b600080fd5b6000819050919050565b613c6681613c53565b8114613c7157600080fd5b50565b600081359050613c8381613c5d565b92915050565b60008060408385031215613ca057613c9f613c4e565b5b6000613cae85828601613c74565b9250506020613cbf85828601613c74565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d03578082015181840152602081019050613ce8565b83811115613d12576000848401525b50505050565b6000601f19601f8301169050919050565b6000613d3482613cc9565b613d3e8185613cd4565b9350613d4e818560208601613ce5565b613d5781613d18565b840191505092915050565b60006020820190508181036000830152613d7c8184613d29565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613daf82613d84565b9050919050565b613dbf81613da4565b8114613dca57600080fd5b50565b600081359050613ddc81613db6565b92915050565b60008060408385031215613df957613df8613c4e565b5b6000613e0785828601613dcd565b9250506020613e1885828601613c74565b9150509250929050565b60008115159050919050565b613e3781613e22565b82525050565b6000602082019050613e526000830184613e2e565b92915050565b600060208284031215613e6e57613e6d613c4e565b5b6000613e7c84828501613dcd565b91505092915050565b6000819050919050565b6000613eaa613ea5613ea084613d84565b613e85565b613d84565b9050919050565b6000613ebc82613e8f565b9050919050565b6000613ece82613eb1565b9050919050565b613ede81613ec3565b82525050565b6000602082019050613ef96000830184613ed5565b92915050565b613f0881613c53565b82525050565b6000602082019050613f236000830184613eff565b92915050565b600080600060608486031215613f4257613f41613c4e565b5b6000613f5086828701613dcd565b9350506020613f6186828701613dcd565b9250506040613f7286828701613c74565b9150509250925092565b600060208284031215613f9257613f91613c4e565b5b6000613fa084828501613c74565b91505092915050565b600060ff82169050919050565b613fbf81613fa9565b82525050565b6000602082019050613fda6000830184613fb6565b92915050565b613fe981613da4565b82525050565b60006020820190506140046000830184613fe0565b92915050565b61401381613e22565b811461401e57600080fd5b50565b6000813590506140308161400a565b92915050565b6000806040838503121561404d5761404c613c4e565b5b600061405b85828601613dcd565b925050602061406c85828601614021565b9150509250929050565b6000806040838503121561408d5761408c613c4e565b5b600061409b85828601613dcd565b92505060206140ac85828601613dcd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140ec602083613cd4565b91506140f7826140b6565b602082019050919050565b6000602082019050818103600083015261411b816140df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061415c82613c53565b915061416783613c53565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561419c5761419b614122565b5b828201905092915050565b7f46656573206d75737420626520333025206f72206c6573730000000000000000600082015250565b60006141dd601883613cd4565b91506141e8826141a7565b602082019050919050565b6000602082019050818103600083015261420c816141d0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061425a57607f821691505b6020821081141561426e5761426d614213565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006142d0602883613cd4565b91506142db82614274565b604082019050919050565b600060208201905081810360008301526142ff816142c3565b9050919050565b600061431182613c53565b915061431c83613c53565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561435557614354614122565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061439a82613c53565b91506143a583613c53565b9250826143b5576143b4614360565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b600061441c602983613cd4565b9150614427826143c0565b604082019050919050565b6000602082019050818103600083015261444b8161440f565b9050919050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f742060008201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b60006144ae602483613cd4565b91506144b982614452565b604082019050919050565b600060208201905081810360008301526144dd816144a1565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b6000614540602783613cd4565b915061454b826144e4565b604082019050919050565b6000602082019050818103600083015261456f81614533565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b60006145ac601a83613cd4565b91506145b782614576565b602082019050919050565b600060208201905081810360008301526145db8161459f565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e207769746864726160008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061463e602183613cd4565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b60008151905061468381613c5d565b92915050565b60006020828403121561469f5761469e613c4e565b5b60006146ad84828501614674565b91505092915050565b60006040820190506146cb6000830185613fe0565b6146d86020830184613eff565b9392505050565b6000815190506146ee8161400a565b92915050565b60006020828403121561470a57614709613c4e565b5b6000614718848285016146df565b91505092915050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b6000614757601883613cd4565b915061476282614721565b602082019050919050565b600060208201905081810360008301526147868161474a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006147e9603983613cd4565b91506147f48261478d565b604082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061487b602583613cd4565b91506148868261481f565b604082019050919050565b600060208201905081810360008301526148aa8161486e565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b600061490d602c83613cd4565b9150614918826148b1565b604082019050919050565b6000602082019050818103600083015261493c81614900565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b600061499f602a83613cd4565b91506149aa82614943565b604082019050919050565b600060208201905081810360008301526149ce81614992565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614a31602683613cd4565b9150614a3c826149d5565b604082019050919050565b60006020820190508181036000830152614a6081614a24565b9050919050565b600081905092915050565b50565b6000614a82600083614a67565b9150614a8d82614a72565b600082019050919050565b6000614aa382614a75565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614b09602483613cd4565b9150614b1482614aad565b604082019050919050565b60006020820190508181036000830152614b3881614afc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b9b602283613cd4565b9150614ba682614b3f565b604082019050919050565b60006020820190508181036000830152614bca81614b8e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c2d602583613cd4565b9150614c3882614bd1565b604082019050919050565b60006020820190508181036000830152614c5c81614c20565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614cbf602383613cd4565b9150614cca82614c63565b604082019050919050565b60006020820190508181036000830152614cee81614cb2565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000614d2b601d83613cd4565b9150614d3682614cf5565b602082019050919050565b60006020820190508181036000830152614d5a81614d1e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614d97601683613cd4565b9150614da282614d61565b602082019050919050565b60006020820190508181036000830152614dc681614d8a565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000614e03601683613cd4565b9150614e0e82614dcd565b602082019050919050565b60006020820190508181036000830152614e3281614df6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614e95602883613cd4565b9150614ea082614e39565b604082019050919050565b60006020820190508181036000830152614ec481614e88565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614f27602a83613cd4565b9150614f3282614ecb565b604082019050919050565b60006020820190508181036000830152614f5681614f1a565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000614f93601883613cd4565b9150614f9e82614f5d565b602082019050919050565b60006020820190508181036000830152614fc281614f86565b9050919050565b6000614fd482613c53565b9150614fdf83613c53565b925082821015614ff257614ff1614122565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615059602683613cd4565b915061506482614ffd565b604082019050919050565b600060208201905081810360008301526150888161504c565b9050919050565b60006040820190506150a46000830185613fe0565b6150b16020830184613e2e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061512581613db6565b92915050565b60006020828403121561514157615140613c4e565b5b600061514f84828501615116565b91505092915050565b6000819050919050565b600061517d61517861517384615158565b613e85565b613c53565b9050919050565b61518d81615162565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6151c881613da4565b82525050565b60006151da83836151bf565b60208301905092915050565b6000602082019050919050565b60006151fe82615193565b615208818561519e565b9350615213836151af565b8060005b8381101561524457815161522b88826151ce565b9750615236836151e6565b925050600181019050615217565b5085935050505092915050565b600060a0820190506152666000830188613eff565b6152736020830187615184565b818103604083015261528581866151f3565b90506152946060830185613fe0565b6152a16080830184613eff565b9695505050505050565b600060c0820190506152c06000830189613fe0565b6152cd6020830188613eff565b6152da6040830187615184565b6152e76060830186615184565b6152f46080830185613fe0565b61530160a0830184613eff565b979650505050505050565b60008060006060848603121561532557615324613c4e565b5b600061533386828701614674565b935050602061534486828701614674565b925050604061535586828701614674565b915050925092509256fea26469706673582212209caa2fabebb34907753c5cd35169e9dd9fff162df435b194ccffd7aeff25e43964736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80637571336a11610175578063c0246668116100dc578063dd62ed3e11610095578063f11a24d31161006f578063f11a24d314610ab1578063f2fde38b14610adc578063f5648a4f14610b05578063f637434214610b1c576102b9565b8063dd62ed3e14610a1e578063e2f4560514610a5b578063ee40166e14610a86576102b9565b8063c024666814610924578063c18bc1951461094d578063cc274b2914610976578063cc2ffe7c1461099f578063d85ba063146109ca578063dc3f0d0f146109f5576102b9565b80639a7a23d61161012e5780639a7a23d6146107ee578063a457c2d714610817578063a9059cbb14610854578063aa4bde2814610891578063b62496f5146108bc578063bbc0c742146108f9576102b9565b80637571336a146106f05780638366e79a1461071957806388e765ff146107565780638a8c523c146107815780638da5cb5b1461079857806395d89b41146107c3576102b9565b80634a62bb65116102195780636a486a8e116101d25780636a486a8e146106045780636b2fb1241461062f5780636ddd17131461065a57806370a0823114610685578063715018a6146106c2578063751039fc146106d9576102b9565b80634a62bb65146105065780635b5c251f146105315780635c068a8c1461055c5780636605bfda1461058757806366ca9b83146105b057806366d602ae146105d9576102b9565b80631a8145bb1161026b5780631a8145bb146103e257806323b872dd1461040d5780632be32b611461044a578063313ce56714610473578063395093511461049e57806349bd5a5e146104db576102b9565b806302dbd8f8146102be57806306fdde03146102e7578063095ea7b31461031257806310d5de531461034f5780631694505e1461038c57806318160ddd146103b7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613c89565b610b47565b005b3480156102f357600080fd5b506102fc610c4c565b6040516103099190613d62565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190613de2565b610cde565b6040516103469190613e3d565b60405180910390f35b34801561035b57600080fd5b5061037660048036038101906103719190613e58565b610cfc565b6040516103839190613e3d565b60405180910390f35b34801561039857600080fd5b506103a1610d1c565b6040516103ae9190613ee4565b60405180910390f35b3480156103c357600080fd5b506103cc610d40565b6040516103d99190613f0e565b60405180910390f35b3480156103ee57600080fd5b506103f7610d4a565b6040516104049190613f0e565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613f29565b610d50565b6040516104419190613e3d565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190613f7c565b610e48565b005b34801561047f57600080fd5b50610488610fab565b6040516104959190613fc5565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190613de2565b610fb4565b6040516104d29190613e3d565b60405180910390f35b3480156104e757600080fd5b506104f0611060565b6040516104fd9190613fef565b60405180910390f35b34801561051257600080fd5b5061051b611084565b6040516105289190613e3d565b60405180910390f35b34801561053d57600080fd5b50610546611097565b6040516105539190613fef565b60405180910390f35b34801561056857600080fd5b506105716110bd565b60405161057e9190613f0e565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190613e58565b6110c3565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190613c89565b611251565b005b3480156105e557600080fd5b506105ee611356565b6040516105fb9190613f0e565b60405180910390f35b34801561061057600080fd5b5061061961135c565b6040516106269190613f0e565b60405180910390f35b34801561063b57600080fd5b50610644611362565b6040516106519190613f0e565b60405180910390f35b34801561066657600080fd5b5061066f611368565b60405161067c9190613e3d565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613e58565b61137b565b6040516106b99190613f0e565b60405180910390f35b3480156106ce57600080fd5b506106d76113c3565b005b3480156106e557600080fd5b506106ee61151b565b005b3480156106fc57600080fd5b5061071760048036038101906107129190614036565b6115fb565b005b34801561072557600080fd5b50610740600480360381019061073b9190614076565b611782565b60405161074d9190613e3d565b60405180910390f35b34801561076257600080fd5b5061076b6119c1565b6040516107789190613f0e565b60405180910390f35b34801561078d57600080fd5b506107966119c7565b005b3480156107a457600080fd5b506107ad611b57565b6040516107ba9190613fef565b60405180910390f35b3480156107cf57600080fd5b506107d8611b81565b6040516107e59190613d62565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190614036565b611c13565b005b34801561082357600080fd5b5061083e60048036038101906108399190613de2565b611d47565b60405161084b9190613e3d565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190613de2565b611e32565b6040516108889190613e3d565b60405180910390f35b34801561089d57600080fd5b506108a6611e50565b6040516108b39190613f0e565b60405180910390f35b3480156108c857600080fd5b506108e360048036038101906108de9190613e58565b611e56565b6040516108f09190613e3d565b60405180910390f35b34801561090557600080fd5b5061090e611e76565b60405161091b9190613e3d565b60405180910390f35b34801561093057600080fd5b5061094b60048036038101906109469190614036565b611e89565b005b34801561095957600080fd5b50610974600480360381019061096f9190613f7c565b611fc9565b005b34801561098257600080fd5b5061099d60048036038101906109989190613f7c565b61212c565b005b3480156109ab57600080fd5b506109b46121d9565b6040516109c19190613f0e565b60405180910390f35b3480156109d657600080fd5b506109df6121df565b6040516109ec9190613f0e565b60405180910390f35b348015610a0157600080fd5b50610a1c6004803603810190610a179190613f7c565b6121e5565b005b348015610a2a57600080fd5b50610a456004803603810190610a409190614076565b612348565b604051610a529190613f0e565b60405180910390f35b348015610a6757600080fd5b50610a706123cf565b604051610a7d9190613f0e565b60405180910390f35b348015610a9257600080fd5b50610a9b6123d5565b604051610aa89190613f0e565b60405180910390f35b348015610abd57600080fd5b50610ac66123db565b604051610ad39190613f0e565b60405180910390f35b348015610ae857600080fd5b50610b036004803603810190610afe9190613e58565b6123e1565b005b348015610b1157600080fd5b50610b1a6125a8565b005b348015610b2857600080fd5b50610b316126a9565b604051610b3e9190613f0e565b60405180910390f35b610b4f6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590614102565b60405180910390fd5b8160128190555080601381905550601354601254610bfc9190614151565b601181905550601e6011541115610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f906141f3565b60405180910390fd5b5050565b606060038054610c5b90614242565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8790614242565b8015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b5050505050905090565b6000610cf2610ceb6126af565b84846126b7565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60155481565b6000610d5d848484612882565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610da86126af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f906142e6565b60405180910390fd5b610e3c85610e346126af565b8584036126b7565b60019150509392505050565b610e506126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690614102565b60405180910390fd5b670de0b6b3a76400006103e86001610ef5610d40565b610eff9190614306565b610f09919061438f565b610f13919061438f565b811015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90614432565b60405180910390fd5b670de0b6b3a764000081610f699190614306565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610fa09190613f0e565b60405180910390a150565b60006012905090565b6000611056610fc16126af565b848460016000610fcf6126af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110519190614151565b6126b7565b6001905092915050565b7f0000000000000000000000007596124f962c61b0ea90453d001c053675b9652c81565b600d60009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b6110cb6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c1906144c4565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b6112596126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90614102565b60405180910390fd5b81600f8190555080601081905550601054600f546113069190614151565b600e81905550601e600e541115611352576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611349906141f3565b60405180910390fd5b5050565b60075481565b60115481565b60125481565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113cb6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115236126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990614102565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6116036126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614102565b60405180910390fd5b80611727577f0000000000000000000000007596124f962c61b0ea90453d001c053675b9652c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d90614556565b60405180910390fd5b5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea906145c2565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90614654565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118be9190613fef565b602060405180830381865afa1580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190614689565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161193c9291906146b6565b6020604051808303816000875af115801561195b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197f91906146f4565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e43884826040516119b29291906146b6565b60405180910390a15092915050565b60065481565b6119cf6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590614102565b60405180910390fd5b600d60019054906101000a900460ff1615611aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa59061476d565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055507fe8a59d3db38e5220ac9d0f72590b7ac876e0916dc8f4db3e7614e6f91fe52089600d60019054906101000a900460ff16604051611b229190613e3d565b60405180910390a1600d60019054906101000a900460ff168015611b4857506000600c54145b15611b555743600c819055505b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611b9090614242565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbc90614242565b8015611c095780601f10611bde57610100808354040283529160200191611c09565b820191906000526020600020905b815481529060010190602001808311611bec57829003601f168201915b5050505050905090565b611c1b6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca190614102565b60405180910390fd5b7f0000000000000000000000007596124f962c61b0ea90453d001c053675b9652c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d30906147ff565b60405180910390fd5b611d4382826133ce565b5050565b60008060016000611d566126af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a90614891565b60405180910390fd5b611e27611e1e6126af565b858584036126b7565b600191505092915050565b6000611e46611e3f6126af565b8484612882565b6001905092915050565b60085481565b60186020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b611e916126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1790614102565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611fbd9190613e3d565b60405180910390a25050565b611fd16126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205790614102565b60405180910390fd5b670de0b6b3a76400006103e86003612076610d40565b6120809190614306565b61208a919061438f565b612094919061438f565b8110156120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd90614923565b60405180910390fd5b670de0b6b3a7640000816120ea9190614306565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516121219190613f0e565b60405180910390a150565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b390614654565b60405180910390fd5b670de0b6b3a7640000816121d09190614306565b600a8190555050565b60145481565b600e5481565b6121ed6126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461227c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227390614102565b60405180910390fd5b670de0b6b3a76400006103e86001612292610d40565b61229c9190614306565b6122a6919061438f565b6122b0919061438f565b8110156122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e9906149b5565b60405180910390fd5b670de0b6b3a7640000816123069190614306565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e60075460405161233d9190613f0e565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b60105481565b6123e96126af565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246f90614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124df90614a47565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461263a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263190614654565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff164760405161265e90614a98565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50508091505050565b60135481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e90614b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278e90614bb1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128759190613f0e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e990614c43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295990614cd5565b60405180910390fd5b600081116129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c90614d41565b60405180910390fd5b600d60009054906101000a900460ff1615612f04576129c2611b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612a305750612a00611b57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a695750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa3575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f0357600d60019054906101000a900460ff16612c1257601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b5d5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9390614dad565b60405180910390fd5b612ba4611b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0890614e19565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cb55750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cc25750600c5443115b15612d1157600654811115612d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0390614eab565b60405180910390fd5b612e00565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612db45750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612dff57600754811115612dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df590614f3d565b60405180910390fd5b5b5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ea45750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f0257600854612eb58361137b565b82612ec09190614151565b1115612f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef890614fa9565b60405180910390fd5b5b5b5b6000612f0f3061137b565b90506000600a548210159050808015612f345750600d60029054906101000a900460ff165b8015612f4d5750600960009054906101000a900460ff16155b8015612fa35750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ff95750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561304f5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613093576001600960006101000a81548160ff021916908315150217905550613077613479565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061313a5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561314457600090505b60008082156133b9576000600c5411801561316c5750436001600c5461316a9190614151565b115b156131be576064600a876131809190614306565b61318a919061438f565b90506131b988600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613631565b61338a565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561321957506000601154115b156132a55760646011548761322e9190614306565b613238919061438f565b91506011546013548361324b9190614306565b613255919061438f565b601560008282546132669190614151565b925050819055506011546012548361327e9190614306565b613288919061438f565b601460008282546132999190614151565b92505081905550613389565b601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561330057506000600e54115b15613388576064600e54876133159190614306565b61331f919061438f565b9150600e54601054836133329190614306565b61333c919061438f565b6015600082825461334d9190614151565b92505081905550600e54600f54836133659190614306565b61336f919061438f565b601460008282546133809190614151565b925050819055505b5b5b600082111561339f5761339e883084613631565b5b80826133ab9190614151565b866133b69190614fc9565b95505b6133c4888888613631565b5050505050505050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061342f828261389c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006134843061137b565b905060006014546015546134989190614151565b905060008214806134a95750600081145b156134b557505061362f565b6005600a546134c49190614306565b8211156134dd576005600a546134da9190614306565b91505b600080600283601554866134f19190614306565b6134fb919061438f565b613505919061438f565b905061351b81856135169190614fc9565b613930565b6000479050600081905060006002601554613536919061438f565b866135419190614fc9565b6014548461354f9190614306565b613559919061438f565b905080826135679190614fc9565b9150600060158190555060006014819055506000841180156135895750600082115b15613599576135988483613b6d565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135df90614a98565b60006040518083038185875af1925050503d806000811461361c576040519150601f19603f3d011682016040523d82523d6000602084013e613621565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156136a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369890614c43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370890614cd5565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378e9061506f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461382a9190614151565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161388e9190613f0e565b60405180910390a350505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746828260405161392492919061508f565b60405180910390a15050565b6000600267ffffffffffffffff81111561394d5761394c6150b8565b5b60405190808252806020026020018201604052801561397b5781602001602082028036833780820191505090505b5090503081600081518110613993576139926150e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5c919061512b565b81600181518110613a7057613a6f6150e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846126b7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b37959493929190615251565b600060405180830381600087803b158015613b5157600080fd5b505af1158015613b65573d6000803e3d6000fd5b505050505050565b613b98307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846126b7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613be2611b57565b426040518863ffffffff1660e01b8152600401613c04969594939291906152ab565b60606040518083038185885af1158015613c22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c47919061530c565b5050505050565b600080fd5b6000819050919050565b613c6681613c53565b8114613c7157600080fd5b50565b600081359050613c8381613c5d565b92915050565b60008060408385031215613ca057613c9f613c4e565b5b6000613cae85828601613c74565b9250506020613cbf85828601613c74565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d03578082015181840152602081019050613ce8565b83811115613d12576000848401525b50505050565b6000601f19601f8301169050919050565b6000613d3482613cc9565b613d3e8185613cd4565b9350613d4e818560208601613ce5565b613d5781613d18565b840191505092915050565b60006020820190508181036000830152613d7c8184613d29565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613daf82613d84565b9050919050565b613dbf81613da4565b8114613dca57600080fd5b50565b600081359050613ddc81613db6565b92915050565b60008060408385031215613df957613df8613c4e565b5b6000613e0785828601613dcd565b9250506020613e1885828601613c74565b9150509250929050565b60008115159050919050565b613e3781613e22565b82525050565b6000602082019050613e526000830184613e2e565b92915050565b600060208284031215613e6e57613e6d613c4e565b5b6000613e7c84828501613dcd565b91505092915050565b6000819050919050565b6000613eaa613ea5613ea084613d84565b613e85565b613d84565b9050919050565b6000613ebc82613e8f565b9050919050565b6000613ece82613eb1565b9050919050565b613ede81613ec3565b82525050565b6000602082019050613ef96000830184613ed5565b92915050565b613f0881613c53565b82525050565b6000602082019050613f236000830184613eff565b92915050565b600080600060608486031215613f4257613f41613c4e565b5b6000613f5086828701613dcd565b9350506020613f6186828701613dcd565b9250506040613f7286828701613c74565b9150509250925092565b600060208284031215613f9257613f91613c4e565b5b6000613fa084828501613c74565b91505092915050565b600060ff82169050919050565b613fbf81613fa9565b82525050565b6000602082019050613fda6000830184613fb6565b92915050565b613fe981613da4565b82525050565b60006020820190506140046000830184613fe0565b92915050565b61401381613e22565b811461401e57600080fd5b50565b6000813590506140308161400a565b92915050565b6000806040838503121561404d5761404c613c4e565b5b600061405b85828601613dcd565b925050602061406c85828601614021565b9150509250929050565b6000806040838503121561408d5761408c613c4e565b5b600061409b85828601613dcd565b92505060206140ac85828601613dcd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140ec602083613cd4565b91506140f7826140b6565b602082019050919050565b6000602082019050818103600083015261411b816140df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061415c82613c53565b915061416783613c53565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561419c5761419b614122565b5b828201905092915050565b7f46656573206d75737420626520333025206f72206c6573730000000000000000600082015250565b60006141dd601883613cd4565b91506141e8826141a7565b602082019050919050565b6000602082019050818103600083015261420c816141d0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061425a57607f821691505b6020821081141561426e5761426d614213565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006142d0602883613cd4565b91506142db82614274565b604082019050919050565b600060208201905081810360008301526142ff816142c3565b9050919050565b600061431182613c53565b915061431c83613c53565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561435557614354614122565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061439a82613c53565b91506143a583613c53565b9250826143b5576143b4614360565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b600061441c602983613cd4565b9150614427826143c0565b604082019050919050565b6000602082019050818103600083015261444b8161440f565b9050919050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f742060008201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b60006144ae602483613cd4565b91506144b982614452565b604082019050919050565b600060208201905081810360008301526144dd816144a1565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b6000614540602783613cd4565b915061454b826144e4565b604082019050919050565b6000602082019050818103600083015261456f81614533565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b60006145ac601a83613cd4565b91506145b782614576565b602082019050919050565b600060208201905081810360008301526145db8161459f565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e207769746864726160008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061463e602183613cd4565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b60008151905061468381613c5d565b92915050565b60006020828403121561469f5761469e613c4e565b5b60006146ad84828501614674565b91505092915050565b60006040820190506146cb6000830185613fe0565b6146d86020830184613eff565b9392505050565b6000815190506146ee8161400a565b92915050565b60006020828403121561470a57614709613c4e565b5b6000614718848285016146df565b91505092915050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b6000614757601883613cd4565b915061476282614721565b602082019050919050565b600060208201905081810360008301526147868161474a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006147e9603983613cd4565b91506147f48261478d565b604082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061487b602583613cd4565b91506148868261481f565b604082019050919050565b600060208201905081810360008301526148aa8161486e565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b600061490d602c83613cd4565b9150614918826148b1565b604082019050919050565b6000602082019050818103600083015261493c81614900565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b600061499f602a83613cd4565b91506149aa82614943565b604082019050919050565b600060208201905081810360008301526149ce81614992565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614a31602683613cd4565b9150614a3c826149d5565b604082019050919050565b60006020820190508181036000830152614a6081614a24565b9050919050565b600081905092915050565b50565b6000614a82600083614a67565b9150614a8d82614a72565b600082019050919050565b6000614aa382614a75565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614b09602483613cd4565b9150614b1482614aad565b604082019050919050565b60006020820190508181036000830152614b3881614afc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614b9b602283613cd4565b9150614ba682614b3f565b604082019050919050565b60006020820190508181036000830152614bca81614b8e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614c2d602583613cd4565b9150614c3882614bd1565b604082019050919050565b60006020820190508181036000830152614c5c81614c20565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614cbf602383613cd4565b9150614cca82614c63565b604082019050919050565b60006020820190508181036000830152614cee81614cb2565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000614d2b601d83613cd4565b9150614d3682614cf5565b602082019050919050565b60006020820190508181036000830152614d5a81614d1e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614d97601683613cd4565b9150614da282614d61565b602082019050919050565b60006020820190508181036000830152614dc681614d8a565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000614e03601683613cd4565b9150614e0e82614dcd565b602082019050919050565b60006020820190508181036000830152614e3281614df6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614e95602883613cd4565b9150614ea082614e39565b604082019050919050565b60006020820190508181036000830152614ec481614e88565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614f27602a83613cd4565b9150614f3282614ecb565b604082019050919050565b60006020820190508181036000830152614f5681614f1a565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000614f93601883613cd4565b9150614f9e82614f5d565b602082019050919050565b60006020820190508181036000830152614fc281614f86565b9050919050565b6000614fd482613c53565b9150614fdf83613c53565b925082821015614ff257614ff1614122565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000615059602683613cd4565b915061506482614ffd565b604082019050919050565b600060208201905081810360008301526150888161504c565b9050919050565b60006040820190506150a46000830185613fe0565b6150b16020830184613e2e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061512581613db6565b92915050565b60006020828403121561514157615140613c4e565b5b600061514f84828501615116565b91505092915050565b6000819050919050565b600061517d61517861517384615158565b613e85565b613c53565b9050919050565b61518d81615162565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6151c881613da4565b82525050565b60006151da83836151bf565b60208301905092915050565b6000602082019050919050565b60006151fe82615193565b615208818561519e565b9350615213836151af565b8060005b8381101561524457815161522b88826151ce565b9750615236836151e6565b925050600181019050615217565b5085935050505092915050565b600060a0820190506152666000830188613eff565b6152736020830187615184565b818103604083015261528581866151f3565b90506152946060830185613fe0565b6152a16080830184613eff565b9695505050505050565b600060c0820190506152c06000830189613fe0565b6152cd6020830188613eff565b6152da6040830187615184565b6152e76060830186615184565b6152f46080830185613fe0565b61530160a0830184613eff565b979650505050505050565b60008060006060848603121561532557615324613c4e565b5b600061533386828701614674565b935050602061534486828701614674565b925050604061535586828701614674565b915050925092509256fea26469706673582212209caa2fabebb34907753c5cd35169e9dd9fff162df435b194ccffd7aeff25e43964736f6c634300080c0033

Deployed Bytecode Sourcemap

7280:12825:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13279:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1998:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2912:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8173:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7430:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2319:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8063:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3089:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10581:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2218:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3577:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7480:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7683:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7597:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7837:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18698:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12970:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7356:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7912;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7947:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7763:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2435:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6039:150;;;;;;;;;;;;;:::i;:::-;;11150:115;;;;;;;;;;;;;:::i;:::-;;11490:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12265:452;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7322:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18353:337;;;;;;;;;;;;;:::i;:::-;;5825:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2106:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17451:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3800:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7391:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8252:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7723:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13595:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11765:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12057:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8024:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7803:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10858:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2753:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7555:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7636:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7873:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6197:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12731:231;;;;;;;;;;;;;:::i;:::-;;7984:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13279:308;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13396:12:::1;13378:15;:30;;;;13438:13;13419:16;:32;;;;13496:16;;13478:15;;:34;;;;:::i;:::-;13462:13;:50;;;;13548:2;13531:13;;:19;;13523:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13279:308:::0;;:::o;1998:100::-;2052:13;2085:5;2078:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:100;:::o;2912:169::-;2995:4;3012:39;3021:12;:10;:12::i;:::-;3035:7;3044:6;3012:8;:39::i;:::-;3069:4;3062:11;;2912:169;;;;:::o;8173:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;7430:43::-;;;:::o;2319:108::-;2380:7;2407:12;;2400:19;;2319:108;:::o;8063:33::-;;;;:::o;3089:480::-;3229:4;3246:36;3256:6;3264:9;3275:6;3246:9;:36::i;:::-;3295:24;3322:11;:19;3334:6;3322:19;;;;;;;;;;;;;;;:33;3342:12;:10;:12::i;:::-;3322:33;;;;;;;;;;;;;;;;3295:60;;3394:6;3374:16;:26;;3366:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3473:57;3482:6;3490:12;:10;:12::i;:::-;3523:6;3504:16;:25;3473:8;:57::i;:::-;3557:4;3550:11;;;3089:480;;;;;:::o;10581:269::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10700:4:::1;10694;10690:1;10674:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;10673:31;;;;:::i;:::-;10663:6;:41;;10655:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;10786:6;10776;:17;;;;:::i;:::-;10761:12;:32;;;;10809:33;10829:12;;10809:33;;;;;;:::i;:::-;;;;;;;;10581:269:::0;:::o;2218:93::-;2276:5;2301:2;2294:9;;2218:93;:::o;3577:215::-;3665:4;3682:80;3691:12;:10;:12::i;:::-;3705:7;3751:10;3714:11;:25;3726:12;:10;:12::i;:::-;3714:25;;;;;;;;;;;;;;;:34;3740:7;3714:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3682:8;:80::i;:::-;3780:4;3773:11;;3577:215;;;;:::o;7480:38::-;;;:::o;7683:33::-;;;;;;;;;;;;;:::o;7597:30::-;;;;;;;;;;;;;:::o;7837:29::-;;;;:::o;18698:281::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18818:1:::1;18790:30;;:16;:30;;;;18782:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18898:16;18872:15;;:43;;;;;;;;;;;;;;;;;;18954:16;18931:40;;;;;;;;;;;;18698:281:::0;:::o;12970:301::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13085:12:::1;13068:14;:29;;;;13126:13;13108:15;:31;;;;13182:15;;13165:14;;:32;;;;:::i;:::-;13150:12;:47;;;;13232:2;13216:12;;:18;;13208:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;12970:301:::0;;:::o;7356:28::-;;;;:::o;7912:::-;;;;:::o;7947:30::-;;;;:::o;7763:31::-;;;;;;;;;;;;;:::o;2435:127::-;2509:7;2536:9;:18;2546:7;2536:18;;;;;;;;;;;;;;;;2529:25;;2435:127;;;:::o;6039:150::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6148:1:::1;6111:40;;6132:6;;;;;;;;;;;6111:40;;;;;;;;;;;;6179:1;6162:6;;:19;;;;;;;;;;;;;;;;;;6039:150::o:0;11150:115::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11221:5:::1;11204:14;;:22;;;;;;;;;;;;;;;;;;11242:15;;;;;;;;;;11150:115::o:0;11490:267::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11586:4:::1;11582:111;;11624:13;11614:23;;:6;:23;;;;11606:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11582:111;11745:4;11703:31;:39;11735:6;11703:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11490:267:::0;;:::o;12265:452::-;12340:10;12389:1;12371:20;;:6;:20;;;;12363:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12453:15;;;;;;;;;;;12441:27;;:10;:27;;;12433:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12516:24;12550:6;12543:24;;;12576:4;12543:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12516:66;;12608:6;12601:23;;;12625:3;12630:16;12601:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12593:54;;12663:46;12684:6;12692:16;12663:46;;;;;;;:::i;:::-;;;;;;;;12352:365;12265:452;;;;:::o;7322:27::-;;;;:::o;18353:337::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18417:13:::1;;;;;;;;;;;18416:14;18408:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;18486:4;18470:13;;:20;;;;;;;;;;;;;;;;;;18515:4;18501:11;;:18;;;;;;;;;;;;;;;;;;18535:29;18550:13;;;;;;;;;;;18535:29;;;;;;:::i;:::-;;;;;;;;18581:13;;;;;;;;;;;:40;;;;;18620:1;18598:18;;:23;18581:40;18577:106;;;18659:12;18638:18;:33;;;;18577:106;18353:337::o:0;5825:79::-;5863:7;5890:6;;;;;;;;;;;5883:13;;5825:79;:::o;2106:104::-;2162:13;2195:7;2188:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2106:104;:::o;17451:246::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17560:13:::1;17552:21;;:4;:21;;;;17544:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17648:41;17677:4;17683:5;17648:28;:41::i;:::-;17451:246:::0;;:::o;3800:401::-;3893:4;3910:24;3937:11;:25;3949:12;:10;:12::i;:::-;3937:25;;;;;;;;;;;;;;;:34;3963:7;3937:34;;;;;;;;;;;;;;;;3910:61;;4010:15;3990:16;:35;;3982:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4095:67;4104:12;:10;:12::i;:::-;4118:7;4146:15;4127:16;:34;4095:8;:67::i;:::-;4189:4;4182:11;;;3800:401;;;;:::o;2570:175::-;2656:4;2673:42;2683:12;:10;:12::i;:::-;2697:9;2708:6;2673:9;:42::i;:::-;2733:4;2726:11;;2570:175;;;;:::o;7391:30::-;;;;:::o;8252:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;7723:33::-;;;;;;;;;;;;;:::o;13595:182::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13711:8:::1;13680:19;:28;13700:7;13680:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13751:7;13735:34;;;13760:8;13735:34;;;;;;:::i;:::-;;;;;;;;13595:182:::0;;:::o;11765:284::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11887:4:::1;11881;11877:1;11861:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;11860:31;;;;:::i;:::-;11850:6;:41;;11842:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11979:6;11969;:17;;;;:::i;:::-;11951:15;:35;;;;12002:39;12025:15;;12002:39;;;;;;:::i;:::-;;;;;;;;11765:284:::0;:::o;12057:198::-;12144:15;;;;;;;;;;;12132:27;;:10;:27;;;12124:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12240:6;12228:9;:19;;;;:::i;:::-;12207:18;:40;;;;12057:198;:::o;8024:32::-;;;;:::o;7803:27::-;;;;:::o;10858:274::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10978:4:::1;10972;10968:1;10952:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;10951:31;;;;:::i;:::-;10941:6;:41;;10933:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;11066:6;11056;:17;;;;:::i;:::-;11040:13;:33;;;;11089:35;11110:13;;11089:35;;;;;;:::i;:::-;;;;;;;;10858:274:::0;:::o;2753:151::-;2842:7;2869:11;:18;2881:5;2869:18;;;;;;;;;;;;;;;:27;2888:7;2869:27;;;;;;;;;;;;;;;;2862:34;;2753:151;;;;:::o;7555:33::-;;;;:::o;7636:37::-;;;;:::o;7873:30::-;;;;:::o;6197:244::-;5962:12;:10;:12::i;:::-;5952:22;;:6;;;;;;;;;;;:22;;;5944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6306:1:::1;6286:22;;:8;:22;;;;6278:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6396:8;6367:38;;6388:6;;;;;;;;;;;6367:38;;;;;;;;;;;;6425:8;6416:6;;:17;;;;;;;;;;;;;;;;;;6197:244:::0;:::o;12731:231::-;12777:12;12820:15;;;;;;;;;;;12808:27;;:10;:27;;;12800:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12904:10;12896:24;;12928:21;12896:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12883:71;;;;;12766:196;12731:231::o;7984:31::-;;;;:::o;437:98::-;490:7;517:10;510:17;;437:98;:::o;5118:380::-;5271:1;5254:19;;:5;:19;;;;5246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5352:1;5333:21;;:7;:21;;;;5325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5436:6;5406:11;:18;5418:5;5406:18;;;;;;;;;;;;;;;:27;5425:7;5406:27;;;;;;;;;;;;;;;:36;;;;5474:7;5458:32;;5467:5;5458:32;;;5483:6;5458:32;;;;;;:::i;:::-;;;;;;;;5118:380;;;:::o;13787:3150::-;13903:1;13887:18;;:4;:18;;;;13879:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13980:1;13966:16;;:2;:16;;;;13958:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14050:1;14041:6;:10;14033:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14103:14;;;;;;;;;;;14100:1132;;;14145:7;:5;:7::i;:::-;14137:15;;:4;:15;;;;:32;;;;;14162:7;:5;:7::i;:::-;14156:13;;:2;:13;;;;14137:32;:52;;;;;14187:1;14173:16;;:2;:16;;;;14137:52;:77;;;;;14207:6;14193:21;;:2;:21;;;;14137:77;14133:1088;;;14238:13;;;;;;;;;;;14234:245;;14283:31;:37;14315:4;14283:37;;;;;;;;;;;;;;;;;;;;;;;;;:76;;;;14324:31;:35;14356:2;14324:35;;;;;;;;;;;;;;;;;;;;;;;;;14283:76;14275:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;14425:7;:5;:7::i;:::-;14417:15;;:4;:15;;;14409:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14234:245;14519:25;:31;14545:4;14519:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14555:31;:35;14587:2;14555:35;;;;;;;;;;;;;;;;;;;;;;;;;14554:36;14519:71;:106;;;;;14607:18;;14594:12;:31;14519:106;14515:469;;;14668:12;;14658:6;:22;;14650:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14515:469;;;14790:25;:29;14816:2;14790:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14824:31;:37;14856:4;14824:37;;;;;;;;;;;;;;;;;;;;;;;;;14823:38;14790:71;14786:198;;;14904:13;;14894:6;:23;;14886:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14786:198;14515:469;15007:31;:35;15039:2;15007:35;;;;;;;;;;;;;;;;;;;;;;;;;15006:36;:78;;;;;15047:31;:37;15079:4;15047:37;;;;;;;;;;;;;;;;;;;;;;;;;15046:38;15006:78;15002:204;;;15142:15;;15125:13;15135:2;15125:9;:13::i;:::-;15116:6;:22;;;;:::i;:::-;:41;;15108:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15002:204;14133:1088;14100:1132;15244:28;15275:24;15293:4;15275:9;:24::i;:::-;15244:55;;15312:12;15351:18;;15327:20;:42;;15312:57;;15385:7;:22;;;;;15396:11;;;;;;;;;;;15385:22;:35;;;;;15412:8;;;;;;;;;;;15411:9;15385:35;:71;;;;;15425:25;:31;15451:4;15425:31;;;;;;;;;;;;;;;;;;;;;;;;;15424:32;15385:71;:101;;;;;15461:19;:25;15481:4;15461:25;;;;;;;;;;;;;;;;;;;;;;;;;15460:26;15385:101;:129;;;;;15491:19;:23;15511:2;15491:23;;;;;;;;;;;;;;;;;;;;;;;;;15490:24;15385:129;15382:236;;;15542:4;15531:8;;:15;;;;;;;;;;;;;;;;;;15563:10;:8;:10::i;:::-;15601:5;15590:8;;:16;;;;;;;;;;;;;;;;;;15382:236;15630:12;15645:4;15630:19;;15673;:25;15693:4;15673:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15702:19;:23;15722:2;15702:23;;;;;;;;;;;;;;;;;;;;;;;;;15673:52;15670:99;;;15752:5;15742:15;;15670:99;15781:12;15808:21;15859:7;15856:1028;;;15911:1;15892:18;;:20;:63;;;;;15943:12;15938:1;15917:18;;:22;;;;:::i;:::-;15916:39;15892:63;15889:834;;;16005:3;16000:2;15991:6;:11;;;;:::i;:::-;:17;;;;:::i;:::-;15975:33;;16027:53;16043:4;16049:15;;;;;;;;;;;16066:13;16027:15;:53::i;:::-;15889:834;;;16133:25;:29;16159:2;16133:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;16182:1;16166:13;;:17;16133:50;16129:594;;;16234:3;16219:13;;16210:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;16203:34;;16304:13;;16285:16;;16278:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;16256:18;;:61;;;;;;;:::i;:::-;;;;;;;;16382:13;;16364:15;;16357:4;:22;;;;:::i;:::-;:38;;;;:::i;:::-;16336:17;;:59;;;;;;;:::i;:::-;;;;;;;;16129:594;;;16447:25;:31;16473:4;16447:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;16497:1;16482:12;;:16;16447:51;16444:279;;;16550:3;16535:12;;16526:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16519:34;;16619:12;;16601:15;;16594:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;16572:18;;:59;;;;;;;:::i;:::-;;;;;;;;16695:12;;16678:14;;16671:4;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16650:17;;:57;;;;;;;:::i;:::-;;;;;;;;16444:279;16129:594;15889:834;16749:1;16742:4;:8;16739:89;;;16770:42;16786:4;16800;16807;16770:15;:42::i;:::-;16739:89;16859:13;16852:4;:20;;;;:::i;:::-;16842:30;;;;;:::i;:::-;;;15856:1028;16896:33;16912:4;16918:2;16922:6;16896:15;:33::i;:::-;13866:3071;;;;;13787:3150;;;:::o;17705:240::-;17822:5;17788:25;:31;17814:4;17788:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17840;17867:4;17873:5;17840:26;:39::i;:::-;17931:5;17897:40;;17925:4;17897:40;;;;;;;;;;;;17705:240;;:::o;18987:1115::-;19026:23;19052:24;19070:4;19052:9;:24::i;:::-;19026:50;;19087:25;19136:17;;19115:18;;:38;;;;:::i;:::-;19087:66;;19188:1;19169:15;:20;:46;;;;19214:1;19193:17;:22;19169:46;19166:60;;;19218:7;;;;19166:60;19280:1;19259:18;;:22;;;;:::i;:::-;19241:15;:40;19238:111;;;19336:1;19315:18;;:22;;;;:::i;:::-;19297:40;;19238:111;19361:12;19396:23;19481:1;19461:17;19440:18;;19422:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;19396:86;;19495:51;19530:15;19512;:33;;;;:::i;:::-;19495:16;:51::i;:::-;19559:18;19580:21;19559:42;;19612:23;19638:10;19612:36;;19661:22;19760:1;19741:18;;:20;;;;:::i;:::-;19720:17;:42;;;;:::i;:::-;19699:17;;19686:10;:30;;;;:::i;:::-;:77;;;;:::i;:::-;19661:102;;19793:14;19774:33;;;;;:::i;:::-;;;19841:1;19820:18;:22;;;;19873:1;19853:17;:21;;;;19908:1;19890:15;:19;:42;;;;;19931:1;19913:15;:19;19890:42;19887:119;;;19948:46;19961:15;19978;19948:12;:46::i;:::-;19887:119;20039:15;;;;;;;;;;;20031:29;;20068:21;20031:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20018:76;;;;;19015:1087;;;;;;;18987:1115;:::o;4209:602::-;4367:1;4349:20;;:6;:20;;;;4341:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4451:1;4430:23;;:9;:23;;;;4422:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4506:21;4530:9;:17;4540:6;4530:17;;;;;;;;;;;;;;;;4506:41;;4583:6;4566:13;:23;;4558:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4696:6;4680:13;:22;4660:9;:17;4670:6;4660:17;;;;;;;;;;;;;;;:42;;;;4744:6;4720:9;:20;4730:9;4720:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4785:9;4768:35;;4777:6;4768:35;;;4796:6;4768:35;;;;;;:::i;:::-;;;;;;;;4330:481;4209:602;;;:::o;11275:207::-;11405:10;11363:31;:39;11395:6;11363:39;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;11431:43;11455:6;11463:10;11431:43;;;;;;;:::i;:::-;;;;;;;;11275:207;;:::o;16945:498::-;17023:21;17061:1;17047:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17023:40;;17092:4;17074;17079:1;17074:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17118:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17108:4;17113:1;17108:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17153:62;17170:4;17185:15;17203:11;17153:8;:62::i;:::-;17238:15;:66;;;17319:11;17345:1;17362:4;17389;17409:15;17238:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17000:443;16945:498;:::o;17953:385::-;18036:62;18053:4;18068:15;18086:11;18036:8;:62::i;:::-;18121:15;:31;;;18160:9;18193:4;18213:11;18239:1;18256;18281:7;:5;:7::i;:::-;18304:15;18121:209;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17953:385;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:329::-;4033:6;4082:2;4070:9;4061:7;4057:23;4053:32;4050:119;;;4088:79;;:::i;:::-;4050:119;4208:1;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4179:117;3974:329;;;;:::o;4309:60::-;4337:3;4358:5;4351:12;;4309:60;;;:::o;4375:142::-;4425:9;4458:53;4476:34;4485:24;4503:5;4485:24;:::i;:::-;4476:34;:::i;:::-;4458:53;:::i;:::-;4445:66;;4375:142;;;:::o;4523:126::-;4573:9;4606:37;4637:5;4606:37;:::i;:::-;4593:50;;4523:126;;;:::o;4655:144::-;4723:9;4756:37;4787:5;4756:37;:::i;:::-;4743:50;;4655:144;;;:::o;4805:167::-;4910:55;4959:5;4910:55;:::i;:::-;4905:3;4898:68;4805:167;;:::o;4978:258::-;5089:4;5127:2;5116:9;5112:18;5104:26;;5140:89;5226:1;5215:9;5211:17;5202:6;5140:89;:::i;:::-;4978:258;;;;:::o;5242:118::-;5329:24;5347:5;5329:24;:::i;:::-;5324:3;5317:37;5242:118;;:::o;5366:222::-;5459:4;5497:2;5486:9;5482:18;5474:26;;5510:71;5578:1;5567:9;5563:17;5554:6;5510:71;:::i;:::-;5366:222;;;;:::o;5594:619::-;5671:6;5679;5687;5736:2;5724:9;5715:7;5711:23;5707:32;5704:119;;;5742:79;;:::i;:::-;5704:119;5862:1;5887:53;5932:7;5923:6;5912:9;5908:22;5887:53;:::i;:::-;5877:63;;5833:117;5989:2;6015:53;6060:7;6051:6;6040:9;6036:22;6015:53;:::i;:::-;6005:63;;5960:118;6117:2;6143:53;6188:7;6179:6;6168:9;6164:22;6143:53;:::i;:::-;6133:63;;6088:118;5594:619;;;;;:::o;6219:329::-;6278:6;6327:2;6315:9;6306:7;6302:23;6298:32;6295:119;;;6333:79;;:::i;:::-;6295:119;6453:1;6478:53;6523:7;6514:6;6503:9;6499:22;6478:53;:::i;:::-;6468:63;;6424:117;6219:329;;;;:::o;6554:86::-;6589:7;6629:4;6622:5;6618:16;6607:27;;6554:86;;;:::o;6646:112::-;6729:22;6745:5;6729:22;:::i;:::-;6724:3;6717:35;6646:112;;:::o;6764:214::-;6853:4;6891:2;6880:9;6876:18;6868:26;;6904:67;6968:1;6957:9;6953:17;6944:6;6904:67;:::i;:::-;6764:214;;;;:::o;6984:118::-;7071:24;7089:5;7071:24;:::i;:::-;7066:3;7059:37;6984:118;;:::o;7108:222::-;7201:4;7239:2;7228:9;7224:18;7216:26;;7252:71;7320:1;7309:9;7305:17;7296:6;7252:71;:::i;:::-;7108:222;;;;:::o;7336:116::-;7406:21;7421:5;7406:21;:::i;:::-;7399:5;7396:32;7386:60;;7442:1;7439;7432:12;7386:60;7336:116;:::o;7458:133::-;7501:5;7539:6;7526:20;7517:29;;7555:30;7579:5;7555:30;:::i;:::-;7458:133;;;;:::o;7597:468::-;7662:6;7670;7719:2;7707:9;7698:7;7694:23;7690:32;7687:119;;;7725:79;;:::i;:::-;7687:119;7845:1;7870:53;7915:7;7906:6;7895:9;7891:22;7870:53;:::i;:::-;7860:63;;7816:117;7972:2;7998:50;8040:7;8031:6;8020:9;8016:22;7998:50;:::i;:::-;7988:60;;7943:115;7597:468;;;;;:::o;8071:474::-;8139:6;8147;8196:2;8184:9;8175:7;8171:23;8167:32;8164:119;;;8202:79;;:::i;:::-;8164:119;8322:1;8347:53;8392:7;8383:6;8372:9;8368:22;8347:53;:::i;:::-;8337:63;;8293:117;8449:2;8475:53;8520:7;8511:6;8500:9;8496:22;8475:53;:::i;:::-;8465:63;;8420:118;8071:474;;;;;:::o;8551:182::-;8691:34;8687:1;8679:6;8675:14;8668:58;8551:182;:::o;8739:366::-;8881:3;8902:67;8966:2;8961:3;8902:67;:::i;:::-;8895:74;;8978:93;9067:3;8978:93;:::i;:::-;9096:2;9091:3;9087:12;9080:19;;8739:366;;;:::o;9111:419::-;9277:4;9315:2;9304:9;9300:18;9292:26;;9364:9;9358:4;9354:20;9350:1;9339:9;9335:17;9328:47;9392:131;9518:4;9392:131;:::i;:::-;9384:139;;9111:419;;;:::o;9536:180::-;9584:77;9581:1;9574:88;9681:4;9678:1;9671:15;9705:4;9702:1;9695:15;9722:305;9762:3;9781:20;9799:1;9781:20;:::i;:::-;9776:25;;9815:20;9833:1;9815:20;:::i;:::-;9810:25;;9969:1;9901:66;9897:74;9894:1;9891:81;9888:107;;;9975:18;;:::i;:::-;9888:107;10019:1;10016;10012:9;10005:16;;9722:305;;;;:::o;10033:174::-;10173:26;10169:1;10161:6;10157:14;10150:50;10033:174;:::o;10213:366::-;10355:3;10376:67;10440:2;10435:3;10376:67;:::i;:::-;10369:74;;10452:93;10541:3;10452:93;:::i;:::-;10570:2;10565:3;10561:12;10554:19;;10213:366;;;:::o;10585:419::-;10751:4;10789:2;10778:9;10774:18;10766:26;;10838:9;10832:4;10828:20;10824:1;10813:9;10809:17;10802:47;10866:131;10992:4;10866:131;:::i;:::-;10858:139;;10585:419;;;:::o;11010:180::-;11058:77;11055:1;11048:88;11155:4;11152:1;11145:15;11179:4;11176:1;11169:15;11196:320;11240:6;11277:1;11271:4;11267:12;11257:22;;11324:1;11318:4;11314:12;11345:18;11335:81;;11401:4;11393:6;11389:17;11379:27;;11335:81;11463:2;11455:6;11452:14;11432:18;11429:38;11426:84;;;11482:18;;:::i;:::-;11426:84;11247:269;11196:320;;;:::o;11522:227::-;11662:34;11658:1;11650:6;11646:14;11639:58;11731:10;11726:2;11718:6;11714:15;11707:35;11522:227;:::o;11755:366::-;11897:3;11918:67;11982:2;11977:3;11918:67;:::i;:::-;11911:74;;11994:93;12083:3;11994:93;:::i;:::-;12112:2;12107:3;12103:12;12096:19;;11755:366;;;:::o;12127:419::-;12293:4;12331:2;12320:9;12316:18;12308:26;;12380:9;12374:4;12370:20;12366:1;12355:9;12351:17;12344:47;12408:131;12534:4;12408:131;:::i;:::-;12400:139;;12127:419;;;:::o;12552:348::-;12592:7;12615:20;12633:1;12615:20;:::i;:::-;12610:25;;12649:20;12667:1;12649:20;:::i;:::-;12644:25;;12837:1;12769:66;12765:74;12762:1;12759:81;12754:1;12747:9;12740:17;12736:105;12733:131;;;12844:18;;:::i;:::-;12733:131;12892:1;12889;12885:9;12874:20;;12552:348;;;;:::o;12906:180::-;12954:77;12951:1;12944:88;13051:4;13048:1;13041:15;13075:4;13072:1;13065:15;13092:185;13132:1;13149:20;13167:1;13149:20;:::i;:::-;13144:25;;13183:20;13201:1;13183:20;:::i;:::-;13178:25;;13222:1;13212:35;;13227:18;;:::i;:::-;13212:35;13269:1;13266;13262:9;13257:14;;13092:185;;;;:::o;13283:228::-;13423:34;13419:1;13411:6;13407:14;13400:58;13492:11;13487:2;13479:6;13475:15;13468:36;13283:228;:::o;13517:366::-;13659:3;13680:67;13744:2;13739:3;13680:67;:::i;:::-;13673:74;;13756:93;13845:3;13756:93;:::i;:::-;13874:2;13869:3;13865:12;13858:19;;13517:366;;;:::o;13889:419::-;14055:4;14093:2;14082:9;14078:18;14070:26;;14142:9;14136:4;14132:20;14128:1;14117:9;14113:17;14106:47;14170:131;14296:4;14170:131;:::i;:::-;14162:139;;13889:419;;;:::o;14314:223::-;14454:34;14450:1;14442:6;14438:14;14431:58;14523:6;14518:2;14510:6;14506:15;14499:31;14314:223;:::o;14543:366::-;14685:3;14706:67;14770:2;14765:3;14706:67;:::i;:::-;14699:74;;14782:93;14871:3;14782:93;:::i;:::-;14900:2;14895:3;14891:12;14884:19;;14543:366;;;:::o;14915:419::-;15081:4;15119:2;15108:9;15104:18;15096:26;;15168:9;15162:4;15158:20;15154:1;15143:9;15139:17;15132:47;15196:131;15322:4;15196:131;:::i;:::-;15188:139;;14915:419;;;:::o;15340:226::-;15480:34;15476:1;15468:6;15464:14;15457:58;15549:9;15544:2;15536:6;15532:15;15525:34;15340:226;:::o;15572:366::-;15714:3;15735:67;15799:2;15794:3;15735:67;:::i;:::-;15728:74;;15811:93;15900:3;15811:93;:::i;:::-;15929:2;15924:3;15920:12;15913:19;;15572:366;;;:::o;15944:419::-;16110:4;16148:2;16137:9;16133:18;16125:26;;16197:9;16191:4;16187:20;16183:1;16172:9;16168:17;16161:47;16225:131;16351:4;16225:131;:::i;:::-;16217:139;;15944:419;;;:::o;16369:176::-;16509:28;16505:1;16497:6;16493:14;16486:52;16369:176;:::o;16551:366::-;16693:3;16714:67;16778:2;16773:3;16714:67;:::i;:::-;16707:74;;16790:93;16879:3;16790:93;:::i;:::-;16908:2;16903:3;16899:12;16892:19;;16551:366;;;:::o;16923:419::-;17089:4;17127:2;17116:9;17112:18;17104:26;;17176:9;17170:4;17166:20;17162:1;17151:9;17147:17;17140:47;17204:131;17330:4;17204:131;:::i;:::-;17196:139;;16923:419;;;:::o;17348:220::-;17488:34;17484:1;17476:6;17472:14;17465:58;17557:3;17552:2;17544:6;17540:15;17533:28;17348:220;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:143::-;18428:5;18459:6;18453:13;18444:22;;18475:33;18502:5;18475:33;:::i;:::-;18371:143;;;;:::o;18520:351::-;18590:6;18639:2;18627:9;18618:7;18614:23;18610:32;18607:119;;;18645:79;;:::i;:::-;18607:119;18765:1;18790:64;18846:7;18837:6;18826:9;18822:22;18790:64;:::i;:::-;18780:74;;18736:128;18520:351;;;;:::o;18877:332::-;18998:4;19036:2;19025:9;19021:18;19013:26;;19049:71;19117:1;19106:9;19102:17;19093:6;19049:71;:::i;:::-;19130:72;19198:2;19187:9;19183:18;19174:6;19130:72;:::i;:::-;18877:332;;;;;:::o;19215:137::-;19269:5;19300:6;19294:13;19285:22;;19316:30;19340:5;19316:30;:::i;:::-;19215:137;;;;:::o;19358:345::-;19425:6;19474:2;19462:9;19453:7;19449:23;19445:32;19442:119;;;19480:79;;:::i;:::-;19442:119;19600:1;19625:61;19678:7;19669:6;19658:9;19654:22;19625:61;:::i;:::-;19615:71;;19571:125;19358:345;;;;:::o;19709:174::-;19849:26;19845:1;19837:6;19833:14;19826:50;19709:174;:::o;19889:366::-;20031:3;20052:67;20116:2;20111:3;20052:67;:::i;:::-;20045:74;;20128:93;20217:3;20128:93;:::i;:::-;20246:2;20241:3;20237:12;20230:19;;19889:366;;;:::o;20261:419::-;20427:4;20465:2;20454:9;20450:18;20442:26;;20514:9;20508:4;20504:20;20500:1;20489:9;20485:17;20478:47;20542:131;20668:4;20542:131;:::i;:::-;20534:139;;20261:419;;;:::o;20686:244::-;20826:34;20822:1;20814:6;20810:14;20803:58;20895:27;20890:2;20882:6;20878:15;20871:52;20686:244;:::o;20936:366::-;21078:3;21099:67;21163:2;21158:3;21099:67;:::i;:::-;21092:74;;21175:93;21264:3;21175:93;:::i;:::-;21293:2;21288:3;21284:12;21277:19;;20936:366;;;:::o;21308:419::-;21474:4;21512:2;21501:9;21497:18;21489:26;;21561:9;21555:4;21551:20;21547:1;21536:9;21532:17;21525:47;21589:131;21715:4;21589:131;:::i;:::-;21581:139;;21308:419;;;:::o;21733:224::-;21873:34;21869:1;21861:6;21857:14;21850:58;21942:7;21937:2;21929:6;21925:15;21918:32;21733:224;:::o;21963:366::-;22105:3;22126:67;22190:2;22185:3;22126:67;:::i;:::-;22119:74;;22202:93;22291:3;22202:93;:::i;:::-;22320:2;22315:3;22311:12;22304:19;;21963:366;;;:::o;22335:419::-;22501:4;22539:2;22528:9;22524:18;22516:26;;22588:9;22582:4;22578:20;22574:1;22563:9;22559:17;22552:47;22616:131;22742:4;22616:131;:::i;:::-;22608:139;;22335:419;;;:::o;22760:231::-;22900:34;22896:1;22888:6;22884:14;22877:58;22969:14;22964:2;22956:6;22952:15;22945:39;22760:231;:::o;22997:366::-;23139:3;23160:67;23224:2;23219:3;23160:67;:::i;:::-;23153:74;;23236:93;23325:3;23236:93;:::i;:::-;23354:2;23349:3;23345:12;23338:19;;22997:366;;;:::o;23369:419::-;23535:4;23573:2;23562:9;23558:18;23550:26;;23622:9;23616:4;23612:20;23608:1;23597:9;23593:17;23586:47;23650:131;23776:4;23650:131;:::i;:::-;23642:139;;23369:419;;;:::o;23794:229::-;23934:34;23930:1;23922:6;23918:14;23911:58;24003:12;23998:2;23990:6;23986:15;23979:37;23794:229;:::o;24029:366::-;24171:3;24192:67;24256:2;24251:3;24192:67;:::i;:::-;24185:74;;24268:93;24357:3;24268:93;:::i;:::-;24386:2;24381:3;24377:12;24370:19;;24029:366;;;:::o;24401:419::-;24567:4;24605:2;24594:9;24590:18;24582:26;;24654:9;24648:4;24644:20;24640:1;24629:9;24625:17;24618:47;24682:131;24808:4;24682:131;:::i;:::-;24674:139;;24401:419;;;:::o;24826:225::-;24966:34;24962:1;24954:6;24950:14;24943:58;25035:8;25030:2;25022:6;25018:15;25011:33;24826:225;:::o;25057:366::-;25199:3;25220:67;25284:2;25279:3;25220:67;:::i;:::-;25213:74;;25296:93;25385:3;25296:93;:::i;:::-;25414:2;25409:3;25405:12;25398:19;;25057:366;;;:::o;25429:419::-;25595:4;25633:2;25622:9;25618:18;25610:26;;25682:9;25676:4;25672:20;25668:1;25657:9;25653:17;25646:47;25710:131;25836:4;25710:131;:::i;:::-;25702:139;;25429:419;;;:::o;25854:147::-;25955:11;25992:3;25977:18;;25854:147;;;;:::o;26007:114::-;;:::o;26127:398::-;26286:3;26307:83;26388:1;26383:3;26307:83;:::i;:::-;26300:90;;26399:93;26488:3;26399:93;:::i;:::-;26517:1;26512:3;26508:11;26501:18;;26127:398;;;:::o;26531:379::-;26715:3;26737:147;26880:3;26737:147;:::i;:::-;26730:154;;26901:3;26894:10;;26531:379;;;:::o;26916:223::-;27056:34;27052:1;27044:6;27040:14;27033:58;27125:6;27120:2;27112:6;27108:15;27101:31;26916:223;:::o;27145:366::-;27287:3;27308:67;27372:2;27367:3;27308:67;:::i;:::-;27301:74;;27384:93;27473:3;27384:93;:::i;:::-;27502:2;27497:3;27493:12;27486:19;;27145:366;;;:::o;27517:419::-;27683:4;27721:2;27710:9;27706:18;27698:26;;27770:9;27764:4;27760:20;27756:1;27745:9;27741:17;27734:47;27798:131;27924:4;27798:131;:::i;:::-;27790:139;;27517:419;;;:::o;27942:221::-;28082:34;28078:1;28070:6;28066:14;28059:58;28151:4;28146:2;28138:6;28134:15;28127:29;27942:221;:::o;28169:366::-;28311:3;28332:67;28396:2;28391:3;28332:67;:::i;:::-;28325:74;;28408:93;28497:3;28408:93;:::i;:::-;28526:2;28521:3;28517:12;28510:19;;28169:366;;;:::o;28541:419::-;28707:4;28745:2;28734:9;28730:18;28722:26;;28794:9;28788:4;28784:20;28780:1;28769:9;28765:17;28758:47;28822:131;28948:4;28822:131;:::i;:::-;28814:139;;28541:419;;;:::o;28966:224::-;29106:34;29102:1;29094:6;29090:14;29083:58;29175:7;29170:2;29162:6;29158:15;29151:32;28966:224;:::o;29196:366::-;29338:3;29359:67;29423:2;29418:3;29359:67;:::i;:::-;29352:74;;29435:93;29524:3;29435:93;:::i;:::-;29553:2;29548:3;29544:12;29537:19;;29196:366;;;:::o;29568:419::-;29734:4;29772:2;29761:9;29757:18;29749:26;;29821:9;29815:4;29811:20;29807:1;29796:9;29792:17;29785:47;29849:131;29975:4;29849:131;:::i;:::-;29841:139;;29568:419;;;:::o;29993:222::-;30133:34;30129:1;30121:6;30117:14;30110:58;30202:5;30197:2;30189:6;30185:15;30178:30;29993:222;:::o;30221:366::-;30363:3;30384:67;30448:2;30443:3;30384:67;:::i;:::-;30377:74;;30460:93;30549:3;30460:93;:::i;:::-;30578:2;30573:3;30569:12;30562:19;;30221:366;;;:::o;30593:419::-;30759:4;30797:2;30786:9;30782:18;30774:26;;30846:9;30840:4;30836:20;30832:1;30821:9;30817:17;30810:47;30874:131;31000:4;30874:131;:::i;:::-;30866:139;;30593:419;;;:::o;31018:179::-;31158:31;31154:1;31146:6;31142:14;31135:55;31018:179;:::o;31203:366::-;31345:3;31366:67;31430:2;31425:3;31366:67;:::i;:::-;31359:74;;31442:93;31531:3;31442:93;:::i;:::-;31560:2;31555:3;31551:12;31544:19;;31203:366;;;:::o;31575:419::-;31741:4;31779:2;31768:9;31764:18;31756:26;;31828:9;31822:4;31818:20;31814:1;31803:9;31799:17;31792:47;31856:131;31982:4;31856:131;:::i;:::-;31848:139;;31575:419;;;:::o;32000:172::-;32140:24;32136:1;32128:6;32124:14;32117:48;32000:172;:::o;32178:366::-;32320:3;32341:67;32405:2;32400:3;32341:67;:::i;:::-;32334:74;;32417:93;32506:3;32417:93;:::i;:::-;32535:2;32530:3;32526:12;32519:19;;32178:366;;;:::o;32550:419::-;32716:4;32754:2;32743:9;32739:18;32731:26;;32803:9;32797:4;32793:20;32789:1;32778:9;32774:17;32767:47;32831:131;32957:4;32831:131;:::i;:::-;32823:139;;32550:419;;;:::o;32975:172::-;33115:24;33111:1;33103:6;33099:14;33092:48;32975:172;:::o;33153:366::-;33295:3;33316:67;33380:2;33375:3;33316:67;:::i;:::-;33309:74;;33392:93;33481:3;33392:93;:::i;:::-;33510:2;33505:3;33501:12;33494:19;;33153:366;;;:::o;33525:419::-;33691:4;33729:2;33718:9;33714:18;33706:26;;33778:9;33772:4;33768:20;33764:1;33753:9;33749:17;33742:47;33806:131;33932:4;33806:131;:::i;:::-;33798:139;;33525:419;;;:::o;33950:227::-;34090:34;34086:1;34078:6;34074:14;34067:58;34159:10;34154:2;34146:6;34142:15;34135:35;33950:227;:::o;34183:366::-;34325:3;34346:67;34410:2;34405:3;34346:67;:::i;:::-;34339:74;;34422:93;34511:3;34422:93;:::i;:::-;34540:2;34535:3;34531:12;34524:19;;34183:366;;;:::o;34555:419::-;34721:4;34759:2;34748:9;34744:18;34736:26;;34808:9;34802:4;34798:20;34794:1;34783:9;34779:17;34772:47;34836:131;34962:4;34836:131;:::i;:::-;34828:139;;34555:419;;;:::o;34980:229::-;35120:34;35116:1;35108:6;35104:14;35097:58;35189:12;35184:2;35176:6;35172:15;35165:37;34980:229;:::o;35215:366::-;35357:3;35378:67;35442:2;35437:3;35378:67;:::i;:::-;35371:74;;35454:93;35543:3;35454:93;:::i;:::-;35572:2;35567:3;35563:12;35556:19;;35215:366;;;:::o;35587:419::-;35753:4;35791:2;35780:9;35776:18;35768:26;;35840:9;35834:4;35830:20;35826:1;35815:9;35811:17;35804:47;35868:131;35994:4;35868:131;:::i;:::-;35860:139;;35587:419;;;:::o;36012:174::-;36152:26;36148:1;36140:6;36136:14;36129:50;36012:174;:::o;36192:366::-;36334:3;36355:67;36419:2;36414:3;36355:67;:::i;:::-;36348:74;;36431:93;36520:3;36431:93;:::i;:::-;36549:2;36544:3;36540:12;36533:19;;36192:366;;;:::o;36564:419::-;36730:4;36768:2;36757:9;36753:18;36745:26;;36817:9;36811:4;36807:20;36803:1;36792:9;36788:17;36781:47;36845:131;36971:4;36845:131;:::i;:::-;36837:139;;36564:419;;;:::o;36989:191::-;37029:4;37049:20;37067:1;37049:20;:::i;:::-;37044:25;;37083:20;37101:1;37083:20;:::i;:::-;37078:25;;37122:1;37119;37116:8;37113:34;;;37127:18;;:::i;:::-;37113:34;37172:1;37169;37165:9;37157:17;;36989:191;;;;:::o;37186:225::-;37326:34;37322:1;37314:6;37310:14;37303:58;37395:8;37390:2;37382:6;37378:15;37371:33;37186:225;:::o;37417:366::-;37559:3;37580:67;37644:2;37639:3;37580:67;:::i;:::-;37573:74;;37656:93;37745:3;37656:93;:::i;:::-;37774:2;37769:3;37765:12;37758:19;;37417:366;;;:::o;37789:419::-;37955:4;37993:2;37982:9;37978:18;37970:26;;38042:9;38036:4;38032:20;38028:1;38017:9;38013:17;38006:47;38070:131;38196:4;38070:131;:::i;:::-;38062:139;;37789:419;;;:::o;38214:320::-;38329:4;38367:2;38356:9;38352:18;38344:26;;38380:71;38448:1;38437:9;38433:17;38424:6;38380:71;:::i;:::-;38461:66;38523:2;38512:9;38508:18;38499:6;38461:66;:::i;:::-;38214:320;;;;;:::o;38540:180::-;38588:77;38585:1;38578:88;38685:4;38682:1;38675:15;38709:4;38706:1;38699:15;38726:180;38774:77;38771:1;38764:88;38871:4;38868:1;38861:15;38895:4;38892:1;38885:15;38912:143;38969:5;39000:6;38994:13;38985:22;;39016:33;39043:5;39016:33;:::i;:::-;38912:143;;;;:::o;39061:351::-;39131:6;39180:2;39168:9;39159:7;39155:23;39151:32;39148:119;;;39186:79;;:::i;:::-;39148:119;39306:1;39331:64;39387:7;39378:6;39367:9;39363:22;39331:64;:::i;:::-;39321:74;;39277:128;39061:351;;;;:::o;39418:85::-;39463:7;39492:5;39481:16;;39418:85;;;:::o;39509:158::-;39567:9;39600:61;39618:42;39627:32;39653:5;39627:32;:::i;:::-;39618:42;:::i;:::-;39600:61;:::i;:::-;39587:74;;39509:158;;;:::o;39673:147::-;39768:45;39807:5;39768:45;:::i;:::-;39763:3;39756:58;39673:147;;:::o;39826:114::-;39893:6;39927:5;39921:12;39911:22;;39826:114;;;:::o;39946:184::-;40045:11;40079:6;40074:3;40067:19;40119:4;40114:3;40110:14;40095:29;;39946:184;;;;:::o;40136:132::-;40203:4;40226:3;40218:11;;40256:4;40251:3;40247:14;40239:22;;40136:132;;;:::o;40274:108::-;40351:24;40369:5;40351:24;:::i;:::-;40346:3;40339:37;40274:108;;:::o;40388:179::-;40457:10;40478:46;40520:3;40512:6;40478:46;:::i;:::-;40556:4;40551:3;40547:14;40533:28;;40388:179;;;;:::o;40573:113::-;40643:4;40675;40670:3;40666:14;40658:22;;40573:113;;;:::o;40722:732::-;40841:3;40870:54;40918:5;40870:54;:::i;:::-;40940:86;41019:6;41014:3;40940:86;:::i;:::-;40933:93;;41050:56;41100:5;41050:56;:::i;:::-;41129:7;41160:1;41145:284;41170:6;41167:1;41164:13;41145:284;;;41246:6;41240:13;41273:63;41332:3;41317:13;41273:63;:::i;:::-;41266:70;;41359:60;41412:6;41359:60;:::i;:::-;41349:70;;41205:224;41192:1;41189;41185:9;41180:14;;41145:284;;;41149:14;41445:3;41438:10;;40846:608;;;40722:732;;;;:::o;41460:831::-;41723:4;41761:3;41750:9;41746:19;41738:27;;41775:71;41843:1;41832:9;41828:17;41819:6;41775:71;:::i;:::-;41856:80;41932:2;41921:9;41917:18;41908:6;41856:80;:::i;:::-;41983:9;41977:4;41973:20;41968:2;41957:9;41953:18;41946:48;42011:108;42114:4;42105:6;42011:108;:::i;:::-;42003:116;;42129:72;42197:2;42186:9;42182:18;42173:6;42129:72;:::i;:::-;42211:73;42279:3;42268:9;42264:19;42255:6;42211:73;:::i;:::-;41460:831;;;;;;;;:::o;42297:807::-;42546:4;42584:3;42573:9;42569:19;42561:27;;42598:71;42666:1;42655:9;42651:17;42642:6;42598:71;:::i;:::-;42679:72;42747:2;42736:9;42732:18;42723:6;42679:72;:::i;:::-;42761:80;42837:2;42826:9;42822:18;42813:6;42761:80;:::i;:::-;42851;42927:2;42916:9;42912:18;42903:6;42851:80;:::i;:::-;42941:73;43009:3;42998:9;42994:19;42985:6;42941:73;:::i;:::-;43024;43092:3;43081:9;43077:19;43068:6;43024:73;:::i;:::-;42297:807;;;;;;;;;:::o;43110:663::-;43198:6;43206;43214;43263:2;43251:9;43242:7;43238:23;43234:32;43231:119;;;43269:79;;:::i;:::-;43231:119;43389:1;43414:64;43470:7;43461:6;43450:9;43446:22;43414:64;:::i;:::-;43404:74;;43360:128;43527:2;43553:64;43609:7;43600:6;43589:9;43585:22;43553:64;:::i;:::-;43543:74;;43498:129;43666:2;43692:64;43748:7;43739:6;43728:9;43724:22;43692:64;:::i;:::-;43682:74;;43637:129;43110:663;;;;;:::o

Swarm Source

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