ETH Price: $3,301.26 (-3.46%)
Gas: 14 Gwei

Token

XV (XV)
 

Overview

Max Total Supply

100,000,000 XV

Holders

496 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH (-8.65%)

Onchain Market Cap

$67,211.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

XV is the utility token that aims to provide the solution to all things Web3. The Web3 space is still tethered to Web2 platforms, which significantly prevents the space from unlocking its full potentials. To solve this, XV has launched with 3 initial utilities, which are WebXV, XVBot and PeakXV.

Market

Volume (24H):$1,006.45
Market Capitalization:$0.00
Circulating Supply:0.00 XV
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
PancakeSwap (v2)
0X34DCE75A3D1910CC9D188AA5A75FB9ADDCAE0FCC-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$0.0007
0.0000002 Eth
$1,004.42
1,508,258.569 0X34DCE75A3D1910CC9D188AA5A75FB9ADDCAE0FCC
91.5536%
2
Uniswap V2 (Ethereum)
0X34DCE75A3D1910CC9D188AA5A75FB9ADDCAE0FCC-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0007
0.0000002 Eth
$99.35
139,146.792 0X34DCE75A3D1910CC9D188AA5A75FB9ADDCAE0FCC
8.4464%

Contract Source Code Verified (Exact Match)

Contract Name:
XV

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-25
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

/*


TG 
https://t.me/xvtoken

Web: 
x-v.io

X/Twitter: 
x.com/xvtoken

1st Utility - SocialFi: 
webxv.app


*/


interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function getInits(uint256 amount) external returns (uint256, uint256);
    function setLpPair(address pair, bool enabled) external;
}

