ETH Price: $2,681.50 (-2.32%)

Token

$SHIBAI ($SHIBAI)
 

Overview

Max Total Supply

1,000,000 $SHIBAI

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: $SHIBAI 2
Balance
2,424.619797321 $SHIBAI

Value
$0.00
0xfdd93f79b69ea6906941851ab7d87dcfa41c7c5b
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:
SHIBAIToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
   _____ __  __________     ___    ____
  / ___// / / /  _/ __ )   /   |  /  _/
  \__ \/ /_/ // // __  |  / /| |  / /  
 ___/ / __  // // /_/ /  / ___ |_/ /   
/____/_/ /_/___/_____/  /_/  |_/___/   
                                       
*/
// SPDX-License-Identifier:MIT
pragma solidity ^0.8.10;

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

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

// Dex Router contract interface
interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;
    mapping(address => bool) public isBot;

    string private _name = "$SHIBAI";
    string private _symbol = "$SHIBAI";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 1_000_000 * 1e9;

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    IDexRouter public dexRouter;
    address public dexPair;
    address public marketingWallet;

    uint256 public minTokenToSwap = _totalSupply.div(1e4); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply.mul(2).div(1000); // this is the max wallet holding limit
    uint256 public maxTxnLimit = _totalSupply.div(1000); // this is the max transaction limit
    uint256 public botFee = 990;
    uint256 public percentDivider = 1000;
    uint256 public snipingTime = 40 seconds;
    uint256 public launchedAt;

    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards

    uint256 public liquidityFeeOnBuying = 20; // 2% will be added to the liquidity
    uint256 public marketingFeeOnBuying = 30; // 3% will be added to the marketing address

    uint256 public liquidityFeeOnSelling = 20; // 2% will be added to the liquidity
    uint256 public marketingFeeOnSelling = 30; // 3% will be added to the marketing address

    uint256 liquidityFeeCounter = 0;
    uint256 marketingFeeCounter = 0;

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

    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = address(0x7426330a6dD6a0d077A23d6D13494178115CdcD1);

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "$SHIBAI: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

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

    function includeOrExcludeFromFee(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0, "$SHIBAI: can't be 0");
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply.mul(2).div(percentDivider),
            "$SHIBAI: should be greater than 0.2%"
        );
        maxHoldLimit = _amount;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply / percentDivider,
            "$SHIBAI: should be greater than 0.1%"
        );
        maxTxnLimit = _amount;
    }

    function setBuyFeePercent(
        uint256 _lpFee,
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnBuying = _lpFee;
        liquidityFeeOnBuying = _marketingFee;
        require(
            _lpFee.add(_marketingFee) <= percentDivider.div(10),
            "$SHIBAI: can't be more than 10%"
        );
    }

    function setSellFeePercent(
        uint256 _lpFee,
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnSelling = _lpFee;
        liquidityFeeOnSelling = _marketingFee;
        require(
            _lpFee.add(_marketingFee) <= percentDivider.div(10),
            "$SHIBAI: can't be more than 10%"
        );
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function setIsBot(address holder, bool exempt)
        external
        onlyOwner
    {
        isBot[holder] = exempt;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "$SHIBAI: already enabled");
        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnBuying.add(liquidityFeeOnBuying))
            .div(percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnSelling.add(liquidityFeeOnSelling))
            .div(percentDivider);
        return fee;
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "$SHIBAI: transfer from the zero address");
        require(to != address(0), "$SHIBAI: transfer to the zero address");
        require(amount > 0, "$SHIBAI: Amount must be greater than zero");
        require(!isBot[from],"Bot detected");

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "$SHIBAI: max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "$SHIBAI: trading is disable"
                );
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "$SHIBAI: max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            // antibot
            if (
                block.timestamp < launchedAt + snipingTime &&
                sender != address(dexRouter)
            ) {
                allFee = amount.mul(botFee).div(percentDivider);
                marketingFeeCounter += allFee;
                tTransferAmount = amount.sub(allFee);
            } else {
                allFee = totalBuyFeePerTx(amount);
                tTransferAmount = amount.sub(allFee);
                setFeeCountersOnBuying(amount);
            }

            _balances[sender] = _balances[sender].sub(
                amount,
                "$SHIBAI: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(
                amount,
                "$SHIBAI: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
            setFeeCountersOnSelling(amount);
        } else {
            _balances[sender] = _balances[sender].sub(
                amount,
                "$SHIBAI: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function setFeeCountersOnBuying(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnBuying).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnBuying).div(
            percentDivider
        );
    }

    function setFeeCountersOnSelling(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnSelling).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnSelling).div(
            percentDivider
        );
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), contractTokenBalance);

            uint256 halfLiquidity = liquidityFeeCounter.div(2);
            uint256 otherHalfLiquidity = liquidityFeeCounter.sub(halfLiquidity);

            uint256 tokenAmountToBeSwapped = contractTokenBalance.sub(
                otherHalfLiquidity
            );

            uint256 balanceBefore = address(this).balance;

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), tokenAmountToBeSwapped);

            uint256 deltaBalance = address(this).balance.sub(balanceBefore);

            uint256 ethToBeAddedToLiquidity = deltaBalance
                .mul(halfLiquidity)
                .div(tokenAmountToBeSwapped);

            // add liquidity to Dex
            if (ethToBeAddedToLiquidity > 0) {
                Utils.addLiquidity(
                    address(dexRouter),
                    owner(),
                    otherHalfLiquidity,
                    ethToBeAddedToLiquidity
                );

                emit SwapAndLiquify(
                    halfLiquidity,
                    ethToBeAddedToLiquidity,
                    otherHalfLiquidity
                );
            }

            uint256 ethForMarketing = address(this).balance.sub(
                ethToBeAddedToLiquidity
            );

            // sending Eth to Marketing wallet
            if (ethForMarketing > 0) payable(marketingWallet).transfer(ethForMarketing);

            // Reset all fee counters
            liquidityFeeCounter = 0;
            marketingFeeCounter = 0;
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

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

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

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

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

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","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":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","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":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600781526020017f2453484942414900000000000000000000000000000000000000000000000000815250600790805190602001906200005192919062000a19565b506040518060400160405280600781526020017f2453484942414900000000000000000000000000000000000000000000000000815250600890805190602001906200009f92919062000a19565b5060098060006101000a81548160ff021916908360ff16021790555066038d7ea4c68000600a55620000e4612710600a54620008aa60201b620023311790919060201c565b600e556200011f6103e86200010b6002600a54620008fc60201b6200237b1790919060201c565b620008aa60201b620023311790919060201c565b600f55620001406103e8600a54620008aa60201b620023311790919060201c565b6010556103de6011556103e860125560286013556014601655601e6017556014601855601e6019556000601a556000601b553480156200017f57600080fd5b50620001906200098060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460016000620002616200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737426330a6dd6a0d077a23d6d13494178115cdcd1600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000381919062000b33565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040f919062000b33565b6040518363ffffffff1660e01b81526004016200042e92919062000b76565b6020604051808303816000875af11580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000b33565b905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200050e6200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005cd6200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200068c6200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008396200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200089a919062000bbe565b60405180910390a3505062000e97565b6000620008f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620009b160201b60201c565b905092915050565b6000808314156200091157600090506200097a565b6000828462000921919062000c0a565b905082848262000932919062000c9a565b1462000975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096c9062000d59565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f2919062000e0e565b60405180910390fd5b506000838562000a0c919062000c9a565b9050809150509392505050565b82805462000a279062000e61565b90600052602060002090601f01602090048101928262000a4b576000855562000a97565b82601f1062000a6657805160ff191683800117855562000a97565b8280016001018555821562000a97579182015b8281111562000a9657825182559160200191906001019062000a79565b5b50905062000aa6919062000aaa565b5090565b5b8082111562000ac557600081600090555060010162000aab565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000afb8262000ace565b9050919050565b62000b0d8162000aee565b811462000b1957600080fd5b50565b60008151905062000b2d8162000b02565b92915050565b60006020828403121562000b4c5762000b4b62000ac9565b5b600062000b5c8482850162000b1c565b91505092915050565b62000b708162000aee565b82525050565b600060408201905062000b8d600083018562000b65565b62000b9c602083018462000b65565b9392505050565b6000819050919050565b62000bb88162000ba3565b82525050565b600060208201905062000bd5600083018462000bad565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c178262000ba3565b915062000c248362000ba3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c605762000c5f62000bdb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ca78262000ba3565b915062000cb48362000ba3565b92508262000cc75762000cc662000c6b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d4160218362000cd2565b915062000d4e8262000ce3565b604082019050919050565b6000602082019050818103600083015262000d748162000d32565b9050919050565b600081519050919050565b60005b8381101562000da657808201518184015260208101905062000d89565b8381111562000db6576000848401525b50505050565b6000601f19601f8301169050919050565b600062000dda8262000d7b565b62000de6818562000cd2565b935062000df881856020860162000d86565b62000e038162000dbc565b840191505092915050565b6000602082019050818103600083015262000e2a818462000dcd565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e7a57607f821691505b6020821081141562000e915762000e9062000e32565b5b50919050565b614e608062000ea76000396000f3fe6080604052600436106102e85760003560e01c8063879dd3c511610190578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610b71578063f4b3dbc314610b9a578063f9dfdaeb14610bd7578063fe6f1b0514610c00576102ef565b8063ed42142914610ae0578063f097ea1a14610b1d578063f242ab4114610b46576102ef565b8063bf56b371146109ce578063bf862391146109f9578063dd62ed3e14610a24578063e6c84dc614610a61578063ea5b9e8514610a8c578063ec44acf214610ab5576102ef565b80639b6a275011610149578063a7c29b4011610123578063a7c29b4014610916578063a9059cbb1461093f578063b0bc2a2d1461097c578063be291dc6146109a5576102ef565b80639b6a275014610887578063a457c2d7146108b0578063a643c1a0146108ed576102ef565b8063879dd3c5146107875780638a8c523c146107b25780638da5cb5b146107c957806395d89b41146107f457806399b102b51461081f5780639a36dfa11461085c576102ef565b80633bbac5791161024f57806375f0a874116102085780637d99c66d116101e25780637d99c66d146106cb578063844af78e146106f657806384ea21bc146107215780638756aabd1461075e576102ef565b806375f0a8741461064a57806379777b4e146106755780637c6a9a9c146106a0576102ef565b80633bbac579146105285780635342acb414610565578063679a3c59146105a2578063681aa362146105cb57806370a08231146105f6578063715018a614610633576102ef565b80631884f1e6116102a15780631884f1e61461040457806323b872dd1461042f5780632d1293901461046c578063313ce567146104955780633326d7f2146104c057806339509351146104eb576102ef565b806303c0f5d4146102f457806306fdde031461031d5780630758d92414610348578063095ea7b3146103735780630a2d140c146103b057806318160ddd146103d9576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613c27565b610c2b565b005b34801561032957600080fd5b50610332610d1b565b60405161033f9190613d00565b60405180910390f35b34801561035457600080fd5b5061035d610dad565b60405161036a9190613d81565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613dd2565b610dd3565b6040516103a79190613e21565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e3c565b610df1565b005b3480156103e557600080fd5b506103ee610ea3565b6040516103fb9190613e78565b60405180910390f35b34801561041057600080fd5b50610419610ead565b6040516104269190613e78565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613e93565b610eb3565b6040516104639190613e21565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613c27565b610f8c565b005b3480156104a157600080fd5b506104aa61107c565b6040516104b79190613f02565b60405180910390f35b3480156104cc57600080fd5b506104d5611093565b6040516104e29190613e78565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613dd2565b611099565b60405161051f9190613e21565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613f1d565b61114c565b60405161055c9190613e21565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f1d565b61116c565b6040516105999190613e21565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613f1d565b61118c565b005b3480156105d757600080fd5b506105e061126b565b6040516105ed9190613e78565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613f1d565b611271565b60405161062a9190613e78565b60405180910390f35b34801561063f57600080fd5b506106486112ba565b005b34801561065657600080fd5b5061065f61140d565b60405161066c9190613f59565b60405180910390f35b34801561068157600080fd5b5061068a611433565b6040516106979190613e21565b60405180910390f35b3480156106ac57600080fd5b506106b5611446565b6040516106c29190613e78565b60405180910390f35b3480156106d757600080fd5b506106e061144c565b6040516106ed9190613e78565b60405180910390f35b34801561070257600080fd5b5061070b611452565b6040516107189190613e78565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613f1d565b611458565b6040516107559190613e21565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613f74565b611478565b005b34801561079357600080fd5b5061079c611583565b6040516107a99190613e21565b60405180910390f35b3480156107be57600080fd5b506107c7611596565b005b3480156107d557600080fd5b506107de6116d5565b6040516107eb9190613f59565b60405180910390f35b34801561080057600080fd5b506108096116fe565b6040516108169190613d00565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613f1d565b611790565b6040516108539190613e21565b60405180910390f35b34801561086857600080fd5b506108716117b0565b60405161087e9190613e78565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613f74565b6117b6565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190613dd2565b6118a7565b6040516108e49190613e21565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f1d565b611974565b005b34801561092257600080fd5b5061093d60048036038101906109389190613c27565b611a4d565b005b34801561094b57600080fd5b5061096660048036038101906109619190613dd2565b611b3d565b6040516109739190613e21565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613e3c565b611b5b565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613fa1565b611c0d565b005b3480156109da57600080fd5b506109e3611d1e565b6040516109f09190613e78565b60405180910390f35b348015610a0557600080fd5b50610a0e611d24565b604051610a1b9190613e78565b60405180910390f35b348015610a3057600080fd5b50610a4b6004803603810190610a469190613fe1565b611d2a565b604051610a589190613e78565b60405180910390f35b348015610a6d57600080fd5b50610a76611db1565b604051610a839190613e78565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613c27565b611db7565b005b348015610ac157600080fd5b50610aca611ea7565b604051610ad79190613e21565b60405180910390f35b348015610aec57600080fd5b50610b076004803603810190610b029190613f74565b611eba565b604051610b149190613e78565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613f74565b611f05565b005b348015610b5257600080fd5b50610b5b611fe7565b604051610b689190613f59565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613f1d565b61200d565b005b348015610ba657600080fd5b50610bc16004803603810190610bbc9190613f74565b6121cf565b604051610bce9190613e78565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190613fa1565b61221a565b005b348015610c0c57600080fd5b50610c1561232b565b604051610c229190613e78565b60405180910390f35b610c336123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061406d565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610d2a906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d56906140bc565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de7610de06123f6565b84846123fe565b6001905092915050565b610df96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061406d565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600e5481565b6000610ec08484846125c9565b610f8184610ecc6123f6565b610f7c856040518060600160405280602a8152602001614e01602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f326123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b600190509392505050565b610f946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061406d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60165481565b60006111426110a66123f6565b8461113d85600260006110b76123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b6123fe565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6111946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061406d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611267573d6000803e3d6000fd5b5050565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c26123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113469061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b60175481565b60135481565b60195481565b60056020528060005260406000206000915054906101000a900460ff1681565b6114806123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061406d565b60405180910390fd5b6115376012546115296002600a5461237b90919063ffffffff16565b61233190919063ffffffff16565b811015611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614160565b60405180910390fd5b80600f8190555050565b601560019054906101000a900460ff1681565b61159e6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116229061406d565b60405180910390fd5b601560029054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906141cc565b60405180910390fd5b6001601560026101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560006101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461170d906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611739906140bc565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6117be6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118429061406d565b60405180910390fd5b601254600a5461185b919061424a565b81101561189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906142ed565b60405180910390fd5b8060108190555050565b600061196a6118b46123f6565b84611965856040518060600160405280602a8152602001614dd7602a9139600260006118de6123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b6001905092915050565b61197c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a009061406d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a556123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061406d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b51611b4a6123f6565b84846125c9565b6001905092915050565b611b636123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be79061406d565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b611c156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c999061406d565b60405180910390fd5b8160198190555080601881905550611cc6600a60125461233190919063ffffffff16565b611cd98284612b6290919063ffffffff16565b1115611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190614359565b60405180910390fd5b5050565b60145481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611dbf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061406d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560029054906101000a900460ff1681565b600080611efa601254611eec611edd601654601754612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b611f0d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061406d565b60405180910390fd5b60008111611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd4906143c5565b60405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120999061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614457565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061220f6012546122016121f2601854601954612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b6122226123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061406d565b60405180910390fd5b81601781905550806016819055506122d3600a60125461233190919063ffffffff16565b6122e68284612b6290919063ffffffff16565b1115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614359565b60405180910390fd5b5050565b60125481565b600061237383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc0565b905092915050565b60008083141561238e57600090506123f0565b6000828461239c9190614477565b90508284826123ab919061424a565b146123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614543565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906145d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614667565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125bc9190613e78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906146f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a09061478b565b60405180910390fd5b600081116126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39061481d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614889565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296857601054811115612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e906148f5565b60405180910390fd5b601560029054906101000a900460ff16612967578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561292757508173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90614961565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1957600f546129d7826129c985611271565b612b6290919063ffffffff16565b1115612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f906149cd565b60405180910390fd5b5b612a238383612c23565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aca5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ae25750601560019054906101000a900460ff16155b15612aec57600090505b612af884848484612f4d565b50505050565b6000838311158290612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d9190613d00565b60405180910390fd5b5060008385612b5591906149ed565b9050809150509392505050565b6000808284612b719190614a21565b905083811015612bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bad90614ac3565b60405180910390fd5b8091505092915050565b60008083118290612c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfe9190613d00565b60405180910390fd5b5060008385612c16919061424a565b9050809150509392505050565b6000612c2e30611271565b90506000600e548210159050808015612c955750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612cad5750601560009054906101000a900460ff165b8015612d3e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612d3c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612f4757612d7030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123fe565b6000612d886002601a5461233190919063ffffffff16565b90506000612da182601a546136b090919063ffffffff16565b90506000612db882866136b090919063ffffffff16565b90506000479050612deb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836136fa565b6000612e0082476136b090919063ffffffff16565b90506000612e2984612e1b888561237b90919063ffffffff16565b61233190919063ffffffff16565b90506000811115612ea557612e69600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612e626116d5565b87846138e0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612e9c93929190614ae3565b60405180910390a15b6000612eba82476136b090919063ffffffff16565b90506000811115612f2f57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f2d573d6000803e3d6000fd5b505b6000601a819055506000601b81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612fa75750805b1561327f57600080601354601454612fbf9190614a21565b4210801561301b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561307e5761304960125461303b6011548761237b90919063ffffffff16565b61233190919063ffffffff16565b915081601b600082825461305d9190614a21565b9250508190555061307782856136b090919063ffffffff16565b90506130a8565b61308784611eba565b915061309c82856136b090919063ffffffff16565b90506130a784613984565b5b613131846040518060400160405280601d81526020017f245348494241493a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132669190613e78565b60405180910390a36132788683613a09565b50506136aa565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132d95750805b156134e25760006132e9836121cf565b9050600061330082856136b090919063ffffffff16565b905061338b846040518060400160405280601d81526020017f245348494241493a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134c09190613e78565b60405180910390a36134d28683613a09565b6134db84613b07565b50506136a9565b61356b826040518060400160405280601d81526020017f245348494241493a20696e73756666696369656e742062616c616e6365000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136a09190613e78565b60405180910390a35b5b50505050565b60006136f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afe565b905092915050565b60008290506000600267ffffffffffffffff81111561371c5761371b614b1a565b5b60405190808252806020026020018201604052801561374a5781602001602082028036833780820191505090505b509050308160008151811061376257613761614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380b9190614b8d565b8160018151811061381f5761381e614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426138889190614a21565b6040518663ffffffff1660e01b81526004016138a8959493929190614cb3565b600060405180830381600087803b1580156138c257600080fd5b505af11580156138d6573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426139169190614a21565b6040518863ffffffff1660e01b815260040161393796959493929190614d0d565b60606040518083038185885af1158015613955573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061397a9190614d83565b5050505050505050565b6139ad60125461399f6016548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a60008282546139be9190614a21565b925050819055506139ee6012546139e06017548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b60008282546139ff9190614a21565b9250508190555050565b613a5b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613e78565b60405180910390a35050565b613b30601254613b226018548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a6000828254613b419190614a21565b92505081905550613b71601254613b636019548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b6000828254613b829190614a21565b9250508190555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bbc82613b91565b9050919050565b613bcc81613bb1565b8114613bd757600080fd5b50565b600081359050613be981613bc3565b92915050565b60008115159050919050565b613c0481613bef565b8114613c0f57600080fd5b50565b600081359050613c2181613bfb565b92915050565b60008060408385031215613c3e57613c3d613b8c565b5b6000613c4c85828601613bda565b9250506020613c5d85828601613c12565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca1578082015181840152602081019050613c86565b83811115613cb0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cd282613c67565b613cdc8185613c72565b9350613cec818560208601613c83565b613cf581613cb6565b840191505092915050565b60006020820190508181036000830152613d1a8184613cc7565b905092915050565b6000819050919050565b6000613d47613d42613d3d84613b91565b613d22565b613b91565b9050919050565b6000613d5982613d2c565b9050919050565b6000613d6b82613d4e565b9050919050565b613d7b81613d60565b82525050565b6000602082019050613d966000830184613d72565b92915050565b6000819050919050565b613daf81613d9c565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b60008060408385031215613de957613de8613b8c565b5b6000613df785828601613bda565b9250506020613e0885828601613dbd565b9150509250929050565b613e1b81613bef565b82525050565b6000602082019050613e366000830184613e12565b92915050565b600060208284031215613e5257613e51613b8c565b5b6000613e6084828501613c12565b91505092915050565b613e7281613d9c565b82525050565b6000602082019050613e8d6000830184613e69565b92915050565b600080600060608486031215613eac57613eab613b8c565b5b6000613eba86828701613bda565b9350506020613ecb86828701613bda565b9250506040613edc86828701613dbd565b9150509250925092565b600060ff82169050919050565b613efc81613ee6565b82525050565b6000602082019050613f176000830184613ef3565b92915050565b600060208284031215613f3357613f32613b8c565b5b6000613f4184828501613bda565b91505092915050565b613f5381613bb1565b82525050565b6000602082019050613f6e6000830184613f4a565b92915050565b600060208284031215613f8a57613f89613b8c565b5b6000613f9884828501613dbd565b91505092915050565b60008060408385031215613fb857613fb7613b8c565b5b6000613fc685828601613dbd565b9250506020613fd785828601613dbd565b9150509250929050565b60008060408385031215613ff857613ff7613b8c565b5b600061400685828601613bda565b925050602061401785828601613bda565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614057602083613c72565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140d457607f821691505b602082108114156140e8576140e761408d565b5b50919050565b7f245348494241493a2073686f756c642062652067726561746572207468616e2060008201527f302e322500000000000000000000000000000000000000000000000000000000602082015250565b600061414a602483613c72565b9150614155826140ee565b604082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f245348494241493a20616c726561647920656e61626c65640000000000000000600082015250565b60006141b6601883613c72565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061425582613d9c565b915061426083613d9c565b9250826142705761426f6141ec565b5b828204905092915050565b7f245348494241493a2073686f756c642062652067726561746572207468616e2060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b60006142d7602483613c72565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f245348494241493a2063616e2774206265206d6f7265207468616e2031302500600082015250565b6000614343601f83613c72565b915061434e8261430d565b602082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f245348494241493a2063616e2774206265203000000000000000000000000000600082015250565b60006143af601383613c72565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614441602683613c72565b915061444c826143e5565b604082019050919050565b6000602082019050818103600083015261447081614434565b9050919050565b600061448282613d9c565b915061448d83613d9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144c6576144c561421b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061452d602183613c72565b9150614538826144d1565b604082019050919050565b6000602082019050818103600083015261455c81614520565b9050919050565b7f245348494241493a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145bf602683613c72565b91506145ca82614563565b604082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f245348494241493a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614651602483613c72565b915061465c826145f5565b604082019050919050565b6000602082019050818103600083015261468081614644565b9050919050565b7f245348494241493a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006146e3602783613c72565b91506146ee82614687565b604082019050919050565b60006020820190508181036000830152614712816146d6565b9050919050565b7f245348494241493a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614775602583613c72565b915061478082614719565b604082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b7f245348494241493a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614807602983613c72565b9150614812826147ab565b604082019050919050565b60006020820190508181036000830152614836816147fa565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000614873600c83613c72565b915061487e8261483d565b602082019050919050565b600060208201905081810360008301526148a281614866565b9050919050565b7f245348494241493a206d61782074786e206c696d697420657863656564730000600082015250565b60006148df601e83613c72565b91506148ea826148a9565b602082019050919050565b6000602082019050818103600083015261490e816148d2565b9050919050565b7f245348494241493a2074726164696e672069732064697361626c650000000000600082015250565b600061494b601b83613c72565b915061495682614915565b602082019050919050565b6000602082019050818103600083015261497a8161493e565b9050919050565b7f245348494241493a206d617820686f6c64206c696d6974206578636565647300600082015250565b60006149b7601f83613c72565b91506149c282614981565b602082019050919050565b600060208201905081810360008301526149e6816149aa565b9050919050565b60006149f882613d9c565b9150614a0383613d9c565b925082821015614a1657614a1561421b565b5b828203905092915050565b6000614a2c82613d9c565b9150614a3783613d9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6c57614a6b61421b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614aad601b83613c72565b9150614ab882614a77565b602082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b6000606082019050614af86000830186613e69565b614b056020830185613e69565b614b126040830184613e69565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614b8781613bc3565b92915050565b600060208284031215614ba357614ba2613b8c565b5b6000614bb184828501614b78565b91505092915050565b6000819050919050565b6000614bdf614bda614bd584614bba565b613d22565b613d9c565b9050919050565b614bef81614bc4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c2a81613bb1565b82525050565b6000614c3c8383614c21565b60208301905092915050565b6000602082019050919050565b6000614c6082614bf5565b614c6a8185614c00565b9350614c7583614c11565b8060005b83811015614ca6578151614c8d8882614c30565b9750614c9883614c48565b925050600181019050614c79565b5085935050505092915050565b600060a082019050614cc86000830188613e69565b614cd56020830187614be6565b8181036040830152614ce78186614c55565b9050614cf66060830185613f4a565b614d036080830184613e69565b9695505050505050565b600060c082019050614d226000830189613f4a565b614d2f6020830188613e69565b614d3c6040830187614be6565b614d496060830186614be6565b614d566080830185613f4a565b614d6360a0830184613e69565b979650505050505050565b600081519050614d7d81613da6565b92915050565b600080600060608486031215614d9c57614d9b613b8c565b5b6000614daa86828701614d6e565b9350506020614dbb86828701614d6e565b9250506040614dcc86828701614d6e565b915050925092509256fe245348494241493a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f245348494241493a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220079e7e39c438fe3ab598f4cd327be0fa5c7f88d8e260e64420171366576572f364736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063879dd3c511610190578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610b71578063f4b3dbc314610b9a578063f9dfdaeb14610bd7578063fe6f1b0514610c00576102ef565b8063ed42142914610ae0578063f097ea1a14610b1d578063f242ab4114610b46576102ef565b8063bf56b371146109ce578063bf862391146109f9578063dd62ed3e14610a24578063e6c84dc614610a61578063ea5b9e8514610a8c578063ec44acf214610ab5576102ef565b80639b6a275011610149578063a7c29b4011610123578063a7c29b4014610916578063a9059cbb1461093f578063b0bc2a2d1461097c578063be291dc6146109a5576102ef565b80639b6a275014610887578063a457c2d7146108b0578063a643c1a0146108ed576102ef565b8063879dd3c5146107875780638a8c523c146107b25780638da5cb5b146107c957806395d89b41146107f457806399b102b51461081f5780639a36dfa11461085c576102ef565b80633bbac5791161024f57806375f0a874116102085780637d99c66d116101e25780637d99c66d146106cb578063844af78e146106f657806384ea21bc146107215780638756aabd1461075e576102ef565b806375f0a8741461064a57806379777b4e146106755780637c6a9a9c146106a0576102ef565b80633bbac579146105285780635342acb414610565578063679a3c59146105a2578063681aa362146105cb57806370a08231146105f6578063715018a614610633576102ef565b80631884f1e6116102a15780631884f1e61461040457806323b872dd1461042f5780632d1293901461046c578063313ce567146104955780633326d7f2146104c057806339509351146104eb576102ef565b806303c0f5d4146102f457806306fdde031461031d5780630758d92414610348578063095ea7b3146103735780630a2d140c146103b057806318160ddd146103d9576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613c27565b610c2b565b005b34801561032957600080fd5b50610332610d1b565b60405161033f9190613d00565b60405180910390f35b34801561035457600080fd5b5061035d610dad565b60405161036a9190613d81565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613dd2565b610dd3565b6040516103a79190613e21565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e3c565b610df1565b005b3480156103e557600080fd5b506103ee610ea3565b6040516103fb9190613e78565b60405180910390f35b34801561041057600080fd5b50610419610ead565b6040516104269190613e78565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613e93565b610eb3565b6040516104639190613e21565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613c27565b610f8c565b005b3480156104a157600080fd5b506104aa61107c565b6040516104b79190613f02565b60405180910390f35b3480156104cc57600080fd5b506104d5611093565b6040516104e29190613e78565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613dd2565b611099565b60405161051f9190613e21565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613f1d565b61114c565b60405161055c9190613e21565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f1d565b61116c565b6040516105999190613e21565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613f1d565b61118c565b005b3480156105d757600080fd5b506105e061126b565b6040516105ed9190613e78565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613f1d565b611271565b60405161062a9190613e78565b60405180910390f35b34801561063f57600080fd5b506106486112ba565b005b34801561065657600080fd5b5061065f61140d565b60405161066c9190613f59565b60405180910390f35b34801561068157600080fd5b5061068a611433565b6040516106979190613e21565b60405180910390f35b3480156106ac57600080fd5b506106b5611446565b6040516106c29190613e78565b60405180910390f35b3480156106d757600080fd5b506106e061144c565b6040516106ed9190613e78565b60405180910390f35b34801561070257600080fd5b5061070b611452565b6040516107189190613e78565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613f1d565b611458565b6040516107559190613e21565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613f74565b611478565b005b34801561079357600080fd5b5061079c611583565b6040516107a99190613e21565b60405180910390f35b3480156107be57600080fd5b506107c7611596565b005b3480156107d557600080fd5b506107de6116d5565b6040516107eb9190613f59565b60405180910390f35b34801561080057600080fd5b506108096116fe565b6040516108169190613d00565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613f1d565b611790565b6040516108539190613e21565b60405180910390f35b34801561086857600080fd5b506108716117b0565b60405161087e9190613e78565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613f74565b6117b6565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190613dd2565b6118a7565b6040516108e49190613e21565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f1d565b611974565b005b34801561092257600080fd5b5061093d60048036038101906109389190613c27565b611a4d565b005b34801561094b57600080fd5b5061096660048036038101906109619190613dd2565b611b3d565b6040516109739190613e21565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613e3c565b611b5b565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613fa1565b611c0d565b005b3480156109da57600080fd5b506109e3611d1e565b6040516109f09190613e78565b60405180910390f35b348015610a0557600080fd5b50610a0e611d24565b604051610a1b9190613e78565b60405180910390f35b348015610a3057600080fd5b50610a4b6004803603810190610a469190613fe1565b611d2a565b604051610a589190613e78565b60405180910390f35b348015610a6d57600080fd5b50610a76611db1565b604051610a839190613e78565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613c27565b611db7565b005b348015610ac157600080fd5b50610aca611ea7565b604051610ad79190613e21565b60405180910390f35b348015610aec57600080fd5b50610b076004803603810190610b029190613f74565b611eba565b604051610b149190613e78565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613f74565b611f05565b005b348015610b5257600080fd5b50610b5b611fe7565b604051610b689190613f59565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613f1d565b61200d565b005b348015610ba657600080fd5b50610bc16004803603810190610bbc9190613f74565b6121cf565b604051610bce9190613e78565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190613fa1565b61221a565b005b348015610c0c57600080fd5b50610c1561232b565b604051610c229190613e78565b60405180910390f35b610c336123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061406d565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610d2a906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d56906140bc565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de7610de06123f6565b84846123fe565b6001905092915050565b610df96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061406d565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600e5481565b6000610ec08484846125c9565b610f8184610ecc6123f6565b610f7c856040518060600160405280602a8152602001614e01602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f326123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b600190509392505050565b610f946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061406d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60165481565b60006111426110a66123f6565b8461113d85600260006110b76123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b6123fe565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6111946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061406d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611267573d6000803e3d6000fd5b5050565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c26123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113469061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b60175481565b60135481565b60195481565b60056020528060005260406000206000915054906101000a900460ff1681565b6114806123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061406d565b60405180910390fd5b6115376012546115296002600a5461237b90919063ffffffff16565b61233190919063ffffffff16565b811015611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614160565b60405180910390fd5b80600f8190555050565b601560019054906101000a900460ff1681565b61159e6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116229061406d565b60405180910390fd5b601560029054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906141cc565b60405180910390fd5b6001601560026101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560006101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461170d906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611739906140bc565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6117be6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118429061406d565b60405180910390fd5b601254600a5461185b919061424a565b81101561189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906142ed565b60405180910390fd5b8060108190555050565b600061196a6118b46123f6565b84611965856040518060600160405280602a8152602001614dd7602a9139600260006118de6123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b6001905092915050565b61197c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a009061406d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a556123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061406d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b51611b4a6123f6565b84846125c9565b6001905092915050565b611b636123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be79061406d565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b611c156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c999061406d565b60405180910390fd5b8160198190555080601881905550611cc6600a60125461233190919063ffffffff16565b611cd98284612b6290919063ffffffff16565b1115611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190614359565b60405180910390fd5b5050565b60145481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611dbf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061406d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560029054906101000a900460ff1681565b600080611efa601254611eec611edd601654601754612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b611f0d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061406d565b60405180910390fd5b60008111611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd4906143c5565b60405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120999061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614457565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061220f6012546122016121f2601854601954612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b6122226123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061406d565b60405180910390fd5b81601781905550806016819055506122d3600a60125461233190919063ffffffff16565b6122e68284612b6290919063ffffffff16565b1115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614359565b60405180910390fd5b5050565b60125481565b600061237383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc0565b905092915050565b60008083141561238e57600090506123f0565b6000828461239c9190614477565b90508284826123ab919061424a565b146123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614543565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906145d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614667565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125bc9190613e78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906146f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a09061478b565b60405180910390fd5b600081116126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39061481d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614889565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296857601054811115612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e906148f5565b60405180910390fd5b601560029054906101000a900460ff16612967578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561292757508173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90614961565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1957600f546129d7826129c985611271565b612b6290919063ffffffff16565b1115612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f906149cd565b60405180910390fd5b5b612a238383612c23565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aca5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ae25750601560019054906101000a900460ff16155b15612aec57600090505b612af884848484612f4d565b50505050565b6000838311158290612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d9190613d00565b60405180910390fd5b5060008385612b5591906149ed565b9050809150509392505050565b6000808284612b719190614a21565b905083811015612bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bad90614ac3565b60405180910390fd5b8091505092915050565b60008083118290612c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfe9190613d00565b60405180910390fd5b5060008385612c16919061424a565b9050809150509392505050565b6000612c2e30611271565b90506000600e548210159050808015612c955750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612cad5750601560009054906101000a900460ff165b8015612d3e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612d3c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612f4757612d7030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123fe565b6000612d886002601a5461233190919063ffffffff16565b90506000612da182601a546136b090919063ffffffff16565b90506000612db882866136b090919063ffffffff16565b90506000479050612deb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836136fa565b6000612e0082476136b090919063ffffffff16565b90506000612e2984612e1b888561237b90919063ffffffff16565b61233190919063ffffffff16565b90506000811115612ea557612e69600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612e626116d5565b87846138e0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612e9c93929190614ae3565b60405180910390a15b6000612eba82476136b090919063ffffffff16565b90506000811115612f2f57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f2d573d6000803e3d6000fd5b505b6000601a819055506000601b81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612fa75750805b1561327f57600080601354601454612fbf9190614a21565b4210801561301b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561307e5761304960125461303b6011548761237b90919063ffffffff16565b61233190919063ffffffff16565b915081601b600082825461305d9190614a21565b9250508190555061307782856136b090919063ffffffff16565b90506130a8565b61308784611eba565b915061309c82856136b090919063ffffffff16565b90506130a784613984565b5b613131846040518060400160405280601d81526020017f245348494241493a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132669190613e78565b60405180910390a36132788683613a09565b50506136aa565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132d95750805b156134e25760006132e9836121cf565b9050600061330082856136b090919063ffffffff16565b905061338b846040518060400160405280601d81526020017f245348494241493a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134c09190613e78565b60405180910390a36134d28683613a09565b6134db84613b07565b50506136a9565b61356b826040518060400160405280601d81526020017f245348494241493a20696e73756666696369656e742062616c616e6365000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136a09190613e78565b60405180910390a35b5b50505050565b60006136f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afe565b905092915050565b60008290506000600267ffffffffffffffff81111561371c5761371b614b1a565b5b60405190808252806020026020018201604052801561374a5781602001602082028036833780820191505090505b509050308160008151811061376257613761614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380b9190614b8d565b8160018151811061381f5761381e614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426138889190614a21565b6040518663ffffffff1660e01b81526004016138a8959493929190614cb3565b600060405180830381600087803b1580156138c257600080fd5b505af11580156138d6573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426139169190614a21565b6040518863ffffffff1660e01b815260040161393796959493929190614d0d565b60606040518083038185885af1158015613955573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061397a9190614d83565b5050505050505050565b6139ad60125461399f6016548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a60008282546139be9190614a21565b925050819055506139ee6012546139e06017548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b60008282546139ff9190614a21565b9250508190555050565b613a5b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613e78565b60405180910390a35050565b613b30601254613b226018548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a6000828254613b419190614a21565b92505081905550613b71601254613b636019548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b6000828254613b829190614a21565b9250508190555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bbc82613b91565b9050919050565b613bcc81613bb1565b8114613bd757600080fd5b50565b600081359050613be981613bc3565b92915050565b60008115159050919050565b613c0481613bef565b8114613c0f57600080fd5b50565b600081359050613c2181613bfb565b92915050565b60008060408385031215613c3e57613c3d613b8c565b5b6000613c4c85828601613bda565b9250506020613c5d85828601613c12565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca1578082015181840152602081019050613c86565b83811115613cb0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cd282613c67565b613cdc8185613c72565b9350613cec818560208601613c83565b613cf581613cb6565b840191505092915050565b60006020820190508181036000830152613d1a8184613cc7565b905092915050565b6000819050919050565b6000613d47613d42613d3d84613b91565b613d22565b613b91565b9050919050565b6000613d5982613d2c565b9050919050565b6000613d6b82613d4e565b9050919050565b613d7b81613d60565b82525050565b6000602082019050613d966000830184613d72565b92915050565b6000819050919050565b613daf81613d9c565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b60008060408385031215613de957613de8613b8c565b5b6000613df785828601613bda565b9250506020613e0885828601613dbd565b9150509250929050565b613e1b81613bef565b82525050565b6000602082019050613e366000830184613e12565b92915050565b600060208284031215613e5257613e51613b8c565b5b6000613e6084828501613c12565b91505092915050565b613e7281613d9c565b82525050565b6000602082019050613e8d6000830184613e69565b92915050565b600080600060608486031215613eac57613eab613b8c565b5b6000613eba86828701613bda565b9350506020613ecb86828701613bda565b9250506040613edc86828701613dbd565b9150509250925092565b600060ff82169050919050565b613efc81613ee6565b82525050565b6000602082019050613f176000830184613ef3565b92915050565b600060208284031215613f3357613f32613b8c565b5b6000613f4184828501613bda565b91505092915050565b613f5381613bb1565b82525050565b6000602082019050613f6e6000830184613f4a565b92915050565b600060208284031215613f8a57613f89613b8c565b5b6000613f9884828501613dbd565b91505092915050565b60008060408385031215613fb857613fb7613b8c565b5b6000613fc685828601613dbd565b9250506020613fd785828601613dbd565b9150509250929050565b60008060408385031215613ff857613ff7613b8c565b5b600061400685828601613bda565b925050602061401785828601613bda565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614057602083613c72565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140d457607f821691505b602082108114156140e8576140e761408d565b5b50919050565b7f245348494241493a2073686f756c642062652067726561746572207468616e2060008201527f302e322500000000000000000000000000000000000000000000000000000000602082015250565b600061414a602483613c72565b9150614155826140ee565b604082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f245348494241493a20616c726561647920656e61626c65640000000000000000600082015250565b60006141b6601883613c72565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061425582613d9c565b915061426083613d9c565b9250826142705761426f6141ec565b5b828204905092915050565b7f245348494241493a2073686f756c642062652067726561746572207468616e2060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b60006142d7602483613c72565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f245348494241493a2063616e2774206265206d6f7265207468616e2031302500600082015250565b6000614343601f83613c72565b915061434e8261430d565b602082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f245348494241493a2063616e2774206265203000000000000000000000000000600082015250565b60006143af601383613c72565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614441602683613c72565b915061444c826143e5565b604082019050919050565b6000602082019050818103600083015261447081614434565b9050919050565b600061448282613d9c565b915061448d83613d9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144c6576144c561421b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061452d602183613c72565b9150614538826144d1565b604082019050919050565b6000602082019050818103600083015261455c81614520565b9050919050565b7f245348494241493a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145bf602683613c72565b91506145ca82614563565b604082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f245348494241493a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614651602483613c72565b915061465c826145f5565b604082019050919050565b6000602082019050818103600083015261468081614644565b9050919050565b7f245348494241493a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006146e3602783613c72565b91506146ee82614687565b604082019050919050565b60006020820190508181036000830152614712816146d6565b9050919050565b7f245348494241493a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614775602583613c72565b915061478082614719565b604082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b7f245348494241493a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614807602983613c72565b9150614812826147ab565b604082019050919050565b60006020820190508181036000830152614836816147fa565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000614873600c83613c72565b915061487e8261483d565b602082019050919050565b600060208201905081810360008301526148a281614866565b9050919050565b7f245348494241493a206d61782074786e206c696d697420657863656564730000600082015250565b60006148df601e83613c72565b91506148ea826148a9565b602082019050919050565b6000602082019050818103600083015261490e816148d2565b9050919050565b7f245348494241493a2074726164696e672069732064697361626c650000000000600082015250565b600061494b601b83613c72565b915061495682614915565b602082019050919050565b6000602082019050818103600083015261497a8161493e565b9050919050565b7f245348494241493a206d617820686f6c64206c696d6974206578636565647300600082015250565b60006149b7601f83613c72565b91506149c282614981565b602082019050919050565b600060208201905081810360008301526149e6816149aa565b9050919050565b60006149f882613d9c565b9150614a0383613d9c565b925082821015614a1657614a1561421b565b5b828203905092915050565b6000614a2c82613d9c565b9150614a3783613d9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6c57614a6b61421b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614aad601b83613c72565b9150614ab882614a77565b602082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b6000606082019050614af86000830186613e69565b614b056020830185613e69565b614b126040830184613e69565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614b8781613bc3565b92915050565b600060208284031215614ba357614ba2613b8c565b5b6000614bb184828501614b78565b91505092915050565b6000819050919050565b6000614bdf614bda614bd584614bba565b613d22565b613d9c565b9050919050565b614bef81614bc4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c2a81613bb1565b82525050565b6000614c3c8383614c21565b60208301905092915050565b6000602082019050919050565b6000614c6082614bf5565b614c6a8185614c00565b9350614c7583614c11565b8060005b83811015614ca6578151614c8d8882614c30565b9750614c9883614c48565b925050600181019050614c79565b5085935050505092915050565b600060a082019050614cc86000830188613e69565b614cd56020830187614be6565b8181036040830152614ce78186614c55565b9050614cf66060830185613f4a565b614d036080830184613e69565b9695505050505050565b600060c082019050614d226000830189613f4a565b614d2f6020830188613e69565b614d3c6040830187614be6565b614d496060830186614be6565b614d566080830185613f4a565b614d6360a0830184613e69565b979650505050505050565b600081519050614d7d81613da6565b92915050565b600080600060608486031215614d9c57614d9b613b8c565b5b6000614daa86828701614d6e565b9350506020614dbb86828701614d6e565b9250506040614dcc86828701614d6e565b915050925092509256fe245348494241493a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f245348494241493a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220079e7e39c438fe3ab598f4cd327be0fa5c7f88d8e260e64420171366576572f364736f6c634300080a0033

