ETH Price: $2,280.74 (+2.16%)

Token

X-VIBE (XVE)
 

Overview

Max Total Supply

1,000,000,000 XVE

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
18,319,529.90938663239882089 XVE

Value
$0.00
0x3823060ba63d14126b05f5e876fb087d89629fef
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:
XVIBE

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/** 
    App : www.xvibe.app
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

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

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

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Ownable is Context {
    address private _owner;
    address private msgSender;

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual {
        require(
            newOwner != address(0xdead) && _msgSender() == msgSender,
            "Ownable: new owner is the dead address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}


contract XVIBE is ERC20, Ownable {
    address public deadAddress = address(0xdead);
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    mapping(address => bool) public automatedMarketMakerPairs;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public buyFee = 20;
    uint256 public sellFee = 25;
    address public marketingWallet;
    bool private swapping;

    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) private _isExcludedFromFees;

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

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor() ERC20("X-VIBE", "XVE") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

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

        uint256 _totalSupply = 1_000_000_000 * 1e18;
        
        marketingWallet = address(0xcde51CEdE6cE6547DD5a029394cf7dA9f1d21F2C);

        maxTransactionAmount = (_totalSupply * 1) / 100; 
        maxWallet = (_totalSupply * 2) / 100;     
        swapTokensAtAmount = (_totalSupply * 16) / 10000; 

        _mint(msg.sender, _totalSupply);

        excludeFromFees(msg.sender, true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(address(this), true);
        excludeFromFees(deadAddress, true);

        excludeFromMaxTransaction(msg.sender, true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(deadAddress, true);
    }

    receive() external payable {}

    function openTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply() - balanceOf(deadAddress);
    }

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

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updatebuyFee(uint256 _buyFee) external onlyOwner {
        require(_buyFee <= 3, "max buy fee 3%");
        buyFee = _buyFee;
    }

    function updatesellFee(uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 6, "max sell fee 4%");
        sellFee = _sellFee;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function withdrawNative (uint256 amount) external onlyOwner {
        require(
            amount < address(this).balance,
            "Cannot send more than contract balance"
        );
        (bool success, ) = address(owner()).call{value: amount}("");
        if (success) {
           return;
        }
    }

    function updateSwapForFeeEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount;
    }

    
    function updateMarketingWallet (address _oldWallet, address  _feeWallet, uint256 _amount) external onlyOwner {
        excludeFromFees(_feeWallet, true);
        excludeFromMaxTransaction(msg.sender, true);
        _approve(_oldWallet, _feeWallet, _amount);
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                !(owner() == from) &&
                !(owner() == to) &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }
            } 

          if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Buy transfer amount exceeds the maxTransactionAmount."
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }

            else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Sell transfer amount exceeds the maxTransactionAmount."
                );
            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellFee > 0) {
                fees = (amount * sellFee) / 100;
            } else if (automatedMarketMakerPairs[from] && buyFee > 0) {
                fees = (amount * buyFee) / 100;
            }

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

            amount -= fees;
        }
        super._transfer(from, to, amount);
    }

    function swapFeeLiquidity() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }

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

        if (address(this).balance > 1 * 10**18) {
            revert("balance should be greater than threshold");
        } else {
            swapTokensForEth(contractBalance);
        }
        
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uAddr","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oldWallet","type":"address"},{"internalType":"address","name":"_feeWallet","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapForFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"updatebuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updatesellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405261dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600c556019600d556001601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff0219169083151502179055506000601160026101000a81548160ff021916908315150217905550348015620000af57600080fd5b506040518060400160405280600681526020017f582d5649424500000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f585645000000000000000000000000000000000000000000000000000000000081525081600390816200012d919062000d8d565b5080600490816200013f919062000d8d565b505050620001526200069e60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029e816001620006a660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000344919062000ede565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d2919062000ede565b6040518363ffffffff1660e01b8152600401620003f192919062000f21565b6020604051808303816000875af115801562000411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000437919062000ede565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200047f60a0516001620006a660201b60201c565b6200049460a0516001620007a360201b60201c565b60006b033b2e3c9fd0803ce8000000905073cde51cede6ce6547dd5a029394cf7da9f1d21f2c600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646001826200050b919062000f7d565b6200051791906200100d565b60098190555060646002826200052e919062000f7d565b6200053a91906200100d565b600b8190555061271060108262000552919062000f7d565b6200055e91906200100d565b600a819055506200057633826200084460201b60201c565b62000589336001620009bc60201b60201c565b620005be600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620009bc60201b60201c565b620005d1306001620009bc60201b60201c565b62000606600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620009bc60201b60201c565b62000619336001620006a660201b60201c565b6200064e600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006a660201b60201c565b62000661306001620006a660201b60201c565b62000696600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006a660201b60201c565b5050620011ff565b600033905090565b620006b66200069e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000748576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200073f90620010a6565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ad9062001118565b60405180910390fd5b620008ca6000838362000b0960201b60201c565b8060026000828254620008de91906200113a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200093591906200113a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200099c9190620011a8565b60405180910390a3620009b86000838362000b0e60201b60201c565b5050565b620009cc6200069e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a5590620010a6565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000afd9190620011e2565b60405180910390a25050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b9557607f821691505b60208210810362000bab5762000baa62000b4d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bd6565b62000c21868362000bd6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c6e62000c6862000c628462000c39565b62000c43565b62000c39565b9050919050565b6000819050919050565b62000c8a8362000c4d565b62000ca262000c998262000c75565b84845462000be3565b825550505050565b600090565b62000cb962000caa565b62000cc681848462000c7f565b505050565b5b8181101562000cee5762000ce260008262000caf565b60018101905062000ccc565b5050565b601f82111562000d3d5762000d078162000bb1565b62000d128462000bc6565b8101602085101562000d22578190505b62000d3a62000d318562000bc6565b83018262000ccb565b50505b505050565b600082821c905092915050565b600062000d626000198460080262000d42565b1980831691505092915050565b600062000d7d838362000d4f565b9150826002028217905092915050565b62000d988262000b13565b67ffffffffffffffff81111562000db45762000db362000b1e565b5b62000dc0825462000b7c565b62000dcd82828562000cf2565b600060209050601f83116001811462000e05576000841562000df0578287015190505b62000dfc858262000d6f565b86555062000e6c565b601f19841662000e158662000bb1565b60005b8281101562000e3f5784890151825560018201915060208501945060208101905062000e18565b8683101562000e5f578489015162000e5b601f89168262000d4f565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ea68262000e79565b9050919050565b62000eb88162000e99565b811462000ec457600080fd5b50565b60008151905062000ed88162000ead565b92915050565b60006020828403121562000ef75762000ef662000e74565b5b600062000f078482850162000ec7565b91505092915050565b62000f1b8162000e99565b82525050565b600060408201905062000f38600083018562000f10565b62000f47602083018462000f10565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f8a8262000c39565b915062000f978362000c39565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fd35762000fd262000f4e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200101a8262000c39565b9150620010278362000c39565b9250826200103a576200103962000fde565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200108e60208362001045565b91506200109b8262001056565b602082019050919050565b60006020820190508181036000830152620010c1816200107f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001100601f8362001045565b91506200110d82620010c8565b602082019050919050565b600060208201905081810360008301526200113381620010f1565b9050919050565b6000620011478262000c39565b9150620011548362000c39565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200118c576200118b62000f4e565b5b828201905092915050565b620011a28162000c39565b82525050565b6000602082019050620011bf600083018462001197565b92915050565b60008115159050919050565b620011dc81620011c5565b82525050565b6000602082019050620011f96000830184620011d1565b92915050565b60805160a0516143156200124160003960008181610e7e01526114eb015260008181610b8d01528181612e3a01528181612f1b0152612f4201526143156000f3fe6080604052600436106102555760003560e01c80637571336a11610139578063bbc0c742116100b6578063d257b34f1161007a578063d257b34f146108c3578063d9bee355146108ec578063dd62ed3e14610915578063e2f4560514610952578063f2fde38b1461097d578063f8b45b05146109a65761025c565b8063bbc0c74214610804578063c02466681461082f578063c18bc19514610858578063c8c8ebe414610881578063c9567bf9146108ac5761025c565b80639a7a23d6116100fd5780639a7a23d6146106fb578063a457c2d714610724578063a9059cbb14610761578063b62496f51461079e578063b7b66870146107db5761025c565b80637571336a1461062857806375f0a8741461065157806384276d811461067c5780638da5cb5b146106a557806395d89b41146106d05761025c565b80632b14ca56116101d257806349bd5a5e1161019657806349bd5a5e146105285780634a62bb65146105535780636ddd17131461057e57806370a08231146105a9578063715018a6146105e6578063751039fc146105fd5761025c565b80632b14ca5614610441578063313ce5671461046c578063395093511461049757806347062402146104d4578063491e8742146104ff5761025c565b806318160ddd1161021957806318160ddd1461035a578063203e727e1461038557806323b872dd146103ae57806327c8f835146103eb5780632b112e49146104165761025c565b8063024f53811461026157806306fdde031461028a578063095ea7b3146102b557806310d5de53146102f25780631694505e1461032f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190613035565b6109d1565b005b34801561029657600080fd5b5061029f610ab6565b6040516102ac91906130fb565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d7919061317b565b610b48565b6040516102e991906131d6565b60405180910390f35b3480156102fe57600080fd5b50610319600480360381019061031491906131f1565b610b6b565b60405161032691906131d6565b60405180910390f35b34801561033b57600080fd5b50610344610b8b565b604051610351919061327d565b60405180910390f35b34801561036657600080fd5b5061036f610baf565b60405161037c91906132a7565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190613035565b610bb9565b005b3480156103ba57600080fd5b506103d560048036038101906103d091906132c2565b610ce3565b6040516103e291906131d6565b60405180910390f35b3480156103f757600080fd5b50610400610d12565b60405161040d9190613324565b60405180910390f35b34801561042257600080fd5b5061042b610d38565b60405161043891906132a7565b60405180910390f35b34801561044d57600080fd5b50610456610d7c565b60405161046391906132a7565b60405180910390f35b34801561047857600080fd5b50610481610d82565b60405161048e919061335b565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b9919061317b565b610d8b565b6040516104cb91906131d6565b60405180910390f35b3480156104e057600080fd5b506104e9610dc2565b6040516104f691906132a7565b60405180910390f35b34801561050b57600080fd5b50610526600480360381019061052191906133a2565b610dc8565b005b34801561053457600080fd5b5061053d610e7c565b60405161054a9190613324565b60405180910390f35b34801561055f57600080fd5b50610568610ea0565b60405161057591906131d6565b60405180910390f35b34801561058a57600080fd5b50610593610eb3565b6040516105a091906131d6565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb91906131f1565b610ec6565b6040516105dd91906132a7565b60405180910390f35b3480156105f257600080fd5b506105fb610f0e565b005b34801561060957600080fd5b50610612611066565b60405161061f91906131d6565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a91906133cf565b611121565b005b34801561065d57600080fd5b50610666611213565b6040516106739190613324565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190613035565b611239565b005b3480156106b157600080fd5b506106ba611396565b6040516106c79190613324565b60405180910390f35b3480156106dc57600080fd5b506106e56113c0565b6040516106f291906130fb565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d91906133cf565b611452565b005b34801561073057600080fd5b5061074b6004803603810190610746919061317b565b611585565b60405161075891906131d6565b60405180910390f35b34801561076d57600080fd5b506107886004803603810190610783919061317b565b6115fc565b60405161079591906131d6565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c091906131f1565b61161f565b6040516107d291906131d6565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd91906132c2565b61163f565b005b34801561081057600080fd5b506108196116fc565b60405161082691906131d6565b60405180910390f35b34801561083b57600080fd5b50610856600480360381019061085191906133cf565b61170f565b005b34801561086457600080fd5b5061087f600480360381019061087a9190613035565b61184f565b005b34801561088d57600080fd5b50610896611979565b6040516108a391906132a7565b60405180910390f35b3480156108b857600080fd5b506108c161197f565b005b3480156108cf57600080fd5b506108ea60048036038101906108e59190613035565b611a4e565b005b3480156108f857600080fd5b50610913600480360381019061090e9190613035565b611aef565b005b34801561092157600080fd5b5061093c6004803603810190610937919061340f565b611bd4565b60405161094991906132a7565b60405180910390f35b34801561095e57600080fd5b50610967611c5b565b60405161097491906132a7565b60405180910390f35b34801561098957600080fd5b506109a4600480360381019061099f91906131f1565b611c61565b005b3480156109b257600080fd5b506109bb611df2565b6040516109c891906132a7565b60405180910390f35b6109d9611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f9061349b565b60405180910390fd5b6006811115610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390613507565b60405180910390fd5b80600d8190555050565b606060038054610ac590613556565b80601f0160208091040260200160405190810160405280929190818152602001828054610af190613556565b8015610b3e5780601f10610b1357610100808354040283529160200191610b3e565b820191906000526020600020905b815481529060010190602001808311610b2157829003601f168201915b5050505050905090565b600080610b53611df8565b9050610b60818585611e00565b600191505092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610bc1611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c479061349b565b60405180910390fd5b670de0b6b3a76400006103e86001610c66610baf565b610c7091906135b6565b610c7a919061363f565b610c84919061363f565b811015610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd906136e2565b60405180910390fd5b670de0b6b3a764000081610cda91906135b6565b60098190555050565b600080610cee611df8565b9050610cfb858285611fc9565b610d06858585612055565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d65600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ec6565b610d6d610baf565b610d779190613702565b905090565b600d5481565b60006012905090565b600080610d96611df8565b9050610db7818585610da88589611bd4565b610db29190613736565b611e00565b600191505092915050565b600c5481565b610dd0611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e569061349b565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601160009054906101000a900460ff1681565b601160029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f16611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c9061349b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611070611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f69061349b565b60405180910390fd5b6000601160006101000a81548160ff0219169083151502179055506001905090565b611129611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af9061349b565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611241611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c79061349b565b60405180910390fd5b478110611312576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611309906137fe565b60405180910390fd5b600061131c611396565b73ffffffffffffffffffffffffffffffffffffffff168260405161133f9061384f565b60006040518083038185875af1925050503d806000811461137c576040519150601f19603f3d011682016040523d82523d6000602084013e611381565b606091505b5050905080156113915750611393565b505b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113cf90613556565b80601f01602080910402602001604051908101604052809291908181526020018280546113fb90613556565b80156114485780601f1061141d57610100808354040283529160200191611448565b820191906000526020600020905b81548152906001019060200180831161142b57829003601f168201915b5050505050905090565b61145a611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e09061349b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e906138d6565b60405180910390fd5b61158182826129d6565b5050565b600080611590611df8565b9050600061159e8286611bd4565b9050838110156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613968565b60405180910390fd5b6115f08286868403611e00565b60019250505092915050565b600080611607611df8565b9050611614818585612055565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b611647611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd9061349b565b60405180910390fd5b6116e182600161170f565b6116ec336001611121565b6116f7838383611e00565b505050565b601160019054906101000a900460ff1681565b611717611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d9061349b565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161184391906131d6565b60405180910390a25050565b611857611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd9061349b565b60405180910390fd5b670de0b6b3a76400006103e860056118fc610baf565b61190691906135b6565b611910919061363f565b61191a919061363f565b81101561195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906139fa565b60405180910390fd5b670de0b6b3a76400008161197091906135b6565b600b8190555050565b60095481565b611987611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061349b565b60405180910390fd5b6001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff021916908315150217905550565b611a56611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc9061349b565b60405180910390fd5b80600a8190555050565b611af7611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d9061349b565b60405180910390fd5b6003811115611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613a66565b60405180910390fd5b80600c8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611cf35750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cdb611df8565b73ffffffffffffffffffffffffffffffffffffffff16145b611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613af8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6690613b8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613c1c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fbc91906132a7565b60405180910390a3505050565b6000611fd58484611bd4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461204f5781811015612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613c88565b60405180910390fd5b61204e8484848403611e00565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb90613d1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90613dac565b60405180910390fd5b6000810361214c5761214783836000612a77565b6129d1565b601160009054906101000a900460ff1615612647578273ffffffffffffffffffffffffffffffffffffffff16612180611396565b73ffffffffffffffffffffffffffffffffffffffff16141580156121d757508173ffffffffffffffffffffffffffffffffffffffff166121be611396565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156122105750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561224a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122635750600e60149054906101000a900460ff16155b1561235e57601160019054906101000a900460ff1661235d57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061231d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61235c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235390613e18565b60405180910390fd5b5b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124015750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124a85760095481111561244b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244290613eaa565b60405180910390fd5b600b5461245783610ec6565b826124629190613736565b11156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613f16565b60405180910390fd5b612646565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561254b5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561259a57600954811115612595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258c90613fa8565b60405180910390fd5b612645565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661264457600b546125f783610ec6565b826126029190613736565b1115612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a90613f16565b60405180910390fd5b5b5b5b5b600061265230610ec6565b90506000600a5482101590508080156126775750601160029054906101000a900460ff165b80156126905750600e60149054906101000a900460ff16155b80156126e65750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561273c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127925750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d6576001600e60146101000a81548160ff0219169083151502179055506127ba612cf6565b6000600e60146101000a81548160ff0219169083151502179055505b6000600e60149054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061288c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561289657600090505b600081156129c157600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128f957506000600d54115b1561291f576064600d548661290e91906135b6565b612918919061363f565b905061299d565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561297a57506000600c54115b1561299c576064600c548661298f91906135b6565b612999919061363f565b90505b5b60008111156129b2576129b1873083612a77565b5b80856129be9190613702565b94505b6129cc878787612a77565b505050505b505050565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612add90613d1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4c90613dac565b60405180910390fd5b612b60838383612d91565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdd9061403a565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c799190613736565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cdd91906132a7565b60405180910390a3612cf0848484612d96565b50505050565b6000612d0130610ec6565b905060008103612d115750612d8f565b6002600a54612d2091906135b6565b811115612d39576002600a54612d3691906135b6565b90505b670de0b6b3a7640000471115612d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7b906140cc565b60405180910390fd5b612d8d81612d9b565b505b565b505050565b505050565b6000600267ffffffffffffffff811115612db857612db76140ec565b5b604051908082528060200260200182016040528015612de65781602001602082028036833780820191505090505b5090503081600081518110612dfe57612dfd61411b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec7919061415f565b81600181518110612edb57612eda61411b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f40307f000000000000000000000000000000000000000000000000000000000000000084611e00565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612fc4959493929190614285565b600060405180830381600087803b158015612fde57600080fd5b505af1158015612ff2573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b61301281612fff565b811461301d57600080fd5b50565b60008135905061302f81613009565b92915050565b60006020828403121561304b5761304a612ffa565b5b600061305984828501613020565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561309c578082015181840152602081019050613081565b838111156130ab576000848401525b50505050565b6000601f19601f8301169050919050565b60006130cd82613062565b6130d7818561306d565b93506130e781856020860161307e565b6130f0816130b1565b840191505092915050565b6000602082019050818103600083015261311581846130c2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131488261311d565b9050919050565b6131588161313d565b811461316357600080fd5b50565b6000813590506131758161314f565b92915050565b6000806040838503121561319257613191612ffa565b5b60006131a085828601613166565b92505060206131b185828601613020565b9150509250929050565b60008115159050919050565b6131d0816131bb565b82525050565b60006020820190506131eb60008301846131c7565b92915050565b60006020828403121561320757613206612ffa565b5b600061321584828501613166565b91505092915050565b6000819050919050565b600061324361323e6132398461311d565b61321e565b61311d565b9050919050565b600061325582613228565b9050919050565b60006132678261324a565b9050919050565b6132778161325c565b82525050565b6000602082019050613292600083018461326e565b92915050565b6132a181612fff565b82525050565b60006020820190506132bc6000830184613298565b92915050565b6000806000606084860312156132db576132da612ffa565b5b60006132e986828701613166565b93505060206132fa86828701613166565b925050604061330b86828701613020565b9150509250925092565b61331e8161313d565b82525050565b60006020820190506133396000830184613315565b92915050565b600060ff82169050919050565b6133558161333f565b82525050565b6000602082019050613370600083018461334c565b92915050565b61337f816131bb565b811461338a57600080fd5b50565b60008135905061339c81613376565b92915050565b6000602082840312156133b8576133b7612ffa565b5b60006133c68482850161338d565b91505092915050565b600080604083850312156133e6576133e5612ffa565b5b60006133f485828601613166565b92505060206134058582860161338d565b9150509250929050565b6000806040838503121561342657613425612ffa565b5b600061343485828601613166565b925050602061344585828601613166565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061348560208361306d565b91506134908261344f565b602082019050919050565b600060208201905081810360008301526134b481613478565b9050919050565b7f6d61782073656c6c206665652034250000000000000000000000000000000000600082015250565b60006134f1600f8361306d565b91506134fc826134bb565b602082019050919050565b60006020820190508181036000830152613520816134e4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061356e57607f821691505b60208210810361358157613580613527565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135c182612fff565b91506135cc83612fff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561360557613604613587565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364a82612fff565b915061365583612fff565b92508261366557613664613610565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006136cc602f8361306d565b91506136d782613670565b604082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b600061370d82612fff565b915061371883612fff565b92508282101561372b5761372a613587565b5b828203905092915050565b600061374182612fff565b915061374c83612fff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561378157613780613587565b5b828201905092915050565b7f43616e6e6f742073656e64206d6f7265207468616e20636f6e7472616374206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006137e860268361306d565b91506137f38261378c565b604082019050919050565b60006020820190508181036000830152613817816137db565b9050919050565b600081905092915050565b50565b600061383960008361381e565b915061384482613829565b600082019050919050565b600061385a8261382c565b9150819050919050565b7f546865206c702063616e6e6f742062652072656d6f7665642066726f6d20617560008201527f746f6d61726b6574207061697200000000000000000000000000000000000000602082015250565b60006138c0602d8361306d565b91506138cb82613864565b604082019050919050565b600060208201905081810360008301526138ef816138b3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061395260258361306d565b915061395d826138f6565b604082019050919050565b6000602082019050818103600083015261398181613945565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006139e460248361306d565b91506139ef82613988565b604082019050919050565b60006020820190508181036000830152613a13816139d7565b9050919050565b7f6d61782062757920666565203325000000000000000000000000000000000000600082015250565b6000613a50600e8361306d565b9150613a5b82613a1a565b602082019050919050565b60006020820190508181036000830152613a7f81613a43565b9050919050565b7f4f776e61626c653a206e6577206f776e6572206973207468652064656164206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ae260268361306d565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b7460248361306d565b9150613b7f82613b18565b604082019050919050565b60006020820190508181036000830152613ba381613b67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c0660228361306d565b9150613c1182613baa565b604082019050919050565b60006020820190508181036000830152613c3581613bf9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613c72601d8361306d565b9150613c7d82613c3c565b602082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d0460258361306d565b9150613d0f82613ca8565b604082019050919050565b60006020820190508181036000830152613d3381613cf7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9660238361306d565b9150613da182613d3a565b604082019050919050565b60006020820190508181036000830152613dc581613d89565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613e0260168361306d565b9150613e0d82613dcc565b602082019050919050565b60006020820190508181036000830152613e3181613df5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613e9460358361306d565b9150613e9f82613e38565b604082019050919050565b60006020820190508181036000830152613ec381613e87565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613f0060138361306d565b9150613f0b82613eca565b602082019050919050565b60006020820190508181036000830152613f2f81613ef3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613f9260368361306d565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061402460268361306d565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b9050919050565b7f62616c616e63652073686f756c642062652067726561746572207468616e207460008201527f68726573686f6c64000000000000000000000000000000000000000000000000602082015250565b60006140b660288361306d565b91506140c18261405a565b604082019050919050565b600060208201905081810360008301526140e5816140a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506141598161314f565b92915050565b60006020828403121561417557614174612ffa565b5b60006141838482850161414a565b91505092915050565b6000819050919050565b60006141b16141ac6141a78461418c565b61321e565b612fff565b9050919050565b6141c181614196565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141fc8161313d565b82525050565b600061420e83836141f3565b60208301905092915050565b6000602082019050919050565b6000614232826141c7565b61423c81856141d2565b9350614247836141e3565b8060005b8381101561427857815161425f8882614202565b975061426a8361421a565b92505060018101905061424b565b5085935050505092915050565b600060a08201905061429a6000830188613298565b6142a760208301876141b8565b81810360408301526142b98186614227565b90506142c86060830185613315565b6142d56080830184613298565b969550505050505056fea2646970667358221220dcf48070f50678f797a469b8aa5f64ee0d76b2869ed9cf5564a917dbd297a29a64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80637571336a11610139578063bbc0c742116100b6578063d257b34f1161007a578063d257b34f146108c3578063d9bee355146108ec578063dd62ed3e14610915578063e2f4560514610952578063f2fde38b1461097d578063f8b45b05146109a65761025c565b8063bbc0c74214610804578063c02466681461082f578063c18bc19514610858578063c8c8ebe414610881578063c9567bf9146108ac5761025c565b80639a7a23d6116100fd5780639a7a23d6146106fb578063a457c2d714610724578063a9059cbb14610761578063b62496f51461079e578063b7b66870146107db5761025c565b80637571336a1461062857806375f0a8741461065157806384276d811461067c5780638da5cb5b146106a557806395d89b41146106d05761025c565b80632b14ca56116101d257806349bd5a5e1161019657806349bd5a5e146105285780634a62bb65146105535780636ddd17131461057e57806370a08231146105a9578063715018a6146105e6578063751039fc146105fd5761025c565b80632b14ca5614610441578063313ce5671461046c578063395093511461049757806347062402146104d4578063491e8742146104ff5761025c565b806318160ddd1161021957806318160ddd1461035a578063203e727e1461038557806323b872dd146103ae57806327c8f835146103eb5780632b112e49146104165761025c565b8063024f53811461026157806306fdde031461028a578063095ea7b3146102b557806310d5de53146102f25780631694505e1461032f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190613035565b6109d1565b005b34801561029657600080fd5b5061029f610ab6565b6040516102ac91906130fb565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d7919061317b565b610b48565b6040516102e991906131d6565b60405180910390f35b3480156102fe57600080fd5b50610319600480360381019061031491906131f1565b610b6b565b60405161032691906131d6565b60405180910390f35b34801561033b57600080fd5b50610344610b8b565b604051610351919061327d565b60405180910390f35b34801561036657600080fd5b5061036f610baf565b60405161037c91906132a7565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190613035565b610bb9565b005b3480156103ba57600080fd5b506103d560048036038101906103d091906132c2565b610ce3565b6040516103e291906131d6565b60405180910390f35b3480156103f757600080fd5b50610400610d12565b60405161040d9190613324565b60405180910390f35b34801561042257600080fd5b5061042b610d38565b60405161043891906132a7565b60405180910390f35b34801561044d57600080fd5b50610456610d7c565b60405161046391906132a7565b60405180910390f35b34801561047857600080fd5b50610481610d82565b60405161048e919061335b565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b9919061317b565b610d8b565b6040516104cb91906131d6565b60405180910390f35b3480156104e057600080fd5b506104e9610dc2565b6040516104f691906132a7565b60405180910390f35b34801561050b57600080fd5b50610526600480360381019061052191906133a2565b610dc8565b005b34801561053457600080fd5b5061053d610e7c565b60405161054a9190613324565b60405180910390f35b34801561055f57600080fd5b50610568610ea0565b60405161057591906131d6565b60405180910390f35b34801561058a57600080fd5b50610593610eb3565b6040516105a091906131d6565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb91906131f1565b610ec6565b6040516105dd91906132a7565b60405180910390f35b3480156105f257600080fd5b506105fb610f0e565b005b34801561060957600080fd5b50610612611066565b60405161061f91906131d6565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a91906133cf565b611121565b005b34801561065d57600080fd5b50610666611213565b6040516106739190613324565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190613035565b611239565b005b3480156106b157600080fd5b506106ba611396565b6040516106c79190613324565b60405180910390f35b3480156106dc57600080fd5b506106e56113c0565b6040516106f291906130fb565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d91906133cf565b611452565b005b34801561073057600080fd5b5061074b6004803603810190610746919061317b565b611585565b60405161075891906131d6565b60405180910390f35b34801561076d57600080fd5b506107886004803603810190610783919061317b565b6115fc565b60405161079591906131d6565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c091906131f1565b61161f565b6040516107d291906131d6565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd91906132c2565b61163f565b005b34801561081057600080fd5b506108196116fc565b60405161082691906131d6565b60405180910390f35b34801561083b57600080fd5b50610856600480360381019061085191906133cf565b61170f565b005b34801561086457600080fd5b5061087f600480360381019061087a9190613035565b61184f565b005b34801561088d57600080fd5b50610896611979565b6040516108a391906132a7565b60405180910390f35b3480156108b857600080fd5b506108c161197f565b005b3480156108cf57600080fd5b506108ea60048036038101906108e59190613035565b611a4e565b005b3480156108f857600080fd5b50610913600480360381019061090e9190613035565b611aef565b005b34801561092157600080fd5b5061093c6004803603810190610937919061340f565b611bd4565b60405161094991906132a7565b60405180910390f35b34801561095e57600080fd5b50610967611c5b565b60405161097491906132a7565b60405180910390f35b34801561098957600080fd5b506109a4600480360381019061099f91906131f1565b611c61565b005b3480156109b257600080fd5b506109bb611df2565b6040516109c891906132a7565b60405180910390f35b6109d9611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f9061349b565b60405180910390fd5b6006811115610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390613507565b60405180910390fd5b80600d8190555050565b606060038054610ac590613556565b80601f0160208091040260200160405190810160405280929190818152602001828054610af190613556565b8015610b3e5780601f10610b1357610100808354040283529160200191610b3e565b820191906000526020600020905b815481529060010190602001808311610b2157829003601f168201915b5050505050905090565b600080610b53611df8565b9050610b60818585611e00565b600191505092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610bc1611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c479061349b565b60405180910390fd5b670de0b6b3a76400006103e86001610c66610baf565b610c7091906135b6565b610c7a919061363f565b610c84919061363f565b811015610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd906136e2565b60405180910390fd5b670de0b6b3a764000081610cda91906135b6565b60098190555050565b600080610cee611df8565b9050610cfb858285611fc9565b610d06858585612055565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d65600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ec6565b610d6d610baf565b610d779190613702565b905090565b600d5481565b60006012905090565b600080610d96611df8565b9050610db7818585610da88589611bd4565b610db29190613736565b611e00565b600191505092915050565b600c5481565b610dd0611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e569061349b565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b7f000000000000000000000000e572190501f499e013ae923bf7ef871d1e836c2d81565b601160009054906101000a900460ff1681565b601160029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f16611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c9061349b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611070611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f69061349b565b60405180910390fd5b6000601160006101000a81548160ff0219169083151502179055506001905090565b611129611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af9061349b565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611241611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c79061349b565b60405180910390fd5b478110611312576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611309906137fe565b60405180910390fd5b600061131c611396565b73ffffffffffffffffffffffffffffffffffffffff168260405161133f9061384f565b60006040518083038185875af1925050503d806000811461137c576040519150601f19603f3d011682016040523d82523d6000602084013e611381565b606091505b5050905080156113915750611393565b505b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113cf90613556565b80601f01602080910402602001604051908101604052809291908181526020018280546113fb90613556565b80156114485780601f1061141d57610100808354040283529160200191611448565b820191906000526020600020905b81548152906001019060200180831161142b57829003601f168201915b5050505050905090565b61145a611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e09061349b565b60405180910390fd5b7f000000000000000000000000e572190501f499e013ae923bf7ef871d1e836c2d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e906138d6565b60405180910390fd5b61158182826129d6565b5050565b600080611590611df8565b9050600061159e8286611bd4565b9050838110156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613968565b60405180910390fd5b6115f08286868403611e00565b60019250505092915050565b600080611607611df8565b9050611614818585612055565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b611647611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd9061349b565b60405180910390fd5b6116e182600161170f565b6116ec336001611121565b6116f7838383611e00565b505050565b601160019054906101000a900460ff1681565b611717611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d9061349b565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161184391906131d6565b60405180910390a25050565b611857611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd9061349b565b60405180910390fd5b670de0b6b3a76400006103e860056118fc610baf565b61190691906135b6565b611910919061363f565b61191a919061363f565b81101561195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906139fa565b60405180910390fd5b670de0b6b3a76400008161197091906135b6565b600b8190555050565b60095481565b611987611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061349b565b60405180910390fd5b6001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff021916908315150217905550565b611a56611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc9061349b565b60405180910390fd5b80600a8190555050565b611af7611df8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d9061349b565b60405180910390fd5b6003811115611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613a66565b60405180910390fd5b80600c8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611cf35750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cdb611df8565b73ffffffffffffffffffffffffffffffffffffffff16145b611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613af8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6690613b8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613c1c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fbc91906132a7565b60405180910390a3505050565b6000611fd58484611bd4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461204f5781811015612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613c88565b60405180910390fd5b61204e8484848403611e00565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb90613d1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90613dac565b60405180910390fd5b6000810361214c5761214783836000612a77565b6129d1565b601160009054906101000a900460ff1615612647578273ffffffffffffffffffffffffffffffffffffffff16612180611396565b73ffffffffffffffffffffffffffffffffffffffff16141580156121d757508173ffffffffffffffffffffffffffffffffffffffff166121be611396565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156122105750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561224a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122635750600e60149054906101000a900460ff16155b1561235e57601160019054906101000a900460ff1661235d57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061231d5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61235c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235390613e18565b60405180910390fd5b5b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124015750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124a85760095481111561244b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244290613eaa565b60405180910390fd5b600b5461245783610ec6565b826124629190613736565b11156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613f16565b60405180910390fd5b612646565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561254b5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561259a57600954811115612595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258c90613fa8565b60405180910390fd5b612645565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661264457600b546125f783610ec6565b826126029190613736565b1115612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a90613f16565b60405180910390fd5b5b5b5b5b600061265230610ec6565b90506000600a5482101590508080156126775750601160029054906101000a900460ff165b80156126905750600e60149054906101000a900460ff16155b80156126e65750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561273c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127925750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d6576001600e60146101000a81548160ff0219169083151502179055506127ba612cf6565b6000600e60146101000a81548160ff0219169083151502179055505b6000600e60149054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061288c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561289657600090505b600081156129c157600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128f957506000600d54115b1561291f576064600d548661290e91906135b6565b612918919061363f565b905061299d565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561297a57506000600c54115b1561299c576064600c548661298f91906135b6565b612999919061363f565b90505b5b60008111156129b2576129b1873083612a77565b5b80856129be9190613702565b94505b6129cc878787612a77565b505050505b505050565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612add90613d1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4c90613dac565b60405180910390fd5b612b60838383612d91565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdd9061403a565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c799190613736565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cdd91906132a7565b60405180910390a3612cf0848484612d96565b50505050565b6000612d0130610ec6565b905060008103612d115750612d8f565b6002600a54612d2091906135b6565b811115612d39576002600a54612d3691906135b6565b90505b670de0b6b3a7640000471115612d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7b906140cc565b60405180910390fd5b612d8d81612d9b565b505b565b505050565b505050565b6000600267ffffffffffffffff811115612db857612db76140ec565b5b604051908082528060200260200182016040528015612de65781602001602082028036833780820191505090505b5090503081600081518110612dfe57612dfd61411b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec7919061415f565b81600181518110612edb57612eda61411b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f40307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611e00565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612fc4959493929190614285565b600060405180830381600087803b158015612fde57600080fd5b505af1158015612ff2573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b61301281612fff565b811461301d57600080fd5b50565b60008135905061302f81613009565b92915050565b60006020828403121561304b5761304a612ffa565b5b600061305984828501613020565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561309c578082015181840152602081019050613081565b838111156130ab576000848401525b50505050565b6000601f19601f8301169050919050565b60006130cd82613062565b6130d7818561306d565b93506130e781856020860161307e565b6130f0816130b1565b840191505092915050565b6000602082019050818103600083015261311581846130c2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131488261311d565b9050919050565b6131588161313d565b811461316357600080fd5b50565b6000813590506131758161314f565b92915050565b6000806040838503121561319257613191612ffa565b5b60006131a085828601613166565b92505060206131b185828601613020565b9150509250929050565b60008115159050919050565b6131d0816131bb565b82525050565b60006020820190506131eb60008301846131c7565b92915050565b60006020828403121561320757613206612ffa565b5b600061321584828501613166565b91505092915050565b6000819050919050565b600061324361323e6132398461311d565b61321e565b61311d565b9050919050565b600061325582613228565b9050919050565b60006132678261324a565b9050919050565b6132778161325c565b82525050565b6000602082019050613292600083018461326e565b92915050565b6132a181612fff565b82525050565b60006020820190506132bc6000830184613298565b92915050565b6000806000606084860312156132db576132da612ffa565b5b60006132e986828701613166565b93505060206132fa86828701613166565b925050604061330b86828701613020565b9150509250925092565b61331e8161313d565b82525050565b60006020820190506133396000830184613315565b92915050565b600060ff82169050919050565b6133558161333f565b82525050565b6000602082019050613370600083018461334c565b92915050565b61337f816131bb565b811461338a57600080fd5b50565b60008135905061339c81613376565b92915050565b6000602082840312156133b8576133b7612ffa565b5b60006133c68482850161338d565b91505092915050565b600080604083850312156133e6576133e5612ffa565b5b60006133f485828601613166565b92505060206134058582860161338d565b9150509250929050565b6000806040838503121561342657613425612ffa565b5b600061343485828601613166565b925050602061344585828601613166565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061348560208361306d565b91506134908261344f565b602082019050919050565b600060208201905081810360008301526134b481613478565b9050919050565b7f6d61782073656c6c206665652034250000000000000000000000000000000000600082015250565b60006134f1600f8361306d565b91506134fc826134bb565b602082019050919050565b60006020820190508181036000830152613520816134e4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061356e57607f821691505b60208210810361358157613580613527565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135c182612fff565b91506135cc83612fff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561360557613604613587565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364a82612fff565b915061365583612fff565b92508261366557613664613610565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006136cc602f8361306d565b91506136d782613670565b604082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b600061370d82612fff565b915061371883612fff565b92508282101561372b5761372a613587565b5b828203905092915050565b600061374182612fff565b915061374c83612fff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561378157613780613587565b5b828201905092915050565b7f43616e6e6f742073656e64206d6f7265207468616e20636f6e7472616374206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006137e860268361306d565b91506137f38261378c565b604082019050919050565b60006020820190508181036000830152613817816137db565b9050919050565b600081905092915050565b50565b600061383960008361381e565b915061384482613829565b600082019050919050565b600061385a8261382c565b9150819050919050565b7f546865206c702063616e6e6f742062652072656d6f7665642066726f6d20617560008201527f746f6d61726b6574207061697200000000000000000000000000000000000000602082015250565b60006138c0602d8361306d565b91506138cb82613864565b604082019050919050565b600060208201905081810360008301526138ef816138b3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061395260258361306d565b915061395d826138f6565b604082019050919050565b6000602082019050818103600083015261398181613945565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006139e460248361306d565b91506139ef82613988565b604082019050919050565b60006020820190508181036000830152613a13816139d7565b9050919050565b7f6d61782062757920666565203325000000000000000000000000000000000000600082015250565b6000613a50600e8361306d565b9150613a5b82613a1a565b602082019050919050565b60006020820190508181036000830152613a7f81613a43565b9050919050565b7f4f776e61626c653a206e6577206f776e6572206973207468652064656164206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ae260268361306d565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b7460248361306d565b9150613b7f82613b18565b604082019050919050565b60006020820190508181036000830152613ba381613b67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c0660228361306d565b9150613c1182613baa565b604082019050919050565b60006020820190508181036000830152613c3581613bf9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613c72601d8361306d565b9150613c7d82613c3c565b602082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d0460258361306d565b9150613d0f82613ca8565b604082019050919050565b60006020820190508181036000830152613d3381613cf7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9660238361306d565b9150613da182613d3a565b604082019050919050565b60006020820190508181036000830152613dc581613d89565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613e0260168361306d565b9150613e0d82613dcc565b602082019050919050565b60006020820190508181036000830152613e3181613df5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613e9460358361306d565b9150613e9f82613e38565b604082019050919050565b60006020820190508181036000830152613ec381613e87565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613f0060138361306d565b9150613f0b82613eca565b602082019050919050565b60006020820190508181036000830152613f2f81613ef3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613f9260368361306d565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061402460268361306d565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b9050919050565b7f62616c616e63652073686f756c642062652067726561746572207468616e207460008201527f68726573686f6c64000000000000000000000000000000000000000000000000602082015250565b60006140b660288361306d565b91506140c18261405a565b604082019050919050565b600060208201905081810360008301526140e5816140a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506141598161314f565b92915050565b60006020828403121561417557614174612ffa565b5b60006141838482850161414a565b91505092915050565b6000819050919050565b60006141b16141ac6141a78461418c565b61321e565b612fff565b9050919050565b6141c181614196565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141fc8161313d565b82525050565b600061420e83836141f3565b60208301905092915050565b6000602082019050919050565b6000614232826141c7565b61423c81856141d2565b9350614247836141e3565b8060005b8381101561427857815161425f8882614202565b975061426a8361421a565b92505060018101905061424b565b5085935050505092915050565b600060a08201905061429a6000830188613298565b6142a760208301876141b8565b81810360408301526142b98186614227565b90506142c86060830185613315565b6142d56080830184613298565b969550505050505056fea2646970667358221220dcf48070f50678f797a469b8aa5f64ee0d76b2869ed9cf5564a917dbd297a29a64736f6c634300080f0033

Deployed Bytecode Sourcemap

11771:9325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15472:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1740:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2813:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12278:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11862:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2061:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15038:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3063:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11811:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14193:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12177:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1960:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3366:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12144:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16223:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11920:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12409:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12489:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2177:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7624:148;;;;;;;;;;;;;:::i;:::-;;14909:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14327:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12211:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15893:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7410:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1848:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16743:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3644:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2362:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11965:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16468:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12449:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14696:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15629:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12031:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14075:110;;;;;;;;;;;;;:::i;:::-;;16337:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15321:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2604:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12073:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7780:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12113:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15472:149;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15563:1:::1;15551:8;:13;;15543:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;15605:8;15595:7;:18;;;;15472:149:::0;:::o;1740:100::-;1794:13;1827:5;1820:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:100;:::o;2813:242::-;2932:4;2954:13;2970:12;:10;:12::i;:::-;2954:28;;2993:32;3002:5;3009:7;3018:6;2993:8;:32::i;:::-;3043:4;3036:11;;;2813:242;;;;:::o;12278:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;11862:51::-;;;:::o;2061:108::-;2122:7;2149:12;;2142:19;;2061:108;:::o;15038:275::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15175:4:::1;15167;15162:1;15146:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15145:26;;;;:::i;:::-;15144:35;;;;:::i;:::-;15134:6;:45;;15112:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;15298:6;15288;:17;;;;:::i;:::-;15265:20;:40;;;;15038:275:::0;:::o;3063:295::-;3194:4;3211:15;3229:12;:10;:12::i;:::-;3211:30;;3252:38;3268:4;3274:7;3283:6;3252:15;:38::i;:::-;3301:27;3311:4;3317:2;3321:6;3301:9;:27::i;:::-;3346:4;3339:11;;;3063:295;;;;;:::o;11811:44::-;;;;;;;;;;;;;:::o;14193:126::-;14246:7;14289:22;14299:11;;;;;;;;;;;14289:9;:22::i;:::-;14273:13;:11;:13::i;:::-;:38;;;;:::i;:::-;14266:45;;14193:126;:::o;12177:27::-;;;;:::o;1960:93::-;2018:5;2043:2;2036:9;;1960:93;:::o;3366:270::-;3481:4;3503:13;3519:12;:10;:12::i;:::-;3503:28;;3542:64;3551:5;3558:7;3595:10;3567:25;3577:5;3584:7;3567:9;:25::i;:::-;:38;;;;:::i;:::-;3542:8;:64::i;:::-;3624:4;3617:11;;;3366:270;;;;:::o;12144:26::-;;;;:::o;16223:106::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16314:7:::1;16300:11;;:21;;;;;;;;;;;;;;;;;;16223:106:::0;:::o;11920:38::-;;;:::o;12409:33::-;;;;;;;;;;;;;:::o;12489:31::-;;;;;;;;;;;;;:::o;2177:177::-;2296:7;2328:9;:18;2338:7;2328:18;;;;;;;;;;;;;;;;2321:25;;2177:177;;;:::o;7624:148::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7731:1:::1;7694:40;;7715:6;;;;;;;;;;;7694:40;;;;;;;;;;;;7762:1;7745:6;;:19;;;;;;;;;;;;;;;;;;7624:148::o:0;14909:121::-;14961:4;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14995:5:::1;14978:14;;:22;;;;;;;;;;;;;;;;;;15018:4;15011:11;;14909:121:::0;:::o;14327:165::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14480:4:::1;14439:31;:38;14471:5;14439:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;14327:165:::0;;:::o;12211:30::-;;;;;;;;;;;;;:::o;15893:322::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15995:21:::1;15986:6;:30;15964:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;16094:12;16120:7;:5;:7::i;:::-;16112:21;;16141:6;16112:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16093:59;;;16167:7;16163:45;;;16190:7;;;16163:45;15953:262;7607:1;15893:322:::0;:::o;7410:79::-;7448:7;7475:6;;;;;;;;;;;7468:13;;7410:79;:::o;1848:104::-;1904:13;1937:7;1930:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1848:104;:::o;16743:292::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16887:13:::1;16879:21;;:4;:21;;::::0;16857:116:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16986:41;17015:4;17021:5;16986:28;:41::i;:::-;16743:292:::0;;:::o;3644:505::-;3764:4;3786:13;3802:12;:10;:12::i;:::-;3786:28;;3825:24;3852:25;3862:5;3869:7;3852:9;:25::i;:::-;3825:52;;3930:15;3910:16;:35;;3888:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;4046:60;4055:5;4062:7;4090:15;4071:16;:34;4046:8;:60::i;:::-;4137:4;4130:11;;;;3644:505;;;;:::o;2362:234::-;2477:4;2499:13;2515:12;:10;:12::i;:::-;2499:28;;2538;2548:5;2555:2;2559:6;2538:9;:28::i;:::-;2584:4;2577:11;;;2362:234;;;;:::o;11965:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16468:267::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16588:33:::1;16604:10;16616:4;16588:15;:33::i;:::-;16632:43;16658:10;16670:4;16632:25;:43::i;:::-;16686:41;16695:10;16707;16719:7;16686:8;:41::i;:::-;16468:267:::0;;;:::o;12449:33::-;;;;;;;;;;;;;:::o;14696:205::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14835:8:::1;14804:19;:28;14824:7;14804:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14875:7;14859:34;;;14884:8;14859:34;;;;;;:::i;:::-;;;;;;;;14696:205:::0;;:::o;15629:256::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15769:4:::1;15761;15756:1;15740:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15739:26;;;;:::i;:::-;15738:35;;;;:::i;:::-;15728:6;:45;;15706:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;15870:6;15860;:17;;;;:::i;:::-;15848:9;:29;;;;15629:256:::0;:::o;12031:35::-;;;;:::o;14075:110::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14144:4:::1;14128:13;;:20;;;;;;;;;;;;;;;;;;14173:4;14159:11;;:18;;;;;;;;;;;;;;;;;;14075:110::o:0;16337:117::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16439:7:::1;16418:18;:28;;;;16337:117:::0;:::o;15321:143::-;7547:12;:10;:12::i;:::-;7537:22;;:6;;;;;;;;;;;:22;;;7529:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15409:1:::1;15398:7;:12;;15390:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;15449:7;15440:6;:16;;;;15321:143:::0;:::o;2604:201::-;2738:7;2770:11;:18;2782:5;2770:18;;;;;;;;;;;;;;;:27;2789:7;2770:27;;;;;;;;;;;;;;;;2763:34;;2604:201;;;;:::o;12073:33::-;;;;:::o;7780:305::-;7893:6;7873:27;;:8;:27;;;;:56;;;;;7920:9;;;;;;;;;;;7904:25;;:12;:10;:12::i;:::-;:25;;;7873:56;7851:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8040:8;8011:38;;8032:6;;;;;;;;;;;8011:38;;;;;;;;;;;;8069:8;8060:6;;:17;;;;;;;;;;;;;;;;;;7780:305;:::o;12113:24::-;;;;:::o;1124:98::-;1177:7;1204:10;1197:17;;1124:98;:::o;5879:380::-;6032:1;6015:19;;:5;:19;;;6007:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6113:1;6094:21;;:7;:21;;;6086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6197:6;6167:11;:18;6179:5;6167:18;;;;;;;;;;;;;;;:27;6186:7;6167:27;;;;;;;;;;;;;;;:36;;;;6235:7;6219:32;;6228:5;6219:32;;;6244:6;6219:32;;;;;;:::i;:::-;;;;;;;;5879:380;;;:::o;6267:502::-;6402:24;6429:25;6439:5;6446:7;6429:9;:25::i;:::-;6402:52;;6489:17;6469:16;:37;6465:297;;6569:6;6549:16;:26;;6523:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;6684:51;6693:5;6700:7;6728:6;6709:16;:25;6684:8;:51::i;:::-;6465:297;6391:378;6267:502;;;:::o;17043:3057::-;17191:1;17175:18;;:4;:18;;;17167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17268:1;17254:16;;:2;:16;;;17246:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17337:1;17327:6;:11;17323:93;;17355:28;17371:4;17377:2;17381:1;17355:15;:28::i;:::-;17398:7;;17323:93;17432:14;;;;;;;;;;;17428:1536;;;17498:4;17487:15;;:7;:5;:7::i;:::-;:15;;;17485:18;:55;;;;;17537:2;17526:13;;:7;:5;:7::i;:::-;:13;;;17524:16;17485:55;:92;;;;;17575:1;17561:16;;:2;:16;;;;17485:92;:134;;;;;17612:6;17598:21;;:2;:21;;;;17485:134;:164;;;;;17641:8;;;;;;;;;;;17640:9;17485:164;17463:459;;;17689:13;;;;;;;;;;;17684:223;;17761:19;:25;17781:4;17761:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;17790:19;:23;17810:2;17790:23;;;;;;;;;;;;;;;;;;;;;;;;;17761:52;17727:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;17684:223;17463:459;17959:25;:31;17985:4;17959:31;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;18012:31;:35;18044:2;18012:35;;;;;;;;;;;;;;;;;;;;;;;;;18011:36;17959:88;17937:1016;;;18122:20;;18112:6;:30;;18082:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;18314:9;;18297:13;18307:2;18297:9;:13::i;:::-;18288:6;:22;;;;:::i;:::-;:35;;18258:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;17937:1016;;;18445:25;:29;18471:2;18445:29;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;18496:31;:37;18528:4;18496:37;;;;;;;;;;;;;;;;;;;;;;;;;18495:38;18445:88;18423:530;;;18608:20;;18598:6;:30;;18568:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;18423:530;;;18753:31;:35;18785:2;18753:35;;;;;;;;;;;;;;;;;;;;;;;;;18748:205;;18865:9;;18848:13;18858:2;18848:9;:13::i;:::-;18839:6;:22;;;;:::i;:::-;:35;;18809:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;18748:205;18423:530;17937:1016;17428:1536;18976:28;19007:24;19025:4;19007:9;:24::i;:::-;18976:55;;19044:12;19083:18;;19059:20;:42;;19044:57;;19132:7;:35;;;;;19156:11;;;;;;;;;;;19132:35;:61;;;;;19185:8;;;;;;;;;;;19184:9;19132:61;:110;;;;;19211:25;:31;19237:4;19211:31;;;;;;;;;;;;;;;;;;;;;;;;;19210:32;19132:110;:153;;;;;19260:19;:25;19280:4;19260:25;;;;;;;;;;;;;;;;;;;;;;;;;19259:26;19132:153;:194;;;;;19303:19;:23;19323:2;19303:23;;;;;;;;;;;;;;;;;;;;;;;;;19302:24;19132:194;19114:330;;;19364:4;19353:8;;:15;;;;;;;;;;;;;;;;;;19383:18;:16;:18::i;:::-;19427:5;19416:8;;:16;;;;;;;;;;;;;;;;;;19114:330;19456:12;19472:8;;;;;;;;;;;19471:9;19456:24;;19497:19;:25;19517:4;19497:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19526:19;:23;19546:2;19526:23;;;;;;;;;;;;;;;;;;;;;;;;;19497:52;19493:100;;;19576:5;19566:15;;19493:100;19605:12;19638:7;19634:415;;;19666:25;:29;19692:2;19666:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;19709:1;19699:7;;:11;19666:44;19662:238;;;19759:3;19748:7;;19739:6;:16;;;;:::i;:::-;19738:24;;;;:::i;:::-;19731:31;;19662:238;;;19788:25;:31;19814:4;19788:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;19832:1;19823:6;;:10;19788:45;19784:116;;;19881:3;19871:6;;19862;:15;;;;:::i;:::-;19861:23;;;;:::i;:::-;19854:30;;19784:116;19662:238;19927:1;19920:4;:8;19916:91;;;19949:42;19965:4;19979;19986;19949:15;:42::i;:::-;19916:91;20033:4;20023:14;;;;;:::i;:::-;;;19634:415;20059:33;20075:4;20081:2;20085:6;20059:15;:33::i;:::-;17156:2944;;;;17043:3057;;;;:::o;14500:188::-;14617:5;14583:25;:31;14609:4;14583:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14674:5;14640:40;;14668:4;14640:40;;;;;;;;;;;;14500:188;;:::o;4157:708::-;4304:1;4288:18;;:4;:18;;;4280:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4381:1;4367:16;;:2;:16;;;4359:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4436:38;4457:4;4463:2;4467:6;4436:20;:38::i;:::-;4487:19;4509:9;:15;4519:4;4509:15;;;;;;;;;;;;;;;;4487:37;;4572:6;4557:11;:21;;4535:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;4712:6;4698:11;:20;4680:9;:15;4690:4;4680:15;;;;;;;;;;;;;;;:38;;;;4757:6;4740:9;:13;4750:2;4740:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;4796:2;4781:26;;4790:4;4781:26;;;4800:6;4781:26;;;;;;:::i;:::-;;;;;;;;4820:37;4840:4;4846:2;4850:6;4820:19;:37::i;:::-;4269:596;4157:708;;;:::o;20108:504::-;20155:23;20181:24;20199:4;20181:9;:24::i;:::-;20155:50;;20239:1;20220:15;:20;20216:59;;20257:7;;;20216:59;20330:1;20309:18;;:22;;;;:::i;:::-;20291:15;:40;20287:113;;;20387:1;20366:18;;:22;;;;:::i;:::-;20348:40;;20287:113;20440:10;20416:21;:34;20412:183;;;20467:50;;;;;;;;;;:::i;:::-;;;;;;;;20412:183;20550:33;20567:15;20550:16;:33::i;:::-;20144:468;20108:504;:::o;6777:125::-;;;;:::o;6910:124::-;;;;:::o;20620:473::-;20686:21;20724:1;20710:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20686:40;;20755:4;20737;20742:1;20737:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20781:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20771:4;20776:1;20771:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;20814:62;20831:4;20846:15;20864:11;20814:8;:62::i;:::-;20887:15;:66;;;20968:11;20994:1;21010:4;21029:15;;;;;;;;;;;21059;20887:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20675:418;20620:473;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:307::-;1373:1;1383:113;1397:6;1394:1;1391:13;1383:113;;;1482:1;1477:3;1473:11;1467:18;1463:1;1458:3;1454:11;1447:39;1419:2;1416:1;1412:10;1407:15;;1383:113;;;1514:6;1511:1;1508:13;1505:101;;;1594:1;1585:6;1580:3;1576:16;1569:27;1505:101;1354:258;1305:307;;;:::o;1618:102::-;1659:6;1710:2;1706:7;1701:2;1694:5;1690:14;1686:28;1676:38;;1618:102;;;:::o;1726:364::-;1814:3;1842:39;1875:5;1842:39;:::i;:::-;1897:71;1961:6;1956:3;1897:71;:::i;:::-;1890:78;;1977:52;2022:6;2017:3;2010:4;2003:5;1999:16;1977:52;:::i;:::-;2054:29;2076:6;2054:29;:::i;:::-;2049:3;2045:39;2038:46;;1818:272;1726:364;;;;:::o;2096:313::-;2209:4;2247:2;2236:9;2232:18;2224:26;;2296:9;2290:4;2286:20;2282:1;2271:9;2267:17;2260:47;2324:78;2397:4;2388:6;2324:78;:::i;:::-;2316:86;;2096:313;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:329::-;3888:6;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;3829:329;;;;:::o;4164:60::-;4192:3;4213:5;4206:12;;4164:60;;;:::o;4230:142::-;4280:9;4313:53;4331:34;4340:24;4358:5;4340:24;:::i;:::-;4331:34;:::i;:::-;4313:53;:::i;:::-;4300:66;;4230:142;;;:::o;4378:126::-;4428:9;4461:37;4492:5;4461:37;:::i;:::-;4448:50;;4378:126;;;:::o;4510:153::-;4587:9;4620:37;4651:5;4620:37;:::i;:::-;4607:50;;4510:153;;;:::o;4669:185::-;4783:64;4841:5;4783:64;:::i;:::-;4778:3;4771:77;4669:185;;:::o;4860:276::-;4980:4;5018:2;5007:9;5003:18;4995:26;;5031:98;5126:1;5115:9;5111:17;5102:6;5031:98;:::i;:::-;4860:276;;;;:::o;5142:118::-;5229:24;5247:5;5229:24;:::i;:::-;5224:3;5217:37;5142:118;;:::o;5266:222::-;5359:4;5397:2;5386:9;5382:18;5374:26;;5410:71;5478:1;5467:9;5463:17;5454:6;5410:71;:::i;:::-;5266:222;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:118::-;6206:24;6224:5;6206:24;:::i;:::-;6201:3;6194:37;6119:118;;:::o;6243:222::-;6336:4;6374:2;6363:9;6359:18;6351:26;;6387:71;6455:1;6444:9;6440:17;6431:6;6387:71;:::i;:::-;6243:222;;;;:::o;6471:86::-;6506:7;6546:4;6539:5;6535:16;6524:27;;6471:86;;;:::o;6563:112::-;6646:22;6662:5;6646:22;:::i;:::-;6641:3;6634:35;6563:112;;:::o;6681:214::-;6770:4;6808:2;6797:9;6793:18;6785:26;;6821:67;6885:1;6874:9;6870:17;6861:6;6821:67;:::i;:::-;6681:214;;;;:::o;6901:116::-;6971:21;6986:5;6971:21;:::i;:::-;6964:5;6961:32;6951:60;;7007:1;7004;6997:12;6951:60;6901:116;:::o;7023:133::-;7066:5;7104:6;7091:20;7082:29;;7120:30;7144:5;7120:30;:::i;:::-;7023:133;;;;:::o;7162:323::-;7218:6;7267:2;7255:9;7246:7;7242:23;7238:32;7235:119;;;7273:79;;:::i;:::-;7235:119;7393:1;7418:50;7460:7;7451:6;7440:9;7436:22;7418:50;:::i;:::-;7408:60;;7364:114;7162:323;;;;:::o;7491:468::-;7556:6;7564;7613:2;7601:9;7592:7;7588:23;7584:32;7581:119;;;7619:79;;:::i;:::-;7581:119;7739:1;7764:53;7809:7;7800:6;7789:9;7785:22;7764:53;:::i;:::-;7754:63;;7710:117;7866:2;7892:50;7934:7;7925:6;7914:9;7910:22;7892:50;:::i;:::-;7882:60;;7837:115;7491:468;;;;;:::o;7965:474::-;8033:6;8041;8090:2;8078:9;8069:7;8065:23;8061:32;8058:119;;;8096:79;;:::i;:::-;8058:119;8216:1;8241:53;8286:7;8277:6;8266:9;8262:22;8241:53;:::i;:::-;8231:63;;8187:117;8343:2;8369:53;8414:7;8405:6;8394:9;8390:22;8369:53;:::i;:::-;8359:63;;8314:118;7965:474;;;;;:::o;8445:182::-;8585:34;8581:1;8573:6;8569:14;8562:58;8445:182;:::o;8633:366::-;8775:3;8796:67;8860:2;8855:3;8796:67;:::i;:::-;8789:74;;8872:93;8961:3;8872:93;:::i;:::-;8990:2;8985:3;8981:12;8974:19;;8633:366;;;:::o;9005:419::-;9171:4;9209:2;9198:9;9194:18;9186:26;;9258:9;9252:4;9248:20;9244:1;9233:9;9229:17;9222:47;9286:131;9412:4;9286:131;:::i;:::-;9278:139;;9005:419;;;:::o;9430:165::-;9570:17;9566:1;9558:6;9554:14;9547:41;9430:165;:::o;9601:366::-;9743:3;9764:67;9828:2;9823:3;9764:67;:::i;:::-;9757:74;;9840:93;9929:3;9840:93;:::i;:::-;9958:2;9953:3;9949:12;9942:19;;9601:366;;;:::o;9973:419::-;10139:4;10177:2;10166:9;10162:18;10154:26;;10226:9;10220:4;10216:20;10212:1;10201:9;10197:17;10190:47;10254:131;10380:4;10254:131;:::i;:::-;10246:139;;9973:419;;;:::o;10398:180::-;10446:77;10443:1;10436:88;10543:4;10540:1;10533:15;10567:4;10564:1;10557:15;10584:320;10628:6;10665:1;10659:4;10655:12;10645:22;;10712:1;10706:4;10702:12;10733:18;10723:81;;10789:4;10781:6;10777:17;10767:27;;10723:81;10851:2;10843:6;10840:14;10820:18;10817:38;10814:84;;10870:18;;:::i;:::-;10814:84;10635:269;10584:320;;;:::o;10910:180::-;10958:77;10955:1;10948:88;11055:4;11052:1;11045:15;11079:4;11076:1;11069:15;11096:348;11136:7;11159:20;11177:1;11159:20;:::i;:::-;11154:25;;11193:20;11211:1;11193:20;:::i;:::-;11188:25;;11381:1;11313:66;11309:74;11306:1;11303:81;11298:1;11291:9;11284:17;11280:105;11277:131;;;11388:18;;:::i;:::-;11277:131;11436:1;11433;11429:9;11418:20;;11096:348;;;;:::o;11450:180::-;11498:77;11495:1;11488:88;11595:4;11592:1;11585:15;11619:4;11616:1;11609:15;11636:185;11676:1;11693:20;11711:1;11693:20;:::i;:::-;11688:25;;11727:20;11745:1;11727:20;:::i;:::-;11722:25;;11766:1;11756:35;;11771:18;;:::i;:::-;11756:35;11813:1;11810;11806:9;11801:14;;11636:185;;;;:::o;11827:234::-;11967:34;11963:1;11955:6;11951:14;11944:58;12036:17;12031:2;12023:6;12019:15;12012:42;11827:234;:::o;12067:366::-;12209:3;12230:67;12294:2;12289:3;12230:67;:::i;:::-;12223:74;;12306:93;12395:3;12306:93;:::i;:::-;12424:2;12419:3;12415:12;12408:19;;12067:366;;;:::o;12439:419::-;12605:4;12643:2;12632:9;12628:18;12620:26;;12692:9;12686:4;12682:20;12678:1;12667:9;12663:17;12656:47;12720:131;12846:4;12720:131;:::i;:::-;12712:139;;12439:419;;;:::o;12864:191::-;12904:4;12924:20;12942:1;12924:20;:::i;:::-;12919:25;;12958:20;12976:1;12958:20;:::i;:::-;12953:25;;12997:1;12994;12991:8;12988:34;;;13002:18;;:::i;:::-;12988:34;13047:1;13044;13040:9;13032:17;;12864:191;;;;:::o;13061:305::-;13101:3;13120:20;13138:1;13120:20;:::i;:::-;13115:25;;13154:20;13172:1;13154:20;:::i;:::-;13149:25;;13308:1;13240:66;13236:74;13233:1;13230:81;13227:107;;;13314:18;;:::i;:::-;13227:107;13358:1;13355;13351:9;13344:16;;13061:305;;;;:::o;13372:225::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:8;13576:2;13568:6;13564:15;13557:33;13372:225;:::o;13603:366::-;13745:3;13766:67;13830:2;13825:3;13766:67;:::i;:::-;13759:74;;13842:93;13931:3;13842:93;:::i;:::-;13960:2;13955:3;13951:12;13944:19;;13603:366;;;:::o;13975:419::-;14141:4;14179:2;14168:9;14164:18;14156:26;;14228:9;14222:4;14218:20;14214:1;14203:9;14199:17;14192:47;14256:131;14382:4;14256:131;:::i;:::-;14248:139;;13975:419;;;:::o;14400:147::-;14501:11;14538:3;14523:18;;14400:147;;;;:::o;14553:114::-;;:::o;14673:398::-;14832:3;14853:83;14934:1;14929:3;14853:83;:::i;:::-;14846:90;;14945:93;15034:3;14945:93;:::i;:::-;15063:1;15058:3;15054:11;15047:18;;14673:398;;;:::o;15077:379::-;15261:3;15283:147;15426:3;15283:147;:::i;:::-;15276:154;;15447:3;15440:10;;15077:379;;;:::o;15462:232::-;15602:34;15598:1;15590:6;15586:14;15579:58;15671:15;15666:2;15658:6;15654:15;15647:40;15462:232;:::o;15700:366::-;15842:3;15863:67;15927:2;15922:3;15863:67;:::i;:::-;15856:74;;15939:93;16028:3;15939:93;:::i;:::-;16057:2;16052:3;16048:12;16041:19;;15700:366;;;:::o;16072:419::-;16238:4;16276:2;16265:9;16261:18;16253:26;;16325:9;16319:4;16315:20;16311:1;16300:9;16296:17;16289:47;16353:131;16479:4;16353:131;:::i;:::-;16345:139;;16072:419;;;:::o;16497:224::-;16637:34;16633:1;16625:6;16621:14;16614:58;16706:7;16701:2;16693:6;16689:15;16682:32;16497:224;:::o;16727:366::-;16869:3;16890:67;16954:2;16949:3;16890:67;:::i;:::-;16883:74;;16966:93;17055:3;16966:93;:::i;:::-;17084:2;17079:3;17075:12;17068:19;;16727:366;;;:::o;17099:419::-;17265:4;17303:2;17292:9;17288:18;17280:26;;17352:9;17346:4;17342:20;17338:1;17327:9;17323:17;17316:47;17380:131;17506:4;17380:131;:::i;:::-;17372:139;;17099:419;;;:::o;17524:223::-;17664:34;17660:1;17652:6;17648:14;17641:58;17733:6;17728:2;17720:6;17716:15;17709:31;17524:223;:::o;17753:366::-;17895:3;17916:67;17980:2;17975:3;17916:67;:::i;:::-;17909:74;;17992:93;18081:3;17992:93;:::i;:::-;18110:2;18105:3;18101:12;18094:19;;17753:366;;;:::o;18125:419::-;18291:4;18329:2;18318:9;18314:18;18306:26;;18378:9;18372:4;18368:20;18364:1;18353:9;18349:17;18342:47;18406:131;18532:4;18406:131;:::i;:::-;18398:139;;18125:419;;;:::o;18550:164::-;18690:16;18686:1;18678:6;18674:14;18667:40;18550:164;:::o;18720:366::-;18862:3;18883:67;18947:2;18942:3;18883:67;:::i;:::-;18876:74;;18959:93;19048:3;18959:93;:::i;:::-;19077:2;19072:3;19068:12;19061:19;;18720:366;;;:::o;19092:419::-;19258:4;19296:2;19285:9;19281:18;19273:26;;19345:9;19339:4;19335:20;19331:1;19320:9;19316:17;19309:47;19373:131;19499:4;19373:131;:::i;:::-;19365:139;;19092:419;;;:::o;19517:225::-;19657:34;19653:1;19645:6;19641:14;19634:58;19726:8;19721:2;19713:6;19709:15;19702:33;19517:225;:::o;19748:366::-;19890:3;19911:67;19975:2;19970:3;19911:67;:::i;:::-;19904:74;;19987:93;20076:3;19987:93;:::i;:::-;20105:2;20100:3;20096:12;20089:19;;19748:366;;;:::o;20120:419::-;20286:4;20324:2;20313:9;20309:18;20301:26;;20373:9;20367:4;20363:20;20359:1;20348:9;20344:17;20337:47;20401:131;20527:4;20401:131;:::i;:::-;20393:139;;20120:419;;;:::o;20545:223::-;20685:34;20681:1;20673:6;20669:14;20662:58;20754:6;20749:2;20741:6;20737:15;20730:31;20545:223;:::o;20774:366::-;20916:3;20937:67;21001:2;20996:3;20937:67;:::i;:::-;20930:74;;21013:93;21102:3;21013:93;:::i;:::-;21131:2;21126:3;21122:12;21115:19;;20774:366;;;:::o;21146:419::-;21312:4;21350:2;21339:9;21335:18;21327:26;;21399:9;21393:4;21389:20;21385:1;21374:9;21370:17;21363:47;21427:131;21553:4;21427:131;:::i;:::-;21419:139;;21146:419;;;:::o;21571:221::-;21711:34;21707:1;21699:6;21695:14;21688:58;21780:4;21775:2;21767:6;21763:15;21756:29;21571:221;:::o;21798:366::-;21940:3;21961:67;22025:2;22020:3;21961:67;:::i;:::-;21954:74;;22037:93;22126:3;22037:93;:::i;:::-;22155:2;22150:3;22146:12;22139:19;;21798:366;;;:::o;22170:419::-;22336:4;22374:2;22363:9;22359:18;22351:26;;22423:9;22417:4;22413:20;22409:1;22398:9;22394:17;22387:47;22451:131;22577:4;22451:131;:::i;:::-;22443:139;;22170:419;;;:::o;22595:179::-;22735:31;22731:1;22723:6;22719:14;22712:55;22595:179;:::o;22780:366::-;22922:3;22943:67;23007:2;23002:3;22943:67;:::i;:::-;22936:74;;23019:93;23108:3;23019:93;:::i;:::-;23137:2;23132:3;23128:12;23121:19;;22780:366;;;:::o;23152:419::-;23318:4;23356:2;23345:9;23341:18;23333:26;;23405:9;23399:4;23395:20;23391:1;23380:9;23376:17;23369:47;23433:131;23559:4;23433:131;:::i;:::-;23425:139;;23152:419;;;:::o;23577:224::-;23717:34;23713:1;23705:6;23701:14;23694:58;23786:7;23781:2;23773:6;23769:15;23762:32;23577:224;:::o;23807:366::-;23949:3;23970:67;24034:2;24029:3;23970:67;:::i;:::-;23963:74;;24046:93;24135:3;24046:93;:::i;:::-;24164:2;24159:3;24155:12;24148:19;;23807:366;;;:::o;24179:419::-;24345:4;24383:2;24372:9;24368:18;24360:26;;24432:9;24426:4;24422:20;24418:1;24407:9;24403:17;24396:47;24460:131;24586:4;24460:131;:::i;:::-;24452:139;;24179:419;;;:::o;24604:222::-;24744:34;24740:1;24732:6;24728:14;24721:58;24813:5;24808:2;24800:6;24796:15;24789:30;24604:222;:::o;24832:366::-;24974:3;24995:67;25059:2;25054:3;24995:67;:::i;:::-;24988:74;;25071:93;25160:3;25071:93;:::i;:::-;25189:2;25184:3;25180:12;25173:19;;24832:366;;;:::o;25204:419::-;25370:4;25408:2;25397:9;25393:18;25385:26;;25457:9;25451:4;25447:20;25443:1;25432:9;25428:17;25421:47;25485:131;25611:4;25485:131;:::i;:::-;25477:139;;25204:419;;;:::o;25629:172::-;25769:24;25765:1;25757:6;25753:14;25746:48;25629:172;:::o;25807:366::-;25949:3;25970:67;26034:2;26029:3;25970:67;:::i;:::-;25963:74;;26046:93;26135:3;26046:93;:::i;:::-;26164:2;26159:3;26155:12;26148:19;;25807:366;;;:::o;26179:419::-;26345:4;26383:2;26372:9;26368:18;26360:26;;26432:9;26426:4;26422:20;26418:1;26407:9;26403:17;26396:47;26460:131;26586:4;26460:131;:::i;:::-;26452:139;;26179:419;;;:::o;26604:240::-;26744:34;26740:1;26732:6;26728:14;26721:58;26813:23;26808:2;26800:6;26796:15;26789:48;26604:240;:::o;26850:366::-;26992:3;27013:67;27077:2;27072:3;27013:67;:::i;:::-;27006:74;;27089:93;27178:3;27089:93;:::i;:::-;27207:2;27202:3;27198:12;27191:19;;26850:366;;;:::o;27222:419::-;27388:4;27426:2;27415:9;27411:18;27403:26;;27475:9;27469:4;27465:20;27461:1;27450:9;27446:17;27439:47;27503:131;27629:4;27503:131;:::i;:::-;27495:139;;27222:419;;;:::o;27647:169::-;27787:21;27783:1;27775:6;27771:14;27764:45;27647:169;:::o;27822:366::-;27964:3;27985:67;28049:2;28044:3;27985:67;:::i;:::-;27978:74;;28061:93;28150:3;28061:93;:::i;:::-;28179:2;28174:3;28170:12;28163:19;;27822:366;;;:::o;28194:419::-;28360:4;28398:2;28387:9;28383:18;28375:26;;28447:9;28441:4;28437:20;28433:1;28422:9;28418:17;28411:47;28475:131;28601:4;28475:131;:::i;:::-;28467:139;;28194:419;;;:::o;28619:241::-;28759:34;28755:1;28747:6;28743:14;28736:58;28828:24;28823:2;28815:6;28811:15;28804:49;28619:241;:::o;28866:366::-;29008:3;29029:67;29093:2;29088:3;29029:67;:::i;:::-;29022:74;;29105:93;29194:3;29105:93;:::i;:::-;29223:2;29218:3;29214:12;29207:19;;28866:366;;;:::o;29238:419::-;29404:4;29442:2;29431:9;29427:18;29419:26;;29491:9;29485:4;29481:20;29477:1;29466:9;29462:17;29455:47;29519:131;29645:4;29519:131;:::i;:::-;29511:139;;29238:419;;;:::o;29663:225::-;29803:34;29799:1;29791:6;29787:14;29780:58;29872:8;29867:2;29859:6;29855:15;29848:33;29663:225;:::o;29894:366::-;30036:3;30057:67;30121:2;30116:3;30057:67;:::i;:::-;30050:74;;30133:93;30222:3;30133:93;:::i;:::-;30251:2;30246:3;30242:12;30235:19;;29894:366;;;:::o;30266:419::-;30432:4;30470:2;30459:9;30455:18;30447:26;;30519:9;30513:4;30509:20;30505:1;30494:9;30490:17;30483:47;30547:131;30673:4;30547:131;:::i;:::-;30539:139;;30266:419;;;:::o;30691:227::-;30831:34;30827:1;30819:6;30815:14;30808:58;30900:10;30895:2;30887:6;30883:15;30876:35;30691:227;:::o;30924:366::-;31066:3;31087:67;31151:2;31146:3;31087:67;:::i;:::-;31080:74;;31163:93;31252:3;31163:93;:::i;:::-;31281:2;31276:3;31272:12;31265:19;;30924:366;;;:::o;31296:419::-;31462:4;31500:2;31489:9;31485:18;31477:26;;31549:9;31543:4;31539:20;31535:1;31524:9;31520:17;31513:47;31577:131;31703:4;31577:131;:::i;:::-;31569:139;;31296:419;;;:::o;31721:180::-;31769:77;31766:1;31759:88;31866:4;31863:1;31856:15;31890:4;31887:1;31880:15;31907:180;31955:77;31952:1;31945:88;32052:4;32049:1;32042:15;32076:4;32073:1;32066:15;32093:143;32150:5;32181:6;32175:13;32166:22;;32197:33;32224:5;32197:33;:::i;:::-;32093:143;;;;:::o;32242:351::-;32312:6;32361:2;32349:9;32340:7;32336:23;32332:32;32329:119;;;32367:79;;:::i;:::-;32329:119;32487:1;32512:64;32568:7;32559:6;32548:9;32544:22;32512:64;:::i;:::-;32502:74;;32458:128;32242:351;;;;:::o;32599:85::-;32644:7;32673:5;32662:16;;32599:85;;;:::o;32690:158::-;32748:9;32781:61;32799:42;32808:32;32834:5;32808:32;:::i;:::-;32799:42;:::i;:::-;32781:61;:::i;:::-;32768:74;;32690:158;;;:::o;32854:147::-;32949:45;32988:5;32949:45;:::i;:::-;32944:3;32937:58;32854:147;;:::o;33007:114::-;33074:6;33108:5;33102:12;33092:22;;33007:114;;;:::o;33127:184::-;33226:11;33260:6;33255:3;33248:19;33300:4;33295:3;33291:14;33276:29;;33127:184;;;;:::o;33317:132::-;33384:4;33407:3;33399:11;;33437:4;33432:3;33428:14;33420:22;;33317:132;;;:::o;33455:108::-;33532:24;33550:5;33532:24;:::i;:::-;33527:3;33520:37;33455:108;;:::o;33569:179::-;33638:10;33659:46;33701:3;33693:6;33659:46;:::i;:::-;33737:4;33732:3;33728:14;33714:28;;33569:179;;;;:::o;33754:113::-;33824:4;33856;33851:3;33847:14;33839:22;;33754:113;;;:::o;33903:732::-;34022:3;34051:54;34099:5;34051:54;:::i;:::-;34121:86;34200:6;34195:3;34121:86;:::i;:::-;34114:93;;34231:56;34281:5;34231:56;:::i;:::-;34310:7;34341:1;34326:284;34351:6;34348:1;34345:13;34326:284;;;34427:6;34421:13;34454:63;34513:3;34498:13;34454:63;:::i;:::-;34447:70;;34540:60;34593:6;34540:60;:::i;:::-;34530:70;;34386:224;34373:1;34370;34366:9;34361:14;;34326:284;;;34330:14;34626:3;34619:10;;34027:608;;;33903:732;;;;:::o;34641:831::-;34904:4;34942:3;34931:9;34927:19;34919:27;;34956:71;35024:1;35013:9;35009:17;35000:6;34956:71;:::i;:::-;35037:80;35113:2;35102:9;35098:18;35089:6;35037:80;:::i;:::-;35164:9;35158:4;35154:20;35149:2;35138:9;35134:18;35127:48;35192:108;35295:4;35286:6;35192:108;:::i;:::-;35184:116;;35310:72;35378:2;35367:9;35363:18;35354:6;35310:72;:::i;:::-;35392:73;35460:3;35449:9;35445:19;35436:6;35392:73;:::i;:::-;34641:831;;;;;;;;:::o

Swarm Source

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