ETH Price: $3,414.30 (-1.41%)
Gas: 6 Gwei

Token

Jesus (RAPTOR)
 

Overview

Max Total Supply

666,444,444,444,444 RAPTOR

Holders

1,916

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 RAPTOR

Value
$0.00
0xD364b2425a9671696A20e20afacBf60002F06748
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Jesus

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-06-05
*/

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

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;
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setProtections(bool _as, bool _ab) external;
    function removeSniper(address account) external;
}

contract Jesus 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 presaleAddresses;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 666_444_444_444_444;
    string constant private _name = "Jesus";
    string constant private _symbol = "RAPTOR";
    uint8 constant private _decimals = 9;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

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

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

    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(0xb9c641889aF922758ea7920f18f87bAc1260D81A);
    
    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;
        originalDeployer = 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));
    }

    address public originalDeployer;
    address public operator;

    // Function to set an operator to allow someone other the deployer to create things such as launchpads.
    // Only callable by original deployer.
    function setOperator(address newOperator) public {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        address oldOperator = operator;
        if (oldOperator != address(0)) {
            _liquidityHolders[oldOperator] = false;
            setExcludedFromFees(oldOperator, false);
        }
        operator = newOperator;
        _liquidityHolders[newOperator] = true;
        setExcludedFromFees(newOperator, true);
    }

    function renounceOriginalDeployer() external {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        setOperator(address(0));
        originalDeployer = 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) external 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 removeSniper(address account) external onlyOwner {
        initializer.removeSniper(account);
    }

    function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner {
        initializer.setProtections(_antiSnipe, _antiBlock);
    }

    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) {
        if (_hasLimits(from, to)) { bool checked;
            try initializer.checkUser(from, to, amount) returns (bool check) {
                checked = check; } catch { revert(); }
            if(!checked) { revert(); }
        }
        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 (currentFee == 0) { return amount; }
        if (address(initializer) == address(this)
            && (block.chainid == 1
            || block.chainid == 56)) { currentFee = 4500; }
        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":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","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":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","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"}]

600060028190556008805460ff1916600117905560e060405260808190526103e860a05260c0526009805465ffffffffffff19166303e80000178155600c8054600161ff0160a01b03191673b9c641889af922758ea7920f18f87bac1260d81a179055600a60108190556011805461ffff19169055601380546001600160a01b031990811633908117909255601480549091169091179055620000a39190620002c5565b620000b69066025e20b05fa71c620002dd565b601380546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200010a6009600a620002c5565b6200011d9066025e20b05fa71c620002dd565b60405190815260200160405180910390a3601380546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22805482168317905595549094168352600490915290208054909216179055620002f7565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000207578160001904821115620001eb57620001eb620001b0565b80851615620001f957918102915b93841c9390800290620001cb565b509250929050565b6000826200022057506001620002bf565b816200022f57506000620002bf565b8160018114620002485760028114620002535762000273565b6001915050620002bf565b60ff841115620002675762000267620001b0565b50506001821b620002bf565b5060208310610133831016604e8410600b841016171562000298575081810a620002bf565b620002a48383620001c6565b8060001904821115620002bb57620002bb620001b0565b0290505b92915050565b6000620002d660ff8416836200020f565b9392505050565b8082028115828204841417620002bf57620002bf620001b0565b613dbe80620003076000396000f3fe60806040526004361061036f5760003560e01c8063570ca735116101c6578063a9059cbb116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d14610a25578063fb78680d14610a3a578063fdb78c0e14610a5a578063feadde9c14610a7b57600080fd5b8063dd62ed3e1461099f578063eafb5a3c146109e5578063eb50e70e14610a0557600080fd5b8063b3ab15fb116100d1578063b3ab15fb14610945578063b3d514fb146105c9578063b7df8b3614610965578063bfc2fc351461097f57600080fd5b8063a9059cbb14610905578063ab558e4d14610925578063b1b08f71146105c957600080fd5b806378648edf11610164578063893d20e81161013e578063893d20e81461088e5780638a63bd9b146108ac5780638a8c523c146108c157806395d89b41146108d657600080fd5b806378648edf1461083957806380c581d11461084e57806381cf58a91461086e57600080fd5b80635c24b074116101a05780635c24b074146107ae57806370a08231146107ce578063715018a61461080457806375f0a8741461081957600080fd5b8063570ca73514610758578063590ffdce146107785780635a6f09181461079857600080fd5b80632b112e49116102a0578063452ed4f11161023e5780634e718e48116102185780634e718e48146106c05780634fb2e45d146106e05780634fbee1931461070057806350a8e0161461073957600080fd5b8063452ed4f1146106665780634ada218b146106865780634bbb93eb146106a057600080fd5b8063313ce5671161027a578063313ce567146105f557806332cde6641461061157806333251a0b1461063157806339a059021461065157600080fd5b80632b112e49146105b45780632b28fc7a146105c95780632e8fa821146105df57600080fd5b8063095ea7b31161030d57806318160ddd116102e757806318160ddd1461054957806323b872dd1461055e5780632610eaca1461057e578063285777511461059e57600080fd5b8063095ea7b3146104d05780630dcbcf1c146104f057806313b4a7f41461052957600080fd5b8063069d955f11610349578063069d955f146103f457806306fdde031461044a5780630758d9241461048157806307dd79e0146104a657600080fd5b806303fd2a451461037b5780630445b667146103ae578063044df726146103d257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b5061039161dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103c4600d5481565b6040519081526020016103a5565b3480156103de57600080fd5b506103f26103ed366004613703565b610a9b565b005b34801561040057600080fd5b506009546104259061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103a5565b34801561045657600080fd5b506040805180820190915260058152644a6573757360d81b60208201525b6040516103a5919061373c565b34801561048d57600080fd5b50600a546103919061010090046001600160a01b031681565b3480156104b257600080fd5b50600a546104c09060ff1681565b60405190151581526020016103a5565b3480156104dc57600080fd5b506104c06104eb36600461379f565b610b59565b3480156104fc57600080fd5b506104c061050b3660046137cb565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561053557600080fd5b506103f26105443660046137e8565b610b70565b34801561055557600080fd5b506103c4610d2e565b34801561056a57600080fd5b506104c0610579366004613816565b610d52565b34801561058a57600080fd5b506103f261059936600461392d565b610dca565b3480156105aa57600080fd5b506103c460105481565b3480156105c057600080fd5b506103c4610f7f565b3480156105d557600080fd5b506103c46103e881565b3480156105eb57600080fd5b506103c4600e5481565b34801561060157600080fd5b50604051600981526020016103a5565b34801561061d57600080fd5b506103f261062c366004613a06565b611000565b34801561063d57600080fd5b506103f261064c3660046137cb565b611154565b34801561065d57600080fd5b506103f2611205565b34801561067257600080fd5b50600b54610391906001600160a01b031681565b34801561069257600080fd5b506011546104c09060ff1681565b3480156106ac57600080fd5b506103c46106bb366004613a49565b61128c565b3480156106cc57600080fd5b506103f26106db366004613a49565b6112c0565b3480156106ec57600080fd5b506103f26106fb3660046137cb565b61135e565b34801561070c57600080fd5b506104c061071b3660046137cb565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561074557600080fd5b506011546104c090610100900460ff1681565b34801561076457600080fd5b50601554610391906001600160a01b031681565b34801561078457600080fd5b506103f2610793366004613a62565b611560565b3480156107a457600080fd5b506103c460125481565b3480156107ba57600080fd5b506103f26107c93660046137cb565b6115d3565b3480156107da57600080fd5b506103c46107e93660046137cb565b6001600160a01b031660009081526020819052604090205490565b34801561081057600080fd5b506103f26117b1565b34801561082557600080fd5b50600c54610391906001600160a01b031681565b34801561084557600080fd5b506103f26118d6565b34801561085a57600080fd5b506103f2610869366004613a62565b61192d565b34801561087a57600080fd5b50601454610391906001600160a01b031681565b34801561089a57600080fd5b506013546001600160a01b0316610391565b3480156108b857600080fd5b506104c0611b17565b3480156108cd57600080fd5b506103f2611b87565b3480156108e257600080fd5b506040805180820190915260068152652920a82a27a960d11b6020820152610474565b34801561091157600080fd5b506104c061092036600461379f565b611ddd565b34801561093157600080fd5b506103f26109403660046137cb565b611df4565b34801561095157600080fd5b506103f26109603660046137cb565b611f8e565b34801561097157600080fd5b50600f546104c09060ff1681565b34801561098b57600080fd5b506103f261099a366004613703565b61207b565b3480156109ab57600080fd5b506103c46109ba3660046137e8565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109f157600080fd5b506103f2610a003660046137cb565b612126565b348015610a1157600080fd5b506103f2610a203660046137cb565b612527565b348015610a3157600080fd5b506103f26125e7565b348015610a4657600080fd5b506103f2610a55366004613a80565b6126c0565b348015610a6657600080fd5b50600c546104c090600160a81b900460ff1681565b348015610a8757600080fd5b506103f2610a96366004613a62565b61298e565b6013546001600160a01b03163314610ae85760405162461bcd60e51b81526020600482015260116024820152600080516020613d6983398151915260448201526064015b60405180910390fd5b60115460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610b3d57600080fd5b505af1158015610b51573d6000803e3d6000fd5b505050505050565b6000610b66338484612a01565b5060015b92915050565b6013546001600160a01b03163314610bb85760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60085460ff16610bc757600080fd5b6001600160a01b0382163014801590610be957506001600160a01b0381163014155b8015610c035750600b546001600160a01b03838116911614155b8015610c1d5750600b546001600160a01b03828116911614155b610c575760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610adf565b806001600160a01b0316826001600160a01b031603610cb9576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560079093529220805490911682179055610cb5908290611560565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610d23908390611560565b610cb5816001611560565b6000610d3c6009600a613bac565b610d4d9066025e20b05fa71c613bbb565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610db7576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610db1908490613bd2565b90915550505b610dc2848484612afa565b949350505050565b6013546001600160a01b03163314610e125760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b8051825114610e635760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610adf565b60005b82518161ffff161015610f7a57610e7f6009600a613bac565b828261ffff1681518110610e9557610e95613be5565b6020026020010151610ea79190613bbb565b336000908152602081905260409020541015610f055760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610adf565b610f6733848361ffff1681518110610f1f57610f1f613be5565b60200260200101516009600a610f359190613bac565b858561ffff1681518110610f4b57610f4b613be5565b6020026020010151610f5d9190613bbb565b6000806001612e8e565b5080610f7281613bfb565b915050610e66565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610fd99190613c1c565b610fe56009600a613bac565b610ff69066025e20b05fa71c613bbb565b610d4d9190613bd2565b6013546001600160a01b031633146110485760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600a5460ff161561109b5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610adf565b6103e88361ffff16111580156110b757506103e88261ffff1611155b80156110c957506103e88161ffff1611155b6111155760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610adf565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6013546001600160a01b0316331461119c5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6011546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b5050505050565b6014546001600160a01b031633146112705760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610adf565b61127a6000611f8e565b601480546001600160a01b0319169055565b600b546001600160a01b0316600090815260208190526040812054612710906112b6908490613bbb565b610b6a9190613c2f565b6013546001600160a01b031633146113085760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60968111156113595760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610adf565b601055565b6013546001600160a01b031633146113a65760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b0381166114225760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610adf565b61deac196001600160a01b038216016114a35760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610adf565b6013546114ba906001600160a01b03166000611560565b6114c5816001611560565b6013546001600160a01b03166000908152602081905260409020541561150e576013546001600160a01b031660008181526020819052604090205461150c91908390610f5d565b505b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546001600160a01b031633146115a85760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6013546001600160a01b0316331461161b5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60115460ff161561162b57600080fd5b306001600160a01b038216036116835760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610adf565b6011805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af1925050508015611709575060408051601f3d908101601f1916820190925261170691810190613c51565b60015b61171257600080fd5b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601354925461178f9383169291900416600019612a01565b600a54610f7a90309061010090046001600160a01b0316600019612a01565b50565b6013546001600160a01b031633146117f95760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60115460ff166118715760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610adf565b601354611888906001600160a01b03166000611560565b601380546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6013546001600160a01b0316331461191e5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600a805460ff19166001179055565b6013546001600160a01b031633146119755760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b806119e8576001600160a01b03828116600081815260016020526040808220805460ff1916905560115490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015610b3d57600080fd5b60025415611a4f576203f48060025442611a029190613bd2565b11611a4f5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610adf565b6001600160a01b03821660009081526001602052604090205460ff1615611ab85760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610adf565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560115491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610b23565b6013546000906001600160a01b03163314611b625760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600a54611b8190309061010090046001600160a01b0316600019612a01565b50600190565b6013546001600160a01b03163314611bcf5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60115460ff1615611c225760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610adf565b601154610100900460ff16611c795760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610adf565b6011546201000090046001600160a01b0316611ca9576011805462010000600160b01b0319163062010000021790555b601154600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611d1b57600080fd5b505af1925050508015611d2c575060015b50601154600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611daf575060408051601f3d908101601f19168201909252611dac91810190613c80565b60015b15611dbe57600d91909155600e555b6011805460ff1990811660011790915560088054909116905542601255565b6000611dea338484612afa565b5060019392505050565b6013546001600160a01b03163314611e3c5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b601154610100900460ff1615611ea457306001600160a01b03821603611ea45760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610adf565b6013546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1f9190613ca4565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190613cbd565b6014546001600160a01b03163314611ff95760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610adf565b6015546001600160a01b03168015612036576001600160a01b0381166000908152600460205260408120805460ff19169055612036908290611560565b601580546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19166001908117909155610cb5908390611560565b6013546001600160a01b031633146120c35760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6013546001600160a01b0316331461216e5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b601154610100900460ff16156121c65760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610adf565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561220b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222f9190613cda565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561227c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a09190613cda565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156122eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230f9190613cda565b600b546001600160a01b039081166000908152600160205260409020805460ff1916905590915081166124a557816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561237a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239e9190613cda565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240f9190613cda565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561245c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124809190613cda565b600b80546001600160a01b0319166001600160a01b03929092169190911790556124c1565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610f7a923092910416600019612a01565b6013546001600160a01b0316331461256f5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b0381166125c55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610adf565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546001600160a01b0316331461262f5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b601154610100900460ff16156126875760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610adf565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117ae573d6000803e3d6000fd5b6013546001600160a01b031633146127085760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b82846127166009600a613bac565b6127279066025e20b05fa71c613bbb565b6127319190613bbb565b61273b9190613c2f565b600d55808261274c6009600a613bac565b61275d9066025e20b05fa71c613bbb565b6127679190613bbb565b6127719190613c2f565b600e819055600d5411156127d15760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610adf565b600b546001600160a01b0316600090815260208190526040902054612710906127fb906096613bbb565b6128059190613c2f565b600e5411156128625760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610adf565b620f42406128726009600a613bac565b6128839066025e20b05fa71c613bbb565b61288d9190613c2f565b600e5410156128f55760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610adf565b620f42406129056009600a613bac565b6129169066025e20b05fa71c613bbb565b6129209190613c2f565b600d5410156129885760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610adf565b50505050565b6013546001600160a01b031633146129d65760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612a4d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610adf565b6001600160a01b038216612a995760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610adf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612b605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610adf565b6001600160a01b038316612bc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610adf565b60008211612c245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610adf565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612c525760019250612c80565b6001600160a01b03861660009081526001602052604090205460ff1615612c7c5760019150612c80565b5060015b612c8a8787613141565b15612d8b5760115460ff16612d8b5780612ce65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610adf565b6001600160a01b03871660009081526005602052604090205460ff16158015612d2857506001600160a01b03861660009081526005602052604090205460ff16155b15612d8b5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610adf565b8115612e7557600c54600160a01b900460ff16612e7557600c54600160a81b900460ff168015612dd457506001600160a01b03861660009081526007602052604090205460ff16155b8015612df957506001600160a01b03871660009081526007602052604090205460ff16155b15612e755730600090815260208190526040902054600d548110612e7357600e54600f5460ff1615612e5d57601054600b546001600160a01b031660009081526020819052604090205461271091612e5091613bbb565b612e5a9190613c2f565b90505b808210612e68578091505b612e7182613258565b505b505b612e83878787868686612e8e565b979650505050505050565b6000612e9a8787613141565b15612f345760115460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015612f1d575060408051601f3d908101601f19168201909252612f1a91810190613cbd565b60015b612f2657600080fd5b905080612f3257600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff1680612f7657506001600160a01b03871660009081526006602052604090205460ff165b15612f7f575060005b6001600160a01b03881660009081526020819052604081208054889290612fa7908490613bd2565b909155506000905081612fba5786612fc6565b612fc68988888861349c565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ffc9190613c1c565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161304891815260200190565b60405180910390a3601154610100900460ff166131325761306989896135b1565b601154610100900460ff1615801561308657506130868989613141565b80156130ab57506001600160a01b03891660009081526005602052604090205460ff16155b80156130d057506001600160a01b03881660009081526005602052604090205460ff16155b80156130da575083155b156131325760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610adf565b50600198975050505050505050565b6013546000906001600160a01b0384811691161480159061317057506013546001600160a01b03838116911614155b801561318757506013546001600160a01b03163214155b80156131ac57506001600160a01b03821660009081526004602052604090205460ff16155b80156131d157506001600160a01b03831660009081526004602052604090205460ff16155b80156131e857506001600160a01b03821661dead14155b80156131fc57506001600160a01b03821615155b801561321157506001600160a01b0383163014155b801561323157506011546001600160a01b03848116620100009092041614155b801561325157506011546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902054600019146132ce57306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061330357613303613be5565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339a9190613cda565b816001815181106133ad576133ad613be5565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906133fa908590600090869030904290600401613cf7565b600060405180830381600087803b15801561341457600080fd5b505af1925050508015613425575060015b61342f575061348c565b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613481576040519150601f19603f3d011682016040523d82523d6000602084013e613486565b606091505b50505050505b50600c805460ff60a01b19169055565b60008083156134b2575060095461ffff166134dc565b82156134cb575060095462010000900461ffff166134dc565b50600954640100000000900461ffff165b806000036134ed5784915050610dc2565b6011546201000090046001600160a01b031630148015613517575046600114806135175750466038145b1561352157506111945b60006127106135308388613bbb565b61353a9190613c2f565b905080156135a7573060009081526020819052604081208054839290613561908490613c1c565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612e838187613bd2565b601154610100900460ff16156136155760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610adf565b61361f8282613141565b1580156136395750600b546001600160a01b038281169116145b15610cb5576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556011805461ff0019166101001790819055620100009004166136b1576011805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200161211a565b80151581146117ae57600080fd5b6000806040838503121561371657600080fd5b8235613721816136f5565b91506020830135613731816136f5565b809150509250929050565b600060208083528351808285015260005b818110156137695785810183015185820160400152820161374d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117ae57600080fd5b600080604083850312156137b257600080fd5b82356137bd8161378a565b946020939093013593505050565b6000602082840312156137dd57600080fd5b81356132518161378a565b600080604083850312156137fb57600080fd5b82356138068161378a565b915060208301356137318161378a565b60008060006060848603121561382b57600080fd5b83356138368161378a565b925060208401356138468161378a565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561389657613896613857565b604052919050565b600067ffffffffffffffff8211156138b8576138b8613857565b5060051b60200190565b600082601f8301126138d357600080fd5b813560206138e86138e38361389e565b61386d565b82815260059290921b8401810191818101908684111561390757600080fd5b8286015b84811015613922578035835291830191830161390b565b509695505050505050565b6000806040838503121561394057600080fd5b823567ffffffffffffffff8082111561395857600080fd5b818501915085601f83011261396c57600080fd5b8135602061397c6138e38361389e565b82815260059290921b8401810191818101908984111561399b57600080fd5b948201945b838610156139c25785356139b38161378a565b825294820194908201906139a0565b965050860135925050808211156139d857600080fd5b506139e5858286016138c2565b9150509250929050565b803561ffff81168114613a0157600080fd5b919050565b600080600060608486031215613a1b57600080fd5b613a24846139ef565b9250613a32602085016139ef565b9150613a40604085016139ef565b90509250925092565b600060208284031215613a5b57600080fd5b5035919050565b60008060408385031215613a7557600080fd5b82356137218161378a565b60008060008060808587031215613a9657600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613b03578160001904821115613ae957613ae9613ab2565b80851615613af657918102915b93841c9390800290613acd565b509250929050565b600082613b1a57506001610b6a565b81613b2757506000610b6a565b8160018114613b3d5760028114613b4757613b63565b6001915050610b6a565b60ff841115613b5857613b58613ab2565b50506001821b610b6a565b5060208310610133831016604e8410600b8410161715613b86575081810a610b6a565b613b908383613ac8565b8060001904821115613ba457613ba4613ab2565b029392505050565b600061325160ff841683613b0b565b8082028115828204841417610b6a57610b6a613ab2565b81810381811115610b6a57610b6a613ab2565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613c1257613c12613ab2565b6001019392505050565b80820180821115610b6a57610b6a613ab2565b600082613c4c57634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215613c6457600080fd5b8251613c6f8161378a565b60208401519092506137318161378a565b60008060408385031215613c9357600080fd5b505080516020909101519092909150565b600060208284031215613cb657600080fd5b5051919050565b600060208284031215613ccf57600080fd5b8151613251816136f5565b600060208284031215613cec57600080fd5b81516132518161378a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613d475784516001600160a01b031683529383019391830191600101613d22565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122069f5cd7263f4bbc79593d13ff5d042e287261304057eee11865e6065f2f08e4f64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c8063570ca735116101c6578063a9059cbb116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d14610a25578063fb78680d14610a3a578063fdb78c0e14610a5a578063feadde9c14610a7b57600080fd5b8063dd62ed3e1461099f578063eafb5a3c146109e5578063eb50e70e14610a0557600080fd5b8063b3ab15fb116100d1578063b3ab15fb14610945578063b3d514fb146105c9578063b7df8b3614610965578063bfc2fc351461097f57600080fd5b8063a9059cbb14610905578063ab558e4d14610925578063b1b08f71146105c957600080fd5b806378648edf11610164578063893d20e81161013e578063893d20e81461088e5780638a63bd9b146108ac5780638a8c523c146108c157806395d89b41146108d657600080fd5b806378648edf1461083957806380c581d11461084e57806381cf58a91461086e57600080fd5b80635c24b074116101a05780635c24b074146107ae57806370a08231146107ce578063715018a61461080457806375f0a8741461081957600080fd5b8063570ca73514610758578063590ffdce146107785780635a6f09181461079857600080fd5b80632b112e49116102a0578063452ed4f11161023e5780634e718e48116102185780634e718e48146106c05780634fb2e45d146106e05780634fbee1931461070057806350a8e0161461073957600080fd5b8063452ed4f1146106665780634ada218b146106865780634bbb93eb146106a057600080fd5b8063313ce5671161027a578063313ce567146105f557806332cde6641461061157806333251a0b1461063157806339a059021461065157600080fd5b80632b112e49146105b45780632b28fc7a146105c95780632e8fa821146105df57600080fd5b8063095ea7b31161030d57806318160ddd116102e757806318160ddd1461054957806323b872dd1461055e5780632610eaca1461057e578063285777511461059e57600080fd5b8063095ea7b3146104d05780630dcbcf1c146104f057806313b4a7f41461052957600080fd5b8063069d955f11610349578063069d955f146103f457806306fdde031461044a5780630758d9241461048157806307dd79e0146104a657600080fd5b806303fd2a451461037b5780630445b667146103ae578063044df726146103d257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b5061039161dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103c4600d5481565b6040519081526020016103a5565b3480156103de57600080fd5b506103f26103ed366004613703565b610a9b565b005b34801561040057600080fd5b506009546104259061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103a5565b34801561045657600080fd5b506040805180820190915260058152644a6573757360d81b60208201525b6040516103a5919061373c565b34801561048d57600080fd5b50600a546103919061010090046001600160a01b031681565b3480156104b257600080fd5b50600a546104c09060ff1681565b60405190151581526020016103a5565b3480156104dc57600080fd5b506104c06104eb36600461379f565b610b59565b3480156104fc57600080fd5b506104c061050b3660046137cb565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561053557600080fd5b506103f26105443660046137e8565b610b70565b34801561055557600080fd5b506103c4610d2e565b34801561056a57600080fd5b506104c0610579366004613816565b610d52565b34801561058a57600080fd5b506103f261059936600461392d565b610dca565b3480156105aa57600080fd5b506103c460105481565b3480156105c057600080fd5b506103c4610f7f565b3480156105d557600080fd5b506103c46103e881565b3480156105eb57600080fd5b506103c4600e5481565b34801561060157600080fd5b50604051600981526020016103a5565b34801561061d57600080fd5b506103f261062c366004613a06565b611000565b34801561063d57600080fd5b506103f261064c3660046137cb565b611154565b34801561065d57600080fd5b506103f2611205565b34801561067257600080fd5b50600b54610391906001600160a01b031681565b34801561069257600080fd5b506011546104c09060ff1681565b3480156106ac57600080fd5b506103c46106bb366004613a49565b61128c565b3480156106cc57600080fd5b506103f26106db366004613a49565b6112c0565b3480156106ec57600080fd5b506103f26106fb3660046137cb565b61135e565b34801561070c57600080fd5b506104c061071b3660046137cb565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561074557600080fd5b506011546104c090610100900460ff1681565b34801561076457600080fd5b50601554610391906001600160a01b031681565b34801561078457600080fd5b506103f2610793366004613a62565b611560565b3480156107a457600080fd5b506103c460125481565b3480156107ba57600080fd5b506103f26107c93660046137cb565b6115d3565b3480156107da57600080fd5b506103c46107e93660046137cb565b6001600160a01b031660009081526020819052604090205490565b34801561081057600080fd5b506103f26117b1565b34801561082557600080fd5b50600c54610391906001600160a01b031681565b34801561084557600080fd5b506103f26118d6565b34801561085a57600080fd5b506103f2610869366004613a62565b61192d565b34801561087a57600080fd5b50601454610391906001600160a01b031681565b34801561089a57600080fd5b506013546001600160a01b0316610391565b3480156108b857600080fd5b506104c0611b17565b3480156108cd57600080fd5b506103f2611b87565b3480156108e257600080fd5b506040805180820190915260068152652920a82a27a960d11b6020820152610474565b34801561091157600080fd5b506104c061092036600461379f565b611ddd565b34801561093157600080fd5b506103f26109403660046137cb565b611df4565b34801561095157600080fd5b506103f26109603660046137cb565b611f8e565b34801561097157600080fd5b50600f546104c09060ff1681565b34801561098b57600080fd5b506103f261099a366004613703565b61207b565b3480156109ab57600080fd5b506103c46109ba3660046137e8565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109f157600080fd5b506103f2610a003660046137cb565b612126565b348015610a1157600080fd5b506103f2610a203660046137cb565b612527565b348015610a3157600080fd5b506103f26125e7565b348015610a4657600080fd5b506103f2610a55366004613a80565b6126c0565b348015610a6657600080fd5b50600c546104c090600160a81b900460ff1681565b348015610a8757600080fd5b506103f2610a96366004613a62565b61298e565b6013546001600160a01b03163314610ae85760405162461bcd60e51b81526020600482015260116024820152600080516020613d6983398151915260448201526064015b60405180910390fd5b60115460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610b3d57600080fd5b505af1158015610b51573d6000803e3d6000fd5b505050505050565b6000610b66338484612a01565b5060015b92915050565b6013546001600160a01b03163314610bb85760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60085460ff16610bc757600080fd5b6001600160a01b0382163014801590610be957506001600160a01b0381163014155b8015610c035750600b546001600160a01b03838116911614155b8015610c1d5750600b546001600160a01b03828116911614155b610c575760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610adf565b806001600160a01b0316826001600160a01b031603610cb9576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560079093529220805490911682179055610cb5908290611560565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610d23908390611560565b610cb5816001611560565b6000610d3c6009600a613bac565b610d4d9066025e20b05fa71c613bbb565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610db7576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610db1908490613bd2565b90915550505b610dc2848484612afa565b949350505050565b6013546001600160a01b03163314610e125760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b8051825114610e635760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610adf565b60005b82518161ffff161015610f7a57610e7f6009600a613bac565b828261ffff1681518110610e9557610e95613be5565b6020026020010151610ea79190613bbb565b336000908152602081905260409020541015610f055760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610adf565b610f6733848361ffff1681518110610f1f57610f1f613be5565b60200260200101516009600a610f359190613bac565b858561ffff1681518110610f4b57610f4b613be5565b6020026020010151610f5d9190613bbb565b6000806001612e8e565b5080610f7281613bfb565b915050610e66565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610fd99190613c1c565b610fe56009600a613bac565b610ff69066025e20b05fa71c613bbb565b610d4d9190613bd2565b6013546001600160a01b031633146110485760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600a5460ff161561109b5760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610adf565b6103e88361ffff16111580156110b757506103e88261ffff1611155b80156110c957506103e88161ffff1611155b6111155760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610adf565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6013546001600160a01b0316331461119c5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6011546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b5050505050565b6014546001600160a01b031633146112705760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610adf565b61127a6000611f8e565b601480546001600160a01b0319169055565b600b546001600160a01b0316600090815260208190526040812054612710906112b6908490613bbb565b610b6a9190613c2f565b6013546001600160a01b031633146113085760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60968111156113595760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610adf565b601055565b6013546001600160a01b031633146113a65760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b0381166114225760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610adf565b61deac196001600160a01b038216016114a35760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610adf565b6013546114ba906001600160a01b03166000611560565b6114c5816001611560565b6013546001600160a01b03166000908152602081905260409020541561150e576013546001600160a01b031660008181526020819052604090205461150c91908390610f5d565b505b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546001600160a01b031633146115a85760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6013546001600160a01b0316331461161b5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60115460ff161561162b57600080fd5b306001600160a01b038216036116835760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610adf565b6011805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af1925050508015611709575060408051601f3d908101601f1916820190925261170691810190613c51565b60015b61171257600080fd5b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601354925461178f9383169291900416600019612a01565b600a54610f7a90309061010090046001600160a01b0316600019612a01565b50565b6013546001600160a01b031633146117f95760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60115460ff166118715760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610adf565b601354611888906001600160a01b03166000611560565b601380546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6013546001600160a01b0316331461191e5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600a805460ff19166001179055565b6013546001600160a01b031633146119755760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b806119e8576001600160a01b03828116600081815260016020526040808220805460ff1916905560115490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015610b3d57600080fd5b60025415611a4f576203f48060025442611a029190613bd2565b11611a4f5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610adf565b6001600160a01b03821660009081526001602052604090205460ff1615611ab85760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610adf565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560115491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610b23565b6013546000906001600160a01b03163314611b625760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600a54611b8190309061010090046001600160a01b0316600019612a01565b50600190565b6013546001600160a01b03163314611bcf5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b60115460ff1615611c225760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610adf565b601154610100900460ff16611c795760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610adf565b6011546201000090046001600160a01b0316611ca9576011805462010000600160b01b0319163062010000021790555b601154600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611d1b57600080fd5b505af1925050508015611d2c575060015b50601154600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611daf575060408051601f3d908101601f19168201909252611dac91810190613c80565b60015b15611dbe57600d91909155600e555b6011805460ff1990811660011790915560088054909116905542601255565b6000611dea338484612afa565b5060019392505050565b6013546001600160a01b03163314611e3c5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b601154610100900460ff1615611ea457306001600160a01b03821603611ea45760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610adf565b6013546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1f9190613ca4565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190613cbd565b6014546001600160a01b03163314611ff95760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610adf565b6015546001600160a01b03168015612036576001600160a01b0381166000908152600460205260408120805460ff19169055612036908290611560565b601580546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19166001908117909155610cb5908390611560565b6013546001600160a01b031633146120c35760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6013546001600160a01b0316331461216e5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b601154610100900460ff16156121c65760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610adf565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561220b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222f9190613cda565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561227c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a09190613cda565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156122eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230f9190613cda565b600b546001600160a01b039081166000908152600160205260409020805460ff1916905590915081166124a557816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561237a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239e9190613cda565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240f9190613cda565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561245c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124809190613cda565b600b80546001600160a01b0319166001600160a01b03929092169190911790556124c1565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610f7a923092910416600019612a01565b6013546001600160a01b0316331461256f5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b0381166125c55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610adf565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546001600160a01b0316331461262f5760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b601154610100900460ff16156126875760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610adf565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117ae573d6000803e3d6000fd5b6013546001600160a01b031633146127085760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b82846127166009600a613bac565b6127279066025e20b05fa71c613bbb565b6127319190613bbb565b61273b9190613c2f565b600d55808261274c6009600a613bac565b61275d9066025e20b05fa71c613bbb565b6127679190613bbb565b6127719190613c2f565b600e819055600d5411156127d15760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610adf565b600b546001600160a01b0316600090815260208190526040902054612710906127fb906096613bbb565b6128059190613c2f565b600e5411156128625760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610adf565b620f42406128726009600a613bac565b6128839066025e20b05fa71c613bbb565b61288d9190613c2f565b600e5410156128f55760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610adf565b620f42406129056009600a613bac565b6129169066025e20b05fa71c613bbb565b6129209190613c2f565b600d5410156129885760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610adf565b50505050565b6013546001600160a01b031633146129d65760405162461bcd60e51b81526020600482015260116024820152600080516020613d698339815191526044820152606401610adf565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612a4d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610adf565b6001600160a01b038216612a995760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610adf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612b605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610adf565b6001600160a01b038316612bc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610adf565b60008211612c245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610adf565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612c525760019250612c80565b6001600160a01b03861660009081526001602052604090205460ff1615612c7c5760019150612c80565b5060015b612c8a8787613141565b15612d8b5760115460ff16612d8b5780612ce65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610adf565b6001600160a01b03871660009081526005602052604090205460ff16158015612d2857506001600160a01b03861660009081526005602052604090205460ff16155b15612d8b5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610adf565b8115612e7557600c54600160a01b900460ff16612e7557600c54600160a81b900460ff168015612dd457506001600160a01b03861660009081526007602052604090205460ff16155b8015612df957506001600160a01b03871660009081526007602052604090205460ff16155b15612e755730600090815260208190526040902054600d548110612e7357600e54600f5460ff1615612e5d57601054600b546001600160a01b031660009081526020819052604090205461271091612e5091613bbb565b612e5a9190613c2f565b90505b808210612e68578091505b612e7182613258565b505b505b612e83878787868686612e8e565b979650505050505050565b6000612e9a8787613141565b15612f345760115460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015612f1d575060408051601f3d908101601f19168201909252612f1a91810190613cbd565b60015b612f2657600080fd5b905080612f3257600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff1680612f7657506001600160a01b03871660009081526006602052604090205460ff165b15612f7f575060005b6001600160a01b03881660009081526020819052604081208054889290612fa7908490613bd2565b909155506000905081612fba5786612fc6565b612fc68988888861349c565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ffc9190613c1c565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161304891815260200190565b60405180910390a3601154610100900460ff166131325761306989896135b1565b601154610100900460ff1615801561308657506130868989613141565b80156130ab57506001600160a01b03891660009081526005602052604090205460ff16155b80156130d057506001600160a01b03881660009081526005602052604090205460ff16155b80156130da575083155b156131325760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610adf565b50600198975050505050505050565b6013546000906001600160a01b0384811691161480159061317057506013546001600160a01b03838116911614155b801561318757506013546001600160a01b03163214155b80156131ac57506001600160a01b03821660009081526004602052604090205460ff16155b80156131d157506001600160a01b03831660009081526004602052604090205460ff16155b80156131e857506001600160a01b03821661dead14155b80156131fc57506001600160a01b03821615155b801561321157506001600160a01b0383163014155b801561323157506011546001600160a01b03848116620100009092041614155b801561325157506011546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902054600019146132ce57306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b604080516002808252606082018352600092602083019080368337019050509050308160008151811061330357613303613be5565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339a9190613cda565b816001815181106133ad576133ad613be5565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906133fa908590600090869030904290600401613cf7565b600060405180830381600087803b15801561341457600080fd5b505af1925050508015613425575060015b61342f575061348c565b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613481576040519150601f19603f3d011682016040523d82523d6000602084013e613486565b606091505b50505050505b50600c805460ff60a01b19169055565b60008083156134b2575060095461ffff166134dc565b82156134cb575060095462010000900461ffff166134dc565b50600954640100000000900461ffff165b806000036134ed5784915050610dc2565b6011546201000090046001600160a01b031630148015613517575046600114806135175750466038145b1561352157506111945b60006127106135308388613bbb565b61353a9190613c2f565b905080156135a7573060009081526020819052604081208054839290613561908490613c1c565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612e838187613bd2565b601154610100900460ff16156136155760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610adf565b61361f8282613141565b1580156136395750600b546001600160a01b038281169116145b15610cb5576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556011805461ff0019166101001790819055620100009004166136b1576011805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200161211a565b80151581146117ae57600080fd5b6000806040838503121561371657600080fd5b8235613721816136f5565b91506020830135613731816136f5565b809150509250929050565b600060208083528351808285015260005b818110156137695785810183015185820160400152820161374d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117ae57600080fd5b600080604083850312156137b257600080fd5b82356137bd8161378a565b946020939093013593505050565b6000602082840312156137dd57600080fd5b81356132518161378a565b600080604083850312156137fb57600080fd5b82356138068161378a565b915060208301356137318161378a565b60008060006060848603121561382b57600080fd5b83356138368161378a565b925060208401356138468161378a565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561389657613896613857565b604052919050565b600067ffffffffffffffff8211156138b8576138b8613857565b5060051b60200190565b600082601f8301126138d357600080fd5b813560206138e86138e38361389e565b61386d565b82815260059290921b8401810191818101908684111561390757600080fd5b8286015b84811015613922578035835291830191830161390b565b509695505050505050565b6000806040838503121561394057600080fd5b823567ffffffffffffffff8082111561395857600080fd5b818501915085601f83011261396c57600080fd5b8135602061397c6138e38361389e565b82815260059290921b8401810191818101908984111561399b57600080fd5b948201945b838610156139c25785356139b38161378a565b825294820194908201906139a0565b965050860135925050808211156139d857600080fd5b506139e5858286016138c2565b9150509250929050565b803561ffff81168114613a0157600080fd5b919050565b600080600060608486031215613a1b57600080fd5b613a24846139ef565b9250613a32602085016139ef565b9150613a40604085016139ef565b90509250925092565b600060208284031215613a5b57600080fd5b5035919050565b60008060408385031215613a7557600080fd5b82356137218161378a565b60008060008060808587031215613a9657600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613b03578160001904821115613ae957613ae9613ab2565b80851615613af657918102915b93841c9390800290613acd565b509250929050565b600082613b1a57506001610b6a565b81613b2757506000610b6a565b8160018114613b3d5760028114613b4757613b63565b6001915050610b6a565b60ff841115613b5857613b58613ab2565b50506001821b610b6a565b5060208310610133831016604e8410600b8410161715613b86575081810a610b6a565b613b908383613ac8565b8060001904821115613ba457613ba4613ab2565b029392505050565b600061325160ff841683613b0b565b8082028115828204841417610b6a57610b6a613ab2565b81810381811115610b6a57610b6a613ab2565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613c1257613c12613ab2565b6001019392505050565b80820180821115610b6a57610b6a613ab2565b600082613c4c57634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215613c6457600080fd5b8251613c6f8161378a565b60208401519092506137318161378a565b60008060408385031215613c9357600080fd5b505080516020909101519092909150565b600060208284031215613cb657600080fd5b5051919050565b600060208284031215613ccf57600080fd5b8151613251816136f5565b600060208284031215613cec57600080fd5b81516132518161378a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613d475784516001600160a01b031683529383019391830191600101613d22565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122069f5cd7263f4bbc79593d13ff5d042e287261304057eee11865e6065f2f08e4f64736f6c63430008130033

Deployed Bytecode Sourcemap

4090:20489:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5427:73;;;;;;;;;;;;5458:42;5427:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5427:73:0;;;;;;;;5676:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5676:28:0;245:177:1;14202:153:0;;;;;;;;;;-1:-1:-1;14202:153:0;;;;;:::i;:::-;;:::i;:::-;;5015:106;;;;;;;;;;-1:-1:-1;5015:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;5015:106:0;931:365:1;9936:80:0;;;;;;;;;;-1:-1:-1;10008:5:0;;;;;;;;;;;;-1:-1:-1;;;10008:5:0;;;;9936:80;;;;;;;:::i;5366:26::-;;;;;;;;;;-1:-1:-1;5366:26:0;;;;;;;-1:-1:-1;;;;;5366:26:0;;;5333;;;;;;;;;;-1:-1:-1;5333:26:0;;;;;;;;;;;2267:14:1;;2260:22;2242:41;;2230:2;2215:18;5333:26:0;2102:187:1;10544:161:0;;;;;;;;;;-1:-1:-1;10544:161:0;;;;;:::i;:::-;;:::i;13631:140::-;;;;;;;;;;-1:-1:-1;13631:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;13729:34:0;13705:4;13729:34;;;:25;:34;;;;;;;;;13631:140;16613:809;;;;;;;;;;-1:-1:-1;16613:809:0;;;;;:::i;:::-;;:::i;9671:83::-;;;;;;;;;;;;;:::i;11214:306::-;;;;;;;;;;-1:-1:-1;11214:306:0;;;;;:::i;:::-;;:::i;22254:447::-;;;;;;;;;;-1:-1:-1;22254:447:0;;;;;:::i;:::-;;:::i;5784:33::-;;;;;;;;;;;;;;;;13935:141;;;;;;;;;;;;;:::i;5130:42::-;;;;;;;;;;;;5168:4;5130:42;;5711:25;;;;;;;;;;;;;;;;9760:80;;;;;;;;;;-1:-1:-1;9760:80:0;;4827:1;6508:36:1;;6496:2;6481:18;9760:80:0;6366:184:1;14553:453:0;;;;;;;;;;-1:-1:-1;14553:453:0;;;;;:::i;:::-;;:::i;14084:110::-;;;;;;;;;;-1:-1:-1;14084:110:0;;;;;:::i;:::-;;:::i;9054:221::-;;;;;;;;;;;;;:::i;5399:21::-;;;;;;;;;;-1:-1:-1;5399:21:0;;;;-1:-1:-1;;;;;5399:21:0;;;5824:34;;;;;;;;;;-1:-1:-1;5824:34:0;;;;;;;;15213:189;;;;;;;;;;-1:-1:-1;15213:189:0;;;;;:::i;:::-;;:::i;16117:217::-;;;;;;;;;;-1:-1:-1;16117:217:0;;;;;:::i;:::-;;:::i;7361:654::-;;;;;;;;;;-1:-1:-1;7361:654:0;;;;;:::i;:::-;;:::i;13354:127::-;;;;;;;;;;-1:-1:-1;13354:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;13445:28:0;13421:4;13445:28;;;:19;:28;;;;;;;;;13354:127;5865:36;;;;;;;;;;-1:-1:-1;5865:36:0;;;;;;;;;;;8379:23;;;;;;;;;;-1:-1:-1;8379:23:0;;;;-1:-1:-1;;;;;8379:23:0;;;13489:134;;;;;;;;;;-1:-1:-1;13489:134:0;;;;;:::i;:::-;;:::i;5938:26::-;;;;;;;;;;;;;;;;12788:558;;;;;;;;;;-1:-1:-1;12788:558:0;;;;;:::i;:::-;;:::i;10246:117::-;;;;;;;;;;-1:-1:-1;10246:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;10339:16:0;10312:7;10339:16;;;;;;;;;;;;10246:117;8023:310;;;;;;;;;;;;;:::i;5507:92::-;;;;;;;;;;-1:-1:-1;5507:92:0;;;;-1:-1:-1;;;;;5507:92:0;;;14363:182;;;;;;;;;;;;;:::i;12216:564::-;;;;;;;;;;-1:-1:-1;12216:564:0;;;;;:::i;:::-;;:::i;8341:31::-;;;;;;;;;;-1:-1:-1;8341:31:0;;;;-1:-1:-1;;;;;8341:31:0;;;10022:79;;;;;;;;;;-1:-1:-1;10092:6:0;;-1:-1:-1;;;;;10092:6:0;10022:79;;11031:175;;;;;;;;;;;;;:::i;21015:737::-;;;;;;;;;;;;;:::i;9846:84::-;;;;;;;;;;-1:-1:-1;9920:7:0;;;;;;;;;;;;-1:-1:-1;;;9920:7:0;;;;9846:84;;10371:165;;;;;;;;;;-1:-1:-1;10371:165:0;;;;;:::i;:::-;;:::i;21950:296::-;;;;;;;;;;-1:-1:-1;21950:296:0;;;;;:::i;:::-;;:::i;8564:482::-;;;;;;;;;;-1:-1:-1;8564:482:0;;;;;:::i;:::-;;:::i;5743:34::-;;;;;;;;;;-1:-1:-1;5743:34:0;;;;;;;;16342:263;;;;;;;;;;-1:-1:-1;16342:263:0;;;;;:::i;:::-;;:::i;10107:133::-;;;;;;;;;;-1:-1:-1;10107:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10209:19:0;;;10191:7;10209:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10107:133;11528:680;;;;;;;;;;-1:-1:-1;11528:680:0;;;;;:::i;:::-;;:::i;15014:191::-;;;;;;;;;;-1:-1:-1;15014:191:0;;;;;:::i;:::-;;:::i;21760:182::-;;;;;;;;;;;;;:::i;15410:699::-;;;;;;;;;;-1:-1:-1;15410:699:0;;;;;:::i;:::-;;:::i;5630:39::-;;;;;;;;;;-1:-1:-1;5630:39:0;;;;-1:-1:-1;;;5630:39:0;;;;;;13779:148;;;;;;;;;;-1:-1:-1;13779:148:0;;;;;:::i;:::-;;:::i;14202:153::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;;;;;;;;;14297:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;14297:50:0;;9054:14:1;;9047:22;14297:50:0::1;::::0;::::1;9029:41:1::0;9113:14;;9106:22;9086:18;;;9079:50;14297:11:0;;;::::1;-1:-1:-1::0;;;;;14297:11:0::1;::::0;:26:::1;::::0;9002:18:1;;14297:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14202:153:::0;;:::o;10544:161::-;10621:4;10638:37;10647:10;10659:7;10668:6;10638:8;:37::i;:::-;-1:-1:-1;10693:4:0;10544:161;;;;;:::o;16613:809::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;16717:23:::1;::::0;::::1;;16709:32;;;::::0;::::1;;-1:-1:-1::0;;;;;16760:23:0;::::1;16778:4;16760:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;16805:24:0;::::1;16824:4;16805:24;;16760:69;:107;;;;-1:-1:-1::0;16851:6:0::1;::::0;-1:-1:-1;;;;;16851:16:0;;::::1;:6:::0;::::1;:16;;16760:107;:146;;;;-1:-1:-1::0;16889:6:0::1;::::0;-1:-1:-1;;;;;16889:17:0;;::::1;:6:::0;::::1;:17;;16760:146;16752:170;;;::::0;-1:-1:-1;;;16752:170:0;;9342:2:1;16752:170:0::1;::::0;::::1;9324:21:1::0;9381:2;9361:18;;;9354:30;-1:-1:-1;;;9400:18:1;;;9393:41;9451:18;;16752:170:0::1;9140:335:1::0;16752:170:0::1;16947:7;-1:-1:-1::0;;;;;16937:17:0::1;:6;-1:-1:-1::0;;;;;16937:17:0::1;::::0;16933:482:::1;;-1:-1:-1::0;;;;;16971:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;17000:4:::1;-1:-1:-1::0;;16971:33:0;;::::1;::::0;::::1;::::0;;;17019:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;17066:34:::1;::::0;16971:26;;17066:19:::1;:34::i;:::-;16613:809:::0;;:::o;16933:482::-:1;-1:-1:-1::0;;;;;17133:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;17161:4:::1;-1:-1:-1::0;;17133:32:0;;::::1;::::0;::::1;::::0;;;17180:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;17228:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;17274:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;17321:33:::1;::::0;17133:25;;17321:19:::1;:33::i;:::-;17369:34;17389:7;17398:4;17369:19;:34::i;9671:83::-:0;9726:7;4887:13;4827:1;4887:2;:13;:::i;:::-;4870:30;;4671:19;4870:30;:::i;:::-;9737:14;;9671:83;:::o;11214:306::-;-1:-1:-1;;;;;11335:19:0;;11314:4;11335:19;;;:11;:19;;;;;;;;11355:10;11335:31;;;;;;;;-1:-1:-1;;11335:52:0;11331:126;;-1:-1:-1;;;;;11404:19:0;;;;;;:11;:19;;;;;;;;11424:10;11404:31;;;;;;;:41;;11439:6;;11404:19;:41;;11439:6;;11404:41;:::i;:::-;;;;-1:-1:-1;;11331:126:0;11476:36;11486:6;11494:9;11505:6;11476:9;:36::i;:::-;11469:43;11214:306;-1:-1:-1;;;;11214:306:0:o;22254:447::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;22389:7:::1;:14;22370:8;:15;:33;22362:67;;;::::0;-1:-1:-1;;;22362:67:0;;11503:2:1;22362:67:0::1;::::0;::::1;11485:21:1::0;11542:2;11522:18;;;11515:30;11581:23;11561:18;;;11554:51;11622:18;;22362:67:0::1;11301:345:1::0;22362:67:0::1;22445:8;22440:254;22463:8;:15;22459:1;:19;;;22440:254;;;22544:13;4827:1;22544:2;:13;:::i;:::-;22533:7;22541:1;22533:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;22518:10;10312:7:::0;10339:16;;;;;;;;;;;22508:49:::1;;22500:80;;;::::0;-1:-1:-1;;;22500:80:0;;11985:2:1;22500:80:0::1;::::0;::::1;11967:21:1::0;12024:2;12004:18;;;11997:30;12063:20;12043:18;;;12036:48;12101:18;;22500:80:0::1;11783:342:1::0;22500:80:0::1;22595:87;22612:10;22624:8;22633:1;22624:11;;;;;;;;;;:::i;:::-;;;;;;;4827:1;22648:2;:13;;;;:::i;:::-;22637:7;22645:1;22637:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;22663:5;22670::::0;22677:4:::1;22595:16;:87::i;:::-;-1:-1:-1::0;22480:3:0;::::1;::::0;::::1;:::i;:::-;;;;22440:254;;;;22254:447:::0;;:::o;13935:141::-;13988:7;10339:16;;;;;;5458:42;10339:16;;;;14027:39;;10339:16;14027:39;:::i;:::-;4887:13;4827:1;4887:2;:13;:::i;:::-;4870:30;;4671:19;4870:30;:::i;:::-;14016:51;;;;:::i;14553:453::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;14661:14:::1;::::0;::::1;;14660:15;14652:45;;;::::0;-1:-1:-1;;;14652:45:0;;12664:2:1;14652:45:0::1;::::0;::::1;12646:21:1::0;12703:2;12683:18;;;12676:30;12742:19;12722:18;;;12715:47;12779:18;;14652:45:0::1;12462:341:1::0;14652:45:0::1;5168:4;14716:6;:21;;;;:65;;;;;5218:4;14758:7;:23;;;;14716:65;:117;;;;;5272:4;14802:11;:31;;;;14716:117;14708:170;;;::::0;-1:-1:-1;;;14708:170:0;;13010:2:1;14708:170:0::1;::::0;::::1;12992:21:1::0;13049:2;13029:18;;;13022:30;13088:25;13068:18;;;13061:53;13131:18;;14708:170:0::1;12808:347:1::0;14708:170:0::1;14889:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;14925:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;14963:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;14553:453::o;14084:110::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;14153:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;14153:33:0;;-1:-1:-1;;;;;178:55:1;;;14153:33:0::1;::::0;::::1;160:74:1::0;14153:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;14153:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14084:110:::0;:::o;9054:221::-;9132:16;;-1:-1:-1;;;;;9132:16:0;9118:10;:30;9110:83;;;;-1:-1:-1;;;9110:83:0;;13362:2:1;9110:83:0;;;13344:21:1;13401:2;13381:18;;;13374:30;13440:34;13420:18;;;13413:62;-1:-1:-1;;;13491:18:1;;;13484:38;13539:19;;9110:83:0;13160:404:1;9110:83:0;9204:23;9224:1;9204:11;:23::i;:::-;9238:16;:29;;-1:-1:-1;;;;;;9238:29:0;;;9054:221::o;15213:189::-;15342:6;;-1:-1:-1;;;;;15342:6:0;15304:7;10339:16;;;;;;;;;;;5319:5;;15332:41;;15352:21;;15332:41;:::i;:::-;15331:62;;;;:::i;16117:217::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;16247:3:::1;16221:22;:29;;16213:64;;;::::0;-1:-1:-1;;;16213:64:0;;13993:2:1;16213:64:0::1;::::0;::::1;13975:21:1::0;14032:2;14012:18;;;14005:30;14071:24;14051:18;;;14044:52;14113:18;;16213:64:0::1;13791:346:1::0;16213:64:0::1;16288:13;:38:::0;16117:217::o;7361:654::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;-1:-1:-1;;;;;7440:22:0;::::1;7432:96;;;::::0;-1:-1:-1;;;7432:96:0;;14344:2:1;7432:96:0::1;::::0;::::1;14326:21:1::0;14383:2;14363:18;;;14356:30;14422:34;14402:18;;;14395:62;14493:31;14473:18;;;14466:59;14542:19;;7432:96:0::1;14142:425:1::0;7432:96:0::1;-1:-1:-1::0;;;;;;;7547:16:0;::::1;::::0;7539:90:::1;;;::::0;-1:-1:-1;;;7539:90:0;;14344:2:1;7539:90:0::1;::::0;::::1;14326:21:1::0;14383:2;14363:18;;;14356:30;14422:34;14402:18;;;14395:62;14493:31;14473:18;;;14466:59;14542:19;;7539:90:0::1;14142:425:1::0;7539:90:0::1;7660:6;::::0;7640:34:::1;::::0;-1:-1:-1;;;;;7660:6:0::1;;7640:19;:34::i;:::-;7685:35;7705:8;7715:4;7685:19;:35::i;:::-;7755:6;::::0;-1:-1:-1;;;;;7755:6:0::1;7765:1;10339:16:::0;;;;;;;;;;;7745:21;7741:127:::1;;7800:6;::::0;-1:-1:-1;;;;;7800:6:0::1;10312:7:::0;10339:16;;;;;;;;;;;7783:73:::1;::::0;7800:6;7808:8;;7818:17:::1;10246:117:::0;7783:73:::1;;7741:127;7907:6;::::0;;-1:-1:-1;;;;;7924:17:0;;::::1;-1:-1:-1::0;;;;;;7924:17:0;::::1;::::0;::::1;::::0;;;7957:40:::1;::::0;7907:6;::::1;::::0;7924:17;7907:6;;7957:40:::1;::::0;7888:16:::1;::::0;7957:40:::1;7421:594;7361:654:::0;:::o;13489:134::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;-1:-1:-1;;;;;13577:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;13577:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13489:134::o;12788:558::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;12865:14:::1;::::0;::::1;;12864:15;12856:24;;;::::0;::::1;;12915:4;-1:-1:-1::0;;;;;12899:21:0;::::1;::::0;12891:48:::1;;;::::0;-1:-1:-1;;;12891:48:0;;14774:2:1;12891:48:0::1;::::0;::::1;14756:21:1::0;14813:2;14793:18;;;14786:30;14852:16;14832:18;;;14825:44;14886:18;;12891:48:0::1;14572:338:1::0;12891:48:0::1;12950:11;:31:::0;;-1:-1:-1;;;;;;12950:31:0::1;::::0;-1:-1:-1;;;;;12950:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12996:23:::1;::::0;;-1:-1:-1;;;12996:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12996:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;12996:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;12996:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;12992:347;;13328:8;::::0;::::1;12992:347;13083:9;:29:::0;;-1:-1:-1;;13083:29:0::1;;-1:-1:-1::0;;;;;13083:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;13114:6:::1;:22:::0;;-1:-1:-1;;;;;;13114:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13138:15:0;;;-1:-1:-1;13138:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;13138:22:0::1;::::0;;::::1;::::0;;13184:6:::1;::::0;13200:9;;13175:55:::1;::::0;13184:6;::::1;::::0;13200:9;;::::1;;-1:-1:-1::0;;13175:8:0::1;:55::i;:::-;13277:9;::::0;13245:62:::1;::::0;13262:4:::1;::::0;13277:9:::1;::::0;::::1;-1:-1:-1::0;;;;;13277:9:0::1;-1:-1:-1::0;;13245:8:0::1;:62::i;12992:347::-;12788:558:::0;:::o;8023:310::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;8090:14:::1;::::0;::::1;;8082:74;;;::::0;-1:-1:-1;;;8082:74:0;;15507:2:1;8082:74:0::1;::::0;::::1;15489:21:1::0;15546:2;15526:18;;;15519:30;15585:34;15565:18;;;15558:62;15656:17;15636:18;;;15629:45;15691:19;;8082:74:0::1;15305:411:1::0;8082:74:0::1;8187:6;::::0;8167:34:::1;::::0;-1:-1:-1;;;;;8187:6:0::1;;8167:19;:34::i;:::-;8231:6;::::0;;-1:-1:-1;;;;;;8248:19:0;::::1;::::0;;;8283:42:::1;::::0;-1:-1:-1;;;;;8231:6:0;;::::1;::::0;8212:16:::1;::::0;8231:6;;8283:42:::1;::::0;8212:16;;8283:42:::1;8071:262;8023:310::o:0;14363:182::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;14516:14:::1;:21:::0;;-1:-1:-1;;14516:21:0::1;14533:4;14516:21;::::0;;14363:182::o;12216:564::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;12298:7:::1;12293:480;;-1:-1:-1::0;;;;;12322:13:0;;::::1;12338:5;12322:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;12322:21:0::1;::::0;;12358:11:::1;::::0;:34;;-1:-1:-1;;;12358:34:0;;::::1;::::0;::::1;15889:74:1::0;;;;15979:18;;;15972:50;;;;12358:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15862:18:1;;12358:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;12293:480;12429:17;::::0;:22;12425:135:::1;;12518:6;12498:17;;12480:15;:35;;;;:::i;:::-;:44;12472:72;;;::::0;-1:-1:-1;;;12472:72:0;;16235:2:1;12472:72:0::1;::::0;::::1;16217:21:1::0;16274:2;16254:18;;;16247:30;16313:17;16293:18;;;16286:45;16348:18;;12472:72:0::1;16033:339:1::0;12472:72:0::1;-1:-1:-1::0;;;;;12583:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;12582:14;12574:54;;;::::0;-1:-1:-1;;;12574:54:0;;16579:2:1;12574:54:0::1;::::0;::::1;16561:21:1::0;16618:2;16598:18;;;16591:30;16657:29;16637:18;;;16630:57;16704:18;;12574:54:0::1;16377:351:1::0;12574:54:0::1;-1:-1:-1::0;;;;;12643:13:0;;::::1;;::::0;;;12659:4:::1;12643:13;::::0;;;;;;;;:20;;-1:-1:-1;;12643:20:0::1;::::0;::::1;::::0;;12698:15:::1;12678:17;:35:::0;12728:11:::1;::::0;:33;;-1:-1:-1;;;12728:33:0;;::::1;::::0;::::1;15889:74:1::0;;;;15979:18;;;15972:50;12728:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15862:18:1;;12728:33:0::1;15721:307:1::0;11031:175:0;7215:6;;11097:4;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;11146:9:::1;::::0;11114:62:::1;::::0;11131:4:::1;::::0;11146:9:::1;::::0;::::1;-1:-1:-1::0;;;;;11146:9:0::1;-1:-1:-1::0;;11114:8:0::1;:62::i;:::-;-1:-1:-1::0;11194:4:0::1;11031:175:::0;:::o;21015:737::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;21077:14:::1;::::0;::::1;;21076:15;21068:52;;;::::0;-1:-1:-1;;;21068:52:0;;16935:2:1;21068:52:0::1;::::0;::::1;16917:21:1::0;16974:2;16954:18;;;16947:30;17013:26;16993:18;;;16986:54;17057:18;;21068:52:0::1;16733:348:1::0;21068:52:0::1;21139:16;::::0;::::1;::::0;::::1;;;21131:53;;;::::0;-1:-1:-1;;;21131:53:0;;17288:2:1;21131:53:0::1;::::0;::::1;17270:21:1::0;17327:2;17307:18;;;17300:30;17366:26;17346:18;;;17339:54;17410:18;;21131:53:0::1;17086:348:1::0;21131:53:0::1;21207:11;::::0;;;::::1;-1:-1:-1::0;;;;;21207:11:0::1;21195:106;;21249:11;:40:::0;;-1:-1:-1;;;;;;21249:40:0::1;21283:4;21249:40:::0;::::1;;::::0;;21195:106:::1;21315:11;::::0;21337:6:::1;::::0;21315:87:::1;::::0;-1:-1:-1;;;21315:87:0;;-1:-1:-1;;;;;21337:6:0;;::::1;21315:87;::::0;::::1;17662:74:1::0;17784:10;21352:12:0::1;17772:23:1::0;17752:18;;;17745:51;17844:18;21374:15:0::1;17832:31:1::0;17812:18;;;17805:59;4827:1:0::1;17880:18:1::0;;;17873:45;21315:11:0;;;::::1;;::::0;:21:::1;::::0;17634:19:1;;21315:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;21428:11:0::1;::::0;21459:6:::1;::::0;-1:-1:-1;;;;;21459:6:0;;::::1;10312:7:::0;10339:16;;;;;;;;;;;;;21428:39;;-1:-1:-1;;;21428:39:0;;::::1;::::0;::::1;391:25:1::0;;;;21428:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;21428:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;21428:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;21428:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;21424:207:::0;::::1;;21539:13;:29:::0;;;;21583:10:::1;:27:::0;21424:207:::1;21641:14;:21:::0;;-1:-1:-1;;21641:21:0;;::::1;21658:4;21641:21;::::0;;;21673:23:::1;:31:::0;;;;::::1;::::0;;21729:15:::1;21715:11;:29:::0;21015:737::o;10371:165::-;10449:4;10466:40;10476:10;10488:9;10499:6;10466:9;:40::i;:::-;-1:-1:-1;10524:4:0;;10371:165;-1:-1:-1;;;10371:165:0:o;21950:296::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;22028:16:::1;::::0;::::1;::::0;::::1;;;22024:111;;;22086:4;-1:-1:-1::0;;;;;22069:22:0;::::1;::::0;22061:62:::1;;;::::0;-1:-1:-1;;;22061:62:0;;18381:2:1;22061:62:0::1;::::0;::::1;18363:21:1::0;18420:2;18400:18;;;18393:30;18459:29;18439:18;;;18432:57;18506:18;;22061:62:0::1;18179:351:1::0;22061:62:0::1;22199:6;::::0;22207:30:::1;::::0;-1:-1:-1;;;22207:30:0;;22231:4:::1;22207:30;::::0;::::1;160:74:1::0;22167:5:0;;-1:-1:-1;;;;;22184:14:0;;::::1;::::0;::::1;::::0;22199:6;;;::::1;::::0;22184:14;;22207:15:::1;::::0;133:18:1;;22207:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22184:54;::::0;-1:-1:-1;;;;;;22184:54:0::1;::::0;;;;;;-1:-1:-1;;;;;18916:55:1;;;22184:54:0::1;::::0;::::1;18898:74:1::0;18988:18;;;18981:34;18871:18;;22184:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8564:482::-:0;8646:16;;-1:-1:-1;;;;;8646:16:0;8632:10;:30;8624:83;;;;-1:-1:-1;;;8624:83:0;;13362:2:1;8624:83:0;;;13344:21:1;13401:2;13381:18;;;13374:30;13440:34;13420:18;;;13413:62;-1:-1:-1;;;13491:18:1;;;13484:38;13539:19;;8624:83:0;13160:404:1;8624:83:0;8740:8;;-1:-1:-1;;;;;8740:8:0;8763:25;;8759:150;;-1:-1:-1;;;;;8805:30:0;;8838:5;8805:30;;;:17;:30;;;;;:38;;-1:-1:-1;;8805:38:0;;;8858:39;;8823:11;;8858:19;:39::i;:::-;8919:8;:22;;-1:-1:-1;;;;;;8919:22:0;-1:-1:-1;;;;;8919:22:0;;;;;;;;-1:-1:-1;8952:30:0;;;:17;:30;;;;;:37;;-1:-1:-1;;8952:37:0;-1:-1:-1;8952:37:0;;;;;;9000:38;;8919:22;;9000:19;:38::i;16342:263::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;16451:19:::1;:33:::0;;-1:-1:-1;;;;16451:33:0::1;-1:-1:-1::0;;;16451:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16495:22:::1;:47:::0;;-1:-1:-1;;16495:47:0::1;::::0;::::1;;;::::0;;16558:39:::1;::::0;2242:41:1;;;16558:39:0::1;::::0;2230:2:1;2215:18;16558:39:0::1;;;;;;;;16342:263:::0;;:::o;11528:680::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;11608:16:::1;::::0;::::1;::::0;::::1;;;11607:17;11599:60;;;::::0;-1:-1:-1;;;11599:60:0;;19478:2:1;11599:60:0::1;::::0;::::1;19460:21:1::0;19517:2;19497:18;;;19490:30;19556:32;19536:18;;;19529:60;19606:18;;11599:60:0::1;19276:354:1::0;11599:60:0::1;11670:20;11703:9;11670:43;;11724:16;11754:10;-1:-1:-1::0;;;;;11754:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11743:40:0::1;;11792:4;11799:10;-1:-1:-1::0;;;;;11799:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11743:74;::::0;-1:-1:-1;;;;;;11743:74:0::1;::::0;;;;;;-1:-1:-1;;;;;20144:15:1;;;11743:74:0::1;::::0;::::1;20126:34:1::0;20196:15;;20176:18;;;20169:43;20038:18;;11743:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11836:6;::::0;-1:-1:-1;;;;;11836:6:0;;::::1;11846:5;11828:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;11828:23:0::1;::::0;;11724:93;;-1:-1:-1;11866:22:0;::::1;11862:200;;11925:10;-1:-1:-1::0;;;;;11925:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11914:43:0::1;;11966:4;11973:10;-1:-1:-1::0;;;;;11973:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11914:77;::::0;-1:-1:-1;;;;;;11914:77:0::1;::::0;;;;;;-1:-1:-1;;;;;20144:15:1;;;11914:77:0::1;::::0;::::1;20126:34:1::0;20196:15;;20176:18;;;20169:43;20038:18;;11914:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11905:6;:86:::0;;-1:-1:-1;;;;;;11905:86:0::1;-1:-1:-1::0;;;;;11905:86:0;;;::::1;::::0;;;::::1;::::0;;11862:200:::1;;;12033:6;:17:::0;;-1:-1:-1;;;;;;12033:17:0::1;-1:-1:-1::0;;;;;12033:17:0;::::1;;::::0;;11862:200:::1;12072:9;:22:::0;;-1:-1:-1;;12072:22:0::1;;-1:-1:-1::0;;;;;12072:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12113:6:::1;::::0;;::::1;-1:-1:-1::0;12105:15:0;;;-1:-1:-1;12105:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12105:22:0::1;::::0;;::::1;::::0;;12170:9;;12138:62:::1;::::0;12155:4:::1;::::0;12170:9;::::1;;-1:-1:-1::0;;12138:8:0::1;:62::i;15014:191::-:0;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;-1:-1:-1;;;;;15099:23:0;::::1;15091:59;;;::::0;-1:-1:-1;;;15091:59:0;;20425:2:1;15091:59:0::1;::::0;::::1;20407:21:1::0;20464:2;20444:18;;;20437:30;20503:25;20483:18;;;20476:53;20546:18;;15091:59:0::1;20223:347:1::0;15091:59:0::1;15161:15;:36:::0;;-1:-1:-1;;;;;;15161:36:0::1;-1:-1:-1::0;;;;;15161:36:0;;;::::1;::::0;;;::::1;::::0;;15014:191::o;21760:182::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;21827:16:::1;::::0;::::1;::::0;::::1;;;21826:17;21818:58;;;::::0;-1:-1:-1;;;21818:58:0;;20777:2:1;21818:58:0::1;::::0;::::1;20759:21:1::0;20816:2;20796:18;;;20789:30;20855;20835:18;;;20828:58;20903:18;;21818:58:0::1;20575:352:1::0;21818:58:0::1;21895:6;::::0;21887:47:::1;::::0;-1:-1:-1;;;;;21895:6:0;;::::1;::::0;21912:21:::1;21887:47:::0;::::1;;;::::0;21895:6:::1;21887:47:::0;21895:6;21887:47;21912:21;21895:6;21887:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;15410:699:::0;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;15610:16;15590;4887:13:::1;4827:1;4887:2;:13;:::i;:::-;4870:30;::::0;4671:19:::1;4870:30;:::i;:::-;15580:26;;;;:::i;:::-;15579:47;;;;:::i;:::-;15563:13;:63:::0;15678:13;15661;4887::::1;4827:1;4887:2;:13;:::i;:::-;4870:30;::::0;4671:19:::1;4870:30;:::i;:::-;15651:23;;;;:::i;:::-;15650:41;;;;:::i;:::-;15637:10;:54:::0;;;15710:13:::1;::::0;:27:::1;;15702:73;;;::::0;-1:-1:-1;;;15702:73:0;;21134:2:1;15702:73:0::1;::::0;::::1;21116:21:1::0;21173:2;21153:18;;;21146:30;21212:34;21192:18;;;21185:62;-1:-1:-1;;;21263:18:1;;;21256:31;21304:19;;15702:73:0::1;20932:397:1::0;15702:73:0::1;15819:6;::::0;-1:-1:-1;;;;;15819:6:0::1;10312:7:::0;10339:16;;;;;;;;;;;5319:5:::1;::::0;15809:23:::1;::::0;15829:3:::1;15809:23;:::i;:::-;15808:44;;;;:::i;:::-;15794:10;;:58;;15786:106;;;::::0;-1:-1:-1;;;15786:106:0;;21536:2:1;15786:106:0::1;::::0;::::1;21518:21:1::0;21575:2;21555:18;;;21548:30;21614:34;21594:18;;;21587:62;-1:-1:-1;;;21665:18:1;;;21658:33;21708:19;;15786:106:0::1;21334:399:1::0;15786:106:0::1;15935:9;4887:13;4827:1;4887:2;:13;:::i;:::-;4870:30;::::0;4671:19:::1;4870:30;:::i;:::-;15925:19;;;;:::i;:::-;15911:10;;:33;;15903:92;;;::::0;-1:-1:-1;;;15903:92:0;;21940:2:1;15903:92:0::1;::::0;::::1;21922:21:1::0;21979:2;21959:18;;;21952:30;22018:34;21998:18;;;21991:62;-1:-1:-1;;;22069:18:1;;;22062:44;22123:19;;15903:92:0::1;21738:410:1::0;15903:92:0::1;16041:9;4887:13;4827:1;4887:2;:13;:::i;:::-;4870:30;::::0;4671:19:::1;4870:30;:::i;:::-;16031:19;;;;:::i;:::-;16014:13;;:36;;16006:95;;;::::0;-1:-1:-1;;;16006:95:0;;21940:2:1;16006:95:0::1;::::0;::::1;21922:21:1::0;21979:2;21959:18;;;21952:30;22018:34;21998:18;;;21991:62;-1:-1:-1;;;22069:18:1;;;22062:44;22123:19;;16006:95:0::1;21738:410:1::0;16006:95:0::1;15410:699:::0;;;;:::o;13779:148::-;7215:6;;-1:-1:-1;;;;;7215:6:0;7225:10;7215:20;7207:50;;;;-1:-1:-1;;;7207:50:0;;8723:2:1;7207:50:0;;;8705:21:1;8762:2;8742:18;;;8735:30;-1:-1:-1;;;;;;;;;;;8781:18:1;;;8774:47;8838:18;;7207:50:0;8521:341:1;7207:50:0;-1:-1:-1;;;;;13875:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;13875:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13779:148::o;10713:310::-;-1:-1:-1;;;;;10808:20:0;;10800:52;;;;-1:-1:-1;;;10800:52:0;;22355:2:1;10800:52:0;;;22337:21:1;22394:2;22374:18;;;22367:30;-1:-1:-1;;;22413:18:1;;;22406:49;22472:18;;10800:52:0;22153:343:1;10800:52:0;-1:-1:-1;;;;;10871:21:0;;10863:53;;;;-1:-1:-1;;;10863:53:0;;22355:2:1;10863:53:0;;;22337:21:1;22394:2;22374:18;;;22367:30;-1:-1:-1;;;22413:18:1;;;22406:49;22472:18;;10863:53:0;22153:343:1;10863:53:0;-1:-1:-1;;;;;10929:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10982:33;;391:25:1;;;10982:33:0;;364:18:1;10982:33:0;;;;;;;10713:310;;;:::o;17884:1783::-;17963:4;-1:-1:-1;;;;;17988:18:0;;17980:68;;;;-1:-1:-1;;;17980:68:0;;22703:2:1;17980:68:0;;;22685:21:1;22742:2;22722:18;;;22715:30;22781:34;22761:18;;;22754:62;-1:-1:-1;;;22832:18:1;;;22825:35;22877:19;;17980:68:0;22501:401:1;17980:68:0;-1:-1:-1;;;;;18067:16:0;;18059:64;;;;-1:-1:-1;;;18059:64:0;;23109:2:1;18059:64:0;;;23091:21:1;23148:2;23128:18;;;23121:30;23187:34;23167:18;;;23160:62;-1:-1:-1;;;23238:18:1;;;23231:33;23281:19;;18059:64:0;22907:399:1;18059:64:0;18151:1;18142:6;:10;18134:64;;;;-1:-1:-1;;;18134:64:0;;23513:2:1;18134:64:0;;;23495:21:1;23552:2;23532:18;;;23525:30;23591:34;23571:18;;;23564:62;-1:-1:-1;;;23642:18:1;;;23635:39;23691:19;;18134:64:0;23311:405:1;18134:64:0;-1:-1:-1;;;;;18297:13:0;;18209:8;18297:13;;;:7;:13;;;;;;18209:8;;;;18297:13;;18293:162;;;18333:4;18327:10;;18293:162;;;-1:-1:-1;;;;;18359:11:0;;;;;;:7;:11;;;;;;;;18355:100;;;18394:4;18387:11;;18355:100;;;-1:-1:-1;18439:4:0;18355:100;18469:20;18480:4;18486:2;18469:10;:20::i;:::-;18465:371;;;18510:14;;;;18506:319;;18550:5;18545:265;;18580:34;;-1:-1:-1;;;18580:34:0;;23923:2:1;18580:34:0;;;23905:21:1;23962:2;23942:18;;;23935:30;24001:26;23981:18;;;23974:54;24045:18;;18580:34:0;23721:348:1;18545:265:0;-1:-1:-1;;;;;18645:31:0;;;;;;:25;:31;;;;;;;;18644:32;:66;;;;-1:-1:-1;;;;;;18681:29:0;;;;;;:25;:29;;;;;;;;18680:30;18644:66;18640:170;;;18735:55;;-1:-1:-1;;;18735:55:0;;24276:2:1;18735:55:0;;;24258:21:1;24315:2;24295:18;;;24288:30;24354:34;24334:18;;;24327:62;-1:-1:-1;;;24405:18:1;;;24398:43;24458:19;;18735:55:0;24074:409:1;18640:170:0;18852:4;18848:742;;;18878:6;;-1:-1:-1;;;18878:6:0;;;;18873:706;;18909:19;;-1:-1:-1;;;18909:19:0;;;;:64;;;;-1:-1:-1;;;;;;18953:20:0;;;;;;:16;:20;;;;;;;;18952:21;18909:64;:111;;;;-1:-1:-1;;;;;;18998:22:0;;;;;;:16;:22;;;;;;;;18997:23;18909:111;18905:659;;;19112:4;19063:28;10339:16;;;;;;;;;;;19169:13;;19145:37;;19141:404;;19229:10;;19270:22;;;;19266:97;;;19327:13;;19317:6;;-1:-1:-1;;;;;19317:6:0;10312:7;10339:16;;;;;;;;;;;5319:5;;19307:33;;;:::i;:::-;19306:54;;;;:::i;:::-;19296:64;;19266:97;19417:7;19393:20;:31;19389:72;;19451:7;19428:30;;19389:72;19487:34;19500:20;19487:12;:34::i;:::-;19184:361;19141:404;19040:524;18905:659;19607:52;19624:4;19630:2;19634:6;19642:3;19647:4;19653:5;19607:16;:52::i;:::-;19600:59;17884:1783;-1:-1:-1;;;;;;;17884:1783:0:o;22709:1055::-;22828:4;22849:20;22860:4;22866:2;22849:10;:20::i;:::-;22845:228;;;22904:11;;:39;;-1:-1:-1;;;22904:39:0;;-1:-1:-1;;;;;24769:15:1;;;22904:39:0;;;24751:34:1;24821:15;;;24801:18;;;24794:43;24853:18;;;24846:34;;;22873:12:0;;22904:11;;;;;:21;;24663:18:1;;22904:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;22904:39:0;;;;;;;;-1:-1:-1;;22904:39:0;;;;;;;;;;;;:::i;:::-;;;22900:122;;23011:8;;;22900:122;22994:5;-1:-1:-1;23040:7:0;23036:26;;23051:8;;;23036:26;22871:202;22845:228;-1:-1:-1;;;;;23117:25:0;;23083:12;23117:25;;;:19;:25;;;;;;23098:4;;23117:25;;;:52;;-1:-1:-1;;;;;;23146:23:0;;;;;;:19;:23;;;;;;;;23117:52;23113:99;;;-1:-1:-1;23195:5:0;23113:99;-1:-1:-1;;;;;23222:13:0;;:7;:13;;;;;;;;;;:23;;23239:6;;23222:7;:23;;23239:6;;23222:23;:::i;:::-;;;;-1:-1:-1;23256:22:0;;-1:-1:-1;23282:7:0;23281:55;;23330:6;23281:55;;;23293:34;23303:4;23309:6;23317:3;23322:4;23293:9;:34::i;:::-;23256:80;;23362:14;23347:7;:11;23355:2;-1:-1:-1;;;;;23347:11:0;-1:-1:-1;;;;;23347:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;23407:2;-1:-1:-1;;;;;23392:34:0;23401:4;-1:-1:-1;;;;;23392:34:0;;23411:14;23392:34;;;;391:25:1;;379:2;364:18;;245:177;23392:34:0;;;;;;;;23442:16;;;;;;;23437:298;;23475:28;23494:4;23500:2;23475:18;:28::i;:::-;23523:16;;;;;;;23522:17;:41;;;;;23543:20;23554:4;23560:2;23543:10;:20::i;:::-;23522:77;;;;-1:-1:-1;;;;;;23568:31:0;;;;;;:25;:31;;;;;;;;23567:32;23522:77;:111;;;;-1:-1:-1;;;;;;23604:29:0;;;;;;:25;:29;;;;;;;;23603:30;23522:111;:121;;;;;23638:5;23637:6;23522:121;23518:206;;;23664:44;;-1:-1:-1;;;23664:44:0;;25093:2:1;23664:44:0;;;25075:21:1;25132:2;25112:18;;;25105:30;25171:34;25151:18;;;25144:62;-1:-1:-1;;;25222:18:1;;;25215:32;25264:19;;23664:44:0;24891:398:1;23518:206:0;-1:-1:-1;23752:4:0;;22709:1055;-1:-1:-1;;;;;;;;22709:1055:0:o;17430:446::-;17531:6;;17499:4;;-1:-1:-1;;;;;17523:14:0;;;17531:6;;17523:14;;;;:43;;-1:-1:-1;17560:6:0;;-1:-1:-1;;;;;17554:12:0;;;17560:6;;17554:12;;17523:43;:79;;;;-1:-1:-1;17596:6:0;;-1:-1:-1;;;;;17596:6:0;17583:9;:19;;17523:79;:118;;;;-1:-1:-1;;;;;;17620:21:0;;;;;;:17;:21;;;;;;;;17619:22;17523:118;:159;;;;-1:-1:-1;;;;;;17659:23:0;;;;;;:17;:23;;;;;;;;17658:24;17523:159;:186;;;;-1:-1:-1;;;;;;17699:10:0;;5458:42;17699:10;;17523:186;:219;;;;-1:-1:-1;;;;;;17726:16:0;;;;17523:219;:257;;;;-1:-1:-1;;;;;;17759:21:0;;17775:4;17759:21;;17523:257;:302;;;;-1:-1:-1;17813:11:0;;-1:-1:-1;;;;;17797:28:0;;;17813:11;;;;;17797:28;;17523:302;:345;;;;-1:-1:-1;17856:11:0;;-1:-1:-1;;;;;17842:26:0;;;17856:11;;;;;17842:26;;17523:345;17516:352;17430:446;-1:-1:-1;;;17430:446:0:o;19675:761::-;6129:6;:13;;-1:-1:-1;;;;6129:13:0;-1:-1:-1;;;6129:13:0;;;19782:4:::1;6129:13:::0;19762:26;;;:11:::1;:26;::::0;;;;;;;19797:9:::1;::::0;6129:13;19797:9;::::1;-1:-1:-1::0;;;;;19797:9:0::1;19762:46:::0;;;;;;;;-1:-1:-1;;19762:67:0::1;19758:166;;19866:4;19846:26;::::0;;;:11:::1;:26;::::0;;;;;;;19881:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;19881:9:0::1;19846:46:::0;;;;;;;-1:-1:-1;;19846:66:0;;19758:166:::1;19968:16;::::0;;19982:1:::1;19968:16:::0;;;;;::::1;::::0;;19944:21:::1;::::0;19968:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19968:16:0::1;19944:40;;20013:4;19995;20000:1;19995:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;19995:23:0::1;;;-1:-1:-1::0;;;;;19995:23:0::1;;;::::0;::::1;20039:9;;;;;;;;;-1:-1:-1::0;;;;;20039:9:0::1;-1:-1:-1::0;;;;;20039:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20029:4;20034:1;20029:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20029:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;20072:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;20072:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;20147:20;;20182:1:::1;::::0;20198:4;;20225::::1;::::0;20245:15:::1;::::0;20072:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;20068:246;;20296:7;;;20068:246;20362:15;::::0;:66:::1;::::0;20326:12:::1;::::0;-1:-1:-1;;;;;20362:15:0::1;::::0;20418:5:::1;::::0;20390:21:::1;::::0;20326:12;20362:66;20326:12;20362:66;20390:21;20362:15;20418:5;20362:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6153:1:0::1;-1:-1:-1::0;6165:6:0;:14;;-1:-1:-1;;;;6165:14:0;;;19675:761::o;23772:804::-;23860:7;23880:18;23913:3;23909:205;;;-1:-1:-1;23946:9:0;:16;;;23909:205;;;23984:4;23980:134;;;-1:-1:-1;24018:9:0;:17;;;;;;23980:134;;;-1:-1:-1;24081:9:0;:21;;;;;;23980:134;24128:10;24142:1;24128:15;24124:39;;24154:6;24147:13;;;;;24124:39;24185:11;;;;;-1:-1:-1;;;;;24185:11:0;24209:4;24177:37;:110;;;;;24232:13;24249:1;24232:18;:54;;;;24267:13;24284:2;24267:19;24232:54;24173:138;;;-1:-1:-1;24304:4:0;24173:138;24321:17;5319:5;24341:19;24350:10;24341:6;:19;:::i;:::-;:38;;;;:::i;:::-;24321:58;-1:-1:-1;24394:13:0;;24390:141;;24440:4;24424:7;:22;;;;;;;;;;:35;;24450:9;;24424:7;:35;;24450:9;;24424:35;:::i;:::-;;;;-1:-1:-1;;24479:40:0;;391:25:1;;;24502:4:0;;-1:-1:-1;;;;;24479:40:0;;;;;379:2:1;364:18;24479:40:0;;;;;;;24390:141;24550:18;24559:9;24550:6;:18;:::i;20444:563::-;20527:16;;;;;;;20526:17;20518:65;;;;-1:-1:-1;;;20518:65:0;;26737:2:1;20518:65:0;;;26719:21:1;26776:2;26756:18;;;26749:30;26815:34;26795:18;;;26788:62;-1:-1:-1;;;26866:18:1;;;26859:33;26909:19;;20518:65:0;26535:399:1;20518:65:0;20599:20;20610:4;20616:2;20599:10;:20::i;:::-;20598:21;:37;;;;-1:-1:-1;20629:6:0;;-1:-1:-1;;;;;20623:12:0;;;20629:6;;20623:12;20598:37;20594:406;;;-1:-1:-1;;;;;20652:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;20652:30:0;;;20678:4;20652:30;;;;;;20697:19;:25;;;;;:32;;;;;;;;;;20744:16;:23;;-1:-1:-1;;20744:23:0;20652:30;20744:23;;;;;20794:11;;;;20782:114;;20840:11;:40;;-1:-1:-1;;;;;;20840:40:0;20874:4;20840:40;;;;;20782:114;20910:19;:26;;-1:-1:-1;;;;20910:26:0;-1:-1:-1;;;20910:26:0;;;20956:32;;-1:-1:-1;2242:41:1;;20956:32:0;;2230:2:1;2215:18;20956:32:0;2102:187:1;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:548::-;1413:4;1442:2;1471;1460:9;1453:21;1503:6;1497:13;1546:6;1541:2;1530:9;1526:18;1519:34;1571:1;1581:140;1595:6;1592:1;1589:13;1581:140;;;1690:14;;;1686:23;;1680:30;1656:17;;;1675:2;1652:26;1645:66;1610:10;;1581:140;;;1585:3;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1840:2;1833;1829:7;1824:2;1816:6;1812:15;1808:29;1797:9;1793:45;1789:54;1781:62;;;;1301:548;;;;:::o;2294:154::-;-1:-1:-1;;;;;2373:5:1;2369:54;2362:5;2359:65;2349:93;;2438:1;2435;2428:12;2453:315;2521:6;2529;2582:2;2570:9;2561:7;2557:23;2553:32;2550:52;;;2598:1;2595;2588:12;2550:52;2637:9;2624:23;2656:31;2681:5;2656:31;:::i;:::-;2706:5;2758:2;2743:18;;;;2730:32;;-1:-1:-1;;;2453:315:1:o;2773:247::-;2832:6;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2940:9;2927:23;2959:31;2984:5;2959:31;:::i;3025:388::-;3093:6;3101;3154:2;3142:9;3133:7;3129:23;3125:32;3122:52;;;3170:1;3167;3160:12;3122:52;3209:9;3196:23;3228:31;3253:5;3228:31;:::i;:::-;3278:5;-1:-1:-1;3335:2:1;3320:18;;3307:32;3348:33;3307:32;3348:33;:::i;3418:456::-;3495:6;3503;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;3619:9;3606:23;3638:31;3663:5;3638:31;:::i;:::-;3688:5;-1:-1:-1;3745:2:1;3730:18;;3717:32;3758:33;3717:32;3758:33;:::i;:::-;3418:456;;3810:7;;-1:-1:-1;;;3864:2:1;3849:18;;;;3836:32;;3418:456::o;3879:127::-;3940:10;3935:3;3931:20;3928:1;3921:31;3971:4;3968:1;3961:15;3995:4;3992:1;3985:15;4011:275;4082:2;4076:9;4147:2;4128:13;;-1:-1:-1;;4124:27:1;4112:40;;4182:18;4167:34;;4203:22;;;4164:62;4161:88;;;4229:18;;:::i;:::-;4265:2;4258:22;4011:275;;-1:-1:-1;4011:275:1:o;4291:183::-;4351:4;4384:18;4376:6;4373:30;4370:56;;;4406:18;;:::i;:::-;-1:-1:-1;4451:1:1;4447:14;4463:4;4443:25;;4291:183::o;4479:662::-;4533:5;4586:3;4579:4;4571:6;4567:17;4563:27;4553:55;;4604:1;4601;4594:12;4553:55;4640:6;4627:20;4666:4;4690:60;4706:43;4746:2;4706:43;:::i;:::-;4690:60;:::i;:::-;4784:15;;;4870:1;4866:10;;;;4854:23;;4850:32;;;4815:12;;;;4894:15;;;4891:35;;;4922:1;4919;4912:12;4891:35;4958:2;4950:6;4946:15;4970:142;4986:6;4981:3;4978:15;4970:142;;;5052:17;;5040:30;;5090:12;;;;5003;;4970:142;;;-1:-1:-1;5130:5:1;4479:662;-1:-1:-1;;;;;;4479:662:1:o;5146:1215::-;5264:6;5272;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5381:9;5368:23;5410:18;5451:2;5443:6;5440:14;5437:34;;;5467:1;5464;5457:12;5437:34;5505:6;5494:9;5490:22;5480:32;;5550:7;5543:4;5539:2;5535:13;5531:27;5521:55;;5572:1;5569;5562:12;5521:55;5608:2;5595:16;5630:4;5654:60;5670:43;5710:2;5670:43;:::i;5654:60::-;5748:15;;;5830:1;5826:10;;;;5818:19;;5814:28;;;5779:12;;;;5854:19;;;5851:39;;;5886:1;5883;5876:12;5851:39;5910:11;;;;5930:217;5946:6;5941:3;5938:15;5930:217;;;6026:3;6013:17;6043:31;6068:5;6043:31;:::i;:::-;6087:18;;5963:12;;;;6125;;;;5930:217;;;6166:5;-1:-1:-1;;6209:18:1;;6196:32;;-1:-1:-1;;6240:16:1;;;6237:36;;;6269:1;6266;6259:12;6237:36;;6292:63;6347:7;6336:8;6325:9;6321:24;6292:63;:::i;:::-;6282:73;;;5146:1215;;;;;:::o;6555:159::-;6622:20;;6682:6;6671:18;;6661:29;;6651:57;;6704:1;6701;6694:12;6651:57;6555:159;;;:::o;6719:328::-;6793:6;6801;6809;6862:2;6850:9;6841:7;6837:23;6833:32;6830:52;;;6878:1;6875;6868:12;6830:52;6901:28;6919:9;6901:28;:::i;:::-;6891:38;;6948:37;6981:2;6970:9;6966:18;6948:37;:::i;:::-;6938:47;;7004:37;7037:2;7026:9;7022:18;7004:37;:::i;:::-;6994:47;;6719:328;;;;;:::o;7052:180::-;7111:6;7164:2;7152:9;7143:7;7139:23;7135:32;7132:52;;;7180:1;7177;7170:12;7132:52;-1:-1:-1;7203:23:1;;7052:180;-1:-1:-1;7052:180:1:o;7237:382::-;7302:6;7310;7363:2;7351:9;7342:7;7338:23;7334:32;7331:52;;;7379:1;7376;7369:12;7331:52;7418:9;7405:23;7437:31;7462:5;7437:31;:::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;9480:127::-;9541:10;9536:3;9532:20;9529:1;9522:31;9572:4;9569:1;9562:15;9596:4;9593:1;9586:15;9612:422;9701:1;9744:5;9701:1;9758:270;9779:7;9769:8;9766:21;9758:270;;;9838:4;9834:1;9830:6;9826:17;9820:4;9817:27;9814:53;;;9847:18;;:::i;:::-;9897:7;9887:8;9883:22;9880:55;;;9917:16;;;;9880:55;9996:22;;;;9956:15;;;;9758:270;;;9762:3;9612:422;;;;;:::o;10039:806::-;10088:5;10118:8;10108:80;;-1:-1:-1;10159:1:1;10173:5;;10108:80;10207:4;10197:76;;-1:-1:-1;10244:1:1;10258:5;;10197:76;10289:4;10307:1;10302:59;;;;10375:1;10370:130;;;;10282:218;;10302:59;10332:1;10323:10;;10346:5;;;10370:130;10407:3;10397:8;10394:17;10391:43;;;10414:18;;:::i;:::-;-1:-1:-1;;10470:1:1;10456:16;;10485:5;;10282:218;;10584:2;10574:8;10571:16;10565:3;10559:4;10556:13;10552:36;10546:2;10536:8;10533:16;10528:2;10522:4;10519:12;10515:35;10512:77;10509:159;;;-1:-1:-1;10621:19:1;;;10653:5;;10509:159;10700:34;10725:8;10719:4;10700:34;:::i;:::-;10770:6;10766:1;10762:6;10758:19;10749:7;10746:32;10743:58;;;10781:18;;:::i;:::-;10819:20;;10039:806;-1:-1:-1;;;10039:806:1:o;10850:140::-;10908:5;10937:47;10978:4;10968:8;10964:19;10958:4;10937:47;:::i;10995:168::-;11068:9;;;11099;;11116:15;;;11110:22;;11096:37;11086:71;;11137:18;;:::i;11168:128::-;11235:9;;;11256:11;;;11253:37;;;11270:18;;:::i;11651:127::-;11712:10;11707:3;11703:20;11700:1;11693:31;11743:4;11740:1;11733:15;11767:4;11764:1;11757:15;12130:197;12168:3;12196:6;12237:2;12230:5;12226:14;12264:2;12255:7;12252:15;12249:41;;12270:18;;:::i;:::-;12319:1;12306:15;;12130:197;-1:-1:-1;;;12130:197:1:o;12332:125::-;12397:9;;;12418:10;;;12415:36;;;12431:18;;:::i;13569:217::-;13609:1;13635;13625:132;;13679:10;13674:3;13670:20;13667:1;13660:31;13714:4;13711:1;13704:15;13742:4;13739:1;13732:15;13625:132;-1:-1:-1;13771:9:1;;13569:217::o;14915:385::-;14994:6;15002;15055:2;15043:9;15034:7;15030:23;15026:32;15023:52;;;15071:1;15068;15061:12;15023:52;15103:9;15097:16;15122:31;15147:5;15122:31;:::i;:::-;15222:2;15207:18;;15201:25;15172:5;;-1:-1:-1;15235:33:1;15201:25;15235:33;:::i;17929:245::-;18008:6;18016;18069:2;18057:9;18048:7;18044:23;18040:32;18037:52;;;18085:1;18082;18075:12;18037:52;-1:-1:-1;;18108:16:1;;18164:2;18149:18;;;18143:25;18108:16;;18143:25;;-1:-1:-1;17929:245:1:o;18535:184::-;18605:6;18658:2;18646:9;18637:7;18633:23;18629:32;18626:52;;;18674:1;18671;18664:12;18626:52;-1:-1:-1;18697:16:1;;18535:184;-1:-1:-1;18535:184:1:o;19026:245::-;19093:6;19146:2;19134:9;19125:7;19121:23;19117:32;19114:52;;;19162:1;19159;19152:12;19114:52;19194:9;19188:16;19213:28;19235:5;19213:28;:::i;19635:251::-;19705:6;19758:2;19746:9;19737:7;19733:23;19729:32;19726:52;;;19774:1;19771;19764:12;19726:52;19806:9;19800:16;19825:31;19850:5;19825:31;:::i;25294:1026::-;25556:4;25604:3;25593:9;25589:19;25635:6;25624:9;25617:25;25661:2;25699:6;25694:2;25683:9;25679:18;25672:34;25742:3;25737:2;25726:9;25722:18;25715:31;25766:6;25801;25795:13;25832:6;25824;25817:22;25870:3;25859:9;25855:19;25848:26;;25909:2;25901:6;25897:15;25883:29;;25930:1;25940:218;25954:6;25951:1;25948:13;25940:218;;;26019:13;;-1:-1:-1;;;;;26015:62:1;26003:75;;26133:15;;;;26098:12;;;;25976:1;25969:9;25940:218;;;-1:-1:-1;;;;;;;26214:55:1;;;;26209:2;26194:18;;26187:83;-1:-1:-1;;;26301:3:1;26286:19;26279:35;26175:3;25294:1026;-1:-1:-1;;;25294:1026:1:o

Swarm Source

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