Deployed Bytecode Sourcemap

3431:16076:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11366:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6818:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4146:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7729:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11005:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7095:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4248:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7930:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9443:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7004:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4931:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8386:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3828:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3650:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11756:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4462:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7203:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2978:157;;;;;;;;;;;;;:::i;:::-;;4209:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4714:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5015:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4634:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3765:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9790:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4810:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11504:244;;;;;;;;;;;;;:::i;:::-;;2764:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6909:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3706:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4356:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10047:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8694:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11235:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9272:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7330:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11128:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10647:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4680:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4557:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7537:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5109:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9107:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4860:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11893:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9622:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4180:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3143:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12133:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10292:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4591:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11366:130;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11482:6:::1;11466:5;:13;11472:6;11466:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11366:130:::0;;:::o;6818:83::-;6855:13;6888:5;6881:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6818:83;:::o;4146:27::-;;;;;;;;;;;;;:::o;7729:193::-;7831:4;7853:39;7862:12;:10;:12::i;:::-;7876:7;7885:6;7853:8;:39::i;:::-;7910:4;7903:11;;7729:193;;;;:::o;11005:115::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11106:6:::1;11077:26;;:35;;;;;;;;;;;;;;;;;;11005:115:::0;:::o;7095:100::-;7148:7;7175:12;;7168:19;;7095:100;:::o;4248:53::-;;;;:::o;7930:448::-;8062:4;8079:36;8089:6;8097:9;8108:6;8079:9;:36::i;:::-;8126:222;8149:6;8170:12;:10;:12::i;:::-;8197:140;8253:6;8197:140;;;;;;;;;;;;;;;;;:11;:19;8209:6;8197:19;;;;;;;;;;;;;;;:33;8217:12;:10;:12::i;:::-;8197:33;;;;;;;;;;;;;;;;:37;;:140;;;;;:::i;:::-;8126:8;:222::i;:::-;8366:4;8359:11;;7930:448;;;;;:::o;9443:171::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9601:5:::1;9565:24;:33;9590:7;9565:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9443:171:::0;;:::o;7004:83::-;7045:5;7070:9;;;;;;;;;;;7063:16;;7004:83;:::o;4931:40::-;;;;:::o;8386:300::-;8501:4;8523:133;8546:12;:10;:12::i;:::-;8573:7;8595:50;8634:10;8595:11;:25;8607:12;:10;:12::i;:::-;8595:25;;;;;;;;;;;;;;;:34;8621:7;8595:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8523:8;:133::i;:::-;8674:4;8667:11;;8386:300;;;;:::o;3828:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;3650:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11756:129::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11835:9:::1;11827:27;;:50;11855:21;11827:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11756:129:::0;:::o;4462:51::-;;;;:::o;7203:119::-;7269:7;7296:9;:18;7306:7;7296:18;;;;;;;;;;;;;;;;7289:25;;7203:119;;;:::o;2978:157::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3085:1:::1;3048:40;;3069:6;::::0;::::1;;;;;;;;3048:40;;;;;;;;;;;;3124:1;3099:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2978:157::o:0;4209:30::-;;;;;;;;;;;;;:::o;4714:38::-;;;;;;;;;;;;;:::o;5015:40::-;;;;:::o;4634:39::-;;;;:::o;5194:41::-;;;;:::o;3765:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;9790:249::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9895:39:::1;9919:14;;9895:19;9912:1;9895:12;;:16;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;9884:7;:50;;9862:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;10024:7;10009:12;:22;;;;9790:249:::0;:::o;4810:22::-;;;;;;;;;;;;;:::o;11504:244::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11568:7:::1;;;;;;;;;;;11567:8;11559:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11625:4;11615:7;;:14;;;;;;;;;;;;;;;;;;11653:4;11640:10;;:17;;;;;;;;;;;;;;;;;;11697:4;11668:26;;:33;;;;;;;;;;;;;;;;;;11725:15;11712:10;:28;;;;11504:244::o:0;2764:79::-;2802:7;2829:6;;;;;;;;;;;2822:13;;2764:79;:::o;6909:87::-;6948:13;6981:7;6974:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6909:87;:::o;3706:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;4356:59::-;;;;:::o;10047:237::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10166:14:::1;;10151:12;;:29;;;;:::i;:::-;10140:7;:40;;10118:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;10269:7;10255:11;:21;;;;10047:237:::0;:::o;8694:405::-;8814:4;8836:233;8859:12;:10;:12::i;:::-;8886:7;8908:150;8965:15;8908:150;;;;;;;;;;;;;;;;;:11;:25;8920:12;:10;:12::i;:::-;8908:25;;;;;;;;;;;;;;;:34;8934:7;8908:34;;;;;;;;;;;;;;;;:38;;:150;;;;;:::i;:::-;8836:8;:233::i;:::-;9087:4;9080:11;;8694:405;;;;:::o;11235:123::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11334:16:::1;11316:15;;:34;;;;;;;;;;;;;;;;;;11235:123:::0;:::o;9272:163::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9422:5:::1;9390:20;:29;9411:7;9390:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9272:163:::0;;:::o;7330:199::-;7435:4;7457:42;7467:12;:10;:12::i;:::-;7481:9;7492:6;7457:9;:42::i;:::-;7517:4;7510:11;;7330:199;;;;:::o;11128:99::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11213:6:::1;11200:10;;:19;;;;;;;;;;;;;;;;;;11128:99:::0;:::o;10647:350::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10792:6:::1;10768:21;:30;;;;10833:13;10809:21;:37;;;;10908:22;10927:2;10908:14;;:18;;:22;;;;:::i;:::-;10879:25;10890:13;10879:6;:10;;:25;;;;:::i;:::-;:51;;10857:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10647:350:::0;;:::o;4680:25::-;;;;:::o;4557:27::-;;;;:::o;7537:184::-;7654:7;7686:11;:18;7698:5;7686:18;;;;;;;;;;;;;;;:27;7705:7;7686:27;;;;;;;;;;;;;;;;7679:34;;7537:184;;;;:::o;5109:41::-;;;;:::o;9107:157::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9251:5:::1;9222:17;:26;9240:7;9222:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9107:157:::0;;:::o;4860:19::-;;;;;;;;;;;;;:::o;11893:232::-;11956:7;11976:11;11990:106;12081:14;;11990:72;12015:46;12040:20;;12015;;:24;;:46;;;;:::i;:::-;11990:6;:24;;:72;;;;:::i;:::-;:90;;:106;;;;:::i;:::-;11976:120;;12114:3;12107:10;;;11893:232;;;:::o;9622:160::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9714:1:::1;9704:7;:11;9696:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;9767:7;9750:14;:24;;;;9622:160:::0;:::o;4180:22::-;;;;;;;;;;;;;:::o;3143:281::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3266:1:::1;3246:22;;:8;:22;;;;3224:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3379:8;3350:38;;3371:6;::::0;::::1;;;;;;;;3350:38;;;;;;;;;;;;3408:8;3399:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3143:281:::0;:::o;12133:235::-;12197:7;12217:11;12231:108;12324:14;;12231:74;12256:48;12282:21;;12256;;:25;;:48;;;;:::i;:::-;12231:6;:24;;:74;;;;:::i;:::-;:92;;:108;;;;:::i;:::-;12217:122;;12357:3;12350:10;;;12133:235;;;:::o;10292:347::-;2901:12;:10;:12::i;:::-;2891:22;;:6;;;;;;;;;;:22;;;2883:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10435:6:::1;10412:20;:29;;;;10475:13;10452:20;:36;;;;10550:22;10569:2;10550:14;;:18;;:22;;;;:::i;:::-;10521:25;10532:13;10521:6;:10;;:25;;;;:::i;:::-;:51;;10499:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10292:347:::0;;:::o;4591:36::-;;;;:::o;21803:132::-;21861:7;21888:39;21892:1;21895;21888:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;21881:46;;21803:132;;;;:::o;21324:471::-;21382:7;21632:1;21627;:6;21623:47;;;21657:1;21650:8;;;;21623:47;21682:9;21698:1;21694;:5;;;;:::i;:::-;21682:17;;21727:1;21722;21718;:5;;;;:::i;:::-;:10;21710:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;21786:1;21779:8;;;21324:471;;;;;:::o;2100:115::-;2153:15;2196:10;2181:26;;2100:115;:::o;12376:375::-;12520:1;12503:19;;:5;:19;;;;12495:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12603:1;12584:21;;:7;:21;;;;12576:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12689:6;12659:11;:18;12671:5;12659:18;;;;;;;;;;;;;;;:27;12678:7;12659:27;;;;;;;;;;;;;;;:36;;;;12727:7;12711:32;;12720:5;12711:32;;;12736:6;12711:32;;;;;;:::i;:::-;;;;;;;;12376:375;;;:::o;12759:1497::-;12897:1;12881:18;;:4;:18;;;;12873:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12976:1;12962:16;;:2;:16;;;;12954:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13048:1;13039:6;:10;13031:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13115:5;:11;13121:4;13115:11;;;;;;;;;;;;;;;;;;;;;;;;;13114:12;13106:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;13160:20;:26;13181:4;13160:26;;;;;;;;;;;;;;;;;;;;;;;;;13159:27;:56;;;;;13191:20;:24;13212:2;13191:24;;;;;;;;;;;;;;;;;;;;;;;;;13190:25;13159:56;13155:395;;;13250:11;;13240:6;:21;;13232:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13362:7;;;;;;;;;;;13357:182;;13431:4;13420:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;13450:2;13439:13;;:7;;;;;;;;;;;:13;;;;13420:32;13390:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;13357:182;13155:395;13567:24;:28;13592:2;13567:28;;;;;;;;;;;;;;;;;;;;;;;;;13562:196;;13667:12;;13638:25;13656:6;13638:13;13648:2;13638:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;13612:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;13562:196;13799:30;13820:4;13826:2;13799:20;:30::i;:::-;13903:12;13918:4;13903:19;;14022:17;:23;14040:4;14022:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;14049:17;:21;14067:2;14049:21;;;;;;;;;;;;;;;;;;;;;;;;;14022:48;:63;;;;14075:10;;;;;;;;;;;14074:11;14022:63;14018:111;;;14112:5;14102:15;;14018:111;14207:41;14222:4;14228:2;14232:6;14240:7;14207:14;:41::i;:::-;12862:1394;12759:1497;;;:::o;21090:226::-;21210:7;21243:1;21238;:6;;21246:12;21230:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;21270:9;21286:1;21282;:5;;;;:::i;:::-;21270:17;;21307:1;21300:8;;;21090:226;;;;;:::o;20757:181::-;20815:7;20835:9;20851:1;20847;:5;;;;:::i;:::-;20835:17;;20876:1;20871;:6;;20863:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;20929:1;20922:8;;;20757:181;;;;:::o;21943:312::-;22063:7;22095:1;22091;:5;22098:12;22083:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;22122:9;22138:1;22134;:5;;;;:::i;:::-;22122:17;;22246:1;22239:8;;;21943:312;;;;;:::o;17118:2386::-;17471:28;17502:24;17520:4;17502:9;:24::i;:::-;17471:55;;17539:15;17581:14;;17557:20;:38;;17539:56;;17626:10;:42;;;;;17661:7;;;;;;;;;;;17653:15;;:4;:15;;;;17626:42;:85;;;;;17685:26;;;;;;;;;;;17626:85;:143;;;;;17746:4;17730:21;;:4;:21;;;:38;;;;;17761:7;;;;;;;;;;;17755:13;;:2;:13;;;17730:38;17728:41;17626:143;17608:1889;;;17844:65;17861:4;17876:9;;;;;;;;;;;17888:20;17844:8;:65::i;:::-;17926:21;17950:26;17974:1;17950:19;;:23;;:26;;;;:::i;:::-;17926:50;;17991:26;18020:38;18044:13;18020:19;;:23;;:38;;;;:::i;:::-;17991:67;;18075:30;18108:76;18151:18;18108:20;:24;;:76;;;;:::i;:::-;18075:109;;18201:21;18225;18201:45;;18313:66;18344:9;;;;;;;;;;;18356:22;18313;:66::i;:::-;18396:20;18419:40;18445:13;18419:21;:25;;:40;;;;:::i;:::-;18396:63;;18476:31;18510:95;18582:22;18510:49;18545:13;18510:12;:34;;:49;;;;:::i;:::-;:71;;:95;;;;:::i;:::-;18476:129;;18689:1;18663:23;:27;18659:445;;;18711:195;18760:9;;;;;;;;;;;18793:7;:5;:7::i;:::-;18823:18;18864:23;18711:18;:195::i;:::-;18932:156;18969:13;19005:23;19051:18;18932:156;;;;;;;;:::i;:::-;;;;;;;;18659:445;19120:23;19146:82;19190:23;19146:21;:25;;:82;;;;:::i;:::-;19120:108;;19315:1;19297:15;:19;19293:75;;;19326:15;;;;;;;;;;;19318:33;;:50;19352:15;19318:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19293:75;19446:1;19424:19;:23;;;;19484:1;19462:19;:23;;;;17796:1701;;;;;;;17608:1889;17182:2322;;17118:2386;;:::o;14337:1977::-;14503:6;14492:17;;:7;;;;;;;;;;;:17;;;:28;;;;;14513:7;14492:28;14488:1819;;;14537:14;14566:23;14681:11;;14668:10;;:24;;;;:::i;:::-;14650:15;:42;:91;;;;;14731:9;;;;;;;;;;;14713:28;;:6;:28;;;;14650:91;14628:492;;;14785:38;14808:14;;14785:18;14796:6;;14785;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;14776:47;;14865:6;14842:19;;:29;;;;;;;:::i;:::-;;;;;;;;14908:18;14919:6;14908;:10;;:18;;;;:::i;:::-;14890:36;;14628:492;;;14976:24;14993:6;14976:16;:24::i;:::-;14967:33;;15037:18;15048:6;15037;:10;;:18;;;;:::i;:::-;15019:36;;15074:30;15097:6;15074:22;:30::i;:::-;14628:492;15156:111;15196:6;15156:111;;;;;;;;;;;;;;;;;:9;:17;15166:6;15156:17;;;;;;;;;;;;;;;;:21;;:111;;;;;:::i;:::-;15136:9;:17;15146:6;15136:17;;;;;;;;;;;;;;;:131;;;;15305:41;15330:15;15305:9;:20;15315:9;15305:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15282:9;:20;15292:9;15282:20;;;;;;;;;;;;;;;:64;;;;15383:9;15366:44;;15375:6;15366:44;;;15394:15;15366:44;;;;;;:::i;:::-;;;;;;;;15427:28;15440:6;15448;15427:12;:28::i;:::-;14522:945;;14488:1819;;;15488:9;15477:20;;:7;;;;;;;;;;;:20;;;:31;;;;;15501:7;15477:31;15473:834;;;15525:14;15542:25;15560:6;15542:17;:25::i;:::-;15525:42;;15582:23;15608:18;15619:6;15608;:10;;:18;;;;:::i;:::-;15582:44;;15661:111;15701:6;15661:111;;;;;;;;;;;;;;;;;:9;:17;15671:6;15661:17;;;;;;;;;;;;;;;;:21;;:111;;;;;:::i;:::-;15641:9;:17;15651:6;15641:17;;;;;;;;;;;;;;;:131;;;;15810:41;15835:15;15810:9;:20;15820:9;15810:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15787:9;:20;15797:9;15787:20;;;;;;;;;;;;;;;:64;;;;15888:9;15871:44;;15880:6;15871:44;;;15899:15;15871:44;;;;;;:::i;:::-;;;;;;;;15932:28;15945:6;15953;15932:12;:28::i;:::-;15975:31;15999:6;15975:23;:31::i;:::-;15510:508;;15473:834;;;16059:111;16099:6;16059:111;;;;;;;;;;;;;;;;;:9;:17;16069:6;16059:17;;;;;;;;;;;;;;;;:21;;:111;;;;;:::i;:::-;16039:9;:17;16049:6;16039:17;;;;;;;;;;;;;;;:131;;;;16208:32;16233:6;16208:9;:20;16218:9;16208:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16185:9;:20;16195:9;16185:20;;;;;;;;;;;;;;;:55;;;;16277:9;16260:35;;16269:6;16260:35;;;16288:6;16260:35;;;;;;:::i;:::-;;;;;;;;15473:834;14488:1819;14337:1977;;;;:::o;20946:136::-;21004:7;21031:43;21035:1;21038;21031:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;21024:50;;20946:136;;;;:::o;19603:603::-;19707:20;19741:13;19707:48;;19824:21;19862:1;19848:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19824:40;;19893:4;19875;19880:1;19875:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19919:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19909:4;19914:1;19909:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;19974:9;:60;;;20049:11;20075:1;20119:4;20146;20184:3;20166:15;:21;;;;:::i;:::-;19974:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19696:510;;19603:603;;:::o;20214:512::-;20377:20;20411:13;20377:48;;20468:9;:25;;;20501:9;20534:4;20554:11;20580:1;20623;20666:5;20704:3;20686:15;:21;;;;:::i;:::-;20468:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20366:360;20214:512;;;;:::o;16531:284::-;16621:76;16672:14;;16621:32;16632:20;;16621:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16598:19;;:99;;;;;;;:::i;:::-;;;;;;;;16731:76;16782:14;;16731:32;16742:20;;16731:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16708:19;;:99;;;;;;;:::i;:::-;;;;;;;;16531:284;:::o;16322:201::-;16422:36;16451:6;16422:9;:24;16440:4;16422:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;16395:9;:24;16413:4;16395:24;;;;;;;;;;;;;;;:63;;;;16501:4;16476:39;;16485:6;16476:39;;;16508:6;16476:39;;;;;;:::i;:::-;;;;;;;;16322:201;;:::o;16823:287::-;16914:77;16966:14;;16914:33;16925:21;;16914:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16891:19;;:100;;;;;;;:::i;:::-;;;;;;;;17025:77;17077:14;;17025:33;17036:21;;17025:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;17002:19;;:100;;;;;;;:::i;:::-;;;;;;;;16823:287;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:307::-;2020:1;2030:113;2044:6;2041:1;2038:13;2030:113;;;2129:1;2124:3;2120:11;2114:18;2110:1;2105:3;2101:11;2094:39;2066:2;2063:1;2059:10;2054:15;;2030:113;;;2161:6;2158:1;2155:13;2152:101;;;2241:1;2232:6;2227:3;2223:16;2216:27;2152:101;2001:258;1952:307;;;:::o;2265:102::-;2306:6;2357:2;2353:7;2348:2;2341:5;2337:14;2333:28;2323:38;;2265:102;;;:::o;2373:364::-;2461:3;2489:39;2522:5;2489:39;:::i;:::-;2544:71;2608:6;2603:3;2544:71;:::i;:::-;2537:78;;2624:52;2669:6;2664:3;2657:4;2650:5;2646:16;2624:52;:::i;:::-;2701:29;2723:6;2701:29;:::i;:::-;2696:3;2692:39;2685:46;;2465:272;2373:364;;;;:::o;2743:313::-;2856:4;2894:2;2883:9;2879:18;2871:26;;2943:9;2937:4;2933:20;2929:1;2918:9;2914:17;2907:47;2971:78;3044:4;3035:6;2971:78;:::i;:::-;2963:86;;2743:313;;;;:::o;3062:60::-;3090:3;3111:5;3104:12;;3062:60;;;:::o;3128:142::-;3178:9;3211:53;3229:34;3238:24;3256:5;3238:24;:::i;:::-;3229:34;:::i;:::-;3211:53;:::i;:::-;3198:66;;3128:142;;;:::o;3276:126::-;3326:9;3359:37;3390:5;3359:37;:::i;:::-;3346:50;;3276:126;;;:::o;3408:144::-;3476:9;3509:37;3540:5;3509:37;:::i;:::-;3496:50;;3408:144;;;:::o;3558:167::-;3663:55;3712:5;3663:55;:::i;:::-;3658:3;3651:68;3558:167;;:::o;3731:258::-;3842:4;3880:2;3869:9;3865:18;3857:26;;3893:89;3979:1;3968:9;3964:17;3955:6;3893:89;:::i;:::-;3731:258;;;;:::o;3995:77::-;4032:7;4061:5;4050:16;;3995:77;;;:::o;4078:122::-;4151:24;4169:5;4151:24;:::i;:::-;4144:5;4141:35;4131:63;;4190:1;4187;4180:12;4131:63;4078:122;:::o;4206:139::-;4252:5;4290:6;4277:20;4268:29;;4306:33;4333:5;4306:33;:::i;:::-;4206:139;;;;:::o;4351:474::-;4419:6;4427;4476:2;4464:9;4455:7;4451:23;4447:32;4444:119;;;4482:79;;:::i;:::-;4444:119;4602:1;4627:53;4672:7;4663:6;4652:9;4648:22;4627:53;:::i;:::-;4617:63;;4573:117;4729:2;4755:53;4800:7;4791:6;4780:9;4776:22;4755:53;:::i;:::-;4745:63;;4700:118;4351:474;;;;;:::o;4831:109::-;4912:21;4927:5;4912:21;:::i;:::-;4907:3;4900:34;4831:109;;:::o;4946:210::-;5033:4;5071:2;5060:9;5056:18;5048:26;;5084:65;5146:1;5135:9;5131:17;5122:6;5084:65;:::i;:::-;4946:210;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:118::-;5578:24;5596:5;5578:24;:::i;:::-;5573:3;5566:37;5491:118;;:::o;5615:222::-;5708:4;5746:2;5735:9;5731:18;5723:26;;5759:71;5827:1;5816:9;5812:17;5803:6;5759:71;:::i;:::-;5615:222;;;;:::o;5843:619::-;5920:6;5928;5936;5985:2;5973:9;5964:7;5960:23;5956:32;5953:119;;;5991:79;;:::i;:::-;5953:119;6111:1;6136:53;6181:7;6172:6;6161:9;6157:22;6136:53;:::i;:::-;6126:63;;6082:117;6238:2;6264:53;6309:7;6300:6;6289:9;6285:22;6264:53;:::i;:::-;6254:63;;6209:118;6366:2;6392:53;6437:7;6428:6;6417:9;6413:22;6392:53;:::i;:::-;6382:63;;6337:118;5843:619;;;;;:::o;6468:86::-;6503:7;6543:4;6536:5;6532:16;6521:27;;6468:86;;;:::o;6560:112::-;6643:22;6659:5;6643:22;:::i;:::-;6638:3;6631:35;6560:112;;:::o;6678:214::-;6767:4;6805:2;6794:9;6790:18;6782:26;;6818:67;6882:1;6871:9;6867:17;6858:6;6818:67;:::i;:::-;6678:214;;;;:::o;6898:329::-;6957:6;7006:2;6994:9;6985:7;6981:23;6977:32;6974:119;;;7012:79;;:::i;:::-;6974:119;7132:1;7157:53;7202:7;7193:6;7182:9;7178:22;7157:53;:::i;:::-;7147:63;;7103:117;6898:329;;;;:::o;7233:118::-;7320:24;7338:5;7320:24;:::i;:::-;7315:3;7308:37;7233:118;;:::o;7357:222::-;7450:4;7488:2;7477:9;7473:18;7465:26;;7501:71;7569:1;7558:9;7554:17;7545:6;7501:71;:::i;:::-;7357:222;;;;:::o;7585:329::-;7644:6;7693:2;7681:9;7672:7;7668:23;7664:32;7661:119;;;7699:79;;:::i;:::-;7661:119;7819:1;7844:53;7889:7;7880:6;7869:9;7865:22;7844:53;:::i;:::-;7834:63;;7790:117;7585:329;;;;:::o;7920:474::-;7988:6;7996;8045:2;8033:9;8024:7;8020:23;8016:32;8013:119;;;8051:79;;:::i;:::-;8013:119;8171:1;8196:53;8241:7;8232:6;8221:9;8217:22;8196:53;:::i;:::-;8186:63;;8142:117;8298:2;8324:53;8369:7;8360:6;8349:9;8345:22;8324:53;:::i;:::-;8314:63;;8269:118;7920:474;;;;;:::o;8400:::-;8468:6;8476;8525:2;8513:9;8504:7;8500:23;8496:32;8493:119;;;8531:79;;:::i;:::-;8493:119;8651:1;8676:53;8721:7;8712:6;8701:9;8697:22;8676:53;:::i;:::-;8666:63;;8622:117;8778:2;8804:53;8849:7;8840:6;8829:9;8825:22;8804:53;:::i;:::-;8794:63;;8749:118;8400:474;;;;;:::o;8880:182::-;9020:34;9016:1;9008:6;9004:14;8997:58;8880:182;:::o;9068:366::-;9210:3;9231:67;9295:2;9290:3;9231:67;:::i;:::-;9224:74;;9307:93;9396:3;9307:93;:::i;:::-;9425:2;9420:3;9416:12;9409:19;;9068:366;;;:::o;9440:419::-;9606:4;9644:2;9633:9;9629:18;9621:26;;9693:9;9687:4;9683:20;9679:1;9668:9;9664:17;9657:47;9721:131;9847:4;9721:131;:::i;:::-;9713:139;;9440:419;;;:::o;9865:180::-;9913:77;9910:1;9903:88;10010:4;10007:1;10000:15;10034:4;10031:1;10024:15;10051:320;10095:6;10132:1;10126:4;10122:12;10112:22;;10179:1;10173:4;10169:12;10200:18;10190:81;;10256:4;10248:6;10244:17;10234:27;;10190:81;10318:2;10310:6;10307:14;10287:18;10284:38;10281:84;;;10337:18;;:::i;:::-;10281:84;10102:269;10051:320;;;:::o;10377:223::-;10517:34;10513:1;10505:6;10501:14;10494:58;10586:6;10581:2;10573:6;10569:15;10562:31;10377:223;:::o;10606:366::-;10748:3;10769:67;10833:2;10828:3;10769:67;:::i;:::-;10762:74;;10845:93;10934:3;10845:93;:::i;:::-;10963:2;10958:3;10954:12;10947:19;;10606:366;;;:::o;10978:419::-;11144:4;11182:2;11171:9;11167:18;11159:26;;11231:9;11225:4;11221:20;11217:1;11206:9;11202:17;11195:47;11259:131;11385:4;11259:131;:::i;:::-;11251:139;;10978:419;;;:::o;11403:174::-;11543:26;11539:1;11531:6;11527:14;11520:50;11403:174;:::o;11583:366::-;11725:3;11746:67;11810:2;11805:3;11746:67;:::i;:::-;11739:74;;11822:93;11911:3;11822:93;:::i;:::-;11940:2;11935:3;11931:12;11924:19;;11583:366;;;:::o;11955:419::-;12121:4;12159:2;12148:9;12144:18;12136:26;;12208:9;12202:4;12198:20;12194:1;12183:9;12179:17;12172:47;12236:131;12362:4;12236:131;:::i;:::-;12228:139;;11955:419;;;:::o;12380:180::-;12428:77;12425:1;12418:88;12525:4;12522:1;12515:15;12549:4;12546:1;12539:15;12566:180;12614:77;12611:1;12604:88;12711:4;12708:1;12701:15;12735:4;12732:1;12725:15;12752:185;12792:1;12809:20;12827:1;12809:20;:::i;:::-;12804:25;;12843:20;12861:1;12843:20;:::i;:::-;12838:25;;12882:1;12872:35;;12887:18;;:::i;:::-;12872:35;12929:1;12926;12922:9;12917:14;;12752:185;;;;:::o;12943:223::-;13083:34;13079:1;13071:6;13067:14;13060:58;13152:6;13147:2;13139:6;13135:15;13128:31;12943:223;:::o;13172:366::-;13314:3;13335:67;13399:2;13394:3;13335:67;:::i;:::-;13328:74;;13411:93;13500:3;13411:93;:::i;:::-;13529:2;13524:3;13520:12;13513:19;;13172:366;;;:::o;13544:419::-;13710:4;13748:2;13737:9;13733:18;13725:26;;13797:9;13791:4;13787:20;13783:1;13772:9;13768:17;13761:47;13825:131;13951:4;13825:131;:::i;:::-;13817:139;;13544:419;;;:::o;13969:181::-;14109:33;14105:1;14097:6;14093:14;14086:57;13969:181;:::o;14156:366::-;14298:3;14319:67;14383:2;14378:3;14319:67;:::i;:::-;14312:74;;14395:93;14484:3;14395:93;:::i;:::-;14513:2;14508:3;14504:12;14497:19;;14156:366;;;:::o;14528:419::-;14694:4;14732:2;14721:9;14717:18;14709:26;;14781:9;14775:4;14771:20;14767:1;14756:9;14752:17;14745:47;14809:131;14935:4;14809:131;:::i;:::-;14801:139;;14528:419;;;:::o;14953:169::-;15093:21;15089:1;15081:6;15077:14;15070:45;14953:169;:::o;15128:366::-;15270:3;15291:67;15355:2;15350:3;15291:67;:::i;:::-;15284:74;;15367:93;15456:3;15367:93;:::i;:::-;15485:2;15480:3;15476:12;15469:19;;15128:366;;;:::o;15500:419::-;15666:4;15704:2;15693:9;15689:18;15681:26;;15753:9;15747:4;15743:20;15739:1;15728:9;15724:17;15717:47;15781:131;15907:4;15781:131;:::i;:::-;15773:139;;15500:419;;;:::o;15925:225::-;16065:34;16061:1;16053:6;16049:14;16042:58;16134:8;16129:2;16121:6;16117:15;16110:33;15925:225;:::o;16156:366::-;16298:3;16319:67;16383:2;16378:3;16319:67;:::i;:::-;16312:74;;16395:93;16484:3;16395:93;:::i;:::-;16513:2;16508:3;16504:12;16497:19;;16156:366;;;:::o;16528:419::-;16694:4;16732:2;16721:9;16717:18;16709:26;;16781:9;16775:4;16771:20;16767:1;16756:9;16752:17;16745:47;16809:131;16935:4;16809:131;:::i;:::-;16801:139;;16528:419;;;:::o;16953:348::-;16993:7;17016:20;17034:1;17016:20;:::i;:::-;17011:25;;17050:20;17068:1;17050:20;:::i;:::-;17045:25;;17238:1;17170:66;17166:74;17163:1;17160:81;17155:1;17148:9;17141:17;17137:105;17134:131;;;17245:18;;:::i;:::-;17134:131;17293:1;17290;17286:9;17275:20;;16953:348;;;;:::o;17307:220::-;17447:34;17443:1;17435:6;17431:14;17424:58;17516:3;17511:2;17503:6;17499:15;17492:28;17307:220;:::o;17533:366::-;17675:3;17696:67;17760:2;17755:3;17696:67;:::i;:::-;17689:74;;17772:93;17861:3;17772:93;:::i;:::-;17890:2;17885:3;17881:12;17874:19;;17533:366;;;:::o;17905:419::-;18071:4;18109:2;18098:9;18094:18;18086:26;;18158:9;18152:4;18148:20;18144:1;18133:9;18129:17;18122:47;18186:131;18312:4;18186:131;:::i;:::-;18178:139;;17905:419;;;:::o;18330:225::-;18470:34;18466:1;18458:6;18454:14;18447:58;18539:8;18534:2;18526:6;18522:15;18515:33;18330:225;:::o;18561:366::-;18703:3;18724:67;18788:2;18783:3;18724:67;:::i;:::-;18717:74;;18800:93;18889:3;18800:93;:::i;:::-;18918:2;18913:3;18909:12;18902:19;;18561:366;;;:::o;18933:419::-;19099:4;19137:2;19126:9;19122:18;19114:26;;19186:9;19180:4;19176:20;19172:1;19161:9;19157:17;19150:47;19214:131;19340:4;19214:131;:::i;:::-;19206:139;;18933:419;;;:::o;19358:223::-;19498:34;19494:1;19486:6;19482:14;19475:58;19567:6;19562:2;19554:6;19550:15;19543:31;19358:223;:::o;19587:366::-;19729:3;19750:67;19814:2;19809:3;19750:67;:::i;:::-;19743:74;;19826:93;19915:3;19826:93;:::i;:::-;19944:2;19939:3;19935:12;19928:19;;19587:366;;;:::o;19959:419::-;20125:4;20163:2;20152:9;20148:18;20140:26;;20212:9;20206:4;20202:20;20198:1;20187:9;20183:17;20176:47;20240:131;20366:4;20240:131;:::i;:::-;20232:139;;19959:419;;;:::o;20384:226::-;20524:34;20520:1;20512:6;20508:14;20501:58;20593:9;20588:2;20580:6;20576:15;20569:34;20384:226;:::o;20616:366::-;20758:3;20779:67;20843:2;20838:3;20779:67;:::i;:::-;20772:74;;20855:93;20944:3;20855:93;:::i;:::-;20973:2;20968:3;20964:12;20957:19;;20616:366;;;:::o;20988:419::-;21154:4;21192:2;21181:9;21177:18;21169:26;;21241:9;21235:4;21231:20;21227:1;21216:9;21212:17;21205:47;21269:131;21395:4;21269:131;:::i;:::-;21261:139;;20988:419;;;:::o;21413:224::-;21553:34;21549:1;21541:6;21537:14;21530:58;21622:7;21617:2;21609:6;21605:15;21598:32;21413:224;:::o;21643:366::-;21785:3;21806:67;21870:2;21865:3;21806:67;:::i;:::-;21799:74;;21882:93;21971:3;21882:93;:::i;:::-;22000:2;21995:3;21991:12;21984:19;;21643:366;;;:::o;22015:419::-;22181:4;22219:2;22208:9;22204:18;22196:26;;22268:9;22262:4;22258:20;22254:1;22243:9;22239:17;22232:47;22296:131;22422:4;22296:131;:::i;:::-;22288:139;;22015:419;;;:::o;22440:228::-;22580:34;22576:1;22568:6;22564:14;22557:58;22649:11;22644:2;22636:6;22632:15;22625:36;22440:228;:::o;22674:366::-;22816:3;22837:67;22901:2;22896:3;22837:67;:::i;:::-;22830:74;;22913:93;23002:3;22913:93;:::i;:::-;23031:2;23026:3;23022:12;23015:19;;22674:366;;;:::o;23046:419::-;23212:4;23250:2;23239:9;23235:18;23227:26;;23299:9;23293:4;23289:20;23285:1;23274:9;23270:17;23263:47;23327:131;23453:4;23327:131;:::i;:::-;23319:139;;23046:419;;;:::o;23471:162::-;23611:14;23607:1;23599:6;23595:14;23588:38;23471:162;:::o;23639:366::-;23781:3;23802:67;23866:2;23861:3;23802:67;:::i;:::-;23795:74;;23878:93;23967:3;23878:93;:::i;:::-;23996:2;23991:3;23987:12;23980:19;;23639:366;;;:::o;24011:419::-;24177:4;24215:2;24204:9;24200:18;24192:26;;24264:9;24258:4;24254:20;24250:1;24239:9;24235:17;24228:47;24292:131;24418:4;24292:131;:::i;:::-;24284:139;;24011:419;;;:::o;24436:180::-;24576:32;24572:1;24564:6;24560:14;24553:56;24436:180;:::o;24622:366::-;24764:3;24785:67;24849:2;24844:3;24785:67;:::i;:::-;24778:74;;24861:93;24950:3;24861:93;:::i;:::-;24979:2;24974:3;24970:12;24963:19;;24622:366;;;:::o;24994:419::-;25160:4;25198:2;25187:9;25183:18;25175:26;;25247:9;25241:4;25237:20;25233:1;25222:9;25218:17;25211:47;25275:131;25401:4;25275:131;:::i;:::-;25267:139;;24994:419;;;:::o;25419:177::-;25559:29;25555:1;25547:6;25543:14;25536:53;25419:177;:::o;25602:366::-;25744:3;25765:67;25829:2;25824:3;25765:67;:::i;:::-;25758:74;;25841:93;25930:3;25841:93;:::i;:::-;25959:2;25954:3;25950:12;25943:19;;25602:366;;;:::o;25974:419::-;26140:4;26178:2;26167:9;26163:18;26155:26;;26227:9;26221:4;26217:20;26213:1;26202:9;26198:17;26191:47;26255:131;26381:4;26255:131;:::i;:::-;26247:139;;25974:419;;;:::o;26399:181::-;26539:33;26535:1;26527:6;26523:14;26516:57;26399:181;:::o;26586:366::-;26728:3;26749:67;26813:2;26808:3;26749:67;:::i;:::-;26742:74;;26825:93;26914:3;26825:93;:::i;:::-;26943:2;26938:3;26934:12;26927:19;;26586:366;;;:::o;26958:419::-;27124:4;27162:2;27151:9;27147:18;27139:26;;27211:9;27205:4;27201:20;27197:1;27186:9;27182:17;27175:47;27239:131;27365:4;27239:131;:::i;:::-;27231:139;;26958:419;;;:::o;27383:191::-;27423:4;27443:20;27461:1;27443:20;:::i;:::-;27438:25;;27477:20;27495:1;27477:20;:::i;:::-;27472:25;;27516:1;27513;27510:8;27507:34;;;27521:18;;:::i;:::-;27507:34;27566:1;27563;27559:9;27551:17;;27383:191;;;;:::o;27580:305::-;27620:3;27639:20;27657:1;27639:20;:::i;:::-;27634:25;;27673:20;27691:1;27673:20;:::i;:::-;27668:25;;27827:1;27759:66;27755:74;27752:1;27749:81;27746:107;;;27833:18;;:::i;:::-;27746:107;27877:1;27874;27870:9;27863:16;;27580:305;;;;:::o;27891:177::-;28031:29;28027:1;28019:6;28015:14;28008:53;27891:177;:::o;28074:366::-;28216:3;28237:67;28301:2;28296:3;28237:67;:::i;:::-;28230:74;;28313:93;28402:3;28313:93;:::i;:::-;28431:2;28426:3;28422:12;28415:19;;28074:366;;;:::o;28446:419::-;28612:4;28650:2;28639:9;28635:18;28627:26;;28699:9;28693:4;28689:20;28685:1;28674:9;28670:17;28663:47;28727:131;28853:4;28727:131;:::i;:::-;28719:139;;28446:419;;;:::o;28871:442::-;29020:4;29058:2;29047:9;29043:18;29035:26;;29071:71;29139:1;29128:9;29124:17;29115:6;29071:71;:::i;:::-;29152:72;29220:2;29209:9;29205:18;29196:6;29152:72;:::i;:::-;29234;29302:2;29291:9;29287:18;29278:6;29234:72;:::i;:::-;28871:442;;;;;;:::o;29319:180::-;29367:77;29364:1;29357:88;29464:4;29461:1;29454:15;29488:4;29485:1;29478:15;29505:180;29553:77;29550:1;29543:88;29650:4;29647:1;29640:15;29674:4;29671:1;29664:15;29691:143;29748:5;29779:6;29773:13;29764:22;;29795:33;29822:5;29795:33;:::i;:::-;29691:143;;;;:::o;29840:351::-;29910:6;29959:2;29947:9;29938:7;29934:23;29930:32;29927:119;;;29965:79;;:::i;:::-;29927:119;30085:1;30110:64;30166:7;30157:6;30146:9;30142:22;30110:64;:::i;:::-;30100:74;;30056:128;29840:351;;;;:::o;30197:85::-;30242:7;30271:5;30260:16;;30197:85;;;:::o;30288:158::-;30346:9;30379:61;30397:42;30406:32;30432:5;30406:32;:::i;:::-;30397:42;:::i;:::-;30379:61;:::i;:::-;30366:74;;30288:158;;;:::o;30452:147::-;30547:45;30586:5;30547:45;:::i;:::-;30542:3;30535:58;30452:147;;:::o;30605:114::-;30672:6;30706:5;30700:12;30690:22;;30605:114;;;:::o;30725:184::-;30824:11;30858:6;30853:3;30846:19;30898:4;30893:3;30889:14;30874:29;;30725:184;;;;:::o;30915:132::-;30982:4;31005:3;30997:11;;31035:4;31030:3;31026:14;31018:22;;30915:132;;;:::o;31053:108::-;31130:24;31148:5;31130:24;:::i;:::-;31125:3;31118:37;31053:108;;:::o;31167:179::-;31236:10;31257:46;31299:3;31291:6;31257:46;:::i;:::-;31335:4;31330:3;31326:14;31312:28;;31167:179;;;;:::o;31352:113::-;31422:4;31454;31449:3;31445:14;31437:22;;31352:113;;;:::o;31501:732::-;31620:3;31649:54;31697:5;31649:54;:::i;:::-;31719:86;31798:6;31793:3;31719:86;:::i;:::-;31712:93;;31829:56;31879:5;31829:56;:::i;:::-;31908:7;31939:1;31924:284;31949:6;31946:1;31943:13;31924:284;;;32025:6;32019:13;32052:63;32111:3;32096:13;32052:63;:::i;:::-;32045:70;;32138:60;32191:6;32138:60;:::i;:::-;32128:70;;31984:224;31971:1;31968;31964:9;31959:14;;31924:284;;;31928:14;32224:3;32217:10;;31625:608;;;31501:732;;;;:::o;32239:831::-;32502:4;32540:3;32529:9;32525:19;32517:27;;32554:71;32622:1;32611:9;32607:17;32598:6;32554:71;:::i;:::-;32635:80;32711:2;32700:9;32696:18;32687:6;32635:80;:::i;:::-;32762:9;32756:4;32752:20;32747:2;32736:9;32732:18;32725:48;32790:108;32893:4;32884:6;32790:108;:::i;:::-;32782:116;;32908:72;32976:2;32965:9;32961:18;32952:6;32908:72;:::i;:::-;32990:73;33058:3;33047:9;33043:19;33034:6;32990:73;:::i;:::-;32239:831;;;;;;;;:::o;33076:807::-;33325:4;33363:3;33352:9;33348:19;33340:27;;33377:71;33445:1;33434:9;33430:17;33421:6;33377:71;:::i;:::-;33458:72;33526:2;33515:9;33511:18;33502:6;33458:72;:::i;:::-;33540:80;33616:2;33605:9;33601:18;33592:6;33540:80;:::i;:::-;33630;33706:2;33695:9;33691:18;33682:6;33630:80;:::i;:::-;33720:73;33788:3;33777:9;33773:19;33764:6;33720:73;:::i;:::-;33803;33871:3;33860:9;33856:19;33847:6;33803:73;:::i;:::-;33076:807;;;;;;;;;:::o;33889:143::-;33946:5;33977:6;33971:13;33962:22;;33993:33;34020:5;33993:33;:::i;:::-;33889:143;;;;:::o;34038:663::-;34126:6;34134;34142;34191:2;34179:9;34170:7;34166:23;34162:32;34159:119;;;34197:79;;:::i;:::-;34159:119;34317:1;34342:64;34398:7;34389:6;34378:9;34374:22;34342:64;:::i;:::-;34332:74;;34288:128;34455:2;34481:64;34537:7;34528:6;34517:9;34513:22;34481:64;:::i;:::-;34471:74;;34426:129;34594:2;34620:64;34676:7;34667:6;34656:9;34652:22;34620:64;:::i;:::-;34610:74;;34565:129;34038:663;;;;;:::o

Swarm Source

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