ETH Price: $2,949.38 (-2.15%)
Gas: 3 Gwei

Token

(semaglutide) (OZEMPIC)
 

Overview

Max Total Supply

1,000,000,000 OZEMPIC

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
bitchimightbe.eth
Balance
3,914,275.58870428416316739 OZEMPIC

Value
$0.00
0x60af1c4d843093b8196d1ada2aee77664ac8b4b2
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:
Ozempic

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-26
*/

/**

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒░░░░░░░░░░░░
░░░░░░░░░░░░▒▒▓▓▓▓▓▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▓▒░░░░░░░░░░░░
░░▓█▓▓▓▒░░▒▓█▓▓▓▓▓▓▓▓▓▒░░▒▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒░░
░░▓██▓▒░░▒████▓░░░▒▓▓▓▓▓░▓▓▓▓▓▓▓▓▓▒░▓▓▓▓▓▓▒▒▒░▒▓▓▓▓▓▓░░▓▓▓▓▓▓░░▓▓▓▒▒▒▓▓▓▒░░▓▓▓░░▒▓▓▓▓▓▒▓▒░
░░▒▒▒▒██░▓████▒░░░░▓▓▓▓▓░░░░▒▓▓▓▓▒░░▓▓▓▓▒▒▒▒░░▒▓▓▓▒▓▓▒▒▓▓▒▓▓▓░░▓▓▓▒░░▒▓▓▓▒░▓▓▓░░▓▓▓▓░░░░░░
░░▒▓█▓▓▒░▓████▓░░░▒▓▓▓▓▓░░▒▓▓▓▓▒░░░░▓▓▓▓▓▓▓▓▒░▒▓▓▓░▓▓▓▓▓▒░▓▓▓░░▓▓▓▓▓▓▓▓▓▒░░▒▓▒░▒▓▓▓▒░░░░░░
░░░░░░░░░░▓████▒▒▒▓▓▓▓▓░░▓▓▓▓▓▒▒▒▒░░▓▓▓▓▒▒▒▒▒░▒▓▓▓░▒▓▓▓▓░░▓▓▓░░▓▓▓▒░░░░░░░░░▓░░░▒▓▓▓▒▒▒▒▒░
░░░░░░░░░░░▒▓▓█████▓▓▒░░░▓▓▓▓▓▓▓▓▓▒░▓▓▓▓▓▓▓▓▓░░▓▓▒░░▓▓▓▒░░▒▒▒░░▒▒▒▒░░░░░░░░░▒░░░░░▒▒▓▓▓▓▒░

Rx: OZEMPIC (semaglutide)

Tg: https://t.me/ozempicportal

*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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 _generateSupply(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 UniswapV2Router {
    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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

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

contract Ozempic is ERC20, Ownable {

    UniswapV2Router public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 public maxWallet;
    uint256 public maxTxnAmount;

    bool private swapping;
    uint256 public swapTokensAtAmount;
    uint256 public swapLimit;

    address devWallet;

    mapping (address => bool) public bot;

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

    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;

    uint256 public buyFee;
    uint256 public sellFee;

    uint256 public taxedTokens;

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

    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedTxnAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event MaxTransactionExclusion(address _address, bool excluded);

    event OwnerManualCollection(uint256 timestamp);

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


    constructor() ERC20(unicode"(semaglutide)", unicode"OZEMPIC") {

        UniswapV2Router _uniswapV2Router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

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

        buyFee = 20;
        sellFee = 25;

        uint256 totalSupply = 1 * 1e9 * 1e18;

        maxWallet = totalSupply * 2 / 100; // 2% MAX WALLET
        maxTxnAmount = totalSupply * 2 / 100; // 2% MAX TRANSACTION
        swapTokensAtAmount = totalSupply * 5 / 1000; // 0.5% SWAP THRESHOLD
        swapLimit = 6; // 3% MAX FEE SELL

        devWallet = payable(_msgSender());

        excludeFromFees(owner(), true);
        excludeFromFees(devWallet, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _generateSupply(devWallet, totalSupply);
    }

    receive() external payable {}

    // ENABLE TRADING
    function shootYourShot() external onlyOwner {
        require(!tradingLive, "Trading already live!");
        tradingLive = true;
        swapEnabled = true;
        emit EnabledTrading();
    }

    // REMOVE TXN LIMITS
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        swapTokensAtAmount = totalSupply() * 2 / 100; // 2% SWAP THRESHOLD
        swapLimit = 20; // 0.1% MAX FEE SELL
        emit RemovedLimits();
    }

    function updateTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 2 / 1000)/1e18, "Cannot set max txn amount lower than 0.2%");
        maxTxnAmount = newNum * (10**18);
        emit UpdatedTxnAmount(maxTxnAmount);
    }

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

     function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
         require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
         require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply.");
         swapTokensAtAmount = newAmount;
     }

     function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
         buyFee = _buyFee;
         sellFee = _sellFee;
         require((buyFee / 100) <= 20, "Must keep fees at 20% or less");
         require((sellFee / 100) <= 20, "Must keep fees at 20% or less");
     }

     function updateBot(address wallet, bool isBot) external onlyOwner {
         bot[wallet] = isBot;
     }

     function updateBots(address[] calldata wallets, bool isBot) external onlyOwner {
         for(uint256 i = 0; i < wallets.length; i++){
             bot[wallets[i]] = isBot;
         }
     }

     function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
         _isExcludedMaxTransactionAmount[updAds] = isEx;
     }

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

        _setAutomatedMarketMakerPair(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

        excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    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(!tradingLive){
            require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
        }

        require(!bot[from] && !bot[to]);

        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){

                // LAUNCH TRANSFER DELAY
                if (transferDelayEnabled){
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                      require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                // BUY TXN
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxTxnAmount, "Buy transfer amount exceeds the max txn.");
                        require(amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet");
                }
                // SELL TXN
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxTxnAmount, "Sell transfer amount exceeds the max txn.");
                }
                else if (!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "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;

            collectFees();

            swapping = false;
        }

        bool takeFee = true;

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

        uint256 fees = 0;

        if(takeFee){
            // SELL TXN
            if (automatedMarketMakerPairs[to] && sellFee > 0){
                fees = amount * sellFee / 100;
                taxedTokens += fees;
            }

            // BUY TXN
            else if(automatedMarketMakerPairs[from] && buyFee > 0) {
          	    fees = amount * buyFee / 100;
                taxedTokens += fees;
            }

            if(fees > 0){
                super._transfer(from, address(this), fees);
            }

        	amount -= fees;
        }

        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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function collectFees() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = taxedTokens;

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

        if (limitsInEffect){
          if (contractBalance > swapTokensAtAmount * swapLimit){
              contractBalance = swapTokensAtAmount * swapLimit;
          }
        } else {
          if (contractBalance > swapTokensAtAmount / swapLimit){
              contractBalance = swapTokensAtAmount / swapLimit;
          }
        }

        bool success;

        swapTokensForEth(contractBalance);

        taxedTokens = 0;

        if(address(this).balance > 0){
            (success,) = address(devWallet).call{value: address(this).balance}("");
        }
    }

    function manualCollection() external onlyOwner {
        require(balanceOf(address(this)) >= 0, "No tokens to swap");
        swapping = true;
        collectFees();
        swapping = false;
        emit OwnerManualCollection(block.timestamp);
    }

    function withdrawETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).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":[],"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":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerManualCollection","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":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedTxnAmount","type":"event"},{"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":[{"internalType":"address","name":"","type":"address"}],"name":"bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","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":[{"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":"manualCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"sellFee","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":[],"name":"shootYourShot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"taxedTokens","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":"tradingLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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 UniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"updateBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"updateBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600d5f6101000a81548160ff0219169083151502179055505f600d60016101000a81548160ff0219169083151502179055505f600d60026101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff02191690831515021790555034801562000078575f80fd5b506040518060400160405280600d81526020017f2873656d61676c757469646529000000000000000000000000000000000000008152506040518060400160405280600781526020017f4f5a454d504943000000000000000000000000000000000000000000000000008152508160039081620000f6919062000cba565b50806004908162000108919062000cba565b5050505f6200011c620005eb60201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001e4816001620005f260201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000288919062000e03565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000314919062000e03565b6040518363ffffffff1660e01b81526004016200033392919062000e44565b6020604051808303815f875af115801562000350573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000376919062000e03565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003be60a0516001620005f260201b60201c565b620003d360a0516001620006eb60201b60201c565b601460108190555060196011819055505f6b033b2e3c9fd0803ce80000009050606460028262000404919062000e9c565b62000410919062000f13565b600681905550606460028262000427919062000e9c565b62000433919062000f13565b6007819055506103e86005826200044b919062000e9c565b62000457919062000f13565b6009819055506006600a8190555062000475620005eb60201b60201c565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004d6620004c86200079b60201b60201c565b6001620007c360201b60201c565b6200050a600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007c360201b60201c565b6200051d306001620007c360201b60201c565b6200053261dead6001620007c360201b60201c565b62000554620005466200079b60201b60201c565b6001620005f260201b60201c565b62000588600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620005f260201b60201c565b6200059b306001620005f260201b60201c565b620005b061dead6001620005f260201b60201c565b620005e3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826200090c60201b60201c565b5050620010d3565b5f33905090565b62000602620005eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200068a9062000fa8565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620007518282620005f260201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007d3620005eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000864576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200085b9062000fa8565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000900919062000fe4565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200097d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000974906200104d565b60405180910390fd5b8060025f8282546200099091906200106d565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620009e491906200106d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a4a9190620010b8565b60405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ad257607f821691505b60208210810362000ae85762000ae762000a8d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b4c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b0f565b62000b58868362000b0f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ba262000b9c62000b968462000b70565b62000b79565b62000b70565b9050919050565b5f819050919050565b62000bbd8362000b82565b62000bd562000bcc8262000ba9565b84845462000b1b565b825550505050565b5f90565b62000beb62000bdd565b62000bf881848462000bb2565b505050565b5b8181101562000c1f5762000c135f8262000be1565b60018101905062000bfe565b5050565b601f82111562000c6e5762000c388162000aee565b62000c438462000b00565b8101602085101562000c53578190505b62000c6b62000c628562000b00565b83018262000bfd565b50505b505050565b5f82821c905092915050565b5f62000c905f198460080262000c73565b1980831691505092915050565b5f62000caa838362000c7f565b9150826002028217905092915050565b62000cc58262000a56565b67ffffffffffffffff81111562000ce15762000ce062000a60565b5b62000ced825462000aba565b62000cfa82828562000c23565b5f60209050601f83116001811462000d30575f841562000d1b578287015190505b62000d27858262000c9d565b86555062000d96565b601f19841662000d408662000aee565b5f5b8281101562000d695784890151825560018201915060208501945060208101905062000d42565b8683101562000d89578489015162000d85601f89168262000c7f565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dcd8262000da2565b9050919050565b62000ddf8162000dc1565b811462000dea575f80fd5b50565b5f8151905062000dfd8162000dd4565b92915050565b5f6020828403121562000e1b5762000e1a62000d9e565b5b5f62000e2a8482850162000ded565b91505092915050565b62000e3e8162000dc1565b82525050565b5f60408201905062000e595f83018562000e33565b62000e68602083018462000e33565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000ea88262000b70565b915062000eb58362000b70565b925082820262000ec58162000b70565b9150828204841483151762000edf5762000ede62000e6f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f1f8262000b70565b915062000f2c8362000b70565b92508262000f3f5762000f3e62000ee6565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000f9060208362000f4a565b915062000f9d8262000f5a565b602082019050919050565b5f6020820190508181035f83015262000fc18162000f82565b9050919050565b5f8115159050919050565b62000fde8162000fc8565b82525050565b5f60208201905062000ff95f83018462000fd3565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001035601f8362000f4a565b9150620010428262000fff565b602082019050919050565b5f6020820190508181035f830152620010668162001027565b9050919050565b5f620010798262000b70565b9150620010868362000b70565b9250828201905080821115620010a157620010a062000e6f565b5b92915050565b620010b28162000b70565b82525050565b5f602082019050620010cd5f830184620010a7565b92915050565b60805160a051614c1c6200111f5f395f8181610dec01528181611485015261294a01525f8181610a93015281816128f3015281816135b10152818161369001526136b70152614c1c5ff3fe60806040526004361061025f575f3560e01c80637571336a11610143578063c18bc195116100b5578063dd62ed3e11610079578063dd62ed3e146108be578063e086e5ec146108fa578063e2f4560514610910578063f2fde38b1461093a578063f8b45b0514610962578063fac1b9bc1461098c57610266565b8063c18bc19514610804578063c876d0b91461082c578063cf46f24c14610856578063d257b34f14610880578063d4210450146108a857610266565b8063a457c2d711610107578063a457c2d7146106ea578063a9059cbb14610726578063a914615814610762578063aeb9670414610778578063b62496f5146107a0578063c0246668146107dc57610266565b80637571336a1461061c57806376d628b7146106445780638da5cb5b1461066e57806395d89b41146106985780639a7a23d6146106c257610266565b806339509351116101dc5780636a01f09c116101a05780636a01f09c146105385780636db79437146105625780636ddd17131461058a57806370a08231146105b4578063715018a6146105f0578063751039fc1461060657610266565b8063395093511461045657806345c1e4b21461049257806347062402146104ba57806349bd5a5e146104e45780634a62bb651461050e57610266565b806318160ddd1161022357806318160ddd1461036057806323b872dd1461038a5780632b14ca56146103c6578063313ce567146103f0578063353f23451461041a57610266565b806306fdde031461026a578063095ea7b31461029457806310d5de53146102d057806311704f521461030c5780631694505e1461033657610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109b4565b60405161028b91906137d1565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b59190613886565b610a44565b6040516102c791906138de565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f191906138f7565b610a61565b60405161030391906138de565b60405180910390f35b348015610317575f80fd5b50610320610a7e565b60405161032d91906138de565b60405180910390f35b348015610341575f80fd5b5061034a610a91565b604051610357919061397d565b60405180910390f35b34801561036b575f80fd5b50610374610ab5565b60405161038191906139a5565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab91906139be565b610abe565b6040516103bd91906138de565b60405180910390f35b3480156103d1575f80fd5b506103da610bb0565b6040516103e791906139a5565b60405180910390f35b3480156103fb575f80fd5b50610404610bb6565b6040516104119190613a29565b60405180910390f35b348015610425575f80fd5b50610440600480360381019061043b91906138f7565b610bbe565b60405161044d91906138de565b60405180910390f35b348015610461575f80fd5b5061047c60048036038101906104779190613886565b610bdb565b60405161048991906138de565b60405180910390f35b34801561049d575f80fd5b506104b860048036038101906104b39190613a42565b610c82565b005b3480156104c5575f80fd5b506104ce610de4565b6040516104db91906139a5565b60405180910390f35b3480156104ef575f80fd5b506104f8610dea565b6040516105059190613a7c565b60405180910390f35b348015610519575f80fd5b50610522610e0e565b60405161052f91906138de565b60405180910390f35b348015610543575f80fd5b5061054c610e20565b60405161055991906139a5565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613a95565b610e26565b005b348015610595575f80fd5b5061059e610f72565b6040516105ab91906138de565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d591906138f7565b610f85565b6040516105e791906139a5565b60405180910390f35b3480156105fb575f80fd5b50610604610fca565b005b348015610611575f80fd5b5061061a61111d565b005b348015610627575f80fd5b50610642600480360381019061063d9190613afd565b611241565b005b34801561064f575f80fd5b5061065861132f565b60405161066591906139a5565b60405180910390f35b348015610679575f80fd5b50610682611335565b60405161068f9190613a7c565b60405180910390f35b3480156106a3575f80fd5b506106ac61135d565b6040516106b991906137d1565b60405180910390f35b3480156106cd575f80fd5b506106e860048036038101906106e39190613afd565b6113ed565b005b3480156106f5575f80fd5b50610710600480360381019061070b9190613886565b611565565b60405161071d91906138de565b60405180910390f35b348015610731575f80fd5b5061074c60048036038101906107479190613886565b61164b565b60405161075991906138de565b60405180910390f35b34801561076d575f80fd5b50610776611668565b005b348015610783575f80fd5b5061079e60048036038101906107999190613b9c565b6117b2565b005b3480156107ab575f80fd5b506107c660048036038101906107c191906138f7565b6118e9565b6040516107d391906138de565b60405180910390f35b3480156107e7575f80fd5b5061080260048036038101906107fd9190613afd565b611906565b005b34801561080f575f80fd5b5061082a60048036038101906108259190613a42565b611a42565b005b348015610837575f80fd5b50610840611ba4565b60405161084d91906138de565b60405180910390f35b348015610861575f80fd5b5061086a611bb6565b60405161087791906139a5565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a42565b611bbc565b005b3480156108b3575f80fd5b506108bc611d23565b005b3480156108c9575f80fd5b506108e460048036038101906108df9190613bf9565b611e78565b6040516108f191906139a5565b60405180910390f35b348015610905575f80fd5b5061090e611efa565b005b34801561091b575f80fd5b50610924611ffd565b60405161093191906139a5565b60405180910390f35b348015610945575f80fd5b50610960600480360381019061095b91906138f7565b612003565b005b34801561096d575f80fd5b506109766121c5565b60405161098391906139a5565b60405180910390f35b348015610997575f80fd5b506109b260048036038101906109ad9190613afd565b6121cb565b005b6060600380546109c390613c64565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90613c64565b8015610a3a5780601f10610a1157610100808354040283529160200191610a3a565b820191905f5260205f20905b815481529060010190602001808311610a1d57829003601f168201915b5050505050905090565b5f610a57610a506122b9565b84846122c0565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b5f610aca848484612483565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b116122b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8790613d04565b60405180910390fd5b610ba485610b9c6122b9565b8584036122c0565b60019150509392505050565b60115481565b5f6012905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f610c78610be76122b9565b848460015f610bf46122b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c739190613d4f565b6122c0565b6001905092915050565b610c8a6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90613dcc565b60405180910390fd5b670de0b6b3a76400006103e86002610d2e610ab5565b610d389190613dea565b610d429190613e58565b610d4c9190613e58565b811015610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613ef8565b60405180910390fd5b670de0b6b3a764000081610da29190613dea565b6007819055507fbd8a1f50bda6367cd3771d8453c2582c5f01613dd6d8ee271672f4943da806d3600754604051610dd991906139a5565b60405180910390a150565b60105481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d5f9054906101000a900460ff1681565b600a5481565b610e2e6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390613dcc565b60405180910390fd5b816010819055508060118190555060146064601054610edb9190613e58565b1115610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613f60565b60405180910390fd5b60146064601154610f2d9190613e58565b1115610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590613f60565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd26122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790613dcc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111256122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613dcc565b60405180910390fd5b5f600d5f6101000a81548160ff0219169083151502179055505f600f5f6101000a81548160ff021916908315150217905550606460026111f1610ab5565b6111fb9190613dea565b6112059190613e58565b6009819055506014600a819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6112496122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90613dcc565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461136c90613c64565b80601f016020809104026020016040519081016040528092919081815260200182805461139890613c64565b80156113e35780601f106113ba576101008083540402835291602001916113e3565b820191905f5260205f20905b8154815290600101906020018083116113c657829003601f168201915b5050505050905090565b6113f56122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613dcc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890613fee565b60405180910390fd5b61151b82826130ca565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f8060015f6115726122b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561162c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116239061407c565b60405180910390fd5b6116406116376122b9565b858584036122c0565b600191505092915050565b5f61165e6116576122b9565b8484612483565b6001905092915050565b6116706122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613dcc565b60405180910390fd5b600d60019054906101000a900460ff161561174e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611745906140e4565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6117ba6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f90613dcc565b60405180910390fd5b5f5b838390508110156118e35781600c5f86868581811061186c5761186b614102565b5b905060200201602081019061188191906138f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806118db9061412f565b91505061184a565b50505050565b6015602052805f5260405f205f915054906101000a900460ff1681565b61190e6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390613dcc565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a3691906138de565b60405180910390a25050565b611a4a6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613dcc565b60405180910390fd5b670de0b6b3a76400006103e86003611aee610ab5565b611af89190613dea565b611b029190613e58565b611b0c9190613e58565b811015611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b45906141e6565b60405180910390fd5b670de0b6b3a764000081611b629190613dea565b6006819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc600654604051611b9991906139a5565b60405180910390a150565b600f5f9054906101000a900460ff1681565b60075481565b611bc46122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4990613dcc565b60405180910390fd5b620186a06001611c60610ab5565b611c6a9190613dea565b611c749190613e58565b811015611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90614274565b60405180910390fd5b6103e86005611cc3610ab5565b611ccd9190613dea565b611cd79190613e58565b811115611d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1090614302565b60405180910390fd5b8060098190555050565b611d2b6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db090613dcc565b60405180910390fd5b5f611dc330610f85565b1015611e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfb9061436a565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550611e26613172565b5f60085f6101000a81548160ff0219169083151502179055507f7704eca0c9eaa0b85444383d91c148463b321cff28fcb55afee0ca730b3a553342604051611e6e91906139a5565b60405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611f026122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8790613dcc565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611fb5906143b5565b5f6040518083038185875af1925050503d805f8114611fef576040519150601f19603f3d011682016040523d82523d5f602084013e611ff4565b606091505b50508091505050565b60095481565b61200b6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209090613dcc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90614439565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b6121d36122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225890613dcc565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361232e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612325906144c7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390614555565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161247691906139a5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e8906145e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361255f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255690614671565b60405180910390fd5b5f81116125a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612598906146d9565b60405180910390fd5b600d60019054906101000a900460ff166126905760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612650575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61268f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268690614741565b60405180910390fd5b5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561272e5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612736575f80fd5b600d5f9054906101000a900460ff1615612d3c57612752611335565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127c05750612790611335565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612832575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612885575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156128d8575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d3b57600f5f9054906101000a900460ff1615612a61577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561299957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612a605743600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a14906147cf565b60405180910390fd5b43600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612afe575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ba557600754811115612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f9061485d565b60405180910390fd5b600654612b5483610f85565b82612b5f9190613d4f565b1115612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b97906148c5565b60405180910390fd5b612d3a565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c42575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c9157600754811115612c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8390614953565b60405180910390fd5b612d39565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612d3857600654612ceb83610f85565b82612cf69190613d4f565b1115612d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2e906148c5565b60405180910390fd5b5b5b5b5b5b5f612d4630610f85565b90505f6009548210159050808015612d6a5750600d60029054906101000a900460ff165b8015612d82575060085f9054906101000a900460ff16155b8015612dd5575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612e28575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612e7b575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ebc57600160085f6101000a81548160ff021916908315150217905550612ea2613172565b5f60085f6101000a81548160ff0219169083151502179055505b5f6001905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612f5c575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612f65575f90505b5f81156130b65760155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612fc357505f601154115b1561300157606460115486612fd89190613dea565b612fe29190613e58565b90508060125f828254612ff59190613d4f565b92505081905550613093565b60155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561305857505f601054115b156130925760646010548661306d9190613dea565b6130779190613e58565b90508060125f82825461308a9190613d4f565b925050819055505b5b5f8111156130a7576130a68730836132b5565b5b80856130b39190614971565b94505b6130c18787876132b5565b50505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506131288282611241565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f61317c30610f85565b90505f60125490505f82148061319157505f81145b1561319d5750506132b3565b600d5f9054906101000a900460ff16156131e057600a546009546131c19190613dea565b8211156131db57600a546009546131d89190613dea565b91505b61320b565b600a546009546131f09190613e58565b82111561320a57600a546009546132079190613e58565b91505b5b5f61321583613514565b5f6012819055505f4711156132af57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613269906143b5565b5f6040518083038185875af1925050503d805f81146132a3576040519150601f19603f3d011682016040523d82523d5f602084013e6132a8565b606091505b5050809150505b5050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331a906145e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338890614671565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340b90614a14565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546134a29190613d4f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161350691906139a5565b60405180910390a350505050565b5f600267ffffffffffffffff8111156135305761352f614a32565b5b60405190808252806020026020018201604052801561355e5781602001602082028036833780820191505090505b50905030815f8151811061357557613574614102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613618573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061363c9190614a73565b816001815181106136505761364f614102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136b5307f0000000000000000000000000000000000000000000000000000000000000000846122c0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613716959493929190614b8e565b5f604051808303815f87803b15801561372d575f80fd5b505af115801561373f573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561377e578082015181840152602081019050613763565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6137a382613747565b6137ad8185613751565b93506137bd818560208601613761565b6137c681613789565b840191505092915050565b5f6020820190508181035f8301526137e98184613799565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613822826137f9565b9050919050565b61383281613818565b811461383c575f80fd5b50565b5f8135905061384d81613829565b92915050565b5f819050919050565b61386581613853565b811461386f575f80fd5b50565b5f813590506138808161385c565b92915050565b5f806040838503121561389c5761389b6137f1565b5b5f6138a98582860161383f565b92505060206138ba85828601613872565b9150509250929050565b5f8115159050919050565b6138d8816138c4565b82525050565b5f6020820190506138f15f8301846138cf565b92915050565b5f6020828403121561390c5761390b6137f1565b5b5f6139198482850161383f565b91505092915050565b5f819050919050565b5f61394561394061393b846137f9565b613922565b6137f9565b9050919050565b5f6139568261392b565b9050919050565b5f6139678261394c565b9050919050565b6139778161395d565b82525050565b5f6020820190506139905f83018461396e565b92915050565b61399f81613853565b82525050565b5f6020820190506139b85f830184613996565b92915050565b5f805f606084860312156139d5576139d46137f1565b5b5f6139e28682870161383f565b93505060206139f38682870161383f565b9250506040613a0486828701613872565b9150509250925092565b5f60ff82169050919050565b613a2381613a0e565b82525050565b5f602082019050613a3c5f830184613a1a565b92915050565b5f60208284031215613a5757613a566137f1565b5b5f613a6484828501613872565b91505092915050565b613a7681613818565b82525050565b5f602082019050613a8f5f830184613a6d565b92915050565b5f8060408385031215613aab57613aaa6137f1565b5b5f613ab885828601613872565b9250506020613ac985828601613872565b9150509250929050565b613adc816138c4565b8114613ae6575f80fd5b50565b5f81359050613af781613ad3565b92915050565b5f8060408385031215613b1357613b126137f1565b5b5f613b208582860161383f565b9250506020613b3185828601613ae9565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613b5c57613b5b613b3b565b5b8235905067ffffffffffffffff811115613b7957613b78613b3f565b5b602083019150836020820283011115613b9557613b94613b43565b5b9250929050565b5f805f60408486031215613bb357613bb26137f1565b5b5f84013567ffffffffffffffff811115613bd057613bcf6137f5565b5b613bdc86828701613b47565b93509350506020613bef86828701613ae9565b9150509250925092565b5f8060408385031215613c0f57613c0e6137f1565b5b5f613c1c8582860161383f565b9250506020613c2d8582860161383f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613c7b57607f821691505b602082108103613c8e57613c8d613c37565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613cee602883613751565b9150613cf982613c94565b604082019050919050565b5f6020820190508181035f830152613d1b81613ce2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d5982613853565b9150613d6483613853565b9250828201905080821115613d7c57613d7b613d22565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613db6602083613751565b9150613dc182613d82565b602082019050919050565b5f6020820190508181035f830152613de381613daa565b9050919050565b5f613df482613853565b9150613dff83613853565b9250828202613e0d81613853565b91508282048414831517613e2457613e23613d22565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e6282613853565b9150613e6d83613853565b925082613e7d57613e7c613e2b565b5b828204905092915050565b7f43616e6e6f7420736574206d61782074786e20616d6f756e74206c6f776572205f8201527f7468616e20302e32250000000000000000000000000000000000000000000000602082015250565b5f613ee2602983613751565b9150613eed82613e88565b604082019050919050565b5f6020820190508181035f830152613f0f81613ed6565b9050919050565b7f4d757374206b656570206665657320617420323025206f72206c6573730000005f82015250565b5f613f4a601d83613751565b9150613f5582613f16565b602082019050919050565b5f6020820190508181035f830152613f7781613f3e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613fd8603983613751565b9150613fe382613f7e565b604082019050919050565b5f6020820190508181035f83015261400581613fcc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614066602583613751565b91506140718261400c565b604082019050919050565b5f6020820190508181035f8301526140938161405a565b9050919050565b7f54726164696e6720616c7265616479206c6976652100000000000000000000005f82015250565b5f6140ce601583613751565b91506140d98261409a565b602082019050919050565b5f6020820190508181035f8301526140fb816140c2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61413982613853565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361416b5761416a613d22565b5b600182019050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b5f6141d0602c83613751565b91506141db82614176565b604082019050919050565b5f6020820190508181035f8301526141fd816141c4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61425e603583613751565b915061426982614204565b604082019050919050565b5f6020820190508181035f83015261428b81614252565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f6142ec603483613751565b91506142f782614292565b604082019050919050565b5f6020820190508181035f830152614319816142e0565b9050919050565b7f4e6f20746f6b656e7320746f20737761700000000000000000000000000000005f82015250565b5f614354601183613751565b915061435f82614320565b602082019050919050565b5f6020820190508181035f83015261438181614348565b9050919050565b5f81905092915050565b50565b5f6143a05f83614388565b91506143ab82614392565b5f82019050919050565b5f6143bf82614395565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614423602683613751565b915061442e826143c9565b604082019050919050565b5f6020820190508181035f83015261445081614417565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6144b1602483613751565b91506144bc82614457565b604082019050919050565b5f6020820190508181035f8301526144de816144a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61453f602283613751565b915061454a826144e5565b604082019050919050565b5f6020820190508181035f83015261456c81614533565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6145cd602583613751565b91506145d882614573565b604082019050919050565b5f6020820190508181035f8301526145fa816145c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61465b602383613751565b915061466682614601565b604082019050919050565b5f6020820190508181035f8301526146888161464f565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6146c3601d83613751565b91506146ce8261468f565b602082019050919050565b5f6020820190508181035f8301526146f0816146b7565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61472b601683613751565b9150614736826146f7565b602082019050919050565b5f6020820190508181035f8301526147588161471f565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6147b9602483613751565b91506147c48261475f565b604082019050919050565b5f6020820190508181035f8301526147e6816147ad565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61782074786e2e000000000000000000000000000000000000000000000000602082015250565b5f614847602883613751565b9150614852826147ed565b604082019050919050565b5f6020820190508181035f8301526148748161483b565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f6148af601883613751565b91506148ba8261487b565b602082019050919050565b5f6020820190508181035f8301526148dc816148a3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782074786e2e0000000000000000000000000000000000000000000000602082015250565b5f61493d602983613751565b9150614948826148e3565b604082019050919050565b5f6020820190508181035f83015261496a81614931565b9050919050565b5f61497b82613853565b915061498683613853565b925082820390508181111561499e5761499d613d22565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149fe602683613751565b9150614a09826149a4565b604082019050919050565b5f6020820190508181035f830152614a2b816149f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050614a6d81613829565b92915050565b5f60208284031215614a8857614a876137f1565b5b5f614a9584828501614a5f565b91505092915050565b5f819050919050565b5f614ac1614abc614ab784614a9e565b613922565b613853565b9050919050565b614ad181614aa7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614b0981613818565b82525050565b5f614b1a8383614b00565b60208301905092915050565b5f602082019050919050565b5f614b3c82614ad7565b614b468185614ae1565b9350614b5183614af1565b805f5b83811015614b81578151614b688882614b0f565b9750614b7383614b26565b925050600181019050614b54565b5085935050505092915050565b5f60a082019050614ba15f830188613996565b614bae6020830187614ac8565b8181036040830152614bc08186614b32565b9050614bcf6060830185613a6d565b614bdc6080830184613996565b969550505050505056fea264697066735822122004180a8c47f3792af94cad04dd19cf39f6559e5e7036075790b2ac4228fb6b0b64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061025f575f3560e01c80637571336a11610143578063c18bc195116100b5578063dd62ed3e11610079578063dd62ed3e146108be578063e086e5ec146108fa578063e2f4560514610910578063f2fde38b1461093a578063f8b45b0514610962578063fac1b9bc1461098c57610266565b8063c18bc19514610804578063c876d0b91461082c578063cf46f24c14610856578063d257b34f14610880578063d4210450146108a857610266565b8063a457c2d711610107578063a457c2d7146106ea578063a9059cbb14610726578063a914615814610762578063aeb9670414610778578063b62496f5146107a0578063c0246668146107dc57610266565b80637571336a1461061c57806376d628b7146106445780638da5cb5b1461066e57806395d89b41146106985780639a7a23d6146106c257610266565b806339509351116101dc5780636a01f09c116101a05780636a01f09c146105385780636db79437146105625780636ddd17131461058a57806370a08231146105b4578063715018a6146105f0578063751039fc1461060657610266565b8063395093511461045657806345c1e4b21461049257806347062402146104ba57806349bd5a5e146104e45780634a62bb651461050e57610266565b806318160ddd1161022357806318160ddd1461036057806323b872dd1461038a5780632b14ca56146103c6578063313ce567146103f0578063353f23451461041a57610266565b806306fdde031461026a578063095ea7b31461029457806310d5de53146102d057806311704f521461030c5780631694505e1461033657610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109b4565b60405161028b91906137d1565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b59190613886565b610a44565b6040516102c791906138de565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f191906138f7565b610a61565b60405161030391906138de565b60405180910390f35b348015610317575f80fd5b50610320610a7e565b60405161032d91906138de565b60405180910390f35b348015610341575f80fd5b5061034a610a91565b604051610357919061397d565b60405180910390f35b34801561036b575f80fd5b50610374610ab5565b60405161038191906139a5565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab91906139be565b610abe565b6040516103bd91906138de565b60405180910390f35b3480156103d1575f80fd5b506103da610bb0565b6040516103e791906139a5565b60405180910390f35b3480156103fb575f80fd5b50610404610bb6565b6040516104119190613a29565b60405180910390f35b348015610425575f80fd5b50610440600480360381019061043b91906138f7565b610bbe565b60405161044d91906138de565b60405180910390f35b348015610461575f80fd5b5061047c60048036038101906104779190613886565b610bdb565b60405161048991906138de565b60405180910390f35b34801561049d575f80fd5b506104b860048036038101906104b39190613a42565b610c82565b005b3480156104c5575f80fd5b506104ce610de4565b6040516104db91906139a5565b60405180910390f35b3480156104ef575f80fd5b506104f8610dea565b6040516105059190613a7c565b60405180910390f35b348015610519575f80fd5b50610522610e0e565b60405161052f91906138de565b60405180910390f35b348015610543575f80fd5b5061054c610e20565b60405161055991906139a5565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613a95565b610e26565b005b348015610595575f80fd5b5061059e610f72565b6040516105ab91906138de565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d591906138f7565b610f85565b6040516105e791906139a5565b60405180910390f35b3480156105fb575f80fd5b50610604610fca565b005b348015610611575f80fd5b5061061a61111d565b005b348015610627575f80fd5b50610642600480360381019061063d9190613afd565b611241565b005b34801561064f575f80fd5b5061065861132f565b60405161066591906139a5565b60405180910390f35b348015610679575f80fd5b50610682611335565b60405161068f9190613a7c565b60405180910390f35b3480156106a3575f80fd5b506106ac61135d565b6040516106b991906137d1565b60405180910390f35b3480156106cd575f80fd5b506106e860048036038101906106e39190613afd565b6113ed565b005b3480156106f5575f80fd5b50610710600480360381019061070b9190613886565b611565565b60405161071d91906138de565b60405180910390f35b348015610731575f80fd5b5061074c60048036038101906107479190613886565b61164b565b60405161075991906138de565b60405180910390f35b34801561076d575f80fd5b50610776611668565b005b348015610783575f80fd5b5061079e60048036038101906107999190613b9c565b6117b2565b005b3480156107ab575f80fd5b506107c660048036038101906107c191906138f7565b6118e9565b6040516107d391906138de565b60405180910390f35b3480156107e7575f80fd5b5061080260048036038101906107fd9190613afd565b611906565b005b34801561080f575f80fd5b5061082a60048036038101906108259190613a42565b611a42565b005b348015610837575f80fd5b50610840611ba4565b60405161084d91906138de565b60405180910390f35b348015610861575f80fd5b5061086a611bb6565b60405161087791906139a5565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a42565b611bbc565b005b3480156108b3575f80fd5b506108bc611d23565b005b3480156108c9575f80fd5b506108e460048036038101906108df9190613bf9565b611e78565b6040516108f191906139a5565b60405180910390f35b348015610905575f80fd5b5061090e611efa565b005b34801561091b575f80fd5b50610924611ffd565b60405161093191906139a5565b60405180910390f35b348015610945575f80fd5b50610960600480360381019061095b91906138f7565b612003565b005b34801561096d575f80fd5b506109766121c5565b60405161098391906139a5565b60405180910390f35b348015610997575f80fd5b506109b260048036038101906109ad9190613afd565b6121cb565b005b6060600380546109c390613c64565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90613c64565b8015610a3a5780601f10610a1157610100808354040283529160200191610a3a565b820191905f5260205f20905b815481529060010190602001808311610a1d57829003601f168201915b5050505050905090565b5f610a57610a506122b9565b84846122c0565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b5f610aca848484612483565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b116122b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8790613d04565b60405180910390fd5b610ba485610b9c6122b9565b8584036122c0565b60019150509392505050565b60115481565b5f6012905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f610c78610be76122b9565b848460015f610bf46122b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c739190613d4f565b6122c0565b6001905092915050565b610c8a6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90613dcc565b60405180910390fd5b670de0b6b3a76400006103e86002610d2e610ab5565b610d389190613dea565b610d429190613e58565b610d4c9190613e58565b811015610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613ef8565b60405180910390fd5b670de0b6b3a764000081610da29190613dea565b6007819055507fbd8a1f50bda6367cd3771d8453c2582c5f01613dd6d8ee271672f4943da806d3600754604051610dd991906139a5565b60405180910390a150565b60105481565b7f000000000000000000000000fdd1655bc315eafb318a0ec6a12b215fae329d6981565b600d5f9054906101000a900460ff1681565b600a5481565b610e2e6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390613dcc565b60405180910390fd5b816010819055508060118190555060146064601054610edb9190613e58565b1115610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613f60565b60405180910390fd5b60146064601154610f2d9190613e58565b1115610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590613f60565b60405180910390fd5b5050565b600d60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd26122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790613dcc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111256122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613dcc565b60405180910390fd5b5f600d5f6101000a81548160ff0219169083151502179055505f600f5f6101000a81548160ff021916908315150217905550606460026111f1610ab5565b6111fb9190613dea565b6112059190613e58565b6009819055506014600a819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b6112496122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90613dcc565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461136c90613c64565b80601f016020809104026020016040519081016040528092919081815260200182805461139890613c64565b80156113e35780601f106113ba576101008083540402835291602001916113e3565b820191905f5260205f20905b8154815290600101906020018083116113c657829003601f168201915b5050505050905090565b6113f56122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613dcc565b60405180910390fd5b7f000000000000000000000000fdd1655bc315eafb318a0ec6a12b215fae329d6973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890613fee565b60405180910390fd5b61151b82826130ca565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f8060015f6115726122b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561162c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116239061407c565b60405180910390fd5b6116406116376122b9565b858584036122c0565b600191505092915050565b5f61165e6116576122b9565b8484612483565b6001905092915050565b6116706122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613dcc565b60405180910390fd5b600d60019054906101000a900460ff161561174e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611745906140e4565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6117ba6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f90613dcc565b60405180910390fd5b5f5b838390508110156118e35781600c5f86868581811061186c5761186b614102565b5b905060200201602081019061188191906138f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806118db9061412f565b91505061184a565b50505050565b6015602052805f5260405f205f915054906101000a900460ff1681565b61190e6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390613dcc565b60405180910390fd5b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a3691906138de565b60405180910390a25050565b611a4a6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613dcc565b60405180910390fd5b670de0b6b3a76400006103e86003611aee610ab5565b611af89190613dea565b611b029190613e58565b611b0c9190613e58565b811015611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b45906141e6565b60405180910390fd5b670de0b6b3a764000081611b629190613dea565b6006819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc600654604051611b9991906139a5565b60405180910390a150565b600f5f9054906101000a900460ff1681565b60075481565b611bc46122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4990613dcc565b60405180910390fd5b620186a06001611c60610ab5565b611c6a9190613dea565b611c749190613e58565b811015611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90614274565b60405180910390fd5b6103e86005611cc3610ab5565b611ccd9190613dea565b611cd79190613e58565b811115611d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1090614302565b60405180910390fd5b8060098190555050565b611d2b6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db090613dcc565b60405180910390fd5b5f611dc330610f85565b1015611e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfb9061436a565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550611e26613172565b5f60085f6101000a81548160ff0219169083151502179055507f7704eca0c9eaa0b85444383d91c148463b321cff28fcb55afee0ca730b3a553342604051611e6e91906139a5565b60405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611f026122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8790613dcc565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611fb5906143b5565b5f6040518083038185875af1925050503d805f8114611fef576040519150601f19603f3d011682016040523d82523d5f602084013e611ff4565b606091505b50508091505050565b60095481565b61200b6122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209090613dcc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90614439565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b6121d36122b9565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225890613dcc565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361232e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612325906144c7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390614555565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161247691906139a5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e8906145e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361255f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255690614671565b60405180910390fd5b5f81116125a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612598906146d9565b60405180910390fd5b600d60019054906101000a900460ff166126905760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612650575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61268f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268690614741565b60405180910390fd5b5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561272e5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612736575f80fd5b600d5f9054906101000a900460ff1615612d3c57612752611335565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127c05750612790611335565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612832575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612885575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156128d8575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d3b57600f5f9054906101000a900460ff1615612a61577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561299957507f000000000000000000000000fdd1655bc315eafb318a0ec6a12b215fae329d6973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612a605743600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a14906147cf565b60405180910390fd5b43600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612afe575060145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ba557600754811115612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f9061485d565b60405180910390fd5b600654612b5483610f85565b82612b5f9190613d4f565b1115612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b97906148c5565b60405180910390fd5b612d3a565b60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c42575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c9157600754811115612c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8390614953565b60405180910390fd5b612d39565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612d3857600654612ceb83610f85565b82612cf69190613d4f565b1115612d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2e906148c5565b60405180910390fd5b5b5b5b5b5b5f612d4630610f85565b90505f6009548210159050808015612d6a5750600d60029054906101000a900460ff165b8015612d82575060085f9054906101000a900460ff16155b8015612dd5575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612e28575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612e7b575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612ebc57600160085f6101000a81548160ff021916908315150217905550612ea2613172565b5f60085f6101000a81548160ff0219169083151502179055505b5f6001905060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612f5c575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612f65575f90505b5f81156130b65760155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612fc357505f601154115b1561300157606460115486612fd89190613dea565b612fe29190613e58565b90508060125f828254612ff59190613d4f565b92505081905550613093565b60155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561305857505f601054115b156130925760646010548661306d9190613dea565b6130779190613e58565b90508060125f82825461308a9190613d4f565b925050819055505b5b5f8111156130a7576130a68730836132b5565b5b80856130b39190614971565b94505b6130c18787876132b5565b50505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506131288282611241565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f61317c30610f85565b90505f60125490505f82148061319157505f81145b1561319d5750506132b3565b600d5f9054906101000a900460ff16156131e057600a546009546131c19190613dea565b8211156131db57600a546009546131d89190613dea565b91505b61320b565b600a546009546131f09190613e58565b82111561320a57600a546009546132079190613e58565b91505b5b5f61321583613514565b5f6012819055505f4711156132af57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613269906143b5565b5f6040518083038185875af1925050503d805f81146132a3576040519150601f19603f3d011682016040523d82523d5f602084013e6132a8565b606091505b5050809150505b5050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331a906145e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338890614671565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340b90614a14565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546134a29190613d4f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161350691906139a5565b60405180910390a350505050565b5f600267ffffffffffffffff8111156135305761352f614a32565b5b60405190808252806020026020018201604052801561355e5781602001602082028036833780820191505090505b50905030815f8151811061357557613574614102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613618573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061363c9190614a73565b816001815181106136505761364f614102565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136b5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846122c0565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613716959493929190614b8e565b5f604051808303815f87803b15801561372d575f80fd5b505af115801561373f573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561377e578082015181840152602081019050613763565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6137a382613747565b6137ad8185613751565b93506137bd818560208601613761565b6137c681613789565b840191505092915050565b5f6020820190508181035f8301526137e98184613799565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613822826137f9565b9050919050565b61383281613818565b811461383c575f80fd5b50565b5f8135905061384d81613829565b92915050565b5f819050919050565b61386581613853565b811461386f575f80fd5b50565b5f813590506138808161385c565b92915050565b5f806040838503121561389c5761389b6137f1565b5b5f6138a98582860161383f565b92505060206138ba85828601613872565b9150509250929050565b5f8115159050919050565b6138d8816138c4565b82525050565b5f6020820190506138f15f8301846138cf565b92915050565b5f6020828403121561390c5761390b6137f1565b5b5f6139198482850161383f565b91505092915050565b5f819050919050565b5f61394561394061393b846137f9565b613922565b6137f9565b9050919050565b5f6139568261392b565b9050919050565b5f6139678261394c565b9050919050565b6139778161395d565b82525050565b5f6020820190506139905f83018461396e565b92915050565b61399f81613853565b82525050565b5f6020820190506139b85f830184613996565b92915050565b5f805f606084860312156139d5576139d46137f1565b5b5f6139e28682870161383f565b93505060206139f38682870161383f565b9250506040613a0486828701613872565b9150509250925092565b5f60ff82169050919050565b613a2381613a0e565b82525050565b5f602082019050613a3c5f830184613a1a565b92915050565b5f60208284031215613a5757613a566137f1565b5b5f613a6484828501613872565b91505092915050565b613a7681613818565b82525050565b5f602082019050613a8f5f830184613a6d565b92915050565b5f8060408385031215613aab57613aaa6137f1565b5b5f613ab885828601613872565b9250506020613ac985828601613872565b9150509250929050565b613adc816138c4565b8114613ae6575f80fd5b50565b5f81359050613af781613ad3565b92915050565b5f8060408385031215613b1357613b126137f1565b5b5f613b208582860161383f565b9250506020613b3185828601613ae9565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613b5c57613b5b613b3b565b5b8235905067ffffffffffffffff811115613b7957613b78613b3f565b5b602083019150836020820283011115613b9557613b94613b43565b5b9250929050565b5f805f60408486031215613bb357613bb26137f1565b5b5f84013567ffffffffffffffff811115613bd057613bcf6137f5565b5b613bdc86828701613b47565b93509350506020613bef86828701613ae9565b9150509250925092565b5f8060408385031215613c0f57613c0e6137f1565b5b5f613c1c8582860161383f565b9250506020613c2d8582860161383f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613c7b57607f821691505b602082108103613c8e57613c8d613c37565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613cee602883613751565b9150613cf982613c94565b604082019050919050565b5f6020820190508181035f830152613d1b81613ce2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d5982613853565b9150613d6483613853565b9250828201905080821115613d7c57613d7b613d22565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613db6602083613751565b9150613dc182613d82565b602082019050919050565b5f6020820190508181035f830152613de381613daa565b9050919050565b5f613df482613853565b9150613dff83613853565b9250828202613e0d81613853565b91508282048414831517613e2457613e23613d22565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e6282613853565b9150613e6d83613853565b925082613e7d57613e7c613e2b565b5b828204905092915050565b7f43616e6e6f7420736574206d61782074786e20616d6f756e74206c6f776572205f8201527f7468616e20302e32250000000000000000000000000000000000000000000000602082015250565b5f613ee2602983613751565b9150613eed82613e88565b604082019050919050565b5f6020820190508181035f830152613f0f81613ed6565b9050919050565b7f4d757374206b656570206665657320617420323025206f72206c6573730000005f82015250565b5f613f4a601d83613751565b9150613f5582613f16565b602082019050919050565b5f6020820190508181035f830152613f7781613f3e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613fd8603983613751565b9150613fe382613f7e565b604082019050919050565b5f6020820190508181035f83015261400581613fcc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614066602583613751565b91506140718261400c565b604082019050919050565b5f6020820190508181035f8301526140938161405a565b9050919050565b7f54726164696e6720616c7265616479206c6976652100000000000000000000005f82015250565b5f6140ce601583613751565b91506140d98261409a565b602082019050919050565b5f6020820190508181035f8301526140fb816140c2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61413982613853565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361416b5761416a613d22565b5b600182019050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b5f6141d0602c83613751565b91506141db82614176565b604082019050919050565b5f6020820190508181035f8301526141fd816141c4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61425e603583613751565b915061426982614204565b604082019050919050565b5f6020820190508181035f83015261428b81614252565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f6142ec603483613751565b91506142f782614292565b604082019050919050565b5f6020820190508181035f830152614319816142e0565b9050919050565b7f4e6f20746f6b656e7320746f20737761700000000000000000000000000000005f82015250565b5f614354601183613751565b915061435f82614320565b602082019050919050565b5f6020820190508181035f83015261438181614348565b9050919050565b5f81905092915050565b50565b5f6143a05f83614388565b91506143ab82614392565b5f82019050919050565b5f6143bf82614395565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614423602683613751565b915061442e826143c9565b604082019050919050565b5f6020820190508181035f83015261445081614417565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6144b1602483613751565b91506144bc82614457565b604082019050919050565b5f6020820190508181035f8301526144de816144a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61453f602283613751565b915061454a826144e5565b604082019050919050565b5f6020820190508181035f83015261456c81614533565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6145cd602583613751565b91506145d882614573565b604082019050919050565b5f6020820190508181035f8301526145fa816145c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61465b602383613751565b915061466682614601565b604082019050919050565b5f6020820190508181035f8301526146888161464f565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f6146c3601d83613751565b91506146ce8261468f565b602082019050919050565b5f6020820190508181035f8301526146f0816146b7565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61472b601683613751565b9150614736826146f7565b602082019050919050565b5f6020820190508181035f8301526147588161471f565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6147b9602483613751565b91506147c48261475f565b604082019050919050565b5f6020820190508181035f8301526147e6816147ad565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61782074786e2e000000000000000000000000000000000000000000000000602082015250565b5f614847602883613751565b9150614852826147ed565b604082019050919050565b5f6020820190508181035f8301526148748161483b565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f6148af601883613751565b91506148ba8261487b565b602082019050919050565b5f6020820190508181035f8301526148dc816148a3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61782074786e2e0000000000000000000000000000000000000000000000602082015250565b5f61493d602983613751565b9150614948826148e3565b604082019050919050565b5f6020820190508181035f83015261496a81614931565b9050919050565b5f61497b82613853565b915061498683613853565b925082820390508181111561499e5761499d613d22565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6149fe602683613751565b9150614a09826149a4565b604082019050919050565b5f6020820190508181035f830152614a2b816149f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050614a6d81613829565b92915050565b5f60208284031215614a8857614a876137f1565b5b5f614a9584828501614a5f565b91505092915050565b5f819050919050565b5f614ac1614abc614ab784614a9e565b613922565b613853565b9050919050565b614ad181614aa7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614b0981613818565b82525050565b5f614b1a8383614b00565b60208301905092915050565b5f602082019050919050565b5f614b3c82614ad7565b614b468185614ae1565b9350614b5183614af1565b805f5b83811015614b81578151614b688882614b0f565b9750614b7383614b26565b925050600181019050614b54565b5085935050505092915050565b5f60a082019050614ba15f830188613996565b614bae6020830187614ac8565b8181036040830152614bc08186614b32565b9050614bcf6060830185613a6d565b614bdc6080830184613996565b969550505050505056fea264697066735822122004180a8c47f3792af94cad04dd19cf39f6559e5e7036075790b2ac4228fb6b0b64736f6c63430008150033

Deployed Bytecode Sourcemap

9600:11101:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4042:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4956:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10376:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10025:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9644:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5133:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10250:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4262:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9940:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5633:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13090:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10222:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9699:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9985:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9881:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14005:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10063:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4479:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8114:150;;;;;;;;;;;;;:::i;:::-;;12806:276;;;;;;;;;;;;;:::i;:::-;;14622:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10281:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7900:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4150:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14776:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5856:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4614:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12573:199;;;;;;;;;;;;;:::i;:::-;;14419:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10449:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15333:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13361:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10174:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9777:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13642:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20277:256;;;;;;;;;;;;;:::i;:::-;;4797:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20541:155;;;;;;;;;;;;;:::i;:::-;;9841:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8272:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9746:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14304:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4042:100;4096:13;4129:5;4122:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4042:100;:::o;4956:169::-;5039:4;5056:39;5065:12;:10;:12::i;:::-;5079:7;5088:6;5056:8;:39::i;:::-;5113:4;5106:11;;4956:169;;;;:::o;10376:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;10025:31::-;;;;;;;;;;;;;:::o;9644:48::-;;;:::o;4363:108::-;4424:7;4451:12;;4444:19;;4363:108;:::o;5133:492::-;5273:4;5290:36;5300:6;5308:9;5319:6;5290:9;:36::i;:::-;5339:24;5366:11;:19;5378:6;5366:19;;;;;;;;;;;;;;;:33;5386:12;:10;:12::i;:::-;5366:33;;;;;;;;;;;;;;;;5339:60;;5438:6;5418:16;:26;;5410:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5525:57;5534:6;5542:12;:10;:12::i;:::-;5575:6;5556:16;:25;5525:8;:57::i;:::-;5613:4;5606:11;;;5133:492;;;;;:::o;10250:22::-;;;;:::o;4262:93::-;4320:5;4345:2;4338:9;;4262:93;:::o;9940:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;5633:215::-;5721:4;5738:80;5747:12;:10;:12::i;:::-;5761:7;5807:10;5770:11;:25;5782:12;:10;:12::i;:::-;5770:25;;;;;;;;;;;;;;;:34;5796:7;5770:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5738:8;:80::i;:::-;5836:4;5829:11;;5633:215;;;;:::o;13090:263::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13206:4:::1;13200;13196:1;13180:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;13179:31;;;;:::i;:::-;13169:6;:41;;13161:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;13292:6;13282;:17;;;;:::i;:::-;13267:12;:32;;;;13315:30;13332:12;;13315:30;;;;;;:::i;:::-;;;;;;;;13090:263:::0;:::o;10222:21::-;;;;:::o;9699:38::-;;;:::o;9985:33::-;;;;;;;;;;;;;:::o;9881:24::-;;;;:::o;14005:290::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14100:7:::1;14091:6;:16;;;;14129:8;14119:7;:18;;;;14175:2;14167:3;14158:6;;:12;;;;:::i;:::-;14157:20;;14149:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14250:2;14242:3;14232:7;;:13;;;;:::i;:::-;14231:21;;14223:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14005:290:::0;;:::o;10063:31::-;;;;;;;;;;;;;:::o;4479:127::-;4553:7;4580:9;:18;4590:7;4580:18;;;;;;;;;;;;;;;;4573:25;;4479:127;;;:::o;8114:150::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8223:1:::1;8186:40;;8207:6;;;;;;;;;;;8186:40;;;;;;;;;;;;8254:1;8237:6;;:19;;;;;;;;;;;;;;;;;;8114:150::o:0;12806:276::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12877:5:::1;12860:14;;:22;;;;;;;;;;;;;;;;;;12916:5;12893:20;;:28;;;;;;;;;;;;;;;;;;12973:3;12969:1;12953:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;12932:18;:44;;;;13020:2;13008:9;:14;;;;13059:15;;;;;;;;;;12806:276::o:0;14622:146::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14755:4:::1;14713:31;:39;14745:6;14713:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;14622:146:::0;;:::o;10281:26::-;;;;:::o;7900:79::-;7938:7;7965:6;;;;;;;;;;;7958:13;;7900:79;:::o;4150:104::-;4206:13;4239:7;4232:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4150:104;:::o;14776:302::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14885:13:::1;14877:21;;:4;:21;;::::0;14869:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14973:41;15002:4;15008:5;14973:28;:41::i;:::-;15064:5;15030:40;;15058:4;15030:40;;;;;;;;;;;;14776:302:::0;;:::o;5856:413::-;5949:4;5966:24;5993:11;:25;6005:12;:10;:12::i;:::-;5993:25;;;;;;;;;;;;;;;:34;6019:7;5993:34;;;;;;;;;;;;;;;;5966:61;;6066:15;6046:16;:35;;6038:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6159:67;6168:12;:10;:12::i;:::-;6182:7;6210:15;6191:16;:34;6159:8;:67::i;:::-;6257:4;6250:11;;;5856:413;;;;:::o;4614:175::-;4700:4;4717:42;4727:12;:10;:12::i;:::-;4741:9;4752:6;4717:9;:42::i;:::-;4777:4;4770:11;;4614:175;;;;:::o;12573:199::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12637:11:::1;;;;;;;;;;;12636:12;12628:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12699:4;12685:11;;:18;;;;;;;;;;;;;;;;;;12728:4;12714:11;;:18;;;;;;;;;;;;;;;;;;12748:16;;;;;;;;;;12573:199::o:0;14419:194::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14514:9:::1;14510:95;14533:7;;:14;;14529:1;:18;14510:95;;;14587:5;14569:3;:15;14573:7;;14581:1;14573:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14569:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14549:3;;;;;:::i;:::-;;;;14510:95;;;;14419:194:::0;;;:::o;10449:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;15333:182::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15449:8:::1;15418:19;:28;15438:7;15418:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15489:7;15473:34;;;15498:8;15473:34;;;;;;:::i;:::-;;;;;;;;15333:182:::0;;:::o;13361:272::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13483:4:::1;13477;13473:1;13457:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;13456:31;;;;:::i;:::-;13446:6;:41;;13438:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;13569:6;13559;:17;;;;:::i;:::-;13547:9;:29;;;;13592:33;13615:9;;13592:33;;;;;;:::i;:::-;;;;;;;;13361:272:::0;:::o;10174:39::-;;;;;;;;;;;;;:::o;9777:27::-;;;;:::o;13642:354::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13767:6:::1;13763:1;13747:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;13734:9;:39;;13726:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;13884:4;13880:1;13864:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;13851:9;:37;;13843:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;13978:9;13957:18;:30;;;;13642:354:::0;:::o;20277:256::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20371:1:::1;20343:24;20361:4;20343:9;:24::i;:::-;:29;;20335:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;20416:4;20405:8;;:15;;;;;;;;;;;;;;;;;;20431:13;:11;:13::i;:::-;20466:5;20455:8;;:16;;;;;;;;;;;;;;;;;;20487:38;20509:15;20487:38;;;;;;:::i;:::-;;;;;;;;20277:256::o:0;4797:151::-;4886:7;4913:11;:18;4925:5;4913:18;;;;;;;;;;;;;;;:27;4932:7;4913:27;;;;;;;;;;;;;;;;4906:34;;4797:151;;;;:::o;20541:155::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20594:12:::1;20638:10;20630:24;;20662:21;20630:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20617:71;;;;;20583:113;20541:155::o:0;9841:33::-;;;;:::o;8272:244::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8381:1:::1;8361:22;;:8;:22;;::::0;8353:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8471:8;8442:38;;8463:6;;;;;;;;;;;8442:38;;;;;;;;;;;;8500:8;8491:6;;:17;;;;;;;;;;;;;;;;;;8272:244:::0;:::o;9746:24::-;;;;:::o;14304:106::-;8037:12;:10;:12::i;:::-;8027:22;;:6;;;;;;;;;;;:22;;;8019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14396:5:::1;14382:3;:11;14386:6;14382:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;14304:106:::0;;:::o;2352:98::-;2405:7;2432:10;2425:17;;2352:98;:::o;7193:380::-;7346:1;7329:19;;:5;:19;;;7321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7427:1;7408:21;;:7;:21;;;7400:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7511:6;7481:11;:18;7493:5;7481:18;;;;;;;;;;;;;;;:27;7500:7;7481:27;;;;;;;;;;;;;;;:36;;;;7549:7;7533:32;;7542:5;7533:32;;;7558:6;7533:32;;;;;;:::i;:::-;;;;;;;;7193:380;;;:::o;15523:3069::-;15639:1;15623:18;;:4;:18;;;15615:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15716:1;15702:16;;:2;:16;;;15694:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15786:1;15777:6;:10;15769:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15838:11;;;;;;;;;;;15834:130;;15873:19;:25;15893:4;15873:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15902:19;:23;15922:2;15902:23;;;;;;;;;;;;;;;;;;;;;;;;;15873:52;15865:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;15834:130;15985:3;:9;15989:4;15985:9;;;;;;;;;;;;;;;;;;;;;;;;;15984:10;:22;;;;;15999:3;:7;16003:2;15999:7;;;;;;;;;;;;;;;;;;;;;;;;;15998:8;15984:22;15976:31;;;;;;16023:14;;;;;;;;;;;16020:1405;;;16065:7;:5;:7::i;:::-;16057:15;;:4;:15;;;;:32;;;;;16082:7;:5;:7::i;:::-;16076:13;;:2;:13;;;;16057:32;:52;;;;;16107:1;16093:16;;:2;:16;;;;16057:52;:77;;;;;16127:6;16113:21;;:2;:21;;;;16057:77;:107;;;;;16139:19;:25;16159:4;16139:25;;;;;;;;;;;;;;;;;;;;;;;;;16138:26;16057:107;:135;;;;;16169:19;:23;16189:2;16169:23;;;;;;;;;;;;;;;;;;;;;;;;;16168:24;16057:135;16053:1361;;;16260:20;;;;;;;;;;;16256:366;;;16322:15;16308:30;;:2;:30;;;;:62;;;;;16356:13;16342:28;;:2;:28;;;;16308:62;16304:299;;;16446:12;16404:28;:39;16433:9;16404:39;;;;;;;;;;;;;;;;:54;16396:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16567:12;16525:28;:39;16554:9;16525:39;;;;;;;;;;;;;;;:54;;;;16304:299;16256:366;16674:25;:31;16700:4;16674:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;16710:31;:35;16742:2;16710:35;;;;;;;;;;;;;;;;;;;;;;;;;16709:36;16674:71;16670:729;;;16792:12;;16782:6;:22;;16774:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16910:9;;16893:13;16903:2;16893:9;:13::i;:::-;16884:6;:22;;;;:::i;:::-;:35;;16876:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16670:729;;;17024:25;:29;17050:2;17024:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;17058:31;:37;17090:4;17058:37;;;;;;;;;;;;;;;;;;;;;;;;;17057:38;17024:71;17020:379;;;17142:12;;17132:6;:22;;17124:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;17020:379;;;17248:31;:35;17280:2;17248:35;;;;;;;;;;;;;;;;;;;;;;;;;17243:156;;17341:9;;17324:13;17334:2;17324:9;:13::i;:::-;17315:6;:22;;;;:::i;:::-;:35;;17307:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;17243:156;17020:379;16670:729;16053:1361;16020:1405;17437:28;17468:24;17486:4;17468:9;:24::i;:::-;17437:55;;17505:12;17544:18;;17520:20;:42;;17505:57;;17578:7;:22;;;;;17589:11;;;;;;;;;;;17578:22;:35;;;;;17605:8;;;;;;;;;;;17604:9;17578:35;:71;;;;;17618:25;:31;17644:4;17618:31;;;;;;;;;;;;;;;;;;;;;;;;;17617:32;17578:71;:101;;;;;17654:19;:25;17674:4;17654:25;;;;;;;;;;;;;;;;;;;;;;;;;17653:26;17578:101;:129;;;;;17684:19;:23;17704:2;17684:23;;;;;;;;;;;;;;;;;;;;;;;;;17683:24;17578:129;17575:239;;;17735:4;17724:8;;:15;;;;;;;;;;;;;;;;;;17756:13;:11;:13::i;:::-;17797:5;17786:8;;:16;;;;;;;;;;;;;;;;;;17575:239;17826:12;17841:4;17826:19;;17861;:25;17881:4;17861:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;17890:19;:23;17910:2;17890:23;;;;;;;;;;;;;;;;;;;;;;;;;17861:52;17858:99;;;17940:5;17930:15;;17858:99;17969:12;18001:7;17998:541;;;18053:25;:29;18079:2;18053:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;18096:1;18086:7;;:11;18053:44;18049:346;;;18143:3;18133:7;;18124:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;18117:29;;18180:4;18165:11;;:19;;;;;;;:::i;:::-;;;;;;;;18049:346;;;18248:25;:31;18274:4;18248:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;18292:1;18283:6;;:10;18248:45;18245:150;;;18338:3;18329:6;;18320;:15;;;;:::i;:::-;:21;;;;:::i;:::-;18313:28;;18375:4;18360:11;;:19;;;;;;;:::i;:::-;;;;;;;;18245:150;18049:346;18421:1;18414:4;:8;18411:89;;;18442:42;18458:4;18472;18479;18442:15;:42::i;:::-;18411:89;18523:4;18513:14;;;;;:::i;:::-;;;17998:541;18551:33;18567:4;18573:2;18577:6;18551:15;:33::i;:::-;15602:2990;;;;15523:3069;;;:::o;15086:239::-;15203:5;15169:25;:31;15195:4;15169:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15221:38;15247:4;15253:5;15221:25;:38::i;:::-;15311:5;15277:40;;15305:4;15277:40;;;;;;;;;;;;15086:239;;:::o;19461:808::-;19503:23;19529:24;19547:4;19529:9;:24::i;:::-;19503:50;;19564:25;19592:11;;19564:39;;19638:1;19619:15;:20;:46;;;;19664:1;19643:17;:22;19619:46;19616:60;;;19668:7;;;;19616:60;19692:14;;;;;;;;;;;19688:337;;;19763:9;;19742:18;;:30;;;;:::i;:::-;19724:15;:48;19720:132;;;19829:9;;19808:18;;:30;;;;:::i;:::-;19790:48;;19720:132;19688:337;;;19925:9;;19904:18;;:30;;;;:::i;:::-;19886:15;:48;19882:132;;;19991:9;;19970:18;;:30;;;;:::i;:::-;19952:48;;19882:132;19688:337;20037:12;20062:33;20079:15;20062:16;:33::i;:::-;20122:1;20108:11;:15;;;;20163:1;20139:21;:25;20136:126;;;20201:9;;;;;;;;;;;20193:23;;20224:21;20193:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20180:70;;;;;20136:126;19492:777;;;19461:808;:::o;6277:614::-;6435:1;6417:20;;:6;:20;;;6409:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6519:1;6498:23;;:9;:23;;;6490:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6574:21;6598:9;:17;6608:6;6598:17;;;;;;;;;;;;;;;;6574:41;;6651:6;6634:13;:23;;6626:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6772:6;6756:13;:22;6736:9;:17;6746:6;6736:17;;;;;;;;;;;;;;;:42;;;;6824:6;6800:9;:20;6810:9;6800:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6865:9;6848:35;;6857:6;6848:35;;;6876:6;6848:35;;;;;;:::i;:::-;;;;;;;;6398:493;6277:614;;;:::o;18600:475::-;18666:21;18704:1;18690:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18666:40;;18735:4;18717;18722:1;18717:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18761:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18751:4;18756:1;18751:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18796:62;18813:4;18828:15;18846:11;18796:8;:62::i;:::-;18871:15;:66;;;18952:11;18978:1;18994:4;19021;19041:15;18871:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18655:420;18600:475;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:149::-;4200:9;4233:37;4264:5;4233:37;:::i;:::-;4220:50;;4127:149;;;:::o;4282:177::-;4392:60;4446:5;4392:60;:::i;:::-;4387:3;4380:73;4282:177;;:::o;4465:268::-;4581:4;4619:2;4608:9;4604:18;4596:26;;4632:94;4723:1;4712:9;4708:17;4699:6;4632:94;:::i;:::-;4465:268;;;;:::o;4739:118::-;4826:24;4844:5;4826:24;:::i;:::-;4821:3;4814:37;4739:118;;:::o;4863:222::-;4956:4;4994:2;4983:9;4979:18;4971:26;;5007:71;5075:1;5064:9;5060:17;5051:6;5007:71;:::i;:::-;4863:222;;;;:::o;5091:619::-;5168:6;5176;5184;5233:2;5221:9;5212:7;5208:23;5204:32;5201:119;;;5239:79;;:::i;:::-;5201:119;5359:1;5384:53;5429:7;5420:6;5409:9;5405:22;5384:53;:::i;:::-;5374:63;;5330:117;5486:2;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5457:118;5614:2;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5585:118;5091:619;;;;;:::o;5716:86::-;5751:7;5791:4;5784:5;5780:16;5769:27;;5716:86;;;:::o;5808:112::-;5891:22;5907:5;5891:22;:::i;:::-;5886:3;5879:35;5808:112;;:::o;5926:214::-;6015:4;6053:2;6042:9;6038:18;6030:26;;6066:67;6130:1;6119:9;6115:17;6106:6;6066:67;:::i;:::-;5926:214;;;;:::o;6146:329::-;6205:6;6254:2;6242:9;6233:7;6229:23;6225:32;6222:119;;;6260:79;;:::i;:::-;6222:119;6380:1;6405:53;6450:7;6441:6;6430:9;6426:22;6405:53;:::i;:::-;6395:63;;6351:117;6146:329;;;;:::o;6481:118::-;6568:24;6586:5;6568:24;:::i;:::-;6563:3;6556:37;6481:118;;:::o;6605:222::-;6698:4;6736:2;6725:9;6721:18;6713:26;;6749:71;6817:1;6806:9;6802:17;6793:6;6749:71;:::i;:::-;6605:222;;;;:::o;6833:474::-;6901:6;6909;6958:2;6946:9;6937:7;6933:23;6929:32;6926:119;;;6964:79;;:::i;:::-;6926:119;7084:1;7109:53;7154:7;7145:6;7134:9;7130:22;7109:53;:::i;:::-;7099:63;;7055:117;7211:2;7237:53;7282:7;7273:6;7262:9;7258:22;7237:53;:::i;:::-;7227:63;;7182:118;6833:474;;;;;:::o;7313:116::-;7383:21;7398:5;7383:21;:::i;:::-;7376:5;7373:32;7363:60;;7419:1;7416;7409:12;7363:60;7313:116;:::o;7435:133::-;7478:5;7516:6;7503:20;7494:29;;7532:30;7556:5;7532:30;:::i;:::-;7435:133;;;;:::o;7574:468::-;7639:6;7647;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7949:2;7975:50;8017:7;8008:6;7997:9;7993:22;7975:50;:::i;:::-;7965:60;;7920:115;7574:468;;;;;:::o;8048:117::-;8157:1;8154;8147:12;8171:117;8280:1;8277;8270:12;8294:117;8403:1;8400;8393:12;8434:568;8507:8;8517:6;8567:3;8560:4;8552:6;8548:17;8544:27;8534:122;;8575:79;;:::i;:::-;8534:122;8688:6;8675:20;8665:30;;8718:18;8710:6;8707:30;8704:117;;;8740:79;;:::i;:::-;8704:117;8854:4;8846:6;8842:17;8830:29;;8908:3;8900:4;8892:6;8888:17;8878:8;8874:32;8871:41;8868:128;;;8915:79;;:::i;:::-;8868:128;8434:568;;;;;:::o;9008:698::-;9100:6;9108;9116;9165:2;9153:9;9144:7;9140:23;9136:32;9133:119;;;9171:79;;:::i;:::-;9133:119;9319:1;9308:9;9304:17;9291:31;9349:18;9341:6;9338:30;9335:117;;;9371:79;;:::i;:::-;9335:117;9484:80;9556:7;9547:6;9536:9;9532:22;9484:80;:::i;:::-;9466:98;;;;9262:312;9613:2;9639:50;9681:7;9672:6;9661:9;9657:22;9639:50;:::i;:::-;9629:60;;9584:115;9008:698;;;;;:::o;9712:474::-;9780:6;9788;9837:2;9825:9;9816:7;9812:23;9808:32;9805:119;;;9843:79;;:::i;:::-;9805:119;9963:1;9988:53;10033:7;10024:6;10013:9;10009:22;9988:53;:::i;:::-;9978:63;;9934:117;10090:2;10116:53;10161:7;10152:6;10141:9;10137:22;10116:53;:::i;:::-;10106:63;;10061:118;9712:474;;;;;:::o;10192:180::-;10240:77;10237:1;10230:88;10337:4;10334:1;10327:15;10361:4;10358:1;10351:15;10378:320;10422:6;10459:1;10453:4;10449:12;10439:22;;10506:1;10500:4;10496:12;10527:18;10517:81;;10583:4;10575:6;10571:17;10561:27;;10517:81;10645:2;10637:6;10634:14;10614:18;10611:38;10608:84;;10664:18;;:::i;:::-;10608:84;10429:269;10378:320;;;:::o;10704:227::-;10844:34;10840:1;10832:6;10828:14;10821:58;10913:10;10908:2;10900:6;10896:15;10889:35;10704:227;:::o;10937:366::-;11079:3;11100:67;11164:2;11159:3;11100:67;:::i;:::-;11093:74;;11176:93;11265:3;11176:93;:::i;:::-;11294:2;11289:3;11285:12;11278:19;;10937:366;;;:::o;11309:419::-;11475:4;11513:2;11502:9;11498:18;11490:26;;11562:9;11556:4;11552:20;11548:1;11537:9;11533:17;11526:47;11590:131;11716:4;11590:131;:::i;:::-;11582:139;;11309:419;;;:::o;11734:180::-;11782:77;11779:1;11772:88;11879:4;11876:1;11869:15;11903:4;11900:1;11893:15;11920:191;11960:3;11979:20;11997:1;11979:20;:::i;:::-;11974:25;;12013:20;12031:1;12013:20;:::i;:::-;12008:25;;12056:1;12053;12049:9;12042:16;;12077:3;12074:1;12071:10;12068:36;;;12084:18;;:::i;:::-;12068:36;11920:191;;;;:::o;12117:182::-;12257:34;12253:1;12245:6;12241:14;12234:58;12117:182;:::o;12305:366::-;12447:3;12468:67;12532:2;12527:3;12468:67;:::i;:::-;12461:74;;12544:93;12633:3;12544:93;:::i;:::-;12662:2;12657:3;12653:12;12646:19;;12305:366;;;:::o;12677:419::-;12843:4;12881:2;12870:9;12866:18;12858:26;;12930:9;12924:4;12920:20;12916:1;12905:9;12901:17;12894:47;12958:131;13084:4;12958:131;:::i;:::-;12950:139;;12677:419;;;:::o;13102:410::-;13142:7;13165:20;13183:1;13165:20;:::i;:::-;13160:25;;13199:20;13217:1;13199:20;:::i;:::-;13194:25;;13254:1;13251;13247:9;13276:30;13294:11;13276:30;:::i;:::-;13265:41;;13455:1;13446:7;13442:15;13439:1;13436:22;13416:1;13409:9;13389:83;13366:139;;13485:18;;:::i;:::-;13366:139;13150:362;13102:410;;;;:::o;13518:180::-;13566:77;13563:1;13556:88;13663:4;13660:1;13653:15;13687:4;13684:1;13677:15;13704:185;13744:1;13761:20;13779:1;13761:20;:::i;:::-;13756:25;;13795:20;13813:1;13795:20;:::i;:::-;13790:25;;13834:1;13824:35;;13839:18;;:::i;:::-;13824:35;13881:1;13878;13874:9;13869:14;;13704:185;;;;:::o;13895:228::-;14035:34;14031:1;14023:6;14019:14;14012:58;14104:11;14099:2;14091:6;14087:15;14080:36;13895:228;:::o;14129:366::-;14271:3;14292:67;14356:2;14351:3;14292:67;:::i;:::-;14285:74;;14368:93;14457:3;14368:93;:::i;:::-;14486:2;14481:3;14477:12;14470:19;;14129:366;;;:::o;14501:419::-;14667:4;14705:2;14694:9;14690:18;14682:26;;14754:9;14748:4;14744:20;14740:1;14729:9;14725:17;14718:47;14782:131;14908:4;14782:131;:::i;:::-;14774:139;;14501:419;;;:::o;14926:179::-;15066:31;15062:1;15054:6;15050:14;15043:55;14926:179;:::o;15111:366::-;15253:3;15274:67;15338:2;15333:3;15274:67;:::i;:::-;15267:74;;15350:93;15439:3;15350:93;:::i;:::-;15468:2;15463:3;15459:12;15452:19;;15111:366;;;:::o;15483:419::-;15649:4;15687:2;15676:9;15672:18;15664:26;;15736:9;15730:4;15726:20;15722:1;15711:9;15707:17;15700:47;15764:131;15890:4;15764:131;:::i;:::-;15756:139;;15483:419;;;:::o;15908:244::-;16048:34;16044:1;16036:6;16032:14;16025:58;16117:27;16112:2;16104:6;16100:15;16093:52;15908:244;:::o;16158:366::-;16300:3;16321:67;16385:2;16380:3;16321:67;:::i;:::-;16314:74;;16397:93;16486:3;16397:93;:::i;:::-;16515:2;16510:3;16506:12;16499:19;;16158:366;;;:::o;16530:419::-;16696:4;16734:2;16723:9;16719:18;16711:26;;16783:9;16777:4;16773:20;16769:1;16758:9;16754:17;16747:47;16811:131;16937:4;16811:131;:::i;:::-;16803:139;;16530:419;;;:::o;16955:224::-;17095:34;17091:1;17083:6;17079:14;17072:58;17164:7;17159:2;17151:6;17147:15;17140:32;16955:224;:::o;17185:366::-;17327:3;17348:67;17412:2;17407:3;17348:67;:::i;:::-;17341:74;;17424:93;17513:3;17424:93;:::i;:::-;17542:2;17537:3;17533:12;17526:19;;17185:366;;;:::o;17557:419::-;17723:4;17761:2;17750:9;17746:18;17738:26;;17810:9;17804:4;17800:20;17796:1;17785:9;17781:17;17774:47;17838:131;17964:4;17838:131;:::i;:::-;17830:139;;17557:419;;;:::o;17982:171::-;18122:23;18118:1;18110:6;18106:14;18099:47;17982:171;:::o;18159:366::-;18301:3;18322:67;18386:2;18381:3;18322:67;:::i;:::-;18315:74;;18398:93;18487:3;18398:93;:::i;:::-;18516:2;18511:3;18507:12;18500:19;;18159:366;;;:::o;18531:419::-;18697:4;18735:2;18724:9;18720:18;18712:26;;18784:9;18778:4;18774:20;18770:1;18759:9;18755:17;18748:47;18812:131;18938:4;18812:131;:::i;:::-;18804:139;;18531:419;;;:::o;18956:180::-;19004:77;19001:1;18994:88;19101:4;19098:1;19091:15;19125:4;19122:1;19115:15;19142:233;19181:3;19204:24;19222:5;19204:24;:::i;:::-;19195:33;;19250:66;19243:5;19240:77;19237:103;;19320:18;;:::i;:::-;19237:103;19367:1;19360:5;19356:13;19349:20;;19142:233;;;:::o;19381:231::-;19521:34;19517:1;19509:6;19505:14;19498:58;19590:14;19585:2;19577:6;19573:15;19566:39;19381:231;:::o;19618:366::-;19760:3;19781:67;19845:2;19840:3;19781:67;:::i;:::-;19774:74;;19857:93;19946:3;19857:93;:::i;:::-;19975:2;19970:3;19966:12;19959:19;;19618:366;;;:::o;19990:419::-;20156:4;20194:2;20183:9;20179:18;20171:26;;20243:9;20237:4;20233:20;20229:1;20218:9;20214:17;20207:47;20271:131;20397:4;20271:131;:::i;:::-;20263:139;;19990:419;;;:::o;20415:240::-;20555:34;20551:1;20543:6;20539:14;20532:58;20624:23;20619:2;20611:6;20607:15;20600:48;20415:240;:::o;20661:366::-;20803:3;20824:67;20888:2;20883:3;20824:67;:::i;:::-;20817:74;;20900:93;20989:3;20900:93;:::i;:::-;21018:2;21013:3;21009:12;21002:19;;20661:366;;;:::o;21033:419::-;21199:4;21237:2;21226:9;21222:18;21214:26;;21286:9;21280:4;21276:20;21272:1;21261:9;21257:17;21250:47;21314:131;21440:4;21314:131;:::i;:::-;21306:139;;21033:419;;;:::o;21458:239::-;21598:34;21594:1;21586:6;21582:14;21575:58;21667:22;21662:2;21654:6;21650:15;21643:47;21458:239;:::o;21703:366::-;21845:3;21866:67;21930:2;21925:3;21866:67;:::i;:::-;21859:74;;21942:93;22031:3;21942:93;:::i;:::-;22060:2;22055:3;22051:12;22044:19;;21703:366;;;:::o;22075:419::-;22241:4;22279:2;22268:9;22264:18;22256:26;;22328:9;22322:4;22318:20;22314:1;22303:9;22299:17;22292:47;22356:131;22482:4;22356:131;:::i;:::-;22348:139;;22075:419;;;:::o;22500:167::-;22640:19;22636:1;22628:6;22624:14;22617:43;22500:167;:::o;22673:366::-;22815:3;22836:67;22900:2;22895:3;22836:67;:::i;:::-;22829:74;;22912:93;23001:3;22912:93;:::i;:::-;23030:2;23025:3;23021:12;23014:19;;22673:366;;;:::o;23045:419::-;23211:4;23249:2;23238:9;23234:18;23226:26;;23298:9;23292:4;23288:20;23284:1;23273:9;23269:17;23262:47;23326:131;23452:4;23326:131;:::i;:::-;23318:139;;23045:419;;;:::o;23470:147::-;23571:11;23608:3;23593:18;;23470:147;;;;:::o;23623:114::-;;:::o;23743:398::-;23902:3;23923:83;24004:1;23999:3;23923:83;:::i;:::-;23916:90;;24015:93;24104:3;24015:93;:::i;:::-;24133:1;24128:3;24124:11;24117:18;;23743:398;;;:::o;24147:379::-;24331:3;24353:147;24496:3;24353:147;:::i;:::-;24346:154;;24517:3;24510:10;;24147:379;;;:::o;24532:225::-;24672:34;24668:1;24660:6;24656:14;24649:58;24741:8;24736:2;24728:6;24724:15;24717:33;24532:225;:::o;24763:366::-;24905:3;24926:67;24990:2;24985:3;24926:67;:::i;:::-;24919:74;;25002:93;25091:3;25002:93;:::i;:::-;25120:2;25115:3;25111:12;25104:19;;24763:366;;;:::o;25135:419::-;25301:4;25339:2;25328:9;25324:18;25316:26;;25388:9;25382:4;25378:20;25374:1;25363:9;25359:17;25352:47;25416:131;25542:4;25416:131;:::i;:::-;25408:139;;25135:419;;;:::o;25560:223::-;25700:34;25696:1;25688:6;25684:14;25677:58;25769:6;25764:2;25756:6;25752:15;25745:31;25560:223;:::o;25789:366::-;25931:3;25952:67;26016:2;26011:3;25952:67;:::i;:::-;25945:74;;26028:93;26117:3;26028:93;:::i;:::-;26146:2;26141:3;26137:12;26130:19;;25789:366;;;:::o;26161:419::-;26327:4;26365:2;26354:9;26350:18;26342:26;;26414:9;26408:4;26404:20;26400:1;26389:9;26385:17;26378:47;26442:131;26568:4;26442:131;:::i;:::-;26434:139;;26161:419;;;:::o;26586:221::-;26726:34;26722:1;26714:6;26710:14;26703:58;26795:4;26790:2;26782:6;26778:15;26771:29;26586:221;:::o;26813:366::-;26955:3;26976:67;27040:2;27035:3;26976:67;:::i;:::-;26969:74;;27052:93;27141:3;27052:93;:::i;:::-;27170:2;27165:3;27161:12;27154:19;;26813:366;;;:::o;27185:419::-;27351:4;27389:2;27378:9;27374:18;27366:26;;27438:9;27432:4;27428:20;27424:1;27413:9;27409:17;27402:47;27466:131;27592:4;27466:131;:::i;:::-;27458:139;;27185:419;;;:::o;27610:224::-;27750:34;27746:1;27738:6;27734:14;27727:58;27819:7;27814:2;27806:6;27802:15;27795:32;27610:224;:::o;27840:366::-;27982:3;28003:67;28067:2;28062:3;28003:67;:::i;:::-;27996:74;;28079:93;28168:3;28079:93;:::i;:::-;28197:2;28192:3;28188:12;28181:19;;27840:366;;;:::o;28212:419::-;28378:4;28416:2;28405:9;28401:18;28393:26;;28465:9;28459:4;28455:20;28451:1;28440:9;28436:17;28429:47;28493:131;28619:4;28493:131;:::i;:::-;28485:139;;28212:419;;;:::o;28637:222::-;28777:34;28773:1;28765:6;28761:14;28754:58;28846:5;28841:2;28833:6;28829:15;28822:30;28637:222;:::o;28865:366::-;29007:3;29028:67;29092:2;29087:3;29028:67;:::i;:::-;29021:74;;29104:93;29193:3;29104:93;:::i;:::-;29222:2;29217:3;29213:12;29206:19;;28865:366;;;:::o;29237:419::-;29403:4;29441:2;29430:9;29426:18;29418:26;;29490:9;29484:4;29480:20;29476:1;29465:9;29461:17;29454:47;29518:131;29644:4;29518:131;:::i;:::-;29510:139;;29237:419;;;:::o;29662:179::-;29802:31;29798:1;29790:6;29786:14;29779:55;29662:179;:::o;29847:366::-;29989:3;30010:67;30074:2;30069:3;30010:67;:::i;:::-;30003:74;;30086:93;30175:3;30086:93;:::i;:::-;30204:2;30199:3;30195:12;30188:19;;29847:366;;;:::o;30219:419::-;30385:4;30423:2;30412:9;30408:18;30400:26;;30472:9;30466:4;30462:20;30458:1;30447:9;30443:17;30436:47;30500:131;30626:4;30500:131;:::i;:::-;30492:139;;30219:419;;;:::o;30644:172::-;30784:24;30780:1;30772:6;30768:14;30761:48;30644:172;:::o;30822:366::-;30964:3;30985:67;31049:2;31044:3;30985:67;:::i;:::-;30978:74;;31061:93;31150:3;31061:93;:::i;:::-;31179:2;31174:3;31170:12;31163:19;;30822:366;;;:::o;31194:419::-;31360:4;31398:2;31387:9;31383:18;31375:26;;31447:9;31441:4;31437:20;31433:1;31422:9;31418:17;31411:47;31475:131;31601:4;31475:131;:::i;:::-;31467:139;;31194:419;;;:::o;31619:223::-;31759:34;31755:1;31747:6;31743:14;31736:58;31828:6;31823:2;31815:6;31811:15;31804:31;31619:223;:::o;31848:366::-;31990:3;32011:67;32075:2;32070:3;32011:67;:::i;:::-;32004:74;;32087:93;32176:3;32087:93;:::i;:::-;32205:2;32200:3;32196:12;32189:19;;31848:366;;;:::o;32220:419::-;32386:4;32424:2;32413:9;32409:18;32401:26;;32473:9;32467:4;32463:20;32459:1;32448:9;32444:17;32437:47;32501:131;32627:4;32501:131;:::i;:::-;32493:139;;32220:419;;;:::o;32645:227::-;32785:34;32781:1;32773:6;32769:14;32762:58;32854:10;32849:2;32841:6;32837:15;32830:35;32645:227;:::o;32878:366::-;33020:3;33041:67;33105:2;33100:3;33041:67;:::i;:::-;33034:74;;33117:93;33206:3;33117:93;:::i;:::-;33235:2;33230:3;33226:12;33219:19;;32878:366;;;:::o;33250:419::-;33416:4;33454:2;33443:9;33439:18;33431:26;;33503:9;33497:4;33493:20;33489:1;33478:9;33474:17;33467:47;33531:131;33657:4;33531:131;:::i;:::-;33523:139;;33250:419;;;:::o;33675:174::-;33815:26;33811:1;33803:6;33799:14;33792:50;33675:174;:::o;33855:366::-;33997:3;34018:67;34082:2;34077:3;34018:67;:::i;:::-;34011:74;;34094:93;34183:3;34094:93;:::i;:::-;34212:2;34207:3;34203:12;34196:19;;33855:366;;;:::o;34227:419::-;34393:4;34431:2;34420:9;34416:18;34408:26;;34480:9;34474:4;34470:20;34466:1;34455:9;34451:17;34444:47;34508:131;34634:4;34508:131;:::i;:::-;34500:139;;34227:419;;;:::o;34652:228::-;34792:34;34788:1;34780:6;34776:14;34769:58;34861:11;34856:2;34848:6;34844:15;34837:36;34652:228;:::o;34886:366::-;35028:3;35049:67;35113:2;35108:3;35049:67;:::i;:::-;35042:74;;35125:93;35214:3;35125:93;:::i;:::-;35243:2;35238:3;35234:12;35227:19;;34886:366;;;:::o;35258:419::-;35424:4;35462:2;35451:9;35447:18;35439:26;;35511:9;35505:4;35501:20;35497:1;35486:9;35482:17;35475:47;35539:131;35665:4;35539:131;:::i;:::-;35531:139;;35258:419;;;:::o;35683:194::-;35723:4;35743:20;35761:1;35743:20;:::i;:::-;35738:25;;35777:20;35795:1;35777:20;:::i;:::-;35772:25;;35821:1;35818;35814:9;35806:17;;35845:1;35839:4;35836:11;35833:37;;;35850:18;;:::i;:::-;35833:37;35683:194;;;;:::o;35883:225::-;36023:34;36019:1;36011:6;36007:14;36000:58;36092:8;36087:2;36079:6;36075:15;36068:33;35883:225;:::o;36114:366::-;36256:3;36277:67;36341:2;36336:3;36277:67;:::i;:::-;36270:74;;36353:93;36442:3;36353:93;:::i;:::-;36471:2;36466:3;36462:12;36455:19;;36114:366;;;:::o;36486:419::-;36652:4;36690:2;36679:9;36675:18;36667:26;;36739:9;36733:4;36729:20;36725:1;36714:9;36710:17;36703:47;36767:131;36893:4;36767:131;:::i;:::-;36759:139;;36486:419;;;:::o;36911:180::-;36959:77;36956:1;36949:88;37056:4;37053:1;37046:15;37080:4;37077:1;37070:15;37097:143;37154:5;37185:6;37179:13;37170:22;;37201:33;37228:5;37201:33;:::i;:::-;37097:143;;;;:::o;37246:351::-;37316:6;37365:2;37353:9;37344:7;37340:23;37336:32;37333:119;;;37371:79;;:::i;:::-;37333:119;37491:1;37516:64;37572:7;37563:6;37552:9;37548:22;37516:64;:::i;:::-;37506:74;;37462:128;37246:351;;;;:::o;37603:85::-;37648:7;37677:5;37666:16;;37603:85;;;:::o;37694:158::-;37752:9;37785:61;37803:42;37812:32;37838:5;37812:32;:::i;:::-;37803:42;:::i;:::-;37785:61;:::i;:::-;37772:74;;37694:158;;;:::o;37858:147::-;37953:45;37992:5;37953:45;:::i;:::-;37948:3;37941:58;37858:147;;:::o;38011:114::-;38078:6;38112:5;38106:12;38096:22;;38011:114;;;:::o;38131:184::-;38230:11;38264:6;38259:3;38252:19;38304:4;38299:3;38295:14;38280:29;;38131:184;;;;:::o;38321:132::-;38388:4;38411:3;38403:11;;38441:4;38436:3;38432:14;38424:22;;38321:132;;;:::o;38459:108::-;38536:24;38554:5;38536:24;:::i;:::-;38531:3;38524:37;38459:108;;:::o;38573:179::-;38642:10;38663:46;38705:3;38697:6;38663:46;:::i;:::-;38741:4;38736:3;38732:14;38718:28;;38573:179;;;;:::o;38758:113::-;38828:4;38860;38855:3;38851:14;38843:22;;38758:113;;;:::o;38907:732::-;39026:3;39055:54;39103:5;39055:54;:::i;:::-;39125:86;39204:6;39199:3;39125:86;:::i;:::-;39118:93;;39235:56;39285:5;39235:56;:::i;:::-;39314:7;39345:1;39330:284;39355:6;39352:1;39349:13;39330:284;;;39431:6;39425:13;39458:63;39517:3;39502:13;39458:63;:::i;:::-;39451:70;;39544:60;39597:6;39544:60;:::i;:::-;39534:70;;39390:224;39377:1;39374;39370:9;39365:14;;39330:284;;;39334:14;39630:3;39623:10;;39031:608;;;38907:732;;;;:::o;39645:831::-;39908:4;39946:3;39935:9;39931:19;39923:27;;39960:71;40028:1;40017:9;40013:17;40004:6;39960:71;:::i;:::-;40041:80;40117:2;40106:9;40102:18;40093:6;40041:80;:::i;:::-;40168:9;40162:4;40158:20;40153:2;40142:9;40138:18;40131:48;40196:108;40299:4;40290:6;40196:108;:::i;:::-;40188:116;;40314:72;40382:2;40371:9;40367:18;40358:6;40314:72;:::i;:::-;40396:73;40464:3;40453:9;40449:19;40440:6;40396:73;:::i;:::-;39645:831;;;;;;;;:::o

Swarm Source

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