ETH Price: $2,660.82 (+8.09%)
 

Overview

Max Total Supply

1,000,000 $PEPUMP

Holders

180

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,159.95 $PEPUMP

Value
$0.00
0x717381B4EC91050488FD89C8F2A99b37Baa31620
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:
PEPETRUMP

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-04-21
*/

// 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 PEPETRUMP 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 = "PEPE TRUMP";
    string private _symbol = "$PEPUMP";
    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,
                "$PEPUMP: 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,
                "$PEPUMP: 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, "$PEPUMP: can't be 0");
        minTokenToSwap = _amount;
    }

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

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply / percentDivider,
            "$PEPUMP: 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),
            "$PEPUMP: 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),
            "$PEPUMP: 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, "$PEPUMP: 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), "$PEPUMP: approve from the zero address");
        require(spender != address(0), "$PEPUMP: 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), "$PEPUMP: transfer from the zero address");
        require(to != address(0), "$PEPUMP: transfer to the zero address");
        require(amount > 0, "$PEPUMP: Amount must be greater than zero");
        require(!isBot[from],"Bot detected");

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

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

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "$PEPUMP: 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,
                "$PEPUMP: 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,
                "$PEPUMP: 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,
                "$PEPUMP: 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"}]

60806040526040518060400160405280600a81526020017f50455045205452554d5000000000000000000000000000000000000000000000815250600790805190602001906200005192919062000a19565b506040518060400160405280600781526020017f24504550554d5000000000000000000000000000000000000000000000000000815250600890805190602001906200009f92919062000a19565b5060098060006101000a81548160ff021916908360ff16021790555066038d7ea4c68000600a55620000e4612710600a54620008aa60201b620023311790919060201c565b600e556200011f6103e86200010b6002600a54620008fc60201b6200237b1790919060201c565b620008aa60201b620023311790919060201c565b600f55620001406103e8600a54620008aa60201b620023311790919060201c565b6010556103de6011556103e860125560286013556014601655601e6017556014601855601e6019556000601a556000601b553480156200017f57600080fd5b50620001906200098060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460016000620002616200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737426330a6dd6a0d077a23d6d13494178115cdcd1600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000381919062000b33565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040f919062000b33565b6040518363ffffffff1660e01b81526004016200042e92919062000b76565b6020604051808303816000875af11580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000b33565b905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200050e6200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005cd6200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200068c6200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008396200098860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200089a919062000bbe565b60405180910390a3505062000e97565b6000620008f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620009b160201b60201c565b905092915050565b6000808314156200091157600090506200097a565b6000828462000921919062000c0a565b905082848262000932919062000c9a565b1462000975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096c9062000d59565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f2919062000e0e565b60405180910390fd5b506000838562000a0c919062000c9a565b9050809150509392505050565b82805462000a279062000e61565b90600052602060002090601f01602090048101928262000a4b576000855562000a97565b82601f1062000a6657805160ff191683800117855562000a97565b8280016001018555821562000a97579182015b8281111562000a9657825182559160200191906001019062000a79565b5b50905062000aa6919062000aaa565b5090565b5b8082111562000ac557600081600090555060010162000aab565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000afb8262000ace565b9050919050565b62000b0d8162000aee565b811462000b1957600080fd5b50565b60008151905062000b2d8162000b02565b92915050565b60006020828403121562000b4c5762000b4b62000ac9565b5b600062000b5c8482850162000b1c565b91505092915050565b62000b708162000aee565b82525050565b600060408201905062000b8d600083018562000b65565b62000b9c602083018462000b65565b9392505050565b6000819050919050565b62000bb88162000ba3565b82525050565b600060208201905062000bd5600083018462000bad565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c178262000ba3565b915062000c248362000ba3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c605762000c5f62000bdb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ca78262000ba3565b915062000cb48362000ba3565b92508262000cc75762000cc662000c6b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d4160218362000cd2565b915062000d4e8262000ce3565b604082019050919050565b6000602082019050818103600083015262000d748162000d32565b9050919050565b600081519050919050565b60005b8381101562000da657808201518184015260208101905062000d89565b8381111562000db6576000848401525b50505050565b6000601f19601f8301169050919050565b600062000dda8262000d7b565b62000de6818562000cd2565b935062000df881856020860162000d86565b62000e038162000dbc565b840191505092915050565b6000602082019050818103600083015262000e2a818462000dcd565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e7a57607f821691505b6020821081141562000e915762000e9062000e32565b5b50919050565b614e608062000ea76000396000f3fe6080604052600436106102e85760003560e01c8063879dd3c511610190578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610b71578063f4b3dbc314610b9a578063f9dfdaeb14610bd7578063fe6f1b0514610c00576102ef565b8063ed42142914610ae0578063f097ea1a14610b1d578063f242ab4114610b46576102ef565b8063bf56b371146109ce578063bf862391146109f9578063dd62ed3e14610a24578063e6c84dc614610a61578063ea5b9e8514610a8c578063ec44acf214610ab5576102ef565b80639b6a275011610149578063a7c29b4011610123578063a7c29b4014610916578063a9059cbb1461093f578063b0bc2a2d1461097c578063be291dc6146109a5576102ef565b80639b6a275014610887578063a457c2d7146108b0578063a643c1a0146108ed576102ef565b8063879dd3c5146107875780638a8c523c146107b25780638da5cb5b146107c957806395d89b41146107f457806399b102b51461081f5780639a36dfa11461085c576102ef565b80633bbac5791161024f57806375f0a874116102085780637d99c66d116101e25780637d99c66d146106cb578063844af78e146106f657806384ea21bc146107215780638756aabd1461075e576102ef565b806375f0a8741461064a57806379777b4e146106755780637c6a9a9c146106a0576102ef565b80633bbac579146105285780635342acb414610565578063679a3c59146105a2578063681aa362146105cb57806370a08231146105f6578063715018a614610633576102ef565b80631884f1e6116102a15780631884f1e61461040457806323b872dd1461042f5780632d1293901461046c578063313ce567146104955780633326d7f2146104c057806339509351146104eb576102ef565b806303c0f5d4146102f457806306fdde031461031d5780630758d92414610348578063095ea7b3146103735780630a2d140c146103b057806318160ddd146103d9576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613c27565b610c2b565b005b34801561032957600080fd5b50610332610d1b565b60405161033f9190613d00565b60405180910390f35b34801561035457600080fd5b5061035d610dad565b60405161036a9190613d81565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613dd2565b610dd3565b6040516103a79190613e21565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e3c565b610df1565b005b3480156103e557600080fd5b506103ee610ea3565b6040516103fb9190613e78565b60405180910390f35b34801561041057600080fd5b50610419610ead565b6040516104269190613e78565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613e93565b610eb3565b6040516104639190613e21565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613c27565b610f8c565b005b3480156104a157600080fd5b506104aa61107c565b6040516104b79190613f02565b60405180910390f35b3480156104cc57600080fd5b506104d5611093565b6040516104e29190613e78565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613dd2565b611099565b60405161051f9190613e21565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613f1d565b61114c565b60405161055c9190613e21565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f1d565b61116c565b6040516105999190613e21565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613f1d565b61118c565b005b3480156105d757600080fd5b506105e061126b565b6040516105ed9190613e78565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613f1d565b611271565b60405161062a9190613e78565b60405180910390f35b34801561063f57600080fd5b506106486112ba565b005b34801561065657600080fd5b5061065f61140d565b60405161066c9190613f59565b60405180910390f35b34801561068157600080fd5b5061068a611433565b6040516106979190613e21565b60405180910390f35b3480156106ac57600080fd5b506106b5611446565b6040516106c29190613e78565b60405180910390f35b3480156106d757600080fd5b506106e061144c565b6040516106ed9190613e78565b60405180910390f35b34801561070257600080fd5b5061070b611452565b6040516107189190613e78565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613f1d565b611458565b6040516107559190613e21565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613f74565b611478565b005b34801561079357600080fd5b5061079c611583565b6040516107a99190613e21565b60405180910390f35b3480156107be57600080fd5b506107c7611596565b005b3480156107d557600080fd5b506107de6116d5565b6040516107eb9190613f59565b60405180910390f35b34801561080057600080fd5b506108096116fe565b6040516108169190613d00565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613f1d565b611790565b6040516108539190613e21565b60405180910390f35b34801561086857600080fd5b506108716117b0565b60405161087e9190613e78565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613f74565b6117b6565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190613dd2565b6118a7565b6040516108e49190613e21565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f1d565b611974565b005b34801561092257600080fd5b5061093d60048036038101906109389190613c27565b611a4d565b005b34801561094b57600080fd5b5061096660048036038101906109619190613dd2565b611b3d565b6040516109739190613e21565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613e3c565b611b5b565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613fa1565b611c0d565b005b3480156109da57600080fd5b506109e3611d1e565b6040516109f09190613e78565b60405180910390f35b348015610a0557600080fd5b50610a0e611d24565b604051610a1b9190613e78565b60405180910390f35b348015610a3057600080fd5b50610a4b6004803603810190610a469190613fe1565b611d2a565b604051610a589190613e78565b60405180910390f35b348015610a6d57600080fd5b50610a76611db1565b604051610a839190613e78565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613c27565b611db7565b005b348015610ac157600080fd5b50610aca611ea7565b604051610ad79190613e21565b60405180910390f35b348015610aec57600080fd5b50610b076004803603810190610b029190613f74565b611eba565b604051610b149190613e78565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613f74565b611f05565b005b348015610b5257600080fd5b50610b5b611fe7565b604051610b689190613f59565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613f1d565b61200d565b005b348015610ba657600080fd5b50610bc16004803603810190610bbc9190613f74565b6121cf565b604051610bce9190613e78565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190613fa1565b61221a565b005b348015610c0c57600080fd5b50610c1561232b565b604051610c229190613e78565b60405180910390f35b610c336123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061406d565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610d2a906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d56906140bc565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de7610de06123f6565b84846123fe565b6001905092915050565b610df96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061406d565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600e5481565b6000610ec08484846125c9565b610f8184610ecc6123f6565b610f7c856040518060600160405280602a8152602001614dd7602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f326123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b600190509392505050565b610f946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061406d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60165481565b60006111426110a66123f6565b8461113d85600260006110b76123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b6123fe565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6111946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061406d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611267573d6000803e3d6000fd5b5050565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c26123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113469061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b60175481565b60135481565b60195481565b60056020528060005260406000206000915054906101000a900460ff1681565b6114806123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061406d565b60405180910390fd5b6115376012546115296002600a5461237b90919063ffffffff16565b61233190919063ffffffff16565b811015611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614160565b60405180910390fd5b80600f8190555050565b601560019054906101000a900460ff1681565b61159e6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116229061406d565b60405180910390fd5b601560029054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906141cc565b60405180910390fd5b6001601560026101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560006101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461170d906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611739906140bc565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6117be6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118429061406d565b60405180910390fd5b601254600a5461185b919061424a565b81101561189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906142ed565b60405180910390fd5b8060108190555050565b600061196a6118b46123f6565b84611965856040518060600160405280602a8152602001614e01602a9139600260006118de6123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b6001905092915050565b61197c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a009061406d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a556123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061406d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b51611b4a6123f6565b84846125c9565b6001905092915050565b611b636123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be79061406d565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b611c156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c999061406d565b60405180910390fd5b8160198190555080601881905550611cc6600a60125461233190919063ffffffff16565b611cd98284612b6290919063ffffffff16565b1115611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190614359565b60405180910390fd5b5050565b60145481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611dbf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061406d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560029054906101000a900460ff1681565b600080611efa601254611eec611edd601654601754612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b611f0d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061406d565b60405180910390fd5b60008111611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd4906143c5565b60405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120999061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614457565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061220f6012546122016121f2601854601954612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b6122226123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061406d565b60405180910390fd5b81601781905550806016819055506122d3600a60125461233190919063ffffffff16565b6122e68284612b6290919063ffffffff16565b1115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614359565b60405180910390fd5b5050565b60125481565b600061237383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc0565b905092915050565b60008083141561238e57600090506123f0565b6000828461239c9190614477565b90508284826123ab919061424a565b146123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614543565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906145d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614667565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125bc9190613e78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906146f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a09061478b565b60405180910390fd5b600081116126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39061481d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614889565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296857601054811115612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e906148f5565b60405180910390fd5b601560029054906101000a900460ff16612967578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561292757508173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90614961565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1957600f546129d7826129c985611271565b612b6290919063ffffffff16565b1115612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f906149cd565b60405180910390fd5b5b612a238383612c23565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aca5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ae25750601560019054906101000a900460ff16155b15612aec57600090505b612af884848484612f4d565b50505050565b6000838311158290612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d9190613d00565b60405180910390fd5b5060008385612b5591906149ed565b9050809150509392505050565b6000808284612b719190614a21565b905083811015612bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bad90614ac3565b60405180910390fd5b8091505092915050565b60008083118290612c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfe9190613d00565b60405180910390fd5b5060008385612c16919061424a565b9050809150509392505050565b6000612c2e30611271565b90506000600e548210159050808015612c955750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612cad5750601560009054906101000a900460ff165b8015612d3e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612d3c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612f4757612d7030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123fe565b6000612d886002601a5461233190919063ffffffff16565b90506000612da182601a546136b090919063ffffffff16565b90506000612db882866136b090919063ffffffff16565b90506000479050612deb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836136fa565b6000612e0082476136b090919063ffffffff16565b90506000612e2984612e1b888561237b90919063ffffffff16565b61233190919063ffffffff16565b90506000811115612ea557612e69600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612e626116d5565b87846138e0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612e9c93929190614ae3565b60405180910390a15b6000612eba82476136b090919063ffffffff16565b90506000811115612f2f57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f2d573d6000803e3d6000fd5b505b6000601a819055506000601b81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612fa75750805b1561327f57600080601354601454612fbf9190614a21565b4210801561301b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561307e5761304960125461303b6011548761237b90919063ffffffff16565b61233190919063ffffffff16565b915081601b600082825461305d9190614a21565b9250508190555061307782856136b090919063ffffffff16565b90506130a8565b61308784611eba565b915061309c82856136b090919063ffffffff16565b90506130a784613984565b5b613131846040518060400160405280601d81526020017f24504550554d503a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132669190613e78565b60405180910390a36132788683613a09565b50506136aa565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132d95750805b156134e25760006132e9836121cf565b9050600061330082856136b090919063ffffffff16565b905061338b846040518060400160405280601d81526020017f24504550554d503a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134c09190613e78565b60405180910390a36134d28683613a09565b6134db84613b07565b50506136a9565b61356b826040518060400160405280601d81526020017f24504550554d503a20696e73756666696369656e742062616c616e6365000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136a09190613e78565b60405180910390a35b5b50505050565b60006136f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afe565b905092915050565b60008290506000600267ffffffffffffffff81111561371c5761371b614b1a565b5b60405190808252806020026020018201604052801561374a5781602001602082028036833780820191505090505b509050308160008151811061376257613761614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380b9190614b8d565b8160018151811061381f5761381e614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426138889190614a21565b6040518663ffffffff1660e01b81526004016138a8959493929190614cb3565b600060405180830381600087803b1580156138c257600080fd5b505af11580156138d6573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426139169190614a21565b6040518863ffffffff1660e01b815260040161393796959493929190614d0d565b60606040518083038185885af1158015613955573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061397a9190614d83565b5050505050505050565b6139ad60125461399f6016548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a60008282546139be9190614a21565b925050819055506139ee6012546139e06017548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b60008282546139ff9190614a21565b9250508190555050565b613a5b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613e78565b60405180910390a35050565b613b30601254613b226018548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a6000828254613b419190614a21565b92505081905550613b71601254613b636019548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b6000828254613b829190614a21565b9250508190555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bbc82613b91565b9050919050565b613bcc81613bb1565b8114613bd757600080fd5b50565b600081359050613be981613bc3565b92915050565b60008115159050919050565b613c0481613bef565b8114613c0f57600080fd5b50565b600081359050613c2181613bfb565b92915050565b60008060408385031215613c3e57613c3d613b8c565b5b6000613c4c85828601613bda565b9250506020613c5d85828601613c12565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca1578082015181840152602081019050613c86565b83811115613cb0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cd282613c67565b613cdc8185613c72565b9350613cec818560208601613c83565b613cf581613cb6565b840191505092915050565b60006020820190508181036000830152613d1a8184613cc7565b905092915050565b6000819050919050565b6000613d47613d42613d3d84613b91565b613d22565b613b91565b9050919050565b6000613d5982613d2c565b9050919050565b6000613d6b82613d4e565b9050919050565b613d7b81613d60565b82525050565b6000602082019050613d966000830184613d72565b92915050565b6000819050919050565b613daf81613d9c565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b60008060408385031215613de957613de8613b8c565b5b6000613df785828601613bda565b9250506020613e0885828601613dbd565b9150509250929050565b613e1b81613bef565b82525050565b6000602082019050613e366000830184613e12565b92915050565b600060208284031215613e5257613e51613b8c565b5b6000613e6084828501613c12565b91505092915050565b613e7281613d9c565b82525050565b6000602082019050613e8d6000830184613e69565b92915050565b600080600060608486031215613eac57613eab613b8c565b5b6000613eba86828701613bda565b9350506020613ecb86828701613bda565b9250506040613edc86828701613dbd565b9150509250925092565b600060ff82169050919050565b613efc81613ee6565b82525050565b6000602082019050613f176000830184613ef3565b92915050565b600060208284031215613f3357613f32613b8c565b5b6000613f4184828501613bda565b91505092915050565b613f5381613bb1565b82525050565b6000602082019050613f6e6000830184613f4a565b92915050565b600060208284031215613f8a57613f89613b8c565b5b6000613f9884828501613dbd565b91505092915050565b60008060408385031215613fb857613fb7613b8c565b5b6000613fc685828601613dbd565b9250506020613fd785828601613dbd565b9150509250929050565b60008060408385031215613ff857613ff7613b8c565b5b600061400685828601613bda565b925050602061401785828601613bda565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614057602083613c72565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140d457607f821691505b602082108114156140e8576140e761408d565b5b50919050565b7f24504550554d503a2073686f756c642062652067726561746572207468616e2060008201527f302e322500000000000000000000000000000000000000000000000000000000602082015250565b600061414a602483613c72565b9150614155826140ee565b604082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f24504550554d503a20616c726561647920656e61626c65640000000000000000600082015250565b60006141b6601883613c72565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061425582613d9c565b915061426083613d9c565b9250826142705761426f6141ec565b5b828204905092915050565b7f24504550554d503a2073686f756c642062652067726561746572207468616e2060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b60006142d7602483613c72565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f24504550554d503a2063616e2774206265206d6f7265207468616e2031302500600082015250565b6000614343601f83613c72565b915061434e8261430d565b602082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f24504550554d503a2063616e2774206265203000000000000000000000000000600082015250565b60006143af601383613c72565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614441602683613c72565b915061444c826143e5565b604082019050919050565b6000602082019050818103600083015261447081614434565b9050919050565b600061448282613d9c565b915061448d83613d9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144c6576144c561421b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061452d602183613c72565b9150614538826144d1565b604082019050919050565b6000602082019050818103600083015261455c81614520565b9050919050565b7f24504550554d503a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145bf602683613c72565b91506145ca82614563565b604082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f24504550554d503a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614651602483613c72565b915061465c826145f5565b604082019050919050565b6000602082019050818103600083015261468081614644565b9050919050565b7f24504550554d503a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006146e3602783613c72565b91506146ee82614687565b604082019050919050565b60006020820190508181036000830152614712816146d6565b9050919050565b7f24504550554d503a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614775602583613c72565b915061478082614719565b604082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b7f24504550554d503a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614807602983613c72565b9150614812826147ab565b604082019050919050565b60006020820190508181036000830152614836816147fa565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000614873600c83613c72565b915061487e8261483d565b602082019050919050565b600060208201905081810360008301526148a281614866565b9050919050565b7f24504550554d503a206d61782074786e206c696d697420657863656564730000600082015250565b60006148df601e83613c72565b91506148ea826148a9565b602082019050919050565b6000602082019050818103600083015261490e816148d2565b9050919050565b7f24504550554d503a2074726164696e672069732064697361626c650000000000600082015250565b600061494b601b83613c72565b915061495682614915565b602082019050919050565b6000602082019050818103600083015261497a8161493e565b9050919050565b7f24504550554d503a206d617820686f6c64206c696d6974206578636565647300600082015250565b60006149b7601f83613c72565b91506149c282614981565b602082019050919050565b600060208201905081810360008301526149e6816149aa565b9050919050565b60006149f882613d9c565b9150614a0383613d9c565b925082821015614a1657614a1561421b565b5b828203905092915050565b6000614a2c82613d9c565b9150614a3783613d9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6c57614a6b61421b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614aad601b83613c72565b9150614ab882614a77565b602082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b6000606082019050614af86000830186613e69565b614b056020830185613e69565b614b126040830184613e69565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614b8781613bc3565b92915050565b600060208284031215614ba357614ba2613b8c565b5b6000614bb184828501614b78565b91505092915050565b6000819050919050565b6000614bdf614bda614bd584614bba565b613d22565b613d9c565b9050919050565b614bef81614bc4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c2a81613bb1565b82525050565b6000614c3c8383614c21565b60208301905092915050565b6000602082019050919050565b6000614c6082614bf5565b614c6a8185614c00565b9350614c7583614c11565b8060005b83811015614ca6578151614c8d8882614c30565b9750614c9883614c48565b925050600181019050614c79565b5085935050505092915050565b600060a082019050614cc86000830188613e69565b614cd56020830187614be6565b8181036040830152614ce78186614c55565b9050614cf66060830185613f4a565b614d036080830184613e69565b9695505050505050565b600060c082019050614d226000830189613f4a565b614d2f6020830188613e69565b614d3c6040830187614be6565b614d496060830186614be6565b614d566080830185613f4a565b614d6360a0830184613e69565b979650505050505050565b600081519050614d7d81613da6565b92915050565b600080600060608486031215614d9c57614d9b613b8c565b5b6000614daa86828701614d6e565b9350506020614dbb86828701614d6e565b9250506040614dcc86828701614d6e565b915050925092509256fe24504550554d503a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636524504550554d503a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa26469706673582212200bde092c1d3601d12dda802f608c81fd4584777827ff623d6c52720a8049387e64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063879dd3c511610190578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610b71578063f4b3dbc314610b9a578063f9dfdaeb14610bd7578063fe6f1b0514610c00576102ef565b8063ed42142914610ae0578063f097ea1a14610b1d578063f242ab4114610b46576102ef565b8063bf56b371146109ce578063bf862391146109f9578063dd62ed3e14610a24578063e6c84dc614610a61578063ea5b9e8514610a8c578063ec44acf214610ab5576102ef565b80639b6a275011610149578063a7c29b4011610123578063a7c29b4014610916578063a9059cbb1461093f578063b0bc2a2d1461097c578063be291dc6146109a5576102ef565b80639b6a275014610887578063a457c2d7146108b0578063a643c1a0146108ed576102ef565b8063879dd3c5146107875780638a8c523c146107b25780638da5cb5b146107c957806395d89b41146107f457806399b102b51461081f5780639a36dfa11461085c576102ef565b80633bbac5791161024f57806375f0a874116102085780637d99c66d116101e25780637d99c66d146106cb578063844af78e146106f657806384ea21bc146107215780638756aabd1461075e576102ef565b806375f0a8741461064a57806379777b4e146106755780637c6a9a9c146106a0576102ef565b80633bbac579146105285780635342acb414610565578063679a3c59146105a2578063681aa362146105cb57806370a08231146105f6578063715018a614610633576102ef565b80631884f1e6116102a15780631884f1e61461040457806323b872dd1461042f5780632d1293901461046c578063313ce567146104955780633326d7f2146104c057806339509351146104eb576102ef565b806303c0f5d4146102f457806306fdde031461031d5780630758d92414610348578063095ea7b3146103735780630a2d140c146103b057806318160ddd146103d9576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613c27565b610c2b565b005b34801561032957600080fd5b50610332610d1b565b60405161033f9190613d00565b60405180910390f35b34801561035457600080fd5b5061035d610dad565b60405161036a9190613d81565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613dd2565b610dd3565b6040516103a79190613e21565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e3c565b610df1565b005b3480156103e557600080fd5b506103ee610ea3565b6040516103fb9190613e78565b60405180910390f35b34801561041057600080fd5b50610419610ead565b6040516104269190613e78565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613e93565b610eb3565b6040516104639190613e21565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613c27565b610f8c565b005b3480156104a157600080fd5b506104aa61107c565b6040516104b79190613f02565b60405180910390f35b3480156104cc57600080fd5b506104d5611093565b6040516104e29190613e78565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613dd2565b611099565b60405161051f9190613e21565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a9190613f1d565b61114c565b60405161055c9190613e21565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190613f1d565b61116c565b6040516105999190613e21565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613f1d565b61118c565b005b3480156105d757600080fd5b506105e061126b565b6040516105ed9190613e78565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613f1d565b611271565b60405161062a9190613e78565b60405180910390f35b34801561063f57600080fd5b506106486112ba565b005b34801561065657600080fd5b5061065f61140d565b60405161066c9190613f59565b60405180910390f35b34801561068157600080fd5b5061068a611433565b6040516106979190613e21565b60405180910390f35b3480156106ac57600080fd5b506106b5611446565b6040516106c29190613e78565b60405180910390f35b3480156106d757600080fd5b506106e061144c565b6040516106ed9190613e78565b60405180910390f35b34801561070257600080fd5b5061070b611452565b6040516107189190613e78565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190613f1d565b611458565b6040516107559190613e21565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190613f74565b611478565b005b34801561079357600080fd5b5061079c611583565b6040516107a99190613e21565b60405180910390f35b3480156107be57600080fd5b506107c7611596565b005b3480156107d557600080fd5b506107de6116d5565b6040516107eb9190613f59565b60405180910390f35b34801561080057600080fd5b506108096116fe565b6040516108169190613d00565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613f1d565b611790565b6040516108539190613e21565b60405180910390f35b34801561086857600080fd5b506108716117b0565b60405161087e9190613e78565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613f74565b6117b6565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190613dd2565b6118a7565b6040516108e49190613e21565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f1d565b611974565b005b34801561092257600080fd5b5061093d60048036038101906109389190613c27565b611a4d565b005b34801561094b57600080fd5b5061096660048036038101906109619190613dd2565b611b3d565b6040516109739190613e21565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613e3c565b611b5b565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613fa1565b611c0d565b005b3480156109da57600080fd5b506109e3611d1e565b6040516109f09190613e78565b60405180910390f35b348015610a0557600080fd5b50610a0e611d24565b604051610a1b9190613e78565b60405180910390f35b348015610a3057600080fd5b50610a4b6004803603810190610a469190613fe1565b611d2a565b604051610a589190613e78565b60405180910390f35b348015610a6d57600080fd5b50610a76611db1565b604051610a839190613e78565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613c27565b611db7565b005b348015610ac157600080fd5b50610aca611ea7565b604051610ad79190613e21565b60405180910390f35b348015610aec57600080fd5b50610b076004803603810190610b029190613f74565b611eba565b604051610b149190613e78565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613f74565b611f05565b005b348015610b5257600080fd5b50610b5b611fe7565b604051610b689190613f59565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613f1d565b61200d565b005b348015610ba657600080fd5b50610bc16004803603810190610bbc9190613f74565b6121cf565b604051610bce9190613e78565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf99190613fa1565b61221a565b005b348015610c0c57600080fd5b50610c1561232b565b604051610c229190613e78565b60405180910390f35b610c336123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb79061406d565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610d2a906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d56906140bc565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de7610de06123f6565b84846123fe565b6001905092915050565b610df96123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d9061406d565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600e5481565b6000610ec08484846125c9565b610f8184610ecc6123f6565b610f7c856040518060600160405280602a8152602001614dd7602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f326123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b600190509392505050565b610f946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061406d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60165481565b60006111426110a66123f6565b8461113d85600260006110b76123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b6123fe565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6111946123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061406d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611267573d6000803e3d6000fd5b5050565b60105481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112c26123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113469061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b60175481565b60135481565b60195481565b60056020528060005260406000206000915054906101000a900460ff1681565b6114806123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115049061406d565b60405180910390fd5b6115376012546115296002600a5461237b90919063ffffffff16565b61233190919063ffffffff16565b811015611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614160565b60405180910390fd5b80600f8190555050565b601560019054906101000a900460ff1681565b61159e6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116229061406d565b60405180910390fd5b601560029054906101000a900460ff161561167b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611672906141cc565b60405180910390fd5b6001601560026101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560006101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606008805461170d906140bc565b80601f0160208091040260200160405190810160405280929190818152602001828054611739906140bc565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6117be6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118429061406d565b60405180910390fd5b601254600a5461185b919061424a565b81101561189d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611894906142ed565b60405180910390fd5b8060108190555050565b600061196a6118b46123f6565b84611965856040518060600160405280602a8152602001614e01602a9139600260006118de6123f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b6123fe565b6001905092915050565b61197c6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a009061406d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a556123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061406d565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b51611b4a6123f6565b84846125c9565b6001905092915050565b611b636123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be79061406d565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b611c156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c999061406d565b60405180910390fd5b8160198190555080601881905550611cc6600a60125461233190919063ffffffff16565b611cd98284612b6290919063ffffffff16565b1115611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190614359565b60405180910390fd5b5050565b60145481565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611dbf6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e439061406d565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560029054906101000a900460ff1681565b600080611efa601254611eec611edd601654601754612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b611f0d6123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061406d565b60405180910390fd5b60008111611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd4906143c5565b60405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120156123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120999061406d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990614457565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061220f6012546122016121f2601854601954612b6290919063ffffffff16565b8661237b90919063ffffffff16565b61233190919063ffffffff16565b905080915050919050565b6122226123f6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061406d565b60405180910390fd5b81601781905550806016819055506122d3600a60125461233190919063ffffffff16565b6122e68284612b6290919063ffffffff16565b1115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90614359565b60405180910390fd5b5050565b60125481565b600061237383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc0565b905092915050565b60008083141561238e57600090506123f0565b6000828461239c9190614477565b90508284826123ab919061424a565b146123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614543565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906145d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614667565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125bc9190613e78565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906146f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a09061478b565b60405180910390fd5b600081116126ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e39061481d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614889565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296857601054811115612867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285e906148f5565b60405180910390fd5b601560029054906101000a900460ff16612967578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561292757508173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90614961565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1957600f546129d7826129c985611271565b612b6290919063ffffffff16565b1115612a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f906149cd565b60405180910390fd5b5b612a238383612c23565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aca5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612ae25750601560019054906101000a900460ff16155b15612aec57600090505b612af884848484612f4d565b50505050565b6000838311158290612b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3d9190613d00565b60405180910390fd5b5060008385612b5591906149ed565b9050809150509392505050565b6000808284612b719190614a21565b905083811015612bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bad90614ac3565b60405180910390fd5b8091505092915050565b60008083118290612c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfe9190613d00565b60405180910390fd5b5060008385612c16919061424a565b9050809150509392505050565b6000612c2e30611271565b90506000600e548210159050808015612c955750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612cad5750601560009054906101000a900460ff165b8015612d3e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612d3c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612f4757612d7030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846123fe565b6000612d886002601a5461233190919063ffffffff16565b90506000612da182601a546136b090919063ffffffff16565b90506000612db882866136b090919063ffffffff16565b90506000479050612deb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836136fa565b6000612e0082476136b090919063ffffffff16565b90506000612e2984612e1b888561237b90919063ffffffff16565b61233190919063ffffffff16565b90506000811115612ea557612e69600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612e626116d5565b87846138e0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612e9c93929190614ae3565b60405180910390a15b6000612eba82476136b090919063ffffffff16565b90506000811115612f2f57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f2d573d6000803e3d6000fd5b505b6000601a819055506000601b81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612fa75750805b1561327f57600080601354601454612fbf9190614a21565b4210801561301b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561307e5761304960125461303b6011548761237b90919063ffffffff16565b61233190919063ffffffff16565b915081601b600082825461305d9190614a21565b9250508190555061307782856136b090919063ffffffff16565b90506130a8565b61308784611eba565b915061309c82856136b090919063ffffffff16565b90506130a784613984565b5b613131846040518060400160405280601d81526020017f24504550554d503a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c681600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132669190613e78565b60405180910390a36132788683613a09565b50506136aa565b8273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132d95750805b156134e25760006132e9836121cf565b9050600061330082856136b090919063ffffffff16565b905061338b846040518060400160405280601d81526020017f24504550554d503a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134c09190613e78565b60405180910390a36134d28683613a09565b6134db84613b07565b50506136a9565b61356b826040518060400160405280601d81526020017f24504550554d503a20696e73756666696369656e742062616c616e6365000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136a09190613e78565b60405180910390a35b5b50505050565b60006136f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612afe565b905092915050565b60008290506000600267ffffffffffffffff81111561371c5761371b614b1a565b5b60405190808252806020026020018201604052801561374a5781602001602082028036833780820191505090505b509050308160008151811061376257613761614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380b9190614b8d565b8160018151811061381f5761381e614b49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c426138889190614a21565b6040518663ffffffff1660e01b81526004016138a8959493929190614cb3565b600060405180830381600087803b1580156138c257600080fd5b505af11580156138d6573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426139169190614a21565b6040518863ffffffff1660e01b815260040161393796959493929190614d0d565b60606040518083038185885af1158015613955573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061397a9190614d83565b5050505050505050565b6139ad60125461399f6016548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a60008282546139be9190614a21565b925050819055506139ee6012546139e06017548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b60008282546139ff9190614a21565b9250508190555050565b613a5b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613afb9190613e78565b60405180910390a35050565b613b30601254613b226018548461237b90919063ffffffff16565b61233190919063ffffffff16565b601a6000828254613b419190614a21565b92505081905550613b71601254613b636019548461237b90919063ffffffff16565b61233190919063ffffffff16565b601b6000828254613b829190614a21565b9250508190555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613bbc82613b91565b9050919050565b613bcc81613bb1565b8114613bd757600080fd5b50565b600081359050613be981613bc3565b92915050565b60008115159050919050565b613c0481613bef565b8114613c0f57600080fd5b50565b600081359050613c2181613bfb565b92915050565b60008060408385031215613c3e57613c3d613b8c565b5b6000613c4c85828601613bda565b9250506020613c5d85828601613c12565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca1578082015181840152602081019050613c86565b83811115613cb0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613cd282613c67565b613cdc8185613c72565b9350613cec818560208601613c83565b613cf581613cb6565b840191505092915050565b60006020820190508181036000830152613d1a8184613cc7565b905092915050565b6000819050919050565b6000613d47613d42613d3d84613b91565b613d22565b613b91565b9050919050565b6000613d5982613d2c565b9050919050565b6000613d6b82613d4e565b9050919050565b613d7b81613d60565b82525050565b6000602082019050613d966000830184613d72565b92915050565b6000819050919050565b613daf81613d9c565b8114613dba57600080fd5b50565b600081359050613dcc81613da6565b92915050565b60008060408385031215613de957613de8613b8c565b5b6000613df785828601613bda565b9250506020613e0885828601613dbd565b9150509250929050565b613e1b81613bef565b82525050565b6000602082019050613e366000830184613e12565b92915050565b600060208284031215613e5257613e51613b8c565b5b6000613e6084828501613c12565b91505092915050565b613e7281613d9c565b82525050565b6000602082019050613e8d6000830184613e69565b92915050565b600080600060608486031215613eac57613eab613b8c565b5b6000613eba86828701613bda565b9350506020613ecb86828701613bda565b9250506040613edc86828701613dbd565b9150509250925092565b600060ff82169050919050565b613efc81613ee6565b82525050565b6000602082019050613f176000830184613ef3565b92915050565b600060208284031215613f3357613f32613b8c565b5b6000613f4184828501613bda565b91505092915050565b613f5381613bb1565b82525050565b6000602082019050613f6e6000830184613f4a565b92915050565b600060208284031215613f8a57613f89613b8c565b5b6000613f9884828501613dbd565b91505092915050565b60008060408385031215613fb857613fb7613b8c565b5b6000613fc685828601613dbd565b9250506020613fd785828601613dbd565b9150509250929050565b60008060408385031215613ff857613ff7613b8c565b5b600061400685828601613bda565b925050602061401785828601613bda565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614057602083613c72565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140d457607f821691505b602082108114156140e8576140e761408d565b5b50919050565b7f24504550554d503a2073686f756c642062652067726561746572207468616e2060008201527f302e322500000000000000000000000000000000000000000000000000000000602082015250565b600061414a602483613c72565b9150614155826140ee565b604082019050919050565b600060208201905081810360008301526141798161413d565b9050919050565b7f24504550554d503a20616c726561647920656e61626c65640000000000000000600082015250565b60006141b6601883613c72565b91506141c182614180565b602082019050919050565b600060208201905081810360008301526141e5816141a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061425582613d9c565b915061426083613d9c565b9250826142705761426f6141ec565b5b828204905092915050565b7f24504550554d503a2073686f756c642062652067726561746572207468616e2060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b60006142d7602483613c72565b91506142e28261427b565b604082019050919050565b60006020820190508181036000830152614306816142ca565b9050919050565b7f24504550554d503a2063616e2774206265206d6f7265207468616e2031302500600082015250565b6000614343601f83613c72565b915061434e8261430d565b602082019050919050565b6000602082019050818103600083015261437281614336565b9050919050565b7f24504550554d503a2063616e2774206265203000000000000000000000000000600082015250565b60006143af601383613c72565b91506143ba82614379565b602082019050919050565b600060208201905081810360008301526143de816143a2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614441602683613c72565b915061444c826143e5565b604082019050919050565b6000602082019050818103600083015261447081614434565b9050919050565b600061448282613d9c565b915061448d83613d9c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144c6576144c561421b565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061452d602183613c72565b9150614538826144d1565b604082019050919050565b6000602082019050818103600083015261455c81614520565b9050919050565b7f24504550554d503a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145bf602683613c72565b91506145ca82614563565b604082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f24504550554d503a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614651602483613c72565b915061465c826145f5565b604082019050919050565b6000602082019050818103600083015261468081614644565b9050919050565b7f24504550554d503a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006146e3602783613c72565b91506146ee82614687565b604082019050919050565b60006020820190508181036000830152614712816146d6565b9050919050565b7f24504550554d503a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614775602583613c72565b915061478082614719565b604082019050919050565b600060208201905081810360008301526147a481614768565b9050919050565b7f24504550554d503a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614807602983613c72565b9150614812826147ab565b604082019050919050565b60006020820190508181036000830152614836816147fa565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000614873600c83613c72565b915061487e8261483d565b602082019050919050565b600060208201905081810360008301526148a281614866565b9050919050565b7f24504550554d503a206d61782074786e206c696d697420657863656564730000600082015250565b60006148df601e83613c72565b91506148ea826148a9565b602082019050919050565b6000602082019050818103600083015261490e816148d2565b9050919050565b7f24504550554d503a2074726164696e672069732064697361626c650000000000600082015250565b600061494b601b83613c72565b915061495682614915565b602082019050919050565b6000602082019050818103600083015261497a8161493e565b9050919050565b7f24504550554d503a206d617820686f6c64206c696d6974206578636565647300600082015250565b60006149b7601f83613c72565b91506149c282614981565b602082019050919050565b600060208201905081810360008301526149e6816149aa565b9050919050565b60006149f882613d9c565b9150614a0383613d9c565b925082821015614a1657614a1561421b565b5b828203905092915050565b6000614a2c82613d9c565b9150614a3783613d9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6c57614a6b61421b565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614aad601b83613c72565b9150614ab882614a77565b602082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b6000606082019050614af86000830186613e69565b614b056020830185613e69565b614b126040830184613e69565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614b8781613bc3565b92915050565b600060208284031215614ba357614ba2613b8c565b5b6000614bb184828501614b78565b91505092915050565b6000819050919050565b6000614bdf614bda614bd584614bba565b613d22565b613d9c565b9050919050565b614bef81614bc4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c2a81613bb1565b82525050565b6000614c3c8383614c21565b60208301905092915050565b6000602082019050919050565b6000614c6082614bf5565b614c6a8185614c00565b9350614c7583614c11565b8060005b83811015614ca6578151614c8d8882614c30565b9750614c9883614c48565b925050600181019050614c79565b5085935050505092915050565b600060a082019050614cc86000830188613e69565b614cd56020830187614be6565b8181036040830152614ce78186614c55565b9050614cf66060830185613f4a565b614d036080830184613e69565b9695505050505050565b600060c082019050614d226000830189613f4a565b614d2f6020830188613e69565b614d3c6040830187614be6565b614d496060830186614be6565b614d566080830185613f4a565b614d6360a0830184613e69565b979650505050505050565b600081519050614d7d81613da6565b92915050565b600080600060608486031215614d9c57614d9b613b8c565b5b6000614daa86828701614d6e565b9350506020614dbb86828701614d6e565b9250506040614dcc86828701614d6e565b915050925092509256fe24504550554d503a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636524504550554d503a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa26469706673582212200bde092c1d3601d12dda802f608c81fd4584777827ff623d6c52720a8049387e64736f6c634300080a0033