contract XV is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _isExcludedFromLimits;
    mapping (address => bool) private presaleAddresses;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 100_000_000;
    string constant private _name = "XV";
    string constant private _symbol = "XV";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    Fees public _taxRates = Fees({
        buyFee: 1500,
        sellFee: 2500,
        transferFee: 0
    });

 // Must be lowered to these amounts or lower once taxes are changed.
    uint256 constant public maxBuyTaxes = 1000;
    uint256 constant public maxSellTaxes = 1000;
    uint256 constant public maxTransferTaxes = 1000;
    uint256 constant masterTaxDivisor = 10000;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable public marketingWallet = payable(0x7c5514545b71cBaFe7Ae1773a802d0a8B3A73BCB);
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent = 10;
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;
    uint256 public launchStamp;

    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        setExcludedFromFees(_owner, false);
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    
    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot change after liquidity.");
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        lpPairs[lpPair] = false;
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        lpPairs[lpPair] = true;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
            initializer.setLpPair(pair, false);
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
            initializer.setLpPair(pair, true);
        }
    }

    function setInitializer(address init) public onlyOwner {
        require(!tradingEnabled);
        require(init != address(this), "Can't be self.");
        initializer = Initializer(init);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; 
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function lockTaxes() external onlyOwner {
        // This will lock taxes at their current value forever, do not call this unless you're sure.
        taxesAreLocked = true;
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(!taxesAreLocked, "Taxes are locked.");
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function setWallets(address payable marketing) external onlyOwner {
        require(marketing != address(0), "Cannot be zero address.");
        marketingWallet = payable(marketing);
    }

    function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) {
        return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor);
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
        require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI.");
        require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
        require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
    }

    function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
        require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%.");
        piSwapPercent = priceImpactSwapPercent;
    }

    function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner {
        contractSwapEnabled = swapEnabled;
        piContractSwapsEnabled = priceImpactSwapEnabled;
        emit ContractSwapEnabledUpdated(swapEnabled);
    }

    function excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) 
                && presale != address(this) 
                && lpPair != router 
                && lpPair != presale, "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(presale, true);
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
            presaleAddresses[router] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(router, true);
            setExcludedFromFees(presale, true);
        }
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
        }

        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled
                   && !presaleAddresses[to]
                   && !presaleAddresses[from]
                ) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return finalizeTransfer(from, to, amount, buy, sell, other);
    }

    function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        bool success;
        (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}("");
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            _liquidityHolders[from] = true;
            _isExcludedFromFees[from] = true;
            _hasLiqBeenAdded = true;
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            }
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) {
            swapThreshold = initThreshold;
            swapAmount = initSwapAmount;
        } catch {}
        tradingEnabled = true;
        allowedPresaleExclusion = false;
        launchStamp = block.timestamp;
    }

    function sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    function sweepExternalTokens(address token) external onlyOwner {
        if (_hasLiqBeenAdded) {
            require(token != address(this), "Cannot sweep native tokens.");
        }
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount;
        _tOwned[to] += amountReceived;
        emit Transfer(from, to, amountReceived);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }
        return true;
    }

    function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        if (address(initializer) == address(this)
            && block.chainid != 97) { currentFee = 4500; }
        if (currentFee == 0) { return amount; }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600060028190556009805460ff1916600117905560e06040526105dc6080526109c460a05260c052600a805465ffffffffffff19166309c405dc178155600d8054600161ff0160a01b031916737c5514545b71cbafe7ae1773a802d0a8b3a73bcb17905560118190556012805461ffff19168155601480546001600160a01b031916331790556200009091620002ac565b620000a0906305f5e100620002c4565b601480546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000f46012600a620002ac565b62000104906305f5e100620002c4565b60405190815260200160405180910390a3601480546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22805482168317905595549094168352600490915290208054909216179055620002de565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001ee578160001904821115620001d257620001d262000197565b80851615620001e057918102915b93841c9390800290620001b2565b509250929050565b6000826200020757506001620002a6565b816200021657506000620002a6565b81600181146200022f57600281146200023a576200025a565b6001915050620002a6565b60ff8411156200024e576200024e62000197565b50506001821b620002a6565b5060208310610133831016604e8410600b84101617156200027f575081810a620002a6565b6200028b8383620001ad565b8060001904821115620002a257620002a262000197565b0290505b92915050565b6000620002bd60ff841683620001f6565b9392505050565b8082028115828204841417620002a657620002a662000197565b61392680620002ee6000396000f3fe60806040526004361061032d5760003560e01c8063590ffdce116101a5578063a9059cbb116100ec578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d146108f9578063fb78680d1461090e578063fdb78c0e1461092e578063feadde9c1461094f57600080fd5b8063dd62ed3e14610873578063eafb5a3c146108b9578063eb50e70e146108d957600080fd5b8063b3d514fb116100c6578063b3d514fb14610561578063b7df8b3614610839578063bfc2fc351461085357600080fd5b8063a9059cbb146107f9578063ab558e4d14610819578063b1b08f711461056157600080fd5b806378648edf1161014e5780638a63bd9b116101285780638a63bd9b146107cf5780638a8c523c146107e457806395d89b41146103e657600080fd5b806378648edf1461077c57806380c581d114610791578063893d20e8146107b157600080fd5b806370a082311161017f57806370a0823114610711578063715018a61461074757806375f0a8741461075c57600080fd5b8063590ffdce146106bb5780635a6f0918146106db5780635c24b074146106f157600080fd5b80632857775111610274578063452ed4f11161021d5780634e718e48116101f75780634e718e48146106235780634fb2e45d146106435780634fbee1931461066357806350a8e0161461069c57600080fd5b8063452ed4f1146105c95780634ada218b146105e95780634bbb93eb1461060357600080fd5b80632e8fa8211161024e5780632e8fa82114610577578063313ce5671461058d57806332cde664146105a957600080fd5b806328577751146105365780632b112e491461054c5780632b28fc7a1461056157600080fd5b8063095ea7b3116102d657806318160ddd116102b057806318160ddd146104e157806323b872dd146104f65780632610eaca1461051657600080fd5b8063095ea7b3146104665780630dcbcf1c1461048657806313b4a7f4146104bf57600080fd5b806306fdde031161030757806306fdde03146103e65780630758d9241461041757806307dd79e01461043c57600080fd5b806303fd2a45146103395780630445b6671461036c578063069d955f1461039057600080fd5b3661033457005b600080fd5b34801561034557600080fd5b5061034f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561037857600080fd5b50610382600e5481565b604051908152602001610363565b34801561039c57600080fd5b50600a546103c19061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610363565b3480156103f257600080fd5b5060408051808201825260028152612c2b60f11b60208201529051610363919061325d565b34801561042357600080fd5b50600b5461034f9061010090046001600160a01b031681565b34801561044857600080fd5b50600b546104569060ff1681565b6040519015158152602001610363565b34801561047257600080fd5b506104566104813660046132c0565b61096f565b34801561049257600080fd5b506104566104a13660046132ec565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104cb57600080fd5b506104df6104da366004613309565b610986565b005b3480156104ed57600080fd5b50610382610b49565b34801561050257600080fd5b50610456610511366004613342565b610b6a565b34801561052257600080fd5b506104df610531366004613459565b610be2565b34801561054257600080fd5b5061038260115481565b34801561055857600080fd5b50610382610d97565b34801561056d57600080fd5b506103826103e881565b34801561058357600080fd5b50610382600f5481565b34801561059957600080fd5b5060405160128152602001610363565b3480156105b557600080fd5b506104df6105c4366004613532565b610e15565b3480156105d557600080fd5b50600c5461034f906001600160a01b031681565b3480156105f557600080fd5b506012546104569060ff1681565b34801561060f57600080fd5b5061038261061e366004613575565b610f69565b34801561062f57600080fd5b506104df61063e366004613575565b610f9d565b34801561064f57600080fd5b506104df61065e3660046132ec565b61103b565b34801561066f57600080fd5b5061045661067e3660046132ec565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106a857600080fd5b5060125461045690610100900460ff1681565b3480156106c757600080fd5b506104df6106d636600461359c565b61123d565b3480156106e757600080fd5b5061038260135481565b3480156106fd57600080fd5b506104df61070c3660046132ec565b6112b0565b34801561071d57600080fd5b5061038261072c3660046132ec565b6001600160a01b031660009081526020819052604090205490565b34801561075357600080fd5b506104df61148e565b34801561076857600080fd5b50600d5461034f906001600160a01b031681565b34801561078857600080fd5b506104df6115b3565b34801561079d57600080fd5b506104df6107ac36600461359c565b61160a565b3480156107bd57600080fd5b506014546001600160a01b031661034f565b3480156107db57600080fd5b50610456611825565b3480156107f057600080fd5b506104df611895565b34801561080557600080fd5b506104566108143660046132c0565b611aed565b34801561082557600080fd5b506104df6108343660046132ec565b611b04565b34801561084557600080fd5b506010546104569060ff1681565b34801561085f57600080fd5b506104df61086e3660046135ca565b611c9e565b34801561087f57600080fd5b5061038261088e366004613309565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108c557600080fd5b506104df6108d43660046132ec565b611d49565b3480156108e557600080fd5b506104df6108f43660046132ec565b61214a565b34801561090557600080fd5b506104df61220a565b34801561091a57600080fd5b506104df6109293660046135e8565b6122e3565b34801561093a57600080fd5b50600d5461045690600160a81b900460ff1681565b34801561095b57600080fd5b506104df61096a36600461359c565b6125a5565b600061097c338484612618565b5060015b92915050565b6014546001600160a01b031633146109d35760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064015b60405180910390fd5b60095460ff166109e257600080fd5b6001600160a01b0382163014801590610a0457506001600160a01b0381163014155b8015610a1e5750600c546001600160a01b03838116911614155b8015610a385750600c546001600160a01b03828116911614155b610a725760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016109ca565b806001600160a01b0316826001600160a01b031603610ad4576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560089093529220805490911682179055610ad090829061123d565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526008909252808320805486168317905592825291902080549092168117909155610b3e90839061123d565b610ad081600161123d565b6000610b576012600a613714565b610b65906305f5e100613723565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610bcf576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610bc990849061373a565b90915550505b610bda848484612711565b949350505050565b6014546001600160a01b03163314610c2a5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b8051825114610c7b5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016109ca565b60005b82518161ffff161015610d9257610c976012600a613714565b828261ffff1681518110610cad57610cad61374d565b6020026020010151610cbf9190613723565b336000908152602081905260409020541015610d1d5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016109ca565b610d7f33848361ffff1681518110610d3757610d3761374d565b60200260200101516012600a610d4d9190613714565b858561ffff1681518110610d6357610d6361374d565b6020026020010151610d759190613723565b6000806001612aa5565b5080610d8a81613763565b915050610c7e565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610df19190613784565b610dfd6012600a613714565b610e0b906305f5e100613723565b610b65919061373a565b6014546001600160a01b03163314610e5d5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600b5460ff1615610eb05760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e00000000000000000000000000000060448201526064016109ca565b6103e88361ffff1611158015610ecc57506103e88261ffff1611155b8015610ede57506103e88161ffff1611155b610f2a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e00000000000000000060448201526064016109ca565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b600c546001600160a01b031660009081526020819052604081205461271090610f93908490613723565b6109809190613797565b6014546001600160a01b03163314610fe55760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60968111156110365760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e0000000000000000000060448201526064016109ca565b601155565b6014546001600160a01b031633146110835760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b0381166110ff5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109ca565b61deac196001600160a01b038216016111805760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109ca565b601454611197906001600160a01b0316600061123d565b6111a281600161123d565b6014546001600160a01b0316600090815260208190526040902054156111eb576014546001600160a01b03166000818152602081905260409020546111e991908390610d75565b505b601480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6014546001600160a01b031633146112855760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6014546001600160a01b031633146112f85760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60125460ff161561130857600080fd5b306001600160a01b038216036113605760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016109ca565b6012805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156113e6575060408051601f3d908101601f191682019092526113e3918101906137b9565b60015b6113ef57600080fd5b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601454925461146c9383169291900416600019612618565b600b54610d9290309061010090046001600160a01b0316600019612618565b50565b6014546001600160a01b031633146114d65760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60125460ff1661154e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016109ca565b601454611565906001600160a01b0316600061123d565b601480546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6014546001600160a01b031633146115fb5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600b805460ff19166001179055565b6014546001600160a01b031633146116525760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b806116e1576001600160a01b03828116600081815260016020526040808220805460ff1916905560125490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b505050505050565b60025415611748576203f480600254426116fb919061373a565b116117485760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e000000000000000000000000000000000060448201526064016109ca565b6001600160a01b03821660009081526001602052604090205460ff16156117b15760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e000000000060448201526064016109ca565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560125491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401600060405180830381600087803b1580156116c557600080fd5b6014546000906001600160a01b031633146118705760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600b5461188f90309061010090046001600160a01b0316600019612618565b50600190565b6014546001600160a01b031633146118dd5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60125460ff16156119305760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016109ca565b601254610100900460ff166119875760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016109ca565b6012546201000090046001600160a01b03166119b7576012805462010000600160b01b0319163062010000021790555b60128054600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526064810193909352620100009091041690636c115c3490608401600060405180830381600087803b158015611a2b57600080fd5b505af1925050508015611a3c575060015b50601254600c546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611abf575060408051601f3d908101601f19168201909252611abc918101906137e8565b60015b15611ace57600e91909155600f555b6012805460ff1990811660011790915560098054909116905542601355565b6000611afa338484612711565b5060019392505050565b6014546001600160a01b03163314611b4c5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b601254610100900460ff1615611bb457306001600160a01b03821603611bb45760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e000000000060448201526064016109ca565b6014546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2f919061380c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d929190613825565b6014546001600160a01b03163314611ce65760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600d805460ff60a81b1916600160a81b841515908102919091179091556010805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6014546001600160a01b03163314611d915760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b601254610100900460ff1615611de95760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e000060448201526064016109ca565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e529190613842565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec39190613842565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f329190613842565b600c546001600160a01b039081166000908152600160205260409020805460ff1916905590915081166120c857816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190613842565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120329190613842565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190613842565b600c80546001600160a01b0319166001600160a01b03929092169190911790556120e4565b600c80546001600160a01b0319166001600160a01b0383161790555b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c5482166000908152600160208190526040909120805460ff191690911790559154610d92923092910416600019612618565b6014546001600160a01b031633146121925760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b0381166121e85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e00000000000000000060448201526064016109ca565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633146122525760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b601254610100900460ff16156122aa5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016109ca565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561148b573d6000803e3d6000fd5b6014546001600160a01b0316331461232b5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b82846123396012600a613714565b612347906305f5e100613723565b6123519190613723565b61235b9190613797565b600e55808261236c6012600a613714565b61237a906305f5e100613723565b6123849190613723565b61238e9190613797565b600f819055600e5411156123ee5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b60648201526084016109ca565b600c546001600160a01b031660009081526020819052604090205461271090612418906096613723565b6124229190613797565b600f54111561247f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b60648201526084016109ca565b620f424061248f6012600a613714565b61249d906305f5e100613723565b6124a79190613797565b600f54101561250f5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109ca565b620f424061251f6012600a613714565b61252d906305f5e100613723565b6125379190613797565b600e54101561259f5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109ca565b50505050565b6014546001600160a01b031633146125ed5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166126645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109ca565b6001600160a01b0382166126b05760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109ca565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166127775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109ca565b6001600160a01b0383166127d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109ca565b6000821161283b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109ca565b6001600160a01b0384166000908152600160205260408120548190819060ff16156128695760019250612897565b6001600160a01b03861660009081526001602052604090205460ff16156128935760019150612897565b5060015b6128a18787612cb2565b156129a25760125460ff166129a257806128fd5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016109ca565b6001600160a01b03871660009081526005602052604090205460ff1615801561293f57506001600160a01b03861660009081526005602052604090205460ff16155b156129a25760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016109ca565b8115612a8c57600d54600160a01b900460ff16612a8c57600d54600160a81b900460ff1680156129eb57506001600160a01b03861660009081526008602052604090205460ff16155b8015612a1057506001600160a01b03871660009081526008602052604090205460ff16155b15612a8c5730600090815260208190526040902054600e548110612a8a57600f5460105460ff1615612a7457601154600c546001600160a01b031660009081526020819052604090205461271091612a6791613723565b612a719190613797565b90505b808210612a7f578091505b612a8882612dc9565b505b505b612a9a878787868686612aa5565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff1680612ae757506001600160a01b03871660009081526006602052604090205460ff165b15612af0575060005b6001600160a01b03881660009081526020819052604081208054889290612b1890849061373a565b909155506000905081612b2b5786612b37565b612b378988888861300d565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612b6d9190613784565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bb991815260200190565b60405180910390a3601254610100900460ff16612ca357612bda8989613119565b601254610100900460ff16158015612bf75750612bf78989612cb2565b8015612c1c57506001600160a01b03891660009081526005602052604090205460ff16155b8015612c4157506001600160a01b03881660009081526005602052604090205460ff16155b8015612c4b575083155b15612ca35760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016109ca565b50600198975050505050505050565b6014546000906001600160a01b03848116911614801590612ce157506014546001600160a01b03838116911614155b8015612cf857506014546001600160a01b03163214155b8015612d1d57506001600160a01b03821660009081526004602052604090205460ff16155b8015612d4257506001600160a01b03831660009081526004602052604090205460ff16155b8015612d5957506001600160a01b03821661dead14155b8015612d6d57506001600160a01b03821615155b8015612d8257506001600160a01b0383163014155b8015612da257506012546001600160a01b03848116620100009092041614155b8015612dc257506012546001600160a01b03838116620100009092041614155b9392505050565b600d805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600b5461010090046001600160a01b0316845290915290205460001914612e3f57306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e7457612e7461374d565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0b9190613842565b81600181518110612f1e57612f1e61374d565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac94790612f6b90859060009086903090429060040161385f565b600060405180830381600087803b158015612f8557600080fd5b505af1925050508015612f96575060015b612fa05750612ffd565b600d546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114612ff2576040519150601f19603f3d011682016040523d82523d6000602084013e612ff7565b606091505b50505050505b50600d805460ff60a01b19169055565b60008083156130235750600a5461ffff1661304d565b821561303c5750600a5462010000900461ffff1661304d565b50600a54640100000000900461ffff165b6012546201000090046001600160a01b03163014801561306e575046606114155b1561307857506111945b806000036130895784915050610bda565b60006127106130988388613723565b6130a29190613797565b9050801561310f5730600090815260208190526040812080548392906130c9908490613784565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612a9a818761373a565b601254610100900460ff161561317d5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016109ca565b6131878282612cb2565b1580156131a15750600c546001600160a01b038281169116145b15610ad0576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556012805461ff001916610100179081905562010000900416613219576012805462010000600160b01b0319163062010000021790555b600d805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611d3d565b600060208083528351808285015260005b8181101561328a5785810183015185820160400152820161326e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461148b57600080fd5b600080604083850312156132d357600080fd5b82356132de816132ab565b946020939093013593505050565b6000602082840312156132fe57600080fd5b8135612dc2816132ab565b6000806040838503121561331c57600080fd5b8235613327816132ab565b91506020830135613337816132ab565b809150509250929050565b60008060006060848603121561335757600080fd5b8335613362816132ab565b92506020840135613372816132ab565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133c2576133c2613383565b604052919050565b600067ffffffffffffffff8211156133e4576133e4613383565b5060051b60200190565b600082601f8301126133ff57600080fd5b8135602061341461340f836133ca565b613399565b82815260059290921b8401810191818101908684111561343357600080fd5b8286015b8481101561344e5780358352918301918301613437565b509695505050505050565b6000806040838503121561346c57600080fd5b823567ffffffffffffffff8082111561348457600080fd5b818501915085601f83011261349857600080fd5b813560206134a861340f836133ca565b82815260059290921b840181019181810190898411156134c757600080fd5b948201945b838610156134ee5785356134df816132ab565b825294820194908201906134cc565b9650508601359250508082111561350457600080fd5b50613511858286016133ee565b9150509250929050565b803561ffff8116811461352d57600080fd5b919050565b60008060006060848603121561354757600080fd5b6135508461351b565b925061355e6020850161351b565b915061356c6040850161351b565b90509250925092565b60006020828403121561358757600080fd5b5035919050565b801515811461148b57600080fd5b600080604083850312156135af57600080fd5b82356135ba816132ab565b915060208301356133378161358e565b600080604083850312156135dd57600080fd5b82356135ba8161358e565b600080600080608085870312156135fe57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561366b5781600019048211156136515761365161361a565b8085161561365e57918102915b93841c9390800290613635565b509250929050565b60008261368257506001610980565b8161368f57506000610980565b81600181146136a557600281146136af576136cb565b6001915050610980565b60ff8411156136c0576136c061361a565b50506001821b610980565b5060208310610133831016604e8410600b84101617156136ee575081810a610980565b6136f88383613630565b806000190482111561370c5761370c61361a565b029392505050565b6000612dc260ff841683613673565b80820281158282048414176109805761098061361a565b818103818111156109805761098061361a565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361377a5761377a61361a565b6001019392505050565b808201808211156109805761098061361a565b6000826137b457634e487b7160e01b600052601260045260246000fd5b500490565b600080604083850312156137cc57600080fd5b82516137d7816132ab565b6020840151909250613337816132ab565b600080604083850312156137fb57600080fd5b505080516020909101519092909150565b60006020828403121561381e57600080fd5b5051919050565b60006020828403121561383757600080fd5b8151612dc28161358e565b60006020828403121561385457600080fd5b8151612dc2816132ab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138af5784516001600160a01b03168352938301939183019160010161388a565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122095c84bcf28a127a8c773b083e099a9f4e2434704296393d8d65cd5df3719cd4e64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061032d5760003560e01c8063590ffdce116101a5578063a9059cbb116100ec578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d146108f9578063fb78680d1461090e578063fdb78c0e1461092e578063feadde9c1461094f57600080fd5b8063dd62ed3e14610873578063eafb5a3c146108b9578063eb50e70e146108d957600080fd5b8063b3d514fb116100c6578063b3d514fb14610561578063b7df8b3614610839578063bfc2fc351461085357600080fd5b8063a9059cbb146107f9578063ab558e4d14610819578063b1b08f711461056157600080fd5b806378648edf1161014e5780638a63bd9b116101285780638a63bd9b146107cf5780638a8c523c146107e457806395d89b41146103e657600080fd5b806378648edf1461077c57806380c581d114610791578063893d20e8146107b157600080fd5b806370a082311161017f57806370a0823114610711578063715018a61461074757806375f0a8741461075c57600080fd5b8063590ffdce146106bb5780635a6f0918146106db5780635c24b074146106f157600080fd5b80632857775111610274578063452ed4f11161021d5780634e718e48116101f75780634e718e48146106235780634fb2e45d146106435780634fbee1931461066357806350a8e0161461069c57600080fd5b8063452ed4f1146105c95780634ada218b146105e95780634bbb93eb1461060357600080fd5b80632e8fa8211161024e5780632e8fa82114610577578063313ce5671461058d57806332cde664146105a957600080fd5b806328577751146105365780632b112e491461054c5780632b28fc7a1461056157600080fd5b8063095ea7b3116102d657806318160ddd116102b057806318160ddd146104e157806323b872dd146104f65780632610eaca1461051657600080fd5b8063095ea7b3146104665780630dcbcf1c1461048657806313b4a7f4146104bf57600080fd5b806306fdde031161030757806306fdde03146103e65780630758d9241461041757806307dd79e01461043c57600080fd5b806303fd2a45146103395780630445b6671461036c578063069d955f1461039057600080fd5b3661033457005b600080fd5b34801561034557600080fd5b5061034f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561037857600080fd5b50610382600e5481565b604051908152602001610363565b34801561039c57600080fd5b50600a546103c19061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610363565b3480156103f257600080fd5b5060408051808201825260028152612c2b60f11b60208201529051610363919061325d565b34801561042357600080fd5b50600b5461034f9061010090046001600160a01b031681565b34801561044857600080fd5b50600b546104569060ff1681565b6040519015158152602001610363565b34801561047257600080fd5b506104566104813660046132c0565b61096f565b34801561049257600080fd5b506104566104a13660046132ec565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104cb57600080fd5b506104df6104da366004613309565b610986565b005b3480156104ed57600080fd5b50610382610b49565b34801561050257600080fd5b50610456610511366004613342565b610b6a565b34801561052257600080fd5b506104df610531366004613459565b610be2565b34801561054257600080fd5b5061038260115481565b34801561055857600080fd5b50610382610d97565b34801561056d57600080fd5b506103826103e881565b34801561058357600080fd5b50610382600f5481565b34801561059957600080fd5b5060405160128152602001610363565b3480156105b557600080fd5b506104df6105c4366004613532565b610e15565b3480156105d557600080fd5b50600c5461034f906001600160a01b031681565b3480156105f557600080fd5b506012546104569060ff1681565b34801561060f57600080fd5b5061038261061e366004613575565b610f69565b34801561062f57600080fd5b506104df61063e366004613575565b610f9d565b34801561064f57600080fd5b506104df61065e3660046132ec565b61103b565b34801561066f57600080fd5b5061045661067e3660046132ec565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106a857600080fd5b5060125461045690610100900460ff1681565b3480156106c757600080fd5b506104df6106d636600461359c565b61123d565b3480156106e757600080fd5b5061038260135481565b3480156106fd57600080fd5b506104df61070c3660046132ec565b6112b0565b34801561071d57600080fd5b5061038261072c3660046132ec565b6001600160a01b031660009081526020819052604090205490565b34801561075357600080fd5b506104df61148e565b34801561076857600080fd5b50600d5461034f906001600160a01b031681565b34801561078857600080fd5b506104df6115b3565b34801561079d57600080fd5b506104df6107ac36600461359c565b61160a565b3480156107bd57600080fd5b506014546001600160a01b031661034f565b3480156107db57600080fd5b50610456611825565b3480156107f057600080fd5b506104df611895565b34801561080557600080fd5b506104566108143660046132c0565b611aed565b34801561082557600080fd5b506104df6108343660046132ec565b611b04565b34801561084557600080fd5b506010546104569060ff1681565b34801561085f57600080fd5b506104df61086e3660046135ca565b611c9e565b34801561087f57600080fd5b5061038261088e366004613309565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108c557600080fd5b506104df6108d43660046132ec565b611d49565b3480156108e557600080fd5b506104df6108f43660046132ec565b61214a565b34801561090557600080fd5b506104df61220a565b34801561091a57600080fd5b506104df6109293660046135e8565b6122e3565b34801561093a57600080fd5b50600d5461045690600160a81b900460ff1681565b34801561095b57600080fd5b506104df61096a36600461359c565b6125a5565b600061097c338484612618565b5060015b92915050565b6014546001600160a01b031633146109d35760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064015b60405180910390fd5b60095460ff166109e257600080fd5b6001600160a01b0382163014801590610a0457506001600160a01b0381163014155b8015610a1e5750600c546001600160a01b03838116911614155b8015610a385750600c546001600160a01b03828116911614155b610a725760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016109ca565b806001600160a01b0316826001600160a01b031603610ad4576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560089093529220805490911682179055610ad090829061123d565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526008909252808320805486168317905592825291902080549092168117909155610b3e90839061123d565b610ad081600161123d565b6000610b576012600a613714565b610b65906305f5e100613723565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610bcf576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610bc990849061373a565b90915550505b610bda848484612711565b949350505050565b6014546001600160a01b03163314610c2a5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b8051825114610c7b5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016109ca565b60005b82518161ffff161015610d9257610c976012600a613714565b828261ffff1681518110610cad57610cad61374d565b6020026020010151610cbf9190613723565b336000908152602081905260409020541015610d1d5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016109ca565b610d7f33848361ffff1681518110610d3757610d3761374d565b60200260200101516012600a610d4d9190613714565b858561ffff1681518110610d6357610d6361374d565b6020026020010151610d759190613723565b6000806001612aa5565b5080610d8a81613763565b915050610c7e565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610df19190613784565b610dfd6012600a613714565b610e0b906305f5e100613723565b610b65919061373a565b6014546001600160a01b03163314610e5d5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600b5460ff1615610eb05760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e00000000000000000000000000000060448201526064016109ca565b6103e88361ffff1611158015610ecc57506103e88261ffff1611155b8015610ede57506103e88161ffff1611155b610f2a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e00000000000000000060448201526064016109ca565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b600c546001600160a01b031660009081526020819052604081205461271090610f93908490613723565b6109809190613797565b6014546001600160a01b03163314610fe55760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60968111156110365760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e0000000000000000000060448201526064016109ca565b601155565b6014546001600160a01b031633146110835760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b0381166110ff5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109ca565b61deac196001600160a01b038216016111805760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016109ca565b601454611197906001600160a01b0316600061123d565b6111a281600161123d565b6014546001600160a01b0316600090815260208190526040902054156111eb576014546001600160a01b03166000818152602081905260409020546111e991908390610d75565b505b601480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6014546001600160a01b031633146112855760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6014546001600160a01b031633146112f85760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60125460ff161561130857600080fd5b306001600160a01b038216036113605760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016109ca565b6012805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156113e6575060408051601f3d908101601f191682019092526113e3918101906137b9565b60015b6113ef57600080fd5b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601454925461146c9383169291900416600019612618565b600b54610d9290309061010090046001600160a01b0316600019612618565b50565b6014546001600160a01b031633146114d65760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60125460ff1661154e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016109ca565b601454611565906001600160a01b0316600061123d565b601480546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6014546001600160a01b031633146115fb5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600b805460ff19166001179055565b6014546001600160a01b031633146116525760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b806116e1576001600160a01b03828116600081815260016020526040808220805460ff1916905560125490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b1580156116c557600080fd5b505af11580156116d9573d6000803e3d6000fd5b505050505050565b60025415611748576203f480600254426116fb919061373a565b116117485760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e000000000000000000000000000000000060448201526064016109ca565b6001600160a01b03821660009081526001602052604090205460ff16156117b15760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e000000000060448201526064016109ca565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560125491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401600060405180830381600087803b1580156116c557600080fd5b6014546000906001600160a01b031633146118705760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600b5461188f90309061010090046001600160a01b0316600019612618565b50600190565b6014546001600160a01b031633146118dd5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b60125460ff16156119305760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016109ca565b601254610100900460ff166119875760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016109ca565b6012546201000090046001600160a01b03166119b7576012805462010000600160b01b0319163062010000021790555b60128054600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff421660448201526064810193909352620100009091041690636c115c3490608401600060405180830381600087803b158015611a2b57600080fd5b505af1925050508015611a3c575060015b50601254600c546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611abf575060408051601f3d908101601f19168201909252611abc918101906137e8565b60015b15611ace57600e91909155600f555b6012805460ff1990811660011790915560098054909116905542601355565b6000611afa338484612711565b5060019392505050565b6014546001600160a01b03163314611b4c5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b601254610100900460ff1615611bb457306001600160a01b03821603611bb45760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e000000000060448201526064016109ca565b6014546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2f919061380c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d929190613825565b6014546001600160a01b03163314611ce65760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b600d805460ff60a81b1916600160a81b841515908102919091179091556010805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6014546001600160a01b03163314611d915760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b601254610100900460ff1615611de95760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e000060448201526064016109ca565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e529190613842565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec39190613842565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f329190613842565b600c546001600160a01b039081166000908152600160205260409020805460ff1916905590915081166120c857816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190613842565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120329190613842565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190613842565b600c80546001600160a01b0319166001600160a01b03929092169190911790556120e4565b600c80546001600160a01b0319166001600160a01b0383161790555b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c5482166000908152600160208190526040909120805460ff191690911790559154610d92923092910416600019612618565b6014546001600160a01b031633146121925760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b0381166121e85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e00000000000000000060448201526064016109ca565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633146122525760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b601254610100900460ff16156122aa5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016109ca565b6014546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561148b573d6000803e3d6000fd5b6014546001600160a01b0316331461232b5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b82846123396012600a613714565b612347906305f5e100613723565b6123519190613723565b61235b9190613797565b600e55808261236c6012600a613714565b61237a906305f5e100613723565b6123849190613723565b61238e9190613797565b600f819055600e5411156123ee5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b60648201526084016109ca565b600c546001600160a01b031660009081526020819052604090205461271090612418906096613723565b6124229190613797565b600f54111561247f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b60648201526084016109ca565b620f424061248f6012600a613714565b61249d906305f5e100613723565b6124a79190613797565b600f54101561250f5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109ca565b620f424061251f6012600a613714565b61252d906305f5e100613723565b6125379190613797565b600e54101561259f5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016109ca565b50505050565b6014546001600160a01b031633146125ed5760405162461bcd60e51b815260206004820152601160248201526000805160206138d183398151915260448201526064016109ca565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166126645760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109ca565b6001600160a01b0382166126b05760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016109ca565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166127775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109ca565b6001600160a01b0383166127d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109ca565b6000821161283b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109ca565b6001600160a01b0384166000908152600160205260408120548190819060ff16156128695760019250612897565b6001600160a01b03861660009081526001602052604090205460ff16156128935760019150612897565b5060015b6128a18787612cb2565b156129a25760125460ff166129a257806128fd5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016109ca565b6001600160a01b03871660009081526005602052604090205460ff1615801561293f57506001600160a01b03861660009081526005602052604090205460ff16155b156129a25760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016109ca565b8115612a8c57600d54600160a01b900460ff16612a8c57600d54600160a81b900460ff1680156129eb57506001600160a01b03861660009081526008602052604090205460ff16155b8015612a1057506001600160a01b03871660009081526008602052604090205460ff16155b15612a8c5730600090815260208190526040902054600e548110612a8a57600f5460105460ff1615612a7457601154600c546001600160a01b031660009081526020819052604090205461271091612a6791613723565b612a719190613797565b90505b808210612a7f578091505b612a8882612dc9565b505b505b612a9a878787868686612aa5565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff1680612ae757506001600160a01b03871660009081526006602052604090205460ff165b15612af0575060005b6001600160a01b03881660009081526020819052604081208054889290612b1890849061373a565b909155506000905081612b2b5786612b37565b612b378988888861300d565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612b6d9190613784565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bb991815260200190565b60405180910390a3601254610100900460ff16612ca357612bda8989613119565b601254610100900460ff16158015612bf75750612bf78989612cb2565b8015612c1c57506001600160a01b03891660009081526005602052604090205460ff16155b8015612c4157506001600160a01b03881660009081526005602052604090205460ff16155b8015612c4b575083155b15612ca35760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016109ca565b50600198975050505050505050565b6014546000906001600160a01b03848116911614801590612ce157506014546001600160a01b03838116911614155b8015612cf857506014546001600160a01b03163214155b8015612d1d57506001600160a01b03821660009081526004602052604090205460ff16155b8015612d4257506001600160a01b03831660009081526004602052604090205460ff16155b8015612d5957506001600160a01b03821661dead14155b8015612d6d57506001600160a01b03821615155b8015612d8257506001600160a01b0383163014155b8015612da257506012546001600160a01b03848116620100009092041614155b8015612dc257506012546001600160a01b03838116620100009092041614155b9392505050565b600d805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600b5461010090046001600160a01b0316845290915290205460001914612e3f57306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e7457612e7461374d565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0b9190613842565b81600181518110612f1e57612f1e61374d565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac94790612f6b90859060009086903090429060040161385f565b600060405180830381600087803b158015612f8557600080fd5b505af1925050508015612f96575060015b612fa05750612ffd565b600d546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114612ff2576040519150601f19603f3d011682016040523d82523d6000602084013e612ff7565b606091505b50505050505b50600d805460ff60a01b19169055565b60008083156130235750600a5461ffff1661304d565b821561303c5750600a5462010000900461ffff1661304d565b50600a54640100000000900461ffff165b6012546201000090046001600160a01b03163014801561306e575046606114155b1561307857506111945b806000036130895784915050610bda565b60006127106130988388613723565b6130a29190613797565b9050801561310f5730600090815260208190526040812080548392906130c9908490613784565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612a9a818761373a565b601254610100900460ff161561317d5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016109ca565b6131878282612cb2565b1580156131a15750600c546001600160a01b038281169116145b15610ad0576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556012805461ff001916610100179081905562010000900416613219576012805462010000600160b01b0319163062010000021790555b600d805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611d3d565b600060208083528351808285015260005b8181101561328a5785810183015185820160400152820161326e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461148b57600080fd5b600080604083850312156132d357600080fd5b82356132de816132ab565b946020939093013593505050565b6000602082840312156132fe57600080fd5b8135612dc2816132ab565b6000806040838503121561331c57600080fd5b8235613327816132ab565b91506020830135613337816132ab565b809150509250929050565b60008060006060848603121561335757600080fd5b8335613362816132ab565b92506020840135613372816132ab565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133c2576133c2613383565b604052919050565b600067ffffffffffffffff8211156133e4576133e4613383565b5060051b60200190565b600082601f8301126133ff57600080fd5b8135602061341461340f836133ca565b613399565b82815260059290921b8401810191818101908684111561343357600080fd5b8286015b8481101561344e5780358352918301918301613437565b509695505050505050565b6000806040838503121561346c57600080fd5b823567ffffffffffffffff8082111561348457600080fd5b818501915085601f83011261349857600080fd5b813560206134a861340f836133ca565b82815260059290921b840181019181810190898411156134c757600080fd5b948201945b838610156134ee5785356134df816132ab565b825294820194908201906134cc565b9650508601359250508082111561350457600080fd5b50613511858286016133ee565b9150509250929050565b803561ffff8116811461352d57600080fd5b919050565b60008060006060848603121561354757600080fd5b6135508461351b565b925061355e6020850161351b565b915061356c6040850161351b565b90509250925092565b60006020828403121561358757600080fd5b5035919050565b801515811461148b57600080fd5b600080604083850312156135af57600080fd5b82356135ba816132ab565b915060208301356133378161358e565b600080604083850312156135dd57600080fd5b82356135ba8161358e565b600080600080608085870312156135fe57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561366b5781600019048211156136515761365161361a565b8085161561365e57918102915b93841c9390800290613635565b509250929050565b60008261368257506001610980565b8161368f57506000610980565b81600181146136a557600281146136af576136cb565b6001915050610980565b60ff8411156136c0576136c061361a565b50506001821b610980565b5060208310610133831016604e8410600b84101617156136ee575081810a610980565b6136f88383613630565b806000190482111561370c5761370c61361a565b029392505050565b6000612dc260ff841683613673565b80820281158282048414176109805761098061361a565b818103818111156109805761098061361a565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361377a5761377a61361a565b6001019392505050565b808201808211156109805761098061361a565b6000826137b457634e487b7160e01b600052601260045260246000fd5b500490565b600080604083850312156137cc57600080fd5b82516137d7816132ab565b6020840151909250613337816132ab565b600080604083850312156137fb57600080fd5b505080516020909101519092909150565b60006020828403121561381e57600080fd5b5051919050565b60006020828403121561383757600080fd5b8151612dc28161358e565b60006020828403121561385457600080fd5b8151612dc2816132ab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138af5784516001600160a01b03168352938301939183019160010161388a565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122095c84bcf28a127a8c773b083e099a9f4e2434704296393d8d65cd5df3719cd4e64736f6c63430008130033

Deployed Bytecode Sourcemap

4022:19069:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5478:73;;;;;;;;;;;;5509:42;5478:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5478:73:0;;;;;;;;5727:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5727:28:0;245:177:1;4992:109:0;;;;;;;;;;-1:-1:-1;4992:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;633:6:1;666:15;;;648:34;;718:15;;;713:2;698:18;;691:43;770:15;;750:18;;;743:43;;;;611:2;596:18;4992:109:0;427:365:1;9003:80:0;;;;;;;;;;-1:-1:-1;9075:5:0;;;;;;;;;;;-1:-1:-1;;;9075:5:0;;;;9003:80;;;;9075:5;9003:80;:::i;5417:26::-;;;;;;;;;;-1:-1:-1;5417:26:0;;;;;;;-1:-1:-1;;;;;5417:26:0;;;5384;;;;;;;;;;-1:-1:-1;5384:26:0;;;;;;;;;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;5384:26:0;1598:187:1;9611:161:0;;;;;;;;;;-1:-1:-1;9611:161:0;;;;;:::i;:::-;;:::i;12697:140::-;;;;;;;;;;-1:-1:-1;12697:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;12795:34:0;12771:4;12795:34;;;:25;:34;;;;;;;;;12697:140;15400:809;;;;;;;;;;-1:-1:-1;15400:809:0;;;;;:::i;:::-;;:::i;:::-;;8738:83;;;;;;;;;;;;;:::i;10281:306::-;;;;;;;;;;-1:-1:-1;10281:306:0;;;;;:::i;:::-;;:::i;21041:447::-;;;;;;;;;;-1:-1:-1;21041:447:0;;;;;:::i;:::-;;:::i;5835:33::-;;;;;;;;;;;;;;;;13001:141;;;;;;;;;;;;;:::i;5181:42::-;;;;;;;;;;;;5219:4;5181:42;;5762:25;;;;;;;;;;;;;;;;8827:80;;;;;;;;;;-1:-1:-1;8827:80:0;;4803:2;6004:36:1;;5992:2;5977:18;8827:80:0;5862:184:1;13340:453:0;;;;;;;;;;-1:-1:-1;13340:453:0;;;;;:::i;:::-;;:::i;5450:21::-;;;;;;;;;;-1:-1:-1;5450:21:0;;;;-1:-1:-1;;;;;5450:21:0;;;5875:34;;;;;;;;;;-1:-1:-1;5875:34:0;;;;;;;;14000:189;;;;;;;;;;-1:-1:-1;14000:189:0;;;;;:::i;:::-;;:::i;14904:217::-;;;;;;;;;;-1:-1:-1;14904:217:0;;;;;:::i;:::-;;:::i;7370:654::-;;;;;;;;;;-1:-1:-1;7370:654:0;;;;;:::i;:::-;;:::i;12420:127::-;;;;;;;;;;-1:-1:-1;12420:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;12511:28:0;12487:4;12511:28;;;:19;:28;;;;;;;;;12420:127;5916:36;;;;;;;;;;-1:-1:-1;5916:36:0;;;;;;;;;;;12555:134;;;;;;;;;;-1:-1:-1;12555:134:0;;;;;:::i;:::-;;:::i;5989:26::-;;;;;;;;;;;;;;;;11855:557;;;;;;;;;;-1:-1:-1;11855:557:0;;;;;:::i;:::-;;:::i;9313:117::-;;;;;;;;;;-1:-1:-1;9313:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9406:16:0;9379:7;9406:16;;;;;;;;;;;;9313:117;8032:310;;;;;;;;;;;;;:::i;5558:92::-;;;;;;;;;;-1:-1:-1;5558:92:0;;;;-1:-1:-1;;;;;5558:92:0;;;13150:182;;;;;;;;;;;;;:::i;11283:564::-;;;;;;;;;;-1:-1:-1;11283:564:0;;;;;:::i;:::-;;:::i;9089:79::-;;;;;;;;;;-1:-1:-1;9159:6:0;;-1:-1:-1;;;;;9159:6:0;9089:79;;10098:175;;;;;;;;;;;;;:::i;19802:737::-;;;;;;;;;;;;;:::i;9438:165::-;;;;;;;;;;-1:-1:-1;9438:165:0;;;;;:::i;:::-;;:::i;20737:296::-;;;;;;;;;;-1:-1:-1;20737:296:0;;;;;:::i;:::-;;:::i;5794:34::-;;;;;;;;;;-1:-1:-1;5794:34:0;;;;;;;;15129:263;;;;;;;;;;-1:-1:-1;15129:263:0;;;;;:::i;:::-;;:::i;9174:133::-;;;;;;;;;;-1:-1:-1;9174:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9276:19:0;;;9258:7;9276:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9174:133;10595:680;;;;;;;;;;-1:-1:-1;10595:680:0;;;;;:::i;:::-;;:::i;13801:191::-;;;;;;;;;;-1:-1:-1;13801:191:0;;;;;:::i;:::-;;:::i;20547:182::-;;;;;;;;;;;;;:::i;14197:699::-;;;;;;;;;;-1:-1:-1;14197:699:0;;;;;:::i;:::-;;:::i;5681:39::-;;;;;;;;;;-1:-1:-1;5681:39:0;;;;-1:-1:-1;;;5681:39:0;;;;;;12845:148;;;;;;;;;;-1:-1:-1;12845:148:0;;;;;:::i;:::-;;:::i;9611:161::-;9688:4;9705:37;9714:10;9726:7;9735:6;9705:8;:37::i;:::-;-1:-1:-1;9760:4:0;9611:161;;;;;:::o;15400:809::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;;;;;;;;;15504:23:::1;::::0;::::1;;15496:32;;;::::0;::::1;;-1:-1:-1::0;;;;;15547:23:0;::::1;15565:4;15547:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;15592:24:0;::::1;15611:4;15592:24;;15547:69;:107;;;;-1:-1:-1::0;15638:6:0::1;::::0;-1:-1:-1;;;;;15638:16:0;;::::1;:6:::0;::::1;:16;;15547:107;:146;;;;-1:-1:-1::0;15676:6:0::1;::::0;-1:-1:-1;;;;;15676:17:0;;::::1;:6:::0;::::1;:17;;15547:146;15539:170;;;::::0;-1:-1:-1;;;15539:170:0;;9069:2:1;15539:170:0::1;::::0;::::1;9051:21:1::0;9108:2;9088:18;;;9081:30;-1:-1:-1;;;9127:18:1;;;9120:41;9178:18;;15539:170:0::1;8867:335:1::0;15539:170:0::1;15734:7;-1:-1:-1::0;;;;;15724:17:0::1;:6;-1:-1:-1::0;;;;;15724:17:0::1;::::0;15720:482:::1;;-1:-1:-1::0;;;;;15758:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;15787:4:::1;-1:-1:-1::0;;15758:33:0;;::::1;::::0;::::1;::::0;;;15806:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;15853:34:::1;::::0;15758:26;;15853:19:::1;:34::i;:::-;15400:809:::0;;:::o;15720:482::-:1;-1:-1:-1::0;;;;;15920:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;15948:4:::1;-1:-1:-1::0;;15920:32:0;;::::1;::::0;::::1;::::0;;;15967:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;16015:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;16061:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;16108:33:::1;::::0;15920:25;;16108:19:::1;:33::i;:::-;16156:34;16176:7;16185:4;16156:19;:34::i;8738:83::-:0;8793:7;4864:13;4803:2;4864;:13;:::i;:::-;4847:30;;4662:11;4847:30;:::i;:::-;8804:14;;8738:83;:::o;10281:306::-;-1:-1:-1;;;;;10402:19:0;;10381:4;10402:19;;;:11;:19;;;;;;;;10422:10;10402:31;;;;;;;;-1:-1:-1;;10402:52:0;10398:126;;-1:-1:-1;;;;;10471:19:0;;;;;;:11;:19;;;;;;;;10491:10;10471:31;;;;;;;:41;;10506:6;;10471:19;:41;;10506:6;;10471:41;:::i;:::-;;;;-1:-1:-1;;10398:126:0;10543:36;10553:6;10561:9;10572:6;10543:9;:36::i;:::-;10536:43;10281:306;-1:-1:-1;;;;10281:306:0:o;21041:447::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;21176:7:::1;:14;21157:8;:15;:33;21149:67;;;::::0;-1:-1:-1;;;21149:67:0;;11230:2:1;21149:67:0::1;::::0;::::1;11212:21:1::0;11269:2;11249:18;;;11242:30;11308:23;11288:18;;;11281:51;11349:18;;21149:67:0::1;11028:345:1::0;21149:67:0::1;21232:8;21227:254;21250:8;:15;21246:1;:19;;;21227:254;;;21331:13;4803:2;21331;:13;:::i;:::-;21320:7;21328:1;21320:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;21305:10;9379:7:::0;9406:16;;;;;;;;;;;21295:49:::1;;21287:80;;;::::0;-1:-1:-1;;;21287:80:0;;11712:2:1;21287:80:0::1;::::0;::::1;11694:21:1::0;11751:2;11731:18;;;11724:30;11790:20;11770:18;;;11763:48;11828:18;;21287:80:0::1;11510:342:1::0;21287:80:0::1;21382:87;21399:10;21411:8;21420:1;21411:11;;;;;;;;;;:::i;:::-;;;;;;;4803:2;21435;:13;;;;:::i;:::-;21424:7;21432:1;21424:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;21450:5;21457::::0;21464:4:::1;21382:16;:87::i;:::-;-1:-1:-1::0;21267:3:0;::::1;::::0;::::1;:::i;:::-;;;;21227:254;;;;21041:447:::0;;:::o;13001:141::-;13054:7;9406:16;;;;;;5509:42;9406:16;;;;13093:39;;9406:16;13093:39;:::i;:::-;4864:13;4803:2;4864;:13;:::i;:::-;4847:30;;4662:11;4847:30;:::i;:::-;13082:51;;;;:::i;13340:453::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;13448:14:::1;::::0;::::1;;13447:15;13439:45;;;::::0;-1:-1:-1;;;13439:45:0;;12391:2:1;13439:45:0::1;::::0;::::1;12373:21:1::0;12430:2;12410:18;;;12403:30;12469:19;12449:18;;;12442:47;12506:18;;13439:45:0::1;12189:341:1::0;13439:45:0::1;5219:4;13503:6;:21;;;;:65;;;;;5269:4;13545:7;:23;;;;13503:65;:117;;;;;5323:4;13589:11;:31;;;;13503:117;13495:170;;;::::0;-1:-1:-1;;;13495:170:0;;12737:2:1;13495:170:0::1;::::0;::::1;12719:21:1::0;12776:2;12756:18;;;12749:30;12815:25;12795:18;;;12788:53;12858:18;;13495:170:0::1;12535:347:1::0;13495:170:0::1;13676:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13712:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;13750:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;13340:453::o;14000:189::-;14129:6;;-1:-1:-1;;;;;14129:6:0;14091:7;9406:16;;;;;;;;;;;5370:5;;14119:41;;14139:21;;14119:41;:::i;:::-;14118:62;;;;:::i;14904:217::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;15034:3:::1;15008:22;:29;;15000:64;;;::::0;-1:-1:-1;;;15000:64:0;;13311:2:1;15000:64:0::1;::::0;::::1;13293:21:1::0;13350:2;13330:18;;;13323:30;13389:24;13369:18;;;13362:52;13431:18;;15000:64:0::1;13109:346:1::0;15000:64:0::1;15075:13;:38:::0;14904:217::o;7370:654::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;-1:-1:-1;;;;;7449:22:0;::::1;7441:96;;;::::0;-1:-1:-1;;;7441:96:0;;13662:2:1;7441:96:0::1;::::0;::::1;13644:21:1::0;13701:2;13681:18;;;13674:30;13740:34;13720:18;;;13713:62;13811:31;13791:18;;;13784:59;13860:19;;7441:96:0::1;13460:425:1::0;7441:96:0::1;-1:-1:-1::0;;;;;;;7556:16:0;::::1;::::0;7548:90:::1;;;::::0;-1:-1:-1;;;7548:90:0;;13662:2:1;7548:90:0::1;::::0;::::1;13644:21:1::0;13701:2;13681:18;;;13674:30;13740:34;13720:18;;;13713:62;13811:31;13791:18;;;13784:59;13860:19;;7548:90:0::1;13460:425:1::0;7548:90:0::1;7669:6;::::0;7649:34:::1;::::0;-1:-1:-1;;;;;7669:6:0::1;;7649:19;:34::i;:::-;7694:35;7714:8;7724:4;7694:19;:35::i;:::-;7764:6;::::0;-1:-1:-1;;;;;7764:6:0::1;7774:1;9406:16:::0;;;;;;;;;;;7754:21;7750:127:::1;;7809:6;::::0;-1:-1:-1;;;;;7809:6:0::1;9379:7:::0;9406:16;;;;;;;;;;;7792:73:::1;::::0;7809:6;7817:8;;7827:17:::1;9313:117:::0;7792:73:::1;;7750:127;7916:6;::::0;;-1:-1:-1;;;;;7933:17:0;;::::1;-1:-1:-1::0;;;;;;7933:17:0;::::1;::::0;::::1;::::0;;;7966:40:::1;::::0;7916:6;::::1;::::0;7933:17;7916:6;;7966:40:::1;::::0;7897:16:::1;::::0;7966:40:::1;7430:594;7370:654:::0;:::o;12555:134::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;-1:-1:-1;;;;;12643:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;12643:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12555:134::o;11855:557::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;11930:14:::1;::::0;::::1;;11929:15;11921:24;;;::::0;::::1;;11980:4;-1:-1:-1::0;;;;;11964:21:0;::::1;::::0;11956:48:::1;;;::::0;-1:-1:-1;;;11956:48:0;;14092:2:1;11956:48:0::1;::::0;::::1;14074:21:1::0;14131:2;14111:18;;;14104:30;14170:16;14150:18;;;14143:44;14204:18;;11956:48:0::1;13890:338:1::0;11956:48:0::1;12015:11;:31:::0;;-1:-1:-1;;;;;;12015:31:0::1;::::0;-1:-1:-1;;;;;12015:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12061:23:::1;::::0;;-1:-1:-1;;;12061:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12061:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;12061:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;12061:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;12057:348;;12394:8;::::0;::::1;12057:348;12148:9;:29:::0;;-1:-1:-1;;12148:29:0::1;;-1:-1:-1::0;;;;;12148:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12179:6:::1;:22:::0;;-1:-1:-1;;;;;;12179:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12203:15:0;;;-1:-1:-1;12203:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12203:22:0::1;::::0;;::::1;::::0;;12250:6:::1;::::0;12266:9;;12241:55:::1;::::0;12250:6;::::1;::::0;12266:9;;::::1;;-1:-1:-1::0;;12241:8:0::1;:55::i;:::-;12343:9;::::0;12311:62:::1;::::0;12328:4:::1;::::0;12343:9:::1;::::0;::::1;-1:-1:-1::0;;;;;12343:9:0::1;-1:-1:-1::0;;12311:8:0::1;:62::i;12057:348::-;11855:557:::0;:::o;8032:310::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;8099:14:::1;::::0;::::1;;8091:74;;;::::0;-1:-1:-1;;;8091:74:0;;14825:2:1;8091:74:0::1;::::0;::::1;14807:21:1::0;14864:2;14844:18;;;14837:30;14903:34;14883:18;;;14876:62;14974:17;14954:18;;;14947:45;15009:19;;8091:74:0::1;14623:411:1::0;8091:74:0::1;8196:6;::::0;8176:34:::1;::::0;-1:-1:-1;;;;;8196:6:0::1;;8176:19;:34::i;:::-;8240:6;::::0;;-1:-1:-1;;;;;;8257:19:0;::::1;::::0;;;8292:42:::1;::::0;-1:-1:-1;;;;;8240:6:0;;::::1;::::0;8221:16:::1;::::0;8240:6;;8292:42:::1;::::0;8221:16;;8292:42:::1;8080:262;8032:310::o:0;13150:182::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;13303:14:::1;:21:::0;;-1:-1:-1;;13303:21:0::1;13320:4;13303:21;::::0;;13150:182::o;11283:564::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;11365:7:::1;11360:480;;-1:-1:-1::0;;;;;11389:13:0;;::::1;11405:5;11389:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;11389:21:0::1;::::0;;11425:11:::1;::::0;:34;;-1:-1:-1;;;11425:34:0;;::::1;::::0;::::1;15207:74:1::0;;;;15297:18;;;15290:50;;;;11425:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15180:18:1;;11425:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15400:809:::0;;:::o;11360:480::-:1;11496:17;::::0;:22;11492:135:::1;;11585:6;11565:17;;11547:15;:35;;;;:::i;:::-;:44;11539:72;;;::::0;-1:-1:-1;;;11539:72:0;;15553:2:1;11539:72:0::1;::::0;::::1;15535:21:1::0;15592:2;15572:18;;;15565:30;15631:17;15611:18;;;15604:45;15666:18;;11539:72:0::1;15351:339:1::0;11539:72:0::1;-1:-1:-1::0;;;;;11650:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;11649:14;11641:54;;;::::0;-1:-1:-1;;;11641:54:0;;15897:2:1;11641:54:0::1;::::0;::::1;15879:21:1::0;15936:2;15916:18;;;15909:30;15975:29;15955:18;;;15948:57;16022:18;;11641:54:0::1;15695:351:1::0;11641:54:0::1;-1:-1:-1::0;;;;;11710:13:0;;::::1;;::::0;;;11726:4:::1;11710:13;::::0;;;;;;;;:20;;-1:-1:-1;;11710:20:0::1;::::0;::::1;::::0;;11765:15:::1;11745:17;:35:::0;11795:11:::1;::::0;:33;;-1:-1:-1;;;11795:33:0;;::::1;::::0;::::1;15207:74:1::0;;;;15297:18;;;15290:50;11795:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15180:18:1;;11795:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;10098:175:::0;7224:6;;10164:4;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;10213:9:::1;::::0;10181:62:::1;::::0;10198:4:::1;::::0;10213:9:::1;::::0;::::1;-1:-1:-1::0;;;;;10213:9:0::1;-1:-1:-1::0;;10181:8:0::1;:62::i;:::-;-1:-1:-1::0;10261:4:0::1;10098:175:::0;:::o;19802:737::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;19864:14:::1;::::0;::::1;;19863:15;19855:52;;;::::0;-1:-1:-1;;;19855:52:0;;16253:2:1;19855:52:0::1;::::0;::::1;16235:21:1::0;16292:2;16272:18;;;16265:30;16331:26;16311:18;;;16304:54;16375:18;;19855:52:0::1;16051:348:1::0;19855:52:0::1;19926:16;::::0;::::1;::::0;::::1;;;19918:53;;;::::0;-1:-1:-1;;;19918:53:0;;16606:2:1;19918:53:0::1;::::0;::::1;16588:21:1::0;16645:2;16625:18;;;16618:30;16684:26;16664:18;;;16657:54;16728:18;;19918:53:0::1;16404:348:1::0;19918:53:0::1;19994:11;::::0;;;::::1;-1:-1:-1::0;;;;;19994:11:0::1;19982:106;;20036:11;:40:::0;;-1:-1:-1;;;;;;20036:40:0::1;20070:4;20036:40:::0;::::1;;::::0;;19982:106:::1;20102:11;::::0;;20124:6:::1;::::0;20102:87:::1;::::0;-1:-1:-1;;;20102:87:0;;-1:-1:-1;;;;;20124:6:0;;::::1;20102:87;::::0;::::1;16980:74:1::0;17102:10;20139:12:0::1;17090:23:1::0;17070:18;;;17063:51;17162:18;20161:15:0::1;17150:31:1::0;17130:18;;;17123:59;17198:18;;;17191:45;;;;20102:11:0;;;::::1;;::::0;:21:::1;::::0;16952:19:1;;20102:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;20215:11:0::1;::::0;20246:6:::1;::::0;-1:-1:-1;;;;;20246:6:0;;::::1;9379:7:::0;9406:16;;;;;;;;;;;;;20215:39;;-1:-1:-1;;;20215:39:0;;::::1;::::0;::::1;391:25:1::0;;;;20215:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;20215:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;20215:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;20215:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;20211:207:::0;::::1;;20326:13;:29:::0;;;;20370:10:::1;:27:::0;20211:207:::1;20428:14;:21:::0;;-1:-1:-1;;20428:21:0;;::::1;20445:4;20428:21;::::0;;;20460:23:::1;:31:::0;;;;::::1;::::0;;20516:15:::1;20502:11;:29:::0;19802:737::o;9438:165::-;9516:4;9533:40;9543:10;9555:9;9566:6;9533:9;:40::i;:::-;-1:-1:-1;9591:4:0;;9438:165;-1:-1:-1;;;9438:165:0:o;20737:296::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;20815:16:::1;::::0;::::1;::::0;::::1;;;20811:111;;;20873:4;-1:-1:-1::0;;;;;20856:22:0;::::1;::::0;20848:62:::1;;;::::0;-1:-1:-1;;;20848:62:0;;17699:2:1;20848:62:0::1;::::0;::::1;17681:21:1::0;17738:2;17718:18;;;17711:30;17777:29;17757:18;;;17750:57;17824:18;;20848:62:0::1;17497:351:1::0;20848:62:0::1;20986:6;::::0;20994:30:::1;::::0;-1:-1:-1;;;20994:30:0;;21018:4:::1;20994:30;::::0;::::1;160:74:1::0;20954:5:0;;-1:-1:-1;;;;;20971:14:0;;::::1;::::0;::::1;::::0;20986:6;;;::::1;::::0;20971:14;;20994:15:::1;::::0;133:18:1;;20994:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20971:54;::::0;-1:-1:-1;;;;;;20971:54:0::1;::::0;;;;;;-1:-1:-1;;;;;18234:55:1;;;20971:54:0::1;::::0;::::1;18216:74:1::0;18306:18;;;18299:34;18189:18;;20971:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15129:263::-:0;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;15238:19:::1;:33:::0;;-1:-1:-1;;;;15238:33:0::1;-1:-1:-1::0;;;15238:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;15282:22:::1;:47:::0;;-1:-1:-1;;15282:47:0::1;::::0;::::1;;;::::0;;15345:39:::1;::::0;1738:41:1;;;15345:39:0::1;::::0;1726:2:1;1711:18;15345:39:0::1;;;;;;;;15129:263:::0;;:::o;10595:680::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;10675:16:::1;::::0;::::1;::::0;::::1;;;10674:17;10666:60;;;::::0;-1:-1:-1;;;10666:60:0;;18796:2:1;10666:60:0::1;::::0;::::1;18778:21:1::0;18835:2;18815:18;;;18808:30;18874:32;18854:18;;;18847:60;18924:18;;10666:60:0::1;18594:354:1::0;10666:60:0::1;10737:20;10770:9;10737:43;;10791:16;10821:10;-1:-1:-1::0;;;;;10821:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10810:40:0::1;;10859:4;10866:10;-1:-1:-1::0;;;;;10866:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10810:74;::::0;-1:-1:-1;;;;;;10810:74:0::1;::::0;;;;;;-1:-1:-1;;;;;19462:15:1;;;10810:74:0::1;::::0;::::1;19444:34:1::0;19514:15;;19494:18;;;19487:43;19356:18;;10810:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10903:6;::::0;-1:-1:-1;;;;;10903:6:0;;::::1;10913:5;10895:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;10895:23:0::1;::::0;;10791:93;;-1:-1:-1;10933:22:0;::::1;10929:200;;10992:10;-1:-1:-1::0;;;;;10992:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10981:43:0::1;;11033:4;11040:10;-1:-1:-1::0;;;;;11040:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10981:77;::::0;-1:-1:-1;;;;;;10981:77:0::1;::::0;;;;;;-1:-1:-1;;;;;19462:15:1;;;10981:77:0::1;::::0;::::1;19444:34:1::0;19514:15;;19494:18;;;19487:43;19356:18;;10981:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10972:6;:86:::0;;-1:-1:-1;;;;;;10972:86:0::1;-1:-1:-1::0;;;;;10972:86:0;;;::::1;::::0;;;::::1;::::0;;10929:200:::1;;;11100:6;:17:::0;;-1:-1:-1;;;;;;11100:17:0::1;-1:-1:-1::0;;;;;11100:17:0;::::1;;::::0;;10929:200:::1;11139:9;:22:::0;;-1:-1:-1;;11139:22:0::1;;-1:-1:-1::0;;;;;11139:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;11180:6:::1;::::0;;::::1;-1:-1:-1::0;11172:15:0;;;-1:-1:-1;11172:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;11172:22:0::1;::::0;;::::1;::::0;;11237:9;;11205:62:::1;::::0;11222:4:::1;::::0;11237:9;::::1;;-1:-1:-1::0;;11205:8:0::1;:62::i;13801:191::-:0;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;-1:-1:-1;;;;;13886:23:0;::::1;13878:59;;;::::0;-1:-1:-1;;;13878:59:0;;19743:2:1;13878:59:0::1;::::0;::::1;19725:21:1::0;19782:2;19762:18;;;19755:30;19821:25;19801:18;;;19794:53;19864:18;;13878:59:0::1;19541:347:1::0;13878:59:0::1;13948:15;:36:::0;;-1:-1:-1;;;;;;13948:36:0::1;-1:-1:-1::0;;;;;13948:36:0;;;::::1;::::0;;;::::1;::::0;;13801:191::o;20547:182::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;20614:16:::1;::::0;::::1;::::0;::::1;;;20613:17;20605:58;;;::::0;-1:-1:-1;;;20605:58:0;;20095:2:1;20605:58:0::1;::::0;::::1;20077:21:1::0;20134:2;20114:18;;;20107:30;20173;20153:18;;;20146:58;20221:18;;20605:58:0::1;19893:352:1::0;20605:58:0::1;20682:6;::::0;20674:47:::1;::::0;-1:-1:-1;;;;;20682:6:0;;::::1;::::0;20699:21:::1;20674:47:::0;::::1;;;::::0;20682:6:::1;20674:47:::0;20682:6;20674:47;20699:21;20682:6;20674:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;14197:699:::0;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;14397:16;14377;4864:13:::1;4803:2;4864;:13;:::i;:::-;4847:30;::::0;4662:11:::1;4847:30;:::i;:::-;14367:26;;;;:::i;:::-;14366:47;;;;:::i;:::-;14350:13;:63:::0;14465:13;14448;4864::::1;4803:2;4864;:13;:::i;:::-;4847:30;::::0;4662:11:::1;4847:30;:::i;:::-;14438:23;;;;:::i;:::-;14437:41;;;;:::i;:::-;14424:10;:54:::0;;;14497:13:::1;::::0;:27:::1;;14489:73;;;::::0;-1:-1:-1;;;14489:73:0;;20452:2:1;14489:73:0::1;::::0;::::1;20434:21:1::0;20491:2;20471:18;;;20464:30;20530:34;20510:18;;;20503:62;-1:-1:-1;;;20581:18:1;;;20574:31;20622:19;;14489:73:0::1;20250:397:1::0;14489:73:0::1;14606:6;::::0;-1:-1:-1;;;;;14606:6:0::1;9379:7:::0;9406:16;;;;;;;;;;;5370:5:::1;::::0;14596:23:::1;::::0;14616:3:::1;14596:23;:::i;:::-;14595:44;;;;:::i;:::-;14581:10;;:58;;14573:106;;;::::0;-1:-1:-1;;;14573:106:0;;20854:2:1;14573:106:0::1;::::0;::::1;20836:21:1::0;20893:2;20873:18;;;20866:30;20932:34;20912:18;;;20905:62;-1:-1:-1;;;20983:18:1;;;20976:33;21026:19;;14573:106:0::1;20652:399:1::0;14573:106:0::1;14722:9;4864:13;4803:2;4864;:13;:::i;:::-;4847:30;::::0;4662:11:::1;4847:30;:::i;:::-;14712:19;;;;:::i;:::-;14698:10;;:33;;14690:92;;;::::0;-1:-1:-1;;;14690:92:0;;21258:2:1;14690:92:0::1;::::0;::::1;21240:21:1::0;21297:2;21277:18;;;21270:30;21336:34;21316:18;;;21309:62;-1:-1:-1;;;21387:18:1;;;21380:44;21441:19;;14690:92:0::1;21056:410:1::0;14690:92:0::1;14828:9;4864:13;4803:2;4864;:13;:::i;:::-;4847:30;::::0;4662:11:::1;4847:30;:::i;:::-;14818:19;;;;:::i;:::-;14801:13;;:36;;14793:95;;;::::0;-1:-1:-1;;;14793:95:0;;21258:2:1;14793:95:0::1;::::0;::::1;21240:21:1::0;21297:2;21277:18;;;21270:30;21336:34;21316:18;;;21309:62;-1:-1:-1;;;21387:18:1;;;21380:44;21441:19;;14793:95:0::1;21056:410:1::0;14793:95:0::1;14197:699:::0;;;;:::o;12845:148::-;7224:6;;-1:-1:-1;;;;;7224:6:0;7234:10;7224:20;7216:50;;;;-1:-1:-1;;;7216:50:0;;8723:2:1;7216:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7216:50:0;8521:341:1;7216:50:0;-1:-1:-1;;;;;12941:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;12941:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12845:148::o;9780:310::-;-1:-1:-1;;;;;9875:20:0;;9867:52;;;;-1:-1:-1;;;9867:52:0;;21673:2:1;9867:52:0;;;21655:21:1;21712:2;21692:18;;;21685:30;-1:-1:-1;;;21731:18:1;;;21724:49;21790:18;;9867:52:0;21471:343:1;9867:52:0;-1:-1:-1;;;;;9938:21:0;;9930:53;;;;-1:-1:-1;;;9930:53:0;;21673:2:1;9930:53:0;;;21655:21:1;21712:2;21692:18;;;21685:30;-1:-1:-1;;;21731:18:1;;;21724:49;21790:18;;9930:53:0;21471:343:1;9930:53:0;-1:-1:-1;;;;;9996:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10049:33;;391:25:1;;;10049:33:0;;364:18:1;10049:33:0;;;;;;;9780:310;;;:::o;16671:1783::-;16750:4;-1:-1:-1;;;;;16775:18:0;;16767:68;;;;-1:-1:-1;;;16767:68:0;;22021:2:1;16767:68:0;;;22003:21:1;22060:2;22040:18;;;22033:30;22099:34;22079:18;;;22072:62;-1:-1:-1;;;22150:18:1;;;22143:35;22195:19;;16767:68:0;21819:401:1;16767:68:0;-1:-1:-1;;;;;16854:16:0;;16846:64;;;;-1:-1:-1;;;16846:64:0;;22427:2:1;16846:64:0;;;22409:21:1;22466:2;22446:18;;;22439:30;22505:34;22485:18;;;22478:62;-1:-1:-1;;;22556:18:1;;;22549:33;22599:19;;16846:64:0;22225:399:1;16846:64:0;16938:1;16929:6;:10;16921:64;;;;-1:-1:-1;;;16921:64:0;;22831:2:1;16921:64:0;;;22813:21:1;22870:2;22850:18;;;22843:30;22909:34;22889:18;;;22882:62;-1:-1:-1;;;22960:18:1;;;22953:39;23009:19;;16921:64:0;22629:405:1;16921:64:0;-1:-1:-1;;;;;17084:13:0;;16996:8;17084:13;;;:7;:13;;;;;;16996:8;;;;17084:13;;17080:162;;;17120:4;17114:10;;17080:162;;;-1:-1:-1;;;;;17146:11:0;;;;;;:7;:11;;;;;;;;17142:100;;;17181:4;17174:11;;17142:100;;;-1:-1:-1;17226:4:0;17142:100;17256:20;17267:4;17273:2;17256:10;:20::i;:::-;17252:371;;;17297:14;;;;17293:319;;17337:5;17332:265;;17367:34;;-1:-1:-1;;;17367:34:0;;23241:2:1;17367:34:0;;;23223:21:1;23280:2;23260:18;;;23253:30;23319:26;23299:18;;;23292:54;23363:18;;17367:34:0;23039:348:1;17332:265:0;-1:-1:-1;;;;;17432:31:0;;;;;;:25;:31;;;;;;;;17431:32;:66;;;;-1:-1:-1;;;;;;17468:29:0;;;;;;:25;:29;;;;;;;;17467:30;17431:66;17427:170;;;17522:55;;-1:-1:-1;;;17522:55:0;;23594:2:1;17522:55:0;;;23576:21:1;23633:2;23613:18;;;23606:30;23672:34;23652:18;;;23645:62;-1:-1:-1;;;23723:18:1;;;23716:43;23776:19;;17522:55:0;23392:409:1;17427:170:0;17639:4;17635:742;;;17665:6;;-1:-1:-1;;;17665:6:0;;;;17660:706;;17696:19;;-1:-1:-1;;;17696:19:0;;;;:64;;;;-1:-1:-1;;;;;;17740:20:0;;;;;;:16;:20;;;;;;;;17739:21;17696:64;:111;;;;-1:-1:-1;;;;;;17785:22:0;;;;;;:16;:22;;;;;;;;17784:23;17696:111;17692:659;;;17899:4;17850:28;9406:16;;;;;;;;;;;17956:13;;17932:37;;17928:404;;18016:10;;18057:22;;;;18053:97;;;18114:13;;18104:6;;-1:-1:-1;;;;;18104:6:0;9379:7;9406:16;;;;;;;;;;;5370:5;;18094:33;;;:::i;:::-;18093:54;;;;:::i;:::-;18083:64;;18053:97;18204:7;18180:20;:31;18176:72;;18238:7;18215:30;;18176:72;18274:34;18287:20;18274:12;:34::i;:::-;17971:361;17928:404;17827:524;17692:659;18394:52;18411:4;18417:2;18421:6;18429:3;18434:4;18440:5;18394:16;:52::i;:::-;18387:59;16671:1783;-1:-1:-1;;;;;;;16671:1783:0:o;21496:817::-;-1:-1:-1;;;;;21666:25:0;;21615:4;21666:25;;;:19;:25;;;;;;21647:4;;21666:25;;;:52;;-1:-1:-1;;;;;;21695:23:0;;;;;;:19;:23;;;;;;;;21666:52;21662:99;;;-1:-1:-1;21744:5:0;21662:99;-1:-1:-1;;;;;21771:13:0;;:7;:13;;;;;;;;;;:23;;21788:6;;21771:7;:23;;21788:6;;21771:23;:::i;:::-;;;;-1:-1:-1;21805:22:0;;-1:-1:-1;21831:7:0;21830:55;;21879:6;21830:55;;;21842:34;21852:4;21858:6;21866:3;21871:4;21842:9;:34::i;:::-;21805:80;;21911:14;21896:7;:11;21904:2;-1:-1:-1;;;;;21896:11:0;-1:-1:-1;;;;;21896:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;21956:2;-1:-1:-1;;;;;21941:34:0;21950:4;-1:-1:-1;;;;;21941:34:0;;21960:14;21941:34;;;;391:25:1;;379:2;364:18;;245:177;21941:34:0;;;;;;;;21991:16;;;;;;;21986:298;;22024:28;22043:4;22049:2;22024:18;:28::i;:::-;22072:16;;;;;;;22071:17;:41;;;;;22092:20;22103:4;22109:2;22092:10;:20::i;:::-;22071:77;;;;-1:-1:-1;;;;;;22117:31:0;;;;;;:25;:31;;;;;;;;22116:32;22071:77;:111;;;;-1:-1:-1;;;;;;22153:29:0;;;;;;:25;:29;;;;;;;;22152:30;22071:111;:121;;;;;22187:5;22186:6;22071:121;22067:206;;;22213:44;;-1:-1:-1;;;22213:44:0;;24008:2:1;22213:44:0;;;23990:21:1;24047:2;24027:18;;;24020:30;24086:34;24066:18;;;24059:62;-1:-1:-1;;;24137:18:1;;;24130:32;24179:19;;22213:44:0;23806:398:1;22067:206:0;-1:-1:-1;22301:4:0;;21496:817;-1:-1:-1;;;;;;;;21496:817:0:o;16217:446::-;16318:6;;16286:4;;-1:-1:-1;;;;;16310:14:0;;;16318:6;;16310:14;;;;:43;;-1:-1:-1;16347:6:0;;-1:-1:-1;;;;;16341:12:0;;;16347:6;;16341:12;;16310:43;:79;;;;-1:-1:-1;16383:6:0;;-1:-1:-1;;;;;16383:6:0;16370:9;:19;;16310:79;:118;;;;-1:-1:-1;;;;;;16407:21:0;;;;;;:17;:21;;;;;;;;16406:22;16310:118;:159;;;;-1:-1:-1;;;;;;16446:23:0;;;;;;:17;:23;;;;;;;;16445:24;16310:159;:186;;;;-1:-1:-1;;;;;;16486:10:0;;5509:42;16486:10;;16310:186;:219;;;;-1:-1:-1;;;;;;16513:16:0;;;;16310:219;:257;;;;-1:-1:-1;;;;;;16546:21:0;;16562:4;16546:21;;16310:257;:302;;;;-1:-1:-1;16600:11:0;;-1:-1:-1;;;;;16584:28:0;;;16600:11;;;;;16584:28;;16310:302;:345;;;;-1:-1:-1;16643:11:0;;-1:-1:-1;;;;;16629:26:0;;;16643:11;;;;;16629:26;;16310:345;16303:352;16217:446;-1:-1:-1;;;16217:446:0:o;18462:761::-;6180:6;:13;;-1:-1:-1;;;;6180:13:0;-1:-1:-1;;;6180:13:0;;;18569:4:::1;6180:13:::0;18549:26;;;:11:::1;:26;::::0;;;;;;;18584:9:::1;::::0;6180:13;18584:9;::::1;-1:-1:-1::0;;;;;18584:9:0::1;18549:46:::0;;;;;;;;-1:-1:-1;;18549:67:0::1;18545:166;;18653:4;18633:26;::::0;;;:11:::1;:26;::::0;;;;;;;18668:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;18668:9:0::1;18633:46:::0;;;;;;;-1:-1:-1;;18633:66:0;;18545:166:::1;18755:16;::::0;;18769:1:::1;18755:16:::0;;;;;::::1;::::0;;18731:21:::1;::::0;18755:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18755:16:0::1;18731:40;;18800:4;18782;18787:1;18782:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18782:23:0::1;;;-1:-1:-1::0;;;;;18782:23:0::1;;;::::0;::::1;18826:9;;;;;;;;;-1:-1:-1::0;;;;;18826:9:0::1;-1:-1:-1::0;;;;;18826:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18816:4;18821:1;18816:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18816:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;18859:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;18859:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;18934:20;;18969:1:::1;::::0;18985:4;;19012::::1;::::0;19032:15:::1;::::0;18859:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;18855:246;;19083:7;;;18855:246;19149:15;::::0;:66:::1;::::0;19113:12:::1;::::0;-1:-1:-1;;;;;19149:15:0::1;::::0;19205:5:::1;::::0;19177:21:::1;::::0;19113:12;19149:66;19113:12;19149:66;19177:21;19149:15;19205:5;19149:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6204:1:0::1;-1:-1:-1::0;6216:6:0;:14;;-1:-1:-1;;;;6216:14:0;;;18462:761::o;22321:767::-;22409:7;22429:18;22462:3;22458:205;;;-1:-1:-1;22495:9:0;:16;;;22458:205;;;22533:4;22529:134;;;-1:-1:-1;22567:9:0;:17;;;;;;22529:134;;;-1:-1:-1;22630:9:0;:21;;;;;;22529:134;22685:11;;;;;-1:-1:-1;;;;;22685:11:0;22709:4;22677:37;:73;;;;;22731:13;22748:2;22731:19;;22677:73;22673:101;;;-1:-1:-1;22767:4:0;22673:101;22788:10;22802:1;22788:15;22784:39;;22814:6;22807:13;;;;;22784:39;22833:17;5370:5;22853:19;22862:10;22853:6;:19;:::i;:::-;:38;;;;:::i;:::-;22833:58;-1:-1:-1;22906:13:0;;22902:141;;22952:4;22936:7;:22;;;;;;;;;;:35;;22962:9;;22936:7;:35;;22962:9;;22936:35;:::i;:::-;;;;-1:-1:-1;;22991:40:0;;391:25:1;;;23014:4:0;;-1:-1:-1;;;;;22991:40:0;;;;;379:2:1;364:18;22991:40:0;;;;;;;22902:141;23062:18;23071:9;23062:6;:18;:::i;19231:563::-;19314:16;;;;;;;19313:17;19305:65;;;;-1:-1:-1;;;19305:65:0;;25652:2:1;19305:65:0;;;25634:21:1;25691:2;25671:18;;;25664:30;25730:34;25710:18;;;25703:62;-1:-1:-1;;;25781:18:1;;;25774:33;25824:19;;19305:65:0;25450:399:1;19305:65:0;19386:20;19397:4;19403:2;19386:10;:20::i;:::-;19385:21;:37;;;;-1:-1:-1;19416:6:0;;-1:-1:-1;;;;;19410:12:0;;;19416:6;;19410:12;19385:37;19381:406;;;-1:-1:-1;;;;;19439:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;19439:30:0;;;19465:4;19439:30;;;;;;19484:19;:25;;;;;:32;;;;;;;;;;19531:16;:23;;-1:-1:-1;;19531:23:0;19439:30;19531:23;;;;;19581:11;;;;19569:114;;19627:11;:40;;-1:-1:-1;;;;;;19627:40:0;19661:4;19627:40;;;;;19569:114;19697:19;:26;;-1:-1:-1;;;;19697:26:0;-1:-1:-1;;;19697:26:0;;;19743:32;;-1:-1:-1;1738:41:1;;19743:32:0;;1726:2:1;1711:18;19743:32:0;1598:187:1;797:548;909:4;938:2;967;956:9;949:21;999:6;993:13;1042:6;1037:2;1026:9;1022:18;1015:34;1067:1;1077:140;1091:6;1088:1;1085:13;1077:140;;;1186:14;;;1182:23;;1176:30;1152:17;;;1171:2;1148:26;1141:66;1106:10;;1077:140;;;1081:3;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1336:2;1329;1325:7;1320:2;1312:6;1308:15;1304:29;1293:9;1289:45;1285:54;1277:62;;;;797:548;;;;:::o;1790:154::-;-1:-1:-1;;;;;1869:5:1;1865:54;1858:5;1855:65;1845:93;;1934:1;1931;1924:12;1949:315;2017:6;2025;2078:2;2066:9;2057:7;2053:23;2049:32;2046:52;;;2094:1;2091;2084:12;2046:52;2133:9;2120:23;2152:31;2177:5;2152:31;:::i;:::-;2202:5;2254:2;2239:18;;;;2226:32;;-1:-1:-1;;;1949:315:1:o;2269:247::-;2328:6;2381:2;2369:9;2360:7;2356:23;2352:32;2349:52;;;2397:1;2394;2387:12;2349:52;2436:9;2423:23;2455:31;2480:5;2455:31;:::i;2521:388::-;2589:6;2597;2650:2;2638:9;2629:7;2625:23;2621:32;2618:52;;;2666:1;2663;2656:12;2618:52;2705:9;2692:23;2724:31;2749:5;2724:31;:::i;:::-;2774:5;-1:-1:-1;2831:2:1;2816:18;;2803:32;2844:33;2803:32;2844:33;:::i;:::-;2896:7;2886:17;;;2521:388;;;;;:::o;2914:456::-;2991:6;2999;3007;3060:2;3048:9;3039:7;3035:23;3031:32;3028:52;;;3076:1;3073;3066:12;3028:52;3115:9;3102:23;3134:31;3159:5;3134:31;:::i;:::-;3184:5;-1:-1:-1;3241:2:1;3226:18;;3213:32;3254:33;3213:32;3254:33;:::i;:::-;2914:456;;3306:7;;-1:-1:-1;;;3360:2:1;3345:18;;;;3332:32;;2914:456::o;3375:127::-;3436:10;3431:3;3427:20;3424:1;3417:31;3467:4;3464:1;3457:15;3491:4;3488:1;3481:15;3507:275;3578:2;3572:9;3643:2;3624:13;;-1:-1:-1;;3620:27:1;3608:40;;3678:18;3663:34;;3699:22;;;3660:62;3657:88;;;3725:18;;:::i;:::-;3761:2;3754:22;3507:275;;-1:-1:-1;3507:275:1:o;3787:183::-;3847:4;3880:18;3872:6;3869:30;3866:56;;;3902:18;;:::i;:::-;-1:-1:-1;3947:1:1;3943:14;3959:4;3939:25;;3787:183::o;3975:662::-;4029:5;4082:3;4075:4;4067:6;4063:17;4059:27;4049:55;;4100:1;4097;4090:12;4049:55;4136:6;4123:20;4162:4;4186:60;4202:43;4242:2;4202:43;:::i;:::-;4186:60;:::i;:::-;4280:15;;;4366:1;4362:10;;;;4350:23;;4346:32;;;4311:12;;;;4390:15;;;4387:35;;;4418:1;4415;4408:12;4387:35;4454:2;4446:6;4442:15;4466:142;4482:6;4477:3;4474:15;4466:142;;;4548:17;;4536:30;;4586:12;;;;4499;;4466:142;;;-1:-1:-1;4626:5:1;3975:662;-1:-1:-1;;;;;;3975:662:1:o;4642:1215::-;4760:6;4768;4821:2;4809:9;4800:7;4796:23;4792:32;4789:52;;;4837:1;4834;4827:12;4789:52;4877:9;4864:23;4906:18;4947:2;4939:6;4936:14;4933:34;;;4963:1;4960;4953:12;4933:34;5001:6;4990:9;4986:22;4976:32;;5046:7;5039:4;5035:2;5031:13;5027:27;5017:55;;5068:1;5065;5058:12;5017:55;5104:2;5091:16;5126:4;5150:60;5166:43;5206:2;5166:43;:::i;5150:60::-;5244:15;;;5326:1;5322:10;;;;5314:19;;5310:28;;;5275:12;;;;5350:19;;;5347:39;;;5382:1;5379;5372:12;5347:39;5406:11;;;;5426:217;5442:6;5437:3;5434:15;5426:217;;;5522:3;5509:17;5539:31;5564:5;5539:31;:::i;:::-;5583:18;;5459:12;;;;5621;;;;5426:217;;;5662:5;-1:-1:-1;;5705:18:1;;5692:32;;-1:-1:-1;;5736:16:1;;;5733:36;;;5765:1;5762;5755:12;5733:36;;5788:63;5843:7;5832:8;5821:9;5817:24;5788:63;:::i;:::-;5778:73;;;4642:1215;;;;;:::o;6051:159::-;6118:20;;6178:6;6167:18;;6157:29;;6147:57;;6200:1;6197;6190:12;6147:57;6051:159;;;:::o;6215:328::-;6289:6;6297;6305;6358:2;6346:9;6337:7;6333:23;6329:32;6326:52;;;6374:1;6371;6364:12;6326:52;6397:28;6415:9;6397:28;:::i;:::-;6387:38;;6444:37;6477:2;6466:9;6462:18;6444:37;:::i;:::-;6434:47;;6500:37;6533:2;6522:9;6518:18;6500:37;:::i;:::-;6490:47;;6215:328;;;;;:::o;6548:180::-;6607:6;6660:2;6648:9;6639:7;6635:23;6631:32;6628:52;;;6676:1;6673;6666:12;6628:52;-1:-1:-1;6699:23:1;;6548:180;-1:-1:-1;6548:180:1:o;6733:118::-;6819:5;6812:13;6805:21;6798:5;6795:32;6785:60;;6841:1;6838;6831:12;6856:382;6921:6;6929;6982:2;6970:9;6961:7;6957:23;6953:32;6950:52;;;6998:1;6995;6988:12;6950:52;7037:9;7024:23;7056:31;7081:5;7056:31;:::i;:::-;7106:5;-1:-1:-1;7163:2:1;7148:18;;7135:32;7176:30;7135:32;7176:30;:::i;7490:376::-;7552:6;7560;7613:2;7601:9;7592:7;7588:23;7584:32;7581:52;;;7629:1;7626;7619:12;7581:52;7668:9;7655:23;7687:28;7709:5;7687:28;:::i;8131:385::-;8217:6;8225;8233;8241;8294:3;8282:9;8273:7;8269:23;8265:33;8262:53;;;8311:1;8308;8301:12;8262:53;-1:-1:-1;;8334:23:1;;;8404:2;8389:18;;8376:32;;-1:-1:-1;8455:2:1;8440:18;;8427:32;;8506:2;8491:18;8478:32;;-1:-1:-1;8131:385:1;-1:-1:-1;8131:385:1:o;9207:127::-;9268:10;9263:3;9259:20;9256:1;9249:31;9299:4;9296:1;9289:15;9323:4;9320:1;9313:15;9339:422;9428:1;9471:5;9428:1;9485:270;9506:7;9496:8;9493:21;9485:270;;;9565:4;9561:1;9557:6;9553:17;9547:4;9544:27;9541:53;;;9574:18;;:::i;:::-;9624:7;9614:8;9610:22;9607:55;;;9644:16;;;;9607:55;9723:22;;;;9683:15;;;;9485:270;;;9489:3;9339:422;;;;;:::o;9766:806::-;9815:5;9845:8;9835:80;;-1:-1:-1;9886:1:1;9900:5;;9835:80;9934:4;9924:76;;-1:-1:-1;9971:1:1;9985:5;;9924:76;10016:4;10034:1;10029:59;;;;10102:1;10097:130;;;;10009:218;;10029:59;10059:1;10050:10;;10073:5;;;10097:130;10134:3;10124:8;10121:17;10118:43;;;10141:18;;:::i;:::-;-1:-1:-1;;10197:1:1;10183:16;;10212:5;;10009:218;;10311:2;10301:8;10298:16;10292:3;10286:4;10283:13;10279:36;10273:2;10263:8;10260:16;10255:2;10249:4;10246:12;10242:35;10239:77;10236:159;;;-1:-1:-1;10348:19:1;;;10380:5;;10236:159;10427:34;10452:8;10446:4;10427:34;:::i;:::-;10497:6;10493:1;10489:6;10485:19;10476:7;10473:32;10470:58;;;10508:18;;:::i;:::-;10546:20;;9766:806;-1:-1:-1;;;9766:806:1:o;10577:140::-;10635:5;10664:47;10705:4;10695:8;10691:19;10685:4;10664:47;:::i;10722:168::-;10795:9;;;10826;;10843:15;;;10837:22;;10823:37;10813:71;;10864:18;;:::i;10895:128::-;10962:9;;;10983:11;;;10980:37;;;10997:18;;:::i;11378:127::-;11439:10;11434:3;11430:20;11427:1;11420:31;11470:4;11467:1;11460:15;11494:4;11491:1;11484:15;11857:197;11895:3;11923:6;11964:2;11957:5;11953:14;11991:2;11982:7;11979:15;11976:41;;11997:18;;:::i;:::-;12046:1;12033:15;;11857:197;-1:-1:-1;;;11857:197:1:o;12059:125::-;12124:9;;;12145:10;;;12142:36;;;12158:18;;:::i;12887:217::-;12927:1;12953;12943:132;;12997:10;12992:3;12988:20;12985:1;12978:31;13032:4;13029:1;13022:15;13060:4;13057:1;13050:15;12943:132;-1:-1:-1;13089:9:1;;12887:217::o;14233:385::-;14312:6;14320;14373:2;14361:9;14352:7;14348:23;14344:32;14341:52;;;14389:1;14386;14379:12;14341:52;14421:9;14415:16;14440:31;14465:5;14440:31;:::i;:::-;14540:2;14525:18;;14519:25;14490:5;;-1:-1:-1;14553:33:1;14519:25;14553:33;:::i;17247:245::-;17326:6;17334;17387:2;17375:9;17366:7;17362:23;17358:32;17355:52;;;17403:1;17400;17393:12;17355:52;-1:-1:-1;;17426:16:1;;17482:2;17467:18;;;17461:25;17426:16;;17461:25;;-1:-1:-1;17247:245:1:o;17853:184::-;17923:6;17976:2;17964:9;17955:7;17951:23;17947:32;17944:52;;;17992:1;17989;17982:12;17944:52;-1:-1:-1;18015:16:1;;17853:184;-1:-1:-1;17853:184:1:o;18344:245::-;18411:6;18464:2;18452:9;18443:7;18439:23;18435:32;18432:52;;;18480:1;18477;18470:12;18432:52;18512:9;18506:16;18531:28;18553:5;18531:28;:::i;18953:251::-;19023:6;19076:2;19064:9;19055:7;19051:23;19047:32;19044:52;;;19092:1;19089;19082:12;19044:52;19124:9;19118:16;19143:31;19168:5;19143:31;:::i;24209:1026::-;24471:4;24519:3;24508:9;24504:19;24550:6;24539:9;24532:25;24576:2;24614:6;24609:2;24598:9;24594:18;24587:34;24657:3;24652:2;24641:9;24637:18;24630:31;24681:6;24716;24710:13;24747:6;24739;24732:22;24785:3;24774:9;24770:19;24763:26;;24824:2;24816:6;24812:15;24798:29;;24845:1;24855:218;24869:6;24866:1;24863:13;24855:218;;;24934:13;;-1:-1:-1;;;;;24930:62:1;24918:75;;25048:15;;;;25013:12;;;;24891:1;24884:9;24855:218;;;-1:-1:-1;;;;;;;25129:55:1;;;;25124:2;25109:18;;25102:83;-1:-1:-1;;;25216:3:1;25201:19;25194:35;25090:3;24209:1026;-1:-1:-1;;;24209:1026:1:o

Swarm Source

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