ETH Price: $2,445.24 (+3.85%)

Token

Camma (CAMMA)
 

Overview

Max Total Supply

10,000,000 CAMMA

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
900 CAMMA

Value
$0.00
0x2130440e020ab42cbf40deac8a502985a5799f1e
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:
CAMMA

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-24
*/

pragma solidity 0.8.12;
/*
 /\_/\  
( o.o ) 
 > ^ <

Website: https://cammaincubator.com/
Telegram: https://t.me/CammaPortal
X/Twitter: https://x.com/CammaIncubator
*/


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

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

contract CAMMA is ERC20, Ownable {

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

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address public TreasuryAddress;

    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 public deadBlocks = 1;

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

    uint256 public buyFee;
    uint256 public sellFee;

    uint256 public tokensForTreasury;


    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

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

    event EnabledTrading(bool tradingActive, uint256 deadBlocks);
    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedTreasuryAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

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

    event TransferForeignToken(address token, uint256 amount);


    constructor() ERC20("Camma", "CAMMA") {

        address newOwner = msg.sender; 
        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

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

        uint256 totalSupply = 10000000 * 1e18;

        maxBuyAmount = totalSupply *  30 / 1000;
        maxSellAmount = totalSupply *  30 / 1000;
        maxWalletAmount = totalSupply * 30 / 1000;
        swapTokensAtAmount = totalSupply * 500 / 100000; 

        buyFee = 5;
        sellFee = 5;

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

        TreasuryAddress = address(0x60Ead648c0ba421d63e027ac5c4102F5e8D1C605);

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

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

    receive() external payable {}

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

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

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

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

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

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

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

    // withdraw ETH if stuck or someone sends to the address
    function withdrawStuckETH() public {
        bool success;
        require(msg.sender==TreasuryAddress,"only TreasuryAddress can withdraw");
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function updateBuyFee(uint256 _fee) external onlyOwner {
        buyFee = _fee;
        require(buyFee <= 30, "Fees must be 30%  or less");
    }

    function updateSellFee(uint256 _fee) external onlyOwner {
        sellFee = _fee;
        require(sellFee <= 30, "Fees must be 30%  or less");
    }

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

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

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


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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        uint256 penaltyAmount = 0;

        // only take fees on Trades, not on wallet transfers
        if(takeFee && tradingActiveBlock>0 && (block.number>tradingActiveBlock)) {          
            // on sell
            if (automatedMarketMakerPairs[to] && sellFee > 0) {
                fees = amount * sellFee / 100;
                tokensForTreasury += fees;
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyFee > 0) {
                fees = amount * buyFee / 100;
                tokensForTreasury += fees;
            }
            
            if(fees > 0){
                super._transfer(from, address(this), fees);
            }

            amount -= fees + penaltyAmount;
        }

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

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

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

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

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

    function setTreasuryAddress(address _TreasuryAddress) external onlyOwner {
        require(_TreasuryAddress != address(0), "_TreasuryAddress address cannot be 0");
        TreasuryAddress = payable(_TreasuryAddress);
        emit UpdatedTreasuryAddress(_TreasuryAddress);
    }
   
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForTreasury;

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

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

        bool success;

        swapTokensForEth(contractBalance);
        tokensForTreasury = 0;

        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
            (success,) = address(TreasuryAddress).call{value: address(this).balance}("");
        }
    }
    
    function manualSwap() external {
        require(_msgSender()==TreasuryAddress);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
            swapping = true;
            swapBack();
            swapping = false;
        }
    }

    // once enabled, can never be turned off
    function enableTrading(bool _status, uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "Cannot re enable trading");
        tradingActive = _status;
        swapEnabled = true;
        emit EnabledTrading(tradingActive, _deadBlocks);

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingActive","type":"bool"},{"indexed":false,"internalType":"uint256","name":"deadBlocks","type":"uint256"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedTreasuryAddress","type":"event"},{"inputs":[],"name":"TreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","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":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"_TreasuryAddress","type":"address"}],"name":"setTreasuryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600c556001600d556001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055503480156200006c57600080fd5b506040518060400160405280600581526020017f43616d6d610000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f43414d4d410000000000000000000000000000000000000000000000000000008152508160039080519060200190620000f192919062000b72565b5080600490805190602001906200010a92919062000b72565b50505060006200011f620005ae60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001ef816001620005b660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000295919062000c8c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000323919062000c8c565b6040518363ffffffff1660e01b81526004016200034292919062000ccf565b6020604051808303816000875af115801562000362573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000388919062000c8c565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003d060a05160016200064c60201b60201c565b60006a084595161401484a00000090506103e8601e82620003f2919062000d35565b620003fe919062000dc5565b6006819055506103e8601e8262000416919062000d35565b62000422919062000dc5565b6007819055506103e8601e826200043a919062000d35565b62000446919062000dc5565b600881905550620186a06101f48262000460919062000d35565b6200046c919062000dc5565b600a819055506005600f81905550600560108190555062000495836001620005b660201b60201c565b620004a8306001620005b660201b60201c565b620004bd61dead6001620005b660201b60201c565b7360ead648c0ba421d63e027ac5c4102f5e8d1c605600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000525836001620006ff60201b60201c565b62000538306001620006ff60201b60201c565b6200054d61dead6001620006ff60201b60201c565b62000582600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006ff60201b60201c565b6200059483826200084c60201b60201c565b620005a5836200099d60201b60201c565b505050620010e1565b600033905090565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200064092919062000e1a565b60405180910390a15050565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006b58282620005b660201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6200070f620005ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007989062000ea8565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000840919062000eca565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b69062000f37565b60405180910390fd5b8060026000828254620008d3919062000f59565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200092a919062000f59565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000991919062000fc7565b60405180910390a35050565b620009ad620005ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a369062000ea8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000ab2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa9906200105a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000b8090620010ab565b90600052602060002090601f01602090048101928262000ba4576000855562000bf0565b82601f1062000bbf57805160ff191683800117855562000bf0565b8280016001018555821562000bf0579182015b8281111562000bef57825182559160200191906001019062000bd2565b5b50905062000bff919062000c03565b5090565b5b8082111562000c1e57600081600090555060010162000c04565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c548262000c27565b9050919050565b62000c668162000c47565b811462000c7257600080fd5b50565b60008151905062000c868162000c5b565b92915050565b60006020828403121562000ca55762000ca462000c22565b5b600062000cb58482850162000c75565b91505092915050565b62000cc98162000c47565b82525050565b600060408201905062000ce6600083018562000cbe565b62000cf5602083018462000cbe565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d428262000cfc565b915062000d4f8362000cfc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d8b5762000d8a62000d06565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dd28262000cfc565b915062000ddf8362000cfc565b92508262000df25762000df162000d96565b5b828204905092915050565b60008115159050919050565b62000e148162000dfd565b82525050565b600060408201905062000e31600083018562000cbe565b62000e40602083018462000e09565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000e9060208362000e47565b915062000e9d8262000e58565b602082019050919050565b6000602082019050818103600083015262000ec38162000e81565b9050919050565b600060208201905062000ee1600083018462000e09565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f1f601f8362000e47565b915062000f2c8262000ee7565b602082019050919050565b6000602082019050818103600083015262000f528162000f10565b9050919050565b600062000f668262000cfc565b915062000f738362000cfc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000fab5762000faa62000d06565b5b828201905092915050565b62000fc18162000cfc565b82525050565b600060208201905062000fde600083018462000fb6565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200104260268362000e47565b91506200104f8262000fe4565b604082019050919050565b60006020820190508181036000830152620010758162001033565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010c457607f821691505b60208210811415620010db57620010da6200107c565b5b50919050565b60805160a05161512b6200112a6000396000818161107d015281816117f00152611c73015260008181610b65015281816137ab0152818161388c01526138b3015261512b6000f3fe6080604052600436106102815760003560e01c8063751039fc1161014f578063bbc0c742116100c1578063dd62ed3e1161007a578063dd62ed3e14610995578063e2f45605146109d2578063ee40166e146109fd578063f2fde38b14610a28578063f5648a4f14610a51578063fabb0b4f14610a6857610288565b8063bbc0c7421461089b578063c0246668146108c6578063c18bc195146108ef578063cc274b2914610918578063cc2ffe7c14610941578063dc3f0d0f1461096c57610288565b806395d89b411161011357806395d89b41146107655780639a7a23d614610790578063a457c2d7146107b9578063a9059cbb146107f6578063aa4bde2814610833578063b62496f51461085e57610288565b8063751039fc146106925780637571336a146106a95780638366e79a146106d257806388e765ff1461070f5780638da5cb5b1461073a57610288565b8063467abe0a116101f35780635e83ae76116101ac5780635e83ae76146105965780636605bfda146105bf57806366d602ae146105e85780636ddd17131461061357806370a082311461063e578063715018a61461067b57610288565b8063467abe0a146104aa57806347062402146104d357806349bd5a5e146104fe5780634a62bb651461052957806351bc3c85146105545780635b5c251f1461056b57610288565b80631d933a4a116102455780631d933a4a1461038857806323b872dd146103b15780632b14ca56146103ee5780632be32b6114610419578063313ce56714610442578063395093511461046d57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610a93565b6040516102af9190613a76565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190613b31565b610b25565b6040516102ec9190613b8c565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613ba7565b610b43565b6040516103299190613b8c565b60405180910390f35b34801561033e57600080fd5b50610347610b63565b6040516103549190613c33565b60405180910390f35b34801561036957600080fd5b50610372610b87565b60405161037f9190613c5d565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613c78565b610b91565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613ca5565b610c78565b6040516103e59190613b8c565b60405180910390f35b3480156103fa57600080fd5b50610403610d70565b6040516104109190613c5d565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b9190613c78565b610d76565b005b34801561044e57600080fd5b50610457610ed9565b6040516104649190613d14565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190613b31565b610ee2565b6040516104a19190613b8c565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190613c78565b610f8e565b005b3480156104df57600080fd5b506104e8611075565b6040516104f59190613c5d565b60405180910390f35b34801561050a57600080fd5b5061051361107b565b6040516105209190613d3e565b60405180910390f35b34801561053557600080fd5b5061053e61109f565b60405161054b9190613b8c565b60405180910390f35b34801561056057600080fd5b506105696110b2565b005b34801561057757600080fd5b5061058061116b565b60405161058d9190613d3e565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613d85565b611191565b005b3480156105cb57600080fd5b506105e660048036038101906105e19190613ba7565b61132b565b005b3480156105f457600080fd5b506105fd6114b9565b60405161060a9190613c5d565b60405180910390f35b34801561061f57600080fd5b506106286114bf565b6040516106359190613b8c565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190613ba7565b6114d2565b6040516106729190613c5d565b60405180910390f35b34801561068757600080fd5b5061069061151a565b005b34801561069e57600080fd5b506106a7611672565b005b3480156106b557600080fd5b506106d060048036038101906106cb9190613dc5565b611752565b005b3480156106de57600080fd5b506106f960048036038101906106f49190613e05565b6118d9565b6040516107069190613b8c565b60405180910390f35b34801561071b57600080fd5b50610724611b18565b6040516107319190613c5d565b60405180910390f35b34801561074657600080fd5b5061074f611b1e565b60405161075c9190613d3e565b60405180910390f35b34801561077157600080fd5b5061077a611b48565b6040516107879190613a76565b60405180910390f35b34801561079c57600080fd5b506107b760048036038101906107b29190613dc5565b611bda565b005b3480156107c557600080fd5b506107e060048036038101906107db9190613b31565b611d0e565b6040516107ed9190613b8c565b60405180910390f35b34801561080257600080fd5b5061081d60048036038101906108189190613b31565b611df9565b60405161082a9190613b8c565b60405180910390f35b34801561083f57600080fd5b50610848611e17565b6040516108559190613c5d565b60405180910390f35b34801561086a57600080fd5b5061088560048036038101906108809190613ba7565b611e1d565b6040516108929190613b8c565b60405180910390f35b3480156108a757600080fd5b506108b0611e3d565b6040516108bd9190613b8c565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e89190613dc5565b611e50565b005b3480156108fb57600080fd5b5061091660048036038101906109119190613c78565b611f90565b005b34801561092457600080fd5b5061093f600480360381019061093a9190613c78565b6120f3565b005b34801561094d57600080fd5b506109566121a0565b6040516109639190613c5d565b60405180910390f35b34801561097857600080fd5b50610993600480360381019061098e9190613c78565b6121a6565b005b3480156109a157600080fd5b506109bc60048036038101906109b79190613e05565b612309565b6040516109c99190613c5d565b60405180910390f35b3480156109de57600080fd5b506109e7612390565b6040516109f49190613c5d565b60405180910390f35b348015610a0957600080fd5b50610a12612396565b604051610a1f9190613c5d565b60405180910390f35b348015610a3457600080fd5b50610a4f6004803603810190610a4a9190613ba7565b61239c565b005b348015610a5d57600080fd5b50610a66612563565b005b348015610a7457600080fd5b50610a7d612664565b604051610a8a9190613c5d565b60405180910390f35b606060038054610aa290613e74565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace90613e74565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b5050505050905090565b6000610b39610b3261266a565b8484612672565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610b9961266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90613ef2565b60405180910390fd5b80601081905550601e6010541115610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90613f5e565b60405180910390fd5b50565b6000610c8584848461283d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cd061266a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613ff0565b60405180910390fd5b610d6485610d5c61266a565b858403612672565b60019150509392505050565b60105481565b610d7e61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490613ef2565b60405180910390fd5b670de0b6b3a76400006103e86001610e23610b87565b610e2d919061403f565b610e3791906140c8565b610e4191906140c8565b811015610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a9061416b565b60405180910390fd5b670de0b6b3a764000081610e97919061403f565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610ece9190613c5d565b60405180910390a150565b60006012905090565b6000610f84610eef61266a565b848460016000610efd61266a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f7f919061418b565b612672565b6001905092915050565b610f9661266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90613ef2565b60405180910390fd5b80600f81905550601e600f541115611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990613f5e565b60405180910390fd5b50565b600f5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f361266a565b73ffffffffffffffffffffffffffffffffffffffff161461111357600080fd5b600061111e306114d2565b90506000811115611168576001600960006101000a81548160ff02191690831515021790555061114c6132e8565b6000600960006101000a81548160ff0219169083151502179055505b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61119961266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f90613ef2565b60405180910390fd5b600e60019054906101000a900460ff1615611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f9061422d565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055507fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea8138812600e60019054906101000a900460ff16826040516112ed92919061424d565b60405180910390a1600e60019054906101000a900460ff16801561131357506000600c54145b156113275743600c8190555080600d819055505b5050565b61133361266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990613ef2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611429906142e8565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b60075481565b600e60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61152261266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890613ef2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61167a61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170090613ef2565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b61175a61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e090613ef2565b60405180910390fd5b8061187e577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118749061437a565b60405180910390fd5b5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561194a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611941906143e6565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190614478565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a159190613d3e565b602060405180830381865afa158015611a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5691906144ad565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611a939291906144da565b6020604051808303816000875af1158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190614518565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051611b099291906144da565b60405180910390a15092915050565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611b5790613e74565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8390613e74565b8015611bd05780601f10611ba557610100808354040283529160200191611bd0565b820191906000526020600020905b815481529060010190602001808311611bb357829003601f168201915b5050505050905090565b611be261266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613ef2565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf7906145b7565b60405180910390fd5b611d0a82826133f6565b5050565b60008060016000611d1d61266a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190614649565b60405180910390fd5b611dee611de561266a565b85858403612672565b600191505092915050565b6000611e0d611e0661266a565b848461283d565b6001905092915050565b60085481565b60146020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b611e5861266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede90613ef2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f849190613b8c565b60405180910390a25050565b611f9861266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e90613ef2565b60405180910390fd5b670de0b6b3a76400006103e8600361203d610b87565b612047919061403f565b61205191906140c8565b61205b91906140c8565b81101561209d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612094906146db565b60405180910390fd5b670de0b6b3a7640000816120b1919061403f565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516120e89190613c5d565b60405180910390a150565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061476d565b60405180910390fd5b670de0b6b3a764000081612197919061403f565b600a8190555050565b60115481565b6121ae61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490613ef2565b60405180910390fd5b670de0b6b3a76400006103e86001612253610b87565b61225d919061403f565b61226791906140c8565b61227191906140c8565b8110156122b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122aa906147ff565b60405180910390fd5b670de0b6b3a7640000816122c7919061403f565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e6007546040516122fe9190613c5d565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b6123a461266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242a90613ef2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90614891565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec90614478565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1647604051612619906148e2565b60006040518083038185875af1925050503d8060008114612656576040519150601f19603f3d011682016040523d82523d6000602084013e61265b565b606091505b50508091505050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d990614969565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612752576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612749906149fb565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128309190613c5d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a490614a8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561291d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291490614b1f565b60405180910390fd5b60008111612960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295790614b8b565b60405180910390fd5b600e60009054906101000a900460ff1615612f0f5761297d611b1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129eb57506129bb611b1e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a245750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a5e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f0e57600e60019054906101000a900460ff16612bcd57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b185750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4e90614bf7565b60405180910390fd5b612b5f611b1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc390614c63565b60405180910390fd5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c705750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d1757600654811115612cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb190614cf5565b60405180910390fd5b600854612cc6836114d2565b82612cd1919061418b565b1115612d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0990614d61565b60405180910390fd5b612f0d565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612dba5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e0957600754811115612e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfb90614df3565b60405180910390fd5b612f0c565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ead5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f0b57600854612ebe836114d2565b82612ec9919061418b565b1115612f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0190614d61565b60405180910390fd5b5b5b5b5b5b6000612f1a306114d2565b90506000600a548210159050808015612f3f5750600e60029054906101000a900460ff165b8015612f585750600960009054906101000a900460ff16155b8015612fae5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156130045750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561305a5750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561309e576001600960006101000a81548160ff0219169083151502179055506130826132e8565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131455750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561314f57600090505b60008082801561316157506000600c54115b801561316e5750600c5443115b156132d357601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156131ce57506000601054115b1561320d576064601054876131e3919061403f565b6131ed91906140c8565b91508160116000828254613201919061418b565b925050819055506132a4565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561326857506000600f54115b156132a3576064600f548761327d919061403f565b61328791906140c8565b9150816011600082825461329b919061418b565b925050819055505b5b60008211156132b9576132b88830846134a1565b5b80826132c5919061418b565b866132d09190614e13565b95505b6132de8888886134a1565b5050505050505050565b60006132f3306114d2565b905060006011549050600082148061330b5750600081145b156133175750506133f4565b6005600a54613326919061403f565b82111561333f576005600a5461333c919061403f565b91505b600061334a8361370c565b6000601181905550600047905060008111156133ef57600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516133a6906148e2565b60006040518083038185875af1925050503d80600081146133e3576040519150601f19603f3d011682016040523d82523d6000602084013e6133e8565b606091505b5050809250505b505050505b565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506134578282613949565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350890614a8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357890614b1f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135fe90614eb9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461369a919061418b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136fe9190613c5d565b60405180910390a350505050565b6000600267ffffffffffffffff81111561372957613728614ed9565b5b6040519080825280602002602001820160405280156137575781602001602082028036833780820191505090505b509050308160008151811061376f5761376e614f08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138389190614f4c565b8160018151811061384c5761384b614f08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138b1307f000000000000000000000000000000000000000000000000000000000000000084612672565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613913959493929190615072565b600060405180830381600087803b15801561392d57600080fd5b505af1158015613941573d6000803e3d6000fd5b505050505050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516139d19291906150cc565b60405180910390a15050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a175780820151818401526020810190506139fc565b83811115613a26576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a48826139dd565b613a5281856139e8565b9350613a628185602086016139f9565b613a6b81613a2c565b840191505092915050565b60006020820190508181036000830152613a908184613a3d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ac882613a9d565b9050919050565b613ad881613abd565b8114613ae357600080fd5b50565b600081359050613af581613acf565b92915050565b6000819050919050565b613b0e81613afb565b8114613b1957600080fd5b50565b600081359050613b2b81613b05565b92915050565b60008060408385031215613b4857613b47613a98565b5b6000613b5685828601613ae6565b9250506020613b6785828601613b1c565b9150509250929050565b60008115159050919050565b613b8681613b71565b82525050565b6000602082019050613ba16000830184613b7d565b92915050565b600060208284031215613bbd57613bbc613a98565b5b6000613bcb84828501613ae6565b91505092915050565b6000819050919050565b6000613bf9613bf4613bef84613a9d565b613bd4565b613a9d565b9050919050565b6000613c0b82613bde565b9050919050565b6000613c1d82613c00565b9050919050565b613c2d81613c12565b82525050565b6000602082019050613c486000830184613c24565b92915050565b613c5781613afb565b82525050565b6000602082019050613c726000830184613c4e565b92915050565b600060208284031215613c8e57613c8d613a98565b5b6000613c9c84828501613b1c565b91505092915050565b600080600060608486031215613cbe57613cbd613a98565b5b6000613ccc86828701613ae6565b9350506020613cdd86828701613ae6565b9250506040613cee86828701613b1c565b9150509250925092565b600060ff82169050919050565b613d0e81613cf8565b82525050565b6000602082019050613d296000830184613d05565b92915050565b613d3881613abd565b82525050565b6000602082019050613d536000830184613d2f565b92915050565b613d6281613b71565b8114613d6d57600080fd5b50565b600081359050613d7f81613d59565b92915050565b60008060408385031215613d9c57613d9b613a98565b5b6000613daa85828601613d70565b9250506020613dbb85828601613b1c565b9150509250929050565b60008060408385031215613ddc57613ddb613a98565b5b6000613dea85828601613ae6565b9250506020613dfb85828601613d70565b9150509250929050565b60008060408385031215613e1c57613e1b613a98565b5b6000613e2a85828601613ae6565b9250506020613e3b85828601613ae6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e8c57607f821691505b60208210811415613ea057613e9f613e45565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613edc6020836139e8565b9150613ee782613ea6565b602082019050919050565b60006020820190508181036000830152613f0b81613ecf565b9050919050565b7f46656573206d7573742062652033302520206f72206c65737300000000000000600082015250565b6000613f486019836139e8565b9150613f5382613f12565b602082019050919050565b60006020820190508181036000830152613f7781613f3b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fda6028836139e8565b9150613fe582613f7e565b604082019050919050565b6000602082019050818103600083015261400981613fcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061404a82613afb565b915061405583613afb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561408e5761408d614010565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140d382613afb565b91506140de83613afb565b9250826140ee576140ed614099565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b60006141556029836139e8565b9150614160826140f9565b604082019050919050565b6000602082019050818103600083015261418481614148565b9050919050565b600061419682613afb565b91506141a183613afb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141d6576141d5614010565b5b828201905092915050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b60006142176018836139e8565b9150614222826141e1565b602082019050919050565b600060208201905081810360008301526142468161420a565b9050919050565b60006040820190506142626000830185613b7d565b61426f6020830184613c4e565b9392505050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f742060008201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b60006142d26024836139e8565b91506142dd82614276565b604082019050919050565b60006020820190508181036000830152614301816142c5565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b60006143646027836139e8565b915061436f82614308565b604082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b60006143d0601a836139e8565b91506143db8261439a565b602082019050919050565b600060208201905081810360008301526143ff816143c3565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e207769746864726160008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144626021836139e8565b915061446d82614406565b604082019050919050565b6000602082019050818103600083015261449181614455565b9050919050565b6000815190506144a781613b05565b92915050565b6000602082840312156144c3576144c2613a98565b5b60006144d184828501614498565b91505092915050565b60006040820190506144ef6000830185613d2f565b6144fc6020830184613c4e565b9392505050565b60008151905061451281613d59565b92915050565b60006020828403121561452e5761452d613a98565b5b600061453c84828501614503565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006145a16039836139e8565b91506145ac82614545565b604082019050919050565b600060208201905081810360008301526145d081614594565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146336025836139e8565b915061463e826145d7565b604082019050919050565b6000602082019050818103600083015261466281614626565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b60006146c5602c836139e8565b91506146d082614669565b604082019050919050565b600060208201905081810360008301526146f4816146b8565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e206368616e67652060008201527f737761705468726573686f6c6400000000000000000000000000000000000000602082015250565b6000614757602d836139e8565b9150614762826146fb565b604082019050919050565b600060208201905081810360008301526147868161474a565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006147e9602a836139e8565b91506147f48261478d565b604082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061487b6026836139e8565b91506148868261481f565b604082019050919050565b600060208201905081810360008301526148aa8161486e565b9050919050565b600081905092915050565b50565b60006148cc6000836148b1565b91506148d7826148bc565b600082019050919050565b60006148ed826148bf565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149536024836139e8565b915061495e826148f7565b604082019050919050565b6000602082019050818103600083015261498281614946565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006149e56022836139e8565b91506149f082614989565b604082019050919050565b60006020820190508181036000830152614a14816149d8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a776025836139e8565b9150614a8282614a1b565b604082019050919050565b60006020820190508181036000830152614aa681614a6a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b096023836139e8565b9150614b1482614aad565b604082019050919050565b60006020820190508181036000830152614b3881614afc565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000614b75601d836139e8565b9150614b8082614b3f565b602082019050919050565b60006020820190508181036000830152614ba481614b68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614be16016836139e8565b9150614bec82614bab565b602082019050919050565b60006020820190508181036000830152614c1081614bd4565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000614c4d6016836139e8565b9150614c5882614c17565b602082019050919050565b60006020820190508181036000830152614c7c81614c40565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614cdf6028836139e8565b9150614cea82614c83565b604082019050919050565b60006020820190508181036000830152614d0e81614cd2565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000614d4b6018836139e8565b9150614d5682614d15565b602082019050919050565b60006020820190508181036000830152614d7a81614d3e565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614ddd602a836139e8565b9150614de882614d81565b604082019050919050565b60006020820190508181036000830152614e0c81614dd0565b9050919050565b6000614e1e82613afb565b9150614e2983613afb565b925082821015614e3c57614e3b614010565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ea36026836139e8565b9150614eae82614e47565b604082019050919050565b60006020820190508181036000830152614ed281614e96565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614f4681613acf565b92915050565b600060208284031215614f6257614f61613a98565b5b6000614f7084828501614f37565b91505092915050565b6000819050919050565b6000614f9e614f99614f9484614f79565b613bd4565b613afb565b9050919050565b614fae81614f83565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614fe981613abd565b82525050565b6000614ffb8383614fe0565b60208301905092915050565b6000602082019050919050565b600061501f82614fb4565b6150298185614fbf565b935061503483614fd0565b8060005b8381101561506557815161504c8882614fef565b975061505783615007565b925050600181019050615038565b5085935050505092915050565b600060a0820190506150876000830188613c4e565b6150946020830187614fa5565b81810360408301526150a68186615014565b90506150b56060830185613d2f565b6150c26080830184613c4e565b9695505050505050565b60006040820190506150e16000830185613d2f565b6150ee6020830184613b7d565b939250505056fea2646970667358221220cac9a0ab5794445baf0cbf9033c82926fbbb97d85a56ead80c67979564bb43ad64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063751039fc1161014f578063bbc0c742116100c1578063dd62ed3e1161007a578063dd62ed3e14610995578063e2f45605146109d2578063ee40166e146109fd578063f2fde38b14610a28578063f5648a4f14610a51578063fabb0b4f14610a6857610288565b8063bbc0c7421461089b578063c0246668146108c6578063c18bc195146108ef578063cc274b2914610918578063cc2ffe7c14610941578063dc3f0d0f1461096c57610288565b806395d89b411161011357806395d89b41146107655780639a7a23d614610790578063a457c2d7146107b9578063a9059cbb146107f6578063aa4bde2814610833578063b62496f51461085e57610288565b8063751039fc146106925780637571336a146106a95780638366e79a146106d257806388e765ff1461070f5780638da5cb5b1461073a57610288565b8063467abe0a116101f35780635e83ae76116101ac5780635e83ae76146105965780636605bfda146105bf57806366d602ae146105e85780636ddd17131461061357806370a082311461063e578063715018a61461067b57610288565b8063467abe0a146104aa57806347062402146104d357806349bd5a5e146104fe5780634a62bb651461052957806351bc3c85146105545780635b5c251f1461056b57610288565b80631d933a4a116102455780631d933a4a1461038857806323b872dd146103b15780632b14ca56146103ee5780632be32b6114610419578063313ce56714610442578063395093511461046d57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610a93565b6040516102af9190613a76565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190613b31565b610b25565b6040516102ec9190613b8c565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613ba7565b610b43565b6040516103299190613b8c565b60405180910390f35b34801561033e57600080fd5b50610347610b63565b6040516103549190613c33565b60405180910390f35b34801561036957600080fd5b50610372610b87565b60405161037f9190613c5d565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613c78565b610b91565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613ca5565b610c78565b6040516103e59190613b8c565b60405180910390f35b3480156103fa57600080fd5b50610403610d70565b6040516104109190613c5d565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b9190613c78565b610d76565b005b34801561044e57600080fd5b50610457610ed9565b6040516104649190613d14565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190613b31565b610ee2565b6040516104a19190613b8c565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190613c78565b610f8e565b005b3480156104df57600080fd5b506104e8611075565b6040516104f59190613c5d565b60405180910390f35b34801561050a57600080fd5b5061051361107b565b6040516105209190613d3e565b60405180910390f35b34801561053557600080fd5b5061053e61109f565b60405161054b9190613b8c565b60405180910390f35b34801561056057600080fd5b506105696110b2565b005b34801561057757600080fd5b5061058061116b565b60405161058d9190613d3e565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613d85565b611191565b005b3480156105cb57600080fd5b506105e660048036038101906105e19190613ba7565b61132b565b005b3480156105f457600080fd5b506105fd6114b9565b60405161060a9190613c5d565b60405180910390f35b34801561061f57600080fd5b506106286114bf565b6040516106359190613b8c565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190613ba7565b6114d2565b6040516106729190613c5d565b60405180910390f35b34801561068757600080fd5b5061069061151a565b005b34801561069e57600080fd5b506106a7611672565b005b3480156106b557600080fd5b506106d060048036038101906106cb9190613dc5565b611752565b005b3480156106de57600080fd5b506106f960048036038101906106f49190613e05565b6118d9565b6040516107069190613b8c565b60405180910390f35b34801561071b57600080fd5b50610724611b18565b6040516107319190613c5d565b60405180910390f35b34801561074657600080fd5b5061074f611b1e565b60405161075c9190613d3e565b60405180910390f35b34801561077157600080fd5b5061077a611b48565b6040516107879190613a76565b60405180910390f35b34801561079c57600080fd5b506107b760048036038101906107b29190613dc5565b611bda565b005b3480156107c557600080fd5b506107e060048036038101906107db9190613b31565b611d0e565b6040516107ed9190613b8c565b60405180910390f35b34801561080257600080fd5b5061081d60048036038101906108189190613b31565b611df9565b60405161082a9190613b8c565b60405180910390f35b34801561083f57600080fd5b50610848611e17565b6040516108559190613c5d565b60405180910390f35b34801561086a57600080fd5b5061088560048036038101906108809190613ba7565b611e1d565b6040516108929190613b8c565b60405180910390f35b3480156108a757600080fd5b506108b0611e3d565b6040516108bd9190613b8c565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e89190613dc5565b611e50565b005b3480156108fb57600080fd5b5061091660048036038101906109119190613c78565b611f90565b005b34801561092457600080fd5b5061093f600480360381019061093a9190613c78565b6120f3565b005b34801561094d57600080fd5b506109566121a0565b6040516109639190613c5d565b60405180910390f35b34801561097857600080fd5b50610993600480360381019061098e9190613c78565b6121a6565b005b3480156109a157600080fd5b506109bc60048036038101906109b79190613e05565b612309565b6040516109c99190613c5d565b60405180910390f35b3480156109de57600080fd5b506109e7612390565b6040516109f49190613c5d565b60405180910390f35b348015610a0957600080fd5b50610a12612396565b604051610a1f9190613c5d565b60405180910390f35b348015610a3457600080fd5b50610a4f6004803603810190610a4a9190613ba7565b61239c565b005b348015610a5d57600080fd5b50610a66612563565b005b348015610a7457600080fd5b50610a7d612664565b604051610a8a9190613c5d565b60405180910390f35b606060038054610aa290613e74565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace90613e74565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b5050505050905090565b6000610b39610b3261266a565b8484612672565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610b9961266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90613ef2565b60405180910390fd5b80601081905550601e6010541115610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90613f5e565b60405180910390fd5b50565b6000610c8584848461283d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cd061266a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613ff0565b60405180910390fd5b610d6485610d5c61266a565b858403612672565b60019150509392505050565b60105481565b610d7e61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490613ef2565b60405180910390fd5b670de0b6b3a76400006103e86001610e23610b87565b610e2d919061403f565b610e3791906140c8565b610e4191906140c8565b811015610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a9061416b565b60405180910390fd5b670de0b6b3a764000081610e97919061403f565b6006819055507ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009600654604051610ece9190613c5d565b60405180910390a150565b60006012905090565b6000610f84610eef61266a565b848460016000610efd61266a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f7f919061418b565b612672565b6001905092915050565b610f9661266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101c90613ef2565b60405180910390fd5b80600f81905550601e600f541115611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990613f5e565b60405180910390fd5b50565b600f5481565b7f00000000000000000000000080c387ccc0cf6155a38e0413b9f4c2d428263fae81565b600e60009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f361266a565b73ffffffffffffffffffffffffffffffffffffffff161461111357600080fd5b600061111e306114d2565b90506000811115611168576001600960006101000a81548160ff02191690831515021790555061114c6132e8565b6000600960006101000a81548160ff0219169083151502179055505b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61119961266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f90613ef2565b60405180910390fd5b600e60019054906101000a900460ff1615611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f9061422d565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff0219169083151502179055507fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea8138812600e60019054906101000a900460ff16826040516112ed92919061424d565b60405180910390a1600e60019054906101000a900460ff16801561131357506000600c54145b156113275743600c8190555080600d819055505b5050565b61133361266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990613ef2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611429906142e8565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f60405160405180910390a250565b60075481565b600e60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61152261266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890613ef2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61167a61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170090613ef2565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b61175a61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e090613ef2565b60405180910390fd5b8061187e577f00000000000000000000000080c387ccc0cf6155a38e0413b9f4c2d428263fae73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118749061437a565b60405180910390fd5b5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561194a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611941906143e6565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190614478565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a159190613d3e565b602060405180830381865afa158015611a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5691906144ad565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611a939291906144da565b6020604051808303816000875af1158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190614518565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051611b099291906144da565b60405180910390a15092915050565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611b5790613e74565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8390613e74565b8015611bd05780601f10611ba557610100808354040283529160200191611bd0565b820191906000526020600020905b815481529060010190602001808311611bb357829003601f168201915b5050505050905090565b611be261266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613ef2565b60405180910390fd5b7f00000000000000000000000080c387ccc0cf6155a38e0413b9f4c2d428263fae73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf7906145b7565b60405180910390fd5b611d0a82826133f6565b5050565b60008060016000611d1d61266a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190614649565b60405180910390fd5b611dee611de561266a565b85858403612672565b600191505092915050565b6000611e0d611e0661266a565b848461283d565b6001905092915050565b60085481565b60146020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b611e5861266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede90613ef2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f849190613b8c565b60405180910390a25050565b611f9861266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e90613ef2565b60405180910390fd5b670de0b6b3a76400006103e8600361203d610b87565b612047919061403f565b61205191906140c8565b61205b91906140c8565b81101561209d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612094906146db565b60405180910390fd5b670de0b6b3a7640000816120b1919061403f565b6008819055507fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc6008546040516120e89190613c5d565b60405180910390a150565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061476d565b60405180910390fd5b670de0b6b3a764000081612197919061403f565b600a8190555050565b60115481565b6121ae61266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490613ef2565b60405180910390fd5b670de0b6b3a76400006103e86001612253610b87565b61225d919061403f565b61226791906140c8565b61227191906140c8565b8110156122b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122aa906147ff565b60405180910390fd5b670de0b6b3a7640000816122c7919061403f565b6007819055507f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e6007546040516122fe9190613c5d565b60405180910390a150565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b6123a461266a565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242a90613ef2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90614891565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec90614478565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1647604051612619906148e2565b60006040518083038185875af1925050503d8060008114612656576040519150601f19603f3d011682016040523d82523d6000602084013e61265b565b606091505b50508091505050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d990614969565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612752576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612749906149fb565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128309190613c5d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a490614a8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561291d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291490614b1f565b60405180910390fd5b60008111612960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295790614b8b565b60405180910390fd5b600e60009054906101000a900460ff1615612f0f5761297d611b1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156129eb57506129bb611b1e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a245750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a5e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f0e57600e60019054906101000a900460ff16612bcd57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b185750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4e90614bf7565b60405180910390fd5b612b5f611b1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc390614c63565b60405180910390fd5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c705750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d1757600654811115612cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb190614cf5565b60405180910390fd5b600854612cc6836114d2565b82612cd1919061418b565b1115612d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0990614d61565b60405180910390fd5b612f0d565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612dba5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e0957600754811115612e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfb90614df3565b60405180910390fd5b612f0c565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ead5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f0b57600854612ebe836114d2565b82612ec9919061418b565b1115612f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0190614d61565b60405180910390fd5b5b5b5b5b5b6000612f1a306114d2565b90506000600a548210159050808015612f3f5750600e60029054906101000a900460ff165b8015612f585750600960009054906101000a900460ff16155b8015612fae5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156130045750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561305a5750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561309e576001600960006101000a81548160ff0219169083151502179055506130826132e8565b6000600960006101000a81548160ff0219169083151502179055505b600060019050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131455750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561314f57600090505b60008082801561316157506000600c54115b801561316e5750600c5443115b156132d357601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156131ce57506000601054115b1561320d576064601054876131e3919061403f565b6131ed91906140c8565b91508160116000828254613201919061418b565b925050819055506132a4565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561326857506000600f54115b156132a3576064600f548761327d919061403f565b61328791906140c8565b9150816011600082825461329b919061418b565b925050819055505b5b60008211156132b9576132b88830846134a1565b5b80826132c5919061418b565b866132d09190614e13565b95505b6132de8888886134a1565b5050505050505050565b60006132f3306114d2565b905060006011549050600082148061330b5750600081145b156133175750506133f4565b6005600a54613326919061403f565b82111561333f576005600a5461333c919061403f565b91505b600061334a8361370c565b6000601181905550600047905060008111156133ef57600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516133a6906148e2565b60006040518083038185875af1925050503d80600081146133e3576040519150601f19603f3d011682016040523d82523d6000602084013e6133e8565b606091505b5050809250505b505050505b565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506134578282613949565b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350890614a8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357890614b1f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135fe90614eb9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461369a919061418b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136fe9190613c5d565b60405180910390a350505050565b6000600267ffffffffffffffff81111561372957613728614ed9565b5b6040519080825280602002602001820160405280156137575781602001602082028036833780820191505090505b509050308160008151811061376f5761376e614f08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138389190614f4c565b8160018151811061384c5761384b614f08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138b1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612672565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613913959493929190615072565b600060405180830381600087803b15801561392d57600080fd5b505af1158015613941573d6000803e3d6000fd5b505050505050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516139d19291906150cc565b60405180910390a15050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a175780820151818401526020810190506139fc565b83811115613a26576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a48826139dd565b613a5281856139e8565b9350613a628185602086016139f9565b613a6b81613a2c565b840191505092915050565b60006020820190508181036000830152613a908184613a3d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ac882613a9d565b9050919050565b613ad881613abd565b8114613ae357600080fd5b50565b600081359050613af581613acf565b92915050565b6000819050919050565b613b0e81613afb565b8114613b1957600080fd5b50565b600081359050613b2b81613b05565b92915050565b60008060408385031215613b4857613b47613a98565b5b6000613b5685828601613ae6565b9250506020613b6785828601613b1c565b9150509250929050565b60008115159050919050565b613b8681613b71565b82525050565b6000602082019050613ba16000830184613b7d565b92915050565b600060208284031215613bbd57613bbc613a98565b5b6000613bcb84828501613ae6565b91505092915050565b6000819050919050565b6000613bf9613bf4613bef84613a9d565b613bd4565b613a9d565b9050919050565b6000613c0b82613bde565b9050919050565b6000613c1d82613c00565b9050919050565b613c2d81613c12565b82525050565b6000602082019050613c486000830184613c24565b92915050565b613c5781613afb565b82525050565b6000602082019050613c726000830184613c4e565b92915050565b600060208284031215613c8e57613c8d613a98565b5b6000613c9c84828501613b1c565b91505092915050565b600080600060608486031215613cbe57613cbd613a98565b5b6000613ccc86828701613ae6565b9350506020613cdd86828701613ae6565b9250506040613cee86828701613b1c565b9150509250925092565b600060ff82169050919050565b613d0e81613cf8565b82525050565b6000602082019050613d296000830184613d05565b92915050565b613d3881613abd565b82525050565b6000602082019050613d536000830184613d2f565b92915050565b613d6281613b71565b8114613d6d57600080fd5b50565b600081359050613d7f81613d59565b92915050565b60008060408385031215613d9c57613d9b613a98565b5b6000613daa85828601613d70565b9250506020613dbb85828601613b1c565b9150509250929050565b60008060408385031215613ddc57613ddb613a98565b5b6000613dea85828601613ae6565b9250506020613dfb85828601613d70565b9150509250929050565b60008060408385031215613e1c57613e1b613a98565b5b6000613e2a85828601613ae6565b9250506020613e3b85828601613ae6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e8c57607f821691505b60208210811415613ea057613e9f613e45565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613edc6020836139e8565b9150613ee782613ea6565b602082019050919050565b60006020820190508181036000830152613f0b81613ecf565b9050919050565b7f46656573206d7573742062652033302520206f72206c65737300000000000000600082015250565b6000613f486019836139e8565b9150613f5382613f12565b602082019050919050565b60006020820190508181036000830152613f7781613f3b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fda6028836139e8565b9150613fe582613f7e565b604082019050919050565b6000602082019050818103600083015261400981613fcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061404a82613afb565b915061405583613afb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561408e5761408d614010565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140d382613afb565b91506140de83613afb565b9250826140ee576140ed614099565b5b828204905092915050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b60006141556029836139e8565b9150614160826140f9565b604082019050919050565b6000602082019050818103600083015261418481614148565b9050919050565b600061419682613afb565b91506141a183613afb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141d6576141d5614010565b5b828201905092915050565b7f43616e6e6f7420726520656e61626c652074726164696e670000000000000000600082015250565b60006142176018836139e8565b9150614222826141e1565b602082019050919050565b600060208201905081810360008301526142468161420a565b9050919050565b60006040820190506142626000830185613b7d565b61426f6020830184613c4e565b9392505050565b7f5f54726561737572794164647265737320616464726573732063616e6e6f742060008201527f6265203000000000000000000000000000000000000000000000000000000000602082015250565b60006142d26024836139e8565b91506142dd82614276565b604082019050919050565b60006020820190508181036000830152614301816142c5565b9050919050565b7f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060008201527f6d61782074786e00000000000000000000000000000000000000000000000000602082015250565b60006143646027836139e8565b915061436f82614308565b604082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000600082015250565b60006143d0601a836139e8565b91506143db8261439a565b602082019050919050565b600060208201905081810360008301526143ff816143c3565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e207769746864726160008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144626021836139e8565b915061446d82614406565b604082019050919050565b6000602082019050818103600083015261449181614455565b9050919050565b6000815190506144a781613b05565b92915050565b6000602082840312156144c3576144c2613a98565b5b60006144d184828501614498565b91505092915050565b60006040820190506144ef6000830185613d2f565b6144fc6020830184613c4e565b9392505050565b60008151905061451281613d59565b92915050565b60006020828403121561452e5761452d613a98565b5b600061453c84828501614503565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006145a16039836139e8565b91506145ac82614545565b604082019050919050565b600060208201905081810360008301526145d081614594565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146336025836139e8565b915061463e826145d7565b604082019050919050565b6000602082019050818103600083015261466281614626565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760008201527f6572207468616e20302e33250000000000000000000000000000000000000000602082015250565b60006146c5602c836139e8565b91506146d082614669565b604082019050919050565b600060208201905081810360008301526146f4816146b8565b9050919050565b7f6f6e6c79205472656173757279416464726573732063616e206368616e67652060008201527f737761705468726573686f6c6400000000000000000000000000000000000000602082015250565b6000614757602d836139e8565b9150614762826146fb565b604082019050919050565b600060208201905081810360008301526147868161474a565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f77657260008201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b60006147e9602a836139e8565b91506147f48261478d565b604082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061487b6026836139e8565b91506148868261481f565b604082019050919050565b600060208201905081810360008301526148aa8161486e565b9050919050565b600081905092915050565b50565b60006148cc6000836148b1565b91506148d7826148bc565b600082019050919050565b60006148ed826148bf565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149536024836139e8565b915061495e826148f7565b604082019050919050565b6000602082019050818103600083015261498281614946565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006149e56022836139e8565b91506149f082614989565b604082019050919050565b60006020820190508181036000830152614a14816149d8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a776025836139e8565b9150614a8282614a1b565b604082019050919050565b60006020820190508181036000830152614aa681614a6a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b096023836139e8565b9150614b1482614aad565b604082019050919050565b60006020820190508181036000830152614b3881614afc565b9050919050565b7f616d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000614b75601d836139e8565b9150614b8082614b3f565b602082019050919050565b60006020820190508181036000830152614ba481614b68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614be16016836139e8565b9150614bec82614bab565b602082019050919050565b60006020820190508181036000830152614c1081614bd4565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000614c4d6016836139e8565b9150614c5882614c17565b602082019050919050565b60006020820190508181036000830152614c7c81614c40565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178206275792e000000000000000000000000000000000000000000000000602082015250565b6000614cdf6028836139e8565b9150614cea82614c83565b604082019050919050565b60006020820190508181036000830152614d0e81614cd2565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c65740000000000000000600082015250565b6000614d4b6018836139e8565b9150614d5682614d15565b602082019050919050565b60006020820190508181036000830152614d7a81614d3e565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61782073656c6c2e00000000000000000000000000000000000000000000602082015250565b6000614ddd602a836139e8565b9150614de882614d81565b604082019050919050565b60006020820190508181036000830152614e0c81614dd0565b9050919050565b6000614e1e82613afb565b9150614e2983613afb565b925082821015614e3c57614e3b614010565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ea36026836139e8565b9150614eae82614e47565b604082019050919050565b60006020820190508181036000830152614ed281614e96565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614f4681613acf565b92915050565b600060208284031215614f6257614f61613a98565b5b6000614f7084828501614f37565b91505092915050565b6000819050919050565b6000614f9e614f99614f9484614f79565b613bd4565b613afb565b9050919050565b614fae81614f83565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614fe981613abd565b82525050565b6000614ffb8383614fe0565b60208301905092915050565b6000602082019050919050565b600061501f82614fb4565b6150298185614fbf565b935061503483614fd0565b8060005b8381101561506557815161504c8882614fef565b975061505783615007565b925050600181019050615038565b5085935050505092915050565b600060a0820190506150876000830188613c4e565b6150946020830187614fa5565b81810360408301526150a68186615014565b90506150b56060830185613d2f565b6150c26080830184613c4e565b9695505050505050565b60006040820190506150e16000830185613d2f565b6150ee6020830184613b7d565b939250505056fea2646970667358221220cac9a0ab5794445baf0cbf9033c82926fbbb97d85a56ead80c67979564bb43ad64736f6c634300080c0033

Deployed Bytecode Sourcemap

7058:12544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1776:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2690:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7864:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7208:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2097:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12936:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2867:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7677:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10289:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1996:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3355:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12780:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7649:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7258:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7529:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18850:270;;;;;;;;;;;;;:::i;:::-;;7375:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19174:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17913:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7134:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7609:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2213:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5817:150;;;;;;;;;;;;;:::i;:::-;;10896:115;;;;;;;;;;;;;:::i;:::-;;11234:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12019:452;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7100:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5603:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1884:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16881:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3578:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2348:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7169:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8086:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7569:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13095:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11509:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11801:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7708:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10566:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2531:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7333:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7414:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5975:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12541:231;;;;;;;;;;;;;:::i;:::-;;7491:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1776:100;1830:13;1863:5;1856:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1776:100;:::o;2690:169::-;2773:4;2790:39;2799:12;:10;:12::i;:::-;2813:7;2822:6;2790:8;:39::i;:::-;2847:4;2840:11;;2690:169;;;;:::o;7864:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;7208:43::-;;;:::o;2097:108::-;2158:7;2185:12;;2178:19;;2097:108;:::o;12936:151::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13013:4:::1;13003:7;:14;;;;13047:2;13036:7;;:13;;13028:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12936:151:::0;:::o;2867:480::-;3007:4;3024:36;3034:6;3042:9;3053:6;3024:9;:36::i;:::-;3073:24;3100:11;:19;3112:6;3100:19;;;;;;;;;;;;;;;:33;3120:12;:10;:12::i;:::-;3100:33;;;;;;;;;;;;;;;;3073:60;;3172:6;3152:16;:26;;3144:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3251:57;3260:6;3268:12;:10;:12::i;:::-;3301:6;3282:16;:25;3251:8;:57::i;:::-;3335:4;3328:11;;;2867:480;;;;;:::o;7677:22::-;;;;:::o;10289:269::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10408:4:::1;10402;10398:1;10382:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;10381:31;;;;:::i;:::-;10371:6;:41;;10363:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;10494:6;10484;:17;;;;:::i;:::-;10469:12;:32;;;;10517:33;10537:12;;10517:33;;;;;;:::i;:::-;;;;;;;;10289:269:::0;:::o;1996:93::-;2054:5;2079:2;2072:9;;1996:93;:::o;3355:215::-;3443:4;3460:80;3469:12;:10;:12::i;:::-;3483:7;3529:10;3492:11;:25;3504:12;:10;:12::i;:::-;3492:25;;;;;;;;;;;;;;;:34;3518:7;3492:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3460:8;:80::i;:::-;3558:4;3551:11;;3355:215;;;;:::o;12780:148::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12855:4:::1;12846:6;:13;;;;12888:2;12878:6;;:12;;12870:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12780:148:::0;:::o;7649:21::-;;;;:::o;7258:38::-;;;:::o;7529:33::-;;;;;;;;;;;;;:::o;18850:270::-;18914:15;;;;;;;;;;;18900:29;;:12;:10;:12::i;:::-;:29;;;18892:38;;;;;;18941:20;18962:24;18980:4;18962:9;:24::i;:::-;18941:45;;19013:1;19000:12;:14;18997:116;;;19041:4;19030:8;;:15;;;;;;;;;;;;;;;;;;19060:10;:8;:10::i;:::-;19096:5;19085:8;;:16;;;;;;;;;;;;;;;;;;18997:116;18881:239;18850:270::o;7375:30::-;;;;;;;;;;;;;:::o;19174:425::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19271:13:::1;;;;;;;;;;;19270:14;19262:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;19340:7;19324:13;;:23;;;;;;;;;;;;;;;;;;19372:4;19358:11;;:18;;;;;;;;;;;;;;;;;;19392:42;19407:13;;;;;;;;;;;19422:11;19392:42;;;;;;;:::i;:::-;;;;;;;;19451:13;;;;;;;;;;;:40;;;;;19490:1;19468:18;;:23;19451:40;19447:145;;;19529:12;19508:18;:33;;;;19569:11;19556:10;:24;;;;19447:145;19174:425:::0;;:::o;17913:281::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18033:1:::1;18005:30;;:16;:30;;;;17997:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18113:16;18087:15;;:43;;;;;;;;;;;;;;;;;;18169:16;18146:40;;;;;;;;;;;;17913:281:::0;:::o;7134:28::-;;;;:::o;7609:31::-;;;;;;;;;;;;;:::o;2213:127::-;2287:7;2314:9;:18;2324:7;2314:18;;;;;;;;;;;;;;;;2307:25;;2213:127;;;:::o;5817:150::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5926:1:::1;5889:40;;5910:6;;;;;;;;;;;5889:40;;;;;;;;;;;;5957:1;5940:6;;:19;;;;;;;;;;;;;;;;;;5817:150::o:0;10896:115::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10967:5:::1;10950:14;;:22;;;;;;;;;;;;;;;;;;10988:15;;;;;;;;;;10896:115::o:0;11234:267::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11330:4:::1;11326:111;;11368:13;11358:23;;:6;:23;;;;11350:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11326:111;11489:4;11447:31;:39;11479:6;11447:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11234:267:::0;;:::o;12019:452::-;12094:10;12143:1;12125:20;;:6;:20;;;;12117:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12207:15;;;;;;;;;;;12195:27;;:10;:27;;;12187:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12270:24;12304:6;12297:24;;;12330:4;12297:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12270:66;;12362:6;12355:23;;;12379:3;12384:16;12355:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12347:54;;12417:46;12438:6;12446:16;12417:46;;;;;;;:::i;:::-;;;;;;;;12106:365;12019:452;;;;:::o;7100:27::-;;;;:::o;5603:79::-;5641:7;5668:6;;;;;;;;;;;5661:13;;5603:79;:::o;1884:104::-;1940:13;1973:7;1966:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:104;:::o;16881:246::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16990:13:::1;16982:21;;:4;:21;;;;16974:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17078:41;17107:4;17113:5;17078:28;:41::i;:::-;16881:246:::0;;:::o;3578:401::-;3671:4;3688:24;3715:11;:25;3727:12;:10;:12::i;:::-;3715:25;;;;;;;;;;;;;;;:34;3741:7;3715:34;;;;;;;;;;;;;;;;3688:61;;3788:15;3768:16;:35;;3760:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3873:67;3882:12;:10;:12::i;:::-;3896:7;3924:15;3905:16;:34;3873:8;:67::i;:::-;3967:4;3960:11;;;3578:401;;;;:::o;2348:175::-;2434:4;2451:42;2461:12;:10;:12::i;:::-;2475:9;2486:6;2451:9;:42::i;:::-;2511:4;2504:11;;2348:175;;;;:::o;7169:30::-;;;;:::o;8086:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;7569:33::-;;;;;;;;;;;;;:::o;13095:182::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13211:8:::1;13180:19;:28;13200:7;13180:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13251:7;13235:34;;;13260:8;13235:34;;;;;;:::i;:::-;;;;;;;;13095:182:::0;;:::o;11509:284::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11631:4:::1;11625;11621:1;11605:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;11604:31;;;;:::i;:::-;11594:6;:41;;11586:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11723:6;11713;:17;;;;:::i;:::-;11695:15;:35;;;;11746:39;11769:15;;11746:39;;;;;;:::i;:::-;;;;;;;;11509:284:::0;:::o;11801:210::-;11888:15;;;;;;;;;;;11876:27;;:10;:27;;;11868:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11996:6;11984:9;:19;;;;:::i;:::-;11963:18;:40;;;;11801:210;:::o;7708:32::-;;;;:::o;10566:274::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10686:4:::1;10680;10676:1;10660:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;10659:31;;;;:::i;:::-;10649:6;:41;;10641:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10774:6;10764;:17;;;;:::i;:::-;10748:13;:33;;;;10797:35;10818:13;;10797:35;;;;;;:::i;:::-;;;;;;;;10566:274:::0;:::o;2531:151::-;2620:7;2647:11;:18;2659:5;2647:18;;;;;;;;;;;;;;;:27;2666:7;2647:27;;;;;;;;;;;;;;;;2640:34;;2531:151;;;;:::o;7333:33::-;;;;:::o;7414:37::-;;;;:::o;5975:244::-;5740:12;:10;:12::i;:::-;5730:22;;:6;;;;;;;;;;;:22;;;5722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6084:1:::1;6064:22;;:8;:22;;;;6056:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6174:8;6145:38;;6166:6;;;;;;;;;;;6145:38;;;;;;;;;;;;6203:8;6194:6;;:17;;;;;;;;;;;;;;;;;;5975:244:::0;:::o;12541:231::-;12587:12;12630:15;;;;;;;;;;;12618:27;;:10;:27;;;12610:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12714:10;12706:24;;12738:21;12706:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12693:71;;;;;12576:196;12541:231::o;7491:29::-;;;;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;4896:380::-;5049:1;5032:19;;:5;:19;;;;5024:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5130:1;5111:21;;:7;:21;;;;5103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5214:6;5184:11;:18;5196:5;5184:18;;;;;;;;;;;;;;;:27;5203:7;5184:27;;;;;;;;;;;;;;;:36;;;;5252:7;5236:32;;5245:5;5236:32;;;5261:6;5236:32;;;;;;:::i;:::-;;;;;;;;4896:380;;;:::o;13285:2991::-;13401:1;13385:18;;:4;:18;;;;13377:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13478:1;13464:16;;:2;:16;;;;13456:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13548:1;13539:6;:10;13531:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13601:14;;;;;;;;;;;13598:1224;;;13643:7;:5;:7::i;:::-;13635:15;;:4;:15;;;;:32;;;;;13660:7;:5;:7::i;:::-;13654:13;;:2;:13;;;;13635:32;:52;;;;;13685:1;13671:16;;:2;:16;;;;13635:52;:77;;;;;13705:6;13691:21;;:2;:21;;;;13635:77;13631:1180;;;13736:13;;;;;;;;;;;13732:245;;13781:31;:37;13813:4;13781:37;;;;;;;;;;;;;;;;;;;;;;;;;:76;;;;13822:31;:35;13854:2;13822:35;;;;;;;;;;;;;;;;;;;;;;;;;13781:76;13773:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13923:7;:5;:7::i;:::-;13915:15;;:4;:15;;;13907:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13732:245;14027:25;:31;14053:4;14027:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14063:31;:35;14095:2;14063:35;;;;;;;;;;;;;;;;;;;;;;;;;14062:36;14027:71;14023:773;;;14141:12;;14131:6;:22;;14123:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14255:15;;14238:13;14248:2;14238:9;:13::i;:::-;14229:6;:22;;;;:::i;:::-;:41;;14221:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14023:773;;;14375:25;:29;14401:2;14375:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14409:31;:37;14441:4;14409:37;;;;;;;;;;;;;;;;;;;;;;;;;14408:38;14375:71;14371:425;;;14489:13;;14479:6;:23;;14471:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14371:425;;;14597:31;:35;14629:2;14597:35;;;;;;;;;;;;;;;;;;;;;;;;;14596:36;:78;;;;;14637:31;:37;14669:4;14637:37;;;;;;;;;;;;;;;;;;;;;;;;;14636:38;14596:78;14592:204;;;14732:15;;14715:13;14725:2;14715:9;:13::i;:::-;14706:6;:22;;;;:::i;:::-;:41;;14698:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14592:204;14371:425;14023:773;13631:1180;13598:1224;14834:28;14865:24;14883:4;14865:9;:24::i;:::-;14834:55;;14902:12;14941:18;;14917:20;:42;;14902:57;;14975:7;:22;;;;;14986:11;;;;;;;;;;;14975:22;:35;;;;;15002:8;;;;;;;;;;;15001:9;14975:35;:71;;;;;15015:25;:31;15041:4;15015:31;;;;;;;;;;;;;;;;;;;;;;;;;15014:32;14975:71;:101;;;;;15051:19;:25;15071:4;15051:25;;;;;;;;;;;;;;;;;;;;;;;;;15050:26;14975:101;:129;;;;;15081:19;:23;15101:2;15081:23;;;;;;;;;;;;;;;;;;;;;;;;;15080:24;14975:129;14972:232;;;15132:4;15121:8;;:15;;;;;;;;;;;;;;;;;;15151:10;:8;:10::i;:::-;15187:5;15176:8;;:16;;;;;;;;;;;;;;;;;;14972:232;15216:12;15231:4;15216:19;;15334;:25;15354:4;15334:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15363:19;:23;15383:2;15363:23;;;;;;;;;;;;;;;;;;;;;;;;;15334:52;15331:99;;;15413:5;15403:15;;15331:99;15442:12;15469:21;15572:7;:31;;;;;15602:1;15583:18;;:20;15572:31;:68;;;;;15621:18;;15608:12;:31;15572:68;15569:654;;;15695:25;:29;15721:2;15695:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;15738:1;15728:7;;:11;15695:44;15691:357;;;15786:3;15776:7;;15767:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;15760:29;;15829:4;15808:17;;:25;;;;;;;:::i;:::-;;;;;;;;15691:357;;;15894:25;:31;15920:4;15894:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;15938:1;15929:6;;:10;15894:45;15891:157;;;15985:3;15976:6;;15967;:15;;;;:::i;:::-;:21;;;;:::i;:::-;15960:28;;16028:4;16007:17;;:25;;;;;;;:::i;:::-;;;;;;;;15891:157;15691:357;16086:1;16079:4;:8;16076:89;;;16107:42;16123:4;16137;16144;16107:15;:42::i;:::-;16076:89;16198:13;16191:4;:20;;;;:::i;:::-;16181:30;;;;;:::i;:::-;;;15569:654;16235:33;16251:4;16257:2;16261:6;16235:15;:33::i;:::-;13364:2912;;;;;13285:2991;;;:::o;18205:633::-;18244:23;18270:24;18288:4;18270:9;:24::i;:::-;18244:50;;18305:25;18333:17;;18305:45;;18385:1;18366:15;:20;:46;;;;18411:1;18390:17;:22;18366:46;18363:60;;;18415:7;;;;18363:60;18477:1;18456:18;;:22;;;;:::i;:::-;18438:15;:40;18435:111;;;18533:1;18512:18;;:22;;;;:::i;:::-;18494:40;;18435:111;18558:12;18583:33;18600:15;18583:16;:33::i;:::-;18647:1;18627:17;:21;;;;18661:18;18680:21;18661:40;;18726:1;18715:10;:12;18712:119;;;18764:15;;;;;;;;;;;18756:29;;18793:21;18756:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18743:76;;;;;18712:119;18233:605;;;;18205:633;:::o;17135:240::-;17252:5;17218:25;:31;17244:4;17218:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17270;17297:4;17303:5;17270:26;:39::i;:::-;17361:5;17327:40;;17355:4;17327:40;;;;;;;;;;;;17135:240;;:::o;3987:602::-;4145:1;4127:20;;:6;:20;;;;4119:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4229:1;4208:23;;:9;:23;;;;4200:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4284:21;4308:9;:17;4318:6;4308:17;;;;;;;;;;;;;;;;4284:41;;4361:6;4344:13;:23;;4336:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4474:6;4458:13;:22;4438:9;:17;4448:6;4438:17;;;;;;;;;;;;;;;:42;;;;4522:6;4498:9;:20;4508:9;4498:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4563:9;4546:35;;4555:6;4546:35;;;4574:6;4546:35;;;;;;:::i;:::-;;;;;;;;4108:481;3987:602;;;:::o;16284:589::-;16410:21;16448:1;16434:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16410:40;;16479:4;16461;16466:1;16461:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16505:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16495:4;16500:1;16495:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16540:62;16557:4;16572:15;16590:11;16540:8;:62::i;:::-;16641:15;:66;;;16722:11;16748:1;16792:4;16819;16839:15;16641:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16339:534;16284:589;:::o;11019:207::-;11149:10;11107:31;:39;11139:6;11107:39;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;11175:43;11199:6;11207:10;11175:43;;;;;;;:::i;:::-;;;;;;;;11019:207;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:144::-;4243:9;4276:37;4307:5;4276:37;:::i;:::-;4263:50;;4175:144;;;:::o;4325:167::-;4430:55;4479:5;4430:55;:::i;:::-;4425:3;4418:68;4325:167;;:::o;4498:258::-;4609:4;4647:2;4636:9;4632:18;4624:26;;4660:89;4746:1;4735:9;4731:17;4722:6;4660:89;:::i;:::-;4498:258;;;;:::o;4762:118::-;4849:24;4867:5;4849:24;:::i;:::-;4844:3;4837:37;4762:118;;:::o;4886:222::-;4979:4;5017:2;5006:9;5002:18;4994:26;;5030:71;5098:1;5087:9;5083:17;5074:6;5030:71;:::i;:::-;4886:222;;;;:::o;5114:329::-;5173:6;5222:2;5210:9;5201:7;5197:23;5193:32;5190:119;;;5228:79;;:::i;:::-;5190:119;5348:1;5373:53;5418:7;5409:6;5398:9;5394:22;5373:53;:::i;:::-;5363:63;;5319:117;5114:329;;;;:::o;5449:619::-;5526:6;5534;5542;5591:2;5579:9;5570:7;5566:23;5562:32;5559:119;;;5597:79;;:::i;:::-;5559:119;5717:1;5742:53;5787:7;5778:6;5767:9;5763:22;5742:53;:::i;:::-;5732:63;;5688:117;5844:2;5870:53;5915:7;5906:6;5895:9;5891:22;5870:53;:::i;:::-;5860:63;;5815:118;5972:2;5998:53;6043:7;6034:6;6023:9;6019:22;5998:53;:::i;:::-;5988:63;;5943:118;5449:619;;;;;:::o;6074:86::-;6109:7;6149:4;6142:5;6138:16;6127:27;;6074:86;;;:::o;6166:112::-;6249:22;6265:5;6249:22;:::i;:::-;6244:3;6237:35;6166:112;;:::o;6284:214::-;6373:4;6411:2;6400:9;6396:18;6388:26;;6424:67;6488:1;6477:9;6473:17;6464:6;6424:67;:::i;:::-;6284:214;;;;:::o;6504:118::-;6591:24;6609:5;6591:24;:::i;:::-;6586:3;6579:37;6504:118;;:::o;6628:222::-;6721:4;6759:2;6748:9;6744:18;6736:26;;6772:71;6840:1;6829:9;6825:17;6816:6;6772:71;:::i;:::-;6628:222;;;;:::o;6856:116::-;6926:21;6941:5;6926:21;:::i;:::-;6919:5;6916:32;6906:60;;6962:1;6959;6952:12;6906:60;6856:116;:::o;6978:133::-;7021:5;7059:6;7046:20;7037:29;;7075:30;7099:5;7075:30;:::i;:::-;6978:133;;;;:::o;7117:468::-;7182:6;7190;7239:2;7227:9;7218:7;7214:23;7210:32;7207:119;;;7245:79;;:::i;:::-;7207:119;7365:1;7390:50;7432:7;7423:6;7412:9;7408:22;7390:50;:::i;:::-;7380:60;;7336:114;7489:2;7515:53;7560:7;7551:6;7540:9;7536:22;7515:53;:::i;:::-;7505:63;;7460:118;7117:468;;;;;:::o;7591:::-;7656:6;7664;7713:2;7701:9;7692:7;7688:23;7684:32;7681:119;;;7719:79;;:::i;:::-;7681:119;7839:1;7864:53;7909:7;7900:6;7889:9;7885:22;7864:53;:::i;:::-;7854:63;;7810:117;7966:2;7992:50;8034:7;8025:6;8014:9;8010:22;7992:50;:::i;:::-;7982:60;;7937:115;7591:468;;;;;:::o;8065:474::-;8133:6;8141;8190:2;8178:9;8169:7;8165:23;8161:32;8158:119;;;8196:79;;:::i;:::-;8158:119;8316:1;8341:53;8386:7;8377:6;8366:9;8362:22;8341:53;:::i;:::-;8331:63;;8287:117;8443:2;8469:53;8514:7;8505:6;8494:9;8490:22;8469:53;:::i;:::-;8459:63;;8414:118;8065:474;;;;;:::o;8545:180::-;8593:77;8590:1;8583:88;8690:4;8687:1;8680:15;8714:4;8711:1;8704:15;8731:320;8775:6;8812:1;8806:4;8802:12;8792:22;;8859:1;8853:4;8849:12;8880:18;8870:81;;8936:4;8928:6;8924:17;8914:27;;8870:81;8998:2;8990:6;8987:14;8967:18;8964:38;8961:84;;;9017:18;;:::i;:::-;8961:84;8782:269;8731:320;;;:::o;9057:182::-;9197:34;9193:1;9185:6;9181:14;9174:58;9057:182;:::o;9245:366::-;9387:3;9408:67;9472:2;9467:3;9408:67;:::i;:::-;9401:74;;9484:93;9573:3;9484:93;:::i;:::-;9602:2;9597:3;9593:12;9586:19;;9245:366;;;:::o;9617:419::-;9783:4;9821:2;9810:9;9806:18;9798:26;;9870:9;9864:4;9860:20;9856:1;9845:9;9841:17;9834:47;9898:131;10024:4;9898:131;:::i;:::-;9890:139;;9617:419;;;:::o;10042:175::-;10182:27;10178:1;10170:6;10166:14;10159:51;10042:175;:::o;10223:366::-;10365:3;10386:67;10450:2;10445:3;10386:67;:::i;:::-;10379:74;;10462:93;10551:3;10462:93;:::i;:::-;10580:2;10575:3;10571:12;10564:19;;10223:366;;;:::o;10595:419::-;10761:4;10799:2;10788:9;10784:18;10776:26;;10848:9;10842:4;10838:20;10834:1;10823:9;10819:17;10812:47;10876:131;11002:4;10876:131;:::i;:::-;10868:139;;10595:419;;;:::o;11020:227::-;11160:34;11156:1;11148:6;11144:14;11137:58;11229:10;11224:2;11216:6;11212:15;11205:35;11020:227;:::o;11253:366::-;11395:3;11416:67;11480:2;11475:3;11416:67;:::i;:::-;11409:74;;11492:93;11581:3;11492:93;:::i;:::-;11610:2;11605:3;11601:12;11594:19;;11253:366;;;:::o;11625:419::-;11791:4;11829:2;11818:9;11814:18;11806:26;;11878:9;11872:4;11868:20;11864:1;11853:9;11849:17;11842:47;11906:131;12032:4;11906:131;:::i;:::-;11898:139;;11625:419;;;:::o;12050:180::-;12098:77;12095:1;12088:88;12195:4;12192:1;12185:15;12219:4;12216:1;12209:15;12236:348;12276:7;12299:20;12317:1;12299:20;:::i;:::-;12294:25;;12333:20;12351:1;12333:20;:::i;:::-;12328:25;;12521:1;12453:66;12449:74;12446:1;12443:81;12438:1;12431:9;12424:17;12420:105;12417:131;;;12528:18;;:::i;:::-;12417:131;12576:1;12573;12569:9;12558:20;;12236:348;;;;:::o;12590:180::-;12638:77;12635:1;12628:88;12735:4;12732:1;12725:15;12759:4;12756:1;12749:15;12776:185;12816:1;12833:20;12851:1;12833:20;:::i;:::-;12828:25;;12867:20;12885:1;12867:20;:::i;:::-;12862:25;;12906:1;12896:35;;12911:18;;:::i;:::-;12896:35;12953:1;12950;12946:9;12941:14;;12776:185;;;;:::o;12967:228::-;13107:34;13103:1;13095:6;13091:14;13084:58;13176:11;13171:2;13163:6;13159:15;13152:36;12967:228;:::o;13201:366::-;13343:3;13364:67;13428:2;13423:3;13364:67;:::i;:::-;13357:74;;13440:93;13529:3;13440:93;:::i;:::-;13558:2;13553:3;13549:12;13542:19;;13201:366;;;:::o;13573:419::-;13739:4;13777:2;13766:9;13762:18;13754:26;;13826:9;13820:4;13816:20;13812:1;13801:9;13797:17;13790:47;13854:131;13980:4;13854:131;:::i;:::-;13846:139;;13573:419;;;:::o;13998:305::-;14038:3;14057:20;14075:1;14057:20;:::i;:::-;14052:25;;14091:20;14109:1;14091:20;:::i;:::-;14086:25;;14245:1;14177:66;14173:74;14170:1;14167:81;14164:107;;;14251:18;;:::i;:::-;14164:107;14295:1;14292;14288:9;14281:16;;13998:305;;;;:::o;14309:174::-;14449:26;14445:1;14437:6;14433:14;14426:50;14309:174;:::o;14489:366::-;14631:3;14652:67;14716:2;14711:3;14652:67;:::i;:::-;14645:74;;14728:93;14817:3;14728:93;:::i;:::-;14846:2;14841:3;14837:12;14830:19;;14489:366;;;:::o;14861:419::-;15027:4;15065:2;15054:9;15050:18;15042:26;;15114:9;15108:4;15104:20;15100:1;15089:9;15085:17;15078:47;15142:131;15268:4;15142:131;:::i;:::-;15134:139;;14861:419;;;:::o;15286:320::-;15401:4;15439:2;15428:9;15424:18;15416:26;;15452:65;15514:1;15503:9;15499:17;15490:6;15452:65;:::i;:::-;15527:72;15595:2;15584:9;15580:18;15571:6;15527:72;:::i;:::-;15286:320;;;;;:::o;15612:223::-;15752:34;15748:1;15740:6;15736:14;15729:58;15821:6;15816:2;15808:6;15804:15;15797:31;15612:223;:::o;15841:366::-;15983:3;16004:67;16068:2;16063:3;16004:67;:::i;:::-;15997:74;;16080:93;16169:3;16080:93;:::i;:::-;16198:2;16193:3;16189:12;16182:19;;15841:366;;;:::o;16213:419::-;16379:4;16417:2;16406:9;16402:18;16394:26;;16466:9;16460:4;16456:20;16452:1;16441:9;16437:17;16430:47;16494:131;16620:4;16494:131;:::i;:::-;16486:139;;16213:419;;;:::o;16638:226::-;16778:34;16774:1;16766:6;16762:14;16755:58;16847:9;16842:2;16834:6;16830:15;16823:34;16638:226;:::o;16870:366::-;17012:3;17033:67;17097:2;17092:3;17033:67;:::i;:::-;17026:74;;17109:93;17198:3;17109:93;:::i;:::-;17227:2;17222:3;17218:12;17211:19;;16870:366;;;:::o;17242:419::-;17408:4;17446:2;17435:9;17431:18;17423:26;;17495:9;17489:4;17485:20;17481:1;17470:9;17466:17;17459:47;17523:131;17649:4;17523:131;:::i;:::-;17515:139;;17242:419;;;:::o;17667:176::-;17807:28;17803:1;17795:6;17791:14;17784:52;17667:176;:::o;17849:366::-;17991:3;18012:67;18076:2;18071:3;18012:67;:::i;:::-;18005:74;;18088:93;18177:3;18088:93;:::i;:::-;18206:2;18201:3;18197:12;18190:19;;17849:366;;;:::o;18221:419::-;18387:4;18425:2;18414:9;18410:18;18402:26;;18474:9;18468:4;18464:20;18460:1;18449:9;18445:17;18438:47;18502:131;18628:4;18502:131;:::i;:::-;18494:139;;18221:419;;;:::o;18646:220::-;18786:34;18782:1;18774:6;18770:14;18763:58;18855:3;18850:2;18842:6;18838:15;18831:28;18646:220;:::o;18872:366::-;19014:3;19035:67;19099:2;19094:3;19035:67;:::i;:::-;19028:74;;19111:93;19200:3;19111:93;:::i;:::-;19229:2;19224:3;19220:12;19213:19;;18872:366;;;:::o;19244:419::-;19410:4;19448:2;19437:9;19433:18;19425:26;;19497:9;19491:4;19487:20;19483:1;19472:9;19468:17;19461:47;19525:131;19651:4;19525:131;:::i;:::-;19517:139;;19244:419;;;:::o;19669:143::-;19726:5;19757:6;19751:13;19742:22;;19773:33;19800:5;19773:33;:::i;:::-;19669:143;;;;:::o;19818:351::-;19888:6;19937:2;19925:9;19916:7;19912:23;19908:32;19905:119;;;19943:79;;:::i;:::-;19905:119;20063:1;20088:64;20144:7;20135:6;20124:9;20120:22;20088:64;:::i;:::-;20078:74;;20034:128;19818:351;;;;:::o;20175:332::-;20296:4;20334:2;20323:9;20319:18;20311:26;;20347:71;20415:1;20404:9;20400:17;20391:6;20347:71;:::i;:::-;20428:72;20496:2;20485:9;20481:18;20472:6;20428:72;:::i;:::-;20175:332;;;;;:::o;20513:137::-;20567:5;20598:6;20592:13;20583:22;;20614:30;20638:5;20614:30;:::i;:::-;20513:137;;;;:::o;20656:345::-;20723:6;20772:2;20760:9;20751:7;20747:23;20743:32;20740:119;;;20778:79;;:::i;:::-;20740:119;20898:1;20923:61;20976:7;20967:6;20956:9;20952:22;20923:61;:::i;:::-;20913:71;;20869:125;20656:345;;;;:::o;21007:244::-;21147:34;21143:1;21135:6;21131:14;21124:58;21216:27;21211:2;21203:6;21199:15;21192:52;21007:244;:::o;21257:366::-;21399:3;21420:67;21484:2;21479:3;21420:67;:::i;:::-;21413:74;;21496:93;21585:3;21496:93;:::i;:::-;21614:2;21609:3;21605:12;21598:19;;21257:366;;;:::o;21629:419::-;21795:4;21833:2;21822:9;21818:18;21810:26;;21882:9;21876:4;21872:20;21868:1;21857:9;21853:17;21846:47;21910:131;22036:4;21910:131;:::i;:::-;21902:139;;21629:419;;;:::o;22054:224::-;22194:34;22190:1;22182:6;22178:14;22171:58;22263:7;22258:2;22250:6;22246:15;22239:32;22054:224;:::o;22284:366::-;22426:3;22447:67;22511:2;22506:3;22447:67;:::i;:::-;22440:74;;22523:93;22612:3;22523:93;:::i;:::-;22641:2;22636:3;22632:12;22625:19;;22284:366;;;:::o;22656:419::-;22822:4;22860:2;22849:9;22845:18;22837:26;;22909:9;22903:4;22899:20;22895:1;22884:9;22880:17;22873:47;22937:131;23063:4;22937:131;:::i;:::-;22929:139;;22656:419;;;:::o;23081:231::-;23221:34;23217:1;23209:6;23205:14;23198:58;23290:14;23285:2;23277:6;23273:15;23266:39;23081:231;:::o;23318:366::-;23460:3;23481:67;23545:2;23540:3;23481:67;:::i;:::-;23474:74;;23557:93;23646:3;23557:93;:::i;:::-;23675:2;23670:3;23666:12;23659:19;;23318:366;;;:::o;23690:419::-;23856:4;23894:2;23883:9;23879:18;23871:26;;23943:9;23937:4;23933:20;23929:1;23918:9;23914:17;23907:47;23971:131;24097:4;23971:131;:::i;:::-;23963:139;;23690:419;;;:::o;24115:232::-;24255:34;24251:1;24243:6;24239:14;24232:58;24324:15;24319:2;24311:6;24307:15;24300:40;24115:232;:::o;24353:366::-;24495:3;24516:67;24580:2;24575:3;24516:67;:::i;:::-;24509:74;;24592:93;24681:3;24592:93;:::i;:::-;24710:2;24705:3;24701:12;24694:19;;24353:366;;;:::o;24725:419::-;24891:4;24929:2;24918:9;24914:18;24906:26;;24978:9;24972:4;24968:20;24964:1;24953:9;24949:17;24942:47;25006:131;25132:4;25006:131;:::i;:::-;24998:139;;24725:419;;;:::o;25150:229::-;25290:34;25286:1;25278:6;25274:14;25267:58;25359:12;25354:2;25346:6;25342:15;25335:37;25150:229;:::o;25385:366::-;25527:3;25548:67;25612:2;25607:3;25548:67;:::i;:::-;25541:74;;25624:93;25713:3;25624:93;:::i;:::-;25742:2;25737:3;25733:12;25726:19;;25385:366;;;:::o;25757:419::-;25923:4;25961:2;25950:9;25946:18;25938:26;;26010:9;26004:4;26000:20;25996:1;25985:9;25981:17;25974:47;26038:131;26164:4;26038:131;:::i;:::-;26030:139;;25757:419;;;:::o;26182:225::-;26322:34;26318:1;26310:6;26306:14;26299:58;26391:8;26386:2;26378:6;26374:15;26367:33;26182:225;:::o;26413:366::-;26555:3;26576:67;26640:2;26635:3;26576:67;:::i;:::-;26569:74;;26652:93;26741:3;26652:93;:::i;:::-;26770:2;26765:3;26761:12;26754:19;;26413:366;;;:::o;26785:419::-;26951:4;26989:2;26978:9;26974:18;26966:26;;27038:9;27032:4;27028:20;27024:1;27013:9;27009:17;27002:47;27066:131;27192:4;27066:131;:::i;:::-;27058:139;;26785:419;;;:::o;27210:147::-;27311:11;27348:3;27333:18;;27210:147;;;;:::o;27363:114::-;;:::o;27483:398::-;27642:3;27663:83;27744:1;27739:3;27663:83;:::i;:::-;27656:90;;27755:93;27844:3;27755:93;:::i;:::-;27873:1;27868:3;27864:11;27857:18;;27483:398;;;:::o;27887:379::-;28071:3;28093:147;28236:3;28093:147;:::i;:::-;28086:154;;28257:3;28250:10;;27887:379;;;:::o;28272:223::-;28412:34;28408:1;28400:6;28396:14;28389:58;28481:6;28476:2;28468:6;28464:15;28457:31;28272:223;:::o;28501:366::-;28643:3;28664:67;28728:2;28723:3;28664:67;:::i;:::-;28657:74;;28740:93;28829:3;28740:93;:::i;:::-;28858:2;28853:3;28849:12;28842:19;;28501:366;;;:::o;28873:419::-;29039:4;29077:2;29066:9;29062:18;29054:26;;29126:9;29120:4;29116:20;29112:1;29101:9;29097:17;29090:47;29154:131;29280:4;29154:131;:::i;:::-;29146:139;;28873:419;;;:::o;29298:221::-;29438:34;29434:1;29426:6;29422:14;29415:58;29507:4;29502:2;29494:6;29490:15;29483:29;29298:221;:::o;29525:366::-;29667:3;29688:67;29752:2;29747:3;29688:67;:::i;:::-;29681:74;;29764:93;29853:3;29764:93;:::i;:::-;29882:2;29877:3;29873:12;29866:19;;29525:366;;;:::o;29897:419::-;30063:4;30101:2;30090:9;30086:18;30078:26;;30150:9;30144:4;30140:20;30136:1;30125:9;30121:17;30114:47;30178:131;30304:4;30178:131;:::i;:::-;30170:139;;29897:419;;;:::o;30322:224::-;30462:34;30458:1;30450:6;30446:14;30439:58;30531:7;30526:2;30518:6;30514:15;30507:32;30322:224;:::o;30552:366::-;30694:3;30715:67;30779:2;30774:3;30715:67;:::i;:::-;30708:74;;30791:93;30880:3;30791:93;:::i;:::-;30909:2;30904:3;30900:12;30893:19;;30552:366;;;:::o;30924:419::-;31090:4;31128:2;31117:9;31113:18;31105:26;;31177:9;31171:4;31167:20;31163:1;31152:9;31148:17;31141:47;31205:131;31331:4;31205:131;:::i;:::-;31197:139;;30924:419;;;:::o;31349:222::-;31489:34;31485:1;31477:6;31473:14;31466:58;31558:5;31553:2;31545:6;31541:15;31534:30;31349:222;:::o;31577:366::-;31719:3;31740:67;31804:2;31799:3;31740:67;:::i;:::-;31733:74;;31816:93;31905:3;31816:93;:::i;:::-;31934:2;31929:3;31925:12;31918:19;;31577:366;;;:::o;31949:419::-;32115:4;32153:2;32142:9;32138:18;32130:26;;32202:9;32196:4;32192:20;32188:1;32177:9;32173:17;32166:47;32230:131;32356:4;32230:131;:::i;:::-;32222:139;;31949:419;;;:::o;32374:179::-;32514:31;32510:1;32502:6;32498:14;32491:55;32374:179;:::o;32559:366::-;32701:3;32722:67;32786:2;32781:3;32722:67;:::i;:::-;32715:74;;32798:93;32887:3;32798:93;:::i;:::-;32916:2;32911:3;32907:12;32900:19;;32559:366;;;:::o;32931:419::-;33097:4;33135:2;33124:9;33120:18;33112:26;;33184:9;33178:4;33174:20;33170:1;33159:9;33155:17;33148:47;33212:131;33338:4;33212:131;:::i;:::-;33204:139;;32931:419;;;:::o;33356:172::-;33496:24;33492:1;33484:6;33480:14;33473:48;33356:172;:::o;33534:366::-;33676:3;33697:67;33761:2;33756:3;33697:67;:::i;:::-;33690:74;;33773:93;33862:3;33773:93;:::i;:::-;33891:2;33886:3;33882:12;33875:19;;33534:366;;;:::o;33906:419::-;34072:4;34110:2;34099:9;34095:18;34087:26;;34159:9;34153:4;34149:20;34145:1;34134:9;34130:17;34123:47;34187:131;34313:4;34187:131;:::i;:::-;34179:139;;33906:419;;;:::o;34331:172::-;34471:24;34467:1;34459:6;34455:14;34448:48;34331:172;:::o;34509:366::-;34651:3;34672:67;34736:2;34731:3;34672:67;:::i;:::-;34665:74;;34748:93;34837:3;34748:93;:::i;:::-;34866:2;34861:3;34857:12;34850:19;;34509:366;;;:::o;34881:419::-;35047:4;35085:2;35074:9;35070:18;35062:26;;35134:9;35128:4;35124:20;35120:1;35109:9;35105:17;35098:47;35162:131;35288:4;35162:131;:::i;:::-;35154:139;;34881:419;;;:::o;35306:227::-;35446:34;35442:1;35434:6;35430:14;35423:58;35515:10;35510:2;35502:6;35498:15;35491:35;35306:227;:::o;35539:366::-;35681:3;35702:67;35766:2;35761:3;35702:67;:::i;:::-;35695:74;;35778:93;35867:3;35778:93;:::i;:::-;35896:2;35891:3;35887:12;35880:19;;35539:366;;;:::o;35911:419::-;36077:4;36115:2;36104:9;36100:18;36092:26;;36164:9;36158:4;36154:20;36150:1;36139:9;36135:17;36128:47;36192:131;36318:4;36192:131;:::i;:::-;36184:139;;35911:419;;;:::o;36336:174::-;36476:26;36472:1;36464:6;36460:14;36453:50;36336:174;:::o;36516:366::-;36658:3;36679:67;36743:2;36738:3;36679:67;:::i;:::-;36672:74;;36755:93;36844:3;36755:93;:::i;:::-;36873:2;36868:3;36864:12;36857:19;;36516:366;;;:::o;36888:419::-;37054:4;37092:2;37081:9;37077:18;37069:26;;37141:9;37135:4;37131:20;37127:1;37116:9;37112:17;37105:47;37169:131;37295:4;37169:131;:::i;:::-;37161:139;;36888:419;;;:::o;37313:229::-;37453:34;37449:1;37441:6;37437:14;37430:58;37522:12;37517:2;37509:6;37505:15;37498:37;37313:229;:::o;37548:366::-;37690:3;37711:67;37775:2;37770:3;37711:67;:::i;:::-;37704:74;;37787:93;37876:3;37787:93;:::i;:::-;37905:2;37900:3;37896:12;37889:19;;37548:366;;;:::o;37920:419::-;38086:4;38124:2;38113:9;38109:18;38101:26;;38173:9;38167:4;38163:20;38159:1;38148:9;38144:17;38137:47;38201:131;38327:4;38201:131;:::i;:::-;38193:139;;37920:419;;;:::o;38345:191::-;38385:4;38405:20;38423:1;38405:20;:::i;:::-;38400:25;;38439:20;38457:1;38439:20;:::i;:::-;38434:25;;38478:1;38475;38472:8;38469:34;;;38483:18;;:::i;:::-;38469:34;38528:1;38525;38521:9;38513:17;;38345:191;;;;:::o;38542:225::-;38682:34;38678:1;38670:6;38666:14;38659:58;38751:8;38746:2;38738:6;38734:15;38727:33;38542:225;:::o;38773:366::-;38915:3;38936:67;39000:2;38995:3;38936:67;:::i;:::-;38929:74;;39012:93;39101:3;39012:93;:::i;:::-;39130:2;39125:3;39121:12;39114:19;;38773:366;;;:::o;39145:419::-;39311:4;39349:2;39338:9;39334:18;39326:26;;39398:9;39392:4;39388:20;39384:1;39373:9;39369:17;39362:47;39426:131;39552:4;39426:131;:::i;:::-;39418:139;;39145:419;;;:::o;39570:180::-;39618:77;39615:1;39608:88;39715:4;39712:1;39705:15;39739:4;39736:1;39729:15;39756:180;39804:77;39801:1;39794:88;39901:4;39898:1;39891:15;39925:4;39922:1;39915:15;39942:143;39999:5;40030:6;40024:13;40015:22;;40046:33;40073:5;40046:33;:::i;:::-;39942:143;;;;:::o;40091:351::-;40161:6;40210:2;40198:9;40189:7;40185:23;40181:32;40178:119;;;40216:79;;:::i;:::-;40178:119;40336:1;40361:64;40417:7;40408:6;40397:9;40393:22;40361:64;:::i;:::-;40351:74;;40307:128;40091:351;;;;:::o;40448:85::-;40493:7;40522:5;40511:16;;40448:85;;;:::o;40539:158::-;40597:9;40630:61;40648:42;40657:32;40683:5;40657:32;:::i;:::-;40648:42;:::i;:::-;40630:61;:::i;:::-;40617:74;;40539:158;;;:::o;40703:147::-;40798:45;40837:5;40798:45;:::i;:::-;40793:3;40786:58;40703:147;;:::o;40856:114::-;40923:6;40957:5;40951:12;40941:22;;40856:114;;;:::o;40976:184::-;41075:11;41109:6;41104:3;41097:19;41149:4;41144:3;41140:14;41125:29;;40976:184;;;;:::o;41166:132::-;41233:4;41256:3;41248:11;;41286:4;41281:3;41277:14;41269:22;;41166:132;;;:::o;41304:108::-;41381:24;41399:5;41381:24;:::i;:::-;41376:3;41369:37;41304:108;;:::o;41418:179::-;41487:10;41508:46;41550:3;41542:6;41508:46;:::i;:::-;41586:4;41581:3;41577:14;41563:28;;41418:179;;;;:::o;41603:113::-;41673:4;41705;41700:3;41696:14;41688:22;;41603:113;;;:::o;41752:732::-;41871:3;41900:54;41948:5;41900:54;:::i;:::-;41970:86;42049:6;42044:3;41970:86;:::i;:::-;41963:93;;42080:56;42130:5;42080:56;:::i;:::-;42159:7;42190:1;42175:284;42200:6;42197:1;42194:13;42175:284;;;42276:6;42270:13;42303:63;42362:3;42347:13;42303:63;:::i;:::-;42296:70;;42389:60;42442:6;42389:60;:::i;:::-;42379:70;;42235:224;42222:1;42219;42215:9;42210:14;;42175:284;;;42179:14;42475:3;42468:10;;41876:608;;;41752:732;;;;:::o;42490:831::-;42753:4;42791:3;42780:9;42776:19;42768:27;;42805:71;42873:1;42862:9;42858:17;42849:6;42805:71;:::i;:::-;42886:80;42962:2;42951:9;42947:18;42938:6;42886:80;:::i;:::-;43013:9;43007:4;43003:20;42998:2;42987:9;42983:18;42976:48;43041:108;43144:4;43135:6;43041:108;:::i;:::-;43033:116;;43159:72;43227:2;43216:9;43212:18;43203:6;43159:72;:::i;:::-;43241:73;43309:3;43298:9;43294:19;43285:6;43241:73;:::i;:::-;42490:831;;;;;;;;:::o;43327:320::-;43442:4;43480:2;43469:9;43465:18;43457:26;;43493:71;43561:1;43550:9;43546:17;43537:6;43493:71;:::i;:::-;43574:66;43636:2;43625:9;43621:18;43612:6;43574:66;:::i;:::-;43327:320;;;;;:::o

Swarm Source

ipfs://cac9a0ab5794445baf0cbf9033c82926fbbb97d85a56ead80c67979564bb43ad
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.