Deployed Bytecode Sourcemap

3176:16077:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11112:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6564:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3892:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7475:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10751:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6841:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3994:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7676:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9189:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6750:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4677:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8132:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3571:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3393:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11502:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4208:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6949:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2723:157;;;;;;;;;;;;;:::i;:::-;;3955:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4460:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4761:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4380:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4940:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3508:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9536:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4556:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11250:244;;;;;;;;;;;;;:::i;:::-;;2509:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6655:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3449:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4102:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9793:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8440:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10981:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9018:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7076:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10874:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10393:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4426:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4303:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7283:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4855:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8853:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4606:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11639:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9368:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3926:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2888:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11879:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10038:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4337:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11112:130;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11228:6:::1;11212:5;:13;11218:6;11212:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11112:130:::0;;:::o;6564:83::-;6601:13;6634:5;6627:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6564:83;:::o;3892:27::-;;;;;;;;;;;;;:::o;7475:193::-;7577:4;7599:39;7608:12;:10;:12::i;:::-;7622:7;7631:6;7599:8;:39::i;:::-;7656:4;7649:11;;7475:193;;;;:::o;10751:115::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10852:6:::1;10823:26;;:35;;;;;;;;;;;;;;;;;;10751:115:::0;:::o;6841:100::-;6894:7;6921:12;;6914:19;;6841:100;:::o;3994:53::-;;;;:::o;7676:448::-;7808:4;7825:36;7835:6;7843:9;7854:6;7825:9;:36::i;:::-;7872:222;7895:6;7916:12;:10;:12::i;:::-;7943:140;7999:6;7943:140;;;;;;;;;;;;;;;;;:11;:19;7955:6;7943:19;;;;;;;;;;;;;;;:33;7963:12;:10;:12::i;:::-;7943:33;;;;;;;;;;;;;;;;:37;;:140;;;;;:::i;:::-;7872:8;:222::i;:::-;8112:4;8105:11;;7676:448;;;;;:::o;9189:171::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9347:5:::1;9311:24;:33;9336:7;9311:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9189:171:::0;;:::o;6750:83::-;6791:5;6816:9;;;;;;;;;;;6809:16;;6750:83;:::o;4677:40::-;;;;:::o;8132:300::-;8247:4;8269:133;8292:12;:10;:12::i;:::-;8319:7;8341:50;8380:10;8341:11;:25;8353:12;:10;:12::i;:::-;8341:25;;;;;;;;;;;;;;;:34;8367:7;8341:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8269:8;:133::i;:::-;8420:4;8413:11;;8132:300;;;;:::o;3571:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;3393:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11502:129::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11581:9:::1;11573:27;;:50;11601:21;11573:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11502:129:::0;:::o;4208:51::-;;;;:::o;6949:119::-;7015:7;7042:9;:18;7052:7;7042:18;;;;;;;;;;;;;;;;7035:25;;6949:119;;;:::o;2723:157::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2830:1:::1;2793:40;;2814:6;::::0;::::1;;;;;;;;2793:40;;;;;;;;;;;;2869:1;2844:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2723:157::o:0;3955:30::-;;;;;;;;;;;;;:::o;4460:38::-;;;;;;;;;;;;;:::o;4761:40::-;;;;:::o;4380:39::-;;;;:::o;4940:41::-;;;;:::o;3508:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;9536:249::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9641:39:::1;9665:14;;9641:19;9658:1;9641:12;;:16;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;9630:7;:50;;9608:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;9770:7;9755:12;:22;;;;9536:249:::0;:::o;4556:22::-;;;;;;;;;;;;;:::o;11250:244::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11314:7:::1;;;;;;;;;;;11313:8;11305:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11371:4;11361:7;;:14;;;;;;;;;;;;;;;;;;11399:4;11386:10;;:17;;;;;;;;;;;;;;;;;;11443:4;11414:26;;:33;;;;;;;;;;;;;;;;;;11471:15;11458:10;:28;;;;11250:244::o:0;2509:79::-;2547:7;2574:6;;;;;;;;;;;2567:13;;2509:79;:::o;6655:87::-;6694:13;6727:7;6720:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:87;:::o;3449:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;4102:59::-;;;;:::o;9793:237::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9912:14:::1;;9897:12;;:29;;;;:::i;:::-;9886:7;:40;;9864:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;10015:7;10001:11;:21;;;;9793:237:::0;:::o;8440:405::-;8560:4;8582:233;8605:12;:10;:12::i;:::-;8632:7;8654:150;8711:15;8654:150;;;;;;;;;;;;;;;;;:11;:25;8666:12;:10;:12::i;:::-;8654:25;;;;;;;;;;;;;;;:34;8680:7;8654:34;;;;;;;;;;;;;;;;:38;;:150;;;;;:::i;:::-;8582:8;:233::i;:::-;8833:4;8826:11;;8440:405;;;;:::o;10981:123::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11080:16:::1;11062:15;;:34;;;;;;;;;;;;;;;;;;10981:123:::0;:::o;9018:163::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9168:5:::1;9136:20;:29;9157:7;9136:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9018:163:::0;;:::o;7076:199::-;7181:4;7203:42;7213:12;:10;:12::i;:::-;7227:9;7238:6;7203:9;:42::i;:::-;7263:4;7256:11;;7076:199;;;;:::o;10874:99::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10959:6:::1;10946:10;;:19;;;;;;;;;;;;;;;;;;10874:99:::0;:::o;10393:350::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10538:6:::1;10514:21;:30;;;;10579:13;10555:21;:37;;;;10654:22;10673:2;10654:14;;:18;;:22;;;;:::i;:::-;10625:25;10636:13;10625:6;:10;;:25;;;;:::i;:::-;:51;;10603:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10393:350:::0;;:::o;4426:25::-;;;;:::o;4303:27::-;;;;:::o;7283:184::-;7400:7;7432:11;:18;7444:5;7432:18;;;;;;;;;;;;;;;:27;7451:7;7432:27;;;;;;;;;;;;;;;;7425:34;;7283:184;;;;:::o;4855:41::-;;;;:::o;8853:157::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8997:5:::1;8968:17;:26;8986:7;8968:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8853:157:::0;;:::o;4606:19::-;;;;;;;;;;;;;:::o;11639:232::-;11702:7;11722:11;11736:106;11827:14;;11736:72;11761:46;11786:20;;11761;;:24;;:46;;;;:::i;:::-;11736:6;:24;;:72;;;;:::i;:::-;:90;;:106;;;;:::i;:::-;11722:120;;11860:3;11853:10;;;11639:232;;;:::o;9368:160::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9460:1:::1;9450:7;:11;9442:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;9513:7;9496:14;:24;;;;9368:160:::0;:::o;3926:22::-;;;;;;;;;;;;;:::o;2888:281::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3011:1:::1;2991:22;;:8;:22;;;;2969:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3124:8;3095:38;;3116:6;::::0;::::1;;;;;;;;3095:38;;;;;;;;;;;;3153:8;3144:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2888:281:::0;:::o;11879:235::-;11943:7;11963:11;11977:108;12070:14;;11977:74;12002:48;12028:21;;12002;;:25;;:48;;;;:::i;:::-;11977:6;:24;;:74;;;;:::i;:::-;:92;;:108;;;;:::i;:::-;11963:122;;12103:3;12096:10;;;11879:235;;;:::o;10038:347::-;2646:12;:10;:12::i;:::-;2636:22;;:6;;;;;;;;;;:22;;;2628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10181:6:::1;10158:20;:29;;;;10221:13;10198:20;:36;;;;10296:22;10315:2;10296:14;;:18;;:22;;;;:::i;:::-;10267:25;10278:13;10267:6;:10;;:25;;;;:::i;:::-;:51;;10245:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10038:347:::0;;:::o;4337:36::-;;;;:::o;21549:132::-;21607:7;21634:39;21638:1;21641;21634:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;21627:46;;21549:132;;;;:::o;21070:471::-;21128:7;21378:1;21373;:6;21369:47;;;21403:1;21396:8;;;;21369:47;21428:9;21444:1;21440;:5;;;;:::i;:::-;21428:17;;21473:1;21468;21464;:5;;;;:::i;:::-;:10;21456:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;21532:1;21525:8;;;21070:471;;;;;:::o;1845:115::-;1898:15;1941:10;1926:26;;1845:115;:::o;12122:375::-;12266:1;12249:19;;:5;:19;;;;12241:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12349:1;12330:21;;:7;:21;;;;12322:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12435:6;12405:11;:18;12417:5;12405:18;;;;;;;;;;;;;;;:27;12424:7;12405:27;;;;;;;;;;;;;;;:36;;;;12473:7;12457:32;;12466:5;12457:32;;;12482:6;12457:32;;;;;;:::i;:::-;;;;;;;;12122:375;;;:::o;12505:1497::-;12643:1;12627:18;;:4;:18;;;;12619:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12722:1;12708:16;;:2;:16;;;;12700:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12794:1;12785:6;:10;12777:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12861:5;:11;12867:4;12861:11;;;;;;;;;;;;;;;;;;;;;;;;;12860:12;12852:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;12906:20;:26;12927:4;12906:26;;;;;;;;;;;;;;;;;;;;;;;;;12905:27;:56;;;;;12937:20;:24;12958:2;12937:24;;;;;;;;;;;;;;;;;;;;;;;;;12936:25;12905:56;12901:395;;;12996:11;;12986:6;:21;;12978:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13108:7;;;;;;;;;;;13103:182;;13177:4;13166:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;13196:2;13185:13;;:7;;;;;;;;;;;:13;;;;13166:32;13136:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;13103:182;12901:395;13313:24;:28;13338:2;13313:28;;;;;;;;;;;;;;;;;;;;;;;;;13308:196;;13413:12;;13384:25;13402:6;13384:13;13394:2;13384:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;13358:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;13308:196;13545:30;13566:4;13572:2;13545:20;:30::i;:::-;13649:12;13664:4;13649:19;;13768:17;:23;13786:4;13768:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;13795:17;:21;13813:2;13795:21;;;;;;;;;;;;;;;;;;;;;;;;;13768:48;:63;;;;13821:10;;;;;;;;;;;13820:11;13768:63;13764:111;;;13858:5;13848:15;;13764:111;13953:41;13968:4;13974:2;13978:6;13986:7;13953:14;:41::i;:::-;12608:1394;12505:1497;;;:::o;20836:226::-;20956:7;20989:1;20984;:6;;20992:12;20976:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;21016:9;21032:1;21028;:5;;;;:::i;:::-;21016:17;;21053:1;21046:8;;;20836:226;;;;;:::o;20503:181::-;20561:7;20581:9;20597:1;20593;:5;;;;:::i;:::-;20581:17;;20622:1;20617;:6;;20609:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;20675:1;20668:8;;;20503:181;;;;:::o;21689:312::-;21809:7;21841:1;21837;:5;21844:12;21829:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;21868:9;21884:1;21880;:5;;;;:::i;:::-;21868:17;;21992:1;21985:8;;;21689:312;;;;;:::o;16864:2386::-;17217:28;17248:24;17266:4;17248:9;:24::i;:::-;17217:55;;17285:15;17327:14;;17303:20;:38;;17285:56;;17372:10;:42;;;;;17407:7;;;;;;;;;;;17399:15;;:4;:15;;;;17372:42;:85;;;;;17431:26;;;;;;;;;;;17372:85;:143;;;;;17492:4;17476:21;;:4;:21;;;:38;;;;;17507:7;;;;;;;;;;;17501:13;;:2;:13;;;17476:38;17474:41;17372:143;17354:1889;;;17590:65;17607:4;17622:9;;;;;;;;;;;17634:20;17590:8;:65::i;:::-;17672:21;17696:26;17720:1;17696:19;;:23;;:26;;;;:::i;:::-;17672:50;;17737:26;17766:38;17790:13;17766:19;;:23;;:38;;;;:::i;:::-;17737:67;;17821:30;17854:76;17897:18;17854:20;:24;;:76;;;;:::i;:::-;17821:109;;17947:21;17971;17947:45;;18059:66;18090:9;;;;;;;;;;;18102:22;18059;:66::i;:::-;18142:20;18165:40;18191:13;18165:21;:25;;:40;;;;:::i;:::-;18142:63;;18222:31;18256:95;18328:22;18256:49;18291:13;18256:12;:34;;:49;;;;:::i;:::-;:71;;:95;;;;:::i;:::-;18222:129;;18435:1;18409:23;:27;18405:445;;;18457:195;18506:9;;;;;;;;;;;18539:7;:5;:7::i;:::-;18569:18;18610:23;18457:18;:195::i;:::-;18678:156;18715:13;18751:23;18797:18;18678:156;;;;;;;;:::i;:::-;;;;;;;;18405:445;18866:23;18892:82;18936:23;18892:21;:25;;:82;;;;:::i;:::-;18866:108;;19061:1;19043:15;:19;19039:75;;;19072:15;;;;;;;;;;;19064:33;;:50;19098:15;19064:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19039:75;19192:1;19170:19;:23;;;;19230:1;19208:19;:23;;;;17542:1701;;;;;;;17354:1889;16928:2322;;16864:2386;;:::o;14083:1977::-;14249:6;14238:17;;:7;;;;;;;;;;;:17;;;:28;;;;;14259:7;14238:28;14234:1819;;;14283:14;14312:23;14427:11;;14414:10;;:24;;;;:::i;:::-;14396:15;:42;:91;;;;;14477:9;;;;;;;;;;;14459:28;;:6;:28;;;;14396:91;14374:492;;;14531:38;14554:14;;14531:18;14542:6;;14531;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;14522:47;;14611:6;14588:19;;:29;;;;;;;:::i;:::-;;;;;;;;14654:18;14665:6;14654;:10;;:18;;;;:::i;:::-;14636:36;;14374:492;;;14722:24;14739:6;14722:16;:24::i;:::-;14713:33;;14783:18;14794:6;14783;:10;;:18;;;;:::i;:::-;14765:36;;14820:30;14843:6;14820:22;:30::i;:::-;14374:492;14902:111;14942:6;14902:111;;;;;;;;;;;;;;;;;:9;:17;14912:6;14902:17;;;;;;;;;;;;;;;;:21;;:111;;;;;:::i;:::-;14882:9;:17;14892:6;14882:17;;;;;;;;;;;;;;;:131;;;;15051:41;15076:15;15051:9;:20;15061:9;15051:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15028:9;:20;15038:9;15028:20;;;;;;;;;;;;;;;:64;;;;15129:9;15112:44;;15121:6;15112:44;;;15140:15;15112:44;;;;;;:::i;:::-;;;;;;;;15173:28;15186:6;15194;15173:12;:28::i;:::-;14268:945;;14234:1819;;;15234:9;15223:20;;:7;;;;;;;;;;;:20;;;:31;;;;;15247:7;15223:31;15219:834;;;15271:14;15288:25;15306:6;15288:17;:25::i;:::-;15271:42;;15328:23;15354:18;15365:6;15354;:10;;:18;;;;:::i;:::-;15328:44;;15407:111;15447:6;15407:111;;;;;;;;;;;;;;;;;:9;:17;15417:6;15407:17;;;;;;;;;;;;;;;;:21;;:111;;;;;:::i;:::-;15387:9;:17;15397:6;15387:17;;;;;;;;;;;;;;;:131;;;;15556:41;15581:15;15556:9;:20;15566:9;15556:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15533:9;:20;15543:9;15533:20;;;;;;;;;;;;;;;:64;;;;15634:9;15617:44;;15626:6;15617:44;;;15645:15;15617:44;;;;;;:::i;:::-;;;;;;;;15678:28;15691:6;15699;15678:12;:28::i;:::-;15721:31;15745:6;15721:23;:31::i;:::-;15256:508;;15219:834;;;15805:111;15845:6;15805:111;;;;;;;;;;;;;;;;;:9;:17;15815:6;15805:17;;;;;;;;;;;;;;;;:21;;:111;;;;;:::i;:::-;15785:9;:17;15795:6;15785:17;;;;;;;;;;;;;;;:131;;;;15954:32;15979:6;15954:9;:20;15964:9;15954:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15931:9;:20;15941:9;15931:20;;;;;;;;;;;;;;;:55;;;;16023:9;16006:35;;16015:6;16006:35;;;16034:6;16006:35;;;;;;:::i;:::-;;;;;;;;15219:834;14234:1819;14083:1977;;;;:::o;20692:136::-;20750:7;20777:43;20781:1;20784;20777:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;20770:50;;20692:136;;;;:::o;19349:603::-;19453:20;19487:13;19453:48;;19570:21;19608:1;19594:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19570:40;;19639:4;19621;19626:1;19621:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19665:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19655:4;19660:1;19655:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;19720:9;:60;;;19795:11;19821:1;19865:4;19892;19930:3;19912:15;:21;;;;:::i;:::-;19720:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19442:510;;19349:603;;:::o;19960:512::-;20123:20;20157:13;20123:48;;20214:9;:25;;;20247:9;20280:4;20300:11;20326:1;20369;20412:5;20450:3;20432:15;:21;;;;:::i;:::-;20214:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20112:360;19960:512;;;;:::o;16277:284::-;16367:76;16418:14;;16367:32;16378:20;;16367:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16344:19;;:99;;;;;;;:::i;:::-;;;;;;;;16477:76;16528:14;;16477:32;16488:20;;16477:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16454:19;;:99;;;;;;;:::i;:::-;;;;;;;;16277:284;:::o;16068:201::-;16168:36;16197:6;16168:9;:24;16186:4;16168:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;16141:9;:24;16159:4;16141:24;;;;;;;;;;;;;;;:63;;;;16247:4;16222:39;;16231:6;16222:39;;;16254:6;16222:39;;;;;;:::i;:::-;;;;;;;;16068:201;;:::o;16569:287::-;16660:77;16712:14;;16660:33;16671:21;;16660:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16637:19;;:100;;;;;;;:::i;:::-;;;;;;;;16771:77;16823:14;;16771:33;16782:21;;16771:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16748:19;;:100;;;;;;;:::i;:::-;;;;;;;;16569: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://0bde092c1d3601d12dda802f608c81fd4584777827ff623d6c52720a8049387e
